플래시 메모리 컨트롤러

Flash memory controller
Lexar USB 스틱8 GB - Silicon Motion SM3253L - USB 2.0 싱글채널 플래시 컨트롤러

플래시 메모리 컨트롤러(또는 플래시 컨트롤러)는 플래시 메모리(일반적으로 NAND 플래시)에 저장된 데이터를 관리하고 컴퓨터 또는 전자 장치와 통신합니다.플래시 메모리 컨트롤러는 메모리 카드 등 부하가 낮은 환경에서 동작하도록 설계할 수 있습니다.또, PDA, 휴대 전화 등에 사용하는 다른 유사 미디어도 사용할 수 있습니다.USB 플래시 드라이브는 낮은 듀티 사이클로 USB 포트를 통해 개인용 컴퓨터와 통신하도록 설계된 플래시 메모리 컨트롤러를 사용합니다.또한 플래시 컨트롤러는 노트북 컴퓨터 시스템의 데이터 스토리지로 사용되는 SSD(Solid-State Drive)와 같은 높은 듀티 사이클 환경에 맞게 설계되어 미션 크리티컬 엔터프라이즈 스토리지 [1]어레이까지 완벽하게 정리할 수 있습니다.

초기 셋업

플래시 스토리지 디바이스가 최초로 제조된 후 플래시 컨트롤러를 사용하여 플래시 메모리를 포맷합니다.이것에 의해, 디바이스가 올바르게 동작하고 있는 것을 확인해, 불량 플래시 메모리 셀을 매핑 해, 장차 장해가 발생하는 셀을 대체할 스페어 셀을 할당합니다.스페어 셀의 일부는 컨트롤러 및 특정 스토리지 디바이스의 기타 특수 기능을 동작시키는 펌웨어를 유지하는 데도 사용됩니다.컨트롤러가 논리 섹터에 대한 요구를 실제 플래시 메모리 [1]칩 상의 물리적인 위치로 변환할 수 있도록 디렉토리 구조가 작성된다.

읽기, 쓰기 및 지우기

시스템 또는 장치가 플래시 메모리에서 데이터를 읽거나 써야 할 경우 플래시 메모리 컨트롤러와 통신합니다.SD 카드나 USB 플래시 드라이브와 같은 단순한 장치에는 일반적으로 소수의 플래시 메모리가 동시에 연결되어 있습니다.동작은 개별 플래시 메모리 다이 속도로 제한됩니다.이와는 대조적으로 고성능 솔리드 스테이트 드라이브는 단일 플래시 [citation needed]다이보다 몇 배 더 빠른 속도를 실현하기 위해 병렬 통신 경로를 가진 매트릭스 형태로 구성된 100개 이상의 다이(die)를 가집니다.

마모 레벨링 및 블록 피킹

플래시 메모리는 제한된 수의 프로그램 삭제 사이클에 견딜 수 있습니다.특정 플래시 메모리 블록을 다른 블록에 쓰지 않고 반복적으로 프로그래밍 및 삭제하면 한 블록이 다른 모든 블록보다 먼저 마모되어 스토리지 디바이스의 수명이 조기에 종료됩니다.이러한 이유로 플래시 컨트롤러는 마모 레벨링이라는 기술을 사용하여 SSD의 모든 플래시 블록에 쓰기를 가능한 한 균등하게 분산합니다.완벽한 시나리오에서는 모든 블록이 최대 수명까지 기록될 수 있으므로 동시에 장애가 발생합니다.[2]

Flash Translation Layer(FTL; 플래시 변환 레이어) 및 매핑

통상, 플래시 메모리 컨트롤러에는, 호스트측 또는 파일 시스템의 Logical Block Address(LBA; 논리 블록 주소)를 플래시 메모리의 물리 주소에 매핑하는 파일 시스템 아래의 레이어인 「Flash Translation Layer」(FTL; 플래시 변환 레이어)도 포함됩니다.LBA는 섹터 번호와 512바이트의 매핑 단위를 나타냅니다.파일 시스템에서 확인 및 관리하는 논리 크기를 나타내는 모든 LBA는 플래시의 물리적 위치(블록 ID, 페이지 ID 및 섹터 ID)에 매핑됩니다.마모 레벨링 및 기타 플래시 관리 알고리즘(불량 블록 관리, 읽기 방해 관리, 안전한 플래시 처리 등)의 일부로서 LBA의 물리적 위치가 동적으로 변경될 수 있습니다.FTL의 매핑 단위는 LBA가 블록 베이스, 페이지 베이스, 또는 서브 페이지 베이스로 매핑되도록 다를 수 있습니다.사용 패턴에 따라 세분화된 매핑을 통해 플래시 마모를 크게 줄이고 플래시 기반 스토리지 [3][4][5]미디어의 내구성을 극대화할 수 있습니다.

FTL 메타데이터는 자체 플래시 공간을 차지하므로 정전 시 보호도 필요합니다.또한 플래시 메모리의 다른 부분이 마모되기 전에 매핑 테이블이 마모되어 스토리지 디바이스의 수명이 조기에 종료될 수 있다.일반적으로 엔터프라이즈 디바이스에서는 스페어용으로 큰 공간을 할당함으로써 이 문제를 피할 수 있습니다.단, FTL에서는 MRAM과 같은 보다 내구성이 뛰어난 스토리지 형식이 제안되고 있습니다.

가비지 컬렉션

솔리드 스테이트 스토리지 디바이스의 모든 블록이 한 번 작성되면 플래시 컨트롤러는 더 이상 현재 데이터가 없는 일부 초기 블록(오래된 블록이라고도 함)으로 돌아가야 합니다.이 블록의 데이터는 새로 작성된 블록으로 대체되었으며, 이제 새 데이터가 기록될 수 있도록 삭제되기를 기다리고 있습니다.이것은 GC(가비지 수집)라고 하는 프로세스입니다. 모든 SSD, CF 카드 및 기타 플래시 스토리지 디바이스에는 일정 수준의 가비지 수집이 포함됩니다.플래시 컨트롤러가 이를 실행하는 속도는 [6]다를 수 있습니다.

레퍼런스

  1. ^ a b "Flash Memory Guide" (PDF). kingston.com. Retrieved 7 March 2013.
  2. ^ Chang, Li-Pin (2007-03-11). "On Efficient Wear Leveling for Large Scale Flash Memory Storage Systems". National ChiaoTung University, HsinChu, Taiwan. CiteSeerX 10.1.1.103.4903. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  3. ^ Goodson, Garth; Iyer, Rahul. "Design Tradeoffs in a Flash Translation Layer" (PDF). Archived from the original (PDF) on June 23, 2015.
  4. ^ "Understanding Flash: The Flash Translation Layer". September 17, 2014.
  5. ^ Heidrich, Susan (February 2015). "New flash management architecture enables MLC for industrial storage" (PDF).
  6. ^ "SSDs - Write Amplification, TRIM and GC" (PDF). OCZ Technology. Archived from the original (PDF) on 2012-05-26. Retrieved 2010-05-31.