承接【PCIe 5.0 - 101】SR-IOV【2】

PCIe 系列SR-IOV导航:
【PCIe 5.0 - 100】SR-IOV【1】
【PCIe 5.0 - 101】SR-IOV【2】
【PCIe 5.0 - 102】SR-IOV【3】
【PCIe 5.0 - 103】SR-IOV 【4】

9.3.7 PCI Express Extended Capabilities Changes

  PCI Express Extended Capabilities的 SR-IOV 使用在表 9-23 中描述。 标记为 n/a 的项目不适用于PF或VF(例如,对于仅存在于Root Complexes中或仅存在于Function 0 中的Capabilities)。

Extended Capability ID Description PF 属性 VF 属性
0000h Null Capability Base Base
0001h Advanced Error Reporting Extended Capability (AER) Base See 9.4.2
0002h Virtual Channel Extended Capability(02h) Base 禁止实现
0003h Device Serial Number Extended Capability Base See Section 9.3.7.2
0004h Power Budgeting Extended Capability Base 禁止实现
0005h Root Complex Link Declaration Extended Capability n/a n/a
0006h Root Complex Internal Link Control Extended Capability n/a n/a
0007h Root Complex Event Collector Endpoint Association Extended Capability n/a n/a
0008h Multi-Function Virtual Channel Extended Capability Base 禁止实现
0009h Virtual Channel Extended Capability(09h) Base 禁止实现
000Ah RCRB Header Extended Capability n/a n/a
000Bh Vendor-specific Extended Capability Base Base
000Ch Configuration Access Correlation Extended Capability n/a n/a
000Dh ACS Extended Capability 见9.3.7.6节 见9.3.7.6节
000Eh ARI Extended Capability (ARI) 见9.3.7.7节 见9.3.7.7节
000Fh ATS Extended Capability 见9.3.7.8节 见9.3.7.8节
0010h SR-IOV Extended Capability 见9.3.3节 禁止实现
0011h MR-IOV Extended Capability (MR-IOV) 禁止实现 禁止实现
0012h Multicast Extended Capability 见9.3.7.10节 见9.3.7.10节
0013h Page Request Extended Capability (PRI) 见9.3.7.11节 见9.3.7.11节
0014h Reserved for AMD Base Base
0015h Resizable BAR Extended Capability Base 禁止实现
0016h Dynamic Power Allocation Extended Capability (DPA) 见9.3.7.12节 禁止实现
0017h TPH Requester Extended Capability (TPH) 见9.3.7.13节 见9.3.7.13节
0018h LTR Extended Capability Base 禁止实现,LTR仅通过Function 0来控制
0019h Secondary PCI Express Extended Capability Base 禁止实现,8.0 GT/s仅通过Function 0来控制
001Ah PMUX Extended Capability Base 禁止实现,PMUX仅通过Function 0来控制
001Bh PASID Extended Capability Base 见9.3.7.14节
001Ch LN Requester Extended Capability (LNR) Base Base
001Dh DPC Extended Capability n/a n/a
001Eh L1 PM Substates Extended Capability Base 禁止实现,L1 PM Substates仅通过Function 0来控制
001Fh Precision Time Management Extended Capability (PTM) Base 禁止实现,PTM控制Port,不能在VF中实现
0020h PCI Express over M-PHY Extended Capability (M-PCIe) Base 禁止实现,M-PHY仅通过Function 0来控制
0021h FRS Queueing Extended Capability n/a n/a
0022h Readiness Time Reporting Extended Capability Base 见9.3.7.15节
0023h Designated vendor-specific Extended Capability Base Base
0024h VF Resizable BAR Extended Capability 见9.3.7.5节 未实现,见9.3.7.5节
0025h Data Link Feature Extended Capability Base 禁止实现
0026h Physical Layer 16.0 GT/s Extended Capability Base 禁止实现
0027h Lane Margining at the Receiver Extended Capability Base 禁止实现
0028h Hierarchy ID Extended Capability Base Base
0029h Native PCIe Enclosure Management Extended Capability (NPEM) Base 禁止实现

