How CPU Works

유명현·2024년 6월 16일

CPU 내부에는 제어장치, CU, 연산장치, ALU가 있으며 CPU 내부의 저장 공간인 Register 집합체가 들어있다.

일반적인 CPU의 동작 예를 들기 위하여, 조금더 Simplified된 CPU 모델로
CPU 구성을 설명하면 아래와 같다.

PC(Program Counter) : CPU가 현재 실행하고 있는 instruction의 주소를 가리킨다.

IR : PC가 가리키는 Instruction 주소에서 일어 온 Instruction을 담다두는 기억 장소

Address Register : 현재 사용하는 Data를 Access하기 위한 Data의 주소값을 담아두는 기억장소

Data Register : Address Register가 가리키는 주소의 실제 값

ACC : 특수한 Register로서, 연산에 사용되는 값들을 저장하며, 연산의 결과값을 잠시 저장하는 일이 많으며, 외부 사용자가 직접 Access 할 수 있는 Register가 아니고, CPU가 혼자 독식하는 Register

CU : Central Unit, Decoder에서 받아온 것을 각종 제어 신호로 변환하여 제어신호를 발생시킴

ALU : 산술 연산을 담당하는 unit

CPU의 Load 과정을 살펴보면 아래와 같이 설명이 가능한다.

  1. 현재 CPU가 실행하는 주소는 PC에 들어 있는 0x1000

  2. Addrees Register에 0x1000을 넣고

  3. Address Register에 0X1000이 들어가는 순간 자동으로 Memory의 0x1000을 Access

  4. 그 곳에 있는 Instruction이 Memory로 부터 읽어 짐 (LOAD 0x2000)

  5. Memory로 부터 읽혀진 Instruction은

6, Decode로 흘러 들어가 무슨 내용인지 해석되는 동시에 PC는 다음을 실행하기 위하여 증가됨

  1. Ox2000번지의 값을 가져오라는 내용 파악

  2. Memory로 부터 0x2000의 값을 읽어 오라고 CU가 제어 신호를 발생 시킴.
    (ACC에게 임시 저장토록 제어 신호발생)

  3. CU가 발생시킨 제어 신호에 의하여 1이라는 값이 Data Register에 들어감

  4. 이 값을 ALU를 통하여 연산을 할지도 모르니 ACC에 임시 저장됨

CPU는 위와 같이 정해진 규칙에 의하여 실행된다.

정해진 Step으로는

  1. Instruction을 메리로부터 가져오고 (Fetch)

  2. 가져온 Instruction을 해석해서 어떤 일을 하는 녀셕이냐를 알아보고 Register 값들도 확인 (Decode)

  3. Decoding된 Instruction을 실행 (Execution)

*PC는 항상 Fetch하고 있는 곳을 가르키고 있다.

출저 : 임베디드 레시피

profile
기억보다 기록을

0개의 댓글