用于时隙分配的集成电路和方法

文档序号:7947288阅读:140来源:国知局
专利名称:用于时隙分配的集成电路和方法
技术领域
本发明涉及具有多个处理模块的集成电路和安排用于耦合处理模块的网络,和用于在这类集成电路中进行时隙分配的方法,以及数据处理系统。
背景技术
由于实现新特征和现有功能的改进的需求正日益增加,硅系统示出持续增大的复杂性。这通过增加密度而被实现,利用该密度元件可以被集成在集成电路上。同时,电路被操作的时钟速度也趋向于增加。结合元件密度增加的更高时钟速度已经减少了在同一时钟域内可以同步操作的区域。这已经产生了对模块化方法的需要。根据这类方法,处理系统包括多个相对独立的、复杂的模块。在常规处理系统中,系统模块通常经由总线互相通信。然而,随着模块数量的增加,这种通信方法由于下列理由而不再实际。一方面,大量的模块形成过高的总线负载,并且总线构成了通信瓶颈,它只能够使一个装置向该总线发送数据。
一种通信网络形成了一种克服这些缺点的有效方法。近来,片上网络(NoC)已经作为高度复杂芯片中的互连问题的一种解决方案而受到相当的注意。理由有两个方面。首先,NoC帮助解决新的深亚微米技术中的电问题,因为它们构造以及管理全局线路。同时它们共享线路,从而降低了它们的数量并且增加了它们的利用率。NoC还可以是能量有效且可靠的并且较之总线来说是可伸缩的。第二,NoC还去耦来自通信的计算,这在管理十亿晶体管芯片的设计中是根本的。NoC实现了这个去耦,因为它们在传统上是用协议栈来设计的,这提供了定义明确的接口,该接口使通信服务使用与服务实施分离。
较之诸如总线或开关之类的直接互连,把网络引入为片上互连根本上改变了通信。这是由于网络的多跳特性,其中,通信模块没有被直接连接,而是被一个或多个网络节点远程地隔离。这与普遍存在的直接连接模块的互连(即,总线)相比大不相同。这些变化的含意在于仲裁(其必须从集中变化为分发),并且在于通信属性(例如,排序或流量控制),其必须由知识产权块(IP)或所述的网络来处理。
这些课题中的大多数已经是局域和广域网(计算机网络)领域中的研究主题并且作为用于并行机互连网络的互连。这二者都与片上网络密切相关,并且那些领域中的许多结果也适用于片上。然而,NoC的前端(premise)不同于片外网络,并且因此,大部分网络设计选择必须被再评估。片上网络具有产生不同设计选择的不同属性(例如,较紧密的链路同步)和约束条件(例如,更高的存储成本),这最终影响到网络服务。
NoC与片外网络的主要不同之处在于它们的约束条件和同步。在典型情况下,片上比片外情况下的资源限制更加严厉。存储(即,存储器)和计算资源相对来说更多昂贵,而片上的点到点链路的数量比片外情况更大。存储是昂贵的,这是因为诸如RAM之类的通用片上存储器占用的面积较大。在规模相对较小的网络元件中分发存储器甚至更糟,因为存储器中的开销区域占优势。
在典型情况下,片外网络使用分组交换并且提供尽力而为的服务。争用在每个网络节点处都会发生,从而使得提供延迟保证非常困难。吞吐量保证仍然可以用诸如基于速率的交换或基于期限的分组交换之类的方案来提供,但是其缓冲成本很高。提供这类时间相关的保证的一个替代方案是使用时分多址(TDMA)电路,其中每个电路被专用于网络连接。电路以相对低的存储器和计算成本提供了保证。当网络结构允许由尽力而为通信所使用的任何剩余保证带宽时,网络资源利用率被增加。
在典型情况下,片上网络(NoC)由多个路由器和网络接口组成。路由器充当网络节点,并且通过静态地(即,路由是预定的并且不会变化),或动态地(即,路由可以取决于例如NoC负载改变以避免热点)在正确路径上把数据路由到目的地,路由器还被用来把数据从源网络接口传送到目的地网络接口。路由器还可以实现时间保证(例如,基于速率、基于期限,或通过使用TDMA方式中的管线电路)。关于路由器结构的更多详情可以在Edwin Rijpkema、Kees Goossens以及Paul Wielage于2001年10月在PROGRESS中的“A router architecture fornetworks on silicon”找到。
网络接口被连接到IP块(知识产权),其可以表示任何种类的数据处理单元或者还可以是存储器、电桥等等。特别地,网络接口在IP块和网络之间构成了通信接口。所述接口通常与现有的总线接口兼容。因此,所述网络接口被设计用于处理数据序列化(datasequentialisation)(把所提供的命令、标记、地址和数据适配在固定宽度(例如,32比特)的信号群上)和分组化(添加网络内部所需的分组报头和报尾)。所述网络接口还可以实现分组调度,其可以包括定时保证和许可控制。
片上系统往往要求它们的互连通信具有定时保证。因此提供了一个通信类别,其中,吞吐量、延迟和抖动基于全局时间的概念(即,网络元件(即路由器和网络接口)之间的同步性概念)得到了保证,其中,基本时间单元被称作间隙或时隙。所有的网络元件通常都包括对于网络元件的每个输出端口来说大小相等的时隙表,其中,时隙专供不同的连接之用并且时隙表同步前进(即,所有时隙表在同一时间都在同一时隙中)。所述连接被用来标识不同的业务类别并且被用来把属性与之关联。
一种提供时间相关保证(即,吞吐量、延迟和抖动)的成本有效方法是使用TDMA(时分多址)方式中的管线电路,这是有利的,因为它较之基于速率和基于期限的具有紧密同步的片上系统(SoC)方案来说需要更少的缓冲空间。
在每个时隙处,数据项从一个网络元件被移动到下一个网络元件,即在路由器之间或在路由器和网络接口之间移动。因此,当在输出端口处预留一个时隙时,下一个时隙沿主模块和从模块之间的路径必须在接下来的输出端口上被预留,等等。
当具有定时保证的多个连接被建立时,时隙分配必须被执行从而不存在冲突(即不存在被分配给多个一个连接的时隙)。对于一个给定的网络拓扑(即,给定数量的路由器和网络接口,以及在IP块之间的一组连接),找到最佳时隙分配的任务是一个高度计算强化的问题(NP完成),因为它涉及找到一种需要穷举计算时间的最佳解决方案。