9.3.7.1 Virtual Channel/MFVC

  VF使用相关 PF 的虚拟通道(Virtual Channel)。 因此,VF 不包含任何虚拟通道Capabilities。

  VF也不应包含 MFVC Capability。 此Capability仅存在于永远不会是 VF 的Function 0 中。

9.3.7.2 Device Serial Number

  Device Serial Number Extended Capability可能出现在 PF 中。 如果 PF 包含此Capability,则其值适用于所有关联的 VF。 允许但不建议使用 VF 来实现此功能。 实现此capability的VF必须返回与其关联 PF 报告的相同Device Serial Number值。

9.3.7.3 Power Budgeting

  Power Budgeting Extended Capability可以存在于 PF 中,但 VF 不得实施。 如果 PF 包含该capability,则它应该报告所有相关 VF 的值。

9.3.7.4 Resizable BAR

  Resizable BAR Extended Capability可以存在于 PF 中,由于 VF 不实现标准 BAR,因此该capability 不能出现在 VF 中。PF 的 Resizable BAR 设置不会影响SR-IOV Extended Capability中的任何设置。

9.3.7.5 VF Resizable BAR Extended Capability

  VF Resizable BAR Extended Capability 仅允许在实现了至少一个 VF BAR 的 PF 中实现,并影响 PF 的 VF BAR 的大小和基数。 由于 VF 本身不实现 BAR,因此该capability 不能出现在 VF 中。因为每个capability独立运行,PF 可以实现 VF Resizable BAR Extended Capability 和 Resizable BAR capability。

  VF Resizable BAR Extended Capability 是一项可选capability,允许 PF 调整其 VF 的 BAR 大小。 VF Resizable BAR Extended Capability 允许硬件通过 VF Resizable BAR Extended Capability and Control 寄存器传达操作可接受的资源大小,并允许系统软件通过VF Resizable BAR Control寄存器的 VF BAR Size 字段将最佳大小传达回硬件。

  硬件立即在适当的 VF BAR 的read only位中反映大小推断。 推断的大小是从 System Page Size 和 VF BAR Size 字段解码的值中的较大者。 硬件必须清除所有从read-write变为read-only的位,以便后续读取返回零。 在写入 VF BAR 大小字段之前,软件必须清除 SR-IOV Control寄存器中的 VF MSE 位。 写入 VF BAR Size 字段后,对应的 VF BAR 的内容未定义。 为确保在调整 VF BAR 大小后它包含有效地址,系统软件必须reprogram VF BAR,并设置 VF MSE 位(除非资源未分配)。

  仅当关联的 VF BAR 是 64 位 BAR 时,VF Resizable BAR Extended Capability and Control 寄存器才允许指示以 4 GB 或更大容量运行的能力。

  强烈建议Function不要在此capability中通告任何大于空间支持的 VF BAR 大小值,如果被分配,它可以效利用。

  VF Resizable BAR Extended Capability 结构定义了一个PCI Express Extended Capability,它位于PCI Express Extended Configuration Space 中,即前256 字节,如下图9-21 所示。 这种结构允许识别和控制具有这种capability的PF。为每个可调整大小的VF BAR实现一个Capability寄存器和一个Control寄存器。 由于任何 PF 最多可以实现 6 个VF BARs,因此VF Resizable BAR Capability结构的范围可以从 12 字节长(对于单个 VF BAR)到 52 字节长(对于所有 6 个 VF BAR)。

图9-21 VF Resizable BAR Extended Capability

9.3.7.5.1 VF Resizable BAR Extended Capability Header (Offset 00h)

图 9-22 VF Resizable BAR Extended Capability Header 表9-24 VF Resizable BAR Extended Capability Header

