用于转换及同步数据通信量的数据处理系统和方法

文档序号:6553208阅读:194来源:国知局

专利名称::用于转换及同步数据通信量的数据处理系统和方法
技术领域
:本发明涉及一种处在至少一个集成电路上的数据处理系统,该数据处理系统包括至少两个模块和用来在所述各模块之间传送数据的互连,其中该互连包括第一子互连和第二子互连,第一子互连使用第一资源保留方案,第二子互连使用第二资源保留方案。本发明还涉及一种用于在至少一个集成电路上的数据处理系统中转换数据的方法,该数据处理系统包括至少两个模块和用来在所述各模块之间传送数据的互连,其中该网络包括第一子互连和第二子互连,第一子互连使用第一资源保留方案,第二子互连使用第二资源保留方案。
背景技术
:芯片上网络(NoC)已经被提出,并且已经作为一种针对与高度复杂的芯片上的各模块的互连相关的问题的适当解决方案而被广泛接受。与诸如单总线或者总线分级结构之类的传统互连结构相比,所述网络概念具有许多重要的优点。举例来说,(i)网络能够令人满意地以深亚微米技术构造及管理连线,(ii)网络允许通过共享而实现良好的连线利用率,(iii)网络比起总线具有更好的扩展性,(iv)网络可以具有很高的能量效率并且可以非常可靠,并且(v)网络通过明确定义的接口将计算与通信分离,从而可以独立地设计所述模块和互连并且可以很容易地将它们集成在一起。一个芯片上网络典型地包括多个路由器,所述路由器形成该网络的节点,并且所述路由器被设置成通过该网络传输及路由数据。此外,所述网络通常配备有所谓的网络接口,所述网络接口实现在连接到该网络的各模块与该网络自身之间的接口。所述各模块通常被归类为主模块和从属模块。主模块向从属模块发送请求消息,例如包括写入命令的请求消息,所述写入命令伴随有应当被写入到存储器(从属)模块中的数据。该从属模块可以发送回一则响应消息,该响应消息包括对于接收到该请求消息的确认,或者包括关于成功执行了由该主模块所请求的写入操作的指示。这种请求-响应机制常常被称作事务模型。请求与相应的响应的组合常常被称作事务。还可以使用其他类型的网络,这些网络例如使用消息传递。本发明也涉及这些其他类型的网络。芯片上网络是一个正在快速发展的研究和开发领域。近年来已经公开了许多进展,比如关于网络拓扑或者诸如网络接口、路由器和交换机之类的组件的设计。最近的一个很重要的进展是多芯片网络的概念。多芯片网络被划分为各个子网,所述子网专用于各模块之间的通信,所述各模块在更大的数据处理系统中形成子系统的一部分并且在该更大的数据处理系统中执行特定的功能。所述各子网驻留在不同的集成电路(管芯、芯片、封装或板)上。或者,所述各子网可以驻留在单一芯片上。在后一种情况下,所述各子网可以具有不同的功率或电压域或者不同的其他特性。在本发明的情境中,US6,018,782是特别相关的。US6,018,782公开了一种单芯片集成电路,其包括在一个芯片上网络中互连的多个模块。所述各模块是处理器或存储器设备或混合设备。模块间链路提供用于在各模块之间进行数据通信的电路径。所述各模块通过模块间端口连接到该模块间链路,其中至少一个模块间端口耦合在相关模块与该模块间链路之间。该模块间链路将各模块间端口电耦合在一起,并且在各模块之间提供通信路径。所述芯片上网络还可以包括模块间网络交换机或者芯片间网络桥,所述模块间网络交换机用于接合所述模块间链路的电路并且把来自一条模块间链路的数据分组路由到另一条模块间链路,所述芯片间网络桥用来把两个单芯片集成电路接合成单一通信网络并且把来自一个计算机芯片上的各模块的数据分组路由到另一个计算机芯片上的各模块。从US6,018,782的图2和5可以看出,所述芯片间网络桥能够通过多个连接器来接合两个计算机芯片以便扩展所述芯片上网络。该芯片间网络桥优选地包括一个或多个输出缓冲器以及一个或多个输入缓冲器,所述输出缓冲器适于接受针对第二计算机芯片上的地址的外出数据,所述输入缓冲器适于接收针对该相关计算机芯片上的相关地址的进入数据。当输出缓冲器中的空间可用时,所述芯片间网络桥把将被传送到第二计算机芯片的数据接受到该输出缓冲器中。如果第二计算机芯片上的相应的芯片间网络桥用信号表示可以接受附加的数据,则该输出缓冲器中的所述数据通过所述连接器被传送到第二计算机芯片上的该相应的芯片间网络桥。从US6,018,782的说明书可以明显看出,所述网络桥只适用于驻留在不同集成电路上的各网络之间的通信,并且所述网络桥仅包括用于临时存储应当从一个网络发送到另一个网络的数据的缓冲装置。其中不存在用于对从一个网络到另一个网络的数据传输进行同步的机制。由于所述网络桥只提供了把网络耦合到另一个芯片从而扩展该网络的可能性,因此由该网络桥所提供的功能在这方面是十分有限的。所述网络桥还提供了相对简单的缓冲装置以便在(包括在另一个计算机芯片上的网络中的)相应的网络桥表示其无法接受附加数据时对数据进行排队。因此,这种网络桥的一个重要的缺陷在于,在不同的子网具有不同的性能特性的情况下,该网络桥无法适当地对从一个网络到另一个网络的数据通信量进行同步。还可以明显看出需要有两个组件,特别是在第一计算机芯片上的网络桥以及在第二计算机桥上的协作网络桥,由于延长了等待时间,因此这两个网络桥的组合对于所述网络整体的性能具有负面影响。对于性能的负面影响是所述已知的网络桥的另一个缺陷。
发明内容本发明的一个目的是提供一种用于互连上面阐述的该类子网的装置和方法,所述装置和方法能够在不同子网具有不同特性的情况下对各子网之间的数据通信量进行同步。该目的是通过如权利要求1所述的数据处理系统以及如权利要求10所述的方法而实现的。本发明依赖于这样的认识缺乏数据通信量的同步主要是由于使用了不同的资源保留方案而造成的。根据本发明,提供一个转换单元,该转换单元把第一数据转换成第二数据,其中第一数据由第一资源保留方案控制,第二数据由第二资源保留方案控制。该转换单元可以被称作网络层桥。例如,不同的资源保留方案可以基于时隙表(slottable),在这种情况下,该转换单元把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。在如权利要求2所述的本发明的一个实施例中,第一资源保留方案被构想来保留第一数据的传输带宽,第二资源保留方案被构想来保留第二数据的传输带宽。因此,所述转换单元被设置成把由第一带宽保留方案控制的数据转换成由第二带宽保留方案控制的数据。在如权利要求3所述的本发明的一个实施例中,第一资源保留方案与第二资源保留方案相同。例如,两种方案都是基于使用TDMA时隙表。根据在权利要求4中所限定的本发明的一方面,第一资源保留方案和第二资源保留方案包括用于控制数据传输的时隙表。这是一种用于在网络环境中保留时隙的通用技术;所述路由器包括所谓的TDMA时隙表,其中各数据元素被分配到各时隙。在权利要求5中所限定的本发明的一个实施例中,第一子互连与第二子互连部署不同的时隙表尺寸,并且所述转换单元被设置成把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。在权利要求6中所限定的本发明的另一个实施例中,第一子互连与第二子互连具有不同的操作频率,并且所述转换单元被设置成把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。在权利要求7中所限定的本发明的另一个实施例中,利用不同的字宽度对第一数据和第二数据进行格式化,并且所述转换单元被设置成把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。根据在权利要求8中所限定的本发明的另一反面,第一子互连和第二子互连驻留在不同的集成电路上。这常常被称作多芯片互连。根据在权利要求9中所限定的本发明的另一方面,第一子互连与第二子互连驻留在单一集成电路上,并且第一子互连与第二子互连具有不同的功率和/或电压域。第一子互连与第二子互连具有不同的性能特性。例如,所述转换单元于是还可以被用来放松时隙分配。下面参照附图更详细地描述本发明,其中图1A示出了在集成电路上的网络中的通信路由器的已知配置;图1B示出了被包括在相同的网络中但是被包括在不同子网中的通信路由器的已知配置;图2示出了根据本发明的转换单元;图3示出了根据本发明的转换单元的第一实施例;图4示出了根据本发明的转换单元的第二实施例;图5示出了根据本发明的转换单元的第三实施例;图6示出了根据本发明的转换单元的第四实施例;图7A示出了对应于根据本发明的转换单元的体系结构的第一实例;图7B示出了对应于根据本发明的转换单元的体系结构的第二实例;图8示出了对数据的重新排序;图9示出了其中不发生数据的重新排序的情况。具体实施例方式图1A示出了在集成电路上的网络中的通信路由器R1、R2的已知配置。该网络包括通过链路L1、L3连接的路由器R1、R2的集合。这两条链路都在特定的时钟频率f1下操作。在性能(时钟频率、相位、比特宽度等等)方面,两个路由器R1、R2在所述路由器之间的链路L1上所看到的景象相同。这是当前盛行的芯片上网络视图。图1B示出了被包括在相同的网络中但是被包括在不同的子网1、2中的通信路由器R1、R2的已知配置。例如,所述各子网可以驻留在不同的板、芯片或管芯上。或者,所述各子网可以驻留在单一集成电路上,但是它们可以具有不同的功率或电压域。为了该网络的正确运行,所述路由器R1、R2在其间的链路L1上应当看到相同的景象(在性能方面),但是L1的性能可以不同于路由器R1和R2的对应子网中的其他链路L3的性能。应当注意到,对于链路L1和L3可以给出等同的性能以便解决这一冲突,但是这种解决方案或者对于各子网之间的链路L1的利用率不足或者对于子网内的链路L3的利用率不足。或者,路由器R1、R2可以被适配成使得它们可以通过具有不同性能级别的链路L1、L3来处理数据通信量,但是这样做需要修改路由器R1、R2并且提高了它们的复杂度。后一种解决方案对于路由器R1、R3的可再利用性也具有负面影响。在上述两种情况下的解决方案都不够好。最好对于路由器R1、R2隐藏各子网之间的链路L1的属性,这是通过根据本发明的转换单元实现的。由于根据本发明的转换单元在OSI模型中的网络层上的不同资源保留方案之间进行变换,因此该转换单元可以被称作网络层桥。图2示出了根据本发明的网络层桥NWB。所述路由器R1、R2保持不变,并且该网络层桥NWB在所述各网络内以及各网络之间可以再利用。该网络层桥的功能是对于路由器隐藏以下事实该路由器与具有不同于其所预期的特性的另一个路由器(或者诸如网络接口之类的其他组件)进行通信。该网络层桥是另一个组件,并且对于所述各路由器和网络接口来说,该网络层桥表现得像一个普通路由器或跳跃(hop)。该网络层桥被设置成在两个不同的子网网络层协议之间进行变换。例如,子网1、2可以具有不同的操作频率、时钟相位、功率域、路由方法、流控制方法、TDMA时隙表尺寸以及不同的服务质量体系。在下文中将给出一个实例,其中的资源保留方案是基于对TDMA时隙表的使用。然而,应当注意到,所述资源保留方案不限于以时隙表为基础的方案。还有可能使用基于速率的方案、基于时限的方案以及其他方案。此外,还可以使用不提供通信保障的仲裁方案,比如基于优先权的方案、轮叫调度(round-robin)方案以及加权轮叫调度方案。这些方案的组合也是可能的。图3示出了根据本发明的转换单元B的第一实施例。该图给出了在第一子网与第二子网之间的时隙表分配变换的一个例子。假设所述各子网在相同的操作频率下运行(fL1=fL2)。第一子网使用的TDMA时隙表尺寸为8,第二子网使用的TDMA时隙表尺寸为3。此外,假设在所述各子网中的字宽度相同。所述转换单元或网络层桥B变换时隙分配。在第一子网的时隙表中,两个连接(由“1”和“2”标识)被分配到所述各时隙。连接1被分配到第一和第三时隙。连接2被分配到第二、第四、第六和第八时隙。由于第二时隙表SL2小于第一时隙表SL1,因此,在相同的时间量内,遍历第二时隙表的次数比遍历第一时隙表的次数更多。当第一时隙表被遍历三次时,第二时隙表被遍历整整八次。在第一子网的时隙表中需要X个时隙的连接需要在第二子网的时隙表中保留Y个时隙。变量X和Y遵循以下公式Y=ceil(X*fL1/fL2*SL2/SL1),其中,fL1表示第一子网的时钟/操作频率,fL2表示第二子网的时钟/操作频率,SL1表示第一子网的时隙表尺寸,SL2表示第二子网的时隙表尺寸,并且函数“ceil”把结果向上取整到一个整数。在该例子中,如果数据被从链路L1发送到链路L2则发生第一转换。这在图3的上部中示出。两个连接1和2分别在链路L1上保留了2个和4个时隙。这意味着连接1需要在第二时隙表中保留ceil(2*1/1*3/8)=1个时隙。连接2需要在第二时隙表中保留ceil(4*1/1*3/8)=2个时隙。如果数据被从链路L2发送回链路L1则发生第二转换。这在图3的下部中示出。在这种情况下,必须根据重写的公式来计算上述公式中的变量X的值X=ceil(Y*fL2/fL1*SL1/SL2)。两个连接在第二时隙表中都保留了一个时隙,因此Y=1。根据该公式,每个连接需要在第一时隙表中保留ceil(1*1/1*8/3)=3个时隙。应当注意的是,本发明还适用于无连接的通信,例如适用于诸如IP、UDP之类的协议,此类协议不会象例如TCP协议那样定义连接。此外,还应当注意到,所述变换或重新映射可以取决于运行时间条件,比如实际的操作频率(与编辑/设计/合成时间所计划的操作频率不同)。对于有意义的变换来说,两个子网的相对操作条件/性能必须相对稳定,也就是说不能太过频繁地改变。如果它们发生改变,则所述变换机制可能必须被改变,因此也改变了所述连接的端到端属性。使用多个子网的连接的端到端属性被复合。例如,如果所有的子网子连接是无损的,则所述连接就是无损的,否则就是有损的。如果所有的子网子连接是有序的并且所述各网络层桥保持排序,则所述连接就是有序的,否则就是无序的。所述连接的保障带宽等于所有子连接的最小带宽,并且所述连接的等待时间等于所有子连接的等待时间加上所述各网络层桥的等待时间的总和。图4示出了根据本发明的转换单元的第二实施例。该图示出了图3所示的实施例的一种特殊情况,其中定义了一个附加的约束用于把所述连接分配到第二时隙表由该转换单元接收对应于连接1和2的数据的顺序必须与由该转换单元发送这些数据的顺序相同。换句话说,不允许对数据进行重新排序。在图8中示出了对于数据的重新排序。在图9中示出了不发生对数据的重新排序的情况。参照图4可以看出,在第一时隙表和第二时隙表中进行的时隙分配使得接收连接1和2的数据的顺序得以保留。如果不允许对数据进行重新排序,则该实现方式变得更简单,这是因为单个缓冲序列就足够了。图5示出了根据本发明的转换单元的第三实施例。该图给出了在第一子网与第二子网之间的操作速度转换的一个例子。根据公式3*fL1=8*fL2,第一子网的操作比第二子网更快。第一子网与第二子网在所述TDMA时隙表中具有相同的时隙数(即8个时隙)。此外,第一子网与第二子网中的字宽度相同。同样地,上面提到的公式被用来计算应当为每个连接保留的时隙数Y=ceil(X*fL1/fL2*SL2/SL1)。对于每个连接1、2,在第一时隙表中保留一个时隙,因此X=1。对于每个连接,必须在第二时隙表中保留Y=ceil(1*8/3*1/1)=3个时隙。应当注意到,第一子网的各时隙所包括的时间量小于第二子网的各时隙,这在图5中通过各时隙的相对垂直尺寸而示出。图6示出了根据本发明的转换单元的第四实施例。在该例中,根据公式3*WL1=8*WL2,在第一子网中使用的字宽度不同于在第二子网中使用的字宽度。操作频率fL1、fL2相同,时隙表尺寸SL1、SL2也相同。然而,通过把字宽度减小到原来的3/8所获得的带宽与减小操作频率的效果相同,因此,对于把数据分配到各时隙所采用的方法与图5所示的第三实施例中所使用的方法相同。由于所述字的布局可能改变,因此在该实现方式中应当提供一个附加的单元,例如在下面参照图7A和图7B所说明的链路宽度转换单元。图7A示出了对应于根据本发明的转换单元的体系结构的第一实例。该转换单元包括多个队列q1,q2,...qN,所述各队列与作为调度单元的调度器以及时隙表单元STU相组合地被设置成提供操作频率转换,而不是字宽度和时隙长度转换。对于后者来说,提供一个变换单元TU。该变换单元包括各字转换单元WCU、分组化单元PU以及从各字转换单元WCU接收数据的多个多路复用器。作为一个例子,示出了字转换单元WCU的体系结构。该字转换单元WCU包括报头解析单元HPU、数据尺寸调整单元DRU、报头生成单元HGU、流控制存储设施fc以及作为路径信息存储设施的路径。在该转换单元的输入侧和输出侧的字尺寸w1、w2的比特数典型地是2的幂(1、2、4、8、16、32或64)。在操作中,所述报头解析单元HPU跟踪各分组报头何时被发送并且保存包含在报头中的信息,其例如把路径/地址信息保存在作为路径信息存储设施的路径中,并且把流控制信息保存在流控制存储设施fc中。所述信息被传递到报头生成单元HGU,该单元以新的格式生成报头。此外,应当调整分组的有效载荷的尺寸,这是由数据尺寸调整单元DRU执行的。所述分组化单元PU选择传输分组报头或者有效载荷。该分组化单元PU从由所述报头生成单元HGU和数据尺寸调整单元DRU所生成的数据形成各分组。该分组化单元PU从所述调度器读出接下来将为哪个队列服务。所述调度是基于存储在时隙表单元STU中的时隙表分配而执行的。如果必须传送一个新的分组,则该分组化单元PU首先从所选的队列传递报头并且随后传递有效载荷数据。当传递报头时,该报头将包含来自所述流控制存储设施fc的特定数量的信用度(credit)。所述分组化单元PU还被设置成决定分组何时结束,也就是说其确定分组边界。例如,一个分组将由于切换到另一个队列而结束。所述分组边界可能从一个子网到另一个子网发生改变。所述转换单元的编程员必须确保利用新的分组化方案保留足够的数据和流控制带宽。应当注意到,这种方案允许在相同的队列中存储具有不同目的地的分组。当从所述队列向所述字转换单元WCU传送一个新的分组时,可以在“路径”中存储一个新的路径,并且在“fc”中存储信用度信息。在存储一个新的路径的情况下,“fc”必须包含0,否则信用度吞吐量条件已被错误的配置所破坏。一般来说,为了避免这种问题,所述两种分组格式应当在它们的报头中包含对应于相同尺寸的信用度的占位符。这样,当转换分组报头时,所有的信用度信息可以被拷贝到从输入分组得到的第一输出分组,作为结果,任何后续输入报头都将发现“fc”处于零。在传送具有相同路径的分组的情况下(即具有相同的目的地),所述信用度信息被加到原来的“fc”值上。应当注意到,如果不必进行分组变换,则所述变换单元TU可以被省略。第一级多路复用器(在变换单元TU内)被用于上述分组化处理。第二级多路复用器(在本例中是在变换单元TU的输出侧的单个多路复用器)被用来调度从所述各队列到输出端的数据通信量。第二级多路复用器由作为调度单元的调度器控制。图7B示出了对应于根据本发明的转换单元的体系结构的第二实例。在该例子中,更加详细地描述了该转换单元的输入侧。选择单元“时隙到队列”(slot2queue)把微片(flit)的目的地队列计算为当前时隙(STU1)的函数。微片(流控制单位)是一个数据元素,在一个时隙中容纳整数个微片。这种函数的例子如下-如果只有一个队列,则slot2queue(s)=1(总使用队列q1,因为其是唯一的队列);-如果队列的数量等于STU1中的时隙的数量,则例如可以使用恒等函数对于时隙s,slot2queue(s)=(s)(微片被导向第s个队列);-如果有Q个队列,则例如slot2queue(s)=s%Q;-slot2queue(s)可以是一个可编程的表,由用户在配置时间填充该表。作为一种替换方案,存在另一种把时隙映射到队列的方式。一个时隙中的微片所应被导向的目的地队列q1,q2,...qN可以被编码在该微片所属的分组的报头中。对于该实现方式要求一定的报头空间,特别是log2(#queue)个比特,其中#queue是队列的数量。然而,该替换方案节省了在所述转换单元中实现时隙表和映射函数的成本。所述标识符(对应于目的地队列的代码)应当被存储在通过该转换单元通信的网络接口中。本发明的保护范围不限于这里描述的实施例。本发明的保护范围也不限于权利要求中的附图标记。“包括”一词不排除权利要求中所提到的部件之外的其他部件。元件前面的“一个”不排除多个这种元件。形成本发明的一部分的装置可以以专用硬件的形式实现或者也可以以经过编程的通用处理器的形式实现。本发明在于每一个新颖特征或特征组合。权利要求1.一种处在至少一个集成电路上的数据处理系统,该数据处理系统包括至少两个模块和用来在所述各模块之间传送数据的互连,其中该互连包括第一子互连和第二子互连,第一子互连使用第一资源保留方案,第二子互连使用第二资源保留方案,其特征在于,该数据处理系统还包括转换单元,该转换单元被设置成把第一数据转换成第二数据,其中第一数据由第一资源保留方案控制,第二数据由第二资源保留方案控制。2.如权利要求1所述的数据处理系统,其中,第一资源保留方案被构想来保留对应于第一数据的传输的带宽和/或等待时间,并且第二资源保留方案被构想来保留对应于第二数据的传输的带宽和/或等待时间。3.如权利要求1所述的数据处理系统,其中,第一资源保留方案与第二资源保留方案相同。4.如权利要求1所述的数据处理系统,其中,第一资源保留方案和第二资源保留方案包括用于控制数据传输的时隙表。5.如权利要求4所述的数据处理系统,其中,第一子互连与第二子互连部署不同的时隙表尺寸,并且所述转换单元被设置成把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。6.如权利要求1所述的数据处理系统,其中,第一子互连与第二子互连具有不同的操作频率。7.如权利要求1所述的数据处理系统,其中,利用不同的字宽度对第一数据和第二数据进行格式化。8.如权利要求1所述的数据处理系统,其中,第一子互连和第二子互连驻留在不同的集成电路上。9.如权利要求1所述的数据处理系统,其中,第一子互连与第二子互连驻留在单一集成电路上,并且第一子互连与第二子互连具有不同的功率和/或电压域。10.一种用于在至少一个集成电路上的数据处理系统中转换数据的方法,该数据处理系统包括至少两个模块和用来在所述各模块之间传送数据的互连,其中该互连包括第一子互连和第二子互连,第一子互连使用第一资源保留方案,第二子互连使用第二资源保留方案,其特征在于把第一数据转换成第二数据,其中第一数据由第一资源保留方案控制,第二数据由第二资源保留方案控制。全文摘要本发明涉及一种用于同步数据通信量的数据处理系统和方法。本发明依赖于这样的认识缺乏数据通信量的同步主要是由于使用了不同的资源保留方案而造成的。根据本发明,提供一个转换单元,该转换单元把第一数据转换成第二数据,其中第一数据由第一资源保留方案控制,第二数据由第二资源保留方案控制。该转换单元可以被称作网络层桥(NWB)。例如,不同的资源保留方案可以基于时隙表(slottable),在这种情况下,该转换单元把对应于第一数据的时隙分配转换成对应于第二数据的时隙分配。文档编号G06F15/78GK101069434SQ200580041320公开日2007年11月7日申请日期2005年11月30日优先权日2004年12月1日发明者K·G·W·古森斯,A·拉杜勒斯库,E·里普克马申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1