Search
Duplicate
💻

CPU 작동 원리

생성일
2023/02/22 06:56
태그
CA

CPU 작동 원리

CPU 란?

중앙처리장치(CPU)는 명령어의 해석과 자료의 연산, 비교 등의 처리를 제어하는 컴퓨터 시스템의 핵심 장치 이다.
다양한 입력 장치로부터 정보를 입력받아 처리한 후, 그 결과를 출력 장치로 보내는 일련의 과정을 제어하고 조정하는 일을 수행한다.
CPU는 사람의 두뇌와 같이 컴퓨터의 모든 시스템을 제어, 처리하는 가장 핵심적인 장치이다.

CPU의 구성요소

제어장치

컴퓨터 시스템의 작동을 통제하고 지시하는 장치
기억 장치로부터 프로그램 명령을 순차적으로 꺼내 해독하고, 해석에 따라서 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치 등으로 보내는 장치
PC (Program Counter), 명령 해독기, 부호기, 명령 레지스터 등으로 구성

연산장치 (ALU)

명령어를 실행하기 위한 마이크로 연산을 수행하는 장치
연산에 필요한 자료를 입력 받아 산술, 논리, 관계, 이동(shift) 등 다양한 연산을 수행하는 장치
연산에 필요한 데이터는 레지스터에서 끌어오고, 연산이 끝나면 다시 레지스터로 돌려준다.

레지스터

CPU 내에 있는 소규모의 고속 기억 장치
명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다.
레지스터는 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 점근 가능한 메모리이다.
용도에 따라 범용 레지스터와 특수 목적 레지스터로 구분됨 (아래는 특수 목적 레지스터)
MAR (메모리 주소 레지스터) - 읽기와 쓰기 연산을 수행할 주기억장치 주소를 저장
PC (Program Counter) - 스택의 최상위 주소를 저장
SP (Stack Pointer) - 스택의 최상위 주소를 저장
IX (인덱스 레지스터) - 인덱스 주소 지정 방식에서 인덱스를 저장
IR (명령어 레지스터) - 명령어를 호출해서 해독하기 위해, 현재 명령어를 임시로 저장
MBR (메모리 버퍼 레지스터) - 주기억장치의 내용을 임시로 저장하는 역할
AC (누산기) - 산술 논리 장치의 연산 결과를 임시로 저장
PSR (프로그램 상태 레지스터 ) - CPU의 현재 상태 정보를 저장

CPU의 연산

CPU의 연산 순서는 Fetch → Decode → Execute → Writeback 으로 이루어진다.

Fetch (인출)

메모리상의 프로그램 카운터(PC)가 가리키는 명령어를 CPU로 인출하여 적재한다

Decode (해석)

명령어의 해석, 이 단계에서 명령어의 종류와 타겟 등을 판단한다

Execute (실행)

해석된 명령어에 따라 데이터에 대한 연산을 수행한다.

Writeback (쓰기)

명령어대로 처리 완료된 데이터를 메모리에 기록한다. 이후 다시 Fetch부터 반복

CPU 동작 과정

1.
처리해야할 데이터를 주기억장치 RAM에서 불러와 제어장치 안에 레지스터 1에 전달
2.
제어장치는 연산 코드를 해석하고, 무슨 연산을 해야 하는지 결정해서 연산장치(ALU)에게 전달
a.
RAM에서 현재 프로그램 카운터에 있는 주소(이번에 실행될 명령어 주소)에 해당되는 명령어를 가져와 명령어 레지스터에 넣는다.
b.
가져온 명령어는 연산 코드(like ADD)와 데이터로 분리된다. 연산 코드는 명령어 레지스터로 넘어가고, 나머지 데이터는 기억장치 주소 레지스터를 넘어 주기억장치로 넘어간다.
c.
프로그램 카운터는 다음 실행할 명령어 주소를 바꾼다.
d.
카운터가 c를 하는 동안 명령어 해석기에 들어간 연산 코드는 해석되어 무슨 연산을 할지 결정한 후 연산장치에 넘어간다.
e.
연산장치가 d에서 받은 연산을 수행하는데, 연산에 필요한 데이터는 a에서 기억장치 주소 레지스터를 넘어 주기억장치로 넘어간 데이터가 이때 여기로 넘어와서 연산된다.
3.
연산 장치가 연산 실행
4.
결과를 다시 RAM으로 전송

ref)

컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011
디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007