컴퓨터 구성요소의 핵심, CPU (중앙처리장치)

컴퓨터 구성요소의 핵심, CPU (중앙처리장치)

[작성일 : 2021년 5월 26일]

애플이 직접 개발한 CPU인 M1 칩을 보면, 최신 컴퓨터 기술에 관심이 생깁니다. 알아두면 좋을 컴퓨터 용어들과 현대 정보화 혁명을 이끈 컴퓨터 아키텍처에 대한 지난 포스팅에 이어, 이번에는 가장 중요한 컴퓨터 구성요소 중 하나인 CPU에 대해 살펴보도록 하겠습니다. 컴퓨터 활용능력 시험 준비과정에서도 이 글이 유용하게 쓰일 수 있었으면 합니다.




글의 순서

필수적인 컴퓨터 구성요소
중앙처리장치 (CPU, Central Processing Unit)
CPU 제어장치 (control unit) 구성요소
CPU 연산장치(ALU, arithmetic logic unit) 구성요소
CPU 레지스터(Register)


필수적인 컴퓨터 구성요소

컴퓨터의 뚜껑울 열면, 메인보드(Main Board)에 CPU, 메모리, 하드디스크와 같은 구성품들이 꽂혀 있는 것을 발견할 수 있습니다. 여기서, 메인보드는 중앙처리장치(CPU), 기억장치인 메모리, 입출력 기기들을 데이터 버스를 통해 연결시키는 역할을 합니다. 이렇게 연결된 장치들을 통해서 데이터를 처리하게 되는데, 현재 사용되고 있는 거의 모든 컴퓨터 들은 폰 노이만 아키텍처를 기반으로 하고 있습니다. 폰 노이만이 만든 아키텍처는 입력, 출력, CPU, 메모리로 구성되어 있습니다. 각각의 컴퓨터 구성요소와 역할을 빠르게 훑어보겠습니다.

※ 아키텍처 : 아키텍처는 뼈대가 되는 기본 구조를 뜻합니다. 건축학이나 건축 양식에 많이 사용되는 용어인데, 건축물의 뼈대뿐만 아니라 특성을 결정짓는 기본 구조를 말합니다. 구성요소, 구성요소들 사이의 관계, 구성요소들의 속성, 구성요소들과 주변 환경 사이의 관계, 구성요소들이 제공하는 인터페이스가 아키텍처를 이룹니다.




중앙처리장치 (CPU, Central Processing Unit)

중앙처리장치라는 이름을 가진 만큼, CPU는 컴퓨터의 핵심입니다. CPU는 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고, 명령을 실행하는 장치입니다. 사람과 비교했을 때, CPU는 두뇌와 같은 역할을 합니다. CPU는 제어장치(control unit)와 연산장치(arithmetic logic unit, 산술논리장치), 그리고 레지스터로 구성되며, 이 구성장치들은 내부버스로 연결되어 있습니다.

▶ 제어장치는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하며, 명령과 입력, 출력 값을 처리하는 역할을 합니다. 제어장치는 메모리에서 읽어 들인 명령어를 해독한 후, 작업을 해야 할 장치에 제어 신호를 보내서 작업을 수행하도록 지시합니다.

▶ 연산장치는 제어장치의 명령에 따라 실제로 연산을 수행합니다. 여기서 연산이라 함은 두 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 수학적인 연산과 참, 거짓의 판단과 같은 논리연산, 두 수의 크기를 비교하는 관계연산, 이동 등을 의미합니다.

▶ 레지스터는 명령을 처리하는 데 사용하는 CPU 내부의 기억장치, 즉 메모리입니다. 레지스터는 CPU내에서 처리해야할 명령어, 연산에 사용할 데이터, 연산 결과 데이터를 일시적으로 저장하는 곳이며, 메모리 장치 중 가장 빠른 속도로 작동합니다.


CPU 제어장치 (control unit) 구성요소

제어장치는 프로그램 카운터(PC, program counter), 명령 레지스터(IR, Instruction register)와 같은 레지스터, 디코더, 엔코더, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등으로 구성되어 있습니다. 이런 CPU 구성요소들을 하나씩 살펴보겠습니다.

▶ 프로그램 카운터 : 프로그램 카운터는 다음번에 실행할 명령어의 주소를 기억하는 레지스터입니다. 현재 하나의 명령을 처리하고 있는데, 다음 명령이 다시 입력되었을 경우, 다음 명령의 번지수가 레지스터에 기억됩니다.

▶ 명령 레지스터 : 명령 레지스터에는 현재 실행 중인 명령의 내용이 기억됩니다.

▶ 디코더(decoder) : 디코더를 명령 해독기라고 합니다. 명령 레지스터에 올라온 명령어를 해독합니다. 만약 ‘open’라는 명령어가 명령 레지스터에 올라와 있다면, 파일을 열라는 뜻으로 해독해 냅니다.

▶ 엔코더(encoder) : 엔코더를 부호기라고 합니다. 디코더를 통해 명령을 해독해 내면, 엔코더는 명령에 따라 장치로 보낼 제어신호를 생성합니다.

▶ 메모리 주소 레지스터(MAR, memory address register) : 명령을 처리하다보면 CPU 내부의 기억장치인 레지스터에 데이터가 들락날락 합니다. 이 데이터의 주소(번지수)가 MAR 레지스터에 기억됩니다.

