缓冲以优化片上网络中突发脉冲长度的集成电路和方法

文档序号:6655828阅读:269来源:国知局
专利名称:缓冲以优化片上网络中突发脉冲长度的集成电路和方法
技术领域
本发明涉及一种具有多个处理模块和耦合所述多个处理的互联装置的集成电路,以及一种用于缓冲的方法和一种数据处理系统。
背景技术
由于实现新特性和改善现有功能的需要不断增长,因此硅上系统复杂性持续增加。这能通过增加部件集成在集成电路上的密度来实现。同时,操作电路的时钟脉冲速度也趋于增加。较高的时钟脉冲速度与增加的部件密度相组合,减小了可在相同时钟域内同步操作的区域。这已经产生了对模块方法的需求。根据这种方法,处理系统包括多个相对独立、复杂的模块。在常规处理系统中,系统模块通常通过总线相互通信。然而,随着模块数量的增加,由于以下原因这种通信方式不再实用。一方面,大量模块形成过高的总线负载。另一方面,由于总线仅能使一个器件将数据发送到总线而形成了通信瓶颈。
通信网络形成一种有效方式,以克服这些缺点。目前片上网络(NoC)作为高复杂芯片中互联问题的一种解决方案受到相当多的注意。原因是双重的。首先,由于NoC构成并管理总的布线,因此NoC有助于解决新的深亚微米技术中的电问题。同时,其共享布线,从而降低其数量并增加其利用率。NoC也可以高能效且可靠,并且与总线相比其可伸缩。第二,NoC还将计算与通信去耦,这在管理十亿晶体管芯片的设计中很关键。NoC实现这种去耦是由于传统上使用协议栈来设计NoC,该协议栈提供良好限定的接口,将通信服务应用与服务实施相分开。
然而在设计片上系统(SoC)时使用网络进行片上通信带来了很多新的问题,必须将这些问题纳入考虑。这是因为,与直接连接通信模块的现有片上互联(即,总线、开关或点对点布线)相反,在NoC中,模块通过网络节点远程通信。结果,互联仲裁从集中式改变为分散式,且如故障处理、过高等待时间和首尾相接信息流控制问题必须通过知识产权块(IPintellectual property block)或网络来解决。
大部分这些主题都已经成为局域网或广域网(计算机网络)领域中研究的课题,并已经作为平行机组互联网络的互联。这两者与片上网络有很大相关性,且这些领域中的很多结果也都可应用到芯片上。然而,NoC的前提与片外网络不同,因此,必须再次评估大部分网络设计选择。片上网络具有导致不同设计选择的不同特性(例如较紧链接同步)和限制(例如,较高存储成本),其最终影响网络服务。
与直接互联如总线或开关相比,引入作为片上互联的网络从根本上改变了通信。这是由于网络的多跳性质,其中通信模块不直接连接,而是由一个或多个网络节点分开。这与模块直接连接的流行的现有互联(即,总线)相反。
当前片上通信协议(如,设备事务级DTL和AXI协议(DeviceTransaction Level DTL and AXI-Protocol))在分开且流水线性的基线上以由请求和响应构成的事务进行操作,且在主设备发出的请求被相应的从设备接受之后释放总线以由其他使用。分开的流水线性通信协议专用在多跳互联中(例如,片上网络或具有桥的总线),允许有效利用互联。对于在从设备中产生响应费时的情况,分开总线的效率增加。基于流水线性协议,允许主设备具有多个未处理的请求(即,期望对于这些请求的响应,或即将来临)。
设计上述协议以在器件级别进行操作,而不是系统或互联级别。换句话说,将其设计为独立于实际的互联实施(例如,仲裁信号不可见),以允许重复使用知识产权块IP以及其较早的集成。
尤其,上述片上通信协议包括四个主要信号组,即指令(或地址)、写数据、读数据和写响应。指令组由指令、地址和诸如突发脉冲长度和掩码的指令标志构成。指令和写数据组由启动程序驱动到目标。在启动程序指令之后,读数据和写响应被目标驱动到启动程序。所有四个组都相互独立,存在一些命令限制于其间,如在指令之前不会发布响应。
这些片上通信协议还施行缓冲数据的概念,其在现有芯片设计技术中非常公知。通常,缓冲用于去耦不同模块,其中一个模块产生数据且另一个使用该数据。无缓冲的情况下,使用模块会阻碍制造模块,直到使用模块准备好接收该数据为止。为了避免阻碍制造模块,引入一个缓冲器,存储由制造模块产生的数据,并由此允许制造模块即使在使用模块未准备好时也能继续运行。当使用模块将接收一些或全部缓冲数据时,存储在缓冲器中的数据可立即提供给使用模块。
另一方面,当前片上通信协议还使用写指令或数据的缓冲,从而改善互联使用率。因此,在将小的写突发脉冲在互联上发送之前,将其存储或聚集在缓冲器中。代替以短突发脉冲传递,可将聚集的数据以长突发脉冲在互联上传送,这通常导致改善的互联使用率。这可通过缓冲之后直到例如第二写数据W2到达该缓冲器之前不传送的第一写数据W1(即,不在互联上传递数据)来实现,以将其作为互联使用率的一个最佳长度突发脉冲传送。
因此,多次写操作的数据可被缓冲,并聚集在一个突发脉冲中。此外,可将写指令中的部分数据以分开的突发脉冲发送。
在上述片上通信协议中施行该缓冲技术的原因是互联连接的片上系统中的知识产权块IP能“自然地”通信,即将码宽度和突发脉冲大小构造得比互联更适合于器件。例如,如果知识产权块IP处理像素,则这些知识产权块使用并制造像素,而在其处理视频帧的情况下,其使用并制造视频帧。通过缓冲数据,强制互联上传输的数据等待,直到聚集了足够数量的数据使这些数据能够在一个突发脉冲中被一次传送。
已经将上述片上协议设计为主要用于具有小等待时间的总线。此外,基于以下假设设计这些协议,即,读操作通常较紧迫,因此应尽快将其完成而不需不必要的缓冲。然而,由于系统越来越大,并且由于诸如网络或具有桥的总线的多跳式互联,等待时间也增加。在这些情况下,通信粒度变得越来越粗且等待时间要求变得越来越不严格。
此外,尽管没有达到最佳脉冲长度,但是这些协议仍包括强制传送一些当前缓冲数据的措施,从而防止由无限缓冲数据导致的死锁。DTL通信协议提供了一个冲洗信号(flush signal),它强制在互联上传输直至当前字的所有数据。AXI协议为写指令提供非缓冲标志以强制传送缓冲数据。

