NAND 플래시는 게이트 내에서 전자를 포획하는 수백만 개의 플로팅 게이트 트랜지스터로 구성된 비휘발성 메모리입니다. 이러한 플로팅 게이트 트랜지스터는 메모리 셀로 생각할 수 있습니다. 수백만 개의 메모리 셀이 연결되면 어레이를 형성합니다. 각 배열은 블록으로 구성되며 각 블록에는 여러 페이지가 포함됩니다.
그림 1은 NAND 어레이 f 회로도를 간략하게 보여줍니다.
각 WL(Word-Line)은 NAND에서 읽기/프로그램 작업의 기본 단위인 페이지를 만듭니다. 단, SLC(Single-Level Cell), MLC(Multi-Level Cell), TLC(Triple-Level Cell) 방식의 NAND는 각 WL의 페이지 수가 다르다.
그림 2는 MLC NAND에서 동일한 WL을 공유하는 두 페이지(하단 및 상단 페이지)와 TLC NAND에서 동일한 WL을 공유하는 세 페이지(하단, 중간 및 상단 페이지)를 보여줍니다. 동일한 WL을 공유하는 페이지를 쌍 페이지라고 합니다.
NAND 플래시의 물리적 특성으로 인해 다음은 NAND 프로그래밍 작업에서 따라야 할 두 가지 황금률입니다.
- 프로그래밍 작업은 NAND 플래시 특성에 따라 지정된 순서를 따라야 합니다.
- WL(Word-Line)에서 프로그래밍 작업이 완료되지 않으면 이 WL의 데이터 무결성을 보장할 수 없습니다.
MLC 또는 TLC NAND 플래시의 경우 단일 페이지의 데이터 프로그래밍은 한 단계 작업이 아닙니다. 데이터 프로그래밍 요구 사항을 충족하려면 MLC/TLC 페이지를 두세 번 프로그래밍해야 합니다. 이러한 현상은 플래시 메모리의 물리적 특성입니다.
쌍 페이지의 사용자 데이터에 대한 무결성 문제
현재 소비자 솔리드 스테이트 드라이브(SSD) 시장에서 MLC 및 TLC 플래시는 가장 인기 있는 메모리 유형입니다. MLC 및 TLC 플래시는 특히 TLC와 같이 저렴한 비용으로 훨씬 더 큰 스토리지 용량을 제공할 수 있습니다. 그러나 MLC 및 TLC 플래시의 프로그래밍 작업은 SLC보다 복잡합니다. 예를 들어 TLC 플래시를 사용하는 경우 전체 작업을 완료하려면 동일한 WL에서 페어링된 페이지를 세 번 프로그래밍해야 합니다.
그림 3은 TLC 플래시의 전체 프로그램 작동을 보여줍니다. WL_x에 대한 세 번째 프로그래밍 작업이 완료되어야 WL_x에 저장된 데이터가 신뢰할 수 있는 데이터가 됩니다.
불행하게도 이러한 프로그래밍 작업의 복잡성은 데이터 손상 위험을 가중시킵니다. 전체 프로그래밍 시퀀스가 완료된 후에만 데이터 무결성이 발생하기 때문에(예: 첫 번째 프로그램 + 두 번째 프로그램 + 세 번째 프로그램) 프로그래밍 작업이 완료되기 전에 예기치 않은 이벤트가 발생하면 데이터가 손상되거나 손실될 수 있습니다.
그림 4는 예상치 못한 이벤트가 데이터 프로그래밍 작업을 방해하는 경우 발생하는 상황을 보여줍니다. 이 경우 WL_2에 대한 프로그래밍 작업이 완료되기 전에 전원 손실이 발생하므로 WL_0/WL_1에 저장된 데이터만 보장됩니다. 즉, 정전으로 인해 다른 데이터가 손상될 수 있습니다.
Phison 독점 기술인 GuaranteedFlush™는 프로그래밍 작업 중 예상치 못한 중단으로 인한 데이터 손상으로부터 저장 장치를 방지하도록 설계되었습니다.
GuaranteedFlush™는 모든 단일 데이터 프로그래밍 명령에 대해 실행되지 않습니다. 대신 저장 장치가 FLUSH_CACHE 명령을 받으면 GuaranteedFlush™가 백그라운드에서 트리거됩니다. 결과적으로 FLUSH_CACH 명령 이전에 장치에 프로그래밍된 모든 데이터의 무결성은 이 기술에 의해 보장됩니다.
그림 5는 GuaranteedFlush™가 다룰 수 있는 사용자 데이터 범위를 보여줍니다.
GuaranteedFlush™는 다층 알고리즘을 구현한 것입니다. 갑작스러운 전원 손실로부터 사용자의 데이터를 보호하기 위해 사용되는 두 가지 기본 방법이 있습니다.
개념 1: 더미 데이터 보정
첫 번째 방법은 프로그래밍 작업 속도를 높이는 것입니다. 다른 NAND 플래시 유형의 프로그래밍 시퀀스는 다를 수 있습니다. 프로그래밍 순서가 어떻게 달라지든 단일 WL의 데이터 프로그래밍 기간에 따라 예기치 않은 중단으로 인한 데이터 손실 위험이 결정됩니다. 이 기간이 길어지면 중단이 발생할 가능성이 높아집니다. 이 문제를 해결하기 위해 더미 데이터가 특정 WL에 삽입되어 사용자 데이터를 저장하는 WL이 전체 프로그래밍 작업(즉, 첫 번째 프로그램 + 두 번째 프로그램 + 세 번째 프로그램)을 완료할 수 있도록 합니다(그림 6 참조).
다음 WL에 더미 데이터를 삽입하면 사용자 데이터 프로그래밍 작업을 완료할 수 있습니다. 이러한 방식으로 예기치 않은 이벤트가 예정된 프로그래밍 시퀀스를 중단하더라도 사용자 데이터의 무결성이 보장됩니다.
개념 2: 실시간 데이터 백업
쌍 페이지 효과로 인한 데이터 손상으로부터 SSD를 보호하는 데 사용할 수 있는 두 번째 방법은 애초에 쌍 페이지 문제가 발생하지 않고 데이터를 페이지에 직접 백업하는 것입니다. SLC 모드로 구성된 페이지는 이 요구 사항을 충족할 수 있습니다. 이것은 사용자 데이터를 안전하게 유지하는 근본적인 방법처럼 느껴질 수 있습니다. 그러나 SLC 모드의 용량은 TLC 메모리의 1/3입니다. 실시간 데이터 백업의 구현은 또 다른 문제가 됩니다.
안전한 데이터를 위해 Phison을 선택하십시오
GuaranteedFlush™는 예상치 못한 정전 시 데이터 정확성을 보장하도록 설계된 또 다른 Phison 독점 기술입니다. GuaranteedFlush™는 Phison SSD 제품의 신뢰성을 강화합니다.