NVMe 기술 동향 정병권 김학영* 김영우* 한국전자통신연구원 선임연구원 한국전자통신연구원 책임연구원* CPU 성능 향상을 위해 과거에는 프로세서의 동작 주파수 향상에 초점을 두었으나, 현재는 다수의 프로세서를 집적하는 멀티 프로세서로 기술 발전이 이루어지고 있다. 하지만 현재와 같은 방대한 양의 데이터를 빠르게 처리할 수 없으므로 컴퓨터 구조의 혁신적 재설계가 필수 불가결하다. 이러 한 변화의 움직임은 입출력 컴퓨팅 기술을 통해 진행되고 있다. 이 기술로 인해 고성능, 초절전의 성능을 갖춘 노트북 같은 모바일 디바이스뿐만 아니라 서버 등의 스토리지 장치를 위한 최적의 솔 루션 제공이 가능해졌다. 본 고에서는 막대한 데이터를 고속으로 처리하기 위한 입출력 기술인 NVM Express(이하 NVMe)의 최근 개발 동향에 대해 알아보고자 한다. I. NVMe 정의 NVMe((Non-Volatile Memory express)는 PCI Express SSD 기반의 엔터프라이즈 및 클라이언트 시스템을 위해 간소하게 설계된 레지스터 인터페이스와 명령 세트에 최적화된 고성능의 확장 가능한 호스트 컨트롤러 인터페이스이다. 좀더 자세히 설명하면, NVMe 는 스토리지 장치를 위 한 신호 규약이고 PCIe 버스를 사용하는 SSD 에만 적용되며, 커맨드 처리시간이 짧아서 고속 데 이터 전송과 대량의 데이터 요구를 동시에 처리할 수 있다. PCIe 는 CPU 로 직접 연결될 수 있 기 때문에 호스트 버스 어댑터(HBA)가 필요하지 않고, 따라서 지연시간을 줄이며 시스템 비용 과 전력소비 또한 낮출 수 있다. 그 동안은 HDD 의 느린 응답속도가 문제였으나, 오늘날 AHCI(Advanced Host Controller Interface) 프로토콜이 SSD 성능을 따라가지 못하여 소프트웨어 처리시간 지연을 발생시키게 되었다. 좀더 구체적으로 설명하면, AHCI 는 하나의 커맨드를 완료하는 과정에만 9 번의 레지스터 접근과 그 * 본 내용은 정병권 선임연구원( 042-860-1537, bkjung@etri.re.kr)에게 문의하시기 바랍니다. ** 본 내용은 필자의 주관적인 의견이며 IITP 의 공식적인 입장이 아님을 밝힙니다. 2 www.iitp.kr
포커스 로 인한 지연시간이 발생할 수 밖에 없어 SSD 의 빠른 응답속도를 모두 처리하는 것이 불가능 하게 되었다. 그래서, NVMe 는 end-to-end 지연시간을 낮추며 빠른 성능을 제공하기 위해 설계 되었다. 스토리지와 서버 같은 엔터프라이즈 애플리케이션에 PCIe SSD 을 도입한다면 성능 병 목문제를 해소하고 대량의 데이터를 더 빠른 속도로 액세스할 수 있을 것으로 판단된다. 이러 한 고속 데이터 처리를 제공하는 NVMe 호스트 제어 인터페이스 표준의 출현은 엔터프라이즈 분야에서 PCIe SSD 의 잠재력을 극대화할 것으로 전망되며 시장의 빠른 성장에 기여할 것으로 예상된다. 이를 알려주는 지표로, 가트너는 PCIe 엔터프라이즈 SSD 시장이 2015 년에서 2018 년 사이 연평균 50%로 성장할 것으로 내다봤다[1]. II. NVMe 기술 동향 NVMe 가 새로운 스토리지 기술로 조명되는 가장 큰 이유는 HDD 시대에 설계되었던 AHCI 를 대체할 수 있다는 것이다. 현재 우리가 사용하는 PC 는 AHCI 로 설정되어 있고, 특히 SSD 를 사 용하는 PC 는 필수로 설정 명령어를 전달하는 방식에서 요즘과 같은 고속 플래시를 사용하기에 는 제약 사항이 많다. SSD 의 성능은 점점 개선되었고, 병렬적으로 더 많은 처리량을 필요로 하 고 있지만 근본적으로 SATA 가 가진 인터페이스 디자인의 한계로 인해 최대 처리량이 제한되 는 한계점에 도달하게 되었다. 이러한 한계점을 극복하고자 PCIe 버스를 기반으로 하는 NVMe 가 출현하게 되었다. NVMe 는 대규모 병렬 구조를 가지며, 최적화된 레지스터 인터페이스와 높 은 수준의 확장성을 제공함으로써, 현 시점의 스토리지 요구사항뿐만 아니라 향후 달라질 요구 사항 또한 손쉽게 충족할 수 있다. 빠른 성능을 목표로 설계된 NVMe 는 클라우드, 인터넷 포털 데이터센터, 고성능 컴퓨팅 환경의 요구를 충족할 수 있다. 그러나, NVMe 는 PCI express 기반 의 인터페이스로, NVMe SSD 의 속도는 AHCI 기반 SSD 즉, 기존 SATA 인터페이스 대비 6 배 이 상 빠르다. [그림 1]은 호스트 컨트롤러 인터페이스의 변화를 보여준다. NVMe 는 2007 년 인텔 주도로 NAND 메모리 기반 스토리지를 위해 기술 개발이 시작되었다. SATA 로는 부족한 물리적 대역폭 문제를 해결하기 위해 PCI Express 를 버스 인터페이스로 사용 하였고, CPU 와 메모리로 전달되는 구조에 따른 지연시간을 해결하면서도 물리적인 대역폭 한 계도 극복하였다. NVMe 는 AHCI 에서 불가능했던 멀티 코어에도 대응이 가능해 대량의 커맨드 처리가 가능한 것이 또 하나의 장점이다. NVMe 스펙 1.0 은 2011 년 3 월 1 일에 처음 릴리즈되 정보통신기술진흥센터 3
<자료> http://www.thessdreview.com/daily-news/latest-buzz/intel-ssd-dc-p3700-review-800gb-nvme-enterprise/ [그림 1] 호스트 컨트롤러 인터페이스의 변화 었으며, PCI Express bus 기반의 SSD 를 목표로 하였다. 그리고, SSD 인터페이스의 표준화를 위 해 모든 제조사의 SSD 와 통신할 수 있는 호스트 디바이스 드라이버가 필요하여 80 개 이상의 업체가 모여 인터페이스 표준을 정의하고 개발하였다. IDT 를 포함하여 Dell, EMC, Netapp, Cisco, Oracle, Intel, STEC, Samsung, Micron, Sandisk, Marvell, LSI 등이 참여하였다. NVMe 의 두드러지 는 특징 중 하나는 커맨드를 처리하기 위한 Submission Queue 와 처리가 완료된 커맨드 정보를 저장하기 위한 Completion Queue 를 커맨드가 처리될 때까지 기다리지 않고 계속적으로 처리하 는 Multiple outstanding 방식을 가진다는 것이다. [표 1]은 NVMe 를 기존의 인터페이스 아키텍처인 SATA 기반의 AHCI 와 비교하였다. NVMe 는 AHCI 에 비해 최대 Queue 엔트리를 64K 개까지 생성할 수 있어 다량의 커맨드를 보내고 처 리할 수 있게 설계되었다. AHCI 는 HBA(Host Bus Adapter)를 중심으로 호스트와 디바이스 간 인 터페이스 하도록 디자인되었으며, Un-cacheable register access 에서는 커맨드 하나를 이슈하고 완료하기 위해 non-queued command 는 6 번, queued command 는 9 번의 HBA 레지스터 접근이 필요하다. 하지만 NVMe 는 단 2 번의 레지스터 접근으로 이슈하고 처리한다. 그래서 NVMe 에서 는 복잡한 레지스터 접근을 최소화하기 위해 HBA 를 사용하지 않고 호스트 컨트롤러와 디바이 스 컨트롤러가 직접 인터페이스 하도록 설계되었다. 좀더 구체적으로 설명하면, AHCI 는 커맨드 4 www.iitp.kr
포커스 를 전달하고 처리할 때 HBA 의 DMA 가 그 역할을 담당하지만 NVMe 는 디바이스쪽의 컨트롤러 가 호스트의 커맨드를 패치하여 HBA 의 임무를 줄여주도록 설계되었다. [표 1] AHCI 와 NVMe 아키텍처 비교 구분 AHCI NVMe Maximum Queue Depth Un-cacheable register accesses(2k cycles each) 1 command queue 32 commands per Q 6 per non-queued command 9 per queued command 64K queues 64K commands per Q 2 per command MXI-X and Interrupt Steering Single interrupt; no steering 2K MSI-X interrupts Parallelism & Multiple Threads Efficiency for 4KB commands Requires synchronization lock to issue command Command parameters require two serialized host DRAM fetches No locking Command parameters in one 64B fetch Driver Support Typically in-box Installed with device <자료> http://www.extremetech.com/computing/161735-samsung-debuts-monster-1-6tb-ssd-with-new-high-speed-pcie-nvme-protocol NVMe 는 캐싱(caching)이나 다중 드라이브에서 다음과 같은 이점을 제공한다. - 멀티 코어 동작으로 데이터에 빠르게 접근 가능 - IO 당 적은 클럭 수로 동작하는 레지스터 인터페이스와 명령 세트 - NVM 성능 요구를 충족할 수 있는 뛰어난 확장성 - end-to-end 데이터 보호 및 Trusted Computing Group 의 표준 보안 프로토콜 지원 [그림 2]는 인텔 i5-2500k 3.3GHz 쿼드 코어 프로세서에 리눅스 EL6.0 커널을 NVMe 드라이 브 스택과 AHCI 스택을 사용하여 1M IOPS 성능을 내기 위해 필요한 CPU 코어를 환산한 결과, NVMe 스택을 이용할 경우 3.5 개의 코어가, AHCI 스택을 이용할 경우 10 개의 코어가 필요할 것 으로 예상되어 약 3 배의 CPU 코어가 소요됨을 알 수 있다. [그림 3]과 같이 IOmeter 을 사용하 여 IOPS 성능을 측정한 결과 AHCI 방식과 NVMe 방식으로 SSD 를 테스트한 결과 SATA SSD 는 5 만 IOPS NVMe SSD 는 30 만 IOPS(Input Output Per Second)로 500% 성능 향상이 있음을 확인할 수 있다. 삼성전자는 2013 년 세계 최초로 울트라 슬림 PC 에 탑재되는 M.2 규격의 NVMe SSD 를 양산했다. 현재 삼성의 M.2 NVMe SSD 는 128GB, 256GB 및 512GB 모델로 공급되고 있다. 향 후 삼성전자는 차세대 3 비트 V 낸드 기반의 고용량 NVMe SSD 라인업을 출시할 예정이다. 특 히, 512GB 모델은 삼성전자가 독자 개발한 컨트롤러를 탑재하여 같은 M.2 규격의 기존 소비자 용 SATA SSD 보다도 4 배 빠른 2,260MB/s 의 연속읽기 속도와 3 배 빠른 1,600MB/s 의 연속쓰기 정보통신기술진흥센터 5
<자료> http://electronics.wesrch.com/page-summary-pdf-el11tzs1osiak-ssd-performance-that-matters-27 [그림 2] AHCI 와 NVMe IOPs 비교 속도를 구현했다. 소비전력 측면에서도 초절전 회로규격을 적용하여 대기모드에서 2 밀리와트 (mw) 이하의 소비전력을 구현하는 등 고성능, 초절전, 안정성을 갖춰 노트북을 위한 최적의 솔 루션을 제공하고 있다. 인텔에서는 차세대 서버용 SSD 인 DC P3700, P3600 을 출시했다. 이 제품 은 서버 시스템에서 최적의 효율을 낼 수 있도록 설계된 SSD 로, PCIe 3.0 인터페이스와 NVMe 800,000 700,000 600,000 641,175 739,713 IOPS(5128) 500,000 400,000 300,000 200,000 197,430 387,629 SATA SSD SAS SSD NVMe(flash) NVMe(RAM) 100,000 0 T4-QD4 T8-QD8 T16-QD16 T32-QD32 Threads & Outstanding/ I/Os <자료> http://www.snia.org/sites/default/files/files2/files2/sdc2013/presentations/filesystems/andyheron_enhancements_to_win81_storage.pdf [그림 3] AHCI 와 NVMe 아키텍처 비교 6 www.iitp.kr
포커스 를 채택하여 SSD 의 성능 및 효율을 극대화시켰다고 할 수 있다. 왜냐하면 최대 6Gbps(600MB/s) 의 속도로 외부 기기와 데이터 전송이 가능한 SATA 를 인터페이스로 채택한 SSD 는 어떠한 제 조사들의 제품이라고 해도 결국 인터페이스의 한계에 부딪혀 그 이하의 속도까지만 지원할 수 있기 때문이다. 현재 고속 인터페이스인 PCIe 인터페이스의 서버용 SSD 가 출시되고 있으며, 특 히 PCIe 3.0 제품은 Lane 하나로도 985MB/s 의 속도를 지원하기 때문에 2 개 이상의 Lane 을 제 공하여 높은 대역폭을 제공하고 있다. 여기에 NVMe(NVM Express)가 더해지면서 효율은 극대화 되고 있다. NVMe 는 큐(Queue) 당 64K 의 명령과 64 개의 큐를 처리할 수 있는 것이 특징이며 그에 따라 병렬화된 구조인 SSD 에 적합하다. 또한, 캐싱되지 않은 데이터에 접근할 때 명령 4 개를 필요로 하는 AHCI 와 달리 즉시 처리할 수 있어서 Latency 을 획기적으로 줄여준다. [표 2] 는 인텔의 SSD 지원 PCIe 제품의 종류별 특징을 정리한 것으로 NVMe 1.0 을 지원하고 있다. [표 2] Intel SSD 제품 비교 구분 Intel SSD DC P3700 Series Intel SSD DC P3600 Series Intel SSD DC P3500 Series Capacity 400GB, 800GB, 1.6TB and 2.0TB 400GB, 800GB, 1.2TB, 1.6TB and 2.0TB 400GB, 1.2TB and 2.0TB Interface PCIe 3.0 4(4GB/s) NVMe PCIe 3.0 4(4GB/s) NVMe PCIe 3.0 4(4GB/s) NVMe 64KB Sequential R/W Performance(figures are up to ) 4K Random R/W Performance(figures are up to ) 4K 70/30 Mixed R/W Performance(figures are up to ) 2800/1900Mbps 2600/1700Mbps 2500/1700Mbps 460/180K IOPS 450/70K IOPS 450/35K IOPS 250K IOPS 170K IOPS 85K IOPS Average Latency(Read/Write) 20/20 μs 20/20 μs 20/20 μs Data Integrity End-t-end data protection End-t-end data protection End-t-end data protection Limited Warranty Five years Five years Five years Endurance(PB data written) Power Loss Protection Feature & Self Test HET, Up to 36.5 PBW 10 DWPD Mid, Up to 10.95 PBW 10 DWPD Std, Up to 1 PBW 0.3 DWPD Yes Yes Yes 400GB MSRP $1,207 $783 $599 <자료> http://www.slideshare.net/pertonas/intel-ssd-dc-data-center-family-for-pcie PCIe 슬롯에 장착하는 인텔 NVMe PCIe SSD 는 외관은 알류미늄 재질의 방열판이 부착되어 있 고, 방열판 안쪽에는 인텔의 NVMe 컨트롤러(CH29AE41AB0)와 함께 20nm 공정이 적용된 인텔의 MLC 낸드 플래시가 장착되어 있다. 정보통신기술진흥센터 7
2014 년 3 월 Dell 에서 NVMe 프로토콜을 사용한 PCIe SSD 제품을 탑재한 R920 제품을 출시 하였고, 2015 년 8 월 30 일 VM 월드 2015 에서 슈퍼마이크로컴퓨터는 NVMe SSD 가 탑재된 2U Twin Pro 제품을 출시하였다. 2015 년 3 월 애플은 13 인치 신형 맥북프로와 맥북에 어의 SSD 성능을 2015 년 모델 대비 두 배 더 끌어올렸 다. 이는 PCIe 3.0 을 지원하는 보드와 SSD 를 사용하여 가능하였다. 애플이 최근에 공개한 OS X 10.10.3 베타 버 전에 초고속 데이터 전송기술인 NVMe'를 지원하기 위한 드라이버가 포함되어 있는 것으로 확인되었다. <자료> http://macnews.tistory.com/3175 [그림 4] 애플의 NVMe 버전 노트북 이번 CES2016 에서 공개한 마벨의 88NV1140 컨트롤 러는 비휘발성 메모리기반 스토리지를 위해 디자인된 NVMe1.2 와 시스템 메모리 버퍼(HMB)를 지원하고, SSD 자체에 버퍼용 DRAM 없이 시스템 메모리의 일부를 버퍼 메모리로 활용할 수 있 도록 설계한 것이 특징이다[8]. [그림 5]와 같이 마벨에서는 디램 캐시를 없애고 메인 메모리의 일부를 캐싱하여 사실상 디램 캐시로 사용하게 하는 기술을 고안해 소개하기도 했다. [그림 6] 과 같이 메인 메모리가 싱글채널, 듀얼채널, 쿼드채널의 어떤 방식으로 구성됨에 따라 SSD 성 능에도 변화가 있게 되며, SSD 에 D 캐쉬가 있을 때 보다는 50%로 성능이 떨어지지만, 확실한 것은 디램 캐시가 그저 없을 뿐인 현행 저가형 SSD 보다는 성능이 확실이 좋다는 것을 알 수 있다. 마벨에 따르면 88NV1140 컨트롤러는 NVMe1.2 와 HMB 를 동시에 지원하는 업계 최초의 컨트롤러로, 모바일 컴퓨팅에 새로운 전기를 마련할 것으로 소개해 태블릿이나 스마트폰, 2-in- CPU Southbridge HM5 PCLE Gen 3 1 PCle I/F CPUs SSD SOC 2CM NAN I/F DDR3 4GB NAND NAND PC 128GB SSD drawing not to scale <자료> http://www.computerbase.de/2016-01/ssds-ohne-dram-marvell-88nv1140-kann-nvme-1.2-und-hmb/ [그림 5] 마벨 컨트롤러 적용한 컴퓨터 구조도 8 www.iitp.kr
포커스 <자료> http://www.computerbase.de/2016-01/ssds-ohne-dram-marvell-88nv1140-kann-nvme-1.2-und-hmb/ [그림 6] 마벨 88NV1140 컨트롤러의 SSD 제품 1 등의 모바일 디바이스 시장을 겨냥한 제품이라고 한다. 마벨의 NANDEdge LDPC(Low Density Parity Check) 알고리즘은 TLC(15nm 포함)와 3D 낸드 플래시 지원이 가능하며 이것은 비용을 줄 이기 위한 또 하나의 필수 조건이다. 이 컨트롤러는 3D NAND 와 Dual-core Cortex R5 프로세서 도 지원하고 있다. 그리고, 내장형 SRAM 과 부스트 가속기가 내장된 DRAM-less SSDs 마벨 88NV1140 의 성능 정보는 [표 3]과 같다. [표 3] 마벨 88NV1140 스펙 구분 Marvell 88NV1140 Fertigung 28nm(CMOS, low power) CPU 2 Cortex-R5-Kerne NMAD Channel 2 Cache Embedded SRAM Interface(extern) PCI Express 3.0 1 (NVMe 1.2 oder Legacy AHCI) Interface(NAND) ONFI 3, Toggle 2.0 Power Management PCIe low poer L1.2 III. 결언 본 고에서는 NVMe 의 기술을 정리하고 최근 개발 동향 대해서 살펴 보았다. NVMe'는 PCIe 정보통신기술진흥센터 9
3.0 SSD 성능을 최대한 활용할 수 있도록 개발된 새로운 인터페이스 기술로, HDD 용으로 개발 된 기존의 AHCI(Advanced Host Controller Interface)' 규격의 대체 기술이다. NVMe 는 PCIe 가 CPU 로 직접 연결되기 때문에 호스트 버스 어댑터(HBA)가 필요하지 않고, 커맨드 처리시간이 짧아 서 고속 데이터 전송과 대량의 데이터를 동시에 처리할 수 있다. 따라서 지연시간을 줄이며 시 스템 비용과 전력소비 또한 낮출 수 있다. 미래에는 엄청난 데이터를 고속으로 처리해야 하기 때문에 NVMe 가 입출력 기술의 중요한 부분임을 확인할 수 있다. [ 참고문헌 ] * [1] The Next-Generation Server-Side SSD Landscape. 18 Feb. 2015. [2] http://www.thessdreview.com/daily-news/latest-buzz/intel-ssd-dc-p3700-review-800gb-nvmeenterprise/ [3] http://www.extremetech.com/computing/161735-samsung-debuts-monster-1-6tb-ssd-with-new-highspeed-pcie-nvme-protocol [4] http://electronics.wesrch.com/page-summary-pdf-el11tzs1osiak-ssd-performance-that-matters-27 [5] http://www.snia.org/sites/default/files/files2/files2/sdc2013/presentations/filesystems/andyheron_enhancements_ To_Win81_Storage.pdf [6] http://www.slideshare.net/pertonas/intel-ssd-dc-data-center-family-for-pcie [7] http://macnews.tistory.com/3175 [8] http://www.computerbase.de/2016-01/ssds-ohne-dram-marvell-88nv1140-kann-nvme-1.2-und-hmb/ * 본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신 방송 연구개발 사업의 일환으로 수행하 였음[B0101-15-0548, 클라우드 인프라를 위한 초절전형 고집적 마이크로 서버 시스템 기술 개발]. 10 www.iitp.kr