NVMe (r20220720판)

문서 조회수 확인중...

파일:nvme express.svg

Non-Volatile Memory Express
비휘발성 기억장치 익스프레스

Non-Volatile Memory Host Controller Interface
비휘발성 기억장치 호스트 컨트롤러 인터페이스

1. 개요
2. 성능
3. 개정판 일람
4. 연결 방식
5. 호환성
6. 모바일 환경



1. 개요[편집]


PCI Express 인터페이스로 연결된 비휘발성 저장장치들을 위한 새로운 통신 프로토콜. AHCI의 후계 프로토콜로 취급하고 있으며, SATA + AHCI 조합의 대역폭을 뛰어넘는 I/O 성능을 가진 고성능 SSD를 위한 규격이다. 최신 버전은 2021년 6월에 발표된 2.0 버전.

AHCI가 개발되던 시절에는 HDD가 주류라 느릿느릿 회전하는 플래터를 큐잉할 정도의 성능만 가지고 있으면 됐었다. 달리 말하면 이 당시에는 사우스브릿지를 통해 ATA로 통신하는 것만으로도 충분한 속도였고, 현재의 하드디스크는 여전히 6 Gbps의 SATA 3 대역폭을 전부 사용하지 못한다. 즉 PCIe에 보조기억장치를 직결하려는 것은 리소스 낭비였다. 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)에 따온 이름이다.

공식 사이트


2. 성능[편집]


최대 6 Gbps의 전송 속도를 가지는 SATA 3과 비교하면 PCIe 위에서 동작하므로 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 카드 규격이 발표되었다.

PCIe 3.0 세대에서는 단일 슬롯으로도 2~3 GB/s급, 4.0 발표 이후엔 단일 슬롯으로도 6~7 GB/s급 SSD들이 속속 등장하였고, 향후 더 높은 대역폭 규격의 버스가 나오고 컨트롤러가 발전한다면 보다 높은 대역폭 달성이 가능할 것으로 보인다. 현재 PCIe 5.0에 대응할수 있는 SSD 컨트롤러가 여러개 개발된 상태로, 그 중에서 Phison PS5026-E26 컨트롤러의 스펙은 DDR4 및 LPDDR4 DRAM 탑재, 순차 읽기 12GB/s, 순차 쓰기 11GB/s, 랜덤 읽기 1,500K IOPS, 랜덤 쓰기 2,000K IOPS로 알려져있다.

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.0 버전부터 HDD도 NVMe를 지원하게 되었다.


4. 연결 방식[편집]


  • PCIe 스탠다드 폼팩터
파일:external/www.intel.com/intel.web.416.234.png
Intel SSD 750 NVMe PCIe SSD
PCIe 3.0 x4 및 2.5인치 U.2(SFF-8639)
PCIe 스탠다드 슬롯에 직접 연결되는 방식으로, 2013년에 NVMe 프로토콜이 적용된 첫 SSD가 나오기 전까지는 AHCI 기반의 PCIe 슬롯 타입 SSD였다. 폼팩터 특성상 SSD로써는 가장 크지만, 그래픽 카드에 주로 쓰이는 PCIe 16레인을 활용할 수 있어서 이론적으로 동세대 가장 빠른 전송 속도를 구현 가능한 것이 장점이다.

파일:external/www.samsung.com/5-720.jpg
삼성 SSD 950 Pro M.2
NVMe 프로토콜이 나오고 나서 2년 뒤에 등장한 커넥터 규격이기 때문에, M.2 타입 SSD가 나올 때 NVMe 버전과 기존의 AHCI 버전이 함께 등장했다. M.2 특성상 PCIe 4레인까지만 활용할 수 있어서 기존 PCIe 스탠다드 폼팩터의 1/4 수준밖에 안 되지만, 그만큼 장치 크기가 작다. NVMe가 지원되는 M.2 방식은 대부분 M 키(오른쪽)로, B키와 M키 양쪽 다 뚫려있는 NVMe모델도 있지만 이 경우는 PCIe 2레인만 사용한다.

  • U.2

  • U.3

외장으로 출시되는 NVMe SSD는 PCI Express 버스를 사용한다는 특성상 USB 버스만을 지원하는 USB 단자에는 사용할 수 없다. 썬더볼트를 지원하는 USB-C 단자를 통해 PC와 연결할 수 있다.

5. 호환성[편집]


