去年,一项新的标准覆盖在PCI Express (PCIe)上,以重置非易失性内存(NVM)的访问方式。到目前为止,固态硬盘(SSD)访问方法是围绕“旋转介质”——硬盘——的现有机制和限制建模的。随着固态存储器开始在过去由硬盘驱动器主导的角色中激增,这些限制和机制发生了变化。
实现这一目标的新标准被称为NVM Express (NVMe),它使用PCIe的基本原理来处理数据的移动,因为这通常是这些内存子系统连接到CPU子系统的方式。但是更高的层使PCIe适应特定的NVM上下文。
该标准设置了提交和完成队列——最多有64K个队列,每个队列最多可以容纳64K个64字节命令。功能包括:
- 端到端数据保护
- 在提交或完成路径中都没有读取非缓存内存映射的I/O寄存器
- 只有一个内存映射的I/O写入才能提交一个命令
- 队列优先级和仲裁
- 能够在一个64字节的命令中执行4k字节的读取
- 一个小的基本命令集(读、写、写不正确、刷新、比较、数据集管理)
- 支持中断聚合(包括消息信号中断)
- 多个名称空间——一个设备可以与一个“卷”解耦。
- 支持I/O虚拟化(如SR-IOV)
- 错误报告和管理
- 支持低功耗模式的能力
有以下寄存器集:
- 声明一个特定的控制器支持什么
- 设备故障状态
- 配置管理队列,用于管理I/O队列
- 门铃登记提交和完成队列
Cadence刚刚宣布了他们的NVMe IP产品,这是基于他们现有的PCIe IP;NVMe层是新的,以及支持它所需的固件。他们针对这个特定的上下文优化了底层PCIe实现,使整体实现更小。他们将api合并到顶层,因此无论哪个层可能被任何给定操作访问,都只有一个接口。他们还协调了他们的dma,以使操作更顺畅,减少争用。
他们对基本命令进行了硬件加速;命令集本身可以通过固件进行扩展。
PCIe PHY是硬IP;剩下的是RTL和固件。他们有一个工具,可以通过XML描述来配置IP,该描述将配置描述给他们的实现工具。
你可以找到更多关于Cadence的NVMe IP公告.