发明内容
因此,本发明的目的是在片上网络环境中提供改进的时隙分配。
这个目的通过根据权利要求1的集成电路和用于根据权利要求6的时隙分配的方法以及根据权利要求7的数据处理系统而被实现。
因此,提供了一种包括多个处理模块和被安排用于耦合所述模块的网络的集成电路。所述集成电路还包括多个网络接口,每个网络接口被耦合在所述处理模块之一和所述网络之间。所述网络包括经由网络链路被耦合到相邻路由器的多个路由器。所述处理模块在使用通过网络的连接路径的连接上互相通信,其中,所述连接路径的每一个使用至少一个网络链路用于所需数量的时隙。至少一个时隙分配单元被提供用于把时隙分配给所述网络链路,用于确定未使用的时隙,用于使用网络链路把除了其已经分配的时隙之外确定未使用的时隙分配给一个或多个连接。
因此,在时隙分配之后未使用的那些时隙可以被用于一些连接,以便这些连接的延迟被降低。
本发明还涉及一种用于在集成电路中时隙分配的方法,该集成电路具有多个处理模块、被安排用于耦合所述模块的网络、以及多个网络接口,每个网络接口被耦合在所述处理模块之一之间。所述网络包括经由网络链路被耦合到相邻路由器的多个路由器。处理模块之间的通信在使用通过网络的连接路径的连接上被执行,其中所述连接路径的每一个使用至少一个网络链路用于所需数量的时隙。在时隙分配期间未使用的时隙被确定,并且除了其已经分配的时隙之外使用所述网络链路被分配给一个或多个连接。
本发明还涉及数据处理系统,其包括多个处理模块和被安排用于耦合所述模块的网络。所述集成电路还包括多个网络接口,每个网络接口被耦合在所述处理模块之一和所述网络之间。所述网络包括经由网络链路被耦合到相邻路由器的多个路由器。所述处理模块在使用通过网络的连接路径的连接上相互通信,其中,所述连接路径的每一个使用至少一个网络链路用于所需数量的时隙。至少一个时隙分配单元被提供用于把时隙分配给所述网络链路,用于确定未使用的时隙,用于使用网络链路把除了其已经分配的时隙之外确定未使用的时隙分配给一个或多个连接。
因此,时隙分配也可以在多片网络或具有几个分离的集成电路的系统或网络中被执行。
本发明是基于利用在时隙分配之后未使用的那些时隙这样一个方法,其借助于除了已经分配的时隙之外将这些未使用的时隙分配给片上网络环境中的连接,以便降低这类连接的延迟。
本发明的其它方面在从属的权利要求中被限定。


