才 华 刘广文 陈广秋 姜 俊
(长春理工大学电子信息工程学院,吉林 长春 130022)
技术能力和实际应用的复杂性使得基于总线的片上系统(SoC,system-on-chip)向片上网络(NoC,network-on-chip)发展。NoC提供了一个整体的多层次的通信平台,允许网络节点之间的通信传输。
片上网络有能力解决总线在带宽,时钟频率,功率的可扩展性方面的问题。然而由于网络中通道和缓冲资源的共享,数据包的传输带来了不可预测的情况。为了解决片上网络数据包传输过程中带来的不确定性,提出了多种资源预约和基于优先级的调度机制,提供延迟和带宽的保证。?thereal[1]和Nostrum[2]采用资源预留策略以提供有保证的服务。具体来说,在网络同步运行中都确定有时分多路复用(TDM,time-division-multiplexing)的虚拟电路(VC,virtual circuit)。VC上的数据包是通过VC路线节点在通道中连续传输的。
总的来说,一个VC可能包括多个源节点和目标节点(多向性的)。配置VCs包含以下方面。
(1)路径选择:设计网络路径的多样性
(2)时隙分配:交换器为每个VC分配一个间隙
本文提出基于LN时隙分配方法的多级时隙控制分配方法,根据网络不同情况下的数据传输路径设置提供更好的选择。
图1.系统运行示意图
片上TDM VC假设网络是分组交换和有时间时隙的,VC数据包在每一个时间间隙前进一跳。如图1所示,VC v通过交换机SW1,SW2和SW3{b1→b2→b3}。在v上,每六个间隙网络中会注入两个数据包(我们说窗口的大小为6)。最开始,通过数据包流在第一个被占用的交换机SW1的缓冲区b1间隙是0和2。之后,重复这个模式,b1的间隙6和8,12和14,等等被占用。在第二个交换机SW2,数据包占用b2的间隙1和3,7和9,13和15,等等。在交换机SW3,它们占用了b3的间隙2和4,8和10,14和16,等等。
这是VC的配置模式,为VC数据包确定确切的准许进入形式,并在节点中设定路径选择表。在这种情况下,VC数据包在头文件中不需要携带路由信息。可以节省每一个VC数据包的通讯能量消耗。
LN是一个相关函数的集合(时间间隙,缓冲区),其与一个给定的VC(虚拟通道)上的缓冲区是相对应的。即VC中一组缓冲区逻辑网络的间隙集合作为一个LN。
多节点VC配置的步骤,包括两个顺序阶段:路径选择和间隙分配及间隙映射。在第一个阶段,VC的路径是确定的。在第二个阶段,基于VC路径,分配给VC的间隙取决于是否可以避免相互干扰以及带宽是否可以满足。我们在图2中利用一对封闭式 VCs(v1,v2)来描述它们。
(1)间隙分配:由于在一个共享缓冲区中可能发生冲突,我们有规律地将共享缓冲区的间隙分隔成间隙组。在图2中,b0是v1和v2唯一的共享缓冲区,v1∩v2={b0}。我们把b0的间隙分隔成两组,一个偶数集s20(b0)关于t=2k和一个奇数集s21(b0)关于t=2k+1。
(2)间隙映射:分段的间隙组可以规律和准备地被映射到VC上其他缓冲区的间隙组。例如,在缓冲区b0间隙t的一个v1数据包,即(t,b0),将连续占据间隙t+1在b1(状态(t+1,b1)),间隙 t+2在 b2(状态(t+2,b2)),间隙 t+3 在 b3(状态(t+3,b3))。在v1和v2分别映射完间隙组s20(b0)和s21(b0)后,我们得到两个状态集{s20(b0),s21(b1),s20(b2)s21(b3)}以及{s21(b0),s21(b4)}。我们指在 VC中一组缓冲区逻辑网络的间隙集合作为一个LN。因此,LN是一个在VC相关缓冲区上由(时间间隙,缓冲区)相关联的组成。
总结来说,就是1)通过配置间隙细化路由表建立VC;2)分隔间隙并映射进LN;3)分配不同的LN到VC。这些步骤必须承诺保证无冲突和提供足够的带宽。
本文提出了基于LN时隙分配的多级控制VC设置。该方法根据网络中的实时情况在数据传输中设置更加准确的间隙配置,以避免网络中的数据传输拥堵情况,更好的利用网络资源,提升网络效率。
下面为基于LN时隙分配方法的多级控制VC设置。步骤如下:
(1)给定一个多节点VC网络。
(2)根据数据传输要求进行路径选择。
(3)对下一步节点发送访问命令,检查节点状态。
(4)假定下一节点有两个方向,判断X/Y方向节点拥挤情况。若为轻度拥挤,选择拥挤度较轻的路径。若为中度以及重度拥挤,比较X/Y方向的等待时间。若大于设定值,则选择等待时间短的路径。若小于设定值,则根据网络状况进行等待或回溯,或沿相对较轻方向传输。
(5)选定VC后,进行间隙映射,同时避免VC之间的冲突。
(6)若映射未完成,则返回路径选择重新开始配置。
(7)若映射完成,则VC设置完成。
VC的设置是一个基本问题,我们采用[9]中给出的方法予以解决。
算法 VC配置算法的伪代码
输入:I:所有可能设置的VC队列
输出:O:VC设置可以采用的队列(s:一个可用vc设置)
初始状态,cur_level=0;O.size=m;O 和 s初始为空;即暂时没有可用VC设置;利用优先标准对O进行分类排序;
在构建VC时,设置与VC相对应的LN是关键的一步。如果VC到LN的设置对所有VC都能够成功执行,则返回1;否则返回0。
在NoC的应用设计中,关于TDM的服务保证和VC设置是一个普遍的问题。它的复杂性产生于网络路径的多样性和各种路径重叠的情景,以及网络资源利用情况的变化。研究结果表明,使用基于LN时隙分配方法的多级控制VC设置能够更好地适应网络中复杂情况,有效地利用网络资源,提升系统效率。
[1]K.Goossens,J.Dielissen,and A.R?adulescu,"The ?thereal network on chip:Concepts,architectures,and im-plementations,"IEEE Des.Test Comput.,vol.22,no.5,pp.21-31,Sep.-Oct.2005.
[2]M.Millberg,E.Nilsson,R.Thid,and A.Jantsch,"Guaranteed bandwidth using looped containers in temporally disjoint networks within the Nostrum network on chip,"in Proc.Design Automation and Test in Europe Conf.,Feb.2004.