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)。

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

精彩推荐:

相关推荐
Zack_Liu15 分钟前
深度学习基础模块
人工智能·深度学习
zy_destiny34 分钟前
【工业场景】用YOLOv8实现抽烟识别
人工智能·python·算法·yolo·机器学习·计算机视觉·目标跟踪
狠活科技40 分钟前
免登录!免安装ClI,Claude Code官方插件接入API使用教程
人工智能·vscode·ai编程
武文斌771 小时前
复习总结最终版:单片机
linux·单片机·嵌入式硬件·学习
驱动探索者1 小时前
贝尔实验室发展史:20世纪科技圣殿的辉煌与沉浮
linux
闲看云起1 小时前
Bert:从“读不懂上下文”的AI,到真正理解语言
论文阅读·人工智能·深度学习·语言模型·自然语言处理·bert
何朴尧1 小时前
centos/cuos如何开启软件源
linux·运维·centos
派阿喵搞电子1 小时前
关于使用docker部署srs服务器的相关指令
服务器·docker·容器
YouEmbedded1 小时前
解码Linux文件IO之标准IO
linux·文件io·系统io
qq_339191141 小时前
aws ec2防ssh爆破, aws服务器加固, 亚马逊服务器ssh安全,防止ip扫描ssh。 aws安装fail2ban, ec2配置fail2ban
服务器·ssh·aws