컴퓨터구조
CPU의 구성
기초공사
2023. 5. 25. 19:00
CPU의 구성요소
- Register Set
- Control Unit
- ALU
ALU
- alu는 연산을 수행하는 연산장치이다.
- alu는 control unit을 통해 제어신호를 받아들이고 해당 제어신호에 맞는 연산을 수행한다
- 레지스터는 연산을 수행한 뒤 연산결과를 레지스터에 담는데 이 때 연산결과가 레지스터의 크기보다 큰 경우를 오버플로우 라고 한다.
- 연산결과와 함께 플래그 값을 플래그레지스터에 기록한다. 플래그란 연산결과에 대한 메타데이터이다.
플러그 레지스터의 종류
Control Unit
- 명령어 레지스터로부터 명령어를 인출한다.
- 플래그 레지스터로부터 플래그값을 받는다.
- 제어신호를 받는다.
- 명령어를 해석한다.
- 명령어에 맞는 제어신호를 내보낸다.
- 클럭 신호를 받아들인다.
- 제어신호를 내보내는 시스템버스는 레지스터나 alu에 보내는 시스템보스뿐만 아니라 입출력장치나 메인메모리에 연결된 버스도 존재한다.
ALU
- 레지스터를 통해 피연산자를 받아들인다.
- 제어신호에 맞는 연산을 수행한다.
- 결과값은 레지스터에 저장한다.
- 연산결과에 대한 플래그를 플래그 레지스터에 기록한다.
Register Set
- Register들의 집합
- 기본적인 레지스터들 ↓
- PC (Program Counter)
- IR (Instruction Register)
- MAR (Memory Address Register)
- MBR (Memory Buffer Register)
- GPR (General Purpose Register)
- FR (Flag Register)
- SP (Stack Pointer)
- BR (Base Register)
PC ( Program Counter )
- 다름에 실행될 명령어의 주소를 가지고 있는 레지스터이다. (= 메모리에서 가져올 명령어)
IR (Instruction Register)
- 현재 해석할 명령어 (= 메모리에서 가져온 명령어)
- 제어장치는 이 레지스터에 있는 명령어를 해석하고 제어신호를 내보낸다.
MAR ( Memory Address Register )
- CPU가 주소 버스를 이용할 때 주소를 임시 저장하는 레지스터이다.
- 메모리의 주소가 담긴다.
MBR ( Memory Buffer Register )
- CPU가 데이터 버스를 통해 데이터를 주고 받을 경우 이용되는 레지스터이다.
- 명령어와 데이터가 담긴다.
프로그램 실행 과정도중 레지스터의 변화
PC( 다음 실행할 명령어 저장 )→ MAR ( PC 값 복사 )→ MBR ( MAR의 주소에 있는 먕량어와 데이터를 가져온다. DATABUS ) → PC++ → IR ( MBR안의 명령어를 가져온다. )
FR ( Flag Register )
- 연산 결과나 cpu에 대한 부가정보를 저장하는 레지스터이다. ( flag값이 담긴다. )
GPR ( General Purpose Register )
- 여러개가 존재하며 명령어 혹은 데이터, 주소등 자유롭게 사용가능
SP ( Stack Pointer )
- stack의 top을 가리키는 레지스터이다.
- 스택 주소지정 방식에 사용된다.
BR ( Base Register )
- 변위 주소 지정방식에 사용되는 레지스터이다.
- Base Register의 값 + 변위 ( 오퍼랜드 필드의 값 ) 을 더해서 유효주소를 얻는다.
변위 주소 지정 방식 | 연산코드 | 오퍼랜드 | 유효주소 (= 기준주소 + 변위) |
상대 주소 지정 방시 | 연산코드 | 변위 | pc + 변위 |
베이스 레지스터 주소 지정 방식 | 연산코드 | 변위 | 베이스 레스터 + 변위 |
명령어 사이클 (inctruction cycle)
명령어는 일정한 주기를 반복하면 실행되는데 이 주기를 명령어 사이클이라고 한다.
- IF (Instructoin Fetch) 명령어 인출 : 기억장치로부터 명령어를 인출해 온다.
- ID (Instruction Decode) 명령어 해독 : 명령어를 해석한다.
- DF (Data Fetch) 데이터 인출 : 명령어 수행을 위해 데이터가 필요한 경우 기억장치로부터 데이터를 인출한다.
- DP (Data Process) 데이터 처리 : 필요한 경우 산술 논리 연산을 수행한다.
- DS (Data Store) 데이터 저장 : 연산을 수행한 결과를 저장한다.