NVM Express
![本页使用了标题或全文手工转换](https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() |
![]() | |
簡稱 | NVMe |
---|---|
2011 | |
总线、 | |
nvmexpress |
NVM Express(缩写NVMe),
NVM
背景 [编辑]
历史
截至2014
截止2018
PCI Express與 传统的 SATA差異 [编辑]
NVMe标准对比AHCI标准:
当 数 据 从存储传输到服 务器主 机 时,会 进入一 行 或 队列。传统的 SATA连接只 能 支持 一 个队列 ,一 次 只 能 接收 32条 数 据 。而NVMe存 储支持 最多 64000个队列 ,每 个队列 有 64000个条目 。- NVMe
使用 原生 PCIe通 道 ,免 去 了 SATA与 SAS接 口 的 主 機 控 制 器 与 CPU通信 所 带来的 延 时。NVMe标准的 延 时只有 AHCI的 一半 不 到 :NVMe精 简了调用方式 ,执行命令 时不需要 读取寄 存 器 ;而AHCI每 条 命令 则需要 读取4次 寄 存 器 ,一 共 会 消耗 8000次 CPU循环,从而造成 大概 2.5微 秒 的 延 迟。 - NVMe
支持 同 时从多核 处理器 接受 命令 和 优先处理请求,这在企 业级的 重 负载时优势明显。 - NVMe
加入 了 自 动功耗状态切换和动态能 耗管理 功 能 。设备从Power State 0闲置50ms后 可 以切换到Power State 1;继续闲置的 话,在 500ms后 又 会 进入功 耗更低 的 Power State 2,切 换时会 有 短 暂延迟。SSD在 闲置时可以非常 快速 的 控 制 在 极低的 水平 ,在 功 耗管理 上 NVMe标准的 SSD会 比 AHCI SSD拥有较大优势。
历史[编辑]
2009
2018
- 1.0e(2013
年 1月 ) - 1.1b(2014
年 7月 ) - 1.2(2014
年 11月)- 1.2a(2015
年 10月 ) - 1.2b(2016
年 6月 ) - 1.2.1(2016
年 6月 )
- 1.2a(2015
- 1.3(2017
年 5月 )- 1.3a(2017
年 10月 ) - 1.3b(2018
年 5月 ) - 1.3c(2018
年 5月 ) - 1.3d(2019
年 3月 )
- 1.3a(2017
- 1.4(2019
年 6月 )- 1.4a(2020
年 3月 ) - 1.4b(2020
年 9月 )
- 1.4a(2020
- 2.0(2021
年 5月 )[11]- 2.0a(2021
年 7月 ) - 2.0b(2022
年 1月 ) - 2.0c(2022
年 10月 )
- 2.0a(2021
作業 系統 支援 [编辑]
![](https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/IO_stack_of_the_Linux_kernel.svg/440px-IO_stack_of_the_Linux_kernel.svg.png)
- DragonFly BSD
- DragonFly 4.6
開始 內建NVMe驅動 程 式 [16]
- FreeBSD
- Intel
贊助 開發 的 驅動 程 式 已 內建於FreeBSD的 head、stable/9分 支 中 。[17][18]nvd(4)和 nvme(4)驅動 程 式 則 是 在 10.2版 FreeBSD中 開始 預 設 內建於其中 。[19]
- iOS
- iOS 9
開始 支援 ,首 款配備 了 NVMe介 面 的 裝置 是 iPhone 6S/6S Plus,也是首 款採用 NVMe的 行動 裝置 。物理 介 面 和 UFS相 同 的 採用 M-PHY PCIe。接 下 來 Apple推出的 iPad Pro和 iPhone SE也採用 了 NVMe[22]
- Linux
- NVMe
的 驅動 程 式 最早 是 英 特 爾 提供 的 ,適用 於Linux的 內核驅動 程 式 模 組 。[23][24][25]這個模 組 在 2012年 3月 19日 整合 到 Linux內核的 主 線 驅動 程 式 當 中 ,Linux內核3.3版 開始 內建支援 而無需安裝 額 外 模 組 。[26] - NVMe
采 用 了 多 队列设计,最高 支持 64k个队列 。2014年 1月 19日 的 Linux內核 3.13版 開始 ,block层增加 了 multi-queue block layer,这一模块可以充分利用多核CPU和 底 层高速 SSD硬 件 资源,主 机 CPU的 I/O提 交队列 可 以与SSD侧的提 交队列 进行绑定,即 是 说每个CPU核 可 以与SSD硬 件 的 队列进行1:1或 者 n:m(比 值取决于硬 件 设计)进行配置 。对上层应用 仍然是 通用 的 块接口 。从应用 的 角度 ,在 某 一 个CPU Core上 产生的 IO请求,中断 也会在 此CPU Core处理,性能 更 优。在 SSD性能 不 是 瓶 颈的情 况下,应用的 性能 能 够实现在多核 环境下 按照CPU Core的 数量 扩展,这点与 AHCI的 CPU单队列 访问存 储设备的机 制 有 所 不同 。 - 2015
年 4月 12日 發 佈的Linux內核 4.0版 開始 ,VirtIO區 塊 層 驅動 程 式 ,SCSI驅動 層 (與 SATA驅動 共用 )、回 環 裝置 驅動 (loop device) UBI(unsorted block images)驅動 (供 快 閃記憶 體 實 作 區 塊 擦 寫 管理 )以及RBD驅動 程 式 (which exports Ceph RADOS objects as block devices)都 被 修 改 ,以適應 及適配 越來 越 多 的 NVMe裝置 [27][28][29]
- OS X/macOS
- Mac OS X 10.10.3(OS X Yosemite)
開始 支援 NVMe。蘋果公司 的 Retina MacBook和 2016年 發 佈MacBook Pro,配備 了 使用 NVMe的 PCIe SSD作為 主 硬 碟機使用 。[33]
- VMware
英 特 爾 釋 出 了 供 VMWare使用 的 NVMe驅動 程 式 ,[35]vSphere 6.0以及其後的 版本 中 ,均 包含 了 該驅動 程 式 ,支援 多種 NVMe裝置 。[36]在 vSphere 6 update 1更新 中 ,VMWare的 VSAN軟體模擬 的 存 儲 子 系統 也開始 支援 NVMe裝置 。[37]
- Windows
微 軟在Windows 8.1和 Windows Server 2012 R2開始 ,原生 支援 NVMe裝置 。[38][39]同時 也為Windows 7和 Windows Server 2008 R2提供 原生 驅動 程 式 支援 (Windows 7與 Windows Server 2008 R2預 設 不 支援 NVMe,需由使用 者 自 行 下 載 獲 取 )。[40]除 了 微 軟官方 提供 的 驅動 程 式 以外 ,OpenFabrics Alliance也有 維護一套開放原始碼的NVMe驅動 程 式 ,使用 於Windows 7、8、8.1、10以及Windows Server 2008 R2、2012、2012 R2,這套驅動 程 式 由 數 個 加入 了 NVMe工作 組 的 公司 開發 ,包括 IDT、英 特 爾 以及LSI。[41]当 前 版本 为2016年 12月发布的 1.5。[42]
參 見 [编辑]
參考 資料 [编辑]
- ^ Compare: NVM Express. NVM Express, Inc. [2017-01-24]. (
原始 内容 存 档于2017-02-07).NVMe™ is designed from the ground up to deliver high bandwidth and low latency storage access for current and future NVM technologies.
- ^ Drew Riley. Intel SSD DC P3700 800GB and 1.6TB Review: The Future of Storage. tomshardware.com. 2014-08-13 [2014-11-21].
- ^ Intel Solid-State Drive DC P3600 Series (PDF). Intel: 18, 20–22. 2015-03-20 [2015-04-11]. (
原始 内容 存 档 (PDF)于2015-04-02). - ^ Paul Alcorn. SFFWG Renames PCIe SSD SFF-8639 Connector To U.2. Tom's Hardware. 2015-06-05 [2015-06-09].
- ^ Dave Landsman. AHCI and NVMe as Interfaces for SATA Express Devices – Overview (PDF). SATA-IO. 2013-08-09 [2013-10-02]. (
原始 内容 存 档 (PDF)于2013-10-05). - ^ Walker, Don H. A Comparison of NVMe and AHCI (PDF). 31 July 2012. SATA-IO. [3 July 2013]. (
原始 内容 存 档 (PDF)于2019-02-12). - ^ NVM Express Explained (PDF). 9 April 2014 [21 March 2015]. (
原始 内容 存 档 (PDF)于2016-03-04). - ^ Fibre Channel Industry Association Collaborating with NVM Express, Inc. to Define New Standard for Fabric-Based Solid-State Storage Devices (
新 闻稿). [2017-11-09]. (原始 内容 存 档于2017-07-02). - ^ NVM Express Announces the Rearchitected NVMe 2.0 Library of Specifications. [2022-12-25]. (
原始 内容 存 档于2023-01-18). - ^
王 楠 .打 造 绿色数 据 中心 Memblaze发布NVMe SSD新品 _科技 _环球网. tech.huanqiu.com. [2018-11-13]. (原始 内容 存 档于2018-11-13) (英 语). - ^ NVM Express Announces the Rearchitected NVMe 2.0 Library of Specifications. [2022-12-25]. (
原始 内容 存 档于2023-01-18). - ^ Werner Fischer; Georg Schönberger. Linux Storage Stack Diagram. Thomas-Krenn.AG. 2015-06-01 [2015-06-08]. (
原始 内容 存 档于2019-06-29). - ^ hg/plan9front:sys/src/9/pc/sdnvme.c. [2017-08-22]. (
原始 内容 存 档于2017-03-31). - ^ NVM Express » ChromeOS adds boot support for NVM Express. nvmexpress.org. [21 March 2015]. (
原始 内容 存 档于2016-04-22). - ^ 4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge - Git at Google. googlesource.com. [21 March 2015]. (
原始 内容 存 档于2017-08-23). - ^ DragonFly BSD 4.6. www.dragonflybsd.org. [2016-09-08]. (
原始 内容 存 档于2016-09-04). - ^ Log of /head/sys/dev/nvme. FreeBSD source tree. The FreeBSD Project. [16 October 2012]. (
原始 内容 存 档于2013-05-29). - ^ Log of /stable/9/sys/dev/nvme. FreeBSD source tree. The FreeBSD Project. [3 July 2013]. (
原始 内容 存 档于2018-02-16). - ^ FreeBSD 10.2-RELEASE Release Notes. The FreeBSD Project. [5 August 2015]. (
原始 内容 存 档于2017-06-18). - ^ #9910 NVMe devices support. dev.haiku-os.org. [2016-07-28]. (
原始 内容 存 档于2016-08-06). - ^ 4053 Add NVME Driver Support to Illumos. github.com. [2016-05-23]. (
原始 内容 存 档于2017-05-10). - ^ Ho, Joshua. iPhone 6s and iPhone 6s Plus Preliminary Results. www.anandtech.com. [2016-06-01]. (
原始 内容 存 档于2016-05-26). - ^ Matthew Wilcox. NVM Express driver. LWN.net. 2011-03-03 [2013-11-05]. (
原始 内容 存 档于2012-07-17). - ^ Keith Busch. Linux NVMe Driver (PDF). flashmemorysummit.com. 2013-08-12 [2013-11-05]. (
原始 内容 存 档 (PDF)于2013-11-05). - ^ IDF13 Hands-on Lab: Compiling the NVM Express Linux Open Source Driver and SSD Linux Benchmarks and Optimizations (PDF). activeevents.com. 2013 [2014-01-11]. (
原始 内容 (PDF)存 档于2014-01-11). - ^ Merge git://git.infradead.org/users/willy/linux-nvme. kernel.org. 2012-01-18 [2013-11-05].
- ^ Linux kernel 3.18, Section 1.8. Optional multiqueue SCSI support. kernelnewbies.org. 2014-12-07 [2014-12-18]. (
原始 内容 存 档于2014-12-18). - ^ Linux kernel 4.0, Section 3. Block. kernelnewbies.org. 2015-05-01 [2015-05-02]. (
原始 内容 存 档于2015-05-04). - ^ Linux Multi-Queue Block IO Queueing Mechanism (blk-mq) - Device Drivers. thomas-krenn.com. 2015-06-08 [2015-06-08]. (
原始 内容 存 档于2016-03-03). - ^ nvme -- Non-Volatile Memory Host Controller Interface. NetBSD manual pages. 2016-01-01 [2016-09-02]. (
原始 内容 存 档于2016-09-15). - ^ David Gwynne. non volatile memory express controller (/sys/dev/ic/nvme.c). BSD Cross Reference. 2014-04-16 [2014-04-27]. (
原始 内容 存 档于2014-04-28). - ^ David Gwynne. man 4 nvme. OpenBSD man page. 2016-04-14 [2016-08-07]. (
原始 内容 存 档于2016-08-21). - ^ Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3. macrumors.com. [11 April 2015]. (
原始 内容 存 档于2017-08-23). - ^ nvme(7D). Oracle. [2014-12-02]. (
原始 内容 存 档于2015-12-09). - ^ Intel Solid-State for NVMe Drivers. intel.com. 2015-09-25 [2016-03-17]. (
原始 内容 存 档于2016-03-25). - ^ VMware Compatibility Guide for NVMe devices. vmware.com. [2016-03-17]. (
原始 内容 存 档于2016-03-25). - ^ VSAN Now Supporting NVMe Devices. vmware.com. 2015-11-11 [2016-03-17]. (
原始 内容 存 档于2016-03-25). - ^ Andy Herron. Advancements in Storage and File Systems in Windows 8.1 (PDF). snia.org. 2013 [2014-01-11]. (
原始 内容 存 档 (PDF)于2014-01-10). - ^ Windows 8.1 to support hybrid disks and adds native NVMe driver. Myce.com. 2013-09-06 [2014-01-11]. (
原始 内容 存 档于2014-01-10). - ^ Update to support NVM Express by using native drivers in Windows 7 or Windows Server 2008 R2. Microsoft. 2014-11-13 [2014-11-17]. (
原始 内容 存 档于2014-11-29). - ^ Windows NVM Express. Project web site. [September 18, 2013]. (
原始 内容 存 档于2013年 6月 12日 ). - ^
存 档副本 . [2017-08-22]. (原始 内容 存 档于2017-05-10).
外部 連結 [编辑]
![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- NVM Express – scalable, efficient, and industry standard(页面
存 档备份,存 于互联网档案 馆) - LFCS: Preparing Linux for nonvolatile memory devices(页面
存 档备份,存 于互联网档案 馆), LWN.net, April 19, 2013, by Jonathan Corbet - Multipathing PCI Express Storage, Linux Foundation, March 12, 2015, by Keith Busch
|
|