[컴퓨터 구조론 이론] 보조기억장치

#cs
Written by Sungbin2026년 2월 25일 · 3 min read

시리즈의 글 (8개)

  1. [컴퓨터 구조론 이론] 컴퓨터 구조 시작하기
  2. [컴퓨터 구조론 이론] 데이터
  3. [컴퓨터 구조론 이론] 명령어
  4. [컴퓨터 구조론 이론] CPU의 작동 원리
  5. [컴퓨터 구조론 이론] CPU의 성능 향상 기법
  6. [컴퓨터 구조론 이론] 메모리와 캐시 메모리
  7. [컴퓨터 구조론 이론] 보조기억장치
  8. [컴퓨터 구조론 이론] 입출력 장치

banner

본 포스팅은 인프런의 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제를 참조하여 작성한 글입니다.

다양한 보조기억장치

보조기억장치에는 다양한 종류가 존재한다. 그 중에 가장 대표적인 보조기억장치는 하드 디스크와 플래시 메모리이다.

하드 디스크

하드 디스크는 자기적인 방식으로 데이터를 저장한다. 이 때문에 하드 디스크를 자기 디스크의 일종으로 지칭한다. 하드 드스크에서 실질적으로 데이터가 저장되는 곳은 동그란 원판에 저장이 되는데 이런 동그란 원판을 플래터라고 말한다. 하드 디스크는 자기적인 방식으로 데이터를 저장하는데 플래터는 자기 물질로 덮여 있어 수 많은 N극과 S극을 저장한다.

또한 해당 플래터를 회전시키는 구성 요소를 스핀들이라고 한다. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현된다.

일반적으로 플래터는 양면으로 이루여져 있는데 양면을 모두 사용한다.

플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드라고 한다. 헤드는 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는 부품이다. 그리고 헤드는 원하는 위치로 헤드를 이동시키는 디스크 암에 부착되어 있다.

플래터는 트랙섹터라는 단위로 데이터를 저장한다. 섹터의 크기는 기본적으로 512byte인데 상황에 따라 4096byte를 차지할 수 있다. 그리고 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 부른다. 연속된 정보는 보통 한 실린더에 기록된다. 연속된 정보를 하나의 실린더에 기록하는 이유는 디스크 암을 움직이지 않고 바로 데이터에 접근할 수 있기 때문이다.

하드 디스크가 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.

  • 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
  • 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

플래시 메모리

플래시 메모리란 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장장치를 말한다. 범용성이 넓기에 보조기억장치에만 쓰이지 않고 여러 곳에서 사용이 가능하다. 그래서 주기억장치 중 ROM에도 사용되곤 한다.

플래시 메모리에는 크게 NAND 플래시 메모리와 NOR 플래시 메모리가 있다. NAND 플래시와 NOR 플래시는 각각 NAND 연산을 수행하는 회로와 NOR 연산을 수행하는 회로를 기반으로 만들어진 메모리를 뜻한다. 이 둘 중 대용량 저장 장치로 많이 사용되는 플래시 메모리는 NAND 플래시 메모리이다.

플래시 메모리에는 이라는 단위가 있다. 셀이란 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다. 이 셀이 모이고 모여 수 MB, GB, TB 저장장치가 된다. 이 때 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉜다. 한 셀에 1비트를 저장할 수 있는 플래시 메모리를 SLC 타입, 한 셀이 2비트를 저장할 수 있는 플래시 메모리를 MLC 타입, 한 셀에 3비트를 저장할 수 있는 플래시 메모리를 TLC 타입이라고 한다.

SLC 타입은 한 셀로 2가지 정보를 표현할 수 있다. 비트의 빠른 입출력이 가능하고 긴 수명이며 용량 대비 고가격이다. MLC 타입은 한 셀로 4개의 정보를 표현하며 대용량에 유리하다. SLC보다 느린 입출력을 가지며 SLC보다 짧은 수명이지만 SLC보다 저렴하여 시중에서 많이 사용된다. TLC 타입은 한 셀로 8가지 정보를 표현하며 대용량에 유리하다. MLC보다 느린 입출력을 가지고 MLC보다 짧은 수명이지만 저렴하며 시중에서 많이 사용된다.

