CS

1. 컴퓨터 구조 (2) - CPU / 메모리 / 보조기억장치 / 입출력 장치

오희건 2025. 2. 27. 22:08

컴퓨터를 구성하고 있는 여러 부품 중 핵심적인 부품에는 어떤 것들이 있을까?

  • CPU
  • 메모리
  • 입출력 장치

1. CPU

 

(1) CPU의 정의

명령어를 해석하고 실행하는 컴퓨터의 두뇌와도 같은 존재

CPU는 중앙 처리 장치라고 하며 명령어의 해석 및 실행을 통해 데이터를 처리하고 프로그램을 실행하는 핵심 장치다.


(2) CPU의 구성요소

CPU의 주요 구성 요소는 아래와 같다.

  • 연산 장치 - 수학적 연산을 수행
  • 제어 장치 - 명령어의 해석 및 실행 제어
  • 레지스터 - 데이터를 임시로 저장하는 초고속 기억 장치

(3) 명령어 처리과정

 CPU는 명령어 사이클을 통해 명령어를 처리한다. 여기서는 위에서 언급한 레지스터에 대한 이해가 필요한데, 레지스터는 운영체제로부터 명령에 대한 해석 및 계산을 요청 받는다. 주요 종류는 다음과 같다.

PC (Program Counter)다음에 가져올 명령어를 주소를 저장
IR (Instruction Register)PC에 저장된 주소에 접근해 현재 수행할 명령어를 가져온 뒤 저장
Program Status Word시스템의 현재 상태를 나타내는 기능
Memory Address RegisterCPU가 실제 메모리에 접근 할 때 Interface 역할

 
 CPU의 구조나 아키텍처에 따라 명령어 처리과정에 약간의 차이가 있을 수 있지만, 기본적으로는 아래에서 설명한 구조로 진행된다.
 

  • 명령어 인출 단계 (Fetch)

 CPU가 RAM(메모리)에서 실행할 명령어를 가져오는 단계다. PC 레지스터에 저장된 명령어의 주소를 읽어와서 IR에 저장한다. 이후 PC값이 증가하고 다음 명령어의 주소를 가리키도록 한다.
[ PC값 확인 - 주소 버스로 RAM에 요청 - RAM의 명령어 해석 - IR에 저장 - PC값 증가 ]

※ 주소버스 : CPU와 메모리 사이에서 주소 정보를 전송하는 통로 역할
 

  • 명령어 해석 단계 (Decode)

 IR에 저장된 명령어를 해석하고 어떤 작업을 수행할 지 결정하는 단계다. 제어 장치가 명령어 코드 (Opcode)를 분석해서 연산 방식과 필요한 데이터를 확인한다. 필요에 따라 추가 Operand도 메모리로부터 가져올 수 있다.
[ IR에 저장된 명령어 해석 - 연산 유형 확인 - 피연산자 확인 ]

※ Operand: 피연산자
 

  • 명령어 실행 단계 (Execute)

 해석한 명령어를 실제 수행하는 단계다. ALU가 연산 혹은 데이터 이동 등의 여러 작업을 진행한다. 그 작업 결과를 레지스터나 메모리에 저장한다.

※ ALU(Arithmetic Logic Unit) : 산술 / 논리 연산 수행 장치

[ ALU의 연산 - 연산 결과 저장(메모리/레지스터) - 플래그 레지스터에 상태 저장 ]
플래그 레지스터는 연산 결과의 상태를 보여주는 레지스터로 필요에 따라 사용할 수 있다. 

예) 오버플로우 발생 여부
 

  • 인터럽트 처리 과정

인터럽트 발생 시 처리하는 단계로 자세한 설명은 이전 글에서 확인할 수 있다.
https://gmlrjs1002.tistory.com/5

1. 컴퓨터 구조 (1) - 데이터 / 명령어

컴퓨터가 이해하는 정보에는 데이터와 명령어가 존재한다. 컴퓨터 과학에서 데이터와 명령어가 어떻게 정의되는지, 주요 특징 및 기능은 무엇인지, 컴퓨터가 어떤식으로 정보를 해석 및 처리하

gmlrjs1002.tistory.com

 
CPU는 위 과정을 반복적으로 수행하면서 빠른 속도로 프로그램을 실행시킨다.


2. 메모리와 캐시메모리

 

(1) 메모리의 정의

데이터를 저장하고 CPU가 빠르게 접근할 수 있도록 하는 장치

 메모리는 휘발성 메모리와 비휘발성 메모리로 나뉘며, 성능에 따라 여러 종류가 존재한다. 휘발성이란 컴퓨터의 전원을 끌 때 데이터가 소멸되는 것이고, 비휘발성은 유지되는 것을 말한다.


(2) 메모리의 종류

메모리의 종류별 성능을 비교하면 다음과 같다.

메모리 종류속도용량비용위치
레지스터가장 빠름매우 작음(byte)가장 비쌈CPU 내부
캐시 메모리매우 빠름작음(KB~MB)비쌈CPU 근처/내부
RAM빠름중간(GB)중간메인보드
가상 메모리느림큼(GB)저렴하드디스크/SSD
SSD느림매우 큼(TB)중간~비쌈보조장치
HDD가장 느림매우 큼(TB)가장 저렴보조장치

 위치를 기준으로 보면 CPU와 가까워질수록 속도가 빠르고, 용량이 작으며, 가격이 비싸진다.  캐시 메모리와 RAM은 프로그램의 실행 속도를 높이는 핵심 요소라고 할 수 있다. 가상 메모리는 RAM 부족 시 활용되지만 속도가 느려 성능 저하가 생길 수 있다. SSD는 HDD 보다는 속도가 빠르지만 가격이 비싸고 수명이 제한적이라는 단점이 있다.
