CPU는 연산장치, 제어장치, 레지스터 3가지로 구성되어 있다
1. CPU 구성 요소
연산장치
- 산술연산과 논리연산 수행 (산술 논리 연산 장치라고도 불림)
- 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄
제어장치
- 명령어를 순서대로 실행할 수 있도록 제어하는 장치
- 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억, 연산, 입출력 장치로 보냄
- 신호를 받아 다음에 수행할 동작 결정
레지스터
- 고속 기억 장치
- 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장
- 범용 레지스터와 특수목적 레지스터로 구분
특수목적 레지스터
MAR (Memory Address Register)
: 읽기와 쓰기 연산을 수행할 주기억장치 주소 저장
PC (Program counter)
: 다음에 수행할 명령어 주소 저장
IR (Instructor Register)
: 현재 실행 중인 명령어 저장
MBR (Memory Buffer Register)
: 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장
AC (누산기)
: 연산 결과 임시 저장
2. CPU 동작 과정
동작 순서
- 주기억장치는 입력 장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어옴
- CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장
- 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보냄
- 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어
명령어 사이클
CPU는 프로그램을 실행하기 위해 주기억장치에서 명령어를 순차적으로 인출하여 해독하고 실행하는 과정을 반복함. CPU가 주기억장치에서 한 번에 하나의 명령어를 인출하여 실행하는데 필요한 일련의 활동을 '명령어 사이클'이라고 말함
명령어 인출
- PC에 저장된 주소를 MAR로 전달
- 저장된 내용을 토대로 주기억장치의 해당 주소에서 명령어 인출
- 인출한 명령어를 MBR에 저장
- 다음 명령어를 인출하기 위해 PC 값 증가시킴
- 메모리 버퍼 레지스터 (MBR)에 저장된 내용을 명령어 레지스터에 전달
T0 : MAR <- PC
T1 : MBR <- M[MAR], PC <- PC+1
T2 : IR <- MBR
명령어 실행
- 이미 인출이 진행되고 명령어만 실행하면 되기 때문에 PC를 증가할 필요X
- IR에 MBR값이 이미 저장된 상태를 의미
T0 : MAR <- IR (Addr)
T1 : MBR <- M[MAR]
T2 : AC <- AC + MBR
Reference