目录
1.ARI简介
2.ARI配置过程
3.ARI寄存器
3.1 ARI Capability Header
3.2 ARI Capability Register
3.3 ARI Control Register
3.4 Device Control 2 Register
3.5 Device Capabilities 2 Register
1.ARI简介
ARI(Alternative Routing-ID),备选路由ID。在PCIE中,往往数据包传输通过TLP的形式。这些TLP大致分为Memory Read/Write TLP , Configuration Read/Write TLP ,Completion TLP, Message TLP以及IO TLP。这些TLP从Request端到Completion端的过程叫做路由,而路由又大致分为两类地址路由和ID路由。
所有的ID路由中的ID包括Request端的bus number,device number以及function number。其中ID有16 bits,bus number 8 bits,device number 5 bits,function number 3 bits意味着支持8个function。
对于有些device功能比较复杂或者支持FBP技术的root port或者device,往往8个function不足以满足要求,这个时候就出现了ARI技术。将device number的5 bits也用作function,这样便可以由原来的8个function扩展到256个function。下图所示,为ARI的应用架构。
2.ARI配置过程
1)软件枚举PCI Express层次结构并确定是否支持ARI功能;
a. 对于ARI Downstream Port,通过Device Capabilities 2 register中ARI Forwarding Enable确认;
b. 对于ARI Device,通过Device Capabilities structure确认;
2)软件使能每个组件中的ARI功能;
a. 对于ARI Device 上面的ARI Downstream Port,软件需要使能Device Control 2 register 中的ARI Forwarding Enable bit 。ARI Downstream Port收到的CFG1转CFG0的时候不需要强制device number为0;
b. 对于ARI Device, 还需要使能Extended Functions;
3)对于ARI device它的Device number必须为0。
3.ARI寄存器
3.1 ARI Capability Header
3.2 ARI Capability Register
3.3 ARI Control Register
3.4 Device Control 2 Register
3.5 Device Capabilities 2 Register