本申请涉及计算机io领域,具体而言本申请实施例涉及一种用于片上总线的路由方法以及系统。
背景技术:
计算机i/o技术在高性能计算技术的发展中始终是一个十分重要的关键技术。其技术特性决定了计算机i/o的处理能力,进而决定了计算机的整体性能以及应用环境。从根本上讲,无论现在还是将来,i/o技术都将制约着计算机技术的应用与发展,尤其在高端计算领域。
计算机i/o外设主要包括与pcie、usb、sata以及ethernet连接的设备。在服务器应用中,涉及多路i/o设备访问内存,以及多路i/o设备之间的p2p(peertopeer)的访问。这些i/o设备的访问需要满足带宽的需求,也需要统一灵活的路由管理。在片上系统或者系统级芯片soc芯片中,该路由管理由专门的io路由模块实现,io路由模块或统称为iohub。iohub连接各种i/o外设和cpu内存,也路由本地到远端的i/o设备以及内存访问。随着服务器对i/o设备需求的增加,服务器soc芯片需要支持更多的i/o设备,满足更大的带宽需求。
因此如何满足更多外设对cpu内存的同时访问,同时提升iohub的路由能力成立亟待解决的技术问题。
技术实现要素:
本申请实施例的目的在于提供一种用于片上总线的路由方法以及系统,通过本申请实施例的技术方案至少可以有效提升iohub的带宽和传输效率。例如,在本申请的一些实施例中通过增加目的端口targetport的数量,可支持更多源端口sourceport,通过带宽监测机制和灵活路由的改进,提升传输效率。
第一方面,本申请的一些实施例提供一种用于片上总线的路由方法,所述路由方法包括:获取总线上至少一个目的端口中各目的端口的实际传输带宽占用量;获取所述至少一个目的端口中各目的端口在未来预计时间段内的预测传输带宽占用量;根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
本申请的一些实施例通过监测总线传输过程中各目的端口的实际带宽占用情况和预测带宽占用情况,进而为待传输的数据提供合适的目标出口,当数据传输方向为上行时以使待传输数据通过目标出口发送至与目标端口相连的主机(或片上存储单元)。
在一些实施例中,所述目的端口为与主机或者片上存储器相连的端口,所述目的端口的数量为多个;所述根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略,包括:根据所述实际传输带宽占用量和所述预测传输带宽占用量,为所述待传输数据从多个所述目的端口中确定至少一个目标出口;其中,所述目标出口用于向所述主机或者所述片上存储器提供所述待传输数据。
本申请的一些实施例通过增加与主机或者内部存储器相连的总线接口的数量,进而可以为来自于更多的i/o设备的数据提供更多的目的端口。通过设置多个目的端口可以满足随着i/o设备的增加,或者随着i/o接口速率的提升和系统应用导致的带宽需求的增加,改善了由于io路由采用一个与主机或者片上存储器相连的目的端口造成的带宽瓶颈问题。
在一些实施例中,所述根据所述实际传输带宽占用量和所述预测传输带宽占用量,为所述待传输数据从多个所述目的端口中确定至少一个目标出口,包括:根据为所述多个目的端口中各目的端口分别设置的传输带宽阈值和预测带宽阈值,从多个所述目的端口中确定至少一个所述目标出口。
本申请的一些实施例通过设定比较阈值,并将监测得到的带宽消耗量(例如,包括实际传输带宽占用量和预期带宽占用量)与设定阈值比较,可以确定这些目的端口是否能够传输来自于源端口的待传输数据。
在一些实施例中,所述根据为所述多个目的端口中各端口分别设置的传输带宽阈值和预期带宽阈值,从多个所述目的端口中确定至少一个所述目标出口,包括:确认第一目的端口对应的第一实际传输带宽占用量小于与所述第一目的端口对应的第一传输带宽阈值,并确认所述第一目的端口对应的第一预测传输带宽占用量小于与所述第一目的端口对应的第一预测带宽阈值;选择所述第一目的端口作为所述目标出口。
本申请的一些实施例将当前时刻目的端口带宽余量充足且距当前时刻一定时长的可预测时长内的带宽余量较多的目的端口选为当前待传输数据的目标出口,以使所述待传输数据通过足够目标出口输出至与目的端口相连的主机或者内存,保证了待传输数据的顺利传输且提升了目的端口资源的利用率。
在一些实施例中,所述根据为所述多个目的端口中各端口分别设置的传输带宽阈值和预期带宽阈值,从多个所述目的端口中确定至少一个所述目标出口,包括:根据所述待传输数据的属性特征,确认采用所述传输带宽阈值和所述预期带宽阈值中的至少一个确定所述目标出口,其中,所述属性特征用于表征所述待传输数据的数据量的多少。
本申请的一些实施例还根据待传输数据对应的数据量的多少来选择更加合理的目标出口,在保证待传输数据顺利传输的基础上充分利用了各目的端口的带宽。
在一些实施例中,根据所述待传输数据的属性特征,确认采用所述传输带宽阈值和所述预期带宽阈值中的至少一个确定所述目标出口,包括:确认所述待传输数据的数据量大于第一设定阈值;确认第二目的端口对应的第二预测传输带宽占用量小于与所述第二目的端口对应的第二预测带宽阈值;选择所述第二目的端口作为所述目标出口;或者,确认所述待传输数据的数据量小于第二设定阈值;确认所述第二目的端口对应的第二实际传输带宽占用量小于与所述第二目的端口对应的第二传输带宽阈值;选择所述第二目的端口作为所述目标出口;其中,所述第一设定阈值大于所述第二设定阈值。
本申请的一些实施例当待传输数据量较大时,优选预测带宽余量充足(即根据预测实际传输带宽占用量来确定是否选择某个目的端口作为目标出口)的目的端口,当待传输数据量较小时,可以优先选择当前剩余带宽量(即根据实际传输带宽占用量来确定是否选择某个目的端口作为目标出口),这些实施例充分结合了待传输数据的特征和各目的端口剩余带宽情况,能够更加准确的为待传输数据确定与主机或者内存相连的目标出口。
在一些实施例中,所述实际传输带宽占用量是根据当前传输在传输窗口内的传输带宽确定的。
本申请的一些实施例通过统计传输窗口内的传输带宽来确定各目的端口的实际传输带宽占用量,提升了各目的端口带宽占用情况估计的准确性和客观性。
在一些实施例中,所述实际传输带宽占用量的计算公式如下:
其中,clkcount为在设置的传输窗口内统计的系统时钟周期数,transcount用于表征统计当前时刻的所有有效传输所对应的数据字节数。
本申请的一些实施例通过上述公式可以确定各目的端口的实际传输带宽占用量,提升了带宽占用情况估计的客观性。
在一些实施例中,通过监测通道中的传输有效信号统计参数transcount的值。
本申请的一些实施例通过检测总线上各通道传输数据的有效信号来确定记录实际传输带宽占用量,提升了实际传输带宽占用量估计的准确性。
在一些实施例中,所述预测传输带宽占用量是根据可预期的传输在可预期的传输窗口内的传输带宽确定的,其中,所述可预期的传输窗口是根据所述可预期的传输对应的传输长度和传输位宽确定的总的系统时钟周期数。
本申请的一些实施例通过统计各目的端口在可预期传输窗口内的可预期传输带宽来确定各目的端口的预测传输带宽占用量,提升了各目的端口带宽占用情况估计的准确性和客观性。
在一些实施例中,所述预测传输带宽占用量的计算公式如下:
其中,clkcount1为在所述可预期的传输窗口内的系统时钟计数值,est是通过统计当前传输请求所携带用于表征所述数据的传输长度得到的计数值。
本申请的一些实施例通过上述公式可以确定各目的端口的预测传输带宽占用量,提升了带宽占用情况估计的客观性。
在一些实施例中,通过提取通道中的传输请求信号所携带的信息获取所述est的值。
本申请的一些实施例通过检测总线上各通道传输请求信号所携带的信息来确定预测传输带宽占用量的值,提升了预测传输带宽占用量估计的准确性。
第二方面,本申请的一些实施例提供一种用于片上总线的路由装置,所述路由装置包括:带宽占用量计算模块,被配置为:获取总线上当前至少一个目的端口中各目的端口的实际传输带宽占用量;获取所述至少一个目的端口中各目的端口在未来预设时间段内的预测传输带宽占用量;仲裁模块,被配置为根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
第三方面,本申请的一些实施例提供一种用于片上系统的路由系统,所述路由系统包括:系统时钟计数模块,被配置为当监测开始时,每个传输时钟周期加1,当达到设置的传输窗口值时,清零,并重新开始下一个监测传输窗口中的时钟计数;实际传输量计数模块,被配置为根据传输有效信号统计通道上有效传输对应的实际传输量;预测传输量计数模块,被配置为根据传输请求信号统计通道上在未来预计时间段内的预测传输量;带宽计算模块,被配置为:根据设置的传输窗口大小和与一个目的端口对应的多个所述实际传输量确定所述目的端口的实际传输带宽占用量;根据可预测传输窗口大小和与所述目的端口对应的多个所述预测传输量确定预测传输带宽占用量;仲裁器,被配置为:比较所述目的端口的实际传输带宽占用量与设置的传输带宽阈值,获取第一比较结果;比较所述目的端口的预测传输带宽占用量与设置的预测传输带宽阈值,获取第二比较结果;根据所述第一比较结果和所述第二比较结果,生成目标出口选择信号,其中,所述目标出口为从多个所述目的端口中选择的用于传输待传输数据的出口;路由器,被配置为接收所述目标出口选择信号,以将所述待传输数据向所述目标出口发送。
本申请的一些实施例通过多个技术器统计实际传输量、预测传输量、以及系统时钟数量,进而根据这些数据确定实际传输带宽占用量、预测传输带宽占用量,提升了带宽占用情况估计的准确性。
在一些实施例中,确认传输有效信号为第一电平时,启动所述实际传输量计数模块进行一次计数,其中,所述第一电平为高电平或者低电平。
本申请的一些实施例通过传输有效信号触发实际传输量开始统计,可以提升实际传输量统计结果的准确性。
在一些实施例中,所述一次计数的计数步长是根据所述通道的传输位宽确定的。
本申请的一些实施例,通过设定统一的步长值,来实现多个目的端口带宽比较结果的可比拟性,进而提升得到的传输策略的合理性。
在一些实施例中,确认传输请求信号为第二电平时,启动所述预测传输量计数模块进行一次计数,其中,所述第二电平为高电平或者低电平。
本申请的一些实施例通过传输请求信号来触发预测传输量开始统计,可以提升预测传输量统计结果的准确性。
在一些实施例中,所述一次计数的计数步长是根据所述传输请求信号携带的本次待传输数据的传输长度确定的。
本申请的一些实施例,通过设定统一的步长值,来实现多个目的端口带宽比较结果的可比拟性,进而提升得到的传输策略的合理性。
第四方面,本申请的一些实施例提供一种片上系统的数据传输方法,所述数据传输方法包括:在一次有效传输开始前:设置多个目的端口中各目的端口对应的传输窗口的值,并设置所述多个目的端口中各目的端口对应的带宽比较阈值,其中,所述带宽比较阈值包括传输带宽比较阈值以及预测传输带宽阈值;当有效传输开始时,不断更新所述多个目的端口中各目的端口的实际传输带宽占用量和预测传输带宽占用量的值,其中,所述实际传输带宽占用量是根据所述传输窗口的值和统计的实际传输量计算得到的,所述预测传输带宽占用量是根据预测传输窗口的值和统计得到的预测传输量计算得到的;仲裁时,根据所述多个目的端口中各目的端口的所述带宽比较阈值动态调整输出的路由结果,以将来自于源端口的待传输数据路由至调整后的目标出口。
第五方面,本申请的一些实施例提供一种片上系统,所述片上系统包括处理器、存储器、至少一个i/o设备以及上述第三方面任一项所述的路由系统;其中,所述至少一个i/o设备与所述处理器通过所述路由系统互连;或者,所述至少一个i/o设备与所述存储器通过所述路由系统互连。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术提供的io路由与多个i/o设备和主机连接的关系图;
图2为相关技术提供的io路由的内部结构图;
图3为本申请的实施例提供的用于阐述由于相关技术的上行数据传输对应的目的端口数量少导致的阻塞示意图;
图4为本申请实施例提供的用于片上总线的路由方法的流程图;
图5为本申请实施例提供的传输窗口移动示意图;
图6为本申请实施例提供的多总线接口的io路由与多个i/o设备和主机连接的关系图;
图7为本申请实施例提供的源端口与目的端口连接关系示意图;
图8为本申请实施例提供的上行数据传输对应两个目的端口的路由示意图;
图9为本申请实施例提供的用于片上总线的路由装置的组成框图;
图10为本申请实施例提供的用于片上总线的路由系统的组成框图;
图11为本申请实施例提供的io路由的内部结构图;
图12为本申请实施例提供的路由方法又一流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请涉及的缩略语的含义如下。
soc:system-on-a-chip,soc称为系统级芯片,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
p2p:peer-to-peer,pcie设备端到端的传输。
host:i/o设备传输互联的对象,如datafabric。
monitor:用于传输带宽的监测的功能模块。
sourceport:io路由的clientport中发起传输请求的port。
targetport:io路由的clientport中接收传输请求并输出的port。
下面结合图1和图2示例性阐述相关技术的iohub以及这些iohub存在的技术问题和缺陷。
相关技术的iohub设计通过总线接口businterface将i/o设备与主机host互联,以5个i/o设备通过iohub与主机host互联为例,其中互联结构如图1所示。图1的上行数据流upstream即i/o设备300向主机100发送数据,具体过程为5个i/o设备通过总线接口busif(businterface)与iohub(即图1的io路由器200)相连,io路由器200通过路由将来自于i/o设备的请求和数据通过与主机相连的总线接口busif与主机100相连;图1的下行数据流downstream即从主机100向i/o设备300发送数据,具体过程为来自主机100的请求和数据通过路由分发给与i/o设备连接的总线接口busif后实现对5个i/o设备的访问。图1中5个i/o设备共享一个主机100,各i/o设备之间也可以通过路由实现p2p访问。对iohub而言,每个端口port都是客户端端口clientport,每个客户端端口clientport既可以是源端口sourceport,也可能是目的端口targetport,这要根据数据传输的方向确定。
相关技术的iohub的设计方案如图2所示,与图1不同的是,图2将图1的主机100替换成存储器110。图2的存储器110可以通过总线接收来自于i/o设备的数据并存储,也可以向与总线连接的i/o设备发送数据,因此图2示意了两个与存储器110连接的总线接口单元,而这两个总线接口单元分别对应上行数据流向对应的上行接口(此时对应目的端口)和下行数据流向对应的下行接口(此时对应源端口),在本申请的一些实施例中将这两个方向的总线接口表示为一个总线接口如图1所示。需要说明的是,本申请一些实施例通过增加与主机或者片上存储器连接的总线接口的数量,可以指代增加作为上行接口的总线接口的数目。
图2示出了相关技术的iohub包括的主要功能模块,这些功能模块包括:总线接口busif、译码器201(或称为decoder)、总线缓存器202(或称为buf)、多路选择器203(或称为mux)以及仲裁器204(或称为arbitrition),其中,各模块的核心功能介绍如下。
总线接口busif属于i/o设备以及存储器memory在总线上的总线接口,用于i/o设备以及存储器memory访问iohub。总线接口实现总线协议,对命令通道,数据通道和响应通道进行处理。
译码器201,该模块主要实现访问请求地址的译码。对上行数据流upstream方向,译码器201根据传输请求地址requestaddress的范围译码决定此次传输的目标设备是存储器memory还是其它i/o设备,或是无效地址空间。访问空间若为存储器memory或者远端的i/o设备,则目的端口targetport为与主机或者存储器连接的端口;访问空间若为同一路由hub上的i/o设备,则目的端口targetport为与其它i/o设备连接的端口;若访问空间无效,则返回无效响应。对下行数据流downstream方向,主机host端口作为源端口sourceport,其译码器201根据软件配置的各i/o设备地址空间译码,访问地址落在哪个i/o设备的地址空间,则目的端口targetport为对应的i/o设备的端口。
总线缓存器202(例如,包括总线不同通道的fifo)用于暂存数据或者暂存访问请求。例如,在各个访问请求和数据被仲裁和输出前,fifo缓存这些访问请求和数据,确保访问不被中断,其中,fifo的深度以及带宽与客户端口clientport数量相关。
仲裁器204主要负责对来自不同的源端口sourceport访问同一个目的端口targetport时进行仲裁,在同一个时刻只有一个源端口sourceport被路由到目的端口targetport上。仲裁采用轮询(roundrobin)的调度方式,即每一次把来自客户端口clientport的请求轮流分配给目的端口targetport。
多路选择器203负责根据译码器201和仲裁器204的结果选择源端口sourceport输出到目的端口targetport。
需要说明的是,图2的上行数据流方向只有一个目的端口(对应两个数据流向),因此当随着i/o设备的数量增加时,这个目的端口的带宽可能成为制约i/o设备与存储器110通信的瓶颈。
下面结合图3示例性阐述图1和图2的相关技术存在的技术缺陷。
相关技术方案中(例如,图1和图2)多个i/o设备只能通过一个目的端口targetport访问主机或者存储器,io路由器上的仲裁模块做仲裁时采用轮询方式。因此随着i/o设备的增多和带宽需求的增加,存在以下问题:第一,带宽不够:随着i/o设备的增加,iohub挂载的i/o设备对应的客户端端口clientport会增加;随着i/o设备对应的接口速率的提升和系统应用对带宽需求的增加,一个目的端口targetport成为带宽瓶颈。如图3所示,通路①和通路②都是32gb/s的带宽,由于与主机100相连的总线接口busif只有一个出口,则总线接口busif的带宽32gb/s会成为传输带宽的瓶颈。当进行上行数据流传输时,出口带宽的计算应如下公式所示:
其中,等式左边表征对与主机连接的目的端口的带宽(只有一个目的端口),等式右边的参量表征与i/o设备连接的各源端口的带宽求和。可见,当同时传输的源端口sourceport越多,目的端口targetport的带宽压力越大。
第二,相关技术的仲裁模块的仲裁机制未考虑带宽。如上所述,相关技术的仲裁器204采用轮询的机制,未考虑带宽因素,若前一个客户端client传输长度很大,一直占用目的端口targetport,则后一个客户端client在前一个客户端client完成传输前无法获得目的端口targetport的传输,影响关键数据的传输。例如,一种传输情况是,如图3所示,若通路①正在传输,而通路②有实时传输的数据需要尽快获得与主机100相连的busif的传输权利,但由于通路①未传输完,且传输没法被中断,则通路②无法获得传输权,会造成通路②的实时传输被中断。另一种传输情况是,通路①每次发出的传输类型是批量传输,即每次传输的数据量size很大,而通路②每次传输的数据量size很小,但传输的频率高,此时通路②每次很快就释放目的端口targetport,通路①每次占有目的端口targetport传输的时间很长,总体上通路②的平均带宽没法得到保证。
正是由于相关技术存在的上述问题,本申请的一些实施例在相关技术的iohub的基础上增加带宽监测机制,根据带宽改进仲裁机制,同时增加目的端口targetport的数量,通过增加目的端口targetport的数量来提升流向主机或者片上存储器的出口带宽,进一步的在本申请的一些实施例中可以根据源端口sourceport所需的带宽和监测的目的端口的带宽灵活调整待传输数据在多个目的的端口targetport上的带宽。
例如,本申请的一些实施例增加了与主机或者内存互联的总线接口的数量(每个总线接口对应一个端口),进而增加了i/o设备作为数据发送方时对应的目的端口的数量;本申请的一些实施例还增加对端口的带宽监测机制,基于带宽监测结果改进现有的传输策略涉及的仲裁和路由,增加了路由的灵活性。
下面结合图4示例性阐述由本申请实施例的iohub执行的用于片上总线的路由方法。
请参看图4,图4为本申请实施例提供的用于片上总线的路由方法,包括:s101,获取总线上至少一个目的端口中各目的端口的实际传输带宽占用量;s102,获取所述至少一个目的端口中各目的端口在未来预计时间段内的预测传输带宽占用量;s103,根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
需要说明的是,对于上行数据传输,所述目的端口指与主机或者片上存储器相连的端口;对于下行数据传输,所述目的端口为片上总线与i/o设备相连的端口。当目的端口为与i/o设备相连的端口时,目的端口的数量为一,则本申请实施例的根据带宽占用情况(包括实际传输带宽占用量和预测传输带宽占用量)确定的传输策略用于解决多个主机同时向该目的端口传输数据时如何决策的问题。当目的端口为与主机或者片上存储单元相连的端口时,本申请的一些实施例对应的目的端口数目增加为多个,则采用本申请的根据带宽占用情况(包括实际传输带宽占用量和预测传输带宽占用量)确定的传输策略用于为待传输的数据从多个目的端口中选择一个或多个出口,通过所述出口可以将待传输数据发送至主机或者片上存储器。
下面以上行数据传输为例,示例性阐述图4方案涉及的各个步骤。
在本申请的一些实施例中,s101涉及的实际传输带宽占用量是根据当前传输在任意一个目的端口的传输窗口内的传输带宽确定的。例如,任意一个目的端口的实际传输带宽占用量的计算公式如下:
其中,bw_trans用于表征当前传输在传输窗口内的传输带宽,clkcount为在设置的传输窗口内统计系统时钟周期数,transcount用于表征统计任意一个端口的所有有效传输所对应的字节数。
clkcount为统计得到的传输窗口范围内的时钟周期数(即clockcycle数),传输窗口(统计的传输cycle范围)的大小可以根据经验值获取,通过寄存器预先设置传输窗口的值。
实际传输带宽占用量计算时的计算窗口如图10所示,当软件设置传输窗口大小后,传输窗口大小在移动过程中不改变,随着窗口的移动,带宽会变化。如图5所示,第一个传输窗口cal_window内的实际传输带宽占用量大于第二个传输窗口cal_window内的实际传输带宽占用量。
在一些实施例中,s102涉及的预测传输带宽占用量是根据任意目的端口的可预期的传输在可预期的传输窗口内的传输带宽确定的,其中,所述可预期的传输窗口是根据所述可预期的传输对应的传输长度和传输位宽计算确定的总的系统时钟周期数。例如,所述可预期的传输窗口是根据所述可预期的传输对应的传输长度,在传输起点按每个系统时钟周期传输一笔数据位宽长度的数据得到的总的系统时钟周期数。例如,所述预测传输带宽占用量的计算公式如下:
bw_trans=est/clkcount1其中,clkcount1为在所述可预期的传输窗口内的系统时钟计数值,est是通过统计当前传输请求所携带用于表征所述数据的传输长度后得到的计数值。
需要说明的是,可预期的传输指根据传输的长度得到的传输量,如传输请求中传输长度为256byte,则可预期的传输为256byte;可预期的传输窗口指根据传输长度和传输位宽计算得到的传输cycle数,如传输长度为256byte,传输总线位宽为32byte,则可预期的传输窗口为8个cycle。对于上述参数的具体取值可参考下文的描述在此不过多赘述。
下面以与主机或者片上存储器相连的总线接口为目的端口(即进行上行数据流传输)为例,示例性阐述s103。
为了改善相关技术仅存在一个端口与主机或者片上存储器相连,导致的来自于i/o设备的待传输数据不能即时发送至主机或者内存的问题,在本申请的一些实施例中,主机或者片上存储器通过多个总线接口与io路由器连接,当进行数据传输时多个总线接口对应多个端口。
如图6所示,与图1和图2不同的是图6的主机100通过四个总线接口与io路由器连接。可以理解的是,来自于i/o设备的数据可以通过四个总线接口即四个目的端口中的一个或多个目的端口传输至主机100,这显著增加了同时向主机或者内存传输数据的总带宽。
如图6所示,当i/o设备作为源端口sourceport时,目的端口targetport增加至四个,此时,出口带宽增加为原方案的四倍,可以提供更多的i/o设备同时传输。如图7所示,源端口sourceport与目的端口targetport可实现任意路由,即任意源端口sourceport可以路由至任意目的端口targetport。实际使用中,当源端口sourceport是与主机或者片上存储器相连的总线接口,对应的目的端口targetport为与i/o设备相连的口。需要说明的是,在本申请的一些实施例中,当数据流方向为下行数据流downstream时,源端口sourceport到目的端口targetport的路由由其访问的地址空间决定;当源端口sourceport为与i/o设备相连的接口,目的端口targetport为与主机或者内存连接的总线接口时,即数据流方向为上行数据流upstream时,源端口sourceport到目的端口targetport的路由由本申请一些实施例监测的带宽决定。
作为一个示例,当源端口sourceport的总带宽低于目的端口targetport时,源端口sourceport可被路由至任意目的端口targetport,保证所有源端口sourceport的带宽需求均得到满足,未被用到的目的端口targetport处于空闲idle状态;当源端口sourceport的总带宽等于或者高于目的端口targetport时,多个源端口sourceport至目的端口targetport的路由需根据目的端口targetport的带宽动态调节。例如,第一源端口source_0有一笔往目的端口targetport的传输,当该传输请求发出来后,第一目的端口target_0port与第二目的端口target_1port都处于传输状态,而第三目的端口target_2port处于空闲idle状态,则第一源端口source_0的待传输数据被路由至第三目的端口target_2;若四个目的端口targetport都被占用,则根据带宽计算结果(即计算得到预测传输带宽占用量),将第一源端口source_0的待传输数据路由至带宽预期(即预期传输带宽占用量)最低的目的端口targetport。
下面结合示例阐述根据带宽进行路由的示例性策略。
当i/o设备通过多个目的端口向主机或者内存进行数据传输时,存在合理路由的技术问题,本申请的一些实施例为了保证多个目的端口中各目的端口尽量处于满载来提升向主机或者内存传输的数据量的目的,相应的,s103包括:根据实际传输带宽占用量和预测传输带宽占用量,为待传输数据从多个目的端口中确定至少一个目标出口;其中,所述目标出口用于向所述主机或者所述片上存储器提供所述待传输数据。例如,s103可以包括根据为所述多个目的端口中各目的端口分别设置的传输带宽阈值和预测带宽阈值,从多个所述目的端口中确定至少一个所述目标出口。
当某一个目的端口的实际传输带宽占用量和预测传输带宽占用量均大于对应设定的阈值时,s103确定这个目的端口可以作为待传输数据的目标出口。在本申请的一些实施例中,所述s103包括:确认第一目的端口(为多个目的端口中的任意一个)对应的第一实际传输带宽占用量小于与所述第一目的端口对应的第一传输带宽阈值,并确认所述第一目的端口对应的第一预测传输带宽占用量小于与所述第一目的端口对应的第一预测带宽阈值;选择所述第一目的端口作为所述目标出口。
也就是说,当一个目的端口的实际传输带宽大于传输带宽阈值,且预测传输带宽大于预测带宽阈值时,可以将这个目的端口作为待传输数据的目标出口。需要说明的是,如果来自于某一个源端口的待传输数据量大于这个目的端口能够提供的带宽时,这个源端口的待传输数据可以被分配至多个目标出口,此时这个目的端口对应的目标出口仅仅是这些目标出口中的一个。
作为一个示例,如图8所示。图8中有三个i/o设备访问主机host中的ddr。在示例性阐述传输策略之前,假设图8中设备或者链路还存在如下初始参数:
第一,图8中有3个device(即3个i/o设备)发起写传输请求,这三个写传输请求携带的信息表征待传输数据的平均带宽都为32gb/s。
第二,图8的3个device通过两个总线接口与主机host连接,基于第一点假设可知本次传输的目的端口的数量为两个,且这两个目的端口的满载带宽分别为48gb/s。
第三,假设图8的初始默认传输路由为s1→t1;s2→t2;s3→t2
第四,device的总线位宽为32byte,即一个系统传输周期cycle的有效传输为32byte;主机host的总线位宽为48byte,即一个系统时钟周期cycle的有效传输为48byte。
第五,假设工作频率为1ghz,即总线的理想带宽为32gb/s。
第六,假设每个device发起的写传输长度都为256byte。
下面结合上述六点假设示例性阐述图8的工作流程如下:
s201,设置设备device和主机host相关传输参数,设备device为写传输,传输长度为256byte。
s202,设置t1的传输带宽阈值为38gb/s(理想带宽的80%),t1的预测带宽阈值为48gb/s(理想带宽)。
s203,设置t2的传输带宽阈值为38gb/s(理想带宽的80%),t1的预测带宽阈值为48gb/s(理想带宽)。
s204,设置t1的监测器monitor的传输窗口大小为1024(即设置的传输窗口的大小为1024个cycle),设置t2的监测器monitor的窗口为1024。
s205,启动传输,各目的端口的监测器monitor开始工作。
s206,在第一个传输窗口结束时,执行如下步骤:
s206-1,t1的实际传输量transcount为1000*32byte,clkcount为1000,根据bw_trans的计算公式,带宽折算(即实际传输带宽占用量)为32gb/s;t1的预测传输量estcount为256byte,要完成256byte传输所需的clkcount为8个系统时钟周期cycle,所以根据est_trans的带宽计算公式,带宽折算(即预测传输带宽占用量)为32gb/s。两个带宽值都小于预设的阈值,即t1上带宽并未占满,可以接收其它源端口sourceport的传输。
s206-2,t2的实际传输量transcount为1000*48byte,clkcount为1000,根据bw_trans的计算公式,带宽折算(即实际传输带宽占用量)为48gb/s。
s206-3,t2来自s2的预测传输量estcount为256byte,要完成256byte传输所需的clkcount为6个cycle,所以t2来自s2的bw_est折算(即实际传输带宽占用量)为43gb/s;t2来自s3的预测传输量est_count为256byte,要完成256byte传输所需的clkcount为6个cycle,所以t2来自s2的bw_est折算(即实际传输带宽占用量)为43gb/s。所以t2端口上总的预估带宽需求为86gb/s。
s206-4,所以t2上实际传输带宽占用量和预测传输带宽占用量都高于对应阈值。
s206-5,软件将s2的路由更改为t1。
s207,在第二个传输窗口结束时,t1和t2的带宽计算结果和#6相反,软件将s2的路由更改为t2。
总体平均来看,图8的s2的带宽被平均分配16gb/s在目的端口t1和目的端口t2上。
需要说明的是,本申请的一些实施例通过判断来自于任意一个源端口的待传输数据的特征确定传输策略。例如,如果源端口还有很大量的待传输数据,则需要参考预测传输阈值来确定某个目的端口是否可以作为目标出口;如果源端口的待传输数据量较小时,则可以采用传输带宽阈值来确定是否可以将某个目的端口作为目标出口。
作为一个示例,当本申请一些实施例的某一个目的端口的实际传输带宽占用量和预测传输带宽占用量中有一个小于对应设定的阈值时,s103可以包括:根据所述待传输数据的属性特征,确认采用所述传输带宽阈值和所述预期带宽阈值中的至少一个确定所述目标出口,其中,所述属性特征用于表征所述待传输数据的数据量的多少。例如,包括:确认所述待传输数据的数据量大于第一设定阈值;确认第二目的端口对应的第二预测传输带宽占用量小于与所述第二目的端口对应的第二预测带宽阈值;选择所述第二目的端口作为所述目标出口;或者,确认所述待传输数据的数据量小于第二设定阈值;确认所述第二目的端口对应的第二实际传输带宽占用量小于与所述第二目的端口对应的第二传输带宽阈值;选择所述第二目的端口作为所述目标出口;其中,所述第一设定阈值大于所述第二设定阈值。上述第一目的端口为多个目的端口中的任意一个。
请参考图9,图9示出了本申请实施例通过的用于总线上的路由装置,应理解,该装置与上述图4方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该用于总线上的路由装置,包括:带宽占用量计算模块801,被配置为:获取总线上至少一个目的端口中各目的端口的实际传输带宽占用量;获取所述至少一个目的端口中各目的端口在未来预设时间段内的预测传输带宽占用量;仲裁模块802,被配置为根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述图4方法中的对应过程,在此不再过多赘述。
下面结合图10示例性阐述本申请实施例的用于片上总线的路由系统。
本申请的一些实施例提供一种用于片上总线的路由系统,所述路由系统包括:系统时钟计数模块210,被配置为当监测开始时,每个传输时钟周期加1,当达到设置的传输窗口值时,清零,并重新开始下一个监测传输窗口中的时钟计数;实际传输量计数模块220,被配置为根据传输有效信号统计上有效传输对应的实际传输量(即上文中记载的transcount);预测传输量计数模块230,被配置为根据传输请求信号统计通道上在未来预计时间段内的预测传输量(即上文中记载的est);带宽计算模块240,被配置为:根据设置的传输窗口大小(即图10的reg_window)和与一个目的端口对应的多个所述实际传输量确定所述目的端口的实际传输带宽占用量(即图10的bw_trans);根据可预测传输窗口大小和与所述目的端口对应的多个所述预测传输量确定预测传输带宽占用量(即图10的bw_trans_est);仲裁器250,被配置为:比较所述目的端口的实际传输带宽占用量与设置的传输带宽阈值(即图10的reg_threshold),获取第一比较结果;比较所述目的端口的预测传输带宽占用量与设置的预测传输带宽阈值,获取第二比较结果;根据所述第一比较结果和所述第二比较结果,生成目标出口选择信号(即图10的trans_block),其中,所述目标出口为从多个所述目的端口中选择的用于传输待传输数据的出口;路由器260,被配置为接收所述目标出口选择信号,以将所述待传输数据向所述目标出口发送。
在本申请的一些实施例中,确认传输有效信号为第一电平时,启动所述实际传输量计数模块进行一次计数,其中,所述第一电平为高电平或者低电平。例如,所述一次计数的计数步长是根据所述通道的传输位宽确定的。
作为一个示例,如图10所示传输有效信号即valid_transfer。valid_transfer指有效的一次总线传输。总线上每个通道分开计算valid_transfer,valid的条件为通道对应的传输有效信号,每次传输有效其对应实际传输量计数模块220的计数器增加一次。在数据通道上,每次计数器增加的为传输对应的byte数,即若数据通道为256-bit位宽,传输的byteenable都有效,则每次有效传输对应的计数器应加32。
在一些实施例中,确认传输请求信号为第二电平时,启动所述预测传输量计数模块进行一次计数,其中,所述第二电平为高电平或者低电平。例如,所述一次计数的计数步长是根据所述传输请求信号携带的本次待传输数据的传输长度确定的。
如图10所示,传输请求信号为request:用于预测即将发生的传输对带宽的占用,指总线上传输命令通道。在传输命令通道,当传输请求信号request有效时,计数器每次增加的byte数为传输长度,如传输长度为256byte,则计数器增加256,预测方式为:在接下来的256个传输cycle内,对应的数据通道会传输256个byte的数据。预测传输量计数模块230用于预测数据通道的带宽,但并未考虑当传输阻塞的情况,所以实际带宽应该小等于预测带宽。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述图4方法中的对应过程,在此不再过多赘述。
如图11所示,该图为本申请实施例提供的iohub与主机(或存储器)以及io设备互联的结构示意图。与图2不同是,图11的每个主机或者存储器与总线接口有四个(图11中的一个上行信号和一个下行信号对应一个总线接口),且图11各的总线接口模块中还可以设置监控器monitor,监控器monitor的输出信号(例如,输出信号包括如图10的实际传输带宽占用量bw_trans和预测传输带宽占用量bw_trans_est)经缓存器buf缓存后输入值仲裁即arbirtition,以进行路由仲裁,进而为来自于源端口的发送数据选择带宽合适的目标出口。针对图11与图2相同的单元在此不做过程陈述。
图11的带宽监测装置monitor包括图9的系统时钟计数模块210、实际传输量计数模块220、预测传输量计数模块230以及带宽计算模块240。对于这些模块的功能可以参考上文描述,为避免重复,在此不做过多赘述。
本申请的一些实施例提供一种片上系统的数据传输方法,所述数据传输方法包括:在一次有效传输开始前:设置多个目的端口中各目的端口对应的传输窗口的值,并设置所述多个目的端口中各目的端口对应的带宽比较阈值,其中,所述带宽比较阈值包括传输带宽比较阈值以及预测传输带宽阈值;当有效传输开始时,不断更新所述多个目的端口中各目的端口的实际传输带宽占用量和预测传输带宽占用量的值,其中,所述实际传输带宽占用量是根据所述传输窗口的值和统计的实际传输量计算得到的,所述预测传输带宽占用量是根据预测传输窗口的值和统计得到的预测传输量计算得到的;仲裁时,根据所述多个目的端口中各目的端口的所述带宽比较阈值动态调整输出的路由结果,以将来自于源端口的待传输数据路由至调整后的目标出口。
也就是说,本申请实施例的片上系统的数据传输方法如图12所示。在开始传输前,软件通过寄存器设置带宽计算的传输窗口大小和带宽比较阈值,当传输开始时,计算更新带宽(即计算实际传输带宽占用量和预测传输带宽占用量),仲裁时根据每个目的端口targetport的带宽阈值动态调整输出的路由结果,根据带宽更新路由该结果将源端口sourceport路由至调整后的目的端口targetport。当一笔传输结束时,该源端口sourceport若无后续传输则结束,若继续传输,则重复之前的带宽计算和路由调整。在做仲裁路由时,软件需设置对应目的端口targetport的reg_threshold,即端口port的带宽阈值(即设置传输带宽阈值并设置预测带宽阈值),当对应目的端口targetport的实际传输带宽大等于设置带宽阈值时,其它源端口sourceport不会被路由至该目的targetport,否则,可以接收其它源端口sourceport路由至此目的端口targetport。
本申请的一些实施例提供一种片上系统,所述片上系统包括处理器、存储器、至少一个i/o设备以及上述所述的路由系统以及装置;其中,所述至少一个i/o设备与所述处理器通过所述路由系统或者路由装置互连;或者,所述至少一个i/o设备与所述存储器通过所述路由系统或者路由装置互连。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
1.一种用于片上总线的路由方法,其特征在于,所述路由方法包括:
获取总线上至少一个目的端口中各目的端口的实际传输带宽占用量;
获取所述至少一个目的端口中各目的端口在未来预计时间段内的预测传输带宽占用量;
根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
2.如权利要求1所述的路由方法,其特征在于,所述目的端口为与主机或者片上存储器相连的端口,所述目的端口的数量为多个;
所述根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略,包括:根据所述实际传输带宽占用量和所述预测传输带宽占用量,为所述待传输数据从多个所述目的端口中确定至少一个目标出口;
其中,所述目标出口用于向所述主机或者所述片上存储器提供所述待传输数据。
3.如权利要求2所述的路由方法,其特征在于,所述根据所述实际传输带宽占用量和所述预测传输带宽占用量,为所述待传输数据从多个所述目的端口中确定至少一个目标出口,包括:
根据为所述多个目的端口中各目的端口分别设置的传输带宽阈值和预测带宽阈值,从多个所述目的端口中确定至少一个所述目标出口。
4.如权利要求3所述的路由方法,其特征在于,所述根据为所述多个目的端口中各端口分别设置的传输带宽阈值和预期带宽阈值,从多个所述目的端口中确定至少一个所述目标出口,包括:
确认第一目的端口对应的第一实际传输带宽占用量小于与所述第一目的端口对应的第一传输带宽阈值,并确认所述第一目的端口对应的第一预测传输带宽占用量小于与所述第一目的端口对应的第一预测带宽阈值;
选择所述第一目的端口作为所述目标出口。
5.如权利要求3所述的路由方法,其特征在于,所述根据为所述多个目的端口中各端口分别设置的传输带宽阈值和预期带宽阈值,从多个所述目的端口中确定至少一个所述目标出口,包括:
根据所述待传输数据的属性特征,确认采用所述传输带宽阈值和所述预期带宽阈值中的至少一个确定所述目标出口,其中,所述属性特征用于表征所述待传输数据的数据量的多少。
6.如权利要求5所述的路由方法,其特征在于,根据所述待传输数据的属性特征,确认采用所述传输带宽阈值和所述预期带宽阈值中的至少一个确定所述目标出口,包括:
确认所述待传输数据的数据量大于第一设定阈值;
确认第二目的端口对应的第二预测传输带宽占用量小于与所述第二目的端口对应的第二预测带宽阈值;
选择所述第二目的端口作为所述目标出口;
或者,
确认所述待传输数据的数据量小于第二设定阈值;
确认所述第二目的端口对应的第二实际传输带宽占用量小于与所述第二目的端口对应的第二传输带宽阈值;
选择所述第二目的端口作为所述目标出口;
其中,所述第一设定阈值大于所述第二设定阈值。
7.如权利要求1-6任一项所述的路由方法,其特征在于,所述实际传输带宽占用量是根据当前传输在传输窗口内的传输带宽确定的。
8.如权利要求7所述的路由方法,其特征在于,所述实际传输带宽占用量的计算公式如下:
其中,clkcount为在设置的传输窗口内统计的系统时钟周期数,transcount用于表征统计当前时刻的所有有效传输所对应的字节数。
9.如权利要求8所述的路由方法,其特征在于,通过监测通道中的传输有效信号统计参数transcount的值。
10.如权利要求1-6任一项所述的路由方法,其特征在于,所述预测传输带宽占用量是根据可预期的传输在可预期的传输窗口内的传输带宽确定的,其中,所述可预期的传输窗口是根据所述可预期的传输对应的传输长度和传输位宽确定的总的系统时钟周期数。
11.如权利要求10所述的路由方法,其特征在于,所述预测传输带宽占用量的计算公式如下:
其中,clkcount1为在所述可预期的传输窗口内的系统时钟计数值,est是通过统计当前传输请求所携带用于表征所述数据的传输长度得到的计数值。
12.如权利要求11所述的路由方法,其特征在于,通过提取通道中的传输请求信号所携带的信息获取所述est的值。
13.一种用于片上总线的路由装置,其特征在于,所述路由装置包括:
带宽占用量计算模块,被配置为:
获取总线上至少一个目的端口中各目的端口的实际传输带宽占用量;
获取所述至少一个目的端口中各目的端口在未来预计时间段内的预测传输带宽占用量;
仲裁模块,被配置为根据所述实际传输带宽占用量和所述预测传输带宽占用量,为来自于源端口的待传输数据确定传输策略。
14.一种用于片上系统的路由系统,其特征在于,所述路由系统包括:
系统时钟计数模块,被配置为当监测开始时,每个传输时钟周期增加1,当达到设置的传输窗口值时,清零,并重新开始下一个监测传输窗口中的时钟计数;
实际传输量计数模块,被配置为根据传输有效信号统计有效传输对应的实际传输量;
预测传输量计数模块,被配置为根据传输请求信号统计在未来预计时间段内的预测传输量;
带宽计算模块,被配置为:
根据设置的传输窗口大小和与一个目的端口对应的多个所述实际传输量确定所述目的端口的实际传输带宽占用量;
根据可预测传输窗口大小和与所述目的端口对应的多个所述预测传输量确定预测传输带宽占用量;
仲裁器,被配置为:
比较所述目的端口的实际传输带宽占用量与设置的传输带宽阈值,获取第一比较结果;
比较所述目的端口的预测传输带宽占用量与设置的预测传输带宽阈值,获取第二比较结果;
根据所述第一比较结果和所述第二比较结果,生成目标出口选择信号,其中,所述目标出口为从多个所述目的端口中选择的用于传输待传输数据的目标出口;
路由器,被配置为接收所述目标出口选择信号,以将所述待传输数据向所述目标出口发送。
15.如权利要求14所述的用于片上系统的路由系统,其特征在于,确认传输有效信号为第一电平时,启动所述实际传输量计数模块进行一次计数,其中,所述第一电平为高电平或者低电平。
16.如权利要求15所述的用于片上系统的路由系统,其特征在于,所述一次计数的计数步长是根据通道的传输位宽确定的。
17.如权利要求14所述的用于片上系统的路由系统,其特征在于,确认传输请求信号为第二电平时,启动所述预测传输量计数模块进行一次计数,其中,所述第二电平为高电平或者低电平。
18.如权利要求17所述的用于片上系统的路由系统,其特征在于,所述一次计数的计数步长是根据所述传输请求信号携带的待传输数据的传输长度确定的。
19.一种片上系统的数据传输方法,其特征在于,所述数据传输方法包括:
在一次有效传输开始前:
设置多个目的端口中各目的端口对应的传输窗口的值,并设置所述多个目的端口中各目的端口对应的带宽比较阈值,其中,所述带宽比较阈值包括传输带宽比较阈值以及预测传输带宽阈值;
当有效传输开始时,不断更新所述多个目的端口中各目的端口的实际传输带宽占用量和预测传输带宽占用量的值,其中,所述实际传输带宽占用量是根据所述传输窗口的值和统计的实际传输量计算得到的,所述预测传输带宽占用量是根据预测传输窗口的值和统计得到的预测传输量计算得到的;
仲裁时,根据所述多个目的端口中各目的端口的所述带宽比较阈值动态调整输出的路由结果,以将来自于源端口的待传输数据路由至调整后的目标出口。
20.一种片上系统,其特征在于,所述片上系统包括处理器、存储器、至少一个i/o设备以及如权利要求14-18任一项所述的路由系统;
其中,所述至少一个i/o设备与所述处理器通过所述路由系统互连;或者,
所述至少一个i/o设备与所述存储器通过所述路由系统互连。
技术总结