Bit Location 寄存器描述 属性
15:0 PCI Express Extended Capability ID - 该字段是 PCI-SIG 定义的 ID 号,表示扩展capability的性质和格式。
VF Resizable BAR Extended Capability 的 PCI Express Extended Capability ID 是 0024h。
RO
19:16 Capability Version - 该字段是 PCI-SIG 定义的版本号,表示capability结构的版本。
此版本的规范必须为 1h。
RO
31:20 Next Capability Offset - 该字段包含到下一个 PCI Express Extended Capability结构的偏移量,如果capabilities链表中不存在其他项,则为 000h RO
9.3.7.5.2 VF Resizable BAR Capability Register (Offset 04h)

  VF Resizable BAR Capability Register 字段说明与PCIe 5.0表7-116 中Resizable BAR Capability Register 中的定义相同。 在这些描述中说“BAR”的地方,该寄存器的描述是针对“VF BAR”的。 在这些描述中说“Function”的地方,该寄存器的描述是针对“PF”的。 否则字段描述、比特数、它们的位置和它们的属性是相同的。 因此,PCIe 5.0图7-145 类似地分配了该寄存器中的寄存器字段。

9.3.7.5.3 VF Resizable BAR Control Register (Offset 08h)

  VF Resizable BAR Control寄存器bits 31:16 遵循与表 7-117 中的Resizable BAR Control寄存器相同的定义。

图9-23 VF Resizable BAR Control Register 表9-25 VF Resizable BAR Control Register

Bit Location 寄存器描述 属性
2:0 VF BAR Index - 此编码值指向位于 SR-IOV Extended Capability中特定 VF BAR 的开头。
0  VF BAR在偏移量为24h的位置
1  VF BAR在偏移量为28h的位置
2  VF BAR在偏移量为2Ch的位置
3  VF BAR在偏移量为30h的位置
4  VF BAR在偏移量为34h的位置
5  VF BAR在偏移量为38h的位置
对于 64 位 Base Address寄存器,VF BAR Index表示较低的 DWORD。
RO
7:5 Number of VF Resizable BARs - 表示Function的capability结构中可调整大小的 VF BAR 的总数。 请参见图 9-21。
该字段的值必须在 01h 到 06h 的范围内。该字段在 VF Resizable BAR Control寄存器 (0) 中有效(在offset 08h 处),并且对于所有其他字段都是 RsvdP。
RO/RsvdP
13:8 VF BAR Size - 这是一个编码值。
0  1 MB (220 bytes)
1  2 MB (221 bytes)
2  4MB (222 bytes)
3  8 MB (223 bytes)
…  …
43  8 EB (263 bytes)
该字段的默认值等于 VF BAR 资源通过 VF BAR 的read-only位请求的地址空间的默认大小。
软件只能写入与 VF Resizable BAR Capability and Control 寄存器中指示支持的值相对应的值。 写入不受支持的值将产生未定义的结果。
当该寄存器字段被program后,该值会立即反映在资源的大小中,如 VF BAR 中的read-only bits数目中所编码的那样。
RW
31:16 这些bits与图 7-146 中定义的Resizable BAR Control Register bits [31:16] 相同。那些描述为“BAR”的地方,该寄存器的描述是针对“VF BAR”的。 在这些描述中说“Function”的地方,该寄存器的描述是针对“PF”的。 见图7-146

9.3.7.6 Access Control Services (ACS) Extended Capability Changes

  ACS 是一个可选的扩展功能。 如果Root Complex中一个以外的具有 SR-IOV Capable的设备实现内部对等事务,则需要 ACS 并满足下面描述的附加要求。

  PF 和 VF 功能在第 7.7.8.2 节中定义,除非在表 9-26 中注明。

  除支持设备内对等事务的 RCiEP 之外,支持 SR-IOV 的设备(实现至少一个 PF 的设备)中的所有Functions都应实现 ACS Egress Control。

  允许但不要求在 RCiEP 中实施 ACS。 明确允许在单个Root Complex中,一些 RCiEP 实现 ACS,而另一些则不。 强烈建议Root Complex实现确保源自没有 ACS 功能的 RCiEP(PF 和 VF)的所有访问在进一步解码和处理之前首先由Root Complex中的Translation Agent (TA) 进行处理。 这种根复合体处理的细节PCIe文档没有规定。

