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

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

精彩推荐:

相关推荐
孙同学_1 天前
【项目篇】高并发服务器 - 从 Buffer 到 TcpServer 构建高并发服务器引擎
运维·服务器
SilentSamsara1 天前
Linux磁盘与存储管理:分区、LVM 与 IO 性能全栈分析
linux·运维·服务器·ssh·shell
小程故事多_801 天前
Agent+Milvus,告别静态知识库,打造具备动态记忆的智能AI助手
人工智能·深度学习·ai编程·milvus
code_pgf1 天前
Llama 3详解
人工智能·llama
ComputerInBook1 天前
数字图像处理(4版)——第 3 章——(图像的)强度变换和空间滤波(Rafael C.Gonzalez&Richard E. Woods)
图像处理·人工智能·计算机视觉·强度变换和空间滤波
IMPYLH1 天前
Linux 的 pinky 命令
linux·运维·服务器·bash
爱写代码的小朋友1 天前
生成式人工智能(AIGC)在开放式教育问答系统中的知识表征与推理机制研究
人工智能·aigc
技术专家1 天前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
m0_488913011 天前
万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!
人工智能·学习·机器学习·大模型·产品经理·llama·uml
helpme流水1 天前
LLaMA Factory 从入门到精通,一篇讲完
人工智能·ai·语言模型·llama