다양한 보조기억장치
보조기억장치의 종류는 다양한데, 크게 하드 디스크와 플래시 메모리로 나눌 수 있다. 플래시 메모리는 USB 메모리, SD 카드, SSD와 같은 저장장치를 의미한다.
하드디스크
하드디스크(HDD; Hard Disk Drive)는 자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 이 때문에 자기 디스크(magnetic disk)의 일종으로 지칭하기도 한다.
하드디스크는 CD나 옛날 음향 장치인 LP와 비슷하게 동작한다. 동그란 원판에 데이터를 저장하고, 그것을 뾰족한 리더기로 데이터를 읽어내는 점이 비슷하다.
하드디스크에 실질적으로 데이터가 저장되는 곳은 플래터이다. 플래터는 원판처럼 생겼으며, 자기물질로 덮여있기 때문에 수많은 N극과 S극을 저장할 수 있다. N극과 S극이 0과 1의 역할을 수행한다.
플래터를 회전시키는 요소를 스핀들이라고 한다. 스핀들이 회전하는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현한다.
플래터를 대상으로 읽고쓰는 부분은 헤드이다. 플래터 위에서 미세하게 떠 있으며, 마치 바늘처럼 생긴 부품이다. 그리고 헤드를 원하는 위치로 이동시키는 디스크암에 부착되어있다. CD나 LP에 비해 하드디스크는 훨씬 더 많은 데이터를 저장해야 하므로, 여러겹의 플래터로 이루어져 있고 플래터 양면을 모두 사용할 수 있다.
양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드를 사용하게 된다. 이때 일반적으로 모든 헤드는 디스크암에 부착되어 다같이 이동한다.
플래터는 트랙과 섹터라는 단위로 데이터를 저장한다. 플래터를 여러 동심원으로 나눴을 때 그중 하나의 원을 트랙이라고 부른다. 트랙은 마치 피자처럼 여러 조각으로 나누어지는데, 이 한 조각을 섹터라고 부른다.
섹터는 하드디스크의 가장 작은 전송단위이다. 하나의 섹터는 일반적으로 512 바이트 정도의 크기를 가지고 있지만, 하드 디스크마다 차이가 있다.
하나 이상의 섹터를 묶어 블록이라고 표현하기도 한다.
연속된 정보는 보통 한 실린더에 기록된다. 실린더는 여러 플래터의 트랙이 모인 것을 의미한다. 실린더 단위로 기록하는 이유는 여러개의 데이터를 저장해야 할때 디스크암을 움직이지 않고 바로 데이터에 접근할 수 있기 때문이다.
하드디스크에 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.
- 탐색 시간
- 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연
- 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간
- 디스크와 컴퓨터간에 데이터를 전송하는 시간
각각의 시간이 생각보다 오래 걸리기 때문에, 데이터가 플래터 혹은 헤더를 조금만 옮겨도 접근할 수 있는 곳에 위치해 있는 것도 중요하다.
플래터의 한 면당 헤드가 하나씩 달려 있는 하드 디스크를 단일 헤드 디스크(single-head disk)라고 한다. 반면 트랙별로 헤드가 하나씩 있는 하드 디스크를 다중 헤드 디스크(multiple-head disk)라고 한다. 헤드가 트랙마다 위치하면 헤드를 이동하지 않아도 되기 때문에, 탐색 시간이 0이된다. 이런 특징으로 인해 단일 헤드 디스크를 이동 헤드 디스크(movable-head disk)라고 부르기도 하고, 다중 헤드 디스크를 고정 헤드 디스크(fixed-head disk)라고 부르기도 한다.
플래시 메모리
최근에는 플래시 기반의 보조기억장치 기반의 저장장치를 많이 사용한다. 플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다. 플래시 메모리는 ROM에도 사용되고, 일상적으로 접하는 거의 모든 전자제품 안에 내장되어있다.
플래시 메모리는 크게 NAND게이트를 기반으로 만들어진 메모리인 NAND 플래시 메모리와 NOR 게이트를 기반으로 만들어진 메모리인 NOR 플래시 메모리로 나뉜다. 일반적으로 많이 사용되는 플래시 메모리는 NAND 플래시 메모리로, 앞으로 설명하는 플래시 메모리는 NAND 플래시 메모리를 의미한다.
플래시 메모리는 셀이라는 단위가 있다. 셀은 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다. 한 셀에 저장할 수 있는 비트의 크기에 따라 메모리의 수명, 속도, 가격에 영향을 끼친다.
플래시 메모리와 하드 디스크에는 수명이 있다. 한 셀에 일정 횟수 이상 데이터를 쓰고 지우면 그 셀은 더이상 데이터를 저장할 수 없다.
- SLC(Single Level Cell) 타입
- 한 셀에 1 비트를 저장할 수 있는 플래시 메모리다. MLC, TLC보다 빠른 입출력이 가능하다. 수명도 가장 길지만, 용량대비 가격이 높다.
- MLC(Multiple Level Cell) 타입
- 한 셀에 2 비트를 저장할 수 있는 플래시 메모리다. SLC 타입보다는 일반적으로 속도와 수명은 떨어지지만, SLC타입보다는 대용화하기 유리하다.
- TLC(Triple Level Cell) 타입
- 한 셀에 3 비트를 저장할 수 있는 플래시 메모리다. SLC, MLC 타입보다 수명과 속도가 떨어지지만 용량대비 가격도 저렴하다.
플래시 메모리의 가장 작은 단위인 셀보다 더 큰단위는 다음과 같다.
- 페이지(page) : 셀들이 모여 만들어진 단위
- 블록(block) : 페이지가 모여 만들어진 단위
- 플레인(plane) : 블록이 모여 만들어진 단위
- 다이(die) : 플레인이 모여 만들어진 단위
플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어진다. 하지만 삭제는 페이지보다 큰 블록 단위로 이루어진다. 이는 플래시 메모리의 가장 큰 특징 중 하나이다.
페이지는 세 개의 상태를 가질 수 있다.
- Free : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있다.
- Valid : 이미 유효한 데이터를 저장하고 있는 상태
- Invalid : 쓰레기값이라고 부르는 유효하지 않은 데이터를 저장하고 있는 상태
플래시 메모리는 하드디스크와 달리 덮어쓰기가 되지 않기 때문에 Valid 상태인 페이지에는 새 데이터를 저장할 수 없다. 이제 페이지에 값이 어떻게 쓰이고, 지워지는지 알아보자.
만약 4개의 페이지로 이루어진 블록 X가 있다고 가정해보자. 이 블록에 A, B값이 들어있을 때 C를 저장해야 한다면, 그대로 저장하면 된다. 이제 3개의 페이지는 Valid상태가 되고, 1개의 페이지는 Free 상태가 된다.
여기에서 기존 A값을 A’로 바꾸고 싶다면, Free상태의 페이지에 A’값을 저장한다. 그리고 기존 A값이 들어있는 페이지는 Invalid 상태가 된다. 이때 블록X는 A와 같은 쓰레기 값을 가지게 되는데, 이는 사용하지 않을 공간인데도 불필요하게 용량을 차지하고 있다는 의미이다.
플래시 메모리는 이런 쓰레기값을 정리하기 위해 가비지 컬렉션 기능을 제공한다. 가비지 컬렉션은 유효한 페이지들을 새로운 블록으로 복사한 뒤, 기존 블록을 삭제하는 방식으로 동작한다.
RAID의 정의와 종류
보조기억장치에도 수명이 있다. 수명을 다하게되면 고장나게 되는데, 이렇게 되면 데이터가 유실될 수도 있다. 만약 구글, 아마존같은 글로벌 IT기업의 서버데이터가 저장된 보조기억장치가 망가지게되면 큰 문제를 초래하게 될 것이다. 이런 문제를 해결하기위해 사용할 수 있는 방법중 하나가 RAID이다.
RAID(Redundant Array of Independent Disks)는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러개의 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다.
RAID의 종류
RAID를 구성하는 방법은 여러가지가 있는데 그중 대표적인 것들을 알아보자.
- RAID 0
- 여러개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식이다. 이때 마치 줄무늬처럼 분산되어 저장되는 데이터를 스트라입(stripe)이라 하고, 분산하여 저장하는 것을 스트라이핑(striping)이라고 한다.
- 스트라이핑되면 여러개의 저장공간에 쪼개져서 저장되기 때문에 대역폭이 늘어나게 되면서 저장된 데이터를 읽고 쓰는 속도가 빨라지게된다. 하지만 하나의 저장장치에 문제가 생기면 모든 하드디스크의 정보를 읽는 데 문제가 생길 수 있다.
- RAID 1
- RAID 1은 복사본을 만드는 방식이다. 거울처럼 완전한 복사본을 만드는 구성이기 때문에 미러링이라고도 불린다.
- 원본 데이터와 복사본 데이터가 있기 때문에 쓰기를 두 번 해야 하므로, 쓰기 속도는 RAID 0보다 느리다. RAID 1은 복구가 매우 간단하다는 장점이 있지만, 용량이 적어지는 단점이 있다.
- RAID 4
- RAID 4는 RAID 1처럼 완전한 복사본을 만드는 대신, 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 방식이다. 이때 ‘오류를 검출하고 복구하기 위한 정보’를 패리티 비트(parity bit)라고한다.
- 원래 패리티 비트는 오류 검출만 가능하고 복구는 불가능하다. 하지만 RAID에서는 패리티 값으로 오류 수정도 가능하다. 다만 구체적인 패리티 계산법은 다루지 않는다.
- RAID 5
- RAID 4에서는 패리티 정보가 하나의 디스크에 몰리게 되면 새로운 데이터가 저장될때마다 패리티 비트가 있는 저장장치에도 데이터를 써야하므로, 트래픽이 증가하여 병목 현상이 발생한다는 문제가 있다. 이를 해결하기 위해 패리티 정보를 분산하여 저장하는 방식이 RAID 5이다.
- RAID 6
- 기본적인 구성은 RAID 5와 같으나, 두 개의 패리티 비트를 만들어서 나눠서 보관하는 방식이다. 이는 하나의 하드디스크에 문제가 발생했을 때, 다른 하드디스크에 있는 패리티 값을 통해 값을 복구할 수 있다는 장점이 있다. 다만 패리티가 두 개 이므로, 쓰기 속도는 RAID 5보다 느리다. 따라서 RAID 6은 저장속도를 조금 희생하더라도 데이터를 더욱 안전하게 보관하고 싶을 때 사용하는 방식이다.
이외에도 RAID 0과 RAID 1을 혼합한 RAID 10방식도 있고, RAID 0과 RAID 5를 혼합한 RAID 50 방식도 있다. 이처럼 여러 RAID 레벨을 혼합한 방식을 Nested RAID라고 한다.
'도서 정리 > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
[혼자 공부하는 컴퓨터 구조 + 운영체제] 9강 운영체제 시작하기 (0) | 2025.01.30 |
---|---|
[혼자 공부하는 컴퓨터 구조 + 운영체제] 8강 입출력장치 (0) | 2025.01.19 |
[혼자 공부하는 컴퓨터 구조 + 운영체제] 6강 메모리와 캐시 메모리 (0) | 2025.01.19 |
[혼자 공부하는 컴퓨터 구조 + 운영체제] 5강 CPU 성능 향상 기법 (0) | 2025.01.14 |
[혼자 공부하는 컴퓨터 구조 + 운영체제] 4강 CPU의 작동원리 (0) | 2025.01.12 |