棋子 · 10月28日

PCIe ARI扩展能力(一)

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

image.png
image.png
image.png

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.

image.png

ARI扩展能力结构包含PCI Express Extended Capability Header、ARI Control Register、ARI Capability Register

2.1.ARI Extended Capability Header  

image.png

2.2.ARI Extended Capability Header 

image.png

2.3.ARI Capability Register  

image.png

2.4.ARI Control Register  

image.png

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。

image.png

image.png

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小鸽

推荐阅读

更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
20176
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息