数据包优先级和事务处理请求流
在VC0中,每个数据包都有一个优先级,并且可以选择性地具有一个关键请求流,这些都是由数据包的源(即发起)端点处理元素分配的。优先级被包含在数据包的prio字段中,并有四个可能的值:0、1、2或3。数据包的优先级随着优先级值的增加而提高,其中0是最低优先级,3是最高优先级。在RapidIO中,数据包优先级用于多个目的,包括事务排序和死锁预防。关键请求流则由CRF位携带。它允许一个流相对于同优先级的其他流被指定为关键流或优先流。强烈建议支持关键请求流。
当事务被封装成数据包进行传输时,事务的请求流指示符(flowID)会被映射到数据包的prio字段(以及可选的CRF位)。如果CRF位不被支持,那么事务请求流A和B将分别映射到优先级0和1,而事务请求流C及以上的则映射到优先级2,具体映射方式如下表所示。
如果CRF位得到支持,事务请求流的映射方式将按照表6-7中规定的类似方式进行。不支持CRF位的端点会将其视为保留位,在发送时将其设置为逻辑0,并在接收时忽略它.
在CRF位得到支持的情况下,事务请求流的映射允许RapidIO传输结构维持事务请求流的顺序,而无需结构了解事务类型或它们之间的依赖关系。这使得RapidIO结构能够随着事务类型和功能的演变而保持向前兼容性。结构可以通过简单地保持具有相同优先级和关键请求流的数据包在每个路径上的顺序来维持事务请求流的顺序,并且可以通过不允许低优先级数据包通过具有相同路径的高优先级数据包来维持事务请求流的优先级。在拥塞或其他限制的情况下,设置了CRF位的数据包指示具有该优先级的流可以在没有设置CRF位的情况下通过具有相同优先级的流。
对于VC0,标识为A-F(或更高)的流与0A-0F等是等价的。VCs 1-8(A及更高)的流被标识为1A、2A、...、8A。在流1A-8A中的所有流量都是不需要响应的事务请求。需要响应的事务请求及其相应的响应必须使用VC0和相应的优先级.