💻 7. 컴퓨터 시스템 구조 완벽 정리
안녕하세요! 오늘은 컴퓨터공학의 기초 중에서도 아주 중요한 **‘컴퓨터 시스템 구조’**에 대해 정리해보려고 합니다.
✅ 컴퓨터 시스템이란?
컴퓨터 시스템은 크게 하드웨어(Hardware) 와 소프트웨어(Software) 로 나뉜다.
- 하드웨어: 눈에 보이고 손으로 만질 수 있는 물리적인 장치들 (예: CPU, 메모리, 마우스, 모니터, ROM, RAM등)
- 소프트웨어: 하드웨어를 작동시키기 위한 프로그램 (예: 운영체제, 컴파일러, 유틸리티 등)
🧠 컴퓨터 시스템의 기본 구성
컴퓨터는 다음과 같은 다섯 가지 주요 구성 요소로 이루어져 있어요.
- 입력 장치: 데이터를 입력 (예: 키보드, 마우스)
- 중앙처리 장치 (CPU): 모든 연산과 제어를 담당(연산 장치 + 제어 장치)
- 주기억 장치: 실행 중인 프로그램과 데이터를 저장
- 보조기억 장치: 장기 저장 (예: SSD, HDD, USB 등)
- 출력 장치: 처리 결과를 출력 (예: 모니터, 프린터)
🧩 중앙처리 장치 (CPU)의 구조
CPU는 크게 세 부분으로 구성돼요:
- 연산 장치 (ALU): 사칙연산, 논리연산 등 실제 계산 담당
- 자료의 비교, 판단, 이동, 편집 - 제어 장치: 명령어 해석 및 각 장치 제어
- 각종 입출력 장치, 기억 장치, 연산 장치 등의 동작을 제어함
- 해독된 명령들을 각 장치에 보내 처리하도록 지시하는 일을 담당함 - 레지스터: 데이터를 임시 저장하는 초고속 기억장치
💡 CPU는 흔히 마이크로프로세서라고도 불리며, CISC와 RISC 구조로 나뉘어요.
- CISC(Complex Instruction Set Computer)(ex. 인텔)
- 마이크로 프로그래밍을 통한 다양한 명령어 형식을 제공
- 명령어의 수가 많고 구조가 복잡하여 생산 단가가 비쌈 - RISC(Reduced Instruction Set Computer) (ex. ARM)
- 연산 속도를 향상시키기 위해 제어 논리를 단순화시킴
- 단순화된 명령어 구조를 가짐
- 가격이 저렴하며 주로 워크스테이션에 쓰인다.
시스템 소프트웨어(System Software)
1. 시스템 소프트웨어
- 사용자가 복잡한 하드웨어를 모르고서도 사용할 수 있게 도와주는 프로그램
- 종류에는 운영체제, 언어 번역 프로그램, 유틸리티(utility) 등이 있다.
- 운영체제는 컴퓨터의 전체적인 작동을 관리하는 프로그램
- 언어 번역프로그램 중 어셈블리 프로그램을 번역하는 프로그램 어셈블러(Assembler), 고급 언어를 번역하는 프로그램을 컴파일러(Comiler)라고 부른다.
- 유틸리티 프로그램은 컴퓨터의 조작을 편리하게 해주는 프로그램
- 대부분의 유틸리티 프로그램은 컴퓨터 제작 회사에서 제공하고 있다.
운영체제
- 감시 프로그램
- 작업 관리 프로그램
- 데이터 관리 프로그램
- 문제 처리 프로그램
- MS-DOS, Windows XP/7/8/10, UNIX, Linux
언어 번역 프로그램
- 어셈블러
- 컴파일러
- 인터프리터
- 프리프로세서
유틸리티
- 정렬, 조합, 편집 프로그램
- 파일 압축 유틸리티
- 디스크 관련 유틸리티
2. 디바이스 드라이버(Device Driver)
- '장치 구동기'
- 하드웨어와 운영체제의 중간에 위치한다.
- 하드웨어 장치들을 동작시키는 일을 한다.
※ 펌웨어(Firmware)
- 시스템의 효율을 높이기 위해 ROM에 들어 있는 기본적인 프로그램
- ROM에 고정되어 있기 때문에 하드웨어의 특성도 가지고 있으나, 실제로는 소프트웨어에 더 가깝다
- 전형적인 처리 루틴, 비휘발성, 변경불가 등의 특징이 있다.
📥 명령어의 실행 과정
명령어는 크게 두 단계로 실행돼요:
- Fetch (가져오기): 주기억장치에서 명령어를 가져옴
- Execute (실행): 가져온 명령어를 해석하고 실행
명령어 수행
- 컴퓨터의 중앙처리 장치는 주기억 장치에 기억되고 있는 프로그램 명령어를 호출하는 패치 과정을 수행하고 해독함
- 해독된 결과를 따라 자료를 이동시키고(transfer) 연산과 입출력을 실행
- 이때 명령어를 패치하는 시간을 패치 사이클(fetch cycle)이라 한다.
- 명령어의 내용에 따라 수행되는 시간을 실행 사이클(execution cycle)이라 한다.
이 두 단계를 반복하면서 프로그램이 동작합니다.
💡 실행 도중 인터럽트가 발생할 수 있어요. 예를 들어 I/O 요청이 들어오면 CPU는 현재 작업을 멈추고 요청을 처리합니다.
※ 인터럽트란? 프로그램의 실행 도중 운영체제나 시스템에 의해서 실행 중인 프로그램이 잠시 중단된 후 특정한 작업을 수행하는 것.
✳️레지스터의 종류
레지스터(register)는 중앙처리장치에 있는 기억 장소로 명령어의 실행 과정에서 발생하는 중간 값을 저장한다.
범용 레지스터와 특수 목적 레지스터가 있다.
✅ 특수 목적 레지스터
1. 메모리 버퍼 레지스터(Memory Buffer Register: MBR): 주기억 장치에서 페치한 데이터나 명령어를 임시 보관하고, 중앙처리장치에서 처리한 결과를 주기억장치에 저장하기 전에 잠시 보관하는 레지스터
2. 메모리 어드레스 레지스터(Memory Address Register:MAR): 기억 장치 내의 자료를 저장하거나 읽어 올때 주소를 저장하는 레지스터
3. 명령어 레지스터(Instruction Register:IR) : 현재 수행 중인 명령어를 임시로 기억해 두는 레지스터
4. 프로그램 카운터(Program Counter:PC) : 다음에 실행될 명령어의 주소를 기억하는 레지스터
PSW(Program Status Word)
명령어가 실행되는 과정의 모든 정보 보관
- 명령어 해독기(Instruction Decoder) : 명령어 코드를 해독하여 필요한 실행 신호를 발생시킴
- 주소 해독기(Address Decoder) : 주소를 해독하여 그 정보를 MBR로 전달함
✅ 범용 레지스터(General Purpose Register:GPR)
- 인덱스 레지스터(Index Register: IR) : 프로그래밍에서 반복되는 부분의 반복횟수를 저장하는 레지스터
- 베이스 레지스터(Base Register:BR) : 프로그램이 저장되는 시작 주소(기본 주소)를 저장하는 레지스터
✳️ 명령어 페치 사이클에서 레지스터들의 상호 관계
🗃️ 기억 장치 (Memory)의 종류
먼저 기억장치의 계층 구조에 대해 알아보자.
🔹 주기억 장치 (Main Memory)
- RAM (휘발성)
- 사용자가 작성한 문장이나 프로그램이 기억되는 기억 장소
- 임의의 메모리 주소에 기억되어 있는 데이터를 주소 지정에 의해 즉시 판독하고 기록할 수 있는 기억 장치
- 컴퓨터 전원이 꺼지면 내용이 사라짐(휘발성(volatile memory) 메모리)
- SRAM: 빠르지만 비쌈
- DRAM: 느리지만 저렴 (PC에 주로 사용)
- ROM (비휘발성): 읽기 전용
- Mask ROM: 제조 과정에서 내용을 미리 프로그래밍하여 기억시킨다. 사용자가 내용을 변경할 수 없음.
- PROM(Programmable ROM) : 사용자가 내용을 일단 기억시킨 후에도 필요에 따라 프로그램을 다시 기억시킬 수 있는 장치
- EPROM : PROM을 개량한 것으로 자외선이나 높은 압력을 이용하여 내용 변경이 가능한 메모리
- Flash ROM : 프로그래밍을 실행하여 ROM의 내용 변경가능하게 함.
🔸 보조기억 장치
- 주기억 장치의 제한된 용량을 지원하는 장치
- HDD, SSD, CD/DVD, USB 등
- 데이터를 영구적으로 저장하고 주기억장치를 보조함
✅ 개인용 컴퓨터의 보조 기억 장치
- 플로피 디스크(Floppy disk)와 하드 디스크(Hard Disk)
- 플로피 디스크 : 통상 디스켓(diskette)이라 불림
- 하드 디스크: 많은 프로그램과 자료들을 저장하는 보조 기억 장치 - CD-ROM과 CD-RW
- CD-ROM: 멀티미디어 시대의 필수적 저장 매체(저렴)
- CD-RW : 읽기 전용 + 쓰기 기능 - USB Flash Drive
- USB 포트에 꽃아 쓰는 이동이 편리한 저장 장치
- 크기가 작아 휴대하기 간편함
- 보안용 암호장치가 있어 자료 안전하게 보관
- 정보의 유출을 줄임(공인 인증서)
- 현재 32GB와 64GB가 널리 사용
- USB 메모리나 USB 디스크
✅ 낸드 플래시 메모리(Nand Flash Memory)
- 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 컴퓨터 기억 장치
- 현재 가장 많이 사용되는 메모리 종류
- 휴대용 정보통신 기기의 메모리
✅ SSD(Solid State Drive)
- 하드디스크 드라이브(HDD)를 대체하고 있는 차세대 저장매체
- HDD보다 가볍고 데이터 처리속도가 빠르며 낮은 전력 소모와 안정성이 장점
💡 캐시 메모리
- CPU와 RAM 사이에서 속도 차이를 보완해주는 초고속 메모리
⏱️ 컴퓨터 성능과 속도
- Hz (헤르츠): 초당 몇 번 명령을 처리할 수 있는지
- IPC: 사이클당 명령어 처리 수
- 버스(Bus): 컴퓨터 내부에서 데이터가 이동하는 통로
- 데이터 버스, 주소 버스, 제어 버스
- 버스의 대역폭(bandwidth)
- 버스의 전송 양 - ISA(Industrial System Architecture), EISA(Enhanced ISA), Vesa Local Bus, PCI
🎮 입력 & 출력 장치
입력 장치
- 키보드, 마우스, 터치스크린, OMR, OCR, 바코드 스캐너 등
출력 장치
- 모니터 (LCD, OLED 등), 프린터 (잉크젯, 레이저), 플로터, 스피커 등
✨ 마무리하며
이 포스트에서 소개한 컴퓨터 시스템의 구조는 IT 기초 지식 중에서도 가장 핵심적인 파트입니다.