NVMe

 

[image]
Non-Volatile Memory Express
비휘발성 기억장치 익스프레스
Non-Volatile Memory Host Controller Interface
비휘발성 기억장치 호스트 컨트롤러 인터페이스
1. 개요
2. 성능
3. 모바일 환경
4. 연결 방식
4.1. PCIe 스탠다드 폼팩터
5. 호환성
6. 개정판 일람


1. 개요


PCI Express 인터페이스로 연결된 비휘발성 저장장치들을 위한 새로운 통신 프로토콜. AHCI의 후계 프로토콜로 취급하고 있으며, SATA + AHCI 조합의 대역폭을 뛰어넘는 I/O 성능을 가진 고성능 SSD를 위한 규격이다.
AHCI가 개발되던 시절에는 HDD가 주류라 느릿느릿 회전하는 플래터를 큐잉할 정도의 성능만 가지고 있으면 됐었다. 달리 말하면 이 당시에는 사우스브릿지를 통해 ATA로 통신하는 것만으로도 충분한 속도였고, 2020년 현재의 하드디스크는 여전히 SATA3의 대역폭을 전부 사용하지 못한다. 즉 PCIe에 보조기억장치를 직결하려는 것은 리소스 낭비였다. SATA 버스 최고대역폭(속도) 자체가 하드디스크의 최고 I/O 속도보다 넘사벽으로 빨랐기 때문. 그러나 반도체를 이용하여 플래터 회전 없이 고속으로 접근 가능한 SSD의 기술이 점진적으로 발달하여, SSD의 속도가 SATA/AHCI의 최고 대역폭보다 커지는 시점이 왔고, 이에 대응하기 위하여 2007년 IDF(Intel Developer Forum 인텔 개발자 포럼)에서 처음으로 논의되었다. 2008년 4월 인텔에 의하여 초안이 작성되어 2011년에 1.0 최종 버전이 발표된 이후 지금에 이른다.
최신 버전은 2020년 9월에 발표된 1.4b 버전이며, 현재 2.0 버전 규격이 개발/정의되고 있다.
높은 대역폭 덕분에 플래시 메모리 뿐만 아니라 차세대 비휘발성램인 NVRAM의 인터페이스로도 사용되고 있다.
특이하게도 2가지의 풀네임이 있는데 하나는 PCI Express에 따온 이름이고, 다른 하나는 HCI(Host Controller Interface)에 따온 이름이다.
공식 사이트

2. 성능


최대 6 Gbps의 전송 속도를 가지는 SATA 3과 비교하면 PCIe 위에서 동작하므로 10Gbps 이상의 대역폭은 쉽게 구현한다.
또한, 1개의 큐에 32개의 명령만을 저장할 수 있는 AHCI와는 다르게 64K(65536)개의 큐에 각 큐당 64K개의 명령어를 저장할 수 있어 랜덤 읽기/쓰기 속도 또한 SATA에 비교하여 월등히 빠르다. 이외에는 병렬화(멀티코어) 적극 지원 등이 있지만 개인 사용자에겐 미래에나 와닿는 내용이 될 것이다.
2013년에 최초 발매된 이 규격의 저장장치는 삼성전자의 XS1715가 있으며 읽기 속도가 무려 '''3GB/s'''이다. 비트 단위로 환산하면 '''24Gbps'''.
2015년부터 일반사용자용으로 발매되었으며, 인텔의 750은 2400MB/s, 삼성의 950 Pro는 2500MB/s의 최고 전송속도를 자랑한다. 기업용 시장에는 4TB 용량에 읽기 5GB/s, 쓰기 3GB/s에 달하는 괴물 같은 물건도 있다. #
NVMe의 속도를 메모리 카드 업계에서도 주목했는지, NVMe를 접목한 새로운 SD 카드 규격이 발표되었다.
PCIe 4.0 발표 이후엔 단일 슬롯으로도 '''6GB/s''' 급 SSD들이 속속 등장하였고, 향후 더 높은 대역폭 규격의 버스가 나오고 컨트롤러가 발전한다면 보다 높은 대역폭 달성이 가능할 것으로 보인다.

3. 모바일 환경


모바일의 경우 애플eMMC 이후 차기 스토리지로 선정하여 아이폰 6s 이후의 iOS 기기들(아이폰 6S, 6S+, 아이패드 Pro, 아이폰 SE)이 NVMe 컨트롤러를 A칩에 통합하여 출시되고 있다. 이외 제조사들은 eMMCUFS 규격을 사용한다. UFS 2.1 규격상 최대 속도는 NVMe 규격상 최대 속도보다 훨씬 느렸지만, UFS 3.0 및 3.1에 와서는 NVMe와 비슷한 수준이 되었다. 게다가 이러한 속도는 어디까지나 규격일 뿐이지 실제 모바일 환경에서 NVMe가 그 성능을 뽑아주는 것도 아니였다. 실제로 아이폰 XS의 연속쓰기속도는 580MB/s, 연속읽기는 821MB/s, 갤럭시 노트10 (eUFS 3.0)의 연속쓰기속도는 306MB/s, 연속읽기속도는 1060MB/s이며 두 기종간 랜덤읽기속도와 랜덤쓰기속도는 20~25MB/s 내외로 큰 차이가 없다.[1]
따라서 모바일(휴대전화) 업계에서 애플을 제외하면 대부분이 UFS로 넘어갔다.그래서 스마트폰용 NVMe 컨트롤러를 설계하는 회사는 애플밖에 없으며 도시바에서 아이폰과 패드에 공급하는 건 컨트롤러가 포함된 NVMe 스토리지가 아니라 데이터를 담는 낸드 플래시만 공급한다.
다만 라즈베리 파이(컴퓨터)에서 차기 모델에 NVMe 도입이 예정되어 있다.
M.2 NVMe SSD를 탑재한 슬림 노트북과 태블릿 모델들이 M.2 SATA3 SSD를 탑재한 동일 모델들에 비해 발열과 전력소모가 크다는 지적이 나오고 있다. 하지만 이는 데이터 전송량과 처리량이 이전 규격에 비해 훨씬 높아진 만큼 그에 따른 발열량도 높아질 수밖에 없기에 당연한 일이다. 이를 이유로 LG PC gram의 2017년 ALLday 모델의 경우 SATA3 SSD를 탑재하였다. 2017년 모델도 NVMe를 지원하긴 하나, 할당된 PCIe 레인 수가 적어서 일부 측정 항목이 반토막난다. 그래도 sata3보다는 훨씬 빠르다. 2018 그램의 경우 2슬롯 중 1슬롯이 NVMe를 지원한다.
상기한 발열, 전력상의 이슈를 감안하더라도 M.2 슬롯을 쓰는 것의 공간적, 성능적 장점이 훨씬 크기 때문에 스마트폰과 태블릿이 아닌 노트북 환경에서는 NVMe가 점차적으로 자리를 잡고 있다.

