IT보안 학습

CPU에 대한 구조적 이해 총정리

김구티2 2023. 12. 12. 22:45

 

1. CPU(Central Processing Unit)의 개념

모든 단일 컴퓨팅 장치에는 CPU가 있다. CPU를 해석하면 중앙 처리 장치인데, 프로세서 또는 마이크로 프로세서로 불리기도 한다. CPU는 입력장치로부터 자료를 받아 연산하고 그 결과를 출력장치로 보내는 일련의 과정을 제어 및 조정하는 핵심장치로, 사람의 두뇌 혹은 심장에 비유되기도 한다. 더욱 쉽게 요약하면, CPU는 명령에 응답하고 처리하는 것이라 보면 된다.

 

1.1 CPU의 구성요소

구성요소 설명
ALU(Arithmetic Logic Unit) 연산장치로, 각종 산술연산들과 논리연산들을 수행하는 회로이다.
산술연산은 +, −, ×, ÷ 같은 것들이고, 논리연산은 AND, OR, NOT, XOR 같은 것들을 포함한다.
Register 레지스터는 CPU 내부의 소규모 데이터나 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역으로, 컴퓨터 기억장치 중 액세스 속도가 가장 빠른 특징을 지닌다.
CU(Control Unit) 제어 장치는 프로그램의 명령어를 해석하고, 그것을 실행하기 위한 제어 신호를 만든다. 입력과 출력의 흐름을 조절한다고 볼 수도 있다.
내부 CPU 버스 ALU와 레지스터 간의 데이터 이동을 위한 경로를 의미한다.

 

1.2 CPU의 명령 실행주기(Instruction Cycle)

CPU의 명령어 처리는 하나의 명령어 실행이 끝난 후, 다음 명령어의 수행이 시작되어 끝날 때까지 걸리는 시간을 말한다. CPU는 한 번에 하나의 명령을 수행하기 때문에 이 주기를 관리하는 것이 성능으로 이어지므로, 이를 잘 이해하는 것이 중요하다. 한 명령을 수행하는 데 있어 명령 인출, 해석, 피연산자 인출, 실행, 결과 저장 등 세부적으로 따지면 정말이지 여러 단계를 거치는데, 이것을 나는 크게 4가지로 구분하려 한다. 이는 나의 편의에 따른 구분일 뿐, 필수적인 2단계로 하는 것도, 더 세부적으로 늘려 이해를 더 깊게 하는 것도 좋을 것이다.

단계 설명
인출(Fetch) 인출 단계는 메모리에서 데이터를 불러와서 CPU에 있는 레지스터에 적재하는 과정이다.
간접(Indirect) 메모리를 참조할 때 간접주소 방식을 실행하는 경우에 실행한다.
간접주소는 CPU가 메모리에서 참조했을 때 데이터가 존재하는 것이 아니라 메모리에 주소가 존재하여 메모리 내에서 한 번 더 조회해서 데이터를 얻는 것이라 할 수 있다.
실행(Execution) 명령과 데이터로 CPU가 산술 및 논리연산을 수행하는 것이다.
인터럽트(Interrupt) 컴퓨터 작동 중 예기치 않은 문제가 발생한 경우라도 업무 처리가 계속될 수 있도록 하는 컴퓨터 운영체제의 한 기능으로, 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉜다.
하드웨어 인터럽트는 기계착오 인터럽트, 외부 인터럽트, 입출력 인터럽트, 프로그램 검사 인터럽트 등을 포함하는 개념이다.
반면, 소프트웨어 인터럽트는 CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에 관련된 모듈이 변화하는 경우에 발생한다고 볼 수 있다.

2. 내부 레지스터의 종류

종류 주요 기능
PC(Program Counter) 다음에 수행할 명령어가 저장된 주기억장치의 번지를 지정한다.
MAR(Memory Address Register) 주기억장치에 접근하기 위한 주기억장치의 번지를 기억한다.
MBR(Memory Buffer Register) 주기억장치에 입/출력할 자료를 기억한다.
IR(Instruction Register) 주기억장치에서 인출한 명령코드를 기억한다.

 

3. 시스템 버스의 개념

 

버스는 시스템에 많은 장치를 공유하여 데이터, 주소, 제어 정보를 전달하는 전송 라인이다. 한정된 자원이므로 버스를 획득하기 위한 경합이 많이 발생할 수 있기 때문에 사용하는 방식에 따라 입출력 성능에 영향을 줄 수 있다.

 

3.1 버스의 종류

종류 설명
데이터 버스(Data Bus) 시스템 컴포넌트 간 처리 데이터를 전송하기 위한 용도이다.
주소 버스(Address Bus) 기억장소의 위치 또는 장치 식별을 지정하기 위한 라인이다.
라인의 비트 수에 따라 접속될 수 있는 장치의 용량이 결정된다.
제어 버스(Control Bus) CPU와 기억장치 또는 I/O 장치 사이의 제어 신호를 전송하는 라인이다.

 

※ CPU 코어의 의미

PC에 친숙한 사람들에게는 코어라는 단어가 낯설지 않을 것이다. 기본적으로 코어는 CPU 자체이며, 메인 CPU 칩 내부에 있는 별도의 장치이다. CPU는 일반적으로 한 번에 하나의 작업만 수행할 수 있는데, 이런 CPU에 코어가 많아진다는 것은 계산 능력의 향상을 의미한다. 동시에 실행하고 완료할 수 있는 작업이 늘어나면서 이른바 멀티태스킹 작업이 가능해지는 것이다. 예를 들어, 두 개의 코어가 있는 듀얼 코어의 경우 동일한 칩에 두 개의 CPU가 있어 동시에 두 개의 명령을 내릴 수 있다. 그러니 사람들이 쿼드, 헥사, 옥타로 점점 욕심을 낼 수 밖에 없게 되는 것이다. 특히 고사양의 게임을 하거나, PC를 통한 작업을 하는 사람이라면 말이다.

 

※ 하이퍼스레딩

위에서 코어를 더블, 쿼드, 헥사로 늘려가는 것은 물리적인 수가 늘어나는 것이다. 그런데 IT에서는 언제나 물리적인 요소가 있다면, 논리적인 요소도 있지 않은가. 하이퍼스레딩은 단일 물리적 코어가 여러 물리적 코어로 나타나 마치 실제보다 더 많은 코어가 있는 것처럼 만드는 것이다. 그러니 만약 물리적으로 코어도 최대한으로 확보하고, 거기에 하이퍼스레딩까지 더한다면 정말이지 엄청난 속도의 PC가 될지도 모르겠다.

728x90