정보공간_1

[5기 수원 정영진] SSD의 특징 및 내부구조 본문

IT 놀이터/Elite Member Tech & Talk

[5기 수원 정영진] SSD의 특징 및 내부구조

알 수 없는 사용자 2014. 6. 9. 19:47

1. SSD와 HDD

 지난 수십 년 동안 HDD(Hard Disk Drive)는 대부분의 컴퓨터 시스템의 2차 저장매체로 활용되어 왔습니다. 하지만 CPU, RAM 등 다른 시스템 구성요소에 비해 낮은 데이터 처리 속도로 인해 전체적인 시스템 성능의 병목으로 간주되어왔습니다. 최근에는 NAND 플래시 메모리를 이용한 SSD가 그 대안으로 급부상하면서 SSD의 성능을 향상시키기 위해 많은 연구가 꾸준히 진행되고 있는 상황입니다. SSD는 HDD와 달리 NAND 플래시 메모리(flash memory)를 이용함에 따라 나타나는 단점을 극복하기 위해 내부에 FTL(Flash Translation Layer)이라는 소프트웨어 레이어를 사용하여 데이터 매핑, 마모 평준화, 가비지 컬렉션(garbage collection) 등 기능을 수행하며 다수의 NAND 플래시 메모리를 활용하는 인터리빙(interleaving)이라는 기법을 통해 전체적인 성능을 높입니다.

 

 SSD는 HDD와 달리 디스크 회전과 헤더의 이동을 위한 moving parts가 없고 반도체 칩을 사용하여 전기적인 신호로 데이터를 읽거나 쓰기 때문에 소비 전력이 적고 충격에 강하며 온도 및 습도에 비교적 안정적인 특성을 갖습니다. 게다가 월등히 높은 접근 속도로 인해 많은 노트북이나 데스크탑에서 운영체제를 설치하기 위한 목적으로도 많이 사용됩니다. 최근에는 SATA 인터페이스보다 빠른 PCIe인터페이스를 활용하여 속도를 더 높이기도 하여 특히 PC 뿐만 아니라 서버시장에서도 수요가 점점 증가하고 있는 상황입니다. 아래 표는 SSD와 HDD의 특징을 비교하여 보여줍니다.

 

 HDD

SSD 

최대 접근 속도

100MB/s 

100~500MB/s 

구성

디스크, 회전 모터, 헤더 등

NAND 플래시 메모리 칩

충격

500G/2.0ms

1500G/0.5ms 

무게

100g

70g 

소음

25db 

0db 

동작온도

5 ~ 55˚C

0 ~ 70˚C

소비 전력 

12 ~ 18W

4 ~ 9W 

용량 

upto 4TB 

upto 2TB 

용량 당 가격 

$0.05 per GB(3.5″)

$0.10 per GB(2.5) 

$0.90~2.00 per GB 


 하지만 SSD는 HDD에 비해 짧은 수명을 갖고 있어 오래 쓴 경우 데이터를 저장하는 셀이 마모되어 더이상 쓸 수 없게 됩니다. 1개의 셀(cell)에 데이터를 1비트/2비트/3비트씩 저장함에 따라 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell)로 구분(4비트씩 저장하는 QLC(Quad Level Cell) 방식은 잘 사용되지 않음)되며 가장 수명이 긴 SLC의 경우 약 100,000회 정도 삭제 연산이 발생하면 데이터를 저장하는 셀이 망가지게 됩니다. 아래 표는 SLC, MLC, TLC에 대한 삭제 제한 횟수를 보여줍니다.

 구분

셀당 비트 수

삭제 제한 횟수

SLC

1 bit 

100,000 

MLC

2 bit

5,000 ~ 10,000

TLC 

3 bit

500 ~ 1,000


 PC에 흔히 사용되는 SSD는 주로 MLC가 활용되며 최근에는 생산 기술의 고도화로 집적도가 점차 증가되어 삭제 제한 횟수가 줄어들어 수명이 단축되고 있습니다. 따라서 삭제 연산을 최소화 시킬 수 있는 똑똑한 FTL을 탑재할수록 SSD를 더욱 효율적으로 쓸 수 있다고 볼 수 있습니다.


2. SSD 내부구조

 전형적인 SSD의 구조는 아래 그림에서 도식화한 것과 같이 다수의 NAND 플래시 메모리와 그 외 4가지 요소들로 구성되어 있습니다. SSD는 FTL을 포함한 펌웨어를 수행하기 위한 ARM 프로세서, 호스트로부터 들어온 데이터 및 호스트로 보낼 데이터를 저장할 DRAM 버퍼(buffer), NAND 플래시 메모리를 제어하기 위한 NAND 플래시 컨트롤러(NAND flash controller), 호스트와의 인터페이스를 위한 SATA 또는 PCI호스트 컨트롤러(host controller)로 구성됩니다. 호스트 컨트롤러는 상위 파일시스템에서 보낸 요청들을 SSD로 전달하거나 SSD에서 호스트로 데이터를 전달하는 역할을 하며 NAND 컨트롤러는 SSD 내부 소프트웨어가 보낸 요청의 정보를 받아 NAND 플래시 메모리에 읽기/쓰기/삭제 연산을 직접 수행합니다.


 NAND 컨트롤러에 직접 연결 된 버스는 다수의 NAND 플래시 메모리 칩에 의해 공유되고 있으며 여기에서 각 버스를 채널이라고 합니다. 하나의 칩은 다시 독립적으로 읽기/쓰기/삭제 연산이 가능한 die로 나뉘며 여기에서 각 die를 웨이라고 합니다. 웨이는 아래 그림과 같이 다시 페이지 크기의 레지스터를 갖고 있는 플레인으로 나누어집니다. 만약 하나의 웨이가 2개 이상의 플레인을 포함하는 경우, 플레인에 포함된 페이지 크기의 레지스터를 이용하여 2개 이상의 플레인에서 동시에 동일한 연산이 가능합니다. 하나의 플레인은 수천 개의 블록으로 나누어져 있으며 하나의 블록은 다시 수백 개의 4KB ~ 16KB 크기 페이지로 나누어져 있습니다.


3. 인터리빙

 SSD는 성능 향상을 위해 호스트로부터 받은 요청들을 여러 칩에 나누어 동시에 처리할 수 있습니다. NAND 컨트롤러에 연결된 채널은 1개 이상의 NAND 플래시 메모리 칩과 연결되어 있으며 하나의 NAND 플래시 메모리 칩은 1개 이상의 웨이로 구성되어 있습니다. 한 페이지 이상의 요청을 여러 채널의 각 웨이에 분산 저장할 경우 요청에 대한 처리가 동시에 이루어지므로 SSD의 전체적인 성능을 높일 수 있습니다. SSD에서는 이러한 처리 방식을 인터리빙(interleaving)이라고 합니다. SSD는 인터리빙을 최대한 활용하기 위해서 채널과 웨이의 개수를 늘려 동시에 더 많은 데이터를 처리할 수 있습니다. 최근 단일 NAND 플래시 메모리 칩 하나의 읽기와 쓰기 속도는 각각 40MB/s, 26MB/s에 불과합니다. 하지만 여러 개의 플래시 메모리 칩을 병렬로 연결하여 사용하면 현재의 SSD와 같은 성능을 얻을 수 있습니다.


이상으로 SSD의 특징을 HDD와 비교하여 알아보고 SSD의 내부 구조에 대해 살펴보았습니다.

reference
- SSD와 HDD의 수치 비교 : www.danawa.com kingmax SSD specification
SSD와 HDD의 수치 비교 : http://www.embeddedworld.co.kr/atl/view.asp?a_id=5499