본문 바로가기
Embedded System/Embedded Recipes

1.17 확장 to the CPU - How CPU works

by 리미와감자 2022. 8. 12.

1.17 확장 to the CPU - How CPU works

 

  CPU란 여러 가지 일을 할 수 있는 논리회로의 집합체이다. 인간으로 치면 두뇌에 해당하지만, 학습능력이 없고 그냥 시킨대로 정해진 일만 한다.

 

  • CPU의 동작 컨셉

  CPU에 약속된 특정 신호를 넣으면 CPU는 그 일을 착실히 수행하고 결과값을 내놓는다. 위의 그림에서 8bit CPU의 0~7번 pin에 약속된 신호를 주면 CPU는 그것에 해당된 약속된 일을 하는 것이다.

 

  예를 들어, sum = a + b를 계산하기 위해서 레지스터 R1에 a, 레지스터 R2에 b가 들어있고 그 결과를 레지스터 R0에 저장하는 매커니즘으로 CPU가 동작한다고 가정하자. 이 가정한 일을 동작토록 하기위해서 0~7번 핀에 약속된 신호 11001011을 넣어주면 CPU는 내부 레지스터 R1과 R2에 있던 값을 더해서 R0에 저장하는 일을 하게 된다.

 

  CPU는 이러한 단순한 일을하는 논리회로의 집합체이다.

 

  • CPU 구성

  CPU 내부는 크게 제어장치(CU), 연산장치(ALU), CPU 내부 저장공간인 레지스터집합 3가지로 이루어진다. 우선 CPU는 CU에서 입력받은 명령어를 해석하여 다른 Unit에 동작을 지시하는 일을 한다. 엄밀히 말하면, CU와 Decoder로 나눌 수 있다. Decoder가 명령어를 읽고 해석을 하면, CU는 이에 대한 각종 제어 신호를 발생한다.

 

  예를 들어, 위의 예에서 11001011이란 신호를 Decoder에서 해석하여 CU가 ALU에 더하기를 하라는 신호를 발생시킨다. 이외에도, 메모리에게 특정 주소를 Read하도록 신호를 발생시키는 일도 할 수 있다.

 

  ALU는 산술연산을 한다. 레지스터 파일은 산술연산 과정의 중간값이나 제어에 관한 결과 등을 임시저장하는 저장소이다.

 

  정리하면,

1. CU는 명령에 반응하여 컨트롤 신호를 발생시키고
2. ALU는 연산을 하고
3. 레지스터집합은 컨트롤 또는 연산 중간의 값들을 임시저장한다.

 

  • AVR Processor

  위 그림은 AVR MCU의 Schematic이다. CPU(Core) 내부에는 Program Counter(PC), 32개의 General Purpose Register들, 메모리로부터 명령어를 가져와서 담아 놓는 Instruction Register, ALU, 내부 RAM이 있다. ALU와 레지스터집합들만 보이고 CU는 보이지 않는데, 이 이유는 위의 Schematic이 Data flow diagram이기 때문이다. 사실 CPU 내부에 CU도 존재한다.

 

  CPU block 이외에 Flash, UART, I/O 등의 Peripheral Block들이 있고 이 Block들은 버스를 통하여 연결되어있다. 이런식으로 CPU 외에 여러 가지 기능을 포함하여 한 Chip으로 만든 것을 MCU(Micro Control Unit)라고 한다.

 

※ 메모리로부터 명령어(약속된 일련의 전기신호)를 가져오는 일을 Pipe Lining의 Fetch라고 한다.

 

※ 소프트웨어? 컴파일?

  전기적 신호 11001011 등의 명령을 외부메모리로부터 들어오는데, 이러한 신호를 Software라고 한다.이 0과 1로 이루어진 언어를 기계어라고 하며, 우리가 C나 C++으로 코딩을 하고 컴파일을 하면 컴파일러가 우리가 짠 코드를 기계어로 바꾸어준다. 즉, C나 C++ 같은 인간의 언어를 기계가 이해할 수 있는 기계어로 바꾸어주는 것을 컴파일이라고 한다.  

 

 


아래 주소에서 더 자세하게 확인할 수 있습니다.

http://recipes.egloos.com/4982160

 

확장 to the CPU - How CPU Works

CPU라는 거, 이 녀석은 논리회로의 집합체 입니다. 논리회로 하나만 구성하면 한가지 일만 하면 되지만, 요 CPU라는 여러 가지 일을 해낼 수 있는 논리회로의 집대성체 - 인간으로 치면 두뇌에 해

recipes.egloos.com

 

댓글