컴퓨터를 구성하고 있는 여러 부품 중 핵심적인 부품에는 어떤 것들이 있을까?
- CPU
- 메모리
- 입출력 장치
1. CPU
(1) CPU의 정의
명령어를 해석하고 실행하는 컴퓨터의 두뇌와도 같은 존재
CPU는 중앙 처리 장치라고 하며 명령어의 해석 및 실행을 통해 데이터를 처리하고 프로그램을 실행하는 핵심 장치다.
(2) CPU의 구성요소
CPU의 주요 구성 요소는 아래와 같다.
- 연산 장치 - 수학적 연산을 수행
- 제어 장치 - 명령어의 해석 및 실행 제어
- 레지스터 - 데이터를 임시로 저장하는 초고속 기억 장치
(3) 명령어 처리과정
CPU는 명령어 사이클을 통해 명령어를 처리한다. 여기서는 위에서 언급한 레지스터에 대한 이해가 필요한데, 레지스터는 운영체제로부터 명령에 대한 해석 및 계산을 요청 받는다. 주요 종류는 다음과 같다.
PC (Program Counter) | 다음에 가져올 명령어를 주소를 저장 |
IR (Instruction Register) | PC에 저장된 주소에 접근해 현재 수행할 명령어를 가져온 뒤 저장 |
Program Status Word | 시스템의 현재 상태를 나타내는 기능 |
Memory Address Register | CPU가 실제 메모리에 접근 할 때 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 부담 최소 | 고가의 하드웨어 요구 | 서버, 대량 데이터 처리 |
입출력 장치에 따라서 사용되는 기법이 다르고, 각 기법에는 장단점이 명확히 존재한다.
'CS' 카테고리의 다른 글
3. 자료구조 (1) - 자료구조의 종류와 특징 (0) | 2025.03.31 |
---|---|
2.운영체제 (2) - 운영체제의 관리 작업 (0) | 2025.03.07 |
2. 운영체제 (1) - 운영체제의 구성과 역할 (0) | 2025.03.04 |
1. 컴퓨터 구조 (1) - 데이터 / 명령어 (0) | 2025.02.26 |
CS 학습 로드맵 (0) | 2025.02.25 |