表9-26 ACS Capability Register Changes

Bit Location PF and VF Register Differences From Base PF属性 VF属性
5 ACS P2P Egress Control - 如果支持设备内的点对点事务,则对于不是 RCiEP 的Functions需要为 1b。 Base Base
支持Functions直接分配的系统中的Access Control Services

General-purpose VI 通常为每个 SI 和 VI 本身提供单独的地址空间。如果这样的 VI 还支持将Function直接分配给 SI,则由直接分配的Function发出的Untranslated Memory Request事务完全受在相关 SI 内运行的软件控制,并且通常引用与该 SI 相关的地址空间。相比之下,由Host(MMIO 请求)和未直接分配的Functin发出的Memory Request事务在 VI 的控制下,通常引用一个或多个系统地址空间(例如,PCIe 物理地址空间、地址空间与 VI 相关联,或与某个指定 SI 相关联的地址空间)。General-purpose VI 不会在这些不同的地址空间之间建立依赖关系。因此,这些地址空间可能会自由重叠,这可能会导致Switch意外路由 TLP。例如,如果Request中的地址落在与Downstream Port关联的 MMIO 地址区域内,则由直接分配的Function发起并打算用于主存储器的Upstream Memory Request TLP 可以改为路由到Downstream Port。这种意外路由对 SI 和/或 VI 稳定性和完整性构成威胁。
为了防止这种隐患,建议供应商在支持直接分配Functions的通用 VI 的平台上实施 ACS。 这种支持应包括:

  • 在位于 TA 下方的Switch或Root Complex中,ACS 支持的级别应遵循PCIe文档中为实施 ACS Extended Capability结构的Downstream Switch Ports建立的指南。
    注意:位于 TA 上方的组件只能看到 Translated Memory Requests,因此此问题不适用于这些组件。
  • 在能够进行点对点事务的 SR-IOV 设备中,需要 ACS 支持。
  • 在能够进行点对点事务的Multi-Function Devices中,强烈建议供应商使用 ACS P2P Egress Control来实施 ACS。

此外,平台供应商应测试是否存在 ACS,并在直接分配该Function之前,在从 TA 到Function的路径上的Root Complex和Switch中enable它。 如果该Function具有点对点功能,则还应在该Function中enable ACS。

9.3.7.7 Alternative Routing ID Interpretation Extended Capability (ARI) Changes

  ARI 不适用于 RCiEP; 所有其他具有 SR-IOV 能力的设备(包括至少一个 PF 的设备)应在每个Function中实现 ARI Extended Capability。除非在表 9-27 中注明, PF 和 VF 功能在第 7.8.7.2 节中定义。

表9-27 ARI Capability Register Changes

Bit Location PF and VF Register Differences From Base PF属性 VF属性
0 MFVC Function Groups Capability (M) - 附加要求如下所述。 Base Base
1 ACS Function Groups Capability (A) - 附加要求如下所述。 Base Base
0 Next Function Number - VF 使用 First VF Offset(参见第 9.3.3.10 节)和 VF Stride(参见第 9.3.3.11 节)定位。 Base 未定义

  任何使用可选的Function Arbitration Table实现MFVC Capability并消耗多个Bus Number的设备都应在Function 0 中将MVFC Function Groups Enable (M) bit实现为 1b。

  任何使用可选Egress Control Vector实现 ACS Capability并消耗多个Bus Number的设备都应在Function中将ACS Function Groups Enable(A) bit实现为 1b。

9.3.7.8 Address Translation Services Extended Capability Changes (ATS)

  支持ATS在 SR-IOV 设备中是可选的。 如果 VF 实现了 ATS capability,其相关的 PF 必须实现 ATS capability。 VF 及其相关 PF 中的 ATS Capabilities可以单独enable。

  PF 和 VF 功能在第 10.5.1 节中定义,除非表 9-28 和表 9-29 中另有说明。 这里ATS 的属性与Address Translation Services(第 10 章)中指定的属性相同。

