用于包交换控制的集成电路和方法
本发明涉及具有多个处理模块的集成电路和用于耦接所述多个处理的互连装置以及用于这种集成电路中的包交换控制的方法。
由于不断增加对实现新的特征和现有功能的改善的要求,因此硅上系统的复杂性不断增加。这通过增加可在集成电路上集成的部件的密度来实现。同时,电路工作时的时钟速度也趋于增加。较高的时钟速度结合增加的部件密度减小了在相同的时钟域内可以同步工作的区域。这产生了对模块化方法的需求。根据这种方法,处理系统包括多个相对独立、复杂的模块。在常规处理系统中,系统模块通常通过总线互相通信。然而,随着模块数目的增加,这种通信方式由于下述原因而不再实用。一方面,大量模块形成了太高的总线负载。另一方面,总线形成了通信瓶颈,因为它仅能使一个器件将数据发送到总线。
通信网络形成了克服这些缺点的有效方式。近来作为高度复杂的芯片中的互连问题的解决方案,芯片上网络(NoC)已经引起相当大的注意。原因有两方面。第一,NoC有助于解决新的深亚微米技术的电问题,因为它们构造并管理全局线路。同时,它们共享线路,减少了它们的数目并提高了它们的利用。NoC还可以节省能量,可靠,并且与总线相比是可量的。第二,NoC还可以从通信断开计算,这在管理十亿晶体管级芯片的设计方面是基本的。NoC由于传统上是使用协议堆栈来设计的,其提供使通信服务用途与服务实施分开的明确限定的接口,因此它们实现了这种断开。
然而,当设计芯片上系统(SoC)时使用网络用于芯片上通信产生了多个必须考虑的新难题。这是因为与现有的芯片上互连(例如总线、开关、或点对点线路)相比,其中直接连接通信模块,在NoC中模块通过网络节点进行远程通信。结果,互连仲裁从集中式变成分布式,并且导致如混乱事务处理、较高的等待时间,并且端对端流控制必须通过知识产权块(IP)或者通过网络来处理。
这些问题中的大多数已经是局域网和广域网(计算机网络)领域中研究的主题并且作为平行机器互连网络的互连。两者都与芯片上网络非常相关,并且那些领域中的许多结果也可应用于芯片上。然而,NoC的前提不同于芯片外网络,因此大多数网络设计选择必须被再估计。芯片上网络具有不同的特性(例如,较紧密的链路同步)和导致不同的设计选择的约束(例如,较高的存储成本),其最终影响了网络服务。
NoC与芯片外网络的不同之处在于它们的约束和同步。对于芯片上网络,与芯片外网络相比计算也以相对高的成本来进行。芯片外网络接口通常包含专用处理器以实施直到网络层或更高的协议堆栈,以使主处理器减轻通信处理。在网络接口中包括专用处理器不可在芯片上实行,因为网络接口的尺寸将变得可比于或大于将连接到该网络的IP。而且,在IP本身上运行协议堆栈也可能是不可行的,因为通常这些IP仅具有一个专用功能,并且不具有运行网络协议堆栈的能力。
连接到网络部件的线路和引脚的数目芯片上的数量级大于芯片外的。如果它们没有整体用于除NoC通信之外的其它目的,则它们允许宽的点对点互连(例如300位链路)。这在芯片外是不可以的,其中链路相对较窄:8-16位。
引入网络作为芯片上互连与诸如总线或开关之类的直接互连相比从根本上改变了通信。这是因为网络的多跳性质引起的,其中通信模块没有被直接连接,而是通过一个或多个网络节点被分开。这与普遍现有的其中模块被直接连接的互连(即总线)形成对比。这种变化的暗示在于仲裁(其必须从集中式变成分布式),以及通信特性(例如排序、或流控制)。
随着便携式设备例如移动电话、PDA、笔记本、MP3播放器等不断取得成功,在现代集成电路及其设计内,功耗变成了一个非常重要的问题。随着这些IC的VLSI设计移向纳米领域,芯片上系统中的互连所消耗的能量变成了整个系统功耗的显著部分。
互连、即网络的实际能量消耗不仅基于互连的物理特性,例如电压摆幅、线路延迟、互连的形貌等,而且还基于芯片上系统中的数据流,即处理器间的通信和处理器-存储器间的通信。这种通信通常是基于事务处理的,并且可以是下述来源:高速缓存和存储事务处理(取自共享存储器的数据)、高速缓存相干操作(共享存储器中的更新数据必须在所有高速缓存副本中被更新,其产生同步通信量)、包分割辅助操作(将数据流分割成包将引入附加的数据辅助操作)或包之间的争用(在争用的情况下重新给包规定路线)。
一般,芯片上系统中的上述包包括包含目的地址的报头、源地址和请求的操作,如READ,WRITE,INVALIDATE等。包的有效负荷包括要被传送的数据。任选地,尾部包括错误检验和纠正码。在上述芯片上系统中可以存在几个不同的数据包,即用于存储访问请求、高速缓存相干同步、取数据、数据更新以及IO和中断。存储访问请求包用于请求来自共享存储器的数据,并且包括具有目标存储器的目的地址的报头和请求的存储器操作。由于没有传送数据,因此有效负荷是空的。高速缓存相干同步包从更新的存储器发送到具有其副本的所有高速缓存。这种包在高速缓存中的数据将被更新时可以包括数据作为有效负荷,或者在高速缓存中的数据将被无效时可以不包括数据,其中报头可以包括特殊操作类型。取数据包用作从存储器的答复包,并且在报头包含目标地址时包含请求的数据作为有效负荷。数据更新包用于将数据写回到存储器中,并且包含报头中的目标地址和相应数据作为有效负荷。IO和中断包包含具有目的地址的报头,并且如果涉及数据交换的话,有效负荷可以包含数据。因此,报头的内容以及有效负荷将取决于事务处理。
上述操作,如高速缓存故障、取数据、存储器更新和高速缓存同步,包括经由互连发送数据。然而,经由互连发送包导致能量消耗在互连线路上和每个开关内的逻辑门中。当数据包行进通过互连时,沿数据路径的互连线路和逻辑门将触发,如果数据流使其极性反转的话。因此,能量被消耗用于互连线路中和逻辑门中的每一位。
在多跳互连中,包数据路径可以根据实际的数据通信量状况而改变。具有相同的源和目的地的包不必行走相同的数据路径,即相同的实际路径以及跳跃的数目。
然而,包行走的跳跃的数目将导致数据传送的能量消耗,因为每个跳跃包括互连线路和多个逻辑门。对于关于芯片上系统中的能量消耗的更多信息,请参考Ye等人的“Packetized On-Chip InterconnectCommunication Analysis for MPSoC”(Design Automation and Test inEurope,DATE 2003,Proceedings,第344-349页)。
因此,本发明的目的是降低芯片上系统环境下的功耗。
该目的通过根据权利要求1的集成电路和根据权利要求5的包交换控制的方法来实现。
因此,提供一种集成电路,其具有多个处理模块和用于耦接所述多个处理模块并能够根据所述多个处理模块之间的事务处理实现包基通信的互连装置。每个包包括第一预定数目的连续字,每个具有第二预定数目的位。所述多个处理模决的第一个通过经由所述互连装置将至少一个包发送到所述多个处理模块的第二个来进行事务处理。该集成电路进一步包括至少一个包检查单元,用于检查所述至少一个包的位以确定所述进行的事务处理不需要的位并且用于使所述至少一个受检查的包的所述不需要的位与相同包的其它位匹配。
当通过同一个包的其它位进行匹配时,与开关中的逻辑门的开关相关的能量损耗可以通过互连沿整个数据路径降低,因为该匹配仅取决于相同包的位,其通过互连沿数据路径不改变。
根据本发明的方面,所述至少一个包检查单元使所述不需要的位与相同包中的前面或后面的位中相应的位匹配。因此,当连续位改变它们的极性时,与开关中的逻辑门的开关相关的能量损耗可以降低。
根据本发明的优选方面,所述至少一个包检查单元使所述不需要的位与相同包中的前面或后面的字中相应的位匹配。由于包被设置成连续字,因此该解决方案易于实现。
根据本发明的另一优选方面,所述集成电路包括与所述多个处理模块的所述第一个相关的至少一个网络接口,用于控制所述多个处理模块的所述第一个和所述互连装置之间的通信。所述至少一个包检查单元的每一个设置在所述网络接口之一中。由于包的报头及其有效负荷存在于与第一处理模块相关的网络接口中并且包的位通过互连沿它们的数据路径不改变,因此网络接口对于执行未使用位的匹配是优选位置。
本发明还涉及用于集成电路中的包交换控制的方法,该集成电路具有多个处理模块和用于耦接所述多个处理模块并能够根据所述多个处理模块之间的事务处理实现包基通信的互连装置。每个包包括第一预定数目的后续字,每个具有第二预定数目的位。所述多个处理模块的第一个通过经由所述互连装置将至少一个包发送到所述多个处理模块的第二个来进行事务处理。检查所述至少一个包的位以确定所述进行的事务处理不需要的位并且使所述至少一个受检查的包的所述不需要的位与相同包的其它位匹配。
本发明的另外的方面在从属权利要求中被描述。
参考下文描述的实施例,本发明的这些和其它方面将变得明显并将被阐明。
图1示出根据本发明的芯片上网络的基本框图,
图2A和2B示出用于本发明的包的基本结构,以及
图3A和3B示出根据现有技术和根据本发明的包检查单元的基本框图。
下述实施例涉及芯片上系统,即相同芯片上的多个模块经由某种互连进行互相通信。该互连被体现为芯片上网络NOC。芯片上网络在网络内可以包括线路、总线、时分多路复用、开关、和/或路由器。在所述网络的传输层,模块之间的通信通过连接来进行。连接被认为是第一模块和至少一个第二模块之间的一组通道,每个通道具有一组连接特性。对于第一模块和单独的第二模块之间的连接,该连接包括两个通道,也就是从第一模块到第二通道的通道,即请求通道,和从第二到第一模块的第二通道,即响应通道。请求通道被保留用于从第一到第二的数据和消息,而响应通道被保留用于从第二到第一模块的数据和消息。然而,如果该连接涉及一个第一和N个第二模决,则提供2*N个通道。连接特性可以包括排序(按次序的数据传输)、流控制(远程缓冲器被保留用于连接,以及数据产生器将被允许仅在保证空间对于所产生的数据可用时才发送数据)、通过量(保证关于通过量的下限)、等待时间(保证对于等待时间的上限)、lossiness(数据的下降)、发送终止、事务处理完成、数据正确性、优先权、或数据传递。
如下面所描述的模块可以是所谓的知识产权块IP(计算元件、存储器或子系统,其可以在内部包含互连模块),其在所述网络接口NI与网络相互作用。网络接口NI可以连接到一个或多个IP块。类似地,IP可以连接到一个以上的网络接口。
图1示出根据第一实施例的芯片上网络的基本框图。特别地,描述了主模块M和从属模块S,每个模块都与网络接口NI相关。每个模块M、S分别通过其相关的网络接口NI连接到网络N。网络接口NI用作主和从属模块M、S和网络N之间的接口。网络接口NI被提供用于管理相应模块M、S和网络N之间的通信,因此这些模块可以执行它们的专用操作而不必处理与网络或其它模块的通信。该网络包括多个互连的路由器R。路由器R用于将命令和数据转发给下一路由器R或网络接口。对于关于路由器体系结构的更多细节,请参考Rijpkema等人的“A Router Architecture for Networks on Silicon”(Proceedingsof Process 2001,2nd Workshop on Embedded Systems),或者Rijpkema等人的“Trade Offs in the Design of a Router with Both Guaranteed andBest-Effort Services For Networks on Chip”(Design,Automation andTest in Europe Conference and Exhibition(DATE′03)March 03-07,2003Munich,Germany)。
由于芯片上网络中的网络带宽通常被固定用于主和从属模块M、S之间的所有类型的事务处理和通信,因此在某些情况下,对于通信或事务处理可以不需要包中的一些位。一个实例可以是如上所述的存储访问请求,因为这种包的有效负荷是空的。未使用位的替换实例可以是,如果目标或从属具有需要分配在包的报头中的更少的地址位的地址范围的情况。同样的可应用于有效负荷中的数据。
因此,包检查单元PIU被设置在与主模块M相关的网络接口NI中。包检查单元PIU用于控制从主模块M发送的用于包的包交换。
图2示出用于本发明的包的基本结构。特别地,图2A示出链路上彼此跟随的两个包和基于两个连续包中的匹配位的标准技术的包交换。图2B示出包的优选实例和基于相同包内的匹配位的包交换。在两幅图中,未使用位都用′U′标记,′p′对应于与路径相关的报头位,以及′fc′对应于流控制,同时可以驮载(piggy back)在报头中。应当注意,用于路径的′P′和用于流控制的′fc′仅是实例。可替换地,可以包括目的地址。
包是每个8位宽和3字深。然而,其它位宽和字深也是可以的。
在图2A中,包i中的未使用位U相对于前一个包i-1的字中的前面相应位被匹配。这通过使未使用位U等于前面的位来执行,即图2A中的虚线箭头所指示的前面包的有效负荷位。然而,由于包的序列在每个路由器R沿跨越网络的路径可以改变,因此这种匹配必须对于沿路径的每个路由器R执行。因此,用于控制包交换的单元可以在每个路由器中实现,其将导致成本增强的实施。
根据优选实施例的未使用的改善匹配在图2B中示出。这里,该匹配优选在包来源于的主模块M的网络接口NI中执行。另外或者可替换地,该匹配可以在从属模块M的网络接口NI中执行。由于包的报头信息以及有效负荷存在于网络接口NI中,因此该匹配可以在其中进行。由于包并且特别是有效负荷在其通过网络N的路径期间并不改变,因此包的位可以被优化以通过减少包中的随后或前面字的字之间的交换来最小化功耗。优选地,该匹配在随后字的位之间执行,即位被匹配到跟随位。由于位在其通过网络的路径期间并不改变,因此对于所有路由器R,包内交换序列将是相同的。特别地,包i的报头中的未使用位相对于相同包中的p1位被匹配。
图3示出根据标准技术和根据本发明的包检查单元的基本框图。在图3A中,示出包检查单元,其基于使未使用位保持等于零,而图3B示出根据优选实施例的包检查单元PIU。
图3A的包检查单元PIU包括三个多路复用器M1-M3、第一和第二报头创建单元HCU1、HCU2、和三个FIFO F1-F3。第一和第二报头创建单元HCU1、HCU2的输出分别耦合到第一和第二多路复用器M1、M2的第一输入。第一、第二和第三多路复用器M1-M3的第二输入分别耦合到第一、第二和第三FIFO F1-F3。第三多路复用器M3的第一输入被设置为′0′。可替换地,第一输入被设置为′1′。
图3B的包检查单元PIU仅包括两个多路复用器M1-M2、第一和第二报头创建单元HCU1、HCU2、和三个FIFO F1-F3。第一和第二报头创建单元HCU1、HCU2的输出分别耦合到第一和第二多路复用器M1、M2的第一输入。第一和第二多路复用器M1-M2的第二输入分别耦合到第一和第二FIFO F1-F2。第三FIFO F3的输出连同第一和第二多路复用器M1、M2的输出一起用作包检查单元PIU的输出。
因此,除了通过减少转换来降低功率之外,根据本发明的包检查单元PIU还可以具有比实施方式低的实施成本;其使这些未使用位保持固定,因为可以省略有效负荷或未使用(由此固定的)位的多路复用。通过节省一个多路复用器并由此节省特定数量的逻辑门,进一步降低了功耗,因为对于转换需要较少的逻辑门,因此转换消耗更少的功率。这与对于需要附加的多路复用器和触发器的标准技术的实施成本大大相反。
在替换实施例中,根据图2A和图2B描述的匹配技术还可以通过在包行进通过网络之前在网络接口中执行包内匹配以及通过在一些路由器R中沿其通过网络的路径执行包间匹配而被组合。
在另一替换实施例中,上述包内和/或包间位匹配也可以在网络N的路由器R中执行。
减少开关行为对包括在这种网络中的几种体系结构的部件具有正面影响,例如作为这些部件中的逻辑门的转换的开关和FIFO。
上述转换技术与已知的降低功率的技术相比是有利的,其努力通过解码/编码总线上的信息来减少转换行为。这是因为这种编码/解码技术对于实际总线长度并不节省任何功率,因为编码器/解码器所需的功率,即转换所述编码器/解码器中的逻辑门所需的功率,是高的。
处理未使用位的替换方法将使它们等于0或1。
然而,这可能引入附加包交换,如(1-0-1),并且因此不是所希望的。
尽管在上述实施例中将互连描述为包括路由器的网络,但是其它多跳互连也是可以的。
应当注意,上述实施例说明了而不是限制了本发明,并且本领域技术人员将能够设计多种替换实施例而不脱离所附权利要求的范围。在权利要求中,置于括号之间的任何参考标记不应被解释为限制该权利要求。词语“包括”并不排除权利要求中所列的那些以外的元件或步骤的存在。词语“一”或“一个”并不排除多个这种元件的存在。在列举了几个装置的器件权利要求中,这些装置中的几个可以借助同一硬件项来具体实施。在相互不同的从属权利要求中列举了特定措施,仅此事实并不表示这些措施的组合不能被有利使用。
另外,权利要求中的任何参考标记不应被解释为限制权利要求的范围。