CN102415059A - 总线控制装置 - Google Patents
总线控制装置 Download PDFInfo
- Publication number
- CN102415059A CN102415059A CN2010800189780A CN201080018978A CN102415059A CN 102415059 A CN102415059 A CN 102415059A CN 2010800189780 A CN2010800189780 A CN 2010800189780A CN 201080018978 A CN201080018978 A CN 201080018978A CN 102415059 A CN102415059 A CN 102415059A
- Authority
- CN
- China
- Prior art keywords
- path
- bus
- data
- output
- control device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40019—Details regarding a bus master
Abstract
本发明提供一种总线控制装置,其设置于总线主控器与被网络化的通信总线之间,且控制流经通信总线的数据包的发送路径。总线控制装置包括:数据接收部,其从存在于可利用的多条发送路径上的多个其他总线控制装置接收与输出状况相关的信息;路径负荷检测部,其基于与输出状况相关的信息,计算表示各发送路径的发送流量的偏差的均一化指标;路径决定部,其基于均一化指标,决定调整了发送流量的多条发送路径;数据包构成部,其生成数据包;数据输出部,其从任一输出端口输出数据包;标头分析部,其决定与基于数据包的发送目的地的信息而选择出的发送路径连接的输出端口;和数据输出部,其从该输出端口输出数据包。由此,能够消除链路间的数据流量的偏差。
Description
技术领域
本发明涉及在具备被网络化的通信总线的半导体芯片中进行通信总线的控制的装置、方法及程序。
背景技术
近年来,在利用SoC(System on Chip)的组装设备领域或通用处理器领域中,对半导体芯片的高功能化的要求正在提高。伴随着半导体芯片的高功能化,与芯片上的通信总线连接的总线主控器(bus master)数增加,控制流经总线上的传输数据的信息量变得复杂。
例如,近年来的移动电话终端能够进行电子邮件收发、网页浏览、被称为“单频段(One-Seg(one segment broadcasting))”的地面数字视频广播的接收等,多功能化正在发展中。进行与各功能对应的一部分或全部处理的专用IC起到总线主控器的作用,因此需要适当地控制连接这些专用IC的通信总线上的数据的信息量。再有,在微型处理器(MPU)芯片中,多核化也正在发展。为了使起到总线主控器的作用的各处理器核同步且协调,需要适当地控制连接各处理器核的通信总线上的数据的信息量。
作为与信息量控制相关的现有的设计方法,采用总线控制方式,即:利用宽频带的集中型总线来相互连接各总线主控器,通过切换交叉开关(crossbar switch),从而向数据传输对象的总线主控器对分配总线的利用权。然而,在该总线控制方式中,总线布线的拉线引起的布线延迟的增加或交叉开关的面积的增加、功耗的增加等成为问题。再有,在集中型的总线设计中,也会存在以下问题:平均的总线利用效率没有提高,而总线的工作频率增大,总线部分的功耗增加。这是因为总线的工作频率被设计成保证各总线主控器要求的最大数据传输量。
为了解决集中型总线的问题点,被称为NoC(Network on Chip)的通信总线的网络化正在发展之中。
例如,图1(a)及(b)表示NoC总线的一部分结构。图1(a)是表示硬件连接结构例的图,图1(b)是其示意图。根据图1(a)及(b)可知:设置在芯片10上的总线主控器1a~1c分别经由总线控制装置(R)2而连接到总线3。其中,以下的本申请附图的NoC总线都用图1(b)所示的示意图来记载。
图2表示以二维网眼型结合了总线主控器的NoC总线的结构例。按照微型处理器或DSP、存储器、输入输出电路等每个总线主控器来配置进行数据传输路径的控制的总线控制装置R,以短布线连接(链接)总线控制装置R之间。
在这种结构中,从发送源的总线主控器向接收目的地的总线主控器进行数据传输用的通信路径存在有多个。例如,图3表示从发送源到发送目的地为止的3条路径(1)~(3)。
再有,在提供同等功能的总线主控器存在有多个的情况下,接收目的地及到达接收目的地的路径存在有多个。例如,图4表示从1个发送源到3个发送目的地(1)~(3)为止的各路径。
根据总线的负荷状况,从多个选择候补路径中选择最佳的路径,由此能够降低芯片整体的数据传输延迟时间(等待时间(latency))或总线的工作频率。因此,需要可以最大限度地引出NoC总线的性能的多路径控制技术。
专利文献1公开了在相互连接多个总线主控器的总线上根据总线的状态来选择多条数据传输路径的方法。根据专利文献1的技术,以帧为单位从发送源的总线主控器向接收目的地的总线主控器传输作为传输对象的数据。在接收目的地中正常接收到帧的情况下,返回确认数据,在未正常接收的情况下不返回确认数据。发送源的总线主控器根据没有返回确认数据的情况,检测帧传输的缺陷,由此选择其他发送路径并重新发送帧。由此,能够继续进行通信。在所接收到的帧的标头中检测到错误的情况下,因为在接收目的地的总线主控器中废弃帧,所以发送源的总线主控器不会接收到确认数据。另外,在正在利用的数据传输路径中,在帧的传输延迟增大而使帧无法在规定时间内抵达接收目的地的情况下,发送源的总线主控器也无法在规定时间内接收确认数据。此时,也会发生路径的切换。根据数据传输路径的状态而将路径切换为动态,由此能够利用传输延迟或错误少的路径来进行通信。
(现有技术文献)
专利文献1:日本专利第3816531号说明书
发明内容
(发明想要解决的课题)
在采用现有技术中公知的多路径控制技术的情况下,发送源的总线主控器将传输延迟时间或错误发生状况等作为评价指标,来选择自身的数据传输状态最佳的利己性路径。
结果,有时在流经连接总线主控器间的总线(链路)之间的传输数据的流量中产生偏差。其理由是:想要通过使存在于NoC中的多个总线主控器进行竞争来选择最佳路径,从而产生数据传输路径及链路资源的争夺,来自多个发送源的数据传输集中在若干个链路中。
因为该偏差而产生以下三个课题。
第一课题是:在流量大的链路中,链路两端的总线控制装置的工作负荷增大,数据传输的等待时间(latency)增加。总线主控器间的数据传输的等待时间限制了总线主控器的工作速度,例如在为处理器与存储器间的数据传输的情况下,会牵连到与存储器存取的等待时间相对应的处理器的负荷周期(weight cycle)增大而引起的处理性能降低。
第二课题是:产生根据流量较大的链路而将总线的工作频率设计得更高的需要。随着总线的工作频率变为高速,布线延迟或串扰的控制变得困难,设计作业量或验证作业量增大。
第三课题是:总线的工作频率越高,链路的功耗就越增加。若设切换速率为α、电路的电容为C、电源电压为V、工作频率为f,则构成链路的晶体管的功耗P可以用式1来表示。
[式1]
P=α·C·V2·f
再有,通过抑制工作频率,从而也能够以式2所示的关系来降低电源电压。
[式2]
式2中的η是晶体管的工作阈值电压与电源电压之比,γ是依赖于流程规则的常数。例如,在设γ=2的情况下,工作频率的降低以三次方的数量级有助于功耗,因此流量的偏差会导致用于收纳较高传输速率的链路的功耗变得非常大。
本发明是为了解决上述课题而完成,其目的在于:提供一种能够消除链路间的数据流量的偏差的总线控制装置。
(用于解决课题的手段)
本发明的总线控制装置,其设置于总线主控器与被网络化的通信总线之间,且控制流经所述通信总线的数据包的发送路径,该总线控制装置包括:数据接收部,其从存在于可利用的多条发送路径上的多个其他总线控制装置接收与输出状况相关的信息;路径负荷检测部,其基于与所述输出状况相关的信息,计算表示各发送路径的发送流量的偏差的均一化指标;路径决定部,其基于所述均一化指标,决定调整了所述发送流量的多条发送路径;数据包构成部,其基于从所述总线主控器接收的数据来生成数据包;数据输出部,其从与各不相同的通信总线连接的多个输出端口中的任一个输出所述数据包;和标头分析部,其从所述多个输出端口之中,决定与基于所述数据包的发送目的地的信息而选择出的发送路径的一条连接的输出端口。
所述总线控制装置也可以还包括输出监视部,其根据来自所述多个其他总线控制装置的请求,通知与所述数据输出部的数据输出状况相关的信息。
所述路径负荷检测部也可以在至少包含所输出的数据流的每个优先度的传输频度的平均值的、来自所述输出监视部的输出状况之中,以所述平均值为基础来计算均一化指标。
所述路径负荷检测部也可以在至少包含所输出的数据流的每个优先度的传输频度的平均值及最大值的、来自所述输出监视部的输出状况之中,以所述平均值及最大值为基础来计算均一化指标。
所述路径负荷检测部也可以包括对均一化指标所包含的统计复用效应引起的评价值的可靠度进行规定的参数。
所述路径负荷检测部也可以检测所述数据包的传输状况的劣化,由此调整规定所述可靠度的参数,并在通过所述参数的调整没有改善传输状况的情况下,概率性地调整参数。
所述输出监视部也可以将以预先确定的定时发行的与所述输出状况相关的信息的请求的接收作为触发,通知所述信息。
所述路径负荷检测部也可以事先向输出监视部传递输出状况通知的发送条件;预先向所述输出监视部通知发送与所述输出状况相关的信息的请求的条件,在所述发送条件成立的情况下,向所述输出监视部通知所述信息。
所述路径负荷检测部也可以在与所述输出状况相关的信息上,追加与所述各发送路径的数据流的优先度相应的权重,从而计算与所述各发送路径的发送流量相关的评价值,计算表示所述各发送路径的发送流量的偏差的均一化指标。
所述路径负荷检测部也可以利用与所述各发送路径的发送流量相关的评价值来计算统计值,并利用所述统计值来判断所述各发送路径间的关系是否均匀。
所述路径负荷检测部也可以基于与所述输出状况相关的信息以及与选择对象的发送路径的数据特性相关的信息,计算表示各发送路径的发送流量的偏差的均一化指标。
本发明的仿真程序,是总线控制装置用的仿真程序,所述总线控制装置设置于总线主控器与被网络化的通信总线之间,且控制流经所述通信总线的数据包的发送路径,其中,所述仿真程序使计算机执行以下步骤:从所述仿真程序上的对象化的多个其他总线控制装置的类、即存在于可利用的多条发送路径上的多个其他总线控制装置的类接收与输出状况相关的信息的步骤;基于与所述输出状况相关的信息来计算表示各发送路径的发送流量的偏差的均一化指标的步骤;基于所述均一化指标来决定调整了所述发送流量的多条发送路径的步骤;基于从作为所述总线主控器而被安装的类接收到的数据来生成数据包的步骤;从与各不相同的通信总线连接的多个输出端口中的任一个输出所述数据包的步骤;从所述多个输出端口之中,决定与基于所述数据包的发送目的地的信息而选择出的发送路径的一条连接的输出端口的步骤;和从所述决定的输出端口输出所述数据包的步骤。
(发明效果)
根据本发明,总线控制装置针对可利用的多条发送路径上的其他总线控制装置,进行输出状况的监视,基于作为各发送路径间的发送流量的偏差的均一化指标,来切换数据的发送路径。由此,因为可以自动抑制构成NoC总线的链路间的流量的偏差,所以可以使数据传输负荷在总线整体中均匀,可以抑制负荷向特定链路集中而引起的通信延迟时间、等待时间的增加。
再有,因为可以降低链路的工作频率,所以使总线设计变得容易,能够削减数据传输时的总线的功耗。还有,通过与链路的工作频率的动态控制技术相结合,从而能够更有效地削减总线的功耗。
另外,通过在考虑了统计复用效应的基础上使对于提供同等功能的总线主控器的路径负荷均匀,从而也可以获得总线主控器的负荷分散效果。因此,通过在分散型的存储器结构中适用本发明,从而可以在确保了针对存储器存取的容许等待时间的可靠性的基础上,还能回避因存取集中引起的瓶颈(bottleneck)。
附图说明
图1(a)是表示硬件连接结构例的图,(b)是其示意图。
图2是表示以二维网眼型结合了总线主控器的NoC总线的结构例的图。
图3是表示从发送源到接收目的地的3条路径(1)~(3)的图。
图4是表示从1个发送源到3个接收目的地(1)~(3)为止的各路径的图。
图5是表示采用NoC总线构成装载于移动电话终端中的系统半导体的例子的图。
图6(a)是表示单频段TV视听的应用程序中的数据传输路径的图,(b)是表示移动电话用完整浏览器的网络通信用线程中的数据传输路径的图,(c)是表示网络游戏的客户端程序与远程服务器进行通信时的数据传输路径的图。
图7是表示从发送源M21向接收目的地M24进行数据传输时定义可利用的3条选择候补路径的图。
图8是表示在数据传输处理B、C、D同时发生的状态下总线主控器M21-M24间的每条选择候补路径的数据传输量的图。
图9是表示运动图像再生时的数据传输路径的图。
图10是表示在芯片上同时发生多个数据传输处理的状态的图。
图11是表示针对图8而新追加了数据传输A的状态的图。
图12是表示实施方式1的数据传输量的调整结果的图。
图13是表示用于说明消除链路间的路径流量的偏差并进行均一化的动作详细内容的部分路径图的图。
图14是表示本发明实施方式涉及的总线控制装置2的结构的图。
图15是表示数据包的结构例的图。
图16是表示在输出信息通知数据包的有效载荷中描述的信息的例子的图。
图17是表示总线控制装置R21收集一直到总线主控器M24为止的路径(2)上的输出信息时的协议的例子的图。
图18是表示路径负荷检测部101的以上处理流程的图。
图19是表示总线控制装置R21的路径决定部102所管理的路径表的例子的图。
图20是在分散型存储器架构中应用了本发明的结构例的图。
图21是表示输出信息的例子的图。
图22是表示用于收集输出信息的协议的例子的图。
图23是表示采用NoC模拟器进行实施方式3的总线控制装置的性能评价的结果的图。
图24是表示在式29中将ηi设为根据在闭区间[-0.05,+0.05]的范围内变动的一致分布的随机噪声时m1及m2的时间变化的图。
图25是表示用于仿真中的NoC结构的图。
图26是表示存储器模块侧的吞吐量与等待时间之间的关系的图。
图27是表示存储器模块侧的吞吐量与等待时间之间的关系的图。
具体实施方式
以下,参照附图对本发明的总线控制装置的实施方式进行说明。
(实施方式1)
在具体说明本实施方式涉及的总线控制装置之前,先对被称为NoC(Network on Chip)的通信总线、该通信总线中可利用的发送路径以及各发送路径中的数据传输量进行说明。一并说明本实施方式涉及的总线控制装置的动作原理。
图5是利用NoC总线来构成装载在移动电话终端中的系统半导体的结构例。附图的记载形式以图1(b)为基准。其中,在图中虽然各总线控制装置R1一对一地连接了总线主控器,但也可以混有未连接总线主控器而仅进行中继处理的总线控制装置。
在总线控制装置R上连接有总线主控器的情况下,虽然向各总线主控器赋予唯一的地址,但在未连接总线主控器的情况下,只要对总线控制装置赋予虚拟的唯一的地址即可。在本说明书中,在任何情况下都表现为总线主控器地址。
认为移动电话终端是除了原本功能的声音通话外,还要求电子邮件或网页浏览、单频段TV的视听、利用了网络的游戏等丰富的功能的典型例。图6(a)表示单频段TV视听的应用程序中的数据传输路径。以箭头所示的路径进行将总线主控器M11作为发送源、将总线主控器M14作为接收目的地的数据传输处理B。再有,图6(b)表示移动电话用完整浏览器的网络通信用线程中的数据传输路径。表示以箭头所示的路径进行将总线主控器M21作为发送源、总线主控器M24作为接收目的地的数据传输处理C。还有,图6(c)表示网络游戏的客户端程序与远程服务器进行通信时的数据传输路径。表示以箭头所示的路径进行将总线主控器M23作为发送源、将总线主控器M34作为接收目的地的数据传输处理D。
图6(a)、(b)及(c)中的数据传输处理B、C及D是由多线程型的OS或并列处理构成的硬件而同时并行执行的处理。
图7表示在从发送源M21向接收目的地M24进行数据传输的情况下定义可利用的3条选择候补路径。以下,将每条选择候补路径表现为路径(1)、路径(2)、路径(3)。
图8表示在数据传输处理B、C、D同时发生的状态下总线主控器M21-M24间的每条选择候补路径的数据传输量。路径的数据传输量也可以设为路径上的各链路的数据传输量的最大值。例如,在图6(c)所示的总线控制装置R33-R34间的链路的数据传输量比路径(3)上的其他各链路的数据传输量还大的情况下,路径(3)的数据传输量被定义为R33-R34间的链路的数据传输量。
例如,用户操作移动电话的画面上的完整浏览应用程序,进行对运动图像网站的访问,指示运动图像内容的再生。此时,启动运动图像再生用的线程。图9表示运动图像再生时的数据传输路径。如图9所示,以箭头所示的路径开始将总线主控器M12作为发送源、将总线主控器M23作为接收目的地的数据传输处理A。
目前,假设在存在图8的数据传输处理B、C及D的状况下还追加了上述的数据传输处理A。
图10表示在芯片上同时发生了多个数据传输处理的状态。而且,图11表示针对图8新追加了数据传输A的状态。根据图11可知:作为运动图像再生用线程的数据传输路径,也可以选择图8中数据传输量最少的路径(2)。
然而,如图10所示,在总线控制装置R22与R23之间的链路上,数据传输处理A及C进行竞争。在总线控制装置R22与R23之间的链路上,并列地进行数据传输处理A及C。由此,因为数据传输量增多,所以无法提高工作频率。结果,如图11所示,导致3条路径的数据传输量不均匀的状态。在链路的工作频率处于图11所示的虚线等级的情况下,路径(2)为高负荷状态,链路所消耗的能量也较大。
因此,在本实施方式中,按照使多条路径的数据传输量均匀的方式调整数据传输量。例如,图12表示本实施方式涉及的数据传输量的调整结果。如图12所示,通过按照使3条路径的数据传输量成为均匀状态的方式进行控制,从而能够以更低的工作频率进行数据传输,还可以降低功耗。
图13表示用于说明消除链路间的路径流量的偏差并进行均一化的动作详细内容的部分路径图。为了简化说明,取出图10的一部分进行记载。系统半导体整体的结构如图10所示。图13中未描绘的布线或总线主控器、总线控制装置虽然被省略,但如图10所示,是存在的。
连接在发送源的总线主控器M21上的总线控制装置R21针对将作为数据传输对象的总线主控器M24设为接收目的地这样预先定义的3条路径(1)、路径(2)、路径(3),收集路径负荷状况。路径负荷状况是通过收集各总线控制装置所管理的输出信息来进行的。若各路径的输出信息的收集完成,则总线控制装置R21通过计算并比较各路径的流量评价值,从而评价路径的均匀性。在成为非均匀状态的情况下,总线控制装置R21通过将数据传输路径切换为均匀性最高的路径,从而可以防止在数据传输中产生偏差,控制为使传输数据分散在总线整体中。
以下参照图14,对进行该动作的总线控制装置的结构例进行说明。
图14表示本实施方式涉及的总线控制装置2的构成。
总线控制装置2具备:路径负荷检测部101、路径决定部102、数据包构成部103、数据接收部104、标头分析部105、数据输出部106和输出监视部107。以下,对各构成要素的功能进行说明。
(数据包构成部103)
被网络化的NoC总线上的数据传输是以数据包为单位进行的。数据包构成部103基于从连接于自身的总线主控器接收的数据来生成数据包。
图15表示数据包的结构例。数据包由标头、作为在总线主控器之间进行交换用的数据的实体的有效载荷、容纳检错码等的预告部分构成。其中,有效载荷或预告部分并不是必须的。
标头包含以下信息。其中,接收目的地的总线主控器的地址以外的内容并非是必须的。
·协议类别;
·分配给接收目的地的总线主控器与总线控制装置的地址;
·分配给发送源的总线主控器与总线控制装置的地址;
·分配给同一应用程序或同一目的的一系列数据包组的标签信息;
·唯一且按照发送时刻顺序分配给具有同一标签信息的数据包组的编号信息、即数据包序列号;
·数据包在传输时所允许的等待时间的等级、即优先度;
·附加信息;
·后续的有效载荷的有无或者表示有效载荷的长度的有效载荷长。
其中,协议类别是表示该数据包是总线主控器间的数据传输目标还是表示以路径负荷检测为目的的输出信息的请求、亦或是以路径负荷检测为目的的输出信息的通知的识别码。以下,将各种类别的数据包称为“传输数据数据包”、“输出信息请求数据包”以及“输出信息通知数据包”。
数据包构成部103根据从与自身连接的总线主控器发出的数据传输请求,依据图15所示的格式来构成传输数据数据包,并发送到标头分析部105。
再有,数据包构成部103根据从路径负荷检测部101发出的输出信息收集请求,依据图15所示的格式来构成输出信息请求数据包,并发送到标头分析部105。还有,数据包构成部103根据从输出监视部107发出的输出信息通知请求,依据图15所示的格式来构成输出信息通知数据包,并发送到标头分析部105。
(数据接收部104)
数据接收部104从自身连接的单个或多个输入链路中接收传输数据数据包或输出信息通知数据包,并发送到标头分析部105。在图14中,输入端口记载有E、W、S、N这四个。只要是1个以上,多少个都可以。各输入端口与不同的其他总线控制装置的输出端口连接。
(标头分析部105)
标头分析部105对照由数据接收部104传递来的数据包的协议类别,以确定数据包的类别。在本实施方式中,数据包可以为传输数据数据包、输出信息请求数据包或输出信息通知数据包中的任一个。
在数据包的类别为传输数据数据包的情况下,标头分析部105参照表示接收目的地的总线主控器的地址(接收目的地地址)。结果,是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105提取有效载荷部分并发送到总线主控器。再有,不是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105向路径决定部102提示接收目的地总线主控器的地址,以决定应输出数据包的输出端口。
接着,在数据包的类别为输出信息请求数据包的情况下,标头分析部105参照接收目的地地址。结果,是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105向输出监视部107申请输出信息的通知,并提示存储在数据包标头中的发送源的总线主控器地址(发送源地址)。再有,不是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105向路径决定部102提示接收目的地总线主控器的地址,接受应输出数据包的输出端口的通知。由此,标头分析部105选择输出端口。另外,在数据包构成部103从路径决定部102接受选择候补路径的列表及跳跃列表(hoplist)的情况下,也可以基于这些列表来选择应输出数据包的输出端口。
另一方面,即使在数据包的类别为输出信息通知数据包的情况下,标头分析部105也参照接收目的地总线主控器地址。结果,是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105向路径负荷检测部101发送在数据包标头中存储的发送源的总线主控器地址、和在有效载荷中存储的输出信息。另外,不是针对接收目的地为自身连接的总线主控器的数据包时,标头分析部105向路径决定部102提示接收目的地总线主控器的地址,将从路径决定部102通知的端口决定为应输出数据包的输出端口。
(数据输出部106)
数据输出部106将布线切换为由标头分析部105提示的输出端口,并将数据包作为信号而发送到总线上。再有,在因路径的拥塞而发生了数据传输数据包的发送延迟的情况下,数据输出部106通过使优先度低的数据传输数据包的传输延迟,从而从优先度高的数据传输数据包开始按顺序进行优先传输。
(输出监视部107)
输出监视部107为了响应从标头分析部105接受的输出信息通知申请,进行数据输出部106的各输出端口的状态监视。各输出端口中混有多个总线主控器发送的数据传输数据包并将这些数据传输数据包输出,可以将具备同一标签信息的数据传输数据包识别为同一数据流。
在此,“数据流”是指为了执行应用程序或任务等同一目的而从发送源总线主控器向接收目的地总线主控器发送的一系列数据传输数据包,每个数据流具有不同的容许等待时间。数据流所要求的容许等待时间的等级是由存储于数据包标头中的优先度来表示的。例如,在要求实时性的信号处理用途中是高优先度,而在基于背景处理的文件传输用途中是低优先度。
优先度对于每个应用程序而言可以是固定的,也可以按照构成应用程序的每个线程而变化,还可以按照程序员或编译器所决定的更细微的每个处理单位而变化。再有,各数据流的发送速率并不是固定的,通常根据数据流的不同而不同,而且即使是同一数据流,发送速率也通常会随时间而变动。
图16表示输出信息通知数据包的有效载荷所描述的信息的例子。输出监视部107在从其他总线控制装置受理了以自身为目的地的输出信息请求数据包时,针对对应的输出端口制作图16所示的信息,并通知给发送源的总线控制装置。输出信息由多个注册事项构成,各注册事项对应于数据包的优先度。按每个优先度等级报告发送该优先度的数据包所需的输出端口的总线循环数的时间平均值、最大值、最小值。
在本实施方式中,在同一优先度的多个数据流混在作为报告对象的输出端口上的情况下,虽然不对它们进行区别,但也可以按每个数据流更详细地进行监视。再有,所报告的输出端口的信息如本实施方式所述,既可以是基于输出监视部107所测量的实测值而计算出的值,也可以是基于由总线主控器作为附加信息而通知的数据流的规格的值。
图17表示总线控制装置R21收集一直到总线主控器M24为止的路径(2)上的输出信息时的协议的例子。图中的“MA”是赋予给总线主控器的NoC上的唯一的地址。也可以根据该地址来确定总线控制装置。
发送源的总线控制装置R21发送到路径(2)上的输出信息请求数据包通过路径(2)上的总线控制装置R22及R23,被送回到作为路径终点的总线控制装置R24。各总线控制装置R22、R23进行与向路径(2)上的下一级总线控制装置的链路连接的输出端口相关的输出信息通知数据包的返回,并且向路径(2)上的下一级总线控制装置送回输出信息请求数据包。路径终点的总线控制装置R24废弃输出信息请求数据包。
(路径负荷检测部101)
路径负荷检测部101利用与自身相连的总线主控器所发送的各数据流的接收目的地地址和发送候补路径的信息,向所有的发送候补路径发送输出信息请求数据包。发送输出信息请求数据包的定时可以每隔一定时间而定期进行。再有,路径负荷检测部101也可以采用陷阱方式,即:在输出信息请求数据包内预先存储输出信息通知数据包的返回条件,在路径上的各总线控制装置满足了返回条件之际,返回输出信息通知数据包。该情况下,返回条件也可以是数据传输数据包的占有循环数的变化量超过一定的阈值。
以下,说明在图13中从位于总线控制装置R21中的路径负荷检测部101向路径(1)、路径(2)、路径(3)定期地发行输出信息请求数据包的情况。各路径上的各总线控制装置依据图17所示的协议,向总线控制装置R21返回输出信息通知数据包。因此,总线控制装置R21可以按每个优先度δ从第i条路径上的第j个总线控制装置分别收集图16所示的输出信息ωij。
[式3]
将加权系数矩阵表示为P,将矩阵的要素表示为pij。P的各行对应于输出信息矢量ωij的各要素,各列对应于优先度δ。在本实施方式中,由于作为输出信息而收集时间平均值、最大值、最小值这三种信息,因此P的行数为3,因为将数据流分为高优先度、中优先度、低优先度这三种,所以P的列数为3。
[式4]
此时,路径i上的第j个链路的流量评价值βij由式5表示。e是所有要素为1的矢量。
[式5]
也可以将路径i的流量评价值βi定义为路径上的链路的流量评价值的最大值。
[式6]
通过调整加权系数矩阵的要素,从而路径负荷检测部101可以适当地评价各路径的流量。而且,路径负荷检测部101通过按照使流量评价值均匀的方式控制数据流的路径,从而可以在整个总线中使数据传输量均匀,可以获得降低总线的工作频率并削减功耗的效果。
只要能事先设计性地设想各总线主控器所发送的数据流的特性,则路径负荷检测部101就能基于该信息来决定加权系数矩阵的各系数值。例如,在已知只产生了各总线主控器在时间上未发生变动的数据流的情况下,因为各数据流的平均值、最大值、最小值一致,所以只要仅在流量评价中反映平均值即可。此时,可以如式7那样定义加权系数矩阵P。
[式7]
但是,因为通常各数据流具有在时间上变动的特性,所以每条路径的流量的比较并不是单纯的平均值比较。再有,也需要按照低优先度的数据流不妨碍高优先度的数据流的方式适当考虑数据流的优先度来评价流量。在式8中示出还考虑了数据流的时间变动的加权系数矩阵P的例子。
[式8]
采用了式8的加权系数矩阵时的路径i的流量评价值βi根据式5及式6而如式9所示。式中的δself是控制对象数据流所具备的优先度。
[式9]
根据由式8定义的加权系数矩阵,依据式9可知:对于优先度比自身还高的数据流而言,具备其时间变动特性中的最大值,流量可以由路径负荷检测部101来评价。再有,根据该加权系数矩阵可知:对于优先度比控制对象数据流自身还低的数据流而言,进行以数据输出部106所进行的优先度控制为前提的平均值评价。而且,根据该加权系数矩阵可知:对于优先度与自身相等的数据流而言,进行以时间变动特性依据于β分布为前提的最频值评价。式7及式8并未限制加权系数矩阵的定义的方法,也可以根据所设想的数据流的特性来定义最佳的P。
作为用于判断3条选择候补路径间的关系是否均匀的指标,也可以导入阈值。作为阈值判定的例子,也可以利用式10所示的统计值ρ。式中的R表示选择候补路径数。
[式10]
在ρ的值低于事先定义的阈值ρth的情况下,路径负荷检测部101也可以判断为路径间的均匀性被损坏。在检测出路径间的均匀性被损坏的情况下,路径负荷检测部101计算控制对象数据流自身移动到当前正在传输数据传输数据包的发送路径以外的选择候补路径时的虚拟的ρ值。而且,路径负荷检测部101比较这些值,将ρ值最大的选择候补路径决定为切换目的地路径,通过提示路径决定部102,从而更新路径表,并进行路径的切换。
图18是表示路径负荷检测部101的以上处理的流程的图。
在步骤S1中,路径负荷检测部101开始自动路径切换处理。
具体是,在步骤S2中,路径负荷检测部101通过向所有的发送候补路径发送输出信息请求数据包,从而从路径上的各中继路由器收集与各发送候补路径相关的输出信息。
在步骤S3至S5中,进行对于各路径的处理。具体是,在步骤S4中,路径负荷检测部101计算各路径的流量评价值βi。
在步骤S6中,路径负荷检测部101计算路径间的均匀性指标ρ。而且,在接下来的步骤S7中,路径负荷检测部107判定均匀性指标ρ是否低于事先定义的阈值ρth。即,在均匀性指标ρ低于阈值ρth的情况下,判定为均匀性被损坏且需要进行路径切换。此时,处理进入步骤S8。另一方面,在均匀性指标ρ不低于阈值ρth的情况下,处理进入步骤S11,不进行此时的路径切换,而是结束处理。
在步骤S8中,路径负荷检测部101计算自身的数据流移动到选择候补路径时的虚拟的均匀性指标ρ的值,并比较这些值。而且,在步骤S9中,路径负荷检测部101将ρ值最大的选择候补路径决定为切换目的地路径。结果,路径负荷检测部101在步骤S10中向路径决定部发行处理请求。
若到达步骤S11,路径负荷检测部101再次重复进行自步骤S1开始的处理。
均匀性指标ρ是利用考虑优先度而加权的流量评价值β计算出的。而且,在基于该指标ρ而判断为均匀性被损坏的情况下,适当地切换路径。由此,可以防止在数据传输过程中产生偏差。
其中,也可以通过监视表示发送候补路径间的均匀性的ρ的值低于阈值的时间比例,检测均匀性控制未奏效的情形,从而使反馈控制对加权系数矩阵P的各要素起作用。
(路径决定部102)
路径决定部102管理路径表,并基于数据包构成部103提示的目标地址来检索路径表,向数据包构成部103通知与设为下一跳跃(next-hop)的总线控制装置相关联的输出端口。
图19表示总线控制装置R21的路径决定部102所管理的路径表的例子。作为向位于目标地址MA24的总线主控器M24的路径,定义了3条选择候补路径。记录并管理成为该选择候补路径各自的下一跳跃的总线控制装置的地址和与之对应的输出端口、跳跃到终点地址为止的总线控制装置的地址列表、以及表示实际发送数据传输数据包的路径的选择信息。
路径决定部102依据来自路径负荷检测部101的请求,提示接收目的地地址和选择候补路径的列表及跳跃列表,提供与发送输出信息请求数据包所需的路径相关的信息。再有,依据从路径负荷检测部101提示的切换目的地路径的信息,进行路径表的选择信息的更新,由此变更发送数据传输数据包的路径。
根据以上所说明的总线控制装置2,可以自动抑制构成NoC总线的链路间的流量的偏差,所以可以在整个总线中使数据传输负荷均匀,抑制因负荷向特定链路集中而引起的通信延迟时间、等待时间的增加。通过降低链路的工作频率,从而能够使总线设计容易且削减数据传输时的总线的功耗。再有,通过与链路的工作频率的动态控制技术组合,从而能够更有效地削减总线的功耗。还有,通过在考虑统计复用效应的基础上使向提供同等功能的总线主控器的路径负荷均一化,从而也能获得总线主控器的负荷分散效果。因此,通过在分散型的存储器架构中适用本发明,从而可以在确保了存储器存取的容许等待时间所对应的可靠性的基础上,回避因存取集中导致的瓶颈现象(bottleneck)。
(实施方式2)
图20表示在分散型的存储器架构中适用本发明的结构的例子。3个处理器UP11、UP12、UP13和3个共有存储器模块MEM31、MEM32、MEM33经由3×3的网眼型的总线控制装置的网络进行连接。处理器在任一个存储器模块上分配任务启动时所需的存储器区域,在任务结束时释放所分配的区域。但是,在对于特定存储器模块的分配集中的情况下,在存储器模块间,会在存取速率方面产生偏差,存取总线相对于存取集中的存储器模块的工作频率提高,在设计方面、功耗方面成为问题。在处理器中的存储器分配时,按照存储器模块间的存取速率尽可能均匀的方式进行分配处理,从而可以获得降低存取总线的工作频率和削减功耗的效果。
构成本实施方式涉及的分散型存储器网络的总线控制装置的构成除了以下特别说明的方面以外,与图14所示的实施方式1的总线控制装置2的结构相同。省略相同功能的说明。
(数据包构成部103)
在本实施方式中,作为前提条件设想了以下情况:事先设计处理器与存储器模块间的各数据流的速率特性、即平均速率和最大速率,各数据流具有同一优先度。在与多个优先度对应的数据流混合存在的情况下,进行与实施方式1同样的处理即可。如图15所示,位于处理器侧的总线控制装置内的数据包构成部103将从处理器上的任务提示的数据流的速率特性作为附加信息,存储在数据传输数据包的标头中后进行发送。由此,向存储器模块侧的总线控制装置传递存取数据流的速率特性。
(输出监视部107)
位于存储器模块侧的总线控制装置内的输出监视部107基于从处理器侧的总线控制装置传递的每个存取数据流的速率特性,管理式11、式12所示的评价式。
[式11]
[式12]
式中,μij、pij是第i个存储器模块的第j个存取数据流所对应的平均速率及最大速率的值,n是分配给第i个存储器模块的存取数据流的总数,μi、pi是第i个存储器模块的平均速率评价式和最大速率评价式。从其他总线控制装置受理了输出信息请求数据包的输出监视部107返回包含图21所示的输出信息在内的输出信息通知数据包。
从总线控制装置传递的存取数据流的速率特性也可以包含在设计时能够预先估算的信息。作为这种信息,例如可以列举:在SoC上工作的应用程序、信号处理的模块所生成的平均速率、最大速率、最小速率、存取速率的标准偏差、处理的优先度、所容许的存取等待时间。
再有,也可以如由于用户的设备操作等而产生的存储器存取那样,针对在设计阶段无法预先估算存取速率特性的存储器存取的数据流,如实施方式1那样,在存储器侧的总线控制装置中实际测量存取速率的平均值或最大值,由此计算式11、式12。
在能利用设计时特性与实测值的任一个的情况下,最好采用设计时特性。在以实测值为基础的控制中,针对瞬间的负荷减少,各总线主控器集中进行向该存储器分配存取数据流的倾向增强。因此,与能分配的存储器的剩余频带相比,结果是容纳了过剩的数据流,在引起了之后的负荷上升与存取等待时间的增大之际,极易导致各总线主控器必须再次进行存取数据流的重新分配的状况。这种现象作为“路由抖动(route flapping)”而言是公知的,使得网络的吞吐量或存取等待时间显著劣化。在以数据流的设计时特性为基础进行分配控制的情况下,因为可以管理依赖于瞬间负荷状态的分配量,所以可以避免路由抖动的发生。
在位于存储器模块侧的总线控制装置内的输出监视部107中,也可以测量并管理针对所连接的存储器的存取等待时间。存取等待时间也可以用数据接收部104接收表示对处理器的数据读出或数据写入请求的数据传输数据包之后一直到对应的读出或写入动作完成为止所需的循环数来表示。针对由存储在数据传输数据包的标头中的优先度规定的存取数据流的等待时间请求而言,在由输出监视部107检测出无法确保充分的余裕的状态下,也可以通过紧急发送将请求源的处理器的总线控制装置地址作为接收目的地地址的输出信息通知,从而向处理器侧通知存取品质的降低。
(路径负荷检测部101)
路径负荷检测部101将处理器分配平均速率μt、最大速率pt的存储器存取数据流用的存储器区域确保事件作为触发,向各存储器模块的总线控制装置发送输出信息请求数据包。根据该输出信息请求数据包,收集图21所示的评价值。在图22中示出用于收集输出信息的协议的例子。考虑到数据流的时间变动的第i个存储器的流量评价值βi用式13来表示。式中的m是用于使分配给同一存储器的多个数据流之间的统计复用效应的强度和可靠性平衡的调整系数。
[式13]
再有,用式14来表示分配新的分配对象数据流之后的第i个存储器的流量评价值β’i。
[式14]
若将向第i个存储器分配了分配对象数据流时的各存储器的流量的状态设为Si,则如式15所示。
[式15]
S1=[β′1 β2 β3]
S2=[β1 β′2 β3]
S3=[β1 β2 β′3
也可以用式16、式17来评价状态Si中的存储器间的流量均匀性。式中的n表示存储器模块的个数。
[式16]
[式17]
通过利用式18来决定数据流的分配对象的存储器模块,从而可以最期待考虑了数据流的时间变动的统计复用效应,可以提高存储器间的存取速率的均匀性。
[式18]
q=index of max{ρi}
路径负荷检测部101向处理器通知已将第q个存储器分配给对应的任务。处理器上的任务将向存储器发送数据传输数据包时的发送目的地地址识别为第q个存储器的地址。
这样,并不是比较式13所示的分配对象数据流的分配前的各存储器的流量βi,而且如式14及式15所示那样,比较假设的分配后的各存储器的流量Si,以决定作为实际数据流的分配目的地的存储器。由此,对于各存储器而言,因为还可以考虑已经分配完的数据流组与分配对象的存取数据流的关系,所以可以选择更适当的分配目的地存储器。例如,考虑按照新规则分配时间变动激烈的存取数据流的状况。即使分配前的流量较大,与选择分配完时间变动少的数据流组的存储器相比,选择分配完时间变动大的数据流组的做法,更能够因统计复用效应而提高分配实施后的频带利用效率。通过基于假设的分配后的均匀性来决定分配目的地存储器,从而也能应对这种状况。
再有,接收了位于存储器模块侧的总线控制装置内的输出监视部107所发送的、存取品质降低的紧急输出信息通知数据包的路径负荷检测部101基于该信息,动态地控制式13及式14所包含的调整系数m的值。由此,可以提高与存取品质相关的可靠性。利用式19来定义路径负荷检测部101所管理的调整系数m的初始值。m的初始值例如也可以预先设定为5。
[式19]
m=m0
再有,作为用于控制m的参数变量,利用式20来初始化α。初始值例如也可以预先设定为1。
[式20]
α=α0
通过接收紧急的输出信息通知数据包而检测到存取品质降低的路径负荷检测部101依据式21来变更α的值。Δα是事先确定的因N次紧急输出信息通知的接收而产生的正的变化量。例如,也可以事先将N的值设为1,将Δα的值设定为0.5。
[式21]
α=α-Δα
以式22所示的动态来控制调整系数m的值。式中的mmax、mmin是调整系数m的事先决定的最大值及最小值,例如也可以预先设定为7及5。k是调整参数,例如可以预先设定为100。δ为克罗内克δ函数,η为随机的正整数。
[式22]
根据式22,只要如式23那样更新调整系数m即可。
[式23]
m=m+Δm
根据基于上述式的处理,伴随着数据难以流通,Δm的值变大,因此m的值也会变大。
更新之后的结果是,在m的值超过了最大值的情况下,通过设为α=0,从而也可以进行随机的调整系数选择。只要在调整系数m的更新完成的时刻,依据式20,再次进行α的初始化即可。通过控制调整系数m,从而即使在各数据流的速率变动特性并不遵循假设的概率分布的情况下,也可以使存储器分配的均匀性与统计复用效应平衡,可以获得降低能容纳数据流的总线的工作频率的效果。
如上所述,说明了本发明的实施方式。
在上述的实施方式中,虽然将NoC的拓扑设为二维网眼型,但这只是一例而已。本实施方式的数据流控制即使是其他的拓扑也能适用。作为其他的拓扑,例如也可以采用二维圆环型拓扑。再有,也可以采用如下拓扑,即:将总线主控器及对应的总线控制装置配置为环状,并利用总线连接相邻的总线控制装置彼此以及环上对置的总线控制装置彼此。而且,并未限于二维型,也可以采用将总线主控器及对应的总线控制装置堆叠(diestacking)并三维连接总线控制装置的拓扑。
(实施方式3)
本实施方式涉及的总线控制装置与实施方式2相同,也能适用于图20所示的分散型的存储器架构。因为图20所示的分散型的存储器架构的说明与实施方式2相同,所以省略其说明。
本实施方式涉及的构成分散型存储器网络的总线控制装置的结构除了以下特别说明的方面以外,都与根据图14所说明的实施方式2涉及的总线控制装置2的结构相同。省略相同功能的说明。
(路径负荷检测部101)
在本实施方式中,也可以取代实施方式2中的式16而采用下述式24。
[式24]
根据式25来决定以流量的均匀性为优先指标的数据流的分配对象的存储器模块。
[式25]
q0=index of max{ρi}
另一方面,从使分配对象的数据流产生的处理器观察,并不限定位于最接近位置的存储器模块为q0。在此,所谓“位于最接近位置的存储器模块”(以下表述为“最接近存储器模块”)指的是设计上被设想为能以最低的等待时间对处理器进行存取的存储器模块。
在图20的例子中,从处理器UP11向3个共有存储器模块MBM31、MBM32、MBM33分别构成2跳、3跳、4跳。由此,在设计上,可以将共有存储器模块MBM31定义为处理器UP11的最接近存储器模块。按每个处理器定义的最接近存储器模块的识别符q1例如被定义为SoC的设计信息。该识别符q1既可以被预先硬编码于对应的处理器或者与处理器连接的NoC路由器的路径负荷检测部的内部,也可以在初始化动作中收发并选择测量数据包。
式24中示出的ρi表示在存储器模块i中进行分配对象数据流的分配后的均匀性。另一方面,式26给出表示不进行分配的状态下的、即当时的实际均匀性的指标。ρ是不超过1的正数。
[式26]
再有,以每个存储器模块的、作为当前的流量评价值而算出的式13给出的βi为基础,可以计算式27所示的γ。若式中的b表示总线宽度,c表示总线的工作频率,则γ表示在1个循环时间内被存取的数据片(flit)数,在未发生越过物理频带的存取的状况下,γ不会超过1。γ可以在各存储器模块之中成为表示分配量最大的存储器模块中的分配量的指标。
[式27]
路径负荷检测部基于ρ及γ的值,决定数据流的分配目的地的存储器模块q。作为最简单的决定方法的例子,只要依据式28的条件式即可。
[式28]
Γth及Pth是阈值,采用事先定义的值即可。在对存储器模块的存取量少且存储器模块间的均匀性几乎不会成为问题的低负荷区域内,作为数据流的分配目的地而选择最接近存储器模块,选择位于最接近位置的低等待时间(例如等待时间最低)的存储器模块q1。在向存储器分配的数据流增大且存储器模块间的存取的偏差影响性能的中负荷到高负荷的区域内,重视流量的均匀性,以此来选择存储器模块q0。通过根据这种状况来变更流量的均匀性的权重,从而提高吞吐量。
作为决定q时的其他方法,也可以按每个处理器自治地选择q0或q1。下述式29支配变量mi的动态,式中的η是随机噪声。由式32控制式29、式30、式31中的α的动态。δ、K为常数。
[式29]
[式30]
[式31]
deg(α)=α
[式32]
只要根据式33的判定式来决定分配目的地的存储器模块即可。
[式33]
由此,q0与q1的选择切换在处理器之间自治且阶段性地进行,因此消除利用频带的浪费,提高吞吐量。
路径负荷检测部101向处理器通知已将第q个存储器模块分配给相应的任务。处理器上的任务将向存储器模块发送数据传输数据包时的发送目的地地址识别为第q个存储器模块的地址。
图23表示利用NoC的模拟器进行本实施方式涉及的总线控制装置的性能评价的结果。结果,在式32中示出Kγ=Kρ=100、Γth=0.5、Pth=0.75时的分布。可知:在γ及ρ在闭区间[0,1]内移动的情况下,α在闭区间[0.5,1.0]的范围内变动。
图24表示在式29中将ηi设为依据在闭区间[-0.05,+0.05]的范围内变动的均匀分布的随机噪声时的m1及m2的时间变化。横轴表示时间轴。可知:依据α的变化,m1与m2的大小关系也会变化。根据式33,在m1位于m2之下的情况下选择q0,在m1位于m2之上的情况下选择q1。按照m1、m2的符号始终不会为负的方式,在因ηi而导致在负数部分振荡时,进入强制性地设为0的数值处理。
在时刻[500,1000]及时刻[2000,2500]的范围内,随着α=1.0,m2变得比m1大,进行基于均匀性的分配目的地的选择。另一方面,在时刻[1500,1700],这种变化消失,并维持重视了等待时间的最接近分配。由此,可知:因为其他处理器的变化导致的α的降低,会使最接近分配持续。
根据该方法,通过使所有的处理器一齐变更分配目的地,从而能够回避在一部分存储器模块中产生存取峰值,不会使过渡时的性能恶化,可以缓慢地进行重视了流量的均匀性和等待时间的分配方法的切换动作。
图25是表示在仿真中采用的NoC结构的图。由连接了5个处理器UP11~UP15以及3个存储器模块MEM51、MEM53、MEM55的5×5的正方形网眼拓扑的NoC结构。
按每个恒定循环,从处理器UP产生向存储器模块MEM发送1个数据包的数据的数据流。数据包长度固定为4片(flit)。另外,从各处理器UP产生20个数据流,将各数据流所产生的数据量设为:1倍数据流为5条,10倍数据流为5条,100倍数据流为10条。所谓“10倍数据流”指的是在100倍数据流发送10个数据包的期间内发送1个数据包的数据流,“1倍数据流”指的是在10倍数据流发送10个数据包的期间内发送1个数据包的数据流。1倍数据流的数据包的发送间隔是10倍数据流的10倍,10倍数据流的数据包的发送间隔是100倍数据流的10倍。
此外,路由协议采用XY维顺序的路由,开关协议为虫洞式开关(wormhole switching),路由器的结构是虚拟信道数为4、虚拟信道尺寸为4。数据流的发送开始的定时每隔几个循环就偏移一些,网眼网络入口的拥塞不会发生。图26及图27表示本申请的发明人根据仿真数据总结出的、存储器模块侧的吞吐量与等待时间的关系。横轴所示的吞吐量是各存储器模块MEM51、MEM53、MEM55的单独的吞吐量的总和。各存储器模块的单独的吞吐量是在仿真时间内接收到的数据片数除以各自的仿真时间内的全部循环数的值。在仿真过程中完全没有接收数据片的情况下为0,在绝对接收了数据片的情况下为1。还有,在每隔1个循环接收1个数据片的情况下为0.5。
因为在图25所示的例子中存在3个存储器模块,所以吞吐量的最大值为3。纵轴所示的等待时间是在处理器中产生数据片时的时间戳(timestamp)与在存储器模块侧接收了数据片时的时间戳之差。生成构成1个数据包的4个数据片时的时间戳全部是相同的值。
图26是在4000个循环中的仿真结果的曲线图。根据该曲线图能够比较分配方式的不同带来的性能。表示“均匀分配”的直线表示如下的结果:无论α的值为多少,都始终持续选择q0。表示“选择分配”的直线表示如下的结果:根据α的值进行q0与q1的选择。可以确认:无论在哪种情况下,作为饱和吞吐量都能表现出2.7左右的性能。因为该仿真中可利用的物理频带为3.0,所以能够利用物理频带的约90%的吞吐量。
再有,图27表示在同一仿真过程中着眼于低负荷区域中的吞吐量与等待时间的关系的结果。根据该曲线图能够比较低负荷区域内的分配方式的不同带来的性能。通过切换q0与q1,从而与始终只选择q0的情况相比,可以将等待时间提高5个循环左右。可知,进行分配时的选择的方式可以改善低负荷的状态,还可以改善吞吐量与等待时间的特性。
在上述实施方式中,虽然将NoC的拓扑设为二维网眼型,但这只是一例而已。即使是其他的拓扑,也能适用本实施方式涉及的数据流控制。作为其他的拓扑,例如也可以采用二维圆环型的拓扑。再有,也可以采用如下的拓扑:将总线主控器及对应的总线控制装置的组配置为环状,并利用总线连接相邻的总线控制装置彼此以及环上对置的总线控制装置彼此。而且,并未限于二维型,也可以采用如下的拓扑:将总线主控器及对应的总线控制装置堆叠,且三维方式连接总线控制装置。
(实施方式4)
在上述实施方式中,对在芯片上安装本申请发明时的结构进行了说明。
本申请发明不仅可以安装在芯片上,也可以实施为进行用于安装到芯片上的设计及验证的仿真程序。这种仿真程序可以通过计算机来执行。在本实施方式中,图14所示的各构成要素可以被安装为仿真程序上的对象化的类(class)。各类通过读入预先确定的仿真方案,从而在计算机上实现与上述实施方式的各构成要素对应的动作。换言之,与各构成要素对应的动作可以作为计算机的处理步骤而串联或并联地执行。
被安装为总线主控器的类通过读入用模拟器定义的仿真方案,从而决定以虚拟的方式向总线控制装置的类发送数据包的定时等条件。而且,对图13所示的各路径中的发送状态进行仿真,通过与实施方式1、2同样地比较发送状态,从而进行决定发送路径的动作。
被安装为总线主控器的类在一直到仿真方案中描述的仿真的结束条件成立为止的期间内进行动作,计算动作中的吞吐量或等待时间、总线的流量的变动的情形、工作频率、功耗的估算值等,并提供给程序的利用者。基于这些信息,程序的利用者进行拓扑或性能的评价,进行设计及验证。
例如,一般,在仿真方案的各行中描述发送源总线主控器的ID、发送目的地总线主控器的ID、所发送的数据包的尺寸、所发送的定时等信息。再有,通过以批量处理的方式评价多个仿真方案,从而可以用所设想的全部方案有效地验证是否能保证期望的性能。还有,通过改变总线的拓扑或节点数、处理器或DSP、存储器以及周边IO的配置来进行性能比较,从而可以确定最适于仿真方案的网络构成。实施方式1到实施方式3的任一个也可以作为本形态的设计及验证工具离来应用。即使作为设计及验证的工具来实施之际,也能应用本申请发明。
(工业上的可利用性)
本发明能够利用于面向组装设备的SoC中的单片总线或通用处理器、DSP上的局域总线中的具备数据传输路径的控制技术的网络总线控制装置、控制方法、控制程序。
符号说明
101 路径负荷检测部
102 路径决定部
103 数据包构成部
104 数据接收部
105 标头分析部
106 数据输出部
107 输出监视部
Claims (12)
1.一种总线控制装置,其设置于总线主控器与被网络化的通信总线之间,且控制流经所述通信总线的数据包的发送路径,该总线控制装置包括:
数据接收部,其从存在于可利用的多条发送路径上的多个其他总线控制装置接收与输出状况相关的信息;
路径负荷检测部,其基于与所述输出状况相关的信息,计算表示各发送路径的发送流量的偏差的均一化指标;
路径决定部,其基于所述均一化指标,决定调整了所述发送流量的多条发送路径;
数据包构成部,其基于从所述总线主控器接收的数据来生成数据包;
数据输出部,其从与各不相同的通信总线连接的多个输出端口中的任一个输出所述数据包;和
标头分析部,其从所述多个输出端口之中,决定与基于所述数据包的发送目的地的信息而选择出的发送路径的一条连接的输出端口。
2.根据权利要求1所述的总线控制装置,其中,还包括:
输出监视部,其根据来自所述多个其他总线控制装置的请求,通知与所述数据输出部的数据输出状况相关的信息。
3.根据权利要求2所述的总线控制装置,其中,
所述路径负荷检测部在至少包含所输出的数据流的每个优先度的传输频度的平均值的、来自所述输出监视部的输出状况之中,以所述平均值为基础来计算均一化指标。
4.根据权利要求2所述的总线控制装置,其中,
所述路径负荷检测部在至少包含所输出的数据流的每个优先度的传输频度的平均值及最大值的、来自所述输出监视部的输出状况之中,以所述平均值及最大值为基础来计算均一化指标。
5.根据权利要求4所述的总线控制装置,其中,
所述路径负荷检测部包括对均一化指标所包含的统计复用效应引起的评价值的可靠度进行规定的参数。
6.根据权利要求5所述的总线控制装置,其中,
所述路径负荷检测部检测所述数据包的传输状况的劣化,由此调整规定所述可靠度的参数,并在通过所述参数的调整没有改善传输状况的情况下,概率性地调整参数。
7.根据权利要求2所述的总线控制装置,其中,
所述输出监视部将以预先确定的定时发行的与所述输出状况相关的信息的请求的接收作为触发,通知所述信息。
8.根据权利要求2所述的总线控制装置,其中,
所述路径负荷检测部事先向输出监视部传递输出状况通知的发送条件,
预先向所述输出监视部通知发送与所述输出状况相关的信息的请求的条件,在所述发送条件成立的情况下,向所述输出监视部通知所述信息。
9.根据权利要求1所述的总线控制装置,其中,
所述路径负荷检测部在与所述输出状况相关的信息上,追加与所述各发送路径的数据流的优先度相应的权重,从而计算与所述各发送路径的发送流量相关的评价值,计算表示所述各发送路径的发送流量的偏差的均一化指标。
10.根据权利要求9所述的总线控制装置,其中,
所述路径负荷检测部计算利用与所述各发送路径的发送流量相关的评价值而计算出的统计值,作为所述均一化指标。
11.根据权利要求1所述的总线控制装置,其中,
所述路径负荷检测部基于与所述输出状况相关的信息以及与选择对象的发送路径的数据特性相关的信息,计算表示各发送路径的发送流量的偏差的均一化指标。
12.一种仿真程序,该仿真程序是总线控制装置用的仿真程序,所述总线控制装置设置于总线主控器与被网络化的通信总线之间,且控制流经所述通信总线的数据包的发送路径,其中,
所述仿真程序使计算机执行以下步骤:
从所述仿真程序上的对象化的多个其他总线控制装置的类、即存在于可利用的多条发送路径上的多个其他总线控制装置的类接收与输出状况相关的信息的步骤;
基于与所述输出状况相关的信息来计算表示各发送路径的发送流量的偏差的均一化指标的步骤;
基于所述均一化指标来决定调整了所述发送流量的多条发送路径的步骤;
基于从作为所述总线主控器而被安装的类接收到的数据来生成数据包的步骤;
从与各不相同的通信总线连接的多个输出端口中的任一个输出所述数据包的步骤;
从所述多个输出端口之中,决定与基于所述数据包的发送目的地的信息而选择出的发送路径的一条连接的输出端口的步骤;和
从所述决定的输出端口输出所述数据包的步骤。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-161029 | 2009-07-07 | ||
JP2009161029 | 2009-07-07 | ||
JP2009-234538 | 2009-10-08 | ||
JP2009234538 | 2009-10-08 | ||
PCT/JP2010/004290 WO2011004566A1 (ja) | 2009-07-07 | 2010-06-29 | バス制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102415059A true CN102415059A (zh) | 2012-04-11 |
CN102415059B CN102415059B (zh) | 2014-10-08 |
Family
ID=43428997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080018978.0A Active CN102415059B (zh) | 2009-07-07 | 2010-06-29 | 总线控制装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8301823B2 (zh) |
EP (1) | EP2453612B1 (zh) |
JP (1) | JP4796668B2 (zh) |
CN (1) | CN102415059B (zh) |
WO (1) | WO2011004566A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635894A (zh) * | 2012-05-11 | 2014-03-12 | 松下电器产业株式会社 | 总线控制装置、总线控制系统以及网络接口 |
CN103828312A (zh) * | 2012-07-24 | 2014-05-28 | 松下电器产业株式会社 | 总线系统以及中继器 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2960732B1 (fr) * | 2010-06-01 | 2012-06-29 | Bull Sas | Procede de routage pseudo-dynamique dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procede |
JP5212503B2 (ja) * | 2011-02-23 | 2013-06-19 | 沖電気工業株式会社 | 通信制御装置、通信制御方法、および、通信制御プログラム |
US9344358B2 (en) * | 2012-03-12 | 2016-05-17 | Utah State University | Aging-aware routing for NoCs |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US9152595B2 (en) * | 2012-10-18 | 2015-10-06 | Qualcomm Incorporated | Processor-based system hybrid ring bus interconnects, and related devices, processor-based systems, and methods |
GB2507124A (en) * | 2012-10-22 | 2014-04-23 | St Microelectronics Grenoble 2 | Controlling data transmission rates based on feedback from the data recipient |
WO2014073188A1 (ja) * | 2012-11-08 | 2014-05-15 | パナソニック株式会社 | 半導体回路のバスシステム |
US9571402B2 (en) * | 2013-05-03 | 2017-02-14 | Netspeed Systems | Congestion control and QoS in NoC by regulating the injection traffic |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
US9473388B2 (en) | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
US9158882B2 (en) * | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9473415B2 (en) | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9742630B2 (en) | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US9571341B1 (en) | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US9660942B2 (en) | 2015-02-03 | 2017-05-23 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
US9568970B1 (en) | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US9928204B2 (en) | 2015-02-12 | 2018-03-27 | Netspeed Systems, Inc. | Transaction expansion for NoC simulation and NoC design |
US10050843B2 (en) | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
US9864728B2 (en) | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US9825809B2 (en) | 2015-05-29 | 2017-11-21 | Netspeed Systems | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US20180159786A1 (en) | 2016-12-02 | 2018-06-07 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
US10313269B2 (en) | 2016-12-26 | 2019-06-04 | Netspeed Systems, Inc. | System and method for network on chip construction through machine learning |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10084725B2 (en) | 2017-01-11 | 2018-09-25 | Netspeed Systems, Inc. | Extracting features from a NoC for machine learning construction |
US10469337B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10298485B2 (en) | 2017-02-06 | 2019-05-21 | Netspeed Systems, Inc. | Systems and methods for NoC construction |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002247087A (ja) * | 2001-02-15 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | Ipネットワーク負荷分散方法、ipネットワーク、ipルーティング装置及びルートサーバ装置 |
US6510135B1 (en) * | 1998-12-18 | 2003-01-21 | Nortel Networks Limited | Flow-level demultiplexing within routers |
US20040114569A1 (en) * | 2002-12-17 | 2004-06-17 | Naden James M. | Cummunication network route determination |
JP2007074074A (ja) * | 2005-09-05 | 2007-03-22 | Nippon Telegr & Teleph Corp <Ntt> | トラヒック分散制御装置、パケット通信ネットワークおよびプログラム |
CN101324870A (zh) * | 2007-04-27 | 2008-12-17 | 松下电器产业株式会社 | 处理器系统、总线控制方法和半导体装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0753979A1 (en) | 1995-07-13 | 1997-01-15 | International Business Machines Corporation | Routing method and system for a high speed packet switching network |
US5959995A (en) | 1996-02-22 | 1999-09-28 | Fujitsu, Ltd. | Asynchronous packet switching |
JP2002305541A (ja) | 2001-04-04 | 2002-10-18 | Kddi Research & Development Laboratories Inc | メッシュ網におけるロードバランシング方法 |
EP2041661B1 (en) | 2006-07-05 | 2014-02-12 | Synopsys, Inc. | Electronic device, system on chip and method for monitoring a data flow |
-
2010
- 2010-06-29 JP JP2011521806A patent/JP4796668B2/ja active Active
- 2010-06-29 EP EP20100796880 patent/EP2453612B1/en active Active
- 2010-06-29 WO PCT/JP2010/004290 patent/WO2011004566A1/ja active Application Filing
- 2010-06-29 CN CN201080018978.0A patent/CN102415059B/zh active Active
-
2011
- 2011-09-28 US US13/247,163 patent/US8301823B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510135B1 (en) * | 1998-12-18 | 2003-01-21 | Nortel Networks Limited | Flow-level demultiplexing within routers |
JP2002247087A (ja) * | 2001-02-15 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | Ipネットワーク負荷分散方法、ipネットワーク、ipルーティング装置及びルートサーバ装置 |
US20040114569A1 (en) * | 2002-12-17 | 2004-06-17 | Naden James M. | Cummunication network route determination |
JP2007074074A (ja) * | 2005-09-05 | 2007-03-22 | Nippon Telegr & Teleph Corp <Ntt> | トラヒック分散制御装置、パケット通信ネットワークおよびプログラム |
CN101324870A (zh) * | 2007-04-27 | 2008-12-17 | 松下电器产业株式会社 | 处理器系统、总线控制方法和半导体装置 |
Non-Patent Citations (2)
Title |
---|
ERLAND NILSSON等: "《Load distribution with the proximity congestion awareness in network on chip》", 《DESIGN,AUTOMATION AND TEST IN EUROPE CONFERENCE EXHIBITION,IEEE COMPUTER SOCIETY》 * |
周杨: "《基于Petri网的CAN总线性能分析与评估》", 《哈尔滨理工大学学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635894A (zh) * | 2012-05-11 | 2014-03-12 | 松下电器产业株式会社 | 总线控制装置、总线控制系统以及网络接口 |
CN103828312A (zh) * | 2012-07-24 | 2014-05-28 | 松下电器产业株式会社 | 总线系统以及中继器 |
CN103828312B (zh) * | 2012-07-24 | 2017-06-30 | 松下知识产权经营株式会社 | 总线系统以及中继器 |
Also Published As
Publication number | Publication date |
---|---|
EP2453612A1 (en) | 2012-05-16 |
CN102415059B (zh) | 2014-10-08 |
EP2453612A4 (en) | 2013-03-06 |
WO2011004566A1 (ja) | 2011-01-13 |
US8301823B2 (en) | 2012-10-30 |
JP4796668B2 (ja) | 2011-10-19 |
JPWO2011004566A1 (ja) | 2012-12-20 |
US20120079147A1 (en) | 2012-03-29 |
EP2453612B1 (en) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102415059B (zh) | 总线控制装置 | |
US10129043B2 (en) | Apparatus and method for network flow scheduling | |
US9389920B2 (en) | Intelligent data center cluster selection | |
CN108900419A (zh) | Sdn架构下基于深度强化学习的路由决策方法及装置 | |
CN106411733A (zh) | 一种基于链路实时负载的sdn动态负载均衡调度方法 | |
CN104901989B (zh) | 一种现场服务提供系统及方法 | |
CN103532869B (zh) | 一种流量分担方法及设备 | |
CN103825838B (zh) | 一种数据中心去带宽碎片化流调度方法 | |
CN105242956A (zh) | 虚拟功能服务链部署系统及其部署方法 | |
CN102204181A (zh) | 最佳路径选择装置、最佳路径选择方法、以及程序 | |
CN101145977B (zh) | 一种IP数据网Qos监测系统及其测量方法 | |
Manevich et al. | A cost effective centralized adaptive routing for networks-on-chip | |
CN105959218A (zh) | 网络路由选取方法及网络路由选取系统 | |
CN104023408A (zh) | 调度器及其基于网络多路径并行传输的数据调度方法 | |
CN103051546B (zh) | 一种基于迟滞调度的网络流量冲突避免方法及系统 | |
CN102474468A (zh) | 半导体系统、中继器及芯片电路 | |
CN105471755B (zh) | 网络流量均衡的方法及超级控制器 | |
CN105515977A (zh) | 获取网络中传输路径的方法、装置和系统 | |
CN105610707A (zh) | AntNet路由算法在二维网格拓扑片上网络中的实现方法 | |
US9178826B2 (en) | Method and apparatus for scheduling communication traffic in ATCA-based equipment | |
CN107835130A (zh) | 一种流量分配方法及装置 | |
CN102271092B (zh) | 基于节点负荷量化等级的拥塞控制系统及控制方法 | |
CN114500354A (zh) | 一种交换机控制方法、装置、控制设备及存储介质 | |
KR20150080183A (ko) | 데이터 센터 네트워크의 동적 트래픽 분배 방법 및 장치 | |
CN107770083A (zh) | 一种交换网络、控制器及负载均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |