컴퓨터 핵심 부품
주기억장치에는 크게 RAM(Random Access Memory)와 ROM(Read Only Memory), 두 가지가 있다.
메모리라는 용어를 보통 RAM을 지칭한다. 컴퓨터의 작동 원리를 파악하기 위해서는 주기억장치인 RAM에 대해서 이해해야 한다. 따라서 특별한 언급이 없는 한 주기억장치는 RAM을 이야기한다.
- 메인보드 안에 시스템 버스(양방향 수직 화살표)가 있다.
- CPU 내부에는 ALU(산술논리장치), 제어장치와 여러 가지 레지스터들이 존재한다.
- 메모리는 메인보드 내 시스템 버스와 연결되어 있다.
- 보조기억장치는 메인보드 내 시스템 버스와 연결되어 있다.
- 모니터, 키보드, 마우스 등은 메인보드 내 시스템 버스와 연결되어 있다.
메모리(Memory), 주기억장치(Primary Memory)
컴퓨터가 이해하는 정보는 명령어와 데이터이다. 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 즉, 프로그램이 실행되려면 반드시 메모리에 올라와(Load) 있어야 한다. (이때 프로그램의 모든 데이터가 한 번에 메모리 상에 로드되는 것은 아니다. 실행에 반드시 필요한 부분들이 로드되도록 운영체제가 메모리 최적화를 수행한다.)
이때 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터가 중구난방으로 저장되어 있으면 안 된다. 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다. 그래서 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address)라는 개념이 사용된다. 현실에서 우리가 주소로 원하는 위치를 찾아갈 수 있듯이 컴퓨터에서도 주소로 메모리 내 원하는 위치에 접근할 수 있다.
다음 그림은 1번지와 2번지에 명령어, 3번지와 4번지에 데이터가 저장되어 있고, 5번지와 6번지에는 아무것도 저장되어 있지 않은 상태의 메모리를 표현한 예시이다.
물론 이것은 메모리를 이해하기 쉽게 그림으로 나타낸 것일 뿐 실제로는 이와 같이 저장되지 않는다. 명령어와 데이터는 모두 0과 1로 표현되기 때문에 겉보기에는 마치 0과 1로 이루어진 데이터를 저장한 것처럼 보인다.
메모리에 대해서 일단은 아래 세 가지만 기억하면 된다.
- 프로그램이 실행되기 위해서는 반드시 메모리에 올라와 있어야 한다.
- 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.
- 메모리에 저장된 값의 위치는 주소로 알 수 있다.
CPU(Central Processing Unit)
CPU는 컴퓨터의 두뇌이다. CPU는 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 역할을 한다.
CPU의 역할과 작동 원리를 구체적으로 이해하기 위해서는 CPU 내부 구성 요소를 알아야 한다. 내부 구성 요소 중 가장 중요한 세 가지는 산술논리연산장치(ALU; Arithmetic Logic Unit), 레지스터(register), 제어장치(Control Unit)이다.
CPU를 구성하는 세 가지 부품의 역할
1. 제어장치는 1번지에 저장된 명령어를 읽어 들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보낸다.
2. 메모리는 1번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장된다. 제어장치는 읽어 들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단한다. 제어장치는 3번지와 4번지에 저장된 데이터를 읽어 들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보낸다.
3. 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들은 서로 다른 레지스터에 저장된다. ALU는 읽어 들인 데이터로 연산을 수행한다. 계산의 결괏값은 레지스터에 저장된다. 계산이 끝났다면 첫 번째 명령어의 실행은 끝이 난다.
4. 제어장치는 2번지에 저장된 다음 명령어를 읽어 들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보낸다.
메모리는 2번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장된다. 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단한다.
제어장치는 계산 결과를 저장하기 위해 메모리에 '메모리 쓰기'제어 신호와 함께 계산 결과인 220을 보낸다. 메모리가 계산 결과를 저장하면 두 번째 명령어의 실행도 끝난다.
- CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치이다.
- CPU 내부에는 ALU, 레지스터, 제어장치가 있다.
- ALU는 계산하는 장치, 레지스터는 임시 저장 장치, 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치이다.
보조기억장치(Secondary Memory)
앞서 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다고 했지만, 이 메모리는 두 가지 치명적인 약점이 존재한다.
- 가격이 비싸 저장용량이 적다는 점이고,
- 전원이 꺼지면 저장된 내용을 잃는다는 점이다. (휘발성 메모리, volatile memory)
컴퓨터로 작업하는 도중에 전원이 꺼지면 작업한 내역을 잃게 되는 이유는 실행 중인 프로그램들은 메모리에 저장되어 있는데, 메모리는 전원이 꺼지면 저장된 내용이 날아가기 때문이다.
이에 메모리보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요하게 되는데, 이 저장 장치가 바로 보조 기억장치이다.
하드 디스크, SSD, USB 메모리, DVD와 같은 저장 장치가 바로 보조기억장치의 일종이다. 컴퓨터 전원이 꺼져도 컴퓨터에 파일이 남아 있었던 이유는 우리가 파일을 보조기억장치에 저장했기 때문이다. 메모리가 현재 '실행되는' 프로그램을 저장한다면, 보조기억장치는 '보관할' 프로그램을 저장한다고 생각해도 좋다.
입출력장치
입출력장치는 마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.
보조기억장치로 알고 있었던 하드 디스크, USB 메모리, CD-ROM도 '컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 장치'로 볼 수 있지 않나? 그러면 보조기억장치도 결국 입출력장치 아닌가?라는 의문을 가질 수 있다.
이는 매우 좋은 지적이고 맞는 말이다. 보조기억장치는 관점에 따라 입출력장치의 일종으로 볼 수 있다. 실제로 보조기억장치와 입출력장치는 '컴퓨터 주변에 붙어있는 장치'라는 의미에서 주변장치(peripheral device)라 통칭하기도 한다. 다만 보조기억장치는 모니터, 마우스, 키보드와 같은 일반적인 입출력장치에 비해 메모리를 보조한다는 특별한 기능을 수행하는 입출력장치이다.
함께 읽으면 좋은 글
참고 사이트
'하드웨어 > 컴퓨터 구조' 카테고리의 다른 글
컴파일(Compile)이란? (0) | 2024.08.01 |
---|---|
바이트 크기에 대해서 (1) | 2023.12.14 |
논리 회로(Logic Gate)에 대해 알아보자 (0) | 2023.10.11 |
보수(Complement)에 대해서 알아보자 (2) | 2023.10.06 |
전기로 뺄셈을 표현하는 반감산기, 전감산기 (0) | 2023.09.21 |
댓글