728x90
폰노이만 구조에서 컴퓨터를 구성하는 기본 골격은 CPU, 메모리, 디스크이다. 추가적으로 I/O 장치까지 있다면 기본적인 컴퓨터 구조가 될 것이다. 이중 CPU 는 연산을 수행하고, 기억 장치에 있는 명령어들을 적재하고 수행하는 부품이다.
CPU가 동작하는 것을 간단히 살펴보면 다음 그림과 같다.
- Memory에서 수행할 다음 명령어를 CPU로 적재해야 한다.
- PC (Program Counter)는 Fetch할 명령어 주소를 가지고 있다. 프로세스는 PC가 가리키는 주소에 있는 명령어를 가져오면서 PC값을 증가시킨다.
- 명령어가 CPU로 적재되는 것을 Fetch라고 하는데 CPU와 Memory는 Bus로 연결되어 있다.
- 가져온 현재 명령어는 IR(Instruction Register)에 임시 저장된다.
- 로드된 명령어는 ALU(연산장치)에서 처리된다.
CPU 구성요소
CPU는 간단하게 살펴보면 제어장치, 연산장치 (ALU), 레지스터 그리고 각 구성요소들을 연결하는 내부 버스로 구성되어 있다.
제어장치 (CU, Control Unit)
- PC, 명령 해독기, 부호기, 명령 레지스터(IR)로 구성된다.
- 기억장치에서 프로그램의 명령어들을 순차적으로 꺼내어 해독하고, 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력 장치로 보낸다.
ALU (Arithmetic and Logical Unit, 연산장치)
- 명령어를 실행하기 위해 마이크로 연산을 수행한다.
- 연산에 필요한 자료를 입력받아 산술, 논리, 관계, shift 연산을 수행한다.
Register
- 소규모의 고속 기억 장치로 메모리 계층에서는 최상위에 위치한다.
- 가장 빠른 속도로 접근 가능한 메모리이다.
- 명령어 주소, 코드, 연산에 필요한 데이터
- 용도에 따라 범용 레지스터와 특수 목적 레지스터로 나뉜다.
특수 목적 레지스터의 종류
- MAR (Memory Address Register) : 읽기, 쓰기연산을 수행할 데이터가 주기억장치의 어느 위치에 있는지 저장
- MBR (Memory Buffer Register) : 주기억장치에서 가져온 데이터를 실제로 저장하는 장소
- AC (Accumulator, 누산기) : 산술 논리 장치의 연산 결과를 임시 저장
- PC (Program Counter) : 다음에 실행될 명령어의 주소를 저장한다.
- IR (Instruction Register, 명령어 레지스터) : 명령어를 호출해서 해독하기 위해 현재 명령어를 임시로 저장
CPU가 하나의 명령어를 수행하는 과정
Fetch → Decode → Execute → Writeback
- Fetch (명령어 읽기): 메모리 상의 PC가 가리키는 명령어를 CPU로 인출하여 적재한다
- Decode (명령어 해석): 명령어를 해석한다. 명령어의 종류와 타겟을 판단한다.
- Execute (명령어 실행): 해석된 명령어에 따라 데이터에 대한 연산을 수행한다.
- Writeback (기록): 명령어대로 수행한 데이터를 기록한다.
728x90
'Computer Science' 카테고리의 다른 글
[알고리즘] O(N^2) 정렬 알고리즘 정리 : 선택 정렬, 삽입 정렬, 거품 정렬 (1) | 2023.12.02 |
---|