◆ 빠른 속도가 중요할 때는 레지스터, 캐시, RAM를 활용하고, 대용량 저장 장치가 필요하면 HDD와 SSD를 활용하는 것.


(3) 메모리 종류별 특징

이제 각 메모리에 대한 세부적인 특징을 알아보자.
1. 레지스터

  • CPU가 직접 접근하는 작업용 메모리
  • 연산 속도 극대화를 위해 존재

2. 캐시 메모리

  • CPU와 RAM 사이에서 자주 사용되는 데이터를 저장해 접근 속도를 향상
  • 캐시가 클수록 성능이 향상 (L1, L2, L3)

3. RAM (주 메모리)

  • CPU가 직접 접근하는 작업용 메모리
  • 휘발성 메모리
  • SRAM 과 DRAM 으로 나뉨

4. 가상 메모리

  • RAM이 부족할 때 HDD/SSD를 임시 RAM 처럼 사용 가능
  • 속도가 느려 페이지 폴트가 발생하면 시스템 성능 크게 저하
  • SSD 기반 가상 메모리를 상대적으로 속도가 빠름

※ 페이지 폴트 : 프로세스가 접근하려는 페이지가 RAM에 존재하지 않을 때 발생하는 이벤트

5. 보조 저장 장치

  • 프로그램이나 파일 등을 장기적으로 저장할 때 사용
  • 유일한 비휘발성 메모리

 


(4) 캐시 메모리의 역할 

 캐시 메모리는 CPU와 RAM 사이에서 정확히 어떤 역할을 하는지 알아보자.
 캐시 메모리가 메모리를 보조하는 과정을 캐싱 메커니즘이라고 한다. CPU가 RAM에서 데이터를 읽어올 때, 그 속도를 최적화하기 위해 자주 사용되는 데이터를 미리 저장하고 빠르게 제공하는 역할을 한다. 
1. CPU의 데이터 요청 (Memory Request)

  • CPU가 연산을 수행하기 위해 데이터를 요구
  • 가장 가까운 캐시 메모리에 해당 데이터가 있는지 확인

 
2. 캐시히트 / 캐시미스 확인

캐시 히트 : 캐시에서 데이터를 가져옴 (CPU 성능 향상)
캐시 미스 : RAM에서 데이터를 가져옴 
  • 요청한 데이터가 캐시 메모리에 존재하면, RAM을 거치지 않고 즉시 데이터를 읽어옴
  • 요청한 데이터가 캐시에 없으면, RAM에서 데이터를 가져옴
  • RAM을 거쳐올 시 캐시 메모리에 해당 데이터를 저장해 이후의 접근 속도를 향상

 
3. 캐시 업데이트

  • 캐시 미스가 발생하면, RAM에서 읽어온 데이터를 캐시 메모리에 저장해서 다음 요청 시 빠르게 제공
  • 캐시에 저장할 때 캐시 알고리즘을 사용해 오래된 데이터를 대체

※ 캐시 알고리즘 : LRU(가장 오래 사용되지 않은 데이터 삭제) , FIFO(가장 먼저 들어온 데이터 삭제) , LFU(가장 적게 이용된 데이터 삭제)
 

4. CPU의 데이터 사용 후 다시 저장
데이터를 읽고 연산한 뒤, 변경된 데이터를 다시 저장해야 할 경우 캐시와 RAM 간 동기화 방식이 필요하다.

  • 동기화 방식 (Write Policy)

Write - Through : 캐시와 RAM에 동시에 데이터를 저장 (안정적이지만 속도 저하)
Write - Back : 변경된 데이터를 캐시에만 저장하고, 일정 시점에 RAM으로 전송 (속도 빠름)
 
◆ RAM은 상대적으로 캐시보다 속도가 느리기에 캐시를 사용해 CPU와 RAM 사이 속도 차이를 줄이기 위해 사용한다. 캐시를 활용하면 CPU가 RAM에 접근하는 일을 줄여서 데이터 처리 속도를 향상할 수 있다. 캐시 히트율이 높아질수록 CPU의 성능이 향상되기 때문에 캐시 메모리는 메모리를 보조하는 역할을 하는 것이다. 


3. 입출력 장치

 

(1) 입출력 장치의 정의

사용자와 컴퓨터 간 데이터 교환을 위한 장치

입력, 출력, 입출력 장치로 구분할 수 있고, 데이터를 주고 받는 형식은 여러가지가 있다.


(2) 입출력 장치의 종류

1. 입력 장치

  • 키보드
  • 마우스
  • 터치 스크린
  • 스캐너
  • 마이크
  • 카메라

2. 출력 장치

  • 모니터
  • 프린터
  • 스피커
  • 프로젝터

3. 입출력 장치

  • 터치 스크린
  • 외장 하드
  • USB
  • 네트워크 카드
  • 헤드셋(마이크)

(3) 입출력 기법

각 입출력 기법의 성능과 장단점 및 사용처를 정리하면 다음과 같다.

기법CPU 개입 여부장점단점사용처
프로그램 제어 방식CPU가 직접 제어구현이 간단함CPU 낭비가 많음키보드, 마우스
인터럽트 방식인터럽트 발생 시에만 CPU 개입CPU의 대기시간 감소인터럽트 과부하 가능키보드의 입력, 네트워크 카드
DMA 방식CPU 개입 없음대량 데이터 전송 속도 빠름하드웨어가 필수HDD, SSD, GPU메모리
채널 제어 방식전용 입출력 프로세서 사용CPU 부담 최소고가의 하드웨어 요구서버, 대량 데이터 처리

입출력 장치에 따라서 사용되는 기법이 다르고, 각 기법에는 장단점이 명확히 존재한다. 


 
 
참고: https://rekodo.tistory.com/7