이제 플래시 메모리의 가장 작은 단위인 셀보다 더 큰 단위를 알아보자. 셀들이 모여 만들어진 단위를 페이지, 그리고 페이지가 모여 만들어진 단위를 블록이라 한다. 블록이 모여 플레인, 플레인이 모여 다이가 된다.

플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어진다. 하지만 삭제는 페이지보다 큰 블록 단위로 이루어진다. 이 때 페이지는 3개의 상태를 가질 수 있다. 이는 각각 Free, Valid, Invalid 상태이다. Free 상태는 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태이고, Valid 상태는 이미 유효한 데이터를 저장하고 있는 상태를 의미한다. 그리고 Invalid 상태는 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태를 의미한다.

플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능하다.

이렇게 덮어쓰기가 불가능한 이유로 쓰레기 값을 정리할 때 가비지 컬렉션을 이용한다. 흔히 GC라고 부르는데 GC는 유효한 페이지들만 새로운 블록으로 복사하고 기존 블록을 삭제하는 방식으로 이루어진다.

RAID의 정의와 종류

1TB 하드 디스크 4개로 RAID를 구성하면 4TB 하드 디스크 1개의 성능과 안전성을 능가할 수 있다. 그렇다면 RAID가 무엇이고 왜 그런 차이가 발생하는지 알아보자.

RAID의 정의

HDD와 SSD로 사용되는 기술이 RAID이다. 데이터의 안전성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

RAID의 종류

여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여러 가지가 있다. RAID를 구성하는 방법을 RAID 레벨이라고 표현하는데 대표적으로 RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6가 기본적으로 존재하고 이로부터 파생된 RAID10, RAID50이 존재한다.

RAID0은 데이터를 단순히 나누어 저장하는 구성방식을 말한다. 각 HDD는 번갈아 가며 데이터를 저장하고 저장되는 데이터가 HDD 개수만큼 나누어 저장을 한다. 이때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라고 하고 분산하여 저장하는 것을 스트라이핑이라고 한다. RAID0의 장점으로는 I/O 속도가 향상된다는 장점이 있는 반면에 HDD 1개라도 고장이 나면 사용이 안되므로 저장된 정보가 안전하지 않다라는 단점이 존재한다.

RAID1은 데이터를 쓸 때 원본과 복사본 2군데를 나눠서 작성하는 방식을 뜻한다. 즉 미러링을 하는 기법이다. 장점으로는 복구가 매우 간단하다는 장점이 존재하지만 단점으로는 HDD 개수가 한정되었을 때 사용가능한 용량이 적어진다. 복사본이 만들어지는 용량만큼 사용불가능하며 많은 양의 HDD가 필요하니 비용이 증가한다는 단점이 존재한다.

RAID4는 RAID1처럼 완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한다. 이를 패리티 비트라고 하는데 패리티를 저장하는 장치를 이용해 다른 장치들의 오류를 검출하고 오류가 있다면 복구하는 기능을 한다.

실제 패리티 비트는 오류 검출만 할 뿐 복구는 불가능하지만 RAID에서는 가능하다.

단점으로는 패리티 디스크에 병목이 발생한다.

RAID5는 패리티 정보를 분산하여 저장하는 방식을 말한다.

RAID6는 두 종류의 패리티를 사용하여 RAID5보다 안전하지만 쓰기 기능은 RAID5보다 느리다.

결론적으로 보면 각 RAID레벨마다 장단점이 존재한다. 어떤 상황에서 무엇을 최우선으로 원하는지에 따라 최적의 RAID 레벨은 달라진다. 각 RAID 레벨의 대략적인 구성과 특징을 아는 것이 정말 중요하다.