
해당 내용은 이것이 컴퓨터 과학이다 with CS 기술면접을 학습한 기록입니다.
목차
1. 보조기억장치
2. 입출력장치
1. 보조기억장치
보조기억장치는 전원이 꺼져도 데이터가 유지되는 비휘발성 저장 장치로,
대표적으로 하드 디스크 드라이브(HDD)와
플래시 메모리 기반 저장 장치인 SSD, USB 등이 있다.
1-1. RAID (Redundant Array of Independent Disk)
RAID는 데이터의 안정성과 성능을 확보하기 위해
여러 개의 독립적인 보조기억장치를
마치 하나의 논리적인 저장 장치처럼 사용하는 기술이다.
RAID를 구성하는 방식은 RAID 레벨이라고 하며,
대표적으로 RAID0부터 RAID6까지 다양한 방식이 존재한다.
[1] RAID0
RAID0은 데이터를 여러 보조기억장치에 단순하게 나누어 저장하는 방식이다.

위의 그림과 같이 데이터가 줄무늬 형태로 분산되어 저장되기 때문에
스트라이핑(Striping) 방식이라고도 한다.
여러 디스크에 동시에 데이터를 읽고 쓸 수 있어
입출력 성능이 매우 뛰어나다는 장점이 있다.
예를 들어, 1TB 디스크 4개로 RAID0을 구성하면
이론적으로 단일 디스크 대비 최대 4배의 성능을 기대할 수 있다.
하지만 하나의 디스크라도 장애가 발생하면
전체 데이터 복구가 불가능하다는 치명적인 단점이 있다.
[2] RAID1
RAID1은 완전한 복사본을 만들어 저장하여 구성하는 방식이며,
미러링(Mirroring)이라고도 한다.

데이터 복구가 간단하고 안정성이 매우 높다는 장점이 있지만,
저장 공간의 절반만 사용할 수 있어
디스크 효율이 낮다는 단점이 있다.
또한 모든 쓰기 작업이 여러 디스크에 동시에 수행되므로
RAID0에 비해 쓰기 성능은 떨어질 수 있다.
[3] RAID4
RAID4는 데이터와 별도로 오류 검출 및 복구를 위한 패리티 정보를
하나의 전용 디스크에 저장하는 방식이다.

RAID1보다 적은 디스크로도 데이터 복구가 가능하다는 장점이 있지만,
모든 패리티 연산이 하나의 디스크에 집중되어
병목 현상이 발생할 수 있다는 단점이 있다.
[4] RAID5
RAID5는 RAID4의 병목 현상을 개선하기 위해
패리티 정보를 여러 디스크에 분산 저장하는 방식이다.

이를 통해 단일 패리티 디스크로 인한 병목을 줄이고,
성능과 안정성을 균형 있게 확보할 수 있다.
[5] RAID6
RAID6은 서로 다른 두 개의 패리티를 저장하는 방식으로,
두 개의 디스크 장애까지 복구할 수 있다.

RAID5보다 안정성이 높지만,
추가적인 패리티 연산과 저장 공간이 필요해 쓰기 성능은 상대적으로 느리다.
[6] Nested RAID
Nested RAID는 두 가지 이상의 RAID 레벨을 혼합한 방식이다.

대표적으로 RAID0과 RAID1을 결합한 RAID10이 있으며,
성능과 안정성을 모두 고려한 구성 방식이다.
2. 입출력장치
보조기억장치는 데이터를 저장하는 역할을 하지만,
CPU와 직접 데이터를 주고받지 않고 입출력 과정을 통해 접근하므로 입출력장치에 포함된다.
2-1. 입출력장치 구성
[1] 장치 컨트롤러
장치 컨트롤러는 CPU와 입출력장치 사이의 통신을 중개하는 하드웨어이다.
모든 입출력장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 연결되며, 이 컨트롤러를 통해 정보를 교환한다.
[2] 장치 드라이버
장치 드라이버는 장치 컨트롤러의 동작 방식을 이해하고,
장치 컨트롤러가 컴퓨터 내부와 원활하게 정보를 주고받을 수 있도록 하는 소프트웨어(프로그램)이다.
2-2. 프로그램 입출력
프로그램 입출력은 프로그램 내부의 명령어를 통해 입출력 작업을 수행하는 방식이다.
대표적인 방식으로는 고립형 입출력과 메모리 맵 입출력이 있다.

2-3. 인터럽트 기반 입출력 (다중 인터럽트)
다중 인터럽트란 여러 입출력장치로부터 인터럽트가 동시에 발생하는 상황에서 이를 처리하는 방식을 의미한다.
예를 들어 키보드, 마우스, 모니터, 스피커 등의 입출력장치를 동시에 사용하는 상황이 이에 해당한다.
입출력장치 관련 하드웨어 인터럽트 내용은 이전 글에 더 상세하게 작성되어 있다.
1. 컴퓨터 구조 : CPU (2)
해당 내용은 이것이 컴퓨터 과학이다 with CS 기술면접을 학습한 기록입니다. 목차1. CPU와 레지스터의 역할2. 인터럽트가 발생하는 이유와 동작 과정 3. CPU 성능 개선 2. 인터럽트가 발생하는 이유
jignonne.tistory.com
[1] CPU의 다중 인터럽트 처리
CPU가 플래그 레지스터의 인터럽트 비트를 비활성화한 상태에서 인터럽트를 처리할 경우,
다른 하드웨어 인터럽트를 받아들이지 않게 된다.

