Developing Myself Everyday
article thumbnail

CPU(Central Procesing Unit)


CPU는 명령어의 해석과 자료의 연산, 비교등의 처리를 제어하는 컴퓨터 시스템의 핵심장치이다.

CPU의 구조

위의 그림이 우리가 배워야할 CPU의 구조이다. 그림만 봤을때는 이게 무엇을 말하는지 이해가 안되는것이 당연하다. 그렇지만 CPU의 구성 요소들을 하나하나씩 배워가면서 어떻게 진행되는지 이해를 하고 다시 봤을때는 매우 쉬운 그림이 될 것이다.

 

CPU의 구성 요소


1. ALU(Arithmetic and Logical Unit)

 ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다. 그렇게 받아들인 피연산자와 제어 신호로 산술연산, 논리 연산 등 다양한 연산을 수행한다.

ALU가 연산을 수행한 결과는 바로 메모리로 가지않고 레지스터에 저장된다. ALU는 결과와 함께 플래그를 내보내는데, 플래그는 연산 결과에 대한 추가 정보를 가지고 있다. 이 플래그는 플래그 레지스터에 저장된다.

2. CU(Control Unit)

CPU가 해석해야할 명령어는 IR(명령어 레지스터)이라는 레지스터에 저장된다. CU는 이 레지스터로부터 명령어를 받아들이고 해석한뒤 제어 신호를 기억장치, 연산장치, 입/출력 장치 등으로 발생시킨다. CU는 ALU가 발생시킨 플래그를 플래그 레지스터로부터 받아들이고 이를 참고하여 제어신호를 발생한다. CU는 제어 버스를 통해 외부 전달 신호를 받기도 한다.

3. Register

1) PC(Program Counter): PC는 다음에 실행될 명령어의 주소를 저장한다.

2) IR(Instruction Register): IR은 메모리에서 읽어 들인 명령어를 저장한다.

3) MAR(Memory Address Register): MAR은 주기억장치의 내용을 임시로 저장한다. CPU가 읽고자 하는 값을 주소 버스로보낼 때 MAR을 거치게 된다.

4) MBR(Memory Buffer Register): MBR은 메모리와 주고 받을 갑을 저장한다. MAR의 반대로 주소 데이터 버스로 부터 주고 받는 값은 MBR을 거치게 된다.

5) AC(Accunulator): 누산기는 ALU의 연산 결과를 일시적으로 저장하는 레지스터이다.

 

이렇게 해서는 각 구성 요소들의 역할들이 잘 이해가 안될것이다. 그래서 우린 명령어 사이클을 통해 역할을 점검해보겠다.

 

 

Instruction Cycle (명령어 사이클)


1. Fetch Cycle (인출 사이클)

우리가 메모리의 100번 주소의 a라는 값을 가져오고 싶다고 가정해보자. 프로그램을 실행하기 위해 PC에는 100 이라는 기억장치 주소값이 저장될 것이다.

100번 주소를 읽기 위해서는 주소 버스로 100번의 주소를 읽어와야 한다. 그래서 CU는 메모리을 읽으라는 제어 신호를 제어 버스를 통해 메모리로 보내고 MAR은 주소값을 메모리로 보낸다.

그럼 메모리 100번에 있는 a라는 값이 MBR로 전달되고 PC는 증가되어 다음 명령어를 받아들인다.

MBR은 IR로 이동하고 CU는 IR의 명령어를 해석하고 제어 신호를 발생시키게 된다. 

 

 

2. Execution Cycle (실행 사이클)

위에서 설명했던 Fetch Cycle중 마지막의 IR 명령어를 해석하고 제어 신호를 발생시키는 부분을 실행 사이클이라고 말할 수 있다. 이렇게 명령어들은 인출과 실행 사이클을 반복하게 된다.

 

Reference

https://hongcoding.tistory.com/139?category=981717 

 

CPU의 구조와 원리

중앙처리장치(CPU)란? 중앙처리장치(CPU)는 명령어의 해석과 자료의 연산, 비교등의 처리를 제어하는 컴퓨터 시스템의 핵심장치이다. 다양한 입력 장치로부터 정보를 입력받아 처리한 후, 그 결과

hongcoding.tistory.com

 

profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!