1. 연산 장치
산술/논리 연산을 수행
연산에 필요한 데이터를 레지스터에서 가져오고, 결과를 레지스터로 보낸다.
2. 제어 장치
명령어를 순서대로 실행할 수 있도록 제어하는 장치
주기억장치에서 프로그램 명령어를 꺼내 해독하고, 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보내고 이들 장치가 보낸 신호를 받아 다음 수행 동작을 결정한다.
3. 레지스터
고속 기억장치
명령어 주소, 코드, 데이터, 연산 결과 등을 임시로 저장한다.
종류
ㅁ 범용 레지스터 : 데이터, 연산 결과를 임시로 저장
ㅁ 특수목적 레지스터 : 특별한 용도를 위해 사용
특수목적 레지스터 종류
ㅁ MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치의 주소를 저장
ㅁ PC(프로그램 카운터) : 다음에 수행할 명령어 주소를 저장
ㅁ IR(명령어 레지스터) : 현재 실행 중인 명령어를 저장
ㅁ MBR(메모리 버퍼 레지스터) : 주기억장치에서 읽어온/저장할 데이터를 임시 저장
ㅁ AC(누산기) : 연산 결과 임시 저장
4. CPU 동작 과정
5. 명령어 세트
CPU가 실행할 명령어의 집합이다.
연산코드(Operation Code) + 피연산자(Operand)로 이루어진다.
ㅁ 연산코드 : 실행할 연산, 입출력 기능
ㅁ 피연산자 : 필요한 데이터, 주소 등을 저장
명령어 사이클 : CPU가 주기억장치에서 한 번에 하나의 명령어를 인출하여 실행하는 데 필요한 일련의 활동을 의미한다.
명령어 사이클은 인출/실행/간접/인터럽트 사이클로 나누어진다.
주기억장치의 지정된 주소에서 하나의 명령어를 가져오고, 실행 사이클에서는 명령어를 실행한다. 하나의 명령어 실행이 완료되면 그 다음 명령어에 대한 인출 사이클이 시작된다.
6. 인출 사이클과 실행 사이클 과정
<인출하기까지의 과정>
PC(프로그램 카운터)에 저장된 주소를 MAR로 전달한다.
-> 저장된 내용으로 주기억장치의 해당 주소에서 명령어를 인출한다.
-> 인출한 명령어를 MBR에 저장한다.
-> 다음 명령어를 인출하기 위해 PC값을 증가시킨다.
-> MBR에 저장된 내용을 IR에 전달한다.
인출 사이클에서는 PC 값 증가가 가장 중요한 부분이다.
<인출 이후, 명령어 실행 과정>