CPU의 구성
CPU는 ALU(계산 장치), 레지스터, 제어 장치로 구성되어 있다.

위의 그림에서 나오는 메모리는 cpu에 포함되어있다는 의미는 아니다. 시스템 버스를 통해 연결되어있는 것을 표현하고자 같이 나타내었다.
Memory Unit에 4096X16이라고 씌어있다. 이 때 16은 word, 즉 사이즈를 의미한다. 1바이트는 8비트인데 1word가 몇 비트인지는 컴퓨터마다 다르다. 운영체제에서 나오는 instruction은 code와 text와 모두 동의어로 볼 수 있는데, 1word가 16비트라는 것은 하나의 데이터나 하나의 명령이 16비트라는 소리이다.
-->즉, 4096X16에서의 16은 저장하는 데이터 혹은 명령어의 용량이다. 따라서, Memory Unit과 동일한 길이의 레지스터에는 데이터나 명령어가 저장된다.
레지스터는 플립플롭(=비트의 정보를 보관, 유지할 수 있는 회로)으로, 플립플롭은 gate로 구성되어 있고 즉, 레지스터는 gate로 구성되어 있다. 즉, CPU내부의 모든 것은 gate로 이루어져 있고 gate는 NAND나 NOR로 이루어져 있다.
레지스터의 종류와 목적
PC(Program Counter)
PC는 앞으로 실행할 프로그램(=명령어)의 메모리 주소를 저장한다. 하지만, 위의 그림에서 보면 PC에서 메모리로 연결 경로가 없어 PC에 있는 명령어 주소를 메모리로 보낼 수 없는데, 따라서 이를 AR로 보낸 후 메모리로 보내게 된다.
AR (Address Register)
AR은 주소를 저장하기 위한 공간이다. AR은 데이터의 주소를 저장한다. 또한, PC로부터 받은 명령어의 주소도 갖고 있다.
IR(Instruction Register)
IR에는 실행할 명령어가 저장된다.
DR(Data Register)
DR에는 실행할 데이터가 저장된다. 또한 두 번째 operand(오퍼랜드)를 갖는다.
####명령어는 연산코드와 오퍼랜드로 구성되어 있다. 연산 코드는 CPU가 실행할 수 있는 연산이며, 오퍼랜드는 연산이 이루어지는 대상의 데이터 혹은 데이터의 주소이다.
AC(Accumulator)
AC는 연산을 수행하는 데이터를 저장하고 연산 결과 또한 갖고 있으며 첫 번째 operand(오퍼랜드)를 갖는다.
모든 레지스터는 3가지 기능을 갖는다.
-> 1) LD : 플립플롭의 속성으로 바깥의 데이터가 안으로 들어온다.
2) INR : 전압을 가하면 레지스터의 값이 1 증가한다.
3) CLR : 데이터를 리셋한다.
하지만!!! 명령어를 함부로 바꾸면 안되므로 IR에는 INR과 CPU가 없다.