SCI/RT 协议仲裁传输的一种仲裁方法

2010-02-21 05:34崔剑刘兴春李铮
兵工学报 2010年12期
关键词:环路队列票据

崔剑,刘兴春,李铮

(1.北京航空航天大学 工程训练中心,北京100191;2.北京航空航天大学 电子信息工程学院,北京100191)

0 引言

可扩展一致性接口的实时性扩展(SCI/RT)协议是一种高性能的实时互联总线,具有实时性强,效率高,传输速度快和延迟低等优点。SCI/RT 总线可以应用于要求高实时性和低延迟、高传输速率的航空航天器机载总线、工业控制和地面战车互联总线[1-3]。

SCI/RT 总线的仲裁传输算法对于总线传输性能具有重要作用。SCI/RT TRAIN 协议采用节点仲裁的方式对节点输入队列占用的请求进行判断,这使得位于管理者后面的节点拒绝请求票据后,该票据占用的空间无法被利用,造成传输空间的浪费,特别是环路处于重负载情况的时候问题更严重,因此传输效率不高。本文在TRAIN 协议的基础上,对环路流量,延迟和热点节点位置之间的关系进行了研究,提出了广播输入队列信息的仲裁传输新方法。

1 SCI/RT TRAIN 协议的问题

1.1 TRAIN 协议环路传输方式

TRAIN 协议节点发送数据包之前,需要先请求环路使用权,得到使用权后,才将数据包真正放入环路。因此,一次数据传输分为仲裁(arbitration)和传送(transmission)2 个过程。

在仲裁过程,环路管理者(ticketmaster)产生仲裁列车(request train),仲裁列车绕环一周,收集节点的发送请求,有发送请求的节点向列车中插入票据(ticket).仲裁列车通过节点时,节点根据列车可承载最大数据量(车头的size.size 域值),删除超出列车允许长度的票据。票据在列车中按优先级由高到低顺序排列,而删除操作于列车尾部进行,因此列车删除的票据都是最低优先级的。仲裁列车回到管理者时,收集了环路所有节点发送请求。

随后,管理者将仲裁列车转变为传送列车(grant train).列车通过节点时,节点检查列车中的票据,若票据为本节点产生,则将票据替换为数据包(send),send 包到达目的节点时被取走,目的节点生成回应包(echo)通知源节点完成一次数据传输。

目的节点将收到的send 包置于输入队列(ififo),由于输入队列的长度和处理速度有限,当请求过多,目的节点无法全部处理,则由目的节点仲裁。只有目的节点输入队列有剩余空间,且票据优先级不小于目的节点队列中数据包的最高优先级时,票据才被许可,否则被拒绝[4~5]。

图1 环路传输示意图Fig.1 The ringlet transmission

1.2 目标节点输入队列仲裁带来的问题

TRAIN 协议的仲裁传输算法具有一定的限制,如图1所示。

设该环路具有n 个节点,为node 0 至node n -1,数据按照顺时针方向传输。列车在车头size 域给出环路可容纳的最大传输量为160 bit(size 域值20乘以8).仲裁列车阶段节点node 0,node 1,node n-1 共生成3 张票据,如图1(a)所示。仲裁列车通过node 0 时,ticket 0 插入列车中,仲裁列车通过node 1 时,ticket 1 插入列车中,如图1(b)所示。随后,仲裁列车通过node n-1 时,由于列车已达到饱和,ticket 2 不能插入列车,当列车回到管理者,如图1(c)所示,仲裁列车变为传送列车,所有节点不可插入新的票据。当列车到达node 1,如图1(d),假定此时node 1 的输入队列已经装满,无法处理新的发送请求,所以ticket 1 被node 1 标记为拒绝。如上可见,虽然本次列车可以容纳size 为20 的数据量,由于ticket 1 被拒绝,实际本次列车只传输了size 为10 的数据量。可见,对节点向上游节点传输的请求票据,由于到达目的节点需要通过管理者,因此一旦请求票据被拒绝,则该请求占用的传输空间被浪费。

