PCIe配置与VPD管理 - 页码152
NVMe-MI 1 min read

PCIe配置与VPD管理 - 页码152

Blog Author

深入分析:PCIe I/O Write 和 PCIe Memory Read

PCIe I/O Write(图157 和图158)

PCIe I/O Write 命令允许管理控制器向与 NVMe 控制器相关联的 PCIe I/O 空间写入内容。它使用 PCIe Request Dwords 0 和 1 字段。PCIe Request Dword 2 是保留字段,不使用。

PCIe Request Dword 0 的详细格式如下:

字段名 描述
Reserved 保留字段,不使用。
Base Address Register (BAR) 此字段指定要写入的 PCI 基地址寄存器(BAR)。该字段值表示与该 BAR 关联的 PCI I/O 空间的起始偏移量。对于 64 位的 BAR,该字段应对应于该 BAR 的最低有效 32 位。
Length (LENGTH) 此字段指定要写入的字节数,控制写入的数据范围。

PCIe Request Dword 1 的详细格式如下:

字段名 描述
Offset (OFFSET) 此字段指定要写入的 PCIe 地址空间中的偏移量。它与 Base Address Register 字段配合使用,确定写入操作的起始位置。

工作原理: 1. Base Address Register (BAR):指定与 NVMe 控制器关联的 PCIe I/O 空间的起始位置。 2. Length (LENGTH):指定写入数据的字节数。 3. Offset (OFFSET):指定开始写入的 PCIe 地址空间中的偏移量。

错误处理: - 如果 BAR 字段对应的不是 NVMe 控制器实现的 I/O BAR,或者 Offset + Length 超出了配置空间的范围,将导致“无效参数错误”响应,并指明是 BAROffset 字段有问题。

PCIe Memory Read(图159、图160 和图161)

PCIe Memory Read 命令允许管理控制器读取与 NVMe 控制器相关联的 PCIe 内存空间的内容。它使用 PCIe Request Dwords 0、1 和 2 字段。

PCIe Request Dword 0 的详细格式如下:

字段名 描述
Reserved 保留字段,不使用。

PCIe Request Dword 1PCIe Request Dword 2 的具体格式将在后续详细介绍,它们用于指定读取操作的详细参数,如内存空间的偏移量、读取的字节数等。

总结

  • PCIe I/O WritePCIe Memory Read 命令提供了对 PCIe I/O 空间PCIe 内存空间 的读写操作。
  • 这些命令通过 Base Address Register (BAR)Offset (OFFSET) 字段精确控制数据的读取和写入起始位置。
  • Length 字段用于控制数据的传输大小,确保数据对齐并按照正确的边界进行传输。
  • 错误处理机制确保了当 BAROffset + Length 超出有效范围时,系统能够响应错误。

如果你对 PCIe 命令集 的其他方面有疑问,或希望进一步探讨如何在系统中实现这些命令,随时可以向我提问。