보조기억장치는 크게 하드디스크(Hard Disk Drive)와 플래시 메모리에 해당하는 SSD(Solid State Drive), USB 등가 있다.
하드디스크
하드디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치로, 다음과 같은 요소를 가지고 있다.
플래터(platter)
- 0과 1의 역할을 수행하는 N극과 S극을 저장한다.
스핀들(spindle)
- 플래터를 회전시키는 구성 요소로, 회전 속도는 RPM(Revolution Per Minute) 단위로 표현한다.
헤드(head)
- 플래터를 대상으로 데이터를 읽고 쓰는 장치로, 디스크 암에 부착되어 있다.
디스크 암(disk arm)
- 헤드를 원하는 위치로 이동시키는 장치이다.
플래터에는 트랙(track)과 섹터(sector)라는 단위로 데이터를 저장한다. 아래의 그림에서 A가 트랙, B가 섹터에 해당하며 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더(cylinder)라고 한다. 연속된 정보는 보통 하나의 실린더에 기록된다.
또한, 하드 디스크가 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.
- 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간(transfer time): 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
이때, 헤드가 트랙별로 여러 개 부착되어 있는 다중 하드 디스크(multiple-head disk)는 트랙마다 헤드가 있기 때문에 탐색 시간이 별도로 필요하지 않다. 이는 헤드를 움직일 필요가 없기 때문에 고정 헤드 디스크(fixed-head disk)라고도 부른다.
플래시 메모리
플래시 메모리는 USB 메모리, SD 카드, SSD에 사용되는 메모리로, 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다. 이는 보조기억장치가 아닌 ROM과 같은 장치에도 사용된다.
플래시 메모리에는 크게 NAND 플래시 메모리와 NOR 플래시 메모리가 있으며, 각각 이름에 맞는 연산을 사용하는 메모리이다.
플래시 메모리에는 셀(cell)이라는 단위가 있으며, 이는 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다. 이때, 하나의 셀에 몇 비트를 저장하느냐에 따라 메모리 종류가 나뉘며 각 메모리의 특징은 셀을 집으로, bit를 거주 인원으로 생각하면 떠올리기 쉽다.
SLC(Single Level Cell)
하나의 셀에 1비트를 저장할 수 있는 플래시 메모리로, 한 셀로 두 개의 정보를 표현할 수 있다. 혼자 사는 집에서는 출입이 자유롭지만 거주 비용이 많이 드는 것과 같이 데이터 입/출력 속도는 빠르고 수명은 길지만 용량 대비 가격이 높다는 단점이 있다.
MLC(Multiple Lvel Cell)
하나의 셀에 2비트를 저장할 수 있는 플래시 메모리로, 한 셀로 네 개의 정보를 표현할 수 있다. SLC보다는 느린 입출력 속도를 가지고 수명은 짧지만, 비용이 SLC 보다 저렴하다.
TLC(Triple-Lvel Cell)
하나의 셀에 3비트를 저장할 수 있는 플래시 메모리로, 한 셀로 여덟 개의 정보를 표현할 수 있다. MLC보다는 느린 입출력 속도를 가지고 수명은 짧지만, 비용이 MLC 보다 저렴하다.
플래시 메모리의 가장 작은 단위인 셀이 모여 페이지(page), 그리고 페이지가 모여 블록(block), 블록이 모여 플레인(plane), 플레인이 모여 다이(die)가 된다. 이때 플래시 메모리에서는 읽기 쓰기가 페이지 단위로 이루어지며 삭제는 블록 단위로 이루어진다. 따라서, 읽기/쓰기 단위와 삭제 단위가 다르다는 것이 플래시 메모리의 가장 큰 특징이다.
이때 페이지는 세 개의 상태를 가질 수 있다.
- Free: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid: 유효한 데이터를 저장하고 있는 상태
- Invalid: 쓰레기 값이 저장되어 있는 상태
플래시 메모리의 데이터 저장은 다음과 같이 이뤄진다.
이때 페이지에 저장된 A를 A’으로 변경하고 싶으면 C와 같이 Free 페이지에 A’을 추가한 뒤 아래와 같은 과정을 거친다.
이러한 과정을 가비지 컬렉션(grabage collection) 기능이라 한다.
RAID(Redundant Array of Independent Disks)
RAID를 사용하면 1TB의 하드 디스크 네 개를 사용하는 것이 와 4TB 하드 디스크 한 개를 사용하는 것보다 효율이 좋다. 이때 RAID란 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다.
RAID의 구성 방법을 RAID 레벨이라고 표현하는데, 여기에는 대표적으로 RAID 0, RAID 1, RAID 4, RAID 5, RAID 6이 있다.
RAID 0
여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식으로, 스트라입(stripe) 혹은 스트라이핑(striping)이라고도 한다.
이러한 방식에는 데이터를 각 하드디스크로부터 동시에 읽어올 수 있기 때문에 읽기/쓰기 속도가 빨라지지만 하드 디스크 하나에만 문제가 생겨도 모든 데이터의 정보를 읽지 못한다는 안정성 문제가 있다.
RAID 1
RIAD 0의 안정성 문제를 해결하기 위해 RAID 1은 절반의 하드 디스크에 정보를 저장한 뒤, 나머지 하드 디스크엔 이를 백업해 두는 방식으로, 미러링(mirroring)이라고도 부른다.
이는 복구가 매우 간단하다는 장점이 있지만, 절반의 하드 디스크만을 사용하기 때문에 RAID 0 보다 속도가 느리고, 실제 사용하는 용량이 절반으로 줄어들기 때문에 비용이 증가한다는 단점이 있다.
RAID 4
복사본을 만드는 것이 아닌 패리티 비트(parity bit)를 활용하여 오류를 검출 및 복구하는 데에 사용하는 방식이다.
이는 RAID 1 보다는 적은 하드 디스크로 데이터를 안전하게 보관할 수 있다는 장점이 있다. 그러나, 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 써야 하기 때문에 패리티를 저장하는 하드 디스크에 병목 현상이 발생한다는 문제가 있다.
RAID 5
병목 현상을 해결하기 위해 패리티 또한 각 하드 디스크에 분산 저장하는 방식이다.
RAID 6
기본적으로는 RAID 5와 같지만, 각 데이터마다 서로 다른 패리티를 두 개씩 두는 방식이다. RAID 4나 RAID 5보다 더욱 안정성을 추구할 때 사용한다.
이외에도 여러 개의 RAID 레벨을 혼합한 방식(Nested RAID)도 있다.
참고 자료:
강민철. 『혼자 공부하는 컴퓨터 구조 + 운영체제』. 한빛미디어, 2022.
'독서 > [ 혼자 공부하는 컴퓨터 구조 + 운영체제 ]' 카테고리의 다른 글
Chapter 8. 입출력장치 (0) | 2025.05.26 |
---|---|
Chapter 6. 메모리와 캐시메모리 (0) | 2025.03.20 |
Chapter 5. CPU 성능 향상 기법 (0) | 2025.03.19 |
Chapter 4. CPU의 작동 원리 (0) | 2025.03.16 |
Chapter 3. 명령어 (0) | 2025.03.13 |