오픈채널 SSD

Open-channel SSD

오픈 채널 솔리드 스테이트 드라이브는 디바이스에 펌웨어 Flash Translation Layer가 구현되어 있지 않지만 물리적 솔리드 스테이트 스토리지의 관리는 컴퓨터의 운영 [1][2]체제에 맡기는 솔리드 스테이트 드라이브입니다.Linux 4.4 커널은 NVM Express 규격을 따르는 개방형 채널 SSD를 지원하는 운영 체제 커널의 예입니다.운영 체제에서 오픈 채널 솔리드 스테이트 드라이브에 액세스하는 데 사용되는 인터페이스를 [3][4][5]LightNVM이라고 합니다.

NAND 플래시의 특성

SSD는 낸드플래시 메모리를 데이터 저장에 사용하기 때문에 이 매체의 특성을 파악하는 것이 중요하다.NAND 플래시는 읽기/쓰기/삭제 인터페이스를 제공합니다.NAND 패키지는 다이, 평면, 블록 및 페이지의 계층 구조로 구성됩니다.하나의 물리적 패키지 안에 하나 또는 여러 개의 다이가 있을 수 있습니다.다이에서는 한 번에 하나의 I/O 명령을 실행할 수 있습니다.평면을 사용하면 다이 내에서 유사한 플래시 명령을 병렬로 실행할 수 있습니다.NAND에는 3가지 기본적인 프로그래밍 제약사항이 있습니다. (i) write 명령에는 1개(또는 여러 개)의 전체 플래시 페이지를 프로그래밍하기에 충분한 데이터가 항상 포함되어 있어야 하며 (ii) 쓰기는 블록 내에서 순차적으로 수행되어야 하며 (ii) 블록 내의 페이지를 다시 쓰려면 지우기를 수행해야 합니다.프로그램/삭제(PE) 사이클의 수는 제한되어 있습니다.이러한 제약으로 인해 SSD 컨트롤러는 논리 블록 순서와 다른 순서로 NAND 플래시 메모리에 데이터를 씁니다.이는 SSD 컨트롤러가 호스트(논리) 주소에서 NAND(물리) 주소로의 매핑 테이블을 유지해야 함을 의미합니다.이 매핑은 보통 L2P 테이블이라고 불립니다.논리 주소에서 물리 주소로 변환을 실행하는 레이어를 플래시 변환 레이어(FTL)[6]라고 부릅니다.

기존 SSD와의 비교

Open Channel SSD는 데이터 배치 결정, 초과 프로비저닝, 스케줄링, 가비지 수집 및 마모 [7]레벨링과 관련하여 보다 유연한 기능을 제공합니다.그러나 최소 읽기 단위 및 최소 쓰기 단위와 같은 중요한 장치 특성이 [8]장치마다 다르기 때문에 오픈 채널 SSD는 장치의 균일한 클래스로 간주되지 않을 수 있습니다.따라서 모든 Open-Channel SSD에서 자동으로 작동하는 FTL을 설계할 수 없습니다.

기존 SSD는 SSD의 DRAM에 L2P 테이블을 유지하고 해당 L2P 테이블을 유지하기 위해 자체 CPU를 사용합니다.Open Channel SSD를 사용하면 L2P 테이블이 호스트 메모리에 저장되고 호스트 CPU가 해당 테이블을 유지합니다.Open Channel SSD 접근 방식은 더 유연하지만 L2P 관리를 위해서는 상당한 양의 호스트 메모리와 호스트 CPU 사이클이 필요합니다.평균 쓰기 크기가 4KB이므로 크기가 1TB인 SSD의 [9]경우 약 3GB의 RAM이 필요합니다.

오픈 채널 SSD용 파일 시스템 오픈 채널 SSD를 사용하면 L2P 매핑을 파일 [10]시스템의 스토리지 관리와 직접 통합하거나 통합할 수 있습니다.이를 통해 시스템 소프트웨어와 SSD 펌웨어 간의 중복을 방지하고 성능과 내구성을 향상할 수 있습니다.또한 개방형 채널 SSD를 통해 플래시 메모리를 보다 유연하게 제어할 수 있습니다.내부 병렬화는 시스템 소프트웨어와 SSD 펌웨어의 데이터 레이아웃, 가비지 수집 및 요청 스케줄링을 조정하여 경합을 제거함으로써 성능을 [11]향상시키고 원활하게 합니다.

레퍼런스

  1. ^ Matias Bjørling (March 12, 2015). "Open-Channel Solid State Drives" (PDF).
  2. ^ Lu, Youyou; Shu, Jiwu; Zheng, Weimin (2013). Extending the Lifetime of Flash-based Storage through Reducing Write Amplification from File Systems (PDF). FAST.
  3. ^ Corbet, Jonathan (22 April 2015). "Taking control of SSDs with LightNVM". Retrieved 3 February 2019.
  4. ^ Michael Larabel (15 November 2015). "A Look At The New Features Of The Linux 4.4 Kernel". Phoronix.
  5. ^ Michael Larabel (3 November 2015). "LightNVM Support Is Going Into Linux 4.4". Phoronix.
  6. ^ Bjørling, Matias; Gonzalez, Javier; Bonnet, Philippe (2017). LightNVM: The Linux Open-Channel SSD Subsystem (PDF). USENIX FAST. pp. 359–374.
  7. ^ Bjørling, Matias (12 March 2015). Open-Channel Solid State Drives (PDF). Vault. Retrieved 3 February 2019.
  8. ^ Picoli, Ivan Luiz; Hedam, Niclas; Bonnet, Philippe; Tözün, Pınar (12 January 2020). Open-Channel SSD (What is it Good For) (PDF). CIDR. Retrieved 4 March 2020.
  9. ^ "Fusion ioMemory™ VSL® 3.2.15" (PDF). SanDisk, a Western Digital Brand. Retrieved 3 February 2019.
  10. ^ Lu, Youyou; Shu, Jiwu; Zheng, Weimin (2013). Extending the Lifetime of Flash-based Storage through Reducing Write Amplification from File Systems (PDF). FAST.
  11. ^ Zhang, Jiacheng; Shu, Jiwu; Lu, Youyou (2016). ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices (PDF). USENIX ATC.