이 문서에서는 SSD(Solid State Device)가 마모되는 이유에 대해 자세히 설명합니다.
개요
SSD가 마모되는 이유는 무엇입니까?
플래시 기반 SSD의 쓰기 수명이 제한적인 이유를 알아보기 위해 플래시의 메커니즘을 살펴보고 플래시 유형에 따라 어떻게 다른지, 그리고 기능 개선을 위해 사용되는 기법에 대해 알아보겠습니다.
플래시 메모리 디바이스는 페이지 단위로 읽고 씁니다. 읽기 명령은 주소와 함께 실행되고 해당 데이터가 반환되므로 읽기는 비교적 간단합니다. 쓰기는 삭제된 페이지에서만 실행되므로 호스트 쓰기 명령은 플래시에 쓰기 전에 플래시 삭제 사이클을 호출합니다. 이 쓰기/삭제 사이클은 셀 마모를 유발하기 때문에 쓰기 수명이 제한됩니다.
NAND 플래시 디바이스는 SLC(Single-Level Cell) 또는 MLC(Multi-Level Cell)일 수 있습니다. SLC는 1비트의 정보만 저장하며 0 또는 1을 나타내는 두 개의 전압 수준만 필요합니다. 이것은 가장 간단한 NAND 구현이며, 약 100,000회의 사이클로 가장 높은 내구성을 가지고 있습니다. 미래 세대의 플래시는 더 작은 기하학적 구조로 이동함에 따라 내구성이 감소할 것입니다(이미 50,000회의 사이클을 경험하고 있음). MLC는 일반적으로 2비트의 정보를 저장하며 00, 01, 10, 11을 나타내는 4개의 전압 수준이 필요합니다. SLC와 MLC 간 셀 마모는 비슷하지만 더 많은 전압 수준이 감지되어야 하므로 내구성 수준이 크게 감소합니다. MLC는 보통 약 10,000회 정도이지만 최신 세대는 3,000~5,000회의 사이클 정도로 낮습니다.
플래시 SSD는 많은 용량을 확보하기 위해 다수의 플래시 다이로 구성되어 있습니다. SSD의 쓰기 수명을 개선하기 위해 여러 가지 기법이 사용되며 두 NAND 유형에 모두 적용될 수 있습니다. 호스트 쓰기 액세스는 핫스팟을 일으킬 수 있는 모든 위치에서 발생할 수 있으며, 이로 인해 이러한 위치에서 조기에 마모가 발생할 수 있습니다. 핫스팟을 방지하기 위해 웨어 레벨링이라는 기법이 사용됩니다. 웨어 레벨링을 통해 SSD의 전체 용량에서 쓰기 액세스 권한이 거의 균등하게 분배됩니다. 쓰기 증폭은 호스트 쓰기 대비 플래시 쓰기 횟수의 비율을 측정한 것입니다. 예를 들어, 호스트 쓰기당 2개의 플래시 쓰기가 생성되는 경우 쓰기 증폭도 2입니다. 쓰기 증폭을 줄이기 위한 오버프로비저닝이라는 기법은 가비지 컬렉션 효율성을 개선하여 쓰기 증폭을 줄입니다. 마지막으로, MLC에 적용되는 기법은 일반적으로 쓰기 사이클 중에 낮은 전압 수준을 사용하여 셀 마모를 완화함으로써 쓰기 내구성을 향상시킵니다.
SSD의 유효 기간을 정확히 판단하기는 어렵지만, 추정에 도움이 되는 지침이 제공됩니다. SSD는 JEDEC에서 개발한 TBW(TeraBytes Written)라고 하는 메트릭을 사용합니다. 실제 쓰기 수명은 작업 부하 프로필(예: 임의 또는 연속, 블록 크기 또는 쓰기 활동)의 영향을 받으며 TBW는 추정치를 제공할 뿐 사용 수명은 달라질 수 있습니다. 예상 수명을 판단하려면 TBW를 사용하고 드라이브에 대한 쓰기의 예상 평균 BW로 나눕니다. 일반적으로 요구 사항이 까다로운 애플리케이션을 제외하고 SSD는 3년 이상 지속될 것으로 예상됩니다.
웨어 레벨링
NAND 플래시 메모리는 FTL(플래시 변환 계층)을 사용하는 데이터 저장 애플리케이션과 시스템에서 일반적으로 수행되는 반복 프로그램과 삭제 사이클로 인해 마모되기 쉽습니다. 동일한 메모리 위치에서 끊임없이 프로그래밍과 삭제를 수행하는 것은 결국 메모리의 해당 부분을 마모시켜 유효하지 않게 만듭니다. 결과적으로 NAND 플래시의 수명이 제한됩니다. 이러한 문제가 발생하지 않도록 SSD 내에 웨어 레벨링 기법이라는 특수 알고리즘이 배포됩니다. 용어에서 알 수 있듯이 웨어 레벨링 기법은 프로그램 및 삭제 사이클을 SSD 내의 모든 메모리 블록에 균일하게 분배하는 방법을 제공합니다. 이를 통해 동일한 메모리 블록에 대한 지속적인 프로그램 및 삭제 사이클을 방지하여 전체 NAND 플래시 메모리의 수명을 연장할 수 있습니다.
웨어 레벨링에는 동적 평준화와 정적 평준화의 두 가지 유형이 있습니다. 동적 마모 알고리즘은 데이터 프로그램 및 삭제 사이클이 NAND 플래시의 모든 블록에 고르게 분산되도록 보장합니다. 이 알고리즘은 드라이브의 쓰기 버퍼에 있는 데이터가 플러시되고 플래시 메모리에 기록될 때마다 실행되기 때문에 동적입니다. 동적 웨어 레벨링만으로는 모든 블록이 동일한 속도로 웨어 레벨링을 달성하도록 할 수는 없습니다. 데이터가 플래시에 장기간 또는 무기한으로 기록되고 저장되는 특수한 경우도 있습니다. 다른 블록이 활발하게 스왑되고 삭제되고 풀링되는 동안 이러한 블록은 웨어 레벨링 프로세스에서 비활성 상태로 유지됩니다. 모든 블록이 동일한 속도로 웨어 레벨링을 달성하도록 하려면 정적 웨어 레벨링이라고 하는 보조 웨어 레벨링 알고리듬을 사용하면 됩니다. 정적 웨어 레벨링은 비활성 상태인 블록을 처리하고 그곳에 데이터를 저장합니다.
Dell SSD 정적, 동적 웨어 레벨링 알고리즘이 통합되어 있어 NAND 블록이 SSD의 긴 수명을 위해 고르게 평준화됩니다.
오버프로비저닝
오버프로비저닝을 통해 다음과 같은 사항이 개선됩니다.