[CPU 간략 요약]
CPU는 크게 ALU, CU(컨트롤 유닛), 레지스터로 구성되어 있습니다. CU는 명령어를 해독하여 어떤 부품이 어떤 작업을 실행해야 하는지, 어떤 연산을 실행해야 하는지 등을 결정짓는 역할을 합니다. ALU는 CU로부터 명령받은 산술, 논리 연산을 진행하게 됩니다. 레지스터는 ALU에서 실행된 연산의 결과값이나 연산에 사용될 데이터를 저장하는 역할을 합니다.
[CPU]

> ALU (Arithmetic Logic Unit)
: CPU 내부에서 연산을 담당하는 블록으로, 덧셈과 뺏셈과 같은 산술 연산과 AND와 OR같은 논리 연산을 수행합니다.
> 컨트롤 유닛 (Control Unit)
: 명령어 해독을 위해 존재하는 블록으로, 어떤 부품이 어떤 작업을 실행해야 하는지, 어떤 연산을 실행해야하는지를 결정해줍니다.
예를들어 ALU에게 1과 0으로 이루어진 명령어가 전송되었다고 가정해보겠습니다. ALU는 이 "명령어"라는 것이 명령어인지 아닌지, 무엇을 하는지 알 수가 없습니다. 이 명령어에 대한 해석을 컨트롤 유닛이 실시해주는 것입니다.
> 레지스터 (Register)
: CPU 내부에 존재하는 아주 작은 메모리로, ALU의 연산 결과나 연산을 위해 필요한 데이터들을 저장하는 공간입니다. 데이터는 2진 데이터(Binary Data) 형태로 저장됩니다.
> 버스 인터페이스 (Bus Interface)
: 그렇다면 명령어는 어디서 전송되는 것일까요? 컴퓨터는 여러 하드웨어로 구성되어 있으며, 이들은 독립적으로 존재하지 않고 데이터를 주고받을 수 있도록 설계되어 있습니다. 이 주고 받기 위한 매개체로써 입출력 버스(I/O Bus)가 존재하는데, 이것만 존재해서는 원할한 통신이 불가능합니다.
그렇다면 통신 해석을 위한 별도의 장치가 필요한데, 그것이 바로 버스 인터페이스입니다. 버스 인터페이스는 어떻게 데이터를 전송하는지, 어떻게 수신해야하는지 등의 프로토콜 또는 통신 방식을 해석할 수 있는 장치로써 역할을 수행하는 것입니다.
> 클럭 신호 (Clock Pulse)
: 클럭 신호는 구성요소까진 아니지만, 타이밍 기능을 위해 존재합니다. 1.6Mhz의 클럭 속도를 갖는 CPU는 초당 1,600,000(160만)번의 클럭을 발생시킨다는 것입니다. 이것은 초당 160만번의 작업(연산)을 수행할 수 있다는 뜻이 되는데, 어째서 이런 기능이 필요한 것일까요?
바로 동기화를 위해 존재합니다. 예를들어 다음과 같은 연산 과정이 있다고 가정해보겠습니다.

input 1과 input 2를 통해 데이터가 계속 들어오는 상황에서 + 연산 장치는 '+' 연산을 실시하고 출력 장치는 BUFFER에 존재하는 데이터를 가져가 출력하는 작업을 수행합니다. 만약 둘의 작업 속도가 다르다면 다음과 같은 문제가 발생할 수 있습니다.
1. 출력 장치 작업 속도가 빠를 경우 : 한 번 가져간 데이터를 다시 가져가 출력
2. 연산 장치 작업 속도가 빠를 경우 : 버퍼를 덮어써서 결과 일부가 출력되지 않을 수 있음
이 문제를 해결하는 방법이 바로 동기화입니다. 보통 가장 느린 작업에 다른 장치들의 속도를 동기화 시킵니다.
'컴퓨터과학 > 시스템' 카테고리의 다른 글
| [CS] 명령어 파이프라인(Instruction Pipeline) (0) | 2025.10.13 |
|---|---|
| [CS] 페이지 폴트(Page Fault) (0) | 2025.05.19 |
| [CS] 세그멘테이션(Segmentation) (0) | 2025.05.19 |
| [CS] 페이징(Paging) (0) | 2025.05.19 |
| [CS] 가상 메모리(Virtual Memory) (0) | 2025.05.18 |



