对于实时性系统,优先级倒置是另一个非常重要的问题。

当高优先级的任务等待低优先级的任务时,就产生优先级的倒置[6]。

考虑图2所示的环路。

图2 优先级倒置问题的产生Fig.2 Priority inversion

节点node 0 和节点node n-1 各有一个数据请求,分别生成票据ticket 1 和票据ticket 2.由于node 0 位于目的节点node 1 的上游,node n-1 位于目的节点node 1 的下游。按照环路的传输路径,ticket 1先到达node 1,如果node 1 的输入队列存在剩余空间,则ticekt 1 被接受。随后,ticket 2 将通过管理者之后,到达node 1,如果此时node 1 的输入队列已经饱和,则ticket 2 将被拒绝。Ticket 1 的优先级为10,ticket 2 的优先级为11,按照实时性系统的规则,node 1 应该接受ticket 2,拒绝ticket 1,而不是相反。由分析可知,凡是目的节点上游节点票据的优先级比下游节点票据的优先级低时,由于上游节点票据先到达目的节点,因此当目的节点的输入队列接近饱和时,有可能造成低优先级的上游节点票据阻碍高优先级下游节点票据的传输,造成优先级倒置。

2 基于广播输入队列信息的仲裁传输算法

2.1 加入目的节点输入队列信息

根据上述分析可知,如果环路发送节点可以得到目的节点输入队列的信息,从而减少无效数据包的传送量,则可进一步提高TRAIN 协议的传输效率。为此,引入广播输入队列信息的状态信息数据包,命名为info 包,图3显示info 包的数据结构。

图中,sourceID 为产生INFO 包节点的地址,长度为16 bit.Pri 为此节点输入队列存在数据包的最高优先级,长度为8 bit.Len 为输入队列当前剩余空间长度,数据位长度为8 bit.

图3 info 包的数据结构Fig.3 The structure of the info

info 包由节点根据需要产生,当节点的输入队列占用率达到预定上限时,节点产生info 数据包通知其他节点,缓解发向本节点的流量,使输入队列尽快清空。当节点输入队列占用率低于预定上限时,节点不再产生info 数据包。info 位于传送列车尾部,随列车通过环路时,每个节点根据info 包记录,更新状态信息,当info 包重新回到源节点,源节点负责销毁info 包。图4显示info 包通过节点的处理过程。

图4 节点对info 包的处理Fig.4 The info package processing

增加info 包机制后,每个节点维护一张状态数据表,记录环路节点的输入队列优先级和剩余空间状态。如果在当次传送列车未收到某一节点的info包,则清空对应节点状态信息。此后,节点在下一个仲裁列车阶段监视环路中通过的车票,根据车票的目的节点地址和车票请求传输长度,更新状态数据表,如果某个车票不能为目的节点容纳,则节点负责销毁该车票,转换为idle.每个节点记录的都是上次传送列车时环路各节点的状态,如果在仲裁列车阶段指向某一目的节点的票据已经插满,则随后的节点再插入高优先级票据时会相应替换低优先级的票据。

若节点有请求票据需要发送,则在发送前,需要先检查状态数据表,如果目的节点的状态信息为空,则直接向目的节点发送请求,和TRAIN 协议标准完全相同;如果目的节点的状态数据表不为空,则按照如下规则插入:

待插入的请求票据优先级低于目的节点输入队列优先级,则此次插入直接放弃,不送入环路中;

待插入的请求票据优先级不低于目的节点输入队列优先级,但目的节点输入队列的剩余空间不够插入此票据,则此次插入直接放弃,不送入环路中;

待插入的请求票据优先级不低于目的节点的输入队列优先级,且目的节点输入队列的剩余空间能够容纳此票据,则执行插入操作,将票据送入环路,并更新记录的状态信息。

2.2 加入info 包对环路传输的影响

环路加入info 包会对传输产生一定的影响,TRAIN 协议环路中最小传输单位为符号(symbol),一个符号长16 bit,所有数据包都由符号组成,表1显示了TRAIN 协议中主要数据包的长度。