表 9-28 ATS Capability Register

Bit Location PF 和 VF 寄存器与 ATS 的区别 PF属性 VF属性
4:0 Invalidate Queue Depth - 对于 VF,硬连线为 0。 共享 PF 输入队列的深度。 ATS RO

表 9-29 ATS Capability Register Changes

Bit Location PF 和 VF 寄存器与 ATS 的区别 PF属性 VF属性
4:0 Smallest Translation Unit (STU) - 对于 VF,硬连线为 0。 PF 值适用于所有 VF。 ATS RO

  ATS 行为在Address Translation Services(第 10 章)中指定。 ATS 请求以正在失效的Function为目标。 ATS responses将具有与目标Function匹配的Routing ID字段。 每个Function都需要实现足够的queuing,以确保它可以容纳来自 TA 的最大数量的未完成的Invalidation Requests(使用input或output queuing)。

  但是,与 PF 关联的所有 VF 共享 PF 中的单个输入队列,为了实现Invalidation flow control,TA 必须确保对共享 PF 队列(针对 PF 及其关联的 VF)的未完成的Invalidate Requests总数不超过 PF Invalidate Queue Depth字段中的值。

9.3.7.9 MR-IOV Changes

  PF 和 VF 不应包含 MR-IOV Capability。

  如果存在,则 MR-IOV Capability包含在组件的其他功能中。 有关详细信息,请参阅 [MR-IOV]。

9.3.7.10 Multicast Changes

  多播在 SR-IOV 设备中是可选的。 如果 VF 实现了多播能力,则其关联的 PF 必须实现多播capability。 除非表9-30、表9-31 和表9-32 中另有说明,PF 和 VF 功能在第 7.9.11 节中定义。

表9-30 Multicast Capability Register Changes

Bit Location PF 和 VF 寄存器与Base的区别 PF属性 VF属性
5:0 MC_Max_Group - - PF 值适用于所有 VF。 Base RsvdP
13:8 MC_Window_Size_Requested - - PF 值适用于所有 VF。 Base RsvdP
15 MC_ECRC_Regeneration_Supported - - 不适用于Endpoints。 Base RsvdP

表9-31 Multicast Control Register Changes

Bit Location PF 和 VF 寄存器与Base的区别 PF属性 VF属性
5:0 MC_Num_Group - - PF 值适用于所有 VF。 Base RsvdP

表9-32 Multicast Capability Register Changes

Bit Location PF 和 VF 寄存器与Base的区别 PF属性 VF属性
5:0 MC_Index_Position - - PF 值适用于所有 VF。 Base RsvdP
63:12 MC_Base_Address - - PF 值适用于所有 VF。 Base RsvdP

9.3.7.11 Page Request Interface Changes (PRI)

  Page Request Interface功能在Address Translation Services(PCIe Base 5.0第 10 章)中定义。

  允许 PF 支持Page Request Interface。 PF 的Page Request Interface也被相关的 VF 使用。 PF 被可以实现Page Request Interface capability,而 VF 不应实现。

  即使Page Request Interface在 PF 和 VF 之间共享,它也会在 Page Request Message的Requester ID ID 字段中发送请求Function的 ID(PF 或 VF),并在生成的PRG Response Message里的Destination Device ID 字段中期望请求Function的 ID 。

9.3.7.12 Dynamic Power Allocation Changes (DPA)

  VF 可能无法实现Dynamic Power Allocation Capability。

  VF 的功率分配使用 PF 的 DPA Capability(如果有实施)进行管理。

9.3.7.13 TPH Requester Changes (TPH)

  TPH Requester Extended Capability可能存在于VF、PF之一中,或者两者都存在,也可能两者都不存在。 如果与给定PF关联的任何VF包含该能力,则与该 PF 关联的所有VF也必须支持 TPH。

  PF 和 VF 中的所有TPH Requester Extended Capability字段按照第 7.9.13 节中的定义进行操作。

  TPH Requester Capability Register(offset 04h)中的字段,PF及其关联的VF可能具有不同的值,但与同一 PF 关联的所有VF必须在所有字段中具有相同的值。