이 경우 기본적으로 위 그림과 같이 인터럽트가 발생한
1~8의 순서대로 인터럽트 서비스 루틴(ISR)을 순차적으로 실행한다.
일반적으로 인터럽트는 우선순위를 가지며, 우선순위가 높은 인터럽트가 먼저 처리된다.
[2] 우선순위에 따른 인터럽트 처리

현재 처리 중인 인터럽트보다 더 높은 우선순위의 인터럽트가 발생하면,
기존 인터럽트 처리를 잠시 중단하고 우선순위가 더 높은 인터럽트를 먼저 처리한다.
이후 중단되었던 인터럽트 처리를 다시 재개한다.
이때, 인터럽트 비트를 비활성화해도 무시할 수 없는 인터럽트를
NMI(Non-Maskable Interrupt)라고 한다.
[3] PIC (Programmable Interrupt Controller)
PIC는 여러 인터럽트 요청 중 우선순위를 판별하기 위한 하드웨어로,
다중 인터럽트 처리를 위해 사용된다.

PIC는 여러 장치 컨트롤러와 연결되어 있으며,
각 장치 컨트롤러로부터 전달된 하드웨어 인터럽트의 우선순위를 판단한 뒤
CPU에게 현재 처리해야 할 인터럽트가 무엇인지 알려준다.
PIC의 각 핀에는 CPU로 하드웨어 인터럽트 요청을 보낼 수 있도록 약속된 장치가 연결되어 있다.
예를 들어 첫 번째 핀은 타이머 인터럽트, 두 번째 핀은 키보드 인터럽트를 처리하도록 정해져 있다.
[4] 다중 계층 PIC

PIC는 다수의 하드웨어 인터럽트를 효율적으로 관리하기 위해
위 그림과 같이 2개 이상의 계층 구조로 구성된다.
2-4. DMA 입출력
프로그램 기반 입출력과 인터럽트 기반 입출력의 공통점은
CPU가 입출력장치와 메모리 간 데이터 이동을 직접 주도한다는 점이다.
이 과정에서 이동하는 데이터는 반드시 CPU를 거치게 되며,
이로 인해 병목 현상과 같은 비효율이 발생할 수 있다.
DMA(Direct Memory Access)는 이러한 문제를 해결하기 위해
CPU를 거치지 않고 입출력장치와 메모리가 직접 상호작용하도록 하는 입출력 방식이다.
[1] DMA 컨트롤러
DMA 입출력을 위해서는 시스템 버스에 연결된 DMA 컨트롤러 하드웨어가 필요하다.

[2] DMA 입출력 과정
- CPU가 DMA 컨트롤러에 입출력장치 주소, 수행할 연산, 연산 대상 메모리 주소 등의 정보를 전달하며 입출력 작업을 명령한다.
- DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.
- 필요한 경우 DMA 컨트롤러는 메모리에 직접 접근하여 데이터를 읽거나 쓴다. (CPU를 거치지 않음)
- 입출력 작업이 완료되면 DMA 컨트롤러는 인터럽트를 통해 CPU에 작업 완료를 알린다.
따라서 CPU는 DMA 컨트롤러에 작업을 지시한 뒤 인터럽트만 처리하면 되므로,
입출력에 대한 부담을 크게 줄일 수 있다.
[3] 사이클 스틸링 (Cycle Stealing)
버스는 공용 자원이기 때문에 두 장치가 동시에 하나의 버스를 사용할 수 없다.
따라서 DMA 컨트롤러는 CPU가 시스템 버스를 사용하지 않는 순간을 활용하거나,
CPU가 시스템 버스 사용을 양보받아야 한다.
이처럼 DMA가 시스템 버스를 사용하는 방식을 사이클 스틸링이라고 한다.
2-5. PCIe
PCIe(Peripheral Component Interconnect Express)는 대표적인 입출력 버스 중 하나로,
기존 PCI 버스를 발전시킨 형태이며
오늘날 메인보드에서 가장 널리 사용되는 입출력 버스 중 하나이다.
PCIe는 버전에 따라 최대 전송 속도가 달라지며,
데이터를 송수신하는 단위인 레인(Lane)을 통해 통신한다.
일반적으로 PCIe 버전 x 레인 수 형식으로 표기되며,
예를 들어 PCIe 4.0 x4는 PCIe 4.0 규격에서 4개의 레인을 사용하는 인터페이스를 의미한다.
'cs study > 컴퓨터 구조' 카테고리의 다른 글
| 1. 컴퓨터 구조 : 메모리 (2) 캐시 메모리 (0) | 2026.01.21 |
|---|---|
| 1. 컴퓨터 구조 : 메모리 (1) RAM (0) | 2026.01.20 |
| 1. 컴퓨터 구조 : CPU (3) (0) | 2026.01.09 |
| 1. 컴퓨터 구조 : CPU (2) (0) | 2025.11.25 |
| 1. 컴퓨터 구조 : CPU (1) (0) | 2025.11.24 |