대표적인 보조기억장치인 하드 디스크와 플래시 메모리에 대해 알아보자
다양한 보조기억장치
하드디스크
구조
자기적인 방식으로 데이터를 저장
플래터에 수많은 N극과 S극으로 데이터들이 저장된다. 일반적으로 플래터는 양면 모두 사용한다.
플래터를 스핀들이 회전시킨다. 이때 회전의 단위는 RPM(Revolution Per Minute)이고 분당 회전수라는 의미이다.
헤드는 플래터의 표면에 아주 미세하게 떠있는 자기 물질을 읽는 역할을 한다. 플래터의 모든 면들마다 헤드가 있어야 자기물질을 읽을 수 있기 때문에 플래터의 면마다 헤드가 있다. 헤드를 움직여주는 역할을 하는 것이 디스크 암이며 일반적으로 모든 헤드가 디스크 암에 부착되어 함께 이동한다.
저장 단위
기본적으로 트랙(track)과 섹터(sector) 단위로 데이터가 저장된다. 트랙은 플래터의 동심원을 그리는 저장단위이다. 섹터의 크기는 512 바이트 ~ 4096 바이트이다.
실린더(cylinder)는 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위이다.
보통 연속된 정보는 한 실린더에 기록된다. 헤드는 디스크 암에 부착되어 다 같이 이동하기 때문에 연속된 정보는 한 실린더에 기록하여 헤드를 움직이지 않고도 곧바로 데이터를 읽을 수 있게 한다.
데이터 접근 과정
하드 디스크가 저장된 데이터에 접근하는 시간은 크게 3종류로 나뉜다.
- 탐색 시간 (seek time)
- 회전 지연 (rotational latency)
- 전송 시간 (transfer time)
탐색 시간
접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
회전 지연
헤드가 있는 곳으로 플래터를 회전시키는 시간
전송 시간
하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
플래시 메모리
전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치이다. 범용성이 넓기에 보조기억장치에만 속한다고 보기는 어렵다.
플래시 메모리는 크게 NAND 플래시 메모리와 NOR 플래시 메모리가 있다. 각각 NAND 연산을 수행하는 NAND 게이트와 NOR 연산을 수행하는 NOR 게이트를 기반으로 만들어진 플래시 메모리이다. 둘 중 오늘날 대용량 저장장치로 많이 사용되는 것 NAND 플래시 메모리이다.
셀(cell)
- 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
- 이 셀이 모이고 모여 수 MB, GB, TB 저장 장치가 된다.
한 셀에
- 1비트를 저장할 수 있는 플래시 메모리 : SLC
- 2비트를 저장할 수 있는 플래시 메모리 : MLC
- 3비트를 저장할 수 있는 플래시 메모리 : TLC
- 4비트를 저장할 수 있는 플래시 메모리 : QLC
SLC, MLC, TLC를 비유를 통해 생각해 보자
사람 한 명을 1비트, 셀을 집이라고 생각하면 SLC는 한 집에 한 명, MLC는 한 집에 두 명, TLC는 한 집에 세 명이 있는 것이다.
플래시 메모리 (USB, SSD, SD 카드)와 하드 디스크에는 수명이 있다.
저장 단위
플래시 메모리는 읽기/쓰기 단위와 삭제 단위가 다르다.
읽기와 쓰기는 페이지 단위로 이루어지고, 삭제는 블록 단위로 이루어진다.
페이지는 상태를 가질 수 있다.
- Free 상태
- 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid 상태
- 이미 유효한 데이터를 저장하고 있는 상태
- Invalid 상태
- 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태
참고로 플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능하다.
동작 예시
여기서 새롭게 저장된 C와 기존에 저장되어 있던 B는 그대로 둔 채 기존의 A만 A'로 수정한다면 어떻게 해야 할까?
삭제는 블록 단위로 이루어지기 때문에 A만 삭제하는 것은 불가능하다.
이런 경우에는 A가 있는 페이지를 Invalid 상태로 만들고 A`를 빈 공간인 C 오른쪽 페이지에 써준다. 그러면 A를 제외한 B, C, A`가 Valid 페이지가 된다.
그런데 A가 있는 페이지는 사용하지 않는 쓰레기 값을 가지게 되고 불필요하게 공간을 차지하고 있게 된다. 이런 것들이 모이면 용량 낭비가 될 수 있다.
이런 경우를 방지하기 위해 가비지 컬렉션이 있다.
RAID의 정의와 종류
1TB HDD 4개를 묶어서 사용하는 것과 4TB HDD 하나를 사용하는 것 중 어떤 것이 성능과 안전성에서 좀 더 나을까?
보통은 1TB HDD 4개로 RAID를 구성하면 4TB HDD 1개의 성능과 안전성을 능가할 수 있다.
RAID
- Redundant Array of Independent Disks
- 하드 디스크와 SSD로 사용하는 기술
- 데이터의 안전성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
RAID 레벨
- RAID를 구성하는 기술
- RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6
- 그로부터 파생된 RAID 10, RAID 50, ...
RAID 0
데이터를 단순히 나누어 저장하는 구성 방식
- 각 하드 디스크는 번갈아 가며 데이터를 저장한다.
- 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장된다.
- 스트라입(stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터
- 스트라이핑(striping) : 분산하여 저장하는
장점 : 입출력 속도의 향상
단점 : 저장된 정보가 안전하지 않음
RAID 1
미러링(mirroring) : 복사본을 만드는 방식
데이터를 쓸 때 원본과 복사본 두 군데에 씀 (느린 쓰기 속도)
단점 : 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어짐
복사본이 만들어지는 용량만큼 사용 불가 -> 많은 양의 하드 디스크가 필요 -> 비용 증가
하지만 백업과 복구가 쉽다는 분명한 장점이 있다.
RAID 4
RAID 1처럼 완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보인 패리티 비트를 저장한다.
패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고, 오류가 있다면 복구한다.
패리티 비트의 정의만 보면 원래 패리티 비트는 오류 검출만 가능할 뿐 오류 복구는 불가능하다. 하지만 RAID에서 사용되는 패리티 비트는 오류의 검출뿐만 아니라 복구도 가능하다.
단점 : 패리티 디스크의 병목
RAID 5
패리티 정보를 분산하여 저장하는 방식
RAID 6
두 종류의 패리티
RAID 5보다 안전, 쓰기는 RAID 5보다 느림
- 각 RAID 레벨마다 장단점이 있다.
- 어떤 상황에서 무엇을 최우선으로 원하는지에 따라 최적의 RAID 레벨은 달라질 수 있다.
- 각 RAID 레벨의 대략적인 구성과 특징을 아는 것이 중요하다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
메모리와 캐시 메모리 (1) | 2023.05.20 |
---|---|
CPU의 성능 향상 기법 (0) | 2023.05.12 |
CPU의 작동 원리 (1) | 2023.05.08 |
소스 코드와 명령어 (0) | 2023.03.21 |
데이터 (0) | 2023.03.20 |