4. 연결 방식



4.1. PCIe 스탠다드 폼팩터


[image]
Intel SSD 750 NVMe PCIe SSD
PCIe 3.0 x4 및 2.5인치 U.2(SFF-8639)
PCIe 슬롯에 직접 연결되는 방식이다. 2013년에 NVMe 프로토콜이 적용된 첫 SSD가 나오기 전까지는 AHCI 기반의 PCIe 슬롯 타입 SSD였다.

4.2. M.2


[image]
삼성 SSD 950 Pro M.2
NVMe 프로토콜이 나오고 나서 등장한 커넥터 규격이기 때문에 M.2 타입 SSD가 나올 때 NVMe 버전과 기존의 AHCI 버전이 함께 등장했다. NVMe가 지원되는 M.2 방식은 대부분 M 키(오른쪽)이다.[1]

5. 호환성


2014년 4월 인텔 하스웰 리프레시와 함께 나온 9 시리즈 칩셋부터 부팅용 드라이브로 지원하기 시작했다. 기존의 보드에서도 사용할 수는 있지만, 현재 발매된 드라이브들이 이용하는 PCIe 3.0 4레인을 풀로 뽑아내는 보드가 아니라면 제 속도가 나오지 않는다. X99/Z170 이상 보드에서 사용이 권장된다. 부팅 디스크 지원은 Z97(대역폭은 10Gbps로 제한)/X99/Z170 등 부팅 기능 지원 메인보드에서만 가능하다. 9 시리즈 칩셋은 PCIe 2.0 2레인의 대역폭에 해당하는 10Gb/s(1.25GB/s)까지만 지원했으나, 2015년 8월에 스카이레이크와 함께 나온 100 시리즈 칩셋부터는 NVMe와 PCIe 3.0 4레인의 대역폭에 해당하는 32Gb/s(4GB/s)를 온전하게 사용할 수 있다. 칩셋에 따라 PCIe SSD의 실제 성능의 팩트인 4K 단위의 쓰기 속도가 심하게 차이나는 메인보드가 있을 수도 있으니 메인보드 선택에 주의가 필요하다.
데이터 저장용으로만 사용 가능했던 칩셋에서도 해외 유저들의 노력으로 NVMe 관련 모듈을 바이오스에 심거나 부트로더를 개조하여 인텔 6 시리즈 이상 칩셋을 쓰는 UEFI 탑재 메인보드에서도 NVMe SSD를 부팅용 매체로 사용할 수 있게 됐다. AMD RYZEN 시리즈용 메인보드는 기본지원이며, 오히려 라이젠 3세대는 PCIe 4.0 을 도입하여 최대 대역폭에서 유리하다.
윈도우 8.1 이상부터는 NVMe 드라이버가 기본 내장되어 있지만 윈도우 7은 그렇지 않으므로, 윈도우 7을 사용하려면 설치 이미지 파일 안에 NVMe 드라이버를 같이 포함시켜야 한다.
10기가비트 이더넷을 사용하려면 NVMe 드라이브가 필수이다. HDD나 SATA SSD를 사용하면 병목현상이 생긴다.[2]
다만 M.2 NVMe SSD의 경우 가장 고질적인 문제인 발열에 따른 스로틀링을 걱정해야 되는 상황이 있었으나, 요즘에 출시되고 있는 제품들은 제품 자체적으로도 발열이 높지 않으며, 방열판을 장착 또는 기본 번들로 제공하는 등의 조치로 이 문제가 많이 해결된 편이다.


6. 개정판 일람


'''버전'''
'''발표일'''
1.0
2011년 3월 1일
1.0e
2013년 1월 23일
1.1b
2014년 7월 2일
1.2
2014년 11월 3일
1.3
2017년 5월 1일
1.3a
2017년 10월 24일
1.3b
2018년 5월 4일
1.3c
2018년 5월 24일
1.4
2019년 6월 16일
1.4a
2020년 3월 9일
1.4b
2020년 9월 21일
2.0
진행 중
[1] CPDT 테스트 결과.[1] 물론 B키와 M키 양쪽 다 뚫려있는 NVMe모델도 있다. 이 경우는 PCIe 2레인만 사용한다.[2] 다만, HDD는 백업 용도로 사용 할 목적이라면 상관없다.
최초로 발표된 이후에 여러 차례 개정되었다.