컴퓨터 시스템은 무엇으로 이루어져 있을까?

컴퓨터의 구성은 크게 CPU, 기억 장치(Memory), 입출력장치(I/O)와 시스템 버스로 이루어져있다.
CPU(중앙 처리 장치)
CPU(Central Processing Unit)는 메모리에서의 명령어를 해석하고 수행하는 역할을 맡는다.
CPU는 세부적으로 CU, ALU와 Register로 나뉘는데 각각에 대해서 알아보자.
CU(Control Unit)
제어 장치인 CU는 IR(명령어 레지스터)에 저장되어 있는 명령어를 해석한 후,
해석 결과에 따라 ALU, Register, Memory, I/O 등으로 제어 신호를 보낸다.
ALU(Arithmetic and Logical Unit)
연산 장치인 ALU는 CU로부터 제어 신호를 받아 레지스터에 있는 피연산자로 연산을 처리한다.
ALU 연산은 산술 연산과 논리 연산이 있다.
산술 연산은 덧셈, 뺄셈 등의 연산이며
논리 연산은 비트 연산(AND, OR, NOT 등)을 의미한다.
Register
레지스터는 명령어나 명령어 주소, 데이터 값을 일시적으로 저장하는 저장 장치이다.
CPU 내부에 있으므로 매우 빠른 속도로 동작한다!
레지스터의 종류는 PC, IR, MAR, MBR, FR, GPR, SP, BR이 있다.
레지스터도 다룰 내용이 굉장히 많다! 기회가 된다면 따로 포스팅을 작성해보겠다.
기억 장치
기억장치는 프로그램과 데이터를 저장하는 장치이다.
여러 기억 장치 중
- 레지스터는 → CPU 내부에 존재
- 캐시 메모리(Cache Memory)는 → CPU와 주기억장치 사이에 존재
- 주기억장치(Main Memory)는 → 컴퓨터 내부에 Memory로써 존재
- 보조기억장치(Secondary Storage)는 → 외부 저장 장치에 존재한다.
캐시(Cache)
캐시 메모리(Cache Memory)는 CPU와 주기억장치 사이에 존재하는 메모리로, 주기억장치보다 데이터에 접근하는 속도가 빠르다.
CPU가 데이터를 연산할 때,
캐시에 연산 데이터가 없으면(cache miss 이면) → 주기억장치에서 데이터를 가져와야 한다.
캐시에 연산 데이터가 있으면(cache hit 이면) → 캐시에서 데이터를 가져온다.
캐시 적중률은 원하는 데이터가 캐시 메모리에 존재할 확률이다.
이 확률이 높을수록 CPU가 주기억장치 대신 캐시에서 데이터를 바로 가져오기 때문에 성능이 좋다.
연산 후의 데이터는 "주기억장치 + 캐시" 또는 "캐시"에 저장된다.
Write-Through는 결과 데이터를 주기억장치와 캐시에 모두 저장되는 방식이며,
Write-back은 결과 데이터를 캐시에만 저장하고, 주기억장치는 해당 캐시가 다른 값으로 교체될 때 주기억장치에 갱신되는 방식이다.
주기억장치(Main Memory)
주기억장치는 CPU가 실행할 프로그램과 데이터를 저장하는 기억장치이다.
주기억장치에 있는 데이터를 가져와 CPU의 레지스터로 적재(Load)하고,
CPU의 레지스터에서 주기억장치에 데이터를 저장(Store)한다.
주기억장치는 RAM(Random Access Memory)과 ROM(Read Only Memory)로 분류된다.
RAM(Random Access Memory)
RAM은 전원이 공급되지 않으면 저장된 내용이 사라지는 휘발성 메모리이다.
주로 연산의 중간 값이나 임시 데이터를 저장하며,
RAM은 SRAM(정적 램)과 DRAM(동적 램)으로 나뉜다.
- SRAM: Flip-Flop으로 회로로 구성되어 있으며, 리프레시 과정이 필요없어 DRAM보다 속도가 빠르다.
- DRAM: 콘덴서(Capacitor)로 구성되어 있으며, 리프레시 과정이 필요하다.
※ 리프레시: 전하가 새어나갈 경우 전하를 충전하는 과정으로, 전하 상태를 읽어 원래 값을 다시 메모리에 써주어야 한다.
ROM(Read Only Memory)
ROM은 전원이 공급되지 않아도 데이터가 사라지지 않는 비휘발성 메모리이다.
따라서 사라지면 안되는 펌웨어, BIOS와 같은 프로그램을 저장한다.
ROM 종류로는 PROM, EPROM, EEPROM 등이 있다.
보조 기억 장치(Secondary Storage)
보조기억장치는 RAM의 데이터 휘발과 용량 제한으로 인해 주기억장치에 모두 저장할 수 없는 프로그램과 데이터를 장기적으로 저장한다.
CPU가 필요로 할 경우엔 해당 프로그램과 데이터를 주기억장치로 불러와 사용하며, 주기억장치에 비해 속도는 느리다.
보조기억장치는 데이터의 접근 방식에 따라 순차 접근 기억장치(SASD)와 직접 접근 기억장치(DASD)로 분류된다.
- 순차 접근 기억 장치: 저장 데이터를 차례대로 찾는 장치(ex: Magnetic Tape)
- 직접 접근 기억 장치: 저장 데이터의 주소로 바로 데이터에 접근하는 장치(ex: Magnetic Disk, HDD, SSD)
입출력장치(I/O Device)
입출력장치는 컴퓨터 외부에서 데이터를 입력받고 출력하기 위한 장치이다.
- 입력 장치: 키보드, 마우스, 스캐너 등으로, 외부 데이터를 컴퓨터 내부로 전달한다.
- 출력 장치: 프린터, 디스플레이 등으로, 컴퓨터 처리 결과를 외부로 전달한다.
- 저장 장치: FDD, HDD, MOD 등으로, 데이터와 프로그램을 장기저장한다.
- 따라서 보조기억장치도 I/O 장치의 한 종류로 분류된다.
:)