CPU란?
Central Processing Unit의 약자이고, 한국말로는 중앙 처리 장치라고 한다.
CPU는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 처리하는 장치이다.
컴퓨터에서 돌아가는 프로그램의 명령어를 해석하여 데이터를 연산, 처리하고 제어하는 기능을 한다.
- 기억 : 연산에 필요한 데이터, 연산 결과, 명령어 주소 등을 임시로 저장한다.
- 해석 : 프로그램의 명령어를 해석한다.
- 연산 : 덧셈, 뺄셈, 곱셈 등의 산술 연산과 논리곱, 논리합 등의 논리 연산을 수행한다.
- 제어 : 명령어를 순서대로 실행할 수 있도록 제어한다.
CPU의 구조
레지스터(Register)
CPU 내부에 있는 메모리로, 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다.
다른 모든 메모리들 보다 빠른 고속 기억장치이다. CPU 동작 시 매우 빠른 속도로 CPU에 데이터를 제공한다.
제어 장치(CU : Control Unit)
각 장치들의 동작을 결정하는 신호를 보낸다.
주 기억장치(RAM)에서 프로그램 명령어를 꺼내 해석하고, CPU 내부의 작업들을 제어한다.
그 결과에 따라 명령어 실행에 필요한 제어 신호를 여러 장치들에 전달한다.
연산 장치(ALU : Arithmetic Logic Unit)
CU로부터 명령을 받아 CPU로 들어온 데이터들에 대해 산술 및 논리 연산을 수행한다.
동작 과정
- CPU에 입력이 들어오면 제어장치(CU)가 명령어를 해석해서 메모리에 관련 데이터를 호출한다.
- 메모리에서 레지스터로 데이터가 이동한다.
- 연산장치(ALU)에서 프로그램을 계산, 해독을 한 뒤 출력한다.
레지스터의 종류
PC(Program Counter)
- 다음에 실행 할 명령어 주소를 가리키는 레지스터
- 각 명령어가 인출된 이후에는 가리키는 주소가 자동으로 증가한다.
IR(Instructions Register, 명령어 레지스터)
- 가장 최근에 실행한 명령어를 보관하는 레지스터
ACC(Accumulator, 누산기)
- 데이터를 일시적으로 저장하는 레지스터
MBR(Memory Buffer Register)
- CPU가 기억장치로부터 읽어 들인 데이터가 일시적으로 저장되는 버퍼 레지스터
MAR(Memory Address Register)
- CPU가 메모리 참조를 위해 보관하는 데이터 주소를 가진 레지스터
CPU의 기본 실행 구조
Fetch(인출)
실행할 명령어를 메모리에서 읽어 CPU로 가져온다.
PC(Program Counter)가 가리키는 주소를 MAR(Memory Address Register)로 보내고 MAR에 적힌 주소를 메모리에서 읽어서 MBR(Memory Buffer Register)로 보낸다. MBR에 있는 명령어를 IR(Instructions Register)에 저장하고, PC에서 자동으로 주소값을 증가시킨다.
Decode(해석)
인출한 명령어에 포함된 데이터를 가져오고, 명령어를 해독한다.
Execution(실행)
MBR(Memory Buffer Register)에 저장된 데이터와 ACC(Accumulator)의 데이터로 연산을 수행 후 ACC에 저장한다.
위의 과정이 곧 명령어를 실행하는 것이다.
Writeback(저장)
실행 결과를 저장한다.
만약 결과값을 레지스터에 써야 한다면 쓰고, 결괏값을 기다리고 있던 명령어가 있다면 결과를 전달한다.
CPU에서 다른 장치들 사이에 데이터를 교환할 때 System Bus를 이용한다.
시스템 버스(System Bus)
시스템 버스는 CPU와 컴퓨터 내의 다른 구성요소들 사이에 정보를 교환하기 위해 연결되어 있는 통로이다.
주소 버스, 데이터 버스, 제어 버스로 구성되어 있다.
1. 주소 버스(Address Bus)
- 메모리의 주소나 입출력 장치의 포트 번호를 전달한다.
- 주소가 CPU에서 메모리 또는 입출력 장치로 이동하는 단방향 통신을 한다.
2. 데이터 버스(Data Bus)
- 데이터를 전달한다.
- 주소 버스를 사용하여 빠른 속도(us 단위)로 기억 장치, 입출력 장치 등의 외부 장치들과 데이터 통신을 한다.
- 양방향 통신을 한다.
3. 제어 버스(Control Bus)
- 제어 신호를 전달한다.
- CPU와 외부 구성 부품들을 제어하기 위해 사용되는 버스이다.
- 양방향 통신을 한다.
'컴퓨터 공학' 카테고리의 다른 글
[CS/Network] TCP와 UDP 프로토콜 (0) | 2023.07.20 |
---|---|
[CS] CPU 파이프라인 (0) | 2023.07.14 |
[CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD) (0) | 2023.07.11 |
[CS/디지털논리회로] 덧셈기(adder), 반 가산기, 전 가산기 (0) | 2023.07.11 |
[CS/디지털 논리 회로] 논리 게이트 (0) | 2023.07.06 |