表1 TRAIN 协议主要数据包长度Tab.1 The length of packages

可以看出,info 包在数据包类型中长度比较小,仅比idle 包多一个符号长度。由于环路中长度为40 符号的send 包较常用,且一般生成info 包的节点不多,其引入的符号量不超过(2 ×节点数)个符号,故引入info 包对环路传输的影响不大。

引入info 包,节点发送数据包时参考目的节点输入队列状态,对于一定被拒绝的请求,节点不发送到环路,节省环路传输空间。

仍考虑图1所示的情况,由于每个节点都知道node 1 的输入队列情况,则多余的票据ticket 1 根本就不会插入到环路中,ticket 2 亦然,向其他节点发送的请求票据可以插入环路,利用空出来的传输空间。从后面的仿真结果可以看出,此方法提高了环路的流量。

通过info 包,环路的每个节点都可知目的节点输入队列剩余空间的大小,因此节点在向仲裁列车插入请求票据时,不会多产生发向目的节点的请求票据,保证目的节点输入队列不会被阻塞,利于输入队列尽快清空。在系统环路比较重时,可以使数据包尽量一次传输成功,减少重新传输,从而减小传输延时。

仍考虑如图2所示的环路,当目的节点输入队列达到预设上限时,目的节点通过广播信息通知其他节点,node 0 和node n -1 得到广播信息。此时对node 1 输入队列使用权的仲裁不再由node 1 的输入队列负责,而是通过环路进行,如图5所示。

图5 环路仲裁目的节点IFIFO 使用权Fig.5 Ringlet arbitration of IFIFO

由图5可以看出,虽然ticket 1 仍然是目的节点node 1 的上游节点所发,ticket 2 是node 1 的下游节点所发,由于node 1 的输入队列仲裁权出让给环路,由列车绕环时环路所有节点参与仲裁,所以经过一圈环路运行之后,只有高优先级的ticket 2 得到许可权,ticket 1 由于优先级较低,没有得到node 1 的使用权。

可见,通过将拥挤节点输入队列的仲裁权出让给环路进行,可以解决由于上游节点优先级低,下游节点优先级高造成的优先级倒置问题,提高实时传输能力。

由分析可知,当节点均向上游节点发送数据时,可以充分利用改进算法的好处。

3 仿真对比

3.1 仿真参数

采用OPNET 软件及一个6 节点的TRAIN 环路进行仿真[7]。6 个节点均具有管理者功能,环路采用周期轮换管理者的方式平衡各节点的流量,环路采用的仿真参数如表2所示。

表2 仿真主要参数Tab.2 The parameters of simulation

3.2 仿真结果

节点发送数据包优先级为随机均匀分布,地址发送模式如表3所示。结果如图6所示。

结果显示,在优先级和目的地址均为随机的情况下,如图6(a)和图6(b)所示,当环路负载比较小的时候,由于环路大部分时间空闲,基本不存在仲裁,故2 种算法得到的延迟和流量基本相同,随着环路负载的增加,2 种算法的延迟和流量逐渐产生差别,当环路处于重负载情况时,由于本文提出算法具有比较高的效率,因此延迟比标准协议算法要小,流量较标准协议算法大。仿真结果显示:标准协议得到延迟最大为6.38 μs,本文所述算法为4.02 μs,减少了37%;同时,标准协议得到总流量为417.45 MB/s,本文所述算法得到流量为540.38 MB/s,流量提高了29.43%.

表3 仿真目的地址发送模式Tab.3 The target addressing mode

若环路所有节点都向一个节点发送,产生热点节点,虽然环路负载不重,由于目的节点输入队列处理速度和长度有限,需要对输入的请求进行仲裁,结果如图6(c)和图6(d)显示。环路的流量主要受限于节点n0的输入队列处理速度,因此2 种算法得到的流量基本相同,但是本文提出的算法减少无用请求的传输,且通过环路仲裁目的节点的输入队列使用权,因此数据重传概率比较小,得到了比较小的延迟,结果显示,标准算法得到的最大延迟为64.29 μs,本文提出算法得到的最大延迟为0.93 μs,延迟减小98.55%,改进效果明显。

