width=400&bgcolor=#fff]]| 공식 사이트 |
1. 개요
NVMe (Non-Volatile Memory Express, 비휘발성 기억장치 익스프레스)는 PCI Express 인터페이스로 연결된 비휘발성 저장장치들을 위한 통신 프로토콜이다. '비휘발성 기억장치 호스트 컨트롤러 인터페이스 (Non-Volatile Memory Host Controller Interface)'으로도 부른다.AHCI (Advanced Host Controller Interface)의 후계 프로토콜로 취급하고 있으며, SATA + AHCI 조합의 대역폭을 뛰어넘는 I/O 성능을 가진 고성능 SSD를 위한 규격이다. 최신 버전은 2024년 1월에 발표된 2.0d 버전이다.
AHCI가 개발되던 시절에는 HDD가 주류라 느릿느릿 회전하는 플래터를 큐잉할 정도의 성능만 가지고 있으면 됐었다. 달리 말하면 이 당시에는 사우스브릿지를 통해 ATA로 통신하는 것만으로도 충분한 속도였고, 현재의 하드디스크는 여전히 이론상 6 Gbps(750 MB/s)[1] 의 SATA 3 대역폭을 전부 사용하지 못한다. 즉 PCI Express에 보조기억장치를 직결하는 것은 리소스 낭비였다. SATA 버스 최고대역폭(속도) 자체가 하드디스크의 최고 I/O 속도보다 넘사벽으로 빨랐기 때문이었다. 그러나 반도체를 이용하여 플래터 회전 없이 고속으로 접근 가능한 SSD의 기술이 점진적으로 발달하여, SSD의 속도가 SATA/AHCI의 최고 대역폭보다 커지는 시점이 왔고, 이에 대응하기 위하여 2007년 IDF(Intel Developer Forum 인텔 개발자 포럼)에서 처음으로 이 프로토콜이 논의되었다. 2008년 4월 인텔에 의하여 초안이 작성되어 2011년에 1.0 최종 버전이 발표된 이후 지금에 이른다.
높은 대역폭 덕분에 플래시 메모리뿐만 아니라 차세대 비휘발성램인 NVRAM의 인터페이스로도 사용되고 있으며, 특이하게도 2가지의 풀네임이 있는데 하나는 PCI Express에 따온 이름이고, 다른 하나는 HCI(Host Controller Interface)에 따온 이름이다.
2020년대부터 고성능 하드디스크도 읽고 쓰는 속도가 500MB/s를 넘기 시작해 SATA 3의 최대 대역폭에 도달했기 때문에 NVMe로 전환중이다. NVMe 2.0부터 하드디스크 같은 전통적인 디스크 계열도 지원하기 시작했다. 사실 SATA 이전부터 고성능/서버프레임쪽으로는 이전부터 SAS(SCSI)계열로 진화했다.
2. 성능
최대 6 Gbps의 전송 속도를 가지는 SATA 3과 비교하면 PCI Express 위에서 동작하므로 10Gbps 이상의 대역폭은 쉽게 구현한다.또한, 1개의 큐에 32개의 명령만을 저장할 수 있는 AHCI와는 다르게 65536개의 큐에 각 큐당 65536개의 명령어를 저장할 수 있어 랜덤 읽기/쓰기 속도 또한 SATA에 비교하여 월등히 빠르다. 이외에는 병렬화(멀티코어) 적극 지원 등이 있지만 개인 사용자에겐 미래에나 와닿는 내용이 될 것이다.
2013년에 최초 발매된 이 규격의 저장장치는 삼성전자의 XS1715가 있으며 읽기 속도가 3 GB/s로, 비트 단위로 환산하면 24 Gbps이다.
2015년부터 일반사용자용으로 발매되었으며, 인텔의 750은 2400 MB/s, 삼성의 950 Pro는 2500 MB/s의 최고 전송속도를 자랑한다. 기업용 시장에는 4 TB 용량에 읽기 5 GB/s, 쓰기 3 GB/s에 달하는 물건도 있다. #
NVMe의 속도를 메모리 카드 업계에서도 주목했는지, NVMe를 접목한 새로운 SD 카드 규격이 발표되었다. #
PCI Express 3.0 세대에서는 단일 슬롯으로도 2~3 GB/s급, 4.0 발표 이후엔 단일 슬롯으로도 6~7 GB/s급 SSD들이 속속 등장하였고, 향후 더 높은 대역폭 규격의 버스가 나오고 컨트롤러가 발전한다면 보다 높은 대역폭 달성이 가능할 것으로 보인다. 현재 PCI Express 5.0에 대응할수 있는 SSD 컨트롤러가 여러개 개발된 상태로, 그 중에서 Phison PS5026-E26 컨트롤러의 스펙은 DDR4 및 LPDDR4 DRAM 탑재, 순차 읽기 12GB/s, 순차 쓰기 11GB/s, 랜덤 읽기 1,500K IOPS, 랜덤 쓰기 2,000K IOPS로 알려져있다.
NVMe 1.2부터는 자체 DRAM이 없을시 시스템의 D램을 끌어와서 페이지 매핑 테이블 저장용 캐쉬 메모리로 사용하는 HMB가 개발되어 디램리스 NVMe SSD 또한 메리트가 생겼다.
전체적으로 SSD의 성능이 상향평준화 되면서 어지간히 컨트롤러 성능이 나쁘지 않는 이상, 디램리스 제품이어도 어느정도 쓸만한 성능은 보여주는 편이다.
3. 개정판 일람
|| 버전 || 발표일 ||
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 | 2021년 6월 3일 |
2.0a | 2022년 |
2.0b | 2022년 12월 |
2.0c | 2022년 |
2.0d | 2024년 1월 |
2.0e | 2024년 7월 |
최초로 발표된 이후에 여러 차례 개정되었으며, 2.0 버전부터 HDD도 NVMe를 지원하게 되었다.
2022년 시게이트에서 NVMe 하드디스크 샘플을 공개했다. 물론 속도는 기존의 하드디스크와 다를 바 없지만 U.3단자를 탑재하여 NVMe가 표준이 된 서버 업계에서 호환성을 위해 사용될 것으로 보인다.
4. 연결 방식
-
PCI Express 스탠다드 폼팩터
▲ Intel SSD 750 NVMe PCI Express SSD 두 종류 (PCI Express 3.0 x4 / 2.5인치 U.2(SFF-8639))
PCI Express 스탠다드 슬롯에 직접 연결되는 방식으로, 2013년에 NVMe 프로토콜이 적용된 첫 SSD가 나오기 전까지는 AHCI 기반의 PCI Express 슬롯 타입 SSD였다. 폼팩터 특성상 SSD로써는 가장 크지만, 그래픽 카드에 주로 쓰이는 PCI Express 16레인을 활용할 수 있어서 이론적으로 동세대 가장 빠른 전송 속도를 구현 가능한 것이 장점이다.
위 전송규격으로 출시된 PM1725a HHHL모델의 PCIE형 디스크를 기준으로보면 2013년 출시 전송규격이었음에도 용량은 1.6TB부터 6.4TB까지에 읽기속도 6,400MB/s급 쓰기속도 3,000MB/s으로 현재 출시중인 NVME기반 M.2 디스크가 이제 같은 수준의 속도거나 조금 더 넘어선 것을 생각하면 현재에도 크기빼곤 뒤쳐지지 않는 어마무시한 성능이었음을 알 수 있다.[2][3] 물론 그러한 성능으로 인해 방열판이 장착되어 있다. M.2 단자가 모자랄 경우 어댑터를 이용해 기본형 PCI Express 슬롯에 꽂을 수 있다.
-
M.2
▲ 삼성 SSD 950 Pro M.2
NVMe 프로토콜이 나오고 나서 2년 뒤에 등장한 커넥터 규격이기 때문에, M.2 타입 SSD가 나올 때 NVMe 버전과 기존의 AHCI 버전이 함께 등장했다. M.2 특성상 PCI Express 4레인까지만 활용할 수 있어서 기존 PCI Express 스탠다드 폼팩터의 1/4 수준밖에 안 되지만, 그만큼 장치 크기가 작다. 그래도 종전의 보조기억장치들이 주로 쓰던 SATA와는 비교가 안 될 만큼 훨씬 빠르다. NVMe가 지원되는 M.2 방식은 대부분 M 키(오른쪽)로, B키와 M키 양쪽 다 뚫려있는 NVMe모델도 있지만 이 경우는 PCI Express 2레인만 사용한다.
- U.3
-
USB
NVMe는 기본적으로 PCI-E를 사용하는 인터페이스이긴 하지만, USB에는 UASP라는 범용적인 기술이 탑재되어 있기 때문에 전혀 문제없이 사용 가능하다. 게다가 USB 4.0을 지원하는 PC 또는 랩탑과 외장 SSD 조합은 썬더볼트가 전혀 부럽지 않을 정도의 빠른 속도를 보여준다. 대부분의 외장 NVMe SSD들이 USB 타입을 지원하는 만큼 가장 흔하게 볼 수 있는 연결 방식이다.
-
Thunderbolt
요즘의 NVMe SSD의 경우 전송속도가 매우 빨라 외장 SSD로 사용하면 어지간한 인터페이스로는 그 대역폭을 온전히 다 활용할 수 없다는 한계가 있다. 때문에 가장 많이 쓰이는 USB 방식 외에 PCI-E 버스를 직접 이용하는 썬더볼트 인터페이스를 사용하면 외장 SSD로 사용하더라도 그 대역폭을 온전히 사용할 수 있다. 또한 썬더볼트는 PCI-E의 하위호환 특성을 그대로 적용받으므로, 썬더볼트 1/2만을 지원하는 PC 또는 맥을 사용하는 유저도 USB-C to 썬더볼트1/2 변환 젠더를 이용해 연결하면 인식 및 사용이 가능하다. 당연하게도 USB 버스만 지원하는 단자에는 연결해도 인식이 안되므로 본인이 맥 유저가 아니거나 PC나 랩탑에 썬더볼트 포트가 없다면 썬더볼트 외장 SSD는 가지고 있어도 쓰지도 못하는 고철일 뿐이다. 물론, 랩탑의 경우는 정말 방법이 없지만 PC의 경우 외장 그래픽카드를 사용하지 않거나 PCI-E 슬롯이 두 개인 메인보드를 사용하고 있으면 따로 썬더볼트 PCI-E 카드를 구입해 메인보드에 장착하면 얼마든지 썬더볼트 인터페이스를 사용할 수 있다.
-
이더넷 또는
파이버 채널
SCSI 프로토콜을 네트워크로 직접 전송해 블록 디바이스로 쓸 수 있는 iSCSI와 같이 NVMe또한 네트워크를 사용해 원격지 디바이스에 엑세스 할 수 있는 NVMe-over-Ethernet (NVMe-oF)또한 존재한다.
SAN구성과 같이 여러 스토리지 블록을 묶어서 사용하는 경우 사용된다.
-
EDSFF
NVMe 프로토콜을 준수하고 산업 및 데이터센터에서 사용하기 위해 만든 SSD 폼팩터 규격. 흔히들 서버실의 랙장 또는 랙마운트에 저장장치로 수십개씩 꽂혀 페타바이트 단위로 정보를 저장한다. nvme프로토콜을 준수하지만 단자 규격[4]이달라 일반 가정에서 사용하려면 단자컨버터가 필요하다. m.2의 2280사이즈로 일반가정환경에선 커버가 가능해 볼일도 사용할 일도 없다만 서버 구축과 관련 업을 하고있다면 지겹도록 볼 친구들이다.
- CFExpress
- SD Express
-
SATA Express
SATA Express의 PCIe 채널을 사용한다. 최대 2레인을 사용 가능하며 디바이스 단자는 SFF-8639를 사용하나, SATA Express 표준이 인기를 얻지 못 하면서 호스트 쪽에 이 단자를 채택하는 경우는 과도기 제품을 제외하면 없고, 엔터프라이즈는 이미 SAS/SATA/NVME Tri-mode를 지원하는 SFF-8000 계열 단자로 넘어간 상태이다.
5. 호환성
2014년 4월 인텔 하스웰 리프레시와 같이 출시된 9 시리즈 상위 칩셋보드에서 장착되면서부터 일반 컨슈머 시장에서 NVMe 규격을 사용할 수 있게 되었다. 그러나 NVMe SSD가 사용하는 대역을 다 지원하지 못하는 메인보드들의 경우 호환은 가능해도 제 속도가 나오지 않는다. 때문에, NVMe SSD의 속도를 제대로 사용하려면 적어도 Z170 칩셋 이상의 시스템을 갖춰야 한다. 9 시리즈 칩셋은 NVMe를 지원하기는 하지만 PCI Express 2.0 2레인의 대역폭에 해당하는 10 Gb/s(1.25 GB/s)까지만 사용이 가능하도록 제한이 걸리게 되며, 100 시리즈 칩셋부터 NVMe와 PCI Express 3.0 4레인의 대역폭에 해당하는 32 Gb/s(4 GB/s)를 온전히 사용할 수 있다. 뿐만 아니라 NVMe를 지원하기 시작했던 과도기 시절(9 시리즈 및 100 시리즈)메인보드의 경우 같은 칩셋을 사용하는 메인보드라도 PCI Express SSD의 실제 성능의 팩트인 4K 단위의 쓰기 속도가 심하게 차이나는 경우가 실제로 있었기에 메인보드 선택에 주의를 요하기도 했다. 물론 현재의 최신 시스템에서는 보급형 칩셋에서도 제 속도를 뽑아주므로 대역폭 문제는 사실상 고려하지 않아도 된다. 또 과거에는 M.2 슬롯이 아예 없는 기존의 보드에서도 PCI-E 확장카드 형태로 NVMe SSD를 사용할 수는 있지만, 부팅 기능을 지원하지 않는다면 데이터 저장용으로밖에 사용할 수 없다는 한계가 있었다. 부팅 기능의 경우 Z97 칩셋 이상 보드부터 정식으로 지원한다.[5]그런데, NVMe SSD를 데이터 저장용도로만 사용 가능했던 칩셋에서도 해외 유저들의 노력으로 NVMe 관련 모듈을 바이오스에 심거나 부트로더를 개조하여 인텔 6 시리즈 이상 칩셋을 쓰는 UEFI 탑재 메인보드에서 NVMe SSD를 부팅 드라이브로 사용할 수 있게 됐다. Winraid 포럼 등에 가면 6, 7시리즈 상위 보드용 NVMe 모듈을 구할수 있으며 바이오스 개조툴도 다운로드 가능하다. 이를 통해 일부 보드를 제외한 대부분의 Z67, Z77 보드에서는 PCI-E 컨버터를 통해 NVMe 드라이브를 부팅용으로 쓸 수 있다. 단, 최소 PCI-E 4X 이상을 지원하는 슬롯이 하나 이상 필요하며, 보드에 따라 NVMe SSD를 장착하면 사용하면 그래픽카드 슬롯이 8X 배속으로 제한되므로 잘 살펴봐야 한다.
과도기 시절의 NVMe SSD들은 너무 과도한 발열로 인해 스로틀링이 걸려 성능 저하가 오는 경우가 빈번했으나 요즘에 출시되고 있는 제품들은 SSD 자체의 소비 전력도 적으며, 발열이 심한 SSD들은 애초에 방열판을 번들로 장착해서 출시하고 있기에 이러한 문제들은 거의 신경쓰지 않아도 될 만큼 해결되었다.
또, 요즘에는 해결되어 찾아볼 수 없는 사례지만 과거에는 SATA와 PCI-E를 동시에 사용하여 최대한 NVMe의 대역폭을 모두 지원해 속도를 최대한 뽑아내는 방식의 메인보드들도 있었다. 그러나 이는 NVMe의 성능을 완전히 사용하기 위해 PCI-E 4x 모드 사용 시 SATA 버스 중 일부를 NVMe에 할당하는 방식이었기에 몇 개의 SATA 슬롯을 사용할 수 없게 된다는 한계가 있었다. 만일 본인이 HDD, DVD 등 SATA 장치들을 많이 사용하는 컴퓨터라면, NVMe SSD를 연결하기 전에 이 부분을 잘 확인하여야 한다.
AMD쪽에서는 990FX, 990X, 970, A88X 칩셋 메인보드 중에서도 2016년에 출시된 몇몇 후기형 보드부터 지원하기 시작했으며, 2017년 AMD RYZEN 시리즈 세대에 출시된 A320 칩셋 이상 메인보드부터 기본적으로 지원한다.
2013년에 출시된 Windows 8.1부터는 NVMe 드라이버가 기본 내장되어 있어 윈도우 10 이상의 버전이 기본이 된 요즘은 드라이버를 걱정할 필요가 없지만, Windows 8 이전 버전들은 그렇지 않으므로 Windows 7, 8 설치시 설치 이미지 파일 안에 NVMe 드라이버를 같이 포함시켜야 인식이 되고 NVMe SSD에 설치가 가능하다. 물론 설치 후 운용에는 업데이트로 드라이버를 제공하니 문제 없다.
6. 모바일 환경
휴대전화 업계에서는 Apple을 제외하면 대부분이 eMMC나 UFS를 사용 중이다. Apple의 iPhone 6s 이후의 iOS, iPadOS 기기들이 NVMe 컨트롤러를 프로세서에 통합하여 출시되고 있다. 스마트폰용 NVMe 컨트롤러를 설계하는 회사는 2021년까지 Apple밖에 없었다.- 256GB 버전 iPhone XS의 연속 쓰기는 1056MB/s, 연속 읽기는 1906MB/s가 나오는 것으로 확인되었다. #
- iPad Pro 11인치 3세대의 경우 MacBook Air M1과 비슷한 연속 읽기 2782MB/s, 연속 쓰기 2245MB/s를 기록했다. #
삼성, 하이닉스, 도시바와 키옥시아에서 iPhone, iPad에 공급하는 것은 컨트롤러가 포함된 NVMe 스토리지가 아니라 데이터를 담는 낸드 플래시뿐이다. 컨트롤러는 Apple Silicon에 내장되어 있다. Mac도 마찬가지로, Apple T2 보안 칩이 탑재된 모델과 Apple M1 칩 이후 모델은 모두 자체 설계한 NVMe 컨트롤러가 각 칩에 내장되어 있다.
Raspberry Pi Compute Module 4에서는 PCIe 인터페이스를 제공해서 NVMe SSD에서 부트할 수 있다. Raspberry Pi 4 그 자체는 사용자가 접근 가능한 PCIe 인터페이스를 제공하지 않지만, USB 3.0 컨트롤러가 PCIe 인터페이스를 사용한다는 사실을 이용해서 해당 칩을 떼내고 거기에다가 다른 PCIe 카드를 연결하는 용자가 등장하기도 했다. Raspberry Pi 5부터는 전용 PCIe 커넥터로 PCIe HAT을 연결하면 NVMe SSD를 장착할 수 있다.
M.2 NVMe SSD를 탑재한 슬림 노트북과 태블릿 모델들이 M.2 SATA3 SSD를 탑재한 동일 모델들에 비해 발열과 전력소모가 크다는 지적이 나오고 있다. 하지만 이는 데이터 전송량과 처리량이 이전 규격에 비해 훨씬 높아진 만큼 그에 따른 발열량도 높아질 수밖에 없기에 당연한 일이다. 이를 이유로 LG PC gram의 2017년 ALLday 모델의 경우 SATA3 SSD를 탑재하였다. 2017년 모델도 NVMe를 지원하긴 하나, 할당된 PCI Express 레인 수가 적어서 일부 측정 항목이 반토막나지만 sata3보다는 훨씬 빠르다. 2018 그램의 경우 2슬롯 중 1슬롯이 NVMe를 지원한다.
상기한 발열, 전력상의 이슈를 감안하더라도 M.2 슬롯을 쓰는 것의 공간적, 성능적 장점이 훨씬 크기 때문에 스마트폰과 태블릿이 아닌 노트북 환경에서는 NVMe가 점차적으로 자리를 잡고 있다.
[1]
실제로는 약 590~600MB/s - 8/10비트 인코딩 때문.
출처
[2]
이때 당시 가정집에 일반적으로 보급된 SSD는 2.5인치 크기의 SATA3 방식 120~128GB급이 겨우 하나 둘 달려 나오고 있었고 조금 더 투자한 사람은 250~256GB수준이며 읽기속도는 많아야 550MB/s 쓰기는 300~400MB/s 수준이었지만 가격은 13~25만원 수준이었다.
[3]
스펙이 이렇게 차이나는건 당연히 먼저 언급된 폼팩터와 레인 그리고 가정용이 아닌 엔터프라이즈용이었기 때문이다. 그리고 당연하겠지만 가격도 상당했으며 그 값에 맞게 칩셋등도 고급이라 수명 또한 현존하는 최신 가정용 SSD보다도 수명이 길다.
[4]
SFF-TA-1002, Protocol Agnostic Multi-Lane High Speed Connector, 프로토콜에 구속받지 않는 다중 레인 고속커넥터
[5]
다만, 일부 Z97 칩셋이 들어간 보드들 중에는 반드시 펌웨어 업데이트를 해야지만, 부팅용으로 사용가능한 보드들이 있을 수 있으므로 구매하기 전에 펌웨어 업데이트를 해야하는 지 여부를 알아봐야 한다.