9.3.7.14 PASID Changes

  允许Endpoint设备支持PASID。 代表设备的单个功能(Function 或 PF)的PASID配置也被设备中的所有VF使用。 PF可以实现PASID capability,但 VF 不能实现。

  即使PASID配置在 Function、PF和VF之间共享,设备也会在包含PASID的TLP的 Requester ID字段中发送请求Function的ID(Function、PF 或 VF)。

9.3.7.15 Readiness Time Reporting Extended Capability Changes

  Readiness Time Reporting Extended Capability可能存在于VF、PF中,或者两者都存在或两者都不存在。 如果与给定PF关联的任何VF包含该功能,则与同一PF关联的所有VF 也必须支持Readiness Time Reporting。

  Reset Time 字段包含设置VF Enable后所需的时间(参见第9.6.1节)。

  DL_Up Time字段是 RsvdP。

  与同一 PF 关联的所有 VF 应报告相同的时间值。

【PCIe 5.0 - 102】SR-IOV【3】相关推荐

  1. 【PCIe 5.0 - 100】SR-IOV【1】

    本文将从PCIe角度讲SR-IOV. PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PCIe 5.0 - ...

  2. 【PCIe 5.0 - 101】SR-IOV【2】

    承接[PCIe 5.0 - 100]SR-IOV[1] PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PC ...

  3. 【PCIe 5.0 - 1】PCIe Link属性

    PCI Express Link PCI Express Link的主要Link属性是: Link - PCI Express 链路由两组单向差分链路组成,实现为发送对和接收对.使用编码方案嵌入数据时 ...

  4. 【PCIe 6.0】PCIe Flit 打包解包规则

  5. 【PCIe 6.0】讨论:为什么每 Half-Flit 中的 TLP 数目不能超过 8 个?

  6. 【PCIe 6.0】PCIe Shared Flow Control (5) - Optimized FC

  7. 【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解

  8. 【PCIe 6.0】颠覆性技术!你NRZ相守20年又怎样?看我PAM4如何上位PCIe 6.0 !

  9. 【PCIe 6.0】PCIe Shared Flow Control (3) - Shared Credit Block

最新文章

  1. Docker(四):Docker 命令大全
  2. asp开发工具_VSCode搭建完美的asp.net core开发环境,看完这篇就够了
  3. python教材推荐-7种主流数据分析软件比较及经典教材推荐
  4. 测试lazy_enable_if的所有变体
  5. js 字符ascii码转换函数
  6. P2272-[ZJOI2007]最大半连通子图【tarjan,缩点】
  7. 基于sklearn的LogisticRegression二分类实践
  8. 如何设计Android App测试用例
  9. 锁、threading.local、线程池
  10. socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例
  11. android shell 获取当前正在运行的Activity
  12. 软件质量测试雨课堂习题
  13. 王天羲:构建以客户中心的全整合企业
  14. 第十一届“挑战杯”广东省大学生课外学术科技作品竞赛总结——谢凌云
  15. shell编程经典案例,建议收藏
  16. 凤凰教育商学院成立 致力于为教育机构提供运营方案
  17. 【APPdesigner】使用appdesigner设计的一个潮流计算器
  18. 分享167个PHP源码,总有一款适合您
  19. android9.0 UsbManager源码解析
  20. windows下实现校园网自动登陆

热门文章

  1. 【微信小程序付款转二维码付款】
  2. 中国信息化发展八大趋势(一)
  3. Hack the box靶机 Admirer
  4. 娱乐直播成“过去式”,花房集团的IPO还会“香”吗?
  5. 产品经理如何入门,没人带的情况下如何学习?
  6. buck电路的工作原理
  7. 通信工程交换传输实习报告
  8. 新买的笔记本如何安装计算机,新电脑买回来要怎么做【经验分享】
  9. 【web前端】引入CSS(选择器)
  10. 高光谱异常探测问题解答