2014년 4월 인텔 하스웰 리프레시 세대에 나온 9 시리즈 칩셋부터 부팅용 드라이브로 지원하기 시작했다. 기존의 보드에서도 사용할 수는 있지만, 현재 발매된 드라이브들이 이용하는 PCIe 3.0 4레인을 풀로 뽑아내는 보드가 아니라면 제 속도가 나오지 않는다. 상위 칩셋인 X99 칩셋이나, 다음 세대인 Z170 칩셋 이상 보드에서 사용이 권장된다. 부팅 디스크 지원은 Z97(대역폭은 10 Gbps로 제한)/X99/Z170 등 부팅 기능 지원 메인보드에서만 가능하다. 9 시리즈 칩셋은 PCIe 2.0 2레인의 대역폭에 해당하는 10 Gb/s(1.25 GB/s)까지만 지원했으나, 2015년 8월에 스카이레이크와 함께 나온 100 시리즈 칩셋부터는 NVMe와 PCIe 3.0 4레인의 대역폭에 해당하는 32 Gb/s(4 GB/s)를 온전하게 사용할 수 있다. 칩셋에 따라 PCIe SSD의 실제 성능의 팩트인 4K 단위의 쓰기 속도가 심하게 차이나는 메인보드가 있을 수도 있으니 메인보드 선택에 주의가 필요하다.

AMD는 990FX, 990X, 970, A88X 칩셋 메인보드 중에서도 2016년에 출시된 몇몇 후기형 보드부터 지원하기 시작했으며, 2017년 AMD RYZEN 시리즈 세대에 출시된 300 시리즈 칩셋의 메인보드부터는 기본적으로 지원한다.

데이터 저장용으로만 사용 가능했던 칩셋에서도 해외 유저들의 노력으로 NVMe 관련 모듈을 바이오스에 심거나 부트로더를 개조하여 인텔 6 시리즈 이상 칩셋을 쓰는 UEFI 탑재 메인보드에서도 NVMe SSD를 부팅용 매체로 사용할 수 있게 됐다.[1][2]

Windows 8.1부터 NVMe 드라이버가 기본 내장되어 있지만, Windows 8 이전 버전들은 그렇지 않으므로 NVMe SSD를 사용하려면 설치 이미지 파일 안에 NVMe 드라이버를 같이 포함시켜야 한다. 다행히 Windows 7, 8에서는 업데이트를 통해 추가 지원되었다.

M.2 NVMe SSD의 경우 가장 고질적인 방열 처리 문제에 따른 스로틀링을 걱정해야 되는 상황이 있었으나, 요즘에 출시되고 있는 제품들은 제품 자체적으로도 소비 전력이 높지 않으며, 방열판을 장착 또는 기본 번들로 제공하는 등의 조치로 이 문제가 많이 해결된 편이다.

메인보드 중에는 SATA와 NVMe가 대역폭을 공유하는 제품이 많이 있으며, 이런 제품에서는 NVMe의 성능을 완전히 내기 위해서는(4x 모드 사용 시) SATA 버스 중 일부를 사용할 수 없게 된다. HDD, DVD 등 SATA 장치들이 많이 연결되어 있는 컴퓨터라면 NVMe 장치 연결 전에 잘 확인하도록 하자.


6. 모바일 환경[편집]


모바일의 경우 애플eMMC 이후 차기 스토리지로 선정하여 아이폰 6s 이후의 iOS 기기들(아이폰 6S, 6S+, 아이패드 Pro, 아이폰 SE)이 NVMe 컨트롤러를 A칩에 통합하여 출시되고 있다. 이외 제조사들은 eMMCUFS 규격을 사용한다.
256GB 버전 아이폰 XS의 연속쓰기는 1056MB/s 연속읽기는 1906MB/s가 나오는 것으로 확인되었다.
M1 아이패드 프로의 경우 M1맥북에어와 비슷한 연속읽기 2782MB/s 연속쓰기 2245MB/s를 기록했다.

모바일(휴대전화) 업계에서 애플을 제외하면 대부분이 UFS를 사용중이다. 스마트폰용 NVMe 컨트롤러를 설계하는 회사는 애플밖에 없으며 도시바와 키옥시아에서 아이폰과 패드에 공급하는 건 컨트롤러가 포함된 NVMe 스토리지가 아니라 데이터를 담는 낸드 플래시만 공급하고 컨트롤러는 A칩에 내장되어 있다 또한 애플은 자사 맥북에도 자체 설계한 NVMe 컨트롤러를 T2, M1칩에 내장하여 사용한다.

라즈베리 파이(컴퓨터)에서 차기 모델에 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가 점차적으로 자리를 잡고 있다.

[1] Winraid 포럼등에 가면 z6X 및 z77용 nvme 모듈을 구할수 있으며 bios 개조툴도 구할수 있다. 일부 보드를 제외한 대부분의 z6X, Z77 보드에서 PCI-E 컨버터를 이용해 NVME 드라이브를 부팅용으로 쓸 수 있다.[2] 단 PCI-E 4X을 먹기에 16X 슬롯이 두개 이상인 보드가 필요하며 보드에 따라 NMVE를 사용할 경우 그래픽에 할당된 배속이 8X으로 하락 할 수 있다.

파일:CC-white.svg 이 @this=문서@의 내용 중 전체 또는 일부는 M.2 문서의 r7
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 @this=문서@의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
M.2 문서의 r7
문서의 r
(이전 역사){{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r
(이전 역사)}}}{{{#!wiki style="display: block; display: none"

문서의 r



파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2022-07-10 22:55:23에 나무위키 NVMe 문서에서 가져왔습니다.