▶ 메모리 버퍼 레지스터(MBR, memory buffer register) : 메모리 버퍼 레지스터에서 버퍼는 임시 기억장소를 뜻합니다. MBR에는 데이터 자체가 기억됩니다.


CPU 연산장치(ALU, arithmetic logic unit) 구성요소

연산장치는 가산기(adder), 보수기(complementor), 누산기(AC, accumulator), 데이터 레지스터(data register), 상태 레지스터(status register), 인덱스 레지스터(index register) 등으로 구성됩니다.

덧셈연산 하나를 예로 들어보겠습니다. 만약 컴퓨터에 ‘3+4’라는 연산을 명령했다면,

▶ 데이터 레지스터 : 데이터 레지스터에 3과 4가 기억됩니다. 데이터 레지스터는 연산에 사용될 데이터 자체를 기억합니다.

▶ 가산기 : 덧셈을 수행하기 위해 데이터 레지스터에 있던 3과 4를 가산기로 보냅니다. 가산기는 2진수 덧셈을 수행하고 7이라는 숫자를 생성해냅니다.

▶ 누산기 : 가산기에서 생성된 7이라는 숫자를 누산기로 보냅니다. 누산기는 연산 결과를 일시적으로 저장하는 레지스터입니다.

▶상태 레지스터 : 만약 ‘3+7’과 같은 숫자가 아니라 컴퓨터가 처리할 수 있는 숫자의 범위를 벗어난다면 어떻게 될까요? 상태 레지스터는 계산 과정 중 발생할 수 있는 상태 값이 저장되는 곳입니다. 만약 어마어마하게 큰 숫자가 더해져서 컴퓨터가 처리할 수 있는 수의 범위를 넘어섰다면 오버플로(overflow)라는 상태 값을 발행합니다. 이와는 반대로 컴퓨터가 처리할 수 있는 최소값보다 작을 때는 언더플로(underflow)라는 상태 값을 발행합니다. 이 밖에도 상태 레지스터에 저장되는 상태값은 부호, 자리올림, 인터럽트 등이 있습니다. 여기서, 인터럽트(interrupt)는 ‘방해하다’라는 뜻입니다. CPU가 어떤 명령을 실행하고 있는데 당장 처리해야 하는 다른 명령이 생겼을 경우, 인터럽트 신호를 보내서 먼저 처리해야 하는 프로그램을 처리하고 다시 예전 프로그램으로 돌아가는 것을 말합니다.

▶ 인덱스 레지스터 : 인덱스 레지스터는 주로 데이터가 저장되어 있는 메모리 주소를 가리키는 포인터로 사용됩니다. 프로그래머가 내용을 변경할 수 있습니다.


CPU 레지스터(Register)

레지스터는 CPU 내부에 있는 임시 기억장소입니다. CPU가 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 저장합니다. CPU가 한 번에 처리할 수 있는 데이터의 크기는 레지스터의 크기에 좌우됩니다. 레지스터를 구성하는 요소는 플립플롭(Flip-Flop)과 래치(Latch)입니다.

▶ 플립플롭 : 플립플롭은 1비트의 정보를 기억할 수 있는 기억소자입니다. 여기서 1비트는 0 또는 1을 의미합니다. 플립플롭이 1개이면 1비트만 기억할 수 있지만, 여러 개면 그 만큼의 비트 수만큼 기억할 수 있습니다. 레지스터는 이러한 플립플롭이 여러 개 모인 것을 뜻합니다.

▶ 래치 : 래치는 1비트 이상 입력된 값을 다음 입력이 있기 전까지 그대로 유지해주는 장치입니다.


마치며 …

이 포스팅에서는 컴퓨터의 구성요소 중 가장 중요한 CPU에 대해 살펴보았습니다. CPU는 중앙처리장치라는 이름을 가진 만큼, 컴퓨터의 핵심 구성요소입니다. CPU는 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고, 명령을 실행합니다. CPU는 제어장치(control unit)와 연산장치(arithmetic logic unit, 산술논리장치), 그리고 레지스터로 구성되며, 이 구성장치들은 내부버스로 연결되어 있습니다.

CPU의 구성장치들인 제어장치, 연산장치, 그리고 레지스터에 대해서도 자세히 알아보았습니다. 커피 한잔 마시며 가볍게 보기에는 약간 부담스러울 수도 있겠으나, 이 글이 최신 컴퓨터 기술에 대해 관심이 있으신 분들, 컴퓨터 활용능력 시험을 준비하시는 분들께 도움이 되길 바랍니다.



연관 포스팅 :
윈도우용 퀄컴 스냅드래곤 X 시리즈 칩
GPU와 인공지능. 엔비디아 2023년 주가 폭등의 이유
애플 M1 칩, 그리고 컴퓨터 기본 구조
알아두면 좋을 컴퓨터 작동원리. 폰 노이만 아키텍처
64비트 CPU가 한 번에 처리할 수 있는 정보의 양, 엑사바이트
이진수 데이터. 디지털 컴퓨터와의 소통 수단


참고자료

[1] [시나공 컴활1급] 037 중앙처리장치
[2] 인터럽트 [interrupt] (천재학습백과 초등 소프트웨어 용어사전)
[3] 인텔, 클럭 속도는 무엇입니까?



Leave a Comment