컴퓨터구조
CPU 구성
juniordigital
2024. 7. 30. 20:36
내부구성
ALU
산술 : 덧셈, 뺄셈, 곱하기, 나눗셈 등등
논리 : AND, OR, NOT 등등
플래그 :
종류 | 의미 |
부호 플래그 | 연산한 결과의 부호를 나타냄 |
제로 플래그 | 연산 결과가 0인지 여부를 나타냄 |
캐리 플래그 | 연산 결과 올림수나 빌림수가 발생했는지를 나타냄 |
오버플로우 플래그 | 오버플로우가 발생했는지를 나타냄 |
인터럽트 플래그 | 인터럽트가 가능한지를 나타냄 |
슈퍼바이저 플래그 | 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타냄 |
Register
종류 | 의미 |
프로그램 카운터 (PC) | 메모리에서 가져올 명령어의 주소 |
명령어 레지스 터 (IR) | 해석할 명령어 |
메모리 주소 레지스터 (MAR) | 메모리의 주소를 저장 |
메모리 버퍼 레지스터 (MBR) | 메모리와 주고 받을 값 ( 데이터, 명령어 ) |
플래그 레지스터 | CPU의 상태, ALU의 연산결과에 대한 정보 표시 |
범용 레지스터 | 자유롭게 사용하는 레지스터 |
스택 포인터 (SP) | 스택의 꼭대기 가르킴 ( 인터럽트 발생시 현재 주소, 값 저장 ) |
베이스 레지스터 | 기준주소 저장 ( I/O 연결시 주소 시작위치 정하기) |
Control Unit
명령어, 조건, 분기 등의 조합으로 Cycle이 적절하게 돌아가도록 제어
종류 | 의미 |
명령어 해독기 | IR에서 들어온 연산 코드를 해독, 해당 연산을 수행하기 위한 시작 주소 결정 |
제어 주소 레지스터(CAR) | 다음에 실행할 마이크로 명령어의 주소를 저장 |
제어 기억장치 | 마이크로 명령어들로 이루어진 내부 기억장치 |
제어 버퍼 레지스터(CBR) | 제어 기억장치로부터 읽힌 마이크로 명령어를 일시적으로 저장 |
서브루틴 레지스터(SBR) | 현재의 CAR 내용을 일시적으로 저장 |
순서 제어 모듈 | 마이크로 명령어의 실행 순서를 결정 |
Memory
데이터, 주소 등을 저장
메모리의 주소가 0~4000 번지까지 있다고 가정하면 0~1000 = A1, 1000 ~ 2000 = A2 2000 ~ 3000 = A3 등과 같이 구역을 할당한다. 베이스 레지스터를 통해 CPU의 논리주소 메모리의 물리주소를 더해 주소를 지정할 수 있습니다.
메모리의 접근을 줄이기 위해 CPU와 메모리 사이에 위치에 Cashe memory 를 추가해 CPU에서 사용할법한 명령어를 미리 가지고와 속도를 향상 할 수 있습니다. 최근에 접근했던 메모리에 접근하려는 경향이 있으며, 접근한 메모리 공간 근처를 접근하려는 경향이 있습니다.
System Bus
종류 | 의미 |
주소 버스(Address Bus) | 메모리의 주소나 I/O Unit의 포트 번호를 전달 ( Memory 단방향, I/O 양방향 ) |
데이터 버스(Data Bus) | 데이터 전달 ( CPU, Memory, I/O Unit 양방향 ) |
제어 버스(Control Bus) | 제어 신호 전달, Read, Write 신호 전달 |