对于环路部分节点向热点节点发送,另部分节点随机发送的情况,本文设定的仿真场景为n0至n2向上游节点n0发送,因此能够充分利用本文提出算法的优势,在小环路负载时,二者效果相同,当环路达到重载情况时,本文提出的算法延迟较标准协议小,流量较标准协议大。结果显示,二者延迟最大差距处,标准协议延迟为35.93 μs,本文提出算法的延迟为5.3 μs,延迟减小85.25%;标准协议得到的流量为322.64 MB/s,本文提出算法得到流量为447.104 MB/s,流量提高38.58%.

4 结束语

本文在分析SCI/RT TRAIN 协议的基础上,得出了系统处于重负载时,标准协议仲裁算法存在浪费传输空间的问题,且由于使用目的节点输入队列自主仲裁使用权,还带来优先级倒置,延迟增加等问题;本文提出了一种基于广播输入队列信息的新仲裁方法,通过广播目的节点输入队列信息,使环路其他节点根据需要插入请求票据,超过目的节点处理能力的票据根本不插入环路,从而减少了延迟,提高了环路的利用效率,提高了重负载时环路流量。同时,在目标节点输入队列处于接近饱和时,将目标节点输入队列的使用权仲裁交到环路,避免了由于上游节点优先级低于下游节点优先级带来的优先级倒置问题,提高了系统的实时传输能力。仿真结果显示,在环路处于轻负载时,本文提出的算法并没有带来明显的开销,在重负载情况,能够减小传输延迟,提高流量,而且在适当配置目的地址分布的情况下,还可以得到性能较大的改善。

由于每个节点需要保存环路所有节点输入队列的状态信息,因此对于环路规模很大的情况,对节点存储空间的需求会比较大。但是一般SCI/RT 环路都控制在较小的规模,因此本算法可以有比较广泛的应用。

图6 仿真结果对比Fig.6 Simulation results

References)

[1]JAST Avionics Lead.Joint advanced strike technology program avionics architecture definition appendices,version 1.0[EB/OL].(1994-08-09)[2009-10-02],http:∥ftp.jast.mil.

[2]崔剑,郑铮,李铮.SCI 协议分析[J].光通信技术,2005,(9):37 -40.CUI Jian,ZHENG Zheng,LI Zheng.SCI standard analysis[J].Optical Communication Technology,2005(9):37-40.(in Chinese)

[3]余强,力陆达,王明芬.SCI 数据通信技术的研究和实现[J].计算机技术与发展,2007,(11):190 -192.YU Qiang-qi,LU Da,WANG Ming-fen.Research and implementation on SCI data transmission[J].Computer Technology and Development,2007,(11):190 -192.(in Chinese)

[4]IEEE.IEEE1596—1992.IEEE standard for scalable coherent interface[S].Piscataway,NJ:IEEE Service Center,1993:2 -13.

[5]IEEE.IEEE P1596.6 Draft:TRAIN protocol for SCI/RT draft[S].Piscataway,NJ:IEEE Service Center,1996:5 -10.

[6]IEEE.IEEE P1596.6 Draft:SCI/RT-scalable coherent interface for real time applications draft[S].Piscataway,NJ:IEEE Service Center,1992:17 -19.

[7]刘兴春,刘阳,崔剑,等.基于Opnet 的航空电子SCI 链路节点建模[J].光通信技术,2007,(5):30 -34.LIU Xing-chun,LIU Yang,CUI Jian,et al.An Opnet-based simulation model of SCI-node linc[J].Optical Communication Technology,2007,(5):30 -34.(in Chinese)

猜你喜欢
环路队列票据
外差式光锁相环延时对环路性能影响
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
选取环路切换策略的高动态载波跟踪算法研究*
2016年11月底中短期票据与央票收益率点差图
2016年10月底中短期票据与央票收益率点差图
2016年9月底中短期票据与央票收益率点差图
2015年8月底中短期票据与央票收益率点差图