发明内容
因此本发明的一个目的是提供一种集成电路、一种缓冲方法、以及一种具有改善互联使用率的数据处理系统。
该目的通过根据权利要求1的集成电路、根据权利要求13的缓冲方法以及根据权利要求14的数据处理系统来实现。
因此,提供了一种包括多个通过互联装置耦合的处理模块的集成电路。第一处理模块基于事务与第二处理模块通信。与所述第二处理模块相关联的第一包封装置对来自第二处理模块的即将通过所述互联装置传输的数据进行缓冲,直到缓冲了第一数据量为止,然后将所述第一缓冲数据量传送到所述第一处理模块。
因此,在从设备一侧上缓冲数据,直到单个数据包中有足够多的数据在互联上传送为止。由于需要较少的数据包标题,因此降低互联上发送的数据包数量会降低通信总开销。缓冲即将被传送的数据直到聚集了足够数量的数据。
根据本发明的一个方面,第二包封装置与第一处理模块相关联,用于对来自所述第一处理模块的即将通过互联装置传送到第二处理模块的数据进行缓冲,直到缓冲了第二数量的数据为止,然后所述第二包封装置将所述缓冲数据传送到所述第二处理模块。因此,缓冲主以及从设备一侧上的数据,直到单个数据包中有足够多的数据将在互联上传送为止。
根据本发明的另一方面,所述第一和第二包封装置可分别响应于第一和第二非缓冲信号、或特别是一组信号的组合来传送缓冲数据(即使比第一和第二数量少的数据在第一和第二包封装置中被缓冲)。通过发送非缓冲(unbuffer)信号,可避免发生由缓冲数据的处理等待导致的死锁。
根据本发明的再一方面,所述第一和第二包封装置可分别根据第一和第二非缓冲标志来传送缓冲数据(即使比第一和第二数量少的数据在所述第一和第二包封装中被缓冲)。因此,提供了一种冲洗缓冲数据的可选方法。与对每个事务所给出的信号相反,标志可被设置较长时间。以这种方式,可打开或关闭缓冲。标志能以任何方式设置/复位,例如,通过来自IP的作为事务一部分的信号、或通过分开的配置事务(专门的冲洗事务或存储器映象式读写)。这些事务可由相同IP或分开的结构模块执行。
根据本发明的优选方面,第一和第二包封装置中的至少一个包括一个确定单元BLDU,其用于在传输所述数据之前,根据所述第一和第二处理模块之间的所述通信的通信特性确定所述第一和第二包封装置中缓冲的最佳第一和第二数据数量。因此,可根据实际通信特性来调整互联上传送的数据包尺寸,从而改善互联使用率。
本发明还涉及一种用于在集成电路中缓冲数据的方法,该集成电路具有与互联装置连接的多个处理模块,其中第一处理模块基于事务与第二处理模块通信,包括步骤对来自第二处理模块的在互联装置上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,其中当已经缓冲了第一数量数据时传送缓冲的数据。
本发明还涉及一种数据处理系统,其包括具有多个通过互联装置耦合的处理模块的集成电路。第一处理模块基于事务与第二处理模块通信。与所述第二处理模块相关联的第二包封装置对来自第二处理模块的在所述互联装置上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,然后将所述第一数量的缓冲数据传送到所述第一处理模块。
因此,如上所述的数据缓冲还可用在包括多个集成电路的系统中。
本发明基于该思想来缓冲数据,直到被缓冲的数据足够的,以便在一个数据包中在互联装置上最佳传送。数据包越大,数据包标题量就越小,因此降低了总开销并更加有效地利用了互联。只有缓冲了最佳数据包尺寸的足够数据才能发送数据(即使可以更早发送数据)。满足最佳传送条件时只从缓冲器传送数据。
本发明的其它方面在附属的权利要求中描述。
根据以下描述的一个(或多个)实施例,本发明的这些和其他方面是显而易见的,且参考以下描述的一个(或多个)实施例来说明本发明的这些和其它方面。


