2014년 3월 20일 목요일

CPU가 알고싶어?(Do you want to know the CPU - Central Processing Unit ?)

컴퓨터에서 가장 중요한 역할을 수행하는 부품을 하나 뽑으라면 CPU라고 할 수 있다. 열손가락 깨물어 안 아픈 손가락이 없다고, 컴퓨터의 핵심부품들은 모두가 존재 이유가 있지만 가장 중요한 역할을 수행하는 것이 바로 CPU라는데는 이견이 없을 것이다. 사람으로 말하면 CPU는 우리의 두뇌역할을 하는 것이다. 단순히 두뇌역할을 한다고 말하기에는 두뇌의 기능이나 역할이 매우 다양한 반면에 CPU가 수행하는 역할은 그렇게 많지 않다는 차이가 있지만 우리 몸이 제대로 움직이게 해주는 것은 두뇌의 역할이며, 컴퓨터가 제대로 움직이도록 전체적인 운영관리를 책임지고 있는 것이 CPU이기 때문에 두뇌와 같은 역할을 수행한다고 말해도 무리가 없다. 일반적으로 좌뇌는 논리적 능력을, 우뇌는 감성적 능력을 담당한다고하니, CPU는 좌뇌에 가까운 기능을 수행한다고 할 수 있겠다.


컴퓨터 발전의 역사는 CPU 발전의 역사라고 할 수 있다. 오늘날 우리가 사용하는 CPU는 반도체 기술에 의해서 만들어진 것으로써 마이크로프로세서(Microprocessor)라고도 불린다.

그렇다면 이런 CPU는 어떻게 구성된 것일까? 일단 CPU 내부에는 몇가지 기능별로 구분되는 모듈이 있다. 다음 그림은 CPU의 내부 구성요소를 간단하게 보여주고 있다.


위 그림에서 가운데 녹색선으로 블록처리 되어있는 부분이 CPU로써 가장 기본적인 3가지 기능을 보여주고 있다. 각각의 기능을 요약하면 다음과 같다.
  • ALU(Arithmetic Logic Unit): CPU의 가장 기본적인 기능으로 산술논리 연산을 담당
  • CU(Control Unit): 데이터와 명령어의 흐름과 ALU의 처리를 제어하는 역할을 담당
  • Cache Memory: 컴퓨터의 주메모리와 CPU사이의 속도차이를 해결하기 위해서 CPU에 내장된 속도가 매우 빠른 메모리
우리가 저작권과 컴퓨터과학 교과목에서 사용하는 교재인 "Understanding Computers Today and Tomorrow"에서는 보다 세분화된 CPU 구성요소를 나타내고 있는데 아래 그림은 이러한 세분화된 CPU 구성을 보여주고 있다.

CPU의 세부 구성
추가적인 구성요소에 대해서 알아보자.

  • FPU(Floating Point Unit): 부동소수점(실수) 연산은 ALU만으로 처리하기에는 연산량이 소요되므실수연산만을 하는 기능
  • Prefetch Unit: 컴퓨터의 동작 속도를 높이기 위해서 현재 CU가 다음에 처리해야 할 명령어와 데이터를 미리 가져오는 기능
  • Decode Unit: Prefetch Unit이 가져온 명령어를 CU가 이해할 수 있는 형태로 해석하는 기능
  • Register: 연산에 필요한 데이터나 연산결과, 명령어, 명령어 처리순서등을 일시적으로 저장하는데 사용되는 고속의 메모리(CPU의 속도와 같이 동작하며, 일반적으로 캐시메모리보다 빠름)
  • BIU(Bus Interface Unit): CPU외부에 있는 메모리나 I/O와의 연결을 위한 인터페이스

Register와 관련해서는 아래 그림에 보다 자세한 내용이 있다. 아래 그림과 같이 CPU이외에도 주메모리와 플래시 메모리, 주변장치회로까지 하나의 칩으로 구성된 것을 마이크로콘트롤러(Microcontroller)라고 한다.

아래 그림에 나온 레지스터의 종류를 간단히 살펴보자.

  • Program Counter: 기계어로 변환된 명령어가 프로그램 메모리에 저장되어있는데, 현재 CPU가 수행하고 있는 명령어의 위치(주소)를 저장하고 있는 레지스터
  • Instruction Register: Prefetch Unit이 읽어들인 명령어를 Decode Unit이 해석할 수 있도록 저장하고 있는 레지스터
  • General Register: 범용레지스터라고하며, 연산과정이나 연산후의 데이터를 일시적으로 저장하는 레지스터


CPU의 동작속도는 동일한 CPU라면 당연히 클록속도가 높은 것이 빠르겠지만 몇년 전부터 CPU제조기술의 급속한 발전은 CPU안에 CPU 코어를 여러개 탑재하여 동시에 작업을 처리할 수 있는 멀티코어(Multi Core)방식이 도입되고 있다. 이러한 CPU는 내부에 2개, 4개, 8개의 코어가 들어있다고해서 듀얼코어, 쿼드코어, 옥타코어라고 불린다. 최근 등장한 스마트폰들이 쿼드코어나 옥타코어로 구성되어있으며, i5는 듀얼코어, i7은 쿼드코어로 구성되어있다.


AMD 8-Core CPU


댓글 없음:

댓글 쓰기