제시문
컴퓨터의 CPU가 어떤 작업을 수행하는 것은 CPU의 '논리 상태'가 시간에 따라 바뀌는 것을 말한다. 가령, Z = X + Y의 연산을 수행하려면 CPU가 X와 Y에 어떤 값을 차례로 저장한 다음, 이것을 더하고 그 결과를 Z에 저장하는 각각의 기능을 순차적으로 진행해야 한다. CPU가 수행할 수 있는 기능은 특정한 CPU의 논리 상태와 일대일로 대응되어 있으며, 프로그램은 수행하고자 하는 작업의 진행에 맞도록 CPU의 논리 상태를 변경한다. 이를 위해 CPU는 현재 상태를 저장하고 이것에 따라 해당 기능을 수행할 수 있는 부가 회로도 갖추고 있다. 만약 CPU가 가지는 논리 상태의 개수가 많아지면 한 번에 처리할 수 있는 기능이 다양해진다. 따라서 처리할 데이터의 양이 같다면 이를 완료하는 데 걸리는 시간이 줄어든다.
논리 상태는 2진수로 표현되는데 논리 함수를 통해 다른 상태로 변환된다. 논리 소자가 연결된 조합 회로는 논리 함수의 기능을 가지는데, 조합 회로는 논리 연산은 가능하지만 논리 상태를 저장할 수는 없다. 어떤 논리 상태를 '저장'한다는 것은 2진수 정보의 시간적 유지를 의미하는데, 외부에서 입력이 유지되지 않더라도 입력된 정보를 논리 회로 속에 시간적으로 가둘 수 있어야 한다.
인버터는 입력이 0일 때 1을, 1일 때 0을 출력하는 논리 소자이다. 〈그림〉의 점선 내부에 표시된 '1비트 저장 회로'를 생각해 보자. 이 회로에서 스위치 S₁은 연결하고 스위치 S₂는 끊은 채로 A에 정보를 입력한다. 그런 다음 S₂를 연결하면 S₁을 끊더라도 S₂를 통하는 ㉠++피드백 회로++에 의해 A에 입력된 정보와 반대되는 값이 지속적으로 B에 출력된다. 따라서 이 회로는 0과 1 중 1개의 논리 상태, 즉 1비트의 정보를 저장할 수 있다. 이러한 회로가 2개가 있다면 00, 01, 10, 11의 4가지 논리 상태, n개가 있다면 2ⁿ가지의 논리 상태 중 1개를 저장할 수 있다.
그렇다면 논리 상태의 변화는 어떻게 일어날까? 이제 〈그림〉과 같이 1비트 저장 회로와 조합 회로로 구성되는 '순차 논리 회로'를 생각해보자. 이 회로에서 조합 회로는 외부 입력 C와 저장 회로의 출력 B를 다시 입력으로 되받아, 내장된 논리 함수를 통해 논리 상태를 변환하고, 이를 다시 저장 회로의 입력과 연결하는 ㉡++피드백 회로++를 구성한다. 예를 들어 조합 회로가 두 입력이 같을 때는 1을, 그렇지 않을 경우 0을 출력한다고 하자. 만일 B에서 1이 출력되고 있을 때 C에 1이 입력된다면 조합 회로는 1을 출력하게 된다. 이때 외부에서 어떤 신호를 주어 S₂가 열리자마자 S₁이 닫힌 다음 다시 S₂가 닫히고 S₁이 열리는 일련의 스위치 동작이 일어나도록 하면, 조합 회로의 출력은 저장 회로의 입력과 연결되어 있으므로 B에서 출력되는 값은 0으로 바뀐다. 그런 다음 C의 값을 0으로 바꾸어주면, 일련의 스위치 동작이 다시 일어나더라도 B의 값은 바뀌지 않는다. 하지만 C에 다시 1을 입력하고 일련의 스위치 동작이 일어나도록 하면 B의 출력은 1로 바뀐다. 따라서 C에 주는 입력에 의해 저장 회로가 출력하는 논리 상태를 임의로 바꿀 수 있다.
만일 이 회로에 2개의 1비트 저장 회로를 병렬로 두어 출력을 2비트로 확장하면 0011의 4가지 논리 상태 중 1개를 출력할 수 있다. 조합 회로의 외부 입력도 2비트로 확장하면 조합 회로는 저장 회로의 현재 출력과 합친 4비트를 입력받게 된다. 이를 내장된 논리 함수에 의해 다시 2비트 출력을 만들어 저장 회로의 입력과 연결한다. 이와 같이 2비트로 확장된 순차 논리 회로에서 외부 입력을 주고 스위치 동작이 일어나도록 하면, 저장 회로의 출력은 2배로 늘어난 논리 상태 중 하나로 바뀐다.
이 회로에 일정한 시간 간격으로 외부 입력을 바꾸고 스위치 동작 신호를 주면, 주어지는 외부 입력에 따라 특정한 논리 상태가 순차적으로 출력에 나타나게 된다. ⓐ++이런 회로가 N비트로 확장된 대표적인 사례가 CPU++이며 스위치를 동작시키는 신호가 CPU 클록이다. 회로 외부에서 입력되는 정보는 컴퓨터 프로그램의 '명령 코드'가 된다. 명령 코드를 CPU의 외부 입력으로 주고 클록 신호를 주면 CPU의 현재 논리 상태는 특정 논리 상태로 바뀐다. 이때 출력에 연결된 회로가 바뀐 상태에 해당하는 기능을 수행하게 된다. CPU 클록은 CPU의 상태 변경 속도, 즉 CPU의 처리 속도를 결정한다.