图1示出了根据第一实施例的片上网络的概略表示,和图2示出了根据第二实施例的片上网络的概略表示。
具体实施例方式
以下实施例涉及片上系统,即,同一芯片上(例如包括在一个封装中的系统、多管芯模块)或不同芯片上的多个模块通过某种互联相互通信。互联可实施为片上网络NOC。片上网络可包括布线、总线、时分多路传输、开关和/或网内路由器。在所述网络的传输层上,模块之间的通信可在连接上进行。把连接看作是在第一模块和至少一个第二模块之间的一组通道,其每一个都具有一组连接特性。对于第一模块和单个第二模块之间的连接,该连接可包括两个通道,即一个从第一模块到第二通道即请求通道,第二个从第二到第一模块即响应通道。该请求通道被预留给从第一到第二模块的数据和消息,而响应通道被预留给从第二到第一模块的数据和消息。然而,如果该连接包括一个第一和N个第二模块,则提供2*N个通道。该连接特性可包括排序(数据按顺序传输)、数据流控制(一个远程缓冲器被预留给一个连接,且在能够保证所产生数据具有可用空间时允许数据产生器发送数据)、吞吐量(保证吞吐量的下限)、等待时间(保证等待时间的上限)、损耗(数据丢弃)、传输终止、事务完成、数据正确性、优先级或数据供给。
图1示出了根据本发明的片上网络的基本设置。特别地,描述了每一个都具有相关网络接口NI的主模块M和从模块S。每个模块M、S都分别通过其相关的网络接口NI连接到网络N。网络接口NI用作主模块M和从模块S同网络N之间的接口。提供网络接口NI来管理相应模块M、S和网络N之间的通信,以使模块执行他们的专用操作而不需处理与网络或其他模块的通信。网络N可包括多个网络路由器R,用于通过网络从一个网络接口NI向另一个发送数据。
如以下描述的模块是所谓的知识产权块IP(计算元件,可内部含有互联模块的存储器或子系统),其在所述网络接口NI处同网络相互作用。一个网络接口NI可连接到一个或多个IP块。相似地,一个IP块可连接到多于一个的网络接口NI。
与主模块M和从模块S相关联的每一个网络接口都分别包括包封装置WM2、WM1。包封装置WM2、WM1负责缓冲主模块M和从模块S在网络N上发送的任何数据。尤其,两个包封装置WM1、WM2分别缓冲来自主模块M或从模块S的数据,直到缓冲了一定量的数据为止。之后,作为一定突发脉冲长度内的数据包在网络N即互联上传送缓冲数据。应当注意,包封装置WM2、WM1与主模块M以及从模块S相关联,以使请求以及响应数据被缓冲并以各自的突发脉冲长度被发送。由于该响应与请求可以不同,因此其突发脉冲长度也可以不同。应当将所选突发脉冲长度调整为适合于网络N,以改善网络使用率。
图2示出了根据第二实施例的片上网络的概略表示。尤其,第二实施例基本对应于根据第一实施例的片上网络。因此,第一包封装置WM1设置在与从设备S相关联的网络接口NI中,且第二包封装置WM2设置在与主设备M相关联的网络接口NI中。与第一实施例中相同,包封装置WM1、WM2用于缓冲将在网络N上发送的数据,直到满足最佳传输条件为止。第一非缓冲标志单元UBF1和第二非缓冲标志单元UBF2分别设置在与从设备S和主设备M相关联的网络接口中。第一和第二非缓冲标志单元UBF1、UBF2用于存储第一和第二非缓冲标志。第一和第二包封装置WM1、WM2被调整为当分别在第一或第二非缓冲标记单元UBF1、UBF2中设置第一或第二非缓冲标志时立即传送缓冲数据。通过提供冲洗缓冲数据的这种可能性,可防止由于数据被缓冲所导致的死锁。在这种情况下,正被缓冲的所有数据都尽快被传送,而不需等待数据包尺寸适合网络N的最佳脉冲长度。
冲洗缓冲数据还可通过由第一或第二包封装置WM1、WM2接收的第一或第二非缓冲信号来实现。因此,如果第一或第二包封装置WM1、WM2接收到非缓冲信号,则当前缓冲的数据被尽快传送,即,不需要等待获得最佳脉冲长度。因此,主设备M启动冲洗请求,且从设备S启动冲洗响应。
和对于每个事务给出的非缓冲信号相反,非缓冲标志可设置为更长时间。以这种方式,缓冲可打开或关闭。标志以任意方式设置/复位,例如通过来自IP的作为事务的一部分的信号,或者通过分开配置的事务(具体的冲洗处理或存储器映象式读或写中)。这些处理可由相同IP或分开的结构模块来执行。
此外,第一和第二确定装置BLDU1、BLDU2分别设置在与从设备S和主设备M相关联的网络接口NI中。第一和第二确定单元BLDU1、BLDU2用于确定最佳脉冲长度,以便根据当前通信或连接特性在网络N上传送数据。在请求处理的最初阶段或在预定时间间隔期间,可静态或动态地进行最佳突发脉冲长度的确定。可选地,可动态地确定最佳脉冲长度,(1)每次在网络上建立用于传输数据的连接,(2)对于每一事务,(3)IP转换至另一连接时,(4)对于每个数据包,(5)当片上网络状态改变时(即重新构造、NoC负载、缓冲填充等)。确定最佳突发脉冲长度可基于存储在确定单元BDLU1、2中的信息或基于从网络N或IP块接收的信息来进行。因此,网络N可包括一个通信特性装置CPM,用于确定且很可能存储所请求通信或连接的通信或连接特性。CPM可以是集中的或者是分布式的(例如,在每个NI中)。
除了最佳突发脉冲长度确定之外,也能以相同方式通过第一和第二确定装置BLDU1、BLDU2来确定传输时刻。为了保证的吞吐量GT连接,数据应等待为其连接而预留的时间段中的一个。通过使用“冲洗”等信号/标志可强制提前发送数据。可选地,对于最佳效果的BE连接,可使用跨过NI中多个连接上的轮换仲裁。“冲洗”等信号可对连接强制一个临时的较高优先级。
在第一和第二实施例中,数据即缓冲数据以数据包的形式在网络上发送。数据包优选形成于各自的网络接口NI中,并应当足够大,从而以相对于网络N而言的最佳方式传输。由于每个数据包都包括数据包标题,因此,数据包越大,所需的数据包标题数量就越小,将因此导致降低的总开销和改善的网络使用率。在缓冲的数据达到最佳数据包尺寸之前不断缓冲数据,以在网络上传输缓冲数据。如果缓冲的数据量还没达到最佳数据包尺寸,即使可以传送较小尺寸数据包,也不在网络N上传送任何数据。从通信上看,突发脉冲长度与总线或IP相关,但只有发生信息分包时才可应用数据包长度(对于总线不是必需的)。之前段落中提到的所有突发脉冲尺寸确定方案也可用于最佳数据包尺寸确定。
优选地,根据第一和第二实施例,在网络接口NI即互联接口中缓冲数据,以使构成知识产权块的主设备M或从设备S不包括在实际通信或用于在互联或网络上通信的通信协议中。
换句话说,对于请求以及响应都实现了缓冲,即,在互联上进行传送之前,请求以及响应分别聚集在主设备上的或从设备一侧的缓冲器中。该请求和响应聚集在突发脉冲中,其具有特定互联的最佳长度。与例如写操作的请求的情况相同,使用无缓冲标志响应部分事务可阻止缓冲。因此,可尽快传送未处理的且包括当前响应或请求的所有响应或请求,而不需缓冲以形成互联的最佳突发脉冲长度。
根据再一个实施例,主设备独立和/或同时启动请求以及响应的冲洗。在这种情况下,应当扩展(AXI或DTL)指令组,以允许表示不同类型的冲洗(例如,DTL中的2字节冲洗信号)。响应冲洗的这种指示应当被转送到从设备NI,其相应地动作。当使用标志时也同样适用。
根据再一个实施例,片上网络的通信方案基于消息传递通信方案。在此,消息的消息标题可含有冲洗信息,这将引起来自较早发送的同一个连接的所有消息被冲洗。
根据再一个实施例,片上网络的通信方案是基于数据包的通信方案,即在一个或多个数据包中发送一条消息,冲洗信息应当包括在数据包标题中。
上述方案可用于基于事务的协议,如DTL和AXL。尤其,该方案允许包封在事务中不只对请求的互联而且也对响应的互联最优化突发脉冲长度。请求的实例是(被确认的/无确认的)写指令加数据、读指令或如测试和设置的更复杂指令、信号标志指令(P、V)。响应的实例是读数据、写应答、和从更复杂指令返回值。由于对互联特性的了解仅存在于包封中,因此通过包封或互联接口连接到互联的知识产权模块可以独立于互联而被建立,即,可增加这些IP的重复使用率。对于请求,这可能带来附加的等待时间,然而却提高了整个系统的效率。
此外,通过在与主设备以及从设备相关联的网络接口中提供包封装置,网络接口能够被对称设计,这也能够改善其重复使用率。
应当注意,上述实施例是示意性的而非限制本发明,且本领域技术人员能够在不超出附属权利要求范围的前提下设计出很多可选实施例。在权利要求中,设置在圆括号之间的任意参考符号都不解释为限制权利要求。词“包括”不排除存在权利要求中所列之外的元件或步骤。元件前面的词“一个”不排除存在多个这种元件。在列举若干装置的设备权利要求中,这些装置中的几个可通过同一硬件项来实现。在相互不同的从属权利要求中记载某些措施,但这并不表示不能从这些措施的组合中获益。
而且,在权利要求中的任意参考符号都不应解释为限制权利要求的范围。
权利要求
1.一种集成电路,具有与互联装置(N)连接的多个处理模块(M、S),其中第一处理模块(M)使用事务与第二处理模块(S)通信,包括第一包封装置(WM1),其与所述第二处理模块(S)相关联,用于对来自所述第二处理模块(S)的将在互联装置(N)上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,其中当已经缓冲了第一数量的数据时传送缓冲数据。
2.根据权利要求1的集成电路,进一步包括第二包封装置(WM2),其与所述第一处理模块(M)相关联,用于对来自所述第一处理模块(M)的将在互联装置(N)上传送的数据进行缓冲,直到缓冲了第二数量的数据为止,其中当已经缓冲了第二数量的数据时传送缓冲数据。
3.根据权利要求1或2的集成电路,其中所述第一和第二包封装置(WM1、WM2)适合于分别响应第一和第二无缓冲信号或一组信号的第一和第二组合来传送缓冲数据,即使在所述第一和第二包封装置(WM1、WM2)中缓冲了比所述第一和第二数量少的数据。
4.根据权利要求1或2的集成电路,其中所述第一和第二包封装置(WM1、WM2)适合于分别根据第一和第二无缓冲标志来传送缓冲数据,即使在所述第一和第二包封装置(WM1、WM2)中缓冲了比所述第一和第二数量少的数据。
5.根据权利要求1或2的集成电路,其中所述第一和第二包封装置(WM1、WM2)中的至少一个包括一个确定单元(BLDU1、BLDU2),用于根据所述第一和第二处理模块(M、S)之间通信的通信特性确定将被缓冲的最佳的第一或第二数量。
6.根据权利要求1或2的集成电路,其中所述第一和第二包封装置(WM1、WM2)中的至少一个包括一个确定单元(BLDU1、BLDU2),用于根据所述第一和第二处理模块(M、S)之间通信的通信特性确定在所述第一和第二包封装置(WM1、WM2)中发送数据的最佳时刻。
7.根据权利要求3的集成电路,其中所述第一无缓冲信号由所述第二处理模块(S)启动,并且所述第二无缓冲信号由所述第一处理模块(M)启动。
8.根据权利要求4的集成电路,其中所述第一无缓冲标志的设置由所述第二处理模块(S)启动,并且所述第二无缓冲标志的设置由所述第一处理模块(M)来启动。
9.根据权利要求3或4的集成电路,其中所述第一处理模块(M)适合于启动所述第一和/或所述第二无缓冲信号。
10.根据权利要求4的集成电路,其中所述第一处理模块(M)适合于启动所述第一和/或第二无缓冲标志的设置。
11.根据权利要求1或2的集成电路,其中所述第一和第二处理模块(M、S)使用消息传递通信方案相互通信,其中消息含有消息标题,所述第一和第二包封装置(WM1、WM2)适合于分别响应于所述消息标题中的信息来传输缓存数据,即使在所述第一和第二包封装置(WM1、WM2)中缓冲了比所述第一和第二数量少的数据。
12.根据权利要求1或2的集成电路,其中所述第一和第二处理模块(M、S)使用基于数据包的通信方案相互通信,其中数据包中含有数据包标题,所述第一和第二包封装置(WM1、WM2)适合于分别响应于所述数据包标题中的信息来传送缓冲数据,即使在所述第一和第二包封装置(WM1、WM2)中缓冲了比所述第一和第二数量少的数据。
13.一种在集成电路中缓冲数据的方法,该集成电路具有多个与互联装置(N)连接的处理模块(M、S),其中第一处理模块(M)使用事务与第二处理模块(S)通信,该方法包括步骤对来自所述第二处理模块(S)的将在互联装置(N)上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,其中当已经缓冲了所述第一数量数据时传送缓冲数据。
14.一种数据处理系统,包括多个与互联装置(N)连接的处理模块(M、S),其中第一处理模块(M)使用事务与第二处理模块(S)通信,包括与所述第二处理模块(S)相关联的第一包封装置(WM1),用于对来自所述第二处理模块(S)的将在互联装置(N)上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,其中当已经缓冲了所述第二数量的数据时传送缓冲数据。
全文摘要
提供了一种集成电路,其包括多个通过互联装置(N)耦合的处理模块(M、S)。第一处理模块(M)基于事务(transactions)与第二处理模块(S)通信。与所述第二处理模块(S)相关联的第一包封装置(WM1)对来自所述第二处理模块(S)的将在所述互联装置上传送的数据进行缓冲,直到缓冲了第一数量的数据为止,然后将所述第一数量的缓冲数据传送到所述第一处理模块(M)。
文档编号G06F13/42GK1954306SQ200580015855
公开日2007年4月25日 申请日期2005年5月13日 优先权日2004年5月18日
发明者A·拉杜勒斯库, K·G·W·古森斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1