发明背景
硅上系统由于一直增长的对实现新特征和现有功能改进的需要而显示出在复杂度上的持续增加。这能够通过增加的密集度来实现,部件可以该密集度被集成在一集成电路上。同时,电路操作所在的时钟速度也趋于增大。较高的时钟速度结合增加的部件密集度减小了能在同一时钟域内同步操作的区域。这带来了对模块方法的需要。根据这样一种方法,处理系统包括多个相对独立的复杂的模块。在传统的处理系统中,系统模块通常经由一总线相互通信。然而,随着模块数量的增加,这种通信方式由于下面的原因不再适用。一方面,大数量的模块造成太高的总线负荷。另一方面,总线由于其仅能够使一个装置发送数据到总线而造成通信瓶颈。
通信网络构成克服这些缺点的有效方式。近来,片上网络(NoC)作为对高复杂度芯片中的互连问题的解决方案受到极大关注。原因是两方面的。第一,多个NoC帮助解决新的深亚微米技术中的电气问题,因为这些NoC构造和管理全局导线。同时,这些NoC共享导线,从而降低其数量并增加其应用。多个NoC还可以是能效高的并且是可靠的以及相比于总线是可伸缩的。第二,多个NoC还分离通信和计算,这在管理十亿晶体管(billion-transistor)芯片的设计中是必需的。多个NoC实现了该分离,因为这些NoC传统上采用协议栈来设计,这些协议栈提供定义良好的接口,该接口分离通信服务应用和服务实现。
但是,当设计片上系统(SoC)时采用用于片上通信的网络带来了很多必须考虑的新问题。这是因为,相对于现有的片上互连(例如,总线,开关,或点到点线路),其中通信模块被直接连接,在一个NoC中,这些模块通过网络节点远程通信。因此,互连仲裁从集中的改变成分布式的,并且类似事务次序颠倒、更长等待时间、以及端对端流控制的问题必须或者通过知识产权块(IP)或者通过网络来处理。
这些论题多数已成为局域网和广域网(计算机网络)领域中的研究课题并且作为用于并行机器互连网络的互连。两者均与片上网络相关,并且那些领域中的多数结果也被应用于芯片上。但是,NoC的前提条件是不同于芯片外网络,并且因此多数网络设计选择必须被重新评估。片上网络具有导致不同的设计选择的不同的特性(例如,更牢固的链路同步)和约束(例如,更高的存储器成本),它们将最终影响网络服务。
NoC主要在其约束和同步上不同于芯片外网络。典型地,芯片上资源约束比芯片外更严格。芯片上存储(即存储器)和计算资源相对比芯片外更加昂贵,而芯片上点到点链路的数量大于芯片外。存储器是昂贵的,因为通用的芯片上存储器(诸如RAM)占据大区域。使存储器分布在尺寸相对小的网络部件中甚至更差,因为存储器中的开销区域因此变为主要的。
对于芯片上网络计算,也达到相比于芯片外网络的相对高的成本。芯片外网络接口通常包括专用处理器,以实现协议堆栈直至网络层或更高层,从而使主机处理器免于通信处理。在网络接口中包括专用处理器在芯片上是不可行的,因为网络接口的尺寸将变得与被连接到网络的IP相当或大于被连接到网络的IP。而且,在IP本身上运行协议栈也是不可行的,因为这些IP经常仅具有一个专用功能,并且没有能力运行网络协议栈。
芯片上连接网络部件的导线和引脚(pin)的数目的数量级大于芯片外数目的数量级。如果它们没有大规模地用于除NoC通信以外的其他目的,则它们允许较宽的点到点互连(例如,300比特链路)。这在芯片外是不可能的,其中链路相对较窄:8-16比特。
当相比于诸如总线或开关之类直接互连时,引入网络作为芯片上互连完全改变了通信。这是因为网络的多跳特性,其中通信模块不是直接连接,而是通过一个或多个网络节点来分离。这与一般的其中模块被直接连接的现有互连(也就是总线)相反。这种改变的本质在于仲裁(其必须从集中的改变成分布式的)并且在于通信特性(例如,排序,或流控制)。
片上网络是基于平台的设计,其目的是通过应用和结构的重复使用来降低系统设计成本。平台通过定义模板结构并且编程模型(即通过限制其中应用可在一结构上被实现的自由)来分离应用和系统结构,应用和结构的相互依赖被集中和降低。但是,应用的集中涉及资源使用中增加的多样性和动态性(诸如通信和计算模式),以及增加的对不同服务的需要。
因此,通信基础结构是平台的关键部件,因为它必须以一种与应用无关的方式通过应用相关的IP来实现不同的应用行为。但是,使用NOC用于平台互连有助于通过以标准方式集成不同种类的IP来解决这两个问题。换句话说,NOC服务广泛定义平台,并且它通过(部分应用相关的)协议栈来自然地提供不同服务。
而且,希望以一种有效的和灵活的方式组合并控制多个本地的(可能自主的)部件。但是,由于通过现代芯片上通信协议(例如,设备事务层DTL,开放式内核协议OCP,和AXI协议)操作将被连接的IP块或模块,所以它们必须被结合到片上网络中。
因此,本发明的一个目的是改善标准处理模块到片上网络中的集成。
该目的通过根据权利要求1的集成电路、根据权利要求6的用于在这样的集成电路中进行通信服务映射的方法以及根据权利要求7的数据处理系统来实现。
因此,包括多个处理模块的集成电路被提供,其中所述处理模块中的至少一个第一处理模块基于特定通信特性和至少一个通信服务标识请求到至少一个第二处理模块的至少一个通信服务。而且,提供一种互连装置,用于耦合所述多个处理模块并且用于使得能够进行具有一组连接特性的基于连接的通信。至少一个网络接口与所述处理模块中的所述至少一个第一处理模块相关联,用于控制所述多个处理模块中的所述至少一个第一处理模块和所述互连装置之间的通信。而且,所述至少一个网络接口包括映射装置,用于根据所述至少一个通信服务标识将所请求的基于所述特定通信特性的至少一个通信服务映射到基于一组连接特性的连接。
由此,实现了处理模块到片上网络的无缝集成。
根据本发明的一个方面,所述映射装置被设置在所述至少一个网络接口中,以便处理模块能够继续其专用操作而无须处理服务的映射。
根据本发明的一个方面,所述通信服务标识包括至少一个通信线程,其中所述至少一个通信线程被映射到基于一组连接特性的至少一个连接。
根据本发明的另一个方面,所述通信服务标识包括所述至少一个第二处理模块中的至少一个地址范围,其中所述至少一个地址范围被映射到基于一组连接特性的至少一个连接。
本发明还涉及一种用于在集成电路中通信映射处理的方法,该集成电路具有多个处理模块,其中所述处理模块中的至少一个第一处理模块基于特定通信特性和至少一个通信服务标识请求到至少一个第二处理模块的至少一个通信服务。所述多个处理模块通过互连装置耦合并且使得能实现具有一组连接特性的基于连接的通信。所述多个处理模块中的所述至少一个第一处理模块和所述互连装置之间的通信由与所述处理模块中的所述至少一个第一处理模块相关联的至少一个网络接口控制。所请求的、基于所述特定通信特性的至少一个通信服务根据所述至少一个通信服务标识被映射到基于一组连接特性的连接。
本发明还涉及一种数据处理系统,包括多个处理模块,其中所述处理模块中的至少一个第一处理模块基于特定通信特性和至少一个通信服务标识请求到至少一个第二处理模块的至少一个通信服务。而且,提供互连装置用于耦合所述多个处理模块并且用于使得能够进行具有一组连接特性的基于连接的通信。至少一个网络接口与所述处理模块中的所述至少一个第一处理模块相关联,用于控制所述多个处理模块中的所述至少一个第一处理模块和所述互连装置之间的通信。而且,所述至少一个网络接口包括映射装置,用于根据所述至少一个通信服务标识将所请求的、基于所述特定通信特性的至少一个通信服务映射到基于一组连接特性的连接。
因此,映射还可以在具有多个不同集成电路的系统中实现。
本发明基于这样的思想,即通过映射这些协议的标识装置到连接从而提供用于诸如DTL、MTL、AXI和OCP之类协议的不同服务。现有协议中的标识装置是:通信线程和地址,也就是线程或地址通过基于特定连接特性的互连被映射到连接。
本发明的其它方面在从属权利要求中被描述。
本发明的这些和其它方面将参考下文描述的实施例被阐明并且由此是显而易见的。
优选实施例的描述
下面的实施例涉及片上系统,也就是同一芯片上的多个模块(包括例如系统封装,多芯片模块(multi-die module))或不同芯片上的多个模块,通过某种互连相互通信。该互连具体表现为片上网络NOC,允许所有前述模块之间的通信。片上网络可以包括网络内的导线、总线、时分复用、开关、和/或路由器。在所述网络的传输层,模块之间的通信可以在连接上被执行。一个连接被认为是第一模块和至少一个第二模块之间的一组信道,每一个都具有一组连接特性。对于第一模块和单个第二模块之间的连接,该连接包括至少一个信道,即从第一模块到第二模块的一个信道(也就是请求信道)和可选的从第二模块到第一模块的第二信道(也就是响应信道)。该请求信道被预留用于从第一模块到第二模块的数据和消息,而该响应信道被预留用于从第二模块到第一模块的数据和消息。然而,如果该连接包括一个第一模块和N个第二模块,则2*N个信道可被提供。连接特性可包括排序(数据按顺序传输)、流控制(远程缓存器被预留用于一连接,并且数据发生器将被允许仅当其被保证可获得用于所产生数据的空间时才发送数据)、吞吐量(关于吞吐量的下限被保证)、等待时间(等待时间的上限被保证)、损耗(数据丢失)、传输终止、事务完成、数据正确性、优先级、或数据传送。
图1示出根据第一实施例的片上网络。特别地描述了每个都具有相关的网络接口NI的两个主模块M和一个从模块S。在网络接口及其相关的主模块M和从模块S之间分别设置适配器单元A,其中该适配器单元A还可以被设置在网络接口中。每个模块M、S分别通过其相关的网络接口NI连接到网络N,即网络接口NI被用作主从模块M、S和网络N之间的接口。网络接口NI被提供来管理相应模块M、S和网络N之间的通信,以便模块能执行其专用操作,而无须处理与网络或其他模块的通信。这里,两个主模块被实现为CPU和IP块,从模块被实现为存储器。
网络N可由多个互连的网络路由器R组成。路由器R可在其间随机连接(路由器之间多个链路也是可能的)并可被连接到网络接口(即不存在拓扑约束)。路由器R将数据包从一个网络接口NI传送到另一个。这样的数据包包括一个或多个片(flit),其中片是最小传输单元。
如下所述的模块可以是所谓的知识产权块IP(计算元件、存储器或可内部包含互连模块的子系统),其在所述网络接口NI处与网络相互作用。网络接口NI可被连接到一个或多个IP块。类似地,IP可被连接到不止一个网络接口。
片上网络提供基于连接的不同的服务。连接描述了一个主模块和一个或多个从模块之间的通信,该通信具有相关的服务等级,例如先进先出事务排序和最大等待时间。连接必须被建立,声明所请求的服务等级。该连接请求或者被接受或者被拒绝。连接接受可导致网络中的资源预留、例如缓存器或链路带宽百分比。应用之后,连接被断开,而这些资源被释放。不同的连接可能在不同时刻被独立地建立和断开。其配置可在编译时间(即离线)或在运行时间被计算。
主模块M请求通信服务,即向从模块S发出请求。该请求可以包括命令以及一些数据。从模块S接收到该请求并基于所接收到的命令执行相应的处理和返回可能也带有一些数据的响应。适配器单元A用于将IP模块及其通信协议连接到网络接口,该网络接口进而又用于连接到网络N。换句话说,适配器单元A将所请求的通信服务转换成消息msg,消息msg通过网络接口NI被处理并被转换成通过网络N传送的片flt,特别是适配器单元A将这些协议的标识装置映射到连接。现有协议中的该标识装置是:通信线程和地址,即该线程或地址通过基于特定连接特性的互连被映射到连接。
一旦连接被建立,主模块就通过请求发起事务,零个或多个从模块会执行并可能导致产生一个响应。事务的实例是读取、写入、确认写入、测试和设置以及刷新。通过提供这些事务,事务模型类似于现有的总线协议,从而易于IP从当前互连到NOC的IP的转移。但是,为了能够充分利用增加的NOC性能,事务也可以被以流水线方式进行、分离和公布(post)。
连接可以包括以下服务或连接特性:1)数据完整性,2)事务排序,3)事务完成,4)连接流控制,和5)连接吞吐量,等待时间和抖动。连接可以请求这些特性的任何组合(例如,吞吐量保证,流控制,但不包括事务排序)。
连接可以基于时分复用的电路交换方法,其中一个或多个电路被建立用于连接。这要求同步的逻辑概念,其中所有路由器和NI位于同一时隙中。电路通过在连续的路由器/NI中预留连续的时隙被建立。由此,电路在如下意义上被流水线化,即如果电路被设置从路由器R到路由器R’,并且在路由器R预留时隙s,则必须在路由器R’处预留时隙s+1。在这些电路上,一个时隙中所接收的数据将在下一个时隙被转发下一个路由器/NI。
网络接口NI负责打包/解包,用于实现连接和服务,并用于给被连接到NoC的IP模块提供标准接口(例如AXI或OCP)。尤其是,网络接口NI可以实现到现有芯片上协议(诸比如AXI、OCP和DTL)的适配器单元A,以将现有IP模块无缝连接到NoC。这些适配器单元A还可以被设置在IP块与其相关的网络接口之间。
图2A和2B分别示出了与主模块M和从模块S相关联的图1的适配器单元的框图。这些适配器单元A也可以被认为是通过实现诸如AXI的通信协议(的简化版本)将IP块的通信服务映射到片上网络环境的外壳(shell)。可替换地,像OCP、DTL或MTL的任何其它通信协议(的简化版本)也可以被实现。外壳A分别包括排序单元seq和去排序(desequentialize)单元deseq。如图2A中所示的与主模块相关的这种外壳的基本操作是排序命令cmd及其标志flag、地址adr和请求消息msg中的写数据wr_data,以及将消息msg去排序为读数据rd_data和写响应wr_resp。如图2B中所示的与从模块相关的外壳的基本操作与根据图2B的外壳的基本操作相反。
在图3中示出根据第二实施例的网络接口NI的框图。根据第二实施例的网络接口NI可被用于图1的片上网络中。在该实施例中,适配器单元或外壳被实现为网络接口NI的一部分。网络接口NI提供网络N的基于包的通信到图1的IP模块所使用的更高层协议(AHB,DTL,MTL)的转换。
特别是,网络接口包括网络接口核心NI-K、两个适配器单元AXI_A、DTL_A、组播单元MC和窄播(narrowcast)单元NC。网络接口的操作被分成两部分,即网络接口核心NI-K和网络接口外壳或适配器单元。网络接口核心NI-K打包消息并将它们调度到路由器,实现端对端流控制以及时钟域交叉。而且,网络接口外壳或适配器单元实现连接(例如,窄播,组播)、事务排序、以及其他的被提供给IP块的协议所特有的更高层问题。因此,网络接口NI包括四个网络接口端口NIP(即两个DTL端口和两个AXI端口)。所有端口NIP基于DTL和AXI通信协议将对等连接提供到相关的IP块(图3中未示出)。
利用NI核心,对等连接(即主模块和一个从模块之间的连接)可以被直接支持。该类型的连接在涉及相互对等通信(例如视频像素处理)的模块的链路的系统中是有用的。
为了提供到其他协议的转换,在NI核心周围提供外壳。应指出这些外壳加入了特定功能,并且可以根据相应的要求在设计阶段被插入或省去。
换句话说,片上网络提供高级服务,诸如事务排序、吞吐量和等待时间保证,以及基于通过网络的连接的端到端流控制。采用流水线化的时分复用电路交换来实现吞吐量/等待时间保证。网络接口具有模块化设计,包括核心和外壳。NI核心提供基本功能,包括连接之间的仲裁、排序、端到端流控制、打包和具有路由器的链路协议。外壳实现另外的功能,诸如组播和窄播连接,以及到诸如AXI或DTL的现有协议的适配器。所有这些外壳可以根据需要在实例化阶段被插入或省去,以优化区域成本。
在下文中,针对IP块经由通信线程的通信,适配器单元A(即外壳)的操作被更加详细地描述。通信线程可被直接映射到连接上,即一个线程映射到一个连接。其中通信线程被用于基于特定通信参数来识别通信的业务类别,这样的线程和相关的业务类别可以基于特定的相应连接特性被映射到连接上。
为举例说明上述内容,可考虑两个通信线程,这两个通信线程识别两个业务类别,即一个到快存储器并且另一个到慢存储器上。识别快业务类别的线程可被映射到配置成保证高带宽的连接,而慢业务类别可被映射到具有低保证带宽的连接。此外,进一步的特性可被指定,例如,如果片上网络中现有存储器,该存储器是足够快的能消耗(consume)任何突发的输入数据,则可以不必对数据发生器和存储器之间的写入进行端对端流控制。但是,在片上网络中的慢存储器的情况下,可能需要端对端流控制来防止由于缓慢的数据消耗造成的数据丢失。
而且,多个通信线程可替换地被映射到单个连接。这是有利的,因为资源通过在多个通信线程之间共享而更有效地被利用,并且还因为相关但不同的业务被同步。由此,多个通信线程上的通信可以关联单组特性。例如,当多个数据流被发送到同一目的地,并且全部要求保证的吞吐量时,它们可以被映射到提供保证集合吞吐量的单个连接。
图4示出片上网络的基本框图,用于说明IP块通信经由地址范围映射到连接的操作。片上网络包括一个主模块M和两个从模块S1、S2,每一个分别经由网络接口NI被连接到网络。两个从模块S1、S2被实现为存储器,其中第一从模块S1包括地址范围0000-7FFF并且第二从模块S2包括地址范围8000-FFFF。由此,相关于主模块M的网络接口NI可以将通信映射到第一从模块S1,即映射到地址范围0000-7FFF,映射到连接id为cid=0的连接,以及将通信映射到第二从模块S2,即映射到地址范围8000-FFFF,映射到连接id为cid=1的连接。
因此,其中没有通信线程的协议(例如,DTL,MTL)、地址范围可被映射到特定连接。地址范围可以识别一个或多个从模块,或从模块内的存储区域(例如某特别通信中所使用的缓冲器)。
上述地址范围到连接的映射例如可被应用于Eclipse外壳。这里,模块间的数据流被映射到存储器缓冲器上。生产者和消费者模块使用标识符经由外壳读出和写入数据流。地址生成和同步在外壳中执行。每个数据流在存储器中具有预定的缓冲器,并且因此具有预定的在外壳中关联的地址范围。从而,基于由外壳生成的地址,网络接口能识别每个流,并且将其映射到具有连接特性的正确的连接。
地址到连接的映射在基于线程的系统中也是可能的。地址范围被映射到连接,并且线程标识符被用于连接内的业务排序。
上面描述的IP块的通信可以通过现有协议(像DTL设备事务层(DTL)协议规范,MTL协议规范,AMBA AXI协议规范,OCP国际合作组织,开放式内核协议规范等等)来实现。
综上所述,上述映射与不包括连接概念、但利用支持连接的互连(例如,芯片上以太网)来实现的通信协议相关。其益处在于使得能够将连接用于不具有连接概念的协议,从而允许针对不同的业务类别的不同服务配置。片上网络的反向兼容通过适配器单元/外壳被实现,以使现有协议(诸如DTL,AXI和OCP)能够使用由基于连接的互连(诸如片上网络)所提供的不同服务。
因此,可提供一种系统,该系统包括经由通信设备通信的多个部件,该通信设备至少包括一些标识装置,以识别目的地的地址,并且可以另外包括线程信息。另外,该系统包括映射设备,用于将地址范围或线程信息映射到连接数据。连接数据包括对数据传输的详细说明(诸如尽力而为或保证的吞吐量、最大允许抖动、最大允许等待时间、流控制Y/N或排序Y/N。如果消息被发送到系统中的特定地址范围或属于特定线程,则一个连接被分配以保证该消息通过一组特定的传输要求被传送。
应指出,上述实施例举例说明而不是限制本发明,并且本领域技术人员将能够在不脱离所附权利要求的范围的情况下设计多种可替换的实施例。在权利要求中,任何被放置在括号之间的参考标记将不应被解释为限制该权利要求。词语“包含”不排除除了那些在权利要求中列出的元件或步骤之外的元件或步骤的存在。在元件之前的词语“一”或“一个”不排除多个这样的元件的存在。在设备权利要求中列举多个装置,这些装置的几个可被实现为同一个硬件元件。仅某些措施被列举在相互不同的从属权利要求中的事实并不表示这些措施的组合不能被有利地利用。
而且,权利要求中的任何参考标记将不应被解释为限制权利要求的范围。