现在,将参考附图更详细地描述本发明。
图1示出了根据本发明的片上网络的基本结构;图2示出了在根据图1的网络中用于连接的基本时隙分配;图3更详细地示出了在根据图1的网络中的时隙分配;图4示出了根据本发明的更详细的时隙分配;图5示出了根据本发明的更详细的时隙分配;图6示出了根据本发明的更详细的时隙分配;图7示出了根据第一实施例的片上网络环境;图8示出了图7的片上网络环境的一部分;图9示出了用于找到空闲时隙的方法的图解;图10示出了具有几个连接的片上网络;图11示出了根据具有已计算链路加权的图9的片上网络;图12示出了根据具有已计算连接权的图10的片上网络;和图13示出了用于根据图10的所有连接的详细时隙分配。
具体实施例方式
下面实施例涉及片上系统,即在经由某种互连相互通信的同一芯片上的多个模块。所述互连被具体化为片上网络NOC。所述片上网络可以包括网络内的线路、总线、时分多路复用、开关和/或路由器。在所述网络的传输层上,模块之间的通信在连接上被执行。一个连接被认为是在第一模块和至少一个第二模块之间的一组信道,每个信道都具有一组连接属性。对于在第一模块和一个第二模块之间的连接,所述连接可以包括两个信道,即从第一模块到第二模块的信道,也就是请求信道,和从第二模块到第一模块的第二信道,也就是响应信道。请求信道专供从第一到第二模块的数据和消息之用,而响应信道专供从第二到第一模块的数据和消息之用。如果不需要响应,则连接可以只包括一个信道。然而,如果连接涉及一个第一模块和N个第二模块,则2*N个信道被提供。因此,连接或通过网络的连接路径(即,连接路径)包括至少一个信道。换言之,如果只使用一个信道,则信道对应于连接的连接路径。如果如上所述地使用两个信道,则一个信道将提供例如从主方(master)到从方(slave)的连接路径,而第二信道将提供从从方到主方的连接路径。因此,连接路径对于一个典型连接来说将包括两个信道。连接属性可能包括排序(顺序数据传送)、流量控制(远程缓冲器专供连接之用,并且数据生成器只有在保证有空间可用于被产生的数据时才被允许发送数据)、吞吐量(吞吐量的下限得到保证)、延迟(延迟上限得到保证)、损失(数据丢弃)、发射终止、事务完成、数据校正、优先级、或数据递送。
图1示出了根据本发明的片上网络。该系统包括几个所谓的知识产权块IP(计算元件、存储器或在内部可能包括互连模块的子系统),这些知识产权块各自分别经由网络接口NI被连接到网络N。网络N包括多个路由器R,所述路由器经由相应链路连接到相邻路由器R。
网络接口NI被用作IP块和网络N之间的接口。网络接口NI被提供来管理相应的IP块和网络N的通信,以便IP块可以无须处理与网络N或其它IP块的通信就执行它们的专用操作。IP块可以充当主方,即发起请求,或可以充当从方,即从主方接收请求并且因此处理该请求。
图2示出了在根据图1的片上网络中的连接和基本时隙分配的框图。特别地,主方M和从方S之间的连接被示出。这个连接通过与主方M相关联的网络接口NI、两个路由器以及与从方S相关联的网络接口NI来实现。与主方M相关联的网络接口NI包括时隙分配单元SA。替换地,与从方S相关联的网络接口也可以包括时隙分配单元SA。第一链路L1存在于与主方M相关联的网络接口NI和第一路由器R之间,第二链路L2存在于两个路由器R之间,并且第三链路L3存在于一个路由器和与从方S相关联的网络接口NI之间。相应网络元件的输出端口的三个时隙表ST1-ST3也被示出。优选地,这些时隙表被实现在诸如网络接口和路由器之类的网络元件的输出端上,即数据产生端。对于每个被请求的时隙,一个时隙在沿连接路径的链路的每个时隙表中被预留。所有这些时隙必须空闲,即没有被其它信道预留。因为数据从一个网络元件前进到另外每个从时隙s=1开始的时隙,所以沿连接的下一个时隙必须在时隙s=2和然后在时隙s=3被预留。
由时隙分配单元SA执行的时隙分配判断所用的输入是如网络元件之类的网络拓扑,具有其互连和时隙表大小以及连接组。对于每个连接,其路径及其带宽、延迟、抖动、和/或时隙需求被给定。一个连接由至少两个信道或连接路径组成(从主方到从方的请求信道,和从从方到主方的响应信道)。这些信道中的每一个都被设置在一个独立路径上,并且可以包括具有不同带宽、延迟、抖动和/或时隙需求的不同链路。为了提供时间相关的保证,时隙必须专供所述链路之用。借助于TDMA,不同的时隙可以专供不同的连接之用。然后,连接数据在连续时隙中在沿所述连接的连续链路上被传送。
图3更详细地示出了图2的一个表的实施。在此,示出了分别位于在网络接口NI1和路由器R1之间、在路由器R1和路由器R2之间、以及在路由器R1和网络接口NI2之间的两个网络接口NI1、NI2和两个路由器R1、R2以及三个链路L1-L3。IP块未示出。时隙表ST1-ST3被示出以用于被标记链路L1-L3中的每一个。这些链路是双向的,并且因此对于每个链路来说存在用于两个方向中每个方向的时隙表;时隙表ST1-ST3只被示出用于一个方向。另外,三个连接c1-c3被描述。除了上述的三个时隙表ST1-ST3之外,另外的时隙表ST4-ST6也被示出。现在,所有的时隙表ST1-ST6都被示出,它们与三个连接c1-c3有关。第一连接c1经由路由器R1和R2从网络接口NI1延伸到网络接口NI2。第二连接c2从网络接口NI1延伸到路由器R1,并且然后延伸到另一个使用时隙表ST4的网络元件(未示出)。第三连接c3起源于一个未示出的网络元件并且从路由器R1传递到路由器R2并且进一步传递到另一个使用时隙表ST6的未示出网络元件。连接c1在它使用的三个链路L1-L3(NI1到R1、R1到R2、和R2到NI2)中的每一个中都预留一个时隙。这些链路中的时隙必须是连续的(分别是时隙2、时隙3和时隙4)。在一个时隙中,从路由器的观点看来,路由器在链路L1-L3供其专用的连接c1-c3上从输入链路接收数据。数据被存储在路由器中。同时,路由器将其在先前时隙已经接收的数据发送到输出链路。根据这个模型,因为数据被存储在路由器中最多一个时隙,所以连接时隙必须被连续地预留。
时隙分配问题的一个可能概括或替换是允许数据在路由器中缓冲多于一个时隙的持续时间。从而,时隙分配变成更灵活,以更多缓冲和可能更长的延迟作为代价,这能够产生更好的链路利用率。
时隙必须被预留,以便在链路上不存在冲突。也就是说,不存在预留相同链路的相同时隙的两个连接。因此,C1为NI1和R1之间的链路预留时隙2。因此,C2不能将时隙2用于同一链路。
通过为第一、第二和第三链路L1-L3的每一个实施规定哪些时隙专供哪个连接之用的表,图4示出了一个简单明了的时隙表实施。特别地,只有那些时隙表ST1-ST3被示出,三个连接c1-c3需要它们来用于三个链路L1-L3。存储这个表的优选位置是在产生用于该链路的数据的路由器/网络接口中,即输出端口,因为路由器/网络接口必须知道一个链路何时被预留或没有被预留,以便产生用于那个链路的数据。所述表也可以是时隙分配单元SA的一部分。
图5示出了一个更有效的时隙分配编码。在此,也只有那些时隙表ST1-ST3被示出,三个连接c1-c3需要它们来用于三个链路L1-L3。一个时隙属于哪个连接的信息被存储在网络接口NI中,并且特别地被存储在时隙分配单元SA中,而路由器中的时隙表ST1-ST3仅仅标记一个时隙是否专供所述链路之用。路由器不需要知道与时隙相关联的连接,因为它们只把数据从一个网络元件移动到另一个网络元件,并且最后基于分组报头(包括目的地地址或目的地路径)将数据移动到正确的输出。
在图6中,图4和图5的上述编码的一个可能变化形式被示出。在此,路由信息被存储在路由器自身中(而不是被存储在分组报头中)。在输出端口时隙表ST1-ST3中,时隙指出从哪个输入数据被耗费。用这种方法,分组报头可以被省略,从而以加大路由器中的时隙表作为代价而产生更多的吞吐量。
图7示出了根据本发明的优选实施例的片上网络。片上网络包括两个路由器R7、R4,分别是7×7路由器和4×4路由器。这两个路由器分别经由八个网络接口NI1-NI8被连接到另外IP块。IP块分别是decomp(解压缩器)单元、LO存储单元、ME/MC(运动估计/运动补偿)单元、comp(压缩)单元、存储器MEM、另一个decomp单元、和另一个ME/MC单元。因为相应IP块的特殊功能对于描述本发明的原则来说不重要,所以其详细说明将被省略。
另外,图7示出了用于网络接口NI和路由器R7、R4之间的每个链路的两个时隙表。特别地,分别,一个时隙表被正向提供,而一个时隙表被反向提供。而且,两个时隙表被提供在路由器之间的用于在两个路由器R7、R4(即,一个正向和一个反向)之间通信的链路处。从而,总计18个时隙表被示出以用于这个片上网络中的九个链路。请注意,那18个时隙表在附图中被示出,但是物理上只能存在8个时隙表,因为只一个时隙表(例如,正向)是一个网络接口所必需的并且路由器可能根本不需要任何时隙表。
在图7中示出了在时隙分配被执行用于这个片上网络内的某些连接之后的情况。可见,一些时隙表被完全地预留(例如,与第二网络接口NI2和第三网络接口NI3相关联的正向时隙表以及与第四和第八网络接口NI4、NI8相关联的反向时隙表)。在一些其它时隙表中(例如与第五网络接口NI5相关联的正反向时隙表),仅仅20个时隙中的一个时隙已经被预留。
在18个时隙表中,预留时隙由灰色方框指出,而任何空闲时隙由白色方框指出。在此,全部的18个时隙表都包括20个时隙,以便使它们保持同步。例如,第一网络接口NI1之间的链路中的正向时隙表包括17个预留时隙和3个空闲时隙。17个预留时隙中的16个时隙可以与一个连接相关联,而一个预留时隙可以与另一个连接相关联。另外,第八网络接口NI8和路由器R7之间的链路中的正向时隙表包括四个预留时隙和16个空时隙。
18个时隙表中有许多时隙表具有空时隙(即,未被预留的时隙)的原因是不同IP块所需的数据率小于可用的数据率。时隙表大小制定一个折衷以便满足这片上网络中的所有连接的连接需求。分配时隙表中的相应时隙所使用的时隙表分配算法被设计以最小化用于所有时隙表的时隙表碎片,即不同时隙表中的空时隙。因此,这个算法把片上网络内的所有连接都映射到可用的时隙表,从而最小化完全不可用的时隙。从利用率的观点看来,这类时隙分配是更可取的,因为它使用了时隙表中最小数量的时隙。然而,这类时隙分配引入的延迟在某些情况下决不是最佳的。例如,与第八网络接口NI8相关联的正向时隙表包括来自20个可用时隙的4个预留时隙。因此,因为16个时隙是空闲的,所以最坏情况的方案将是它们必须等待高达16个周期。然而,未使用或空闲的时隙被采用以便降低从一个IP块到另一个IP块的连接的延迟。
图8示出了从根据图7的片上网络选择的元件。因此,不需要的所有元件已经在图8中被省略。特别地,两个路由器R7、R4,第二、第六和第八网络接口NI2、NI6、NI8及其相应的正反向时隙表被示出。另外,与两个路由器R7、R4相关联的正反向时隙表也在图8中被示出。而且,两个连接C1、C2也在图8中被描述。第一连接C1需要3个时隙以便经由第八网络接口NI8、其关联的时隙表ST1-F和ST1-R、与第二网络接口相关联的时隙表2、ST2-F和ST2-R、和第二网络接口NI2从ME/MC传递到L0存储器。第二连接C2需要一个时隙以便经由第八网络接口NI8、其关联的正向时隙表ST1-F、路由器R7、两个路由器R7、R4之间关联的时隙表ST3-F、时隙表ST4-R、第六网络接口NI6从ME/MC传递到存储器MEM。
因为连接C1仅仅经过路由器R7,所以只有两个正向时隙表,即时隙表ST1-F和ST2-F,以及两个反向时隙表,即ST1-R和ST2-R必须被对准以便保证所需的延迟以及吞吐量。在第二连接C2的情况下,三个正向时隙表(即ST1-F、ST3-F和ST4-F)和三个反向时隙表(即ST1-R、ST3-R和ST4-R)必须被对准。
如上所述,连接延迟取决于在时隙表中的两个被分配的时隙之间的距离。因此,仍未使用的时隙被分配给一些现有的连接以便降低连接延迟。辅助时隙(即未使用的空闲时隙,它们通过降低延迟被分配给一个连接)的数量是沿用于将数据从片上网络的一侧传送到另一侧的连接路径上每个时隙表中可用的最小数量的时隙。如上所述,连续时隙应该沿连接路径中的时隙表而被预留。
因为在与第二网络接口NI2相关联的时隙表ST2-R中仅仅有一个时隙仍然可用,而在时隙表ST1-F中仍然有16个时隙可用,所以只有一个时隙可以被用于第一连接C1内的延迟降低。在三个时隙表ST1-F、ST3-F、ST4-R内,15、16和16个时隙分别可用于第二连接C2。
因此,一个辅助时隙可以被分配给第一连接C1,而15个辅助时隙可以被分配给第二连接C2。因此,第一连接C1的最坏情况的延迟等待时间,即时隙表中的时隙总数减去被分配的时隙数量从17(20个时隙-3个预留时隙)减少到16(20个时隙-(3个被分配的时隙+1个延迟降低时隙))。第二连接C2的最坏情况方案中的等待时间从19(20个时隙-1个被分配的时隙)减少到4(20个时隙-(1个被分配的时隙+15个用于延迟降低的时隙))。因此,延迟降低的效率极大地取决于在执行时隙分配之后空闲或未使用时隙的数量。在时隙分配之后利用未使用或空闲的时隙在某种程度是有利的,因为这个技术没有引入任何成本或复杂性,因为仅仅那些在不执行根据本发明的这个技术的情况下而可能已被浪费的时隙被利用。
尽管优选实施例的原则只被描述用于一个时隙表的连接,然而相同的技术也适用于片上网络内的时隙表内的任何连接。如果将未使用时隙用于延迟降低的技术在包括多个连接以及多个时隙表的片上网络内被执行,则可用于延迟降低的未使用和空闲时隙必须被划分或者通过使用具有未使用时隙或延迟冗余时隙的时隙表而在连接之间共享。
优选地,不同的优先级可以与片上网络内的连接相关联,以便那些需要增加延迟降低的连接可以首先被服务。这可以通过在时隙分配单元中存储一个优先级列表来实现。
为了进一步改进可用于延迟降低的未使用时隙的标识,时隙分配单元SA可以把相应的时隙标记为已使用、未使用或预留以延迟降低。对于时隙分配单元SA内的标志器单元MU的这类实施,必须提供一个具有三个而不是两个值的标志器。第三值(即,专供延迟降低之用的第三值)可以允许这些时隙用于任何其它目的。标志器的这类实施不会影响连接的保证吞吐量。
应当指出,实际的延迟有效降低将取决于用于给定连接的时隙分配和在片上网络环境中未使用时隙在时隙表中的位置。上述改进的时隙分配技术的优点是用于传送数据的连接的延迟被降低。延迟降低的这个实施将不带有任何额外的成本或复杂性。复杂性的增加只会通过降低延迟比特而产生。这个比特可以被置于片上网络环境内的时隙表中,或者被置于存储连接属性的集中管理单元内。另外,另一个标志器被提供,其用于指出被标记的时隙可用于其它目的,即可以被配置来用于另外连接,而不会影响相应连接的保证吞吐量。
延迟降低时隙分配可以在时隙分配之后被执行,或者可以并行于时隙分配的开始而被使用。这个延迟降低时隙分配可以在多个同步的TDMA中被使用,而且还可以在单个TDMA系统(例如声能学底板)中被使用。
现在,实际的时隙分配功能被描述,其可以在上述的未使用时隙判断之前在时隙分配单元SA中被实现。结果产生对应于时隙需求的时隙分配。对于连接路径中的每个链路,一个加权作为用于使用该链路的连接路径中的每个信道chi所请求的带宽、延迟、抖动优先级和/或时隙数的函数被计算weight(link)=f(bandwidth(chi),latency(chi),jitter(chi),priority(chi),slots(chi))chisuch that link∈chi替换地,对于连接路径中的至少一个信道中的每个链路,一个加权作为用于使用该链路的每个连接路径(即,每个信道)所请求或所需要的时隙数量和被计算weight(link)=Σlink∈path(channel)slots(channel)]]>然后,对于连接路径中的每个信道,一个加权作为连接路径一部分的信道路径中的链路加权以及信道的可能其它属性(例如,带宽、延迟、优先级)的函数(例如,和)被计算weight(ch)=f(weight(linki),bandwidth(ch),latency(ch),jitter(ch),priority(ch),slots(ch))linki∈ch或者替换地,对于每个信道(即,每个连接路径),一个加权作为信道路径中的链路加权之和被计算weight(channel)=Σlink∈path(channel)weight(link)]]>对于替换的上述简单函数weight(link)=Σlink∈path(channel)slots(channel)]]>weight(channel)=Σlink∈path(channel)weight(link)]]>这个算法可以通过下列伪码而被实现-计算链路加权
FOR all channels C DOFOR all linkL ∈path(C)DOweight[L]+=slots[C]ENDFORENDFOR-计算信道加权FOR all channels CDOFOR all linkL ∈path(C)DOweight[C]+=weight[L]END FORENDFOR-执行时隙分配BEGINFOR all channels C sorted decreasingly by weight(C)DOFind slots[C]free slots and allocated them to CEND FOR时隙以其被计算加权的降序被分配给信道。对于每个被请求的时隙,在沿信道路径的链路的每个时隙表中都预留一个时隙。所有这些时隙必须空闲,即之前没有被其它信道预留。这些时隙可以以一个试差法方式来分配从一个特殊的时隙开始,大量的时隙被检查,直到在沿路径的所有链路中找到一个空闲时隙为止。
时隙可以使用不同策略被谋求用于分配。例子是连续时隙,或者均匀分布的时隙。需要多个策略的原因是不同的属性可以用不同的策略来优化。例如,连续时隙可以降低报头开销,而均匀分布的时隙可以降低延迟。
所建议的技术具有一个O(C×L×S)的低复杂性,其中,C是信道数量,L是链路数量,而S是时隙表大小。用这算法获得的时隙分配与最优情况(以更高的复杂性获得O(Sc))比较,并且比贪婪式算法(即,用信道分配的随机顺序)好2的因数。
一个替换的示例算法现在被描述。再次对于每个链路,一个加权作为用于使用该链路的每个信道所请求的时隙数量之和被计算weight(link)=Σlink∈path(channel)slots(channel)]]>然后,对于每个信道,一个加权作为信道路径的链路加权之和被计算
weight(channel)=a1×Σlink∈path(channel)weight(link)+a2×length(channel)+a3×slots(channel)]]>其中,a1、a2、和a3是恒定的(这是一个加权公式的例子,但是其它情况也是可能的)。
这个示例算法可以通过下列伪码而被实现-计算链路加权FOR all channels CDOFOR all link L ∈ path(C)DOweight[L]+=slots[C]ENDFORENDFOR-计算信道加权FOR all channels C DOFOR all link L ∈path(C)DOweight[C]+=weight[L]END FORweight[C]=a1x weight[C]+a2x length[C]+a3x slots[C]END FOR-执行时隙分配BEGINFOR all channels C sorted decreasingly by weight(C)DOFind slots[C]free slots and allocate them to CEND FOR根据第二实施例的链路加权计算如第一代码中所述,但是信道加权被不同地计算。这个信道加权公式背后的概念是利用当频繁地经过被使用的链路,即经过热点(高负载链路,和因此将预留一个大时隙)而需要更多时隙的信道,以及通过给定较高加权而具有长路径的信道来开始调度,以便它们被首先调度。原因是这些连接具有更多的约束条件,并且因此如果最后离开,则找到空闲时隙的机会就更少了。与之对照,较短的信道经过使用较少的链路,从而能更自由地找到时隙,并且从而被留到时隙分配的结尾。
时隙可以用其被计算加权的降序被分配给信道(即,每个连接路径)。对于每个被请求的时隙,在沿图2中所示的信道路径的链路的每个时隙表中预留一个时隙。所有这些时隙必须是空闲的,即之前没有被其它信道(即,每个连接路径)预留。这些时隙可以以一个试差法方式来分配从一个特殊的时隙开始检查时隙,直到在沿路径的所有链路中找到所需数量的时隙空闲为止。一个示例算法跟踪在下述部分中被给出。
图9示出了一种发现空闲时隙的方法。在此,举例来说,一个大小为16的时隙表被描述。时隙发现过程可以用多种方式来执行。一个示例是用贪婪方法,即前N个空闲时隙的方法来发现时隙。另一个示例是发现等距时隙以便最小化缓冲空间。这可以通过发现第一空闲时隙ffs,然后计算时隙表中等距的位置,并且然后在被计算位置中局部搜索来发现最接近的空闲位置而被完成。已经被预留的时隙在图9中被标记为叉型。第一空闲时隙ffs是时隙2。因为存在16个时隙,所以其它两个时隙的理想位置(第二位置ip2、第三位置ip3)分别应该是时隙7和13(以便获取它们之间的相等距离)。因为时隙7已经被预留,所以一个空闲时隙在时隙7附近被搜索。发现的最接近的空闲时隙是时隙5。因为时隙13是空闲的,并且它也可能被预留。因此,三个被预留的时隙是2、5和13,并且被标记为黑球。
应当指出,用于一个连接的空闲时隙是那些沿完整路径空闲的时隙,即连续时隙在沿路径的连续链路中应该是空闲的。因此,沿一个连接路径的所有时隙表都必须被检查以便发现一个用于特殊连接的空闲时隙。搜索用于连接的空闲时隙的一种简单方法是从连接的第一次链路开始,并且尝试沿路径的所有后续时隙表,跳过那些被预留的时隙。为了最小化搜索时间,还可以从最大负载链路开始。
图10示出了如图5所述的对于只存储(使用1比特)时隙预留的情况下加速搜索空闲时隙的另一技术。它是基于并行检查多个时隙。这可以用硬件(用于检查任何固定比特数的单元,即时隙分配单元SA)和软件(CPU数据字可以同时存储例如16或32个时隙预留)来执行。在图10的左侧,用于链路L1到L4的时隙表1st被示为一个例子。在右侧,用来确定沿路径的空闲时隙的空闲时隙字fsw被示出。空闲时隙通过横跨时隙表并且过滤被预留的时隙表,并且在每个链路处(对应所需要的时隙对准)将被搜索的时隙移动(>>(1))一个位置而被发现。首先,路径的第一链路L1被选择,它包括预留时隙0、1、6、9、11、12和14。这些时隙例如由空闲时隙字中的′X′被标记为预留。其后,空闲时隙字fsw被向右移动一个位置来反映时隙对准,和OR-ed,即或操作被执行来添加第二链路的被预留时隙(时隙3、6、10和12)。这些步骤被重复用于第三和第四链路L3、L4,从而在沿路径的所有链路中产生空闲时隙的一个矢量。为了将其对准到第一链路L1,它被左移三个位置。结果是,在沿给定路径的所有链路L1-L4中,第一链路L1的时隙4、8、10和13是空闲的。特别地,时隙4对于链路L1是空闲的,而时隙5、6和7对于链路L2、L3和L4分别是空闲的。时隙8在链路L1中是空闲的,而时隙9、10和11分别对于链路L2、L3和L4是空闲的。另外,时隙10在链路L1中是空闲的,而时隙11、12和13分别对于链路L2、L3和L4是空闲的。时隙13在链路L1中是空闲的,而时隙14、15和1分别对于链路L2、L3和L4是空闲的。
图11示出了由4个路由器R1-R4和7个网络接口NI(NI1-NI7)组成的片上网络的例子。网络接口与之连接的IP块未被示出。举例来说,12个连接C1-C12被选择。这些连接被用来在附着于网络接口NI的IP模块(未示出)之间传送数据,并且因此,所述连接总是被设置在两个网络接口NI之间。为了简化起见,我们假定所有的连接都是单向的(由一个信道组成),然而实际上也可能存在双向连接(两个信道)。例如,连接C1在NI1开始,并且经过R1和R4到达NI6。类似地,连接C2经过NI1、R1、R2、R3和NI4。连接C3经过NI1、R1、R2和NI2。连接C4经过NI2、R2、R3、R4和NI7。连接C5经过NI2、R2和NI3。连接C6经过NI3、R2、R1和NI1。连接C7经过NI3、R2、R3和NI5。连接C8经过NI4、R3和NI5。连接C9经过NI5、R3、R4、R1和NI1。连接C10经过NI6、R4、R3、R2和NI2。连接C11经过NI7、R4、R3、R2和NI3。连接C12经过NI7、R4、R1和NI1。对于每个连接,大量的时隙必须被预留。这些数量在图9的右侧被列出,即连接C1-C12分别需要1、1、5、2、4、3、2、6、1、2、1和2个时隙。
图12示出了根据图11的片上网络。所述算法通过计算链路加权而开始。这通过对每个链路求用于使用该链路的所有连接所请求的时隙数量之和来完成。这对于每个方向被单独地执行。这些链路是环绕的并且一个链路加权结果被写在它旁边。例如,对于从R2到R3的链路,连接C2、C4和C7所请求的时隙被相加。这产生一个1(C2)+2(C4)+2(C7)=5的链路加权。NI1和R1之间的链路需要7个时隙,R1和NI1之间的链路需要6个时隙等等。所述算法计算连接加权。在连接权公式中,a1=1,a2=0,并且a3=0(即,求链路加权之和)。替换地,不同的值也可以被选择。连接加权的结果在图11的右手侧被示出。例如,连接C1的加权是链路NI1到R1、R1到R4和R4到NI10的加权之和,即7+1+1=9。然后,连接关于被计算的加权因子被渐渐减少地分类,并且以那个顺序被调度。
在图13中,所有连接C1-C12的时隙分配被示出。首先假定所需要的空闲时隙被分配。举例来说,时隙表具有9个时隙的大小。时隙表中所述的数量对应于相应的连接C1-C12,这些时隙已经被分配给相应连接C1-C12。
对于需要5个时隙的连接C3,所有时隙是空闲的,并且因此,链路NI1到R1的时隙1到5、链路R1到R2的时隙2-6、以及链路R2到NI2的时隙3-8被分配给它。对于需要一个时隙的连接C2,前5个时隙已经在第一链路中被预留,以及因此,它在沿所述路径的相应时隙表中预留时隙6、7、8和9。需要2个时隙的连接C7在前两个时隙中没有冲突,并且因此分配它们。需要2个时隙的连接C4只能预留时隙3和4,因为前两个在第二链路(R2到R3)中是专供C7之用的。连接C11也没有冲突,并且在网络接口NI7和路由器R4的链路中预留时隙表中的第一时隙,以及在其它链路中预留时隙表中的连续时隙。
然而在需要2个时隙的连接C10的情况下,前4个时隙与预留给链路R2到NI2中的C3的时隙冲突,并且因此,开头的空闲时隙是5和6。连接C6分配三个时隙,即在网络接口NI3和路由器R2的链路中的时隙3-5;在路由器R2和路由器R1的链路的时隙表中的时隙4-6;以及在路由器R1和网络接口NI1的链路中的时隙表中的时隙5-7。连接C8分配6个时隙,即在网络接口NI4和路由器R3的链路中的时隙1、4-8;以及在路由器R3和网络接口NI5的链路的时隙表中的时隙2、5-9,因为路由器R3和网络接口NI5的链路的时隙表中的时隙3-4已经被分配或预留给连接7。
连接C9分配一个时隙,即在网络接口NI5和路由器R3的链路中的时隙1;在路由器R3和路由器R4的链路的时隙表中的时隙2;在路由器R4和路由器R5的链路的时隙表中的时隙3;以及在路由器R1和网络接口NI1的链路的时隙表中的时隙4。连接C12分配两个时隙,即网络接口NI7和路由器R4的链路中的时隙6-7;在路由器R4和路由器R1的链路中的时隙7-8;以及在路由器R1和网络接口NI1的链路的时隙表中的时隙8-9,因为路由器R1和网络接口NI1的链路的时隙表中的时隙4和时隙5-7已经被分别分配给连接C9和C6。
连接C5分配4个时隙,即网络接口NI2和路由器R2的链路的时隙表中的时隙1-2和5-6;和路由器R2和网络接口NI3的链路的时隙表中的时隙2-3和6-7,因为网络接口NI2和路由器R2的链路的时隙表中的时隙3-4已经被分配给连接C4。最后,连接C1分配一个时隙,即网络接口NI1和路由器R1的链路的时隙表中的时隙7;路由器R1和路由器R4的链路的时隙表中的时隙8;以及路由器R4和网络接口NI6的链路的时隙表中的时隙9。因此,时隙分配的最后结果在图13中被示出。
在已经执行了时隙表分配之后,仍未使用比特的判断可以用上述类似方式来执行以识别那些时隙,所述时隙可用于通过把这些时隙分配给至少一个连接来降低延迟。
尽管在上面时隙分配单元被描述为安排在网络接口中,然而时隙分配单元也可以被安排在网络内的路由器中。
上述时隙分配可以被应用到包括几个分离的集成电路的任何数据处理装置或多片网络,而不仅仅被应用到单片网络。
应当指出,上述实施例说明了本发明而不是限制了本发明,并且本领域的技术人员能够在不背离附加权利要求的范围的前提下设计许多替换的实施例。在权利要求中,括号之间的任何参考符号都不应该被看作是限制权利要求。单词“包括”并不排除在权利要求中所列出之外的元件或步骤的存在。元件之前的单词“一个”或者“一”没有排除多个这类元件的存在。在枚举几个装置的装置权利要求中,这些装置中的若干个装置可以通过同一个硬件项目来具体化。在相互不同的从属权利要求中陈述特定措施的纯粹事实不是指出这些措施的组合不能用来获益。
而且,权利要求中的任何参考符号都不应该被看作是限制权利要求的范围。
权利要求
1.数据处理系统,包括-多个处理模块(M,S;IP)和被安排用于耦合所述模块(M,S;IP)的网络(N),包括-多个网络接口(NI),每个网络接口被耦合在所述处理模块(M,S;IP)之一和所述网络(N)之间;其中,所述网络(N)包括经由网络链路(L)被耦合到相邻路由器(R)的多个路由器(R);其中,所述处理模块(M,S;IP)在使用通过网络(N)的连接路径(C1-C12)的连接上互相通信,其中,所述连接路径(C1-C12)的每一个使用至少一个网络链路(L)用于所需数量的时隙,-至少一个时隙分配单元(SA),用于把时隙分配给所述网络链路(L),用于确定未使用的时隙,并且用于使用网络链路把除了其已经分配的时隙之外确定未使用的时隙分配给一个或多个连接。
2.集成电路,包括根据权利要求1的数据处理系统。
3.根据权利要求2的集成电路,其中,所述至少一个时隙分配单元(SA)适用于为所述连接路径中的每个网络链路(L)确定所述未使用的时隙,其中,连续未使用的时隙被分配用于连续的网络链路(L)。
4.根据权利要求2或3的集成电路,其中,所述至少一个时隙分配单元(SA)适用于根据存储在所述时隙分配单元(SA)中的优先级列表把未使用的时隙分配给所述连接。
5.根据权利要求2的集成电路,其中,所述至少一个时隙分配单元(SA)包括标志器单元(MU),用于标记所述网络链路(L)的时隙以便降低其中一个所述连接的延迟。
6.根据权利要求2或3的集成电路,其中,所述至少一个时隙分配单元(SA)还包括时隙表(ST),其具有被分配给所述连接的项,其中,所述时隙表(ST)包括一个延迟降低比特。
7.一种用于在集成电路中时隙分配的方法,该集成电路包括多个处理模块(M,S;IP)和被安排用于耦合所述模块(M,S;IP)的网络(N),和多个网络接口(NI),每个网络接口被耦合在所述处理模块(M,S;IP)之一和所述网络(N)之间,所述网络(N)包括经由网络链路(L)被耦合到相邻路由器(R)的多个路由器(R);该方法包括下列步骤-在使用通过网络(N)的连接路径(C1-C12)的连接上在处理模块(M,S;IP)之间通信,其中,所述连接路径(C1-C12)的每一个使用至少一个网络链路(L)用于所需数量的时隙,-把时隙分配给所述网络链路(L),-确定未使用的时隙,并且-使用网络链路把除了其已经分配的时隙之外确定未使用的时隙分配给一个或多个连接。
全文摘要
集成电路被提供,其包括多个处理模块(M,S;IP)和被安排用于耦合所述模块(M,S;IP)的网络(N)。所述集成电路还包括多个网络接口(NI),每个网络接口都被耦合在所述处理模块(M,S;IP)之一和所述网络(N)之间。所述网络(N)包括经由网络链路(L)被耦合到相邻路由器(R)的多个路由器(R)。所述处理模块(M,S;IP)在使用通过网络(N)的连接路径(C1-C12)的连接上互相通信,其中,所述连接路径(C1-C12)的每一个使用至少一个网络链路(L)用于所需数量的时隙。至少一个时隙分配单元(SA)被提供用于把时隙分配给所述网络链路(L),用于确定未使用的时隙,并且用于使用网络链路把除了其已经分配的时隙之外确定未使用的时隙分配给一个或多个连接。
文档编号H04L12/43GK1965606SQ200580018849
公开日2007年5月16日 申请日期2005年6月8日 优先权日2004年6月9日
发明者O·P·甘格瓦尔, A·拉杜勒斯库, K·G·W·古森斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1