OCP NVME SSD规范解读-2.复位与控制器配置要求-part2

  1. Maximum Data Transfer Size (MDTS):设备应支持至少256KB的最大数据传输大小。

  2. CSTS.CFS Reporting: 设备固件应支持报告CSTS.CFS(Controller Status and Capabilities Field in the Status Register)。

  3. Queue Depths: 每个提交队列的SQ最小支持队列深度应为1024,且最小I/O队列对数应为512。

  4. Namespace Unique Identifiers: 默认的单个命名空间应在Identify Namespace数据结构的EUI64字段中有一个唯一的非零值。对于在工厂配置的初始命名空间之外创建的每个命名空间,设备应将Identify Namespace数据结构中的EUI64字段清零。

  5. Non-Zero NGUID per Namespace: 设备应支持每个命名空间的非零NGUID,并且这个值永远不会被重用(即Identify Namespace数据结构的Common Namespace Features字段中的UIDREUSE位应设置为'1')。

  6. Doorbell Stride and Location: Doorbell Stride字段应清零,所有Doorbells应放置在单一连续的4096字节MMIO空间中,并且对齐到4096字节边界。

Doorbells在NVMe系统中扮演着关键的角色。当主机想要向NVMe设备提交新的I/O请求时,它会通过写入相应的Doorbell寄存器来通知设备。每个提交队列都有一个关联的Doorbell寄存器。主机写入该Doorbell寄存器的值通常表示要处理的新命令的数量或者队列头部的更新位置。

由于Doorbell寄存器的位置和布局是标准化的,所以主机软件可以很容易地找到并操作这些寄存器,从而有效地与NVMe设备交互。这有助于提高数据传输的效率和性能。

Doorbell Stride and Location在NVMe(Non-Volatile Memory Express)控制器配置中是非常重要的参数,它们影响着主机如何与NVMe设备进行通信。

Doorbell Stride:

Doorbell Stride,也称为Doorbell Shift Count或Doorbell Register Stride,是描述在MMIO(Memory Mapped Input/Output)空间中相邻Doorbell寄存器之间的偏移量的字段。这个值通常以字节为单位。在NVMe规范中,要求将Doorbell Stride字段(CAP.DSTRD)清零,这意味着Doorbell寄存器之间没有偏移,即它们是连续排列的。

Doorbell Location:

Doorbell Location是指在MMIO空间中Doorbell寄存器开始的位置。根据NVMe规范的要求,所有Doorbells应放置在单一连续的4096字节MMIO空间中,并且对齐到4096字节边界。这意味着Doorbell寄存器的起始地址应该是4096的倍数。

  1. Controller Memory Buffer (CMB) Support: 如果支持CMB,实施应符合NVM Express Base 2.0 Specification或更高版本的要求,包括默认禁用CMB的要求。禁止使用符合NVM Express Base Specification 1.4版本之前的任何版本的CMB实现。

CMB被纳入到NVMe 1.2标准中,其目的是减少主机和设备之间的数据移动 。CMB是控制器内部的一块专用内存,通过PCIe总线访问。当CPU需要访问存储设备的数据时,它可以通过内存读写事务层封装(MRd或MRw)直接访问CMB,而不需要将整个数据块传输到主机内存。

  1. Controller Power Scope: 控制器能力属性中的Controller Power Scope字段应设置为11b,表示它是NVM子系统的范围(即NVM子系统不支持多个域)。

  2. NVM Command Set Support: 设备应支持NVM命令集(即Controller Capabilities属性中的Command Sets Supported字段应设置位0为1b,且Identify Controller数据结构中的Controller Type字段应设置为01h)。

  3. Submission and Completion Queue Entry Sizes: 设备应支持最大64字节的提交队列条目大小和最大16字节的完成队列条目大小。

  4. Memory Page Size Minimum: 设备应将Memory Page Size Minimum字段清零(表示最小页面大小为4 KiB)。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角"关注 "并点击"分享 "、"在看",非常感谢!

精彩推荐:

相关推荐
qq_411262422 分钟前
基于 ESP32-S3 的四博 AI 墨水屏智能音箱方案:CozyLife、Find My、Google 防丢与 MCP 工具控制
人工智能·语音识别
HealthScience6 分钟前
vscode使用Excel插件导致codex插件无法粘贴图片
服务器·vscode·excel
刘一说7 分钟前
AI科技热点日报 | 2026年5月12日
人工智能·科技
夏日听雨眠7 分钟前
Linux(printf函数输出问题,exit ,主函数参数,fork函数,文件系统调用)
linux·运维·服务器
2501_934440238 分钟前
只做中外合作办学,并且把它做深、做精
大数据·人工智能
阿火~10 分钟前
linux部署nacos【无脑简单版】【支持ARM版本和X86版本】
linux·运维·服务器
lpfasd12312 分钟前
AI Agent 构建操作指南
人工智能
故事还在继续吗13 分钟前
Linux 系统调用与接口层
linux·运维·系统调用
国强_dev14 分钟前
如何提升canal吞吐量
java·大数据·python
学习使我快乐0114 分钟前
AI时代下,前端如何破局
前端·人工智能