이제 0.74×109Hz가 무엇을 의미하는지 답하겠습니다. 지금 현재 필자의 컴퓨터는 1초에 0.74×109번씩 인스트럭션을 실행 혹은 실행 중입니다. 주파수와 주기의 식을 이용하면 다음과 같습니다.
0.74 # 109Hz → 1/(0.74 # 109)sec = 1.35 # 10-9 sec
1.35×10-9초마다 한 번씩이라니 얼마나 빠른지 감이 잘 오지 않는군요.
클록에 대해 알아봤으니 동기화를 잠깐 살펴봅시다. ALU의 가산기나 레지스터는 어떻게 클록에 동기화할까요? 이 질문에 답하려면 D 플립플롭이라는 논리 회로를 알아야 합니다. D는 Data 혹은 Delay를 의미합니다. Delay라고 하니 이름부터 시간과 관계가 있을 거 같네요. 이번 플립플롭도 내부 구성까지 깊게 다루지는 않고 심벌과 진리표만 살펴보겠습니다.
그림 8-29는 D 플립플롭의 심벌입니다(CLK = clock). 표 8-2는 D 플립플롭의 진리표입니다.
①은 클록이 0일 때입니다. 입력 D가 무엇이든 출력 Q는 변하지 않습니다.
②와 ③은 클록이 1일 때입니다. 출력 Q는 입력과 같은 값을 ‘전달’합니다. 입력 D 값이 1이면 출력 Q도 1을 출력하고 D 값이 0이면 출력 Q도 0을 출력합니다.
레지스터는 플립플롭의 묶음이라고 하였습니다. 레지스터가 이러한 특성이 있으면 연산이나 데이터의 전송을 클록에 동기화할 수 있습니다. 예를 들어 ALU에서 입력과 동시에 출력이 나왔다고 해도 레지스터가 클록에 맞춰 결과 값을 저장한다면 이는 결국 클록에 동기화된 것입니다.