be programmer
컴퓨터 시스템의 기본 구조 본문
컴퓨터 시스템의 하드웨어 구조 및 동작 원리
1. 컴퓨터 시스템의 기본 구조
컴퓨터 시스템은 크게 CPU(중앙처리장치), 메인 메모리(RAM), 입출력 장치(I/O Devices), 입출력 컨트롤러(I/O Controller) 로 구성된다. 각 구성요소는 시스템 버스(System Bus) 또는 이에 해당하는 내부 인터커넥트를 통해 데이터를 주고받는다.
1.1 컴퓨터 시스템의 구성 요소
text
+---------------------------------------------------------+
| CPU |
| +----------------+ +----------------+ +-------------+ |
| | Control Unit | | ALU | | Registers | |
| +----------------+ +----------------+ +-------------+ |
+---------------------------+-----------------------------+
|
System Interconnect
|
+-----------------+------------------+
| | |
+------+-------+ +------+--------+ +------+--------+
| Main Memory | | I/O Controller| | I/O Controller|
| (RAM) | | (Storage) | | (Network) |
+--------------+ +------+--------+ +------+--------+
| |
+-----+-----+ +-----+------+
| SSD / HDD| | Network NIC|
+-----------+ +------------+
- CPU(Central Processing Unit): 프로그램의 명령어를 해석하고 실행한다.
- 메인 메모리(Main Memory): 현재 실행 중인 프로그램과 데이터를 저장한다. 일반적으로 DRAM을 사용한다.
- 입출력 장치(I/O Devices): 저장장치, 키보드, 디스플레이, 네트워크 장치 등 외부와 데이터를 주고받는 장치이다.
- 장치 컨트롤러(Device Controller): CPU와 운영체제가 장치를 제어하고 데이터를 주고받을 수 있도록 중개한다.
- 시스템 버스(System Bus) 및 인터커넥트: 구성요소 사이에서 주소, 데이터, 제어 정보를 전달한다.
위 그림은 개념을 이해하기 위한 단순화된 구조이다. 실제 현대 컴퓨터에서는 메모리 컨트롤러가 CPU 내부에 통합되기도 하고, PCIe와 같은 고속 인터커넥트 및 여러 단계의 버스 구조를 사용하기도 한다. 따라서 모든 구성요소가 하나의 공통 시스템 버스에 직접 연결된다고 이해하면 안 된다.
1.2 CPU의 주요 구성 요소
ALU(Arithmetic Logic Unit, 산술논리장치)
산술 연산과 논리 연산을 수행하는 하드웨어 구성 요소이다.
- 산술 연산: 덧셈, 뺄셈 등
- 논리 연산: AND, OR, NOT, XOR 등
- 비교 연산: 두 값의 크기 비교 및 동일 여부 판단
제어장치(Control Unit)
명령어를 해석하고 CPU 내부 구성요소와 다른 하드웨어에 제어 신호를 전달한다.
- 명령어 인출 및 해독 제어
- 레지스터와 ALU 사이의 데이터 이동 제어
- 메모리 읽기 및 쓰기 제어
- 분기 및 예외 처리 흐름 제어
레지스터(Registers)
CPU 내부에서 명령어 실행에 필요한 데이터, 주소, 상태 정보 등을 저장하는 고속 기억장치이다.
- PC(Program Counter): 다음에 실행할 명령어의 주소를 나타내는 레지스터이다.
- IR(Instruction Register): 현재 해독하거나 실행할 명령어를 저장하는 레지스터이다. 단, 모든 CPU가 동일한 형태의 IR을 외부에서 관찰할 수 있는 것은 아니다.
- MAR(Memory Address Register): 메모리 접근에 사용할 주소를 저장하는 레지스터를 설명할 때 사용하는 전통적인 모델상의 용어이다.
- MBR/MDR(Memory Buffer Register / Memory Data Register): 메모리에서 읽거나 메모리에 기록할 데이터를 임시 저장하는 레지스터를 설명할 때 사용하는 용어이다.
- 상태 레지스터(Status Register) / PSW(Program Status Word): 연산 결과의 상태 플래그, 인터럽트 관련 상태, 실행 모드 등 아키텍처에서 정의한 상태 정보를 저장한다.
PC, IR, MAR, MDR 등의 구분은 컴퓨터 구조의 기본 원리를 설명하는 데 유용하다. 하지만 실제 프로세서의 내부 구조는 ISA(명령어 집합 구조)와 마이크로아키텍처에 따라 달라지므로, 모든 CPU가 이 레지스터들을 동일한 이름과 형태로 갖는 것은 아니다.
1.3 인스트럭션 사이클(Instruction Cycle)
CPU는 프로그램의 명령어를 인출하고 해독한 뒤 실행하는 과정을 반복한다. 기본적인 명령어 처리 과정은 다음과 같다.
- Fetch(인출): PC가 가리키는 주소에서 명령어를 가져온다. 이후 PC는 일반적으로 다음 명령어의 주소를 가리키도록 갱신된다.
- Decode(해독): 제어장치가 명령어의 연산 코드(Opcode)와 피연산자 정보를 해석한다.
- Execute(실행): ALU 연산, 데이터 이동, 메모리 접근, 분기 등의 작업을 수행한다.
- 결과 기록(Write-back): 연산 결과를 레지스터나 메모리에 기록한다. 모든 명령어가 이 단계를 사용하는 것은 아니다.
- 인터럽트 및 예외 처리 확인: 아키텍처가 정의한 시점에 처리 가능한 인터럽트나 예외를 확인하고 필요한 경우 처리 절차로 진입한다.
위 단계는 이해를 돕기 위한 개념적 모델이다. 실제 CPU에서는 여러 명령어의 인출·해독·실행 단계가 파이프라이닝을 통해 중첩될 수 있다. 또한 인터럽트 확인이 반드시 모든 명령어 실행 직후 독립적인 단계로 수행되는 것은 아니다. 정확한 처리 시점은 CPU 아키텍처에 따라 다르다.
'cs > 운영체제' 카테고리의 다른 글
| 인터럽트 메커니즘 (0) | 2026.10.29 |
|---|---|
| 리눅스 관련 명령어들 (0) | 2026.10.16 |