기본적인 컴퓨터 구조
🖥 폰 노이만 구조
오늘날의 컴퓨터는 대부분 미국의 수학자인 폰 노이만이 고안한 폰 노이만 구조를 따르고 있습니다.
이 구조가 등장하기 전에는 컴퓨터를 사용할 때마다 전선을 새롭게 연결하여 회로를 구성해야 했습니다. 하지만 폰 노이만은 이런 과정이 너무나 비효율적이라 생각했고, 하드웨어는 그대로 두면서 작업을 위한 프로그램만 메모리에 올려 사용하는 방식을 생각했습니다. 이러한 생각은 결과적으로 컴퓨터 이용을 간편하게 만들어 주었고, 운영체제를 비롯한 모든 프로그램이 메모리를 이용하기 때문에 오늘날 프로그래밍 또한 가능해졌습니다.
폰 노이만 구조는 운영체제와 관련된 내용을 이해할 때, 정말 중요한 바탕이 되니 꼭 이해하는 것이 좋습니다.
🤔 하드웨어 알아보기
CPU
CPU는 명령어를 해석하여 실행하는 장치로, 제어장치와 산술 논리 연산장치, 그리고 레지스터가 포함되어 있습니다.
제어장치 (Control Unit)
제어장치는 현재 실행되어야 할 명령어를 해석하여, 제어 신호를 보내고 CPU 내의 데이터 흐름을 조절하는 역할을 합니다. 명령어의 예시로 '메모리에 데이터를 저장해라(MOVE)', '두 데이터를 합해라(ADD)' 등이 있습니다.
산술 논리 연산장치 (Arithmetic Logic Unit)
산술 논리 연산장치는 말 그대로 덧셈, 뺄셈과 같은 산술 연산과 AND, OR과 같은 논리 연산을 하는 장치입니다.
레지스터 (Register)
레지스터는 CPU 내에서 임시로 사용하는 저장소이며, CPU의 연산 처리 속도를 높이기 위해 존재합니다. 레지스터는 여러 종류가 있으며, 각 레지스터의 크기는 CPU의 데이터 처리 환경(32bit/64bit)에 따라 결정됩니다. 만약 32bit 환경이라면, 레지스터에 담을 수 있는 데이터의 크기는 4GB(2^32 Byte = 4 x 2^30 Byte = 4GB)입니다.
그리고 레지스터는 종류가 정말 다양한데, 대표적으로 아래와 같은 것들이 있습니다.
- 데이터 레지스터(DR): 메모리에서 가져온 데이터를 임시로 보관하고 있는 레지스터
- 주소 레지스터(AR): 데이터 또는 명령어가 저장된 메모리의 주소를 저장하고 있는 레지스터
- 프로그램 카운터(PC): 다음에 실행되어야 할 명령어의 주소를 저장하고 있는 레지스터 (포인터 역할)
- 명령어 레지스터(IR): 현재 실행 중인 명령어를 저장하고 있는 레지스터
- 메모리 주소 레지스터(MAR): 메모리에서 데이터를 가져오거나, 저장할 때 해당 주소를 저장하는 레지스터
- 메모리 버퍼 레지스터(MBR): 항상 MAR과 함께 동작하며, 메모리를 오고 가는 데이터를 저장하는 레지스터
이 외에도 CPU가 사용하는 레지스터는 더 존재합니다. (Ex. 상태 레지스터)
System Bus
시스템 버스는 메인보드 내부에 포함된 장치입니다. 본문 상단의 그림에는 없지만, CPU와 메모리, 그리고 여러 주변장치들과 데이터를 주고받는 중요한 역할을 하기 때문에 추가적으로 소개하려 합니다. 시스템 버스는 총 3가지로 나뉘며, 각각 제어 버스, 주소 버스, 데이터 버스가 있습니다.
제어 버스 (Control Bus)
- 다음에 어떤 작업을 해야 할지 지시하는 제어 신호가 타고가는 길을 의미합니다.
- 제어 버스의 신호는 CPU, 메모리, 주변장치와 양방향으로 오고 갑니다.
주소 버스 (Address Bus)
- 메모리의 데이터를 읽거나, 쓰려할 때 어디에서 작업을 해야할 지에 대한 위치 정보가 오고 가는 길입니다.
- 주소 버스의 신호는 메모리, 주변장치와 연결되어 있으며 단방향입니다. (CPU → 메모리, 주변장치)
데이터 버스 (Data Bus)
- 버스들의 신호에 따라 메모리 버퍼 레지스터로부터 데이터를 실어 목적지로 옮길 때 사용하는 길입니다.
- 메모리 버퍼 레지스터와 연결되어 있으며, 단방향입니다.
- 버스에 실을 수 있는 데이터의 최대 크기(대역폭)는 CPU의 데이터 처리 환경(32, 64 Bit)을 따릅니다.
Memory Unit
모든 프로그램은 메모리에 올라간 이후 실행 가능합니다. 메모리에는 프로그램 실행에 필요한 데이터가 존재하며, CPU와 함께 움직이면서 작업이 이루어집니다. 또한 메모리에 한 번에 N Byte의 데이터를 읽거나, 쓸 수 있습니다. 이 크기는 레지스터와 동일하게 CPU의 데이터 처리 환경(32, 64 Bit)에 따라 결정됩니다. 이렇게 한 번에 처리 가능한 데이터의 단위를 워드(Word)라 부릅니다.
메모리의 종류는 크게 램(RAM)과 롬(ROM)이 있습니다.
RAM (Random Access Memory)
램은 컴퓨터가 빠른 액세스를 하기 위해 데이터를 단기간 동안 저장하는 장치이며, 휘발성과 비휘발성으로 나뉩니다.
휘발성 메모리에는 DRAM(Dynamic RAM)과 SRAM(Static RAM)이 있습니다. DRAM은 일정 시간이 지나면 저장된 데이터가 사라지는 특성을 지니고 있으며, 일반적으로 메인 메모리가 DRAM에 해당됩니다. 그리고 SRAM은 전력이 공급되는 동안에는 데이터를 보관할 수 있으며 속도 또한 빠릅니다. 하지만 비용적인 측면에서 비싸기 때문에, 주로 캐시 메모리와 같은 고속 메모리 정도에만 사용됩니다.
비휘발성 메모리에는 대표적으로 플래시 메모리(SD 카드, USB 드라이버 등)가 있습니다.
ROM (Read Only Memory)
롬은 전력이 끊겨도 데이터가 보존되는 장점이 있지만, 데이터를 한 번 저장하고 나면 더 이상 저장할 수 없습니다. 이런 특성 때문에 운영체제의 가장 기본 소프트웨어인 바이오스(Bios)를 저장하는 용도로 사용됩니다.
📚 참고 자료
'💻 컴퓨터공학 > 운영체제' 카테고리의 다른 글
CPU를 효율적으로 사용하기 위한 스케줄링 (0) | 2021.10.09 |
---|---|
프로세스와 쓰레드의 차이 (0) | 2021.10.03 |
운영체제(OS) 개요 (0) | 2021.09.28 |
댓글
이 글 공유하기
다른 글
-
CPU를 효율적으로 사용하기 위한 스케줄링
CPU를 효율적으로 사용하기 위한 스케줄링
2021.10.09 -
프로세스와 쓰레드의 차이
프로세스와 쓰레드의 차이
2021.10.03 -
운영체제(OS) 개요
운영체제(OS) 개요
2021.09.28