NVMe配置空间寄存器


本文属于《 NVMe协议基础系列教程》之一,欢迎查看其它文章。

NVMe基于PCIe协议,因此也必须满足PCIe协议的基本要求。
NVMe (Over PCle)寄存器,主要分为两类:

  • PCle配置空间寄存器
  • NVMe控制器寄存器(PCIe内存空间)

本节主要介绍,NVMe设备的配置空间组成,比如PCI Header、PCI Capabilities和PCI Express Extended Capabilities,并且还有NVMe设备的附加要求。

NVMe设备必须具备的基础PCIe Capability,如下所示:

在这里插入图片描述
可以看到有,1个PCI Header,4个Capability,1个Extended Capability,接下来,我们详细介绍。

1 PCIe Capability组织结构

在这里插入图片描述
PCIe的配置空间为4KB:

  • 0~256B是PCI空间(PCI Compatible Space),用于存放PCI Header和Capability。
  • 256~4KB是PCIe扩展空间(Extended Configuration Space),用于存放Extended Capability。

Capability组织结构,如下所示:
在这里插入图片描述
Extended Capability组织结构,如下所示:
在这里插入图片描述第一个Extended Capability,默认从100h偏移位置开始放置。

2 PCI Header

PCI配置Header(64B,00h~3Ch)具有固定的格式,主要有两种:Type0和Type1。

  • Header Type为Type0,表示Endpoint(Agent)的Configuration Space;
  • Header Type为Type1,表示Switch或Bridge的Configuration Space。

NVMe控制器是以Endpoint形式,挂接在PCIe Port下,因此配置空间为Type0类型,如下所示:
在这里插入图片描述
Header中各个寄存器的含义,如下所示:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 PCI Power Management Capabilities

在这里插入图片描述
PCI Power Management Capabilities用于电源管理,该能力必须实现。
PCI Power Management Capabilities由Capability ID、Capabilities、Control and Status三部分组成。
至于每个寄存器具体含义,可参考NVM Express 1.1a协议规范,这里不再赘述。

4 Message Signaled Interrupt Capability (Optional)

在这里插入图片描述
Message Signaled Interrupt Capability用于支持MSI中断,这是可选的能力,一般情况使用MSI-X居多。
寄存器具体含义,参考NVM Express 1.1a协议规范。

5 MSI-X Capability (Optional)

在这里插入图片描述
MSI-X Capability用于支持MSI-X中断,虽然是可选能力,但大多数SSD都会采用MSI-X方式上报中断。
寄存器具体含义,参考NVM Express 1.1a协议规范。

6 PCI Express Capability

在这里插入图片描述
PCI Express Capability包含设备能力、设备控制、设备状态、Link能力、Link控制、Link状态等,是必须实现的能力。
需要注意的是Device Control 2寄存器,可通过改变它来设置链路超时时间(SSD侧认为的),一般Host侧的超时时间是37~50ms。
寄存器具体含义,参考NVM Express 1.1a协议规范。

7 Advanced Error Reporting Capability (Optional)

在这里插入图片描述
Advanced Error Reporting Capability 可选能力,用于向host报告错误,注意,这个错误是PCIe协议上的错误,而不是NVMe命令执行错误。

此外还有一些其他PCIe Capability,是NVMe规范未提及但会使用的,这取决于NVMe SSD的实现。
寄存器具体含义,参考NVM Express 1.1a协议规范。

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值