Loading AI tools
PCIe 버스에 부착된 비휘발성 메모리 접근을 위한 논리 장치 인터페이스 위키백과, 무료 백과사전
NVM 익스프레스(NVM Express, NVMe) 또는 비휘발성 메모리 호스트 컨트롤러 인터페이스 사양(Non-Volatile Memory Host Controller Interface Specification, NVMHCI)은 PCI 익스프레스(PCIe) 버스에 부착된 비휘발성 기억 매체 접근을 위한 논리 장치 인터페이스 사양이다. "NVM"은 "비휘발성 메모리"(non-volatile memory)를 뜻하며, 보통 솔리드 스테이트 드라이브(SSD) 형태로 출시되는 플래시 메모리를 가리킨다.
상태 | 출판됨 |
---|---|
시작 연도 | 2011년 |
마지막 버전 | 2.0c 2022년 10월[1] |
조직 | NVM Express Work Group (incorporated as NVM Express in 2014) |
약어 | NVMe |
웹사이트 | nvmexpress |
설계 상, NVM 익스프레스는 현대의 SSD에서 볼 수 있는 여러 수준의 병렬화를 허용하며 이로써 호스트 하드웨어와 소프트웨어에 의해 완전히 이용될 수 있다. 그 결과, NVM 익스프레스는 입출력 부하를 줄이고 길이가 긴 다중 명령 큐, 감소된 레이턴시를 포함하여 이전 논리 장치 인터페이스에 비해 다양한 성능 개선을 이루게 된다.
NVM 익스프레스 장치는 표준 크기의 PCI 익스프레스 확장 카드와[2], U.2 단자(이전 이름: SFF-8639)를 통해 4 레인의 PCI 익스프레스 인터페이스를 제공하는 2.5인치 폼 팩터 장치로 존재한다.[3][4] 내부적으로 마운트된 컴퓨터 확장 카드를 위한 SATA 익스프레스 스토리지 장치와 M.2 사양 또한 NVM 익스프레스를 논리 장치 인터페이스로서 지원한다.[5][6]
비휘발성 메모리를 접근하는 새로운 표준에 대한 상세 내용은 인텔 개발자 포럼 2007에서 처음 등장하였고, 이 때 NVMHCI가 메모리 (플래시) 칩 사이드의 ONFI(Open NAND Flash Interface Working Group)가 포함된 제안 형태의 아키텍처 디자인의 호스트 사이드 프로토콜로 모습을 드러냈다.[7] 인텔이 주도한 NVMHCI 워킹 그룹은 그 해에 창설되었다. NVMHCI 1.0 사양은 2008년 4월 완료되었고 인텔의 웹 사이트에 공개되었다.[8][9][10]
NVMe에 대한 기술적인 작업은 2009년 후반에 시작되었다.[11] NVMe 사양은 NVM 익스프레스 워크그룹에 의해 개발되었고, 90곳이 넘는 회사로 구성되었다. 인텔의 Amber Huffman는 그룹의 의장이었다. 버전 1.0의 사양은 2011년 3월 1일에 공개되었고[12], 버전 1.1의 사양은 2012년 10월 11일에 공개되었다.[13] 버전 1.1에 추가된 주요 기능으로는 멀티패스 입출력 (이름공간 공유 포함)과 임의 길이 scatter-gather 입출력이다. 차기 버전은 이름공간 관리가 상당히 개선될 것이다. 기능에 초점을 두었기 때문에 NVMe 1.1은 처음에 "엔터프라이즈 NVMHCI"로 불렸다.[14] 버전 1.0e의 기반 NVMe 사양의 업데이트는 2013년 1월에 공개되었다.[15] 2011년 6월에 7개 회사가 주도하는 프로모터 그룹은 형성되었다.
최초로 상용화된 NVMe 칩셋은 2012년 8월 Integrated Device Technology(IDT, 89HF16P04AG3 및 89HF32P08AG)가 출시하였다.[16][17] 최초의 NVMe 드라이브인 삼성의 XS1715 엔터프라이즈 드라이브는 2013년 7월에 발표되었고, 삼성에 따르면 이 드라이브는 과거 기업에 제공되었던 것 보다 6배 더 빠른 3 GB/초의 읽기 속도를 지원하였다.[18] 2013년 11월에 출시된 LSI 샌드포스 SF3700 컨트롤러 계열도 NVMe를 지원한다.[19]
고급 호스트 컨트롤러 인터페이스(AHCI) 인터페이스는 폭넓은 소프트웨어 호환성의 이점이 있지만, 단점으로는 PCI 익스프레스 버스를 통해 연결된 SSD와 함께 사용할 때 최적의 성능을 전달하지 않는다는 것이다. 논리 인터페이스로서 AHCI는 시스템의 호스트 버스 어댑터(HBA)의 목적이 CPU/메모리 하위 시스템을 회전하는 자기 매체 기반의 훨씬 더 느린 스토리지 하위 시스템과 연결하는 것이었던 시기에 개발되었다. 그 결과, AHCI는 회전하는 매체 보다 DRAM의 동작에 더 가까운 SSD 장치와 함께 사용할 때 특정한 비효율성이 유입되었다.[5]
NVMe 장치 인터페이스는 밑바닥부터 다시 설계하여, PCI 익스프레스 SSD의 낮은 레이턴시와 병렬화를 이용하고 동시대 CPU, 플랫폼, 응용 프로그램의 병렬화를 보완한다.
높은 수준에서 AHCI 대비 NVMe의 기본적인 이점은 호스트 하드웨어와 소프트웨어의 병렬화를 이용할 수 있다는 것과 관련되며, 이는 명령 큐의 깊이의 차이, 인터럽트 처리의 효율성, 캐시 불가능한 레지스터 접근의 수 등의 차이에서 분명하게 볼 수 있으며, 그 결과 다양한 성능 개선을 이루었다.[5][20]:17–18
아래의 표는 NVMe와 AHCI의 논리 장치 인터페이스 간 차이를 요약한 것이다.
AHCI | NVMe | |
---|---|---|
최대 큐 깊이 | 하나의 명령 큐 큐 하나 당 32개의 명령 | 65535개의 큐[21] 큐 하나 당 65536개의 명령 |
캐시 불가능한 레지스터 접근 수 (각각 2000 사이클) |
큐에 없는 명령마다 6개 큐가 있는 명령마다 9개 | 명령 당 2개 |
MSI-X 와 인터럽트 스티어링 |
단일 인터럽트 스티어링 없음 | 2048개의 MSI-X 인터럽트 |
병렬화 및 다중 스레드 |
명령 발행을 위해 동기화 락이 필요 | 락 없음 |
4 KB 명령의 효율성 |
명령 매개변수는 2개의 직렬화된 호스트 DRAM 페치 필요 | 하나의 64바이트 페치의 명령 매개변수를 가져옴 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.