1.ARI含义
Alternative Routing-ID Interpretation (ARI),即可替代的ID路由机制,首次在PCIe gen3提出。在PCIe gen1和PCIe gen2中,Routing IDs, Requester IDs, and Completer IDs 是16bit的标识符,由三部分组成,分别是 an 8-bit Bus Number, a 5-bit Device Number, and a 3-bit Function Number。由于PCIe是端对端设备,作为Endpoint类型的设备,只有一个device,即device number恒为0,此时5-bit的Device Number没有多大意义,而3-bit Function Number只能表示8个function,在部分虚拟化场景中,常常不够用。基于以上原因,PCIe gen3提出了ARI机制,通过取消Device Number字段,采用8-bit Function Number和8-bit Bus Number组成Routing IDs, Requester IDs, and Completer IDs,因此占用一个bus number的Endpoint设备最大可以拥有256个function(PS:一个Endpoint可以占用多个bus number)。
2.ARI 扩展能力结构
ARI是一个可选择的能力结构,支持ARI特性的Upstream Port(包含Endpoint和Switch upstream port)必须实现ARI 扩展能力结构。需要注意的是,ARI不适用于a Root Port, a Switch Downstream Port, an RCiEP, or a Root Complex Event Collector.
ARI扩展能力结构包含PCI Express Extended Capability Header、ARI Control Register、ARI Capability Register
2.1.ARI Extended Capability Header
2.2.ARI Extended Capability Header
2.3.ARI Capability Register
2.4.ARI Control Register
3.ARI使用注意实现
3.1.如何检查设备具有ARI能力
1)对Endpoint和Switch upstream port来说,如果实现了ARI扩展能力结构,则表示device支持ARI。
2)对Switch Downstream Ports and Root Ports来说,如果Device Capabilities 2 Register的ARI Forwarding Supported字段为1则表示设备支持ARI。
如果需要开启ARI功能,则系统软件会将Device Control 2 Register的ARI Forwarding Enable字段设置为1,此时Downstream Port在将type1的cfg请求转换成Type0的cfg请求时,会删除device number,改用8-bit的function number。
4.相关专有名词
Alternative Routing-ID, ARI
Alternative Routing-ID Interpretation. Applicable to Requester IDs and Completer IDs as well as Routing IDs.
ARI Device
A Device associated with an Upstream Port, whose Functions each contain an ARI Extended Capability structure.
ARI Downstream Port
A Switch Downstream Port or Root Port that supports ARI Forwarding.
ARI Forwarding
Functionality that enables the Downstream Port immediately above an ARI Device to access the Devices extended Functions. Enabling ARI Forwarding ensures the logic that determines when to turn a Type 1 Configuration Request into a Type 0 Configuration Request no longer enforces a restriction on the traditional Device Number field being 0.
5.参考文档
PCI Express® Base Specification Revision 5.0 Version 1.0
END
作者:IC小鸽
文章来源:IC小鸽
推荐阅读
- GIT batch的支持中文的方法和系统建议
- PCIe 知识点:bus number是如何获取的
- 深入理解SoC上电和boot流程
- Windows下如何查看PCIe设备信息
- SystemVerilog | 这些Debug调试方法你都知道吗?
更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。