具有动态通信服务选择的集成电路的制作方法

文档序号:6490559阅读:174来源:国知局
专利名称:具有动态通信服务选择的集成电路的制作方法
技术领域
本发明涉及包括多个模块的集成电路和用于在这样的集成电路中进行动态通信服务选择的方法。
背景技术
随着当前计算和通信资源的发展,在移动终端的结构中已经产生了两种主要趋势。第一种趋势是应用会聚和增加的多样性,例如,越来越多的不同功能或子系统被集成在能够使终端执行新的服务和应用的单个终端中。第二种趋势是指体系结构复杂度的加剧,例如,硬件和软件体系结构的整体复杂度超过了基于由总线连接的内核的传统体系结构形式的限制。
满足上述趋势的一种可能的解决方案看起来是模块化。当模块的边界被选择为与类似于GSM调制解调器、显示器或音频这样的功能子系统相符时,可以得到两级的硬件和软件体系结构。第一种是子系统内体系结构,其中可以应用基于由总线连接的内核的传统体系结构形式,由此可以重用现有的子系统。第二级体系结构是子系统间体系结构,其中应用了网络体系结构,具有在类似于OSI分层网络体系结构上执行的子系统间通信。利用这些两级体系结构,能够如本领域中已知的那样实现功能子系统的发展,因此可以重用知识产权(IP)块。
典型地,大多数的移动终端在少数外围组件的基础上提供它们的功能,如便携式音频播放器(音频子系统和CD或固态存储器)、移动电话(GSM调制解调器和语音编解码器)、掌上管理器(触摸屏+微处理器)或固态照相机(照相机+显示器+固态存储器)。这些各种不同的子系统,例如外围组件,在稳定地增加。这些不同的子系统相互独立地发展,并迅速地变得更高级和更复杂,使得它们的性能参数,例如比特率、容量、分辨率和质量,在稳定地提高。实际的终端包括越来越多的子系统,且由于重点被移向了软件、应用和服务,子系统的内部变得不太重要。
当基于内核和总线的传统体系结构专注于在有限的计算资源集合上的计算、在具有低的等待时间和紧密总线协议的紧密耦合的块的小集合上调度任务时,子系统之间的体系结构不再专注于计算上,而是专注于通信上。由不同子系统共享的资源是通信基础设施,且可能是共享的存储器。这些子系统通常以相对高的等待时间和相对低的同步率而松散地耦合,网络协议也是这样。
终端通常由通过网络相互连接的多个子系统组成。类似于UMTS调制解调器或视频编解码器这样的子系统可以被独立地设计。它们可以包括一个或多个可编程内核、一些处理器、本地存储器和I/O。网络被用于连接子系统。所有的子系统间通信,如数据、指令、存储通信量和控制信息,将被通过网络执行。
所谓的片上系统SoC典型包括多个子系统,例如具有本地存储器的功能元件或模块,其由互连电路连接。该片上系统SoC适于执行可以被映射到子系统集合上的不同的应用。由子系统执行的所有功能需要一定量的存储器以用于它们的处理的执行。存储器的准确量将取决于多个参数,如视频解码的屏幕大小、调制解调器的数据率等等。因此,不同的应用会具有不同的存储器需求。现在消费电子设备范围中的多数应用领域要求系统成本和功耗最小化。为了在上述限制环境中具有竞争性,为特定的应用优化所需存储器(片上的或者外部的)的量是很重要的。另一方面,随着类似于移动电话、PDA、MP3播放器等这样的许多消费电子市场的上述会聚的趋势,着眼于单个的特定应用或仅着眼于应用的有限集合不再是可行的。终端的任何实现都应该是低成本和低功率的,其中成本实质上是由材料清单规定的,也就是芯片面积、芯片量、引脚量和PCB布线层。
另外对于以上存储器需求,需要一些不同的通信服务来处理片上通信,其中系统中的不同的块或模块可以以不同速度和不同粒度产生处理数据。一种通信服务可以是根据直接连接,同时仅在模块的本地存储器中有一个小缓冲器,其中两个硬件块或模块通过以数据交换的低粒度以及高同步率为特征的网络在相互之间直接通信。第二种通信服务可以是根据基于存储器的连接,其中为了去耦(decouple)两个通信块或模块,数据被存储在缓冲器中。基于存储器的通信以数据交换的粗粒度以及较低的同步率为特征,这是因为更大的缓冲器可以被分配在共享的存储器中。
通常设计的已知系统使得在系统设计期间已经评估了在模块之间的所有可能的连接,并且每个通信都被静态地链接到某个通信服务。典型地,资源受限系统对资源的使用是非常优化的,该通信是已知的和静态的,并且此外没有动态连接创建。这可能对于具有已知应用的系统是可行的,然而,对于其最终应用还未知的系统或可能在它们生存期期间被改变的系统,在块或模块之间的通信应该更灵活。因此,系统应该能提供通信资源的动态分配。尽管有时在这样的系统中的连接被动态地产生,仅使用一个预定的连接服务。特别是对于资源受限的片上系统SoC,也就是低资源的,为了提供低成本和低功率设备,通信资源的动态分配是很重要的。当某个通信请求总是以同一个方式(可能最坏的情况)被满足,而不管其当前的参数时,某些其中所有的资源都被占用的情况会出现。因此,其它通信请求会因为所有的资源被占用而被拒绝。特别对于便携式设备,该便携式设备是功率严重受限的,并且其中一些设备的功能性是会聚的,且可用资源的有效使用对于在这个特定领域中具有竞争性是很重要的。因此,通信请求的更灵活的处理和相应通信资源的授权看起来是有利的。

发明内容
因此本发明的目的是在具有多个模块的片上系统中提供通信服务的动态选择。
因此,提供了一种集成电路,包括多个模块M1到M5、CPU,其用于处理应用;全局存储器GM,其能够由所述多个模块M1到M5、CPU共享;互连装置IM,其用于根据多个通信服务C1、C2来互连所述模块M1到M5、CPU和所述全局存储器GM。所述集成电路进一步包括至少一个通信管理单元CMU,其用于管理所述多个模块M1到M5之间的通信,其中所述通信管理单元CMU接收在至少两个所述模块M1到M5、CPU之间通信的请求,并动态选择所述多个通信服务C1、C2的一个作为所述模块M1到M5、CPU之间所请求的通信的基础。
因此,该系统能够动态地对模块之间通信中的改变作出反应。
根据本发明的一个方面,需要最少互连资源的通信服务C1、C2被选择。因此,允许更好的资源使用,并因此在资源受限环境中可以开放更多的通信信道。
根据本发明的另一方面,如果所述模块M1到M5、CPU中的至少两个的粒度和数据率不匹配,或者如果所述两个模块M1到M5、CPU中的一个未包含足够的本地缓冲,那么第一通信服务C1被选择以允许在所述两个模块(M1到M5、CPU)之间的基于存储器的通信,以及如果所述模块M1到M5、CPU中的两个的粒度和数据率匹配,且如果所述两个模块M1到M5、CPU中的一个包含足够的本地缓冲,那么第二通信服务被选择以允许直接通信。因此,如果可能,会选择直接通信服务,借此减少所需带宽、存储器分配和附加的系统的功率使用。
根据本发明的又一方面,每次通信管理单元CMU接收到在所述多个模块M1到M5、CPU中的至少两个之间建立通信的请求时执行该选择。因此,允许系统为每个请求的通信动态分配最佳资源,并因此允许最佳的资源使用。
根据本发明的又一方面,为在所述多个模块中的所述两个之间通信而保留的资源,在已经执行了所请求的通信之后被释放。因此,保留的资源被立即释放,使得它们能够为其它请求的通信再次重用。
本发明同样涉及在上述集成电路中选择通信服务的方法。通过接收在所述模块M1到M5、CPU中的至少两个之间通信的请求,和通过动态选择所述多个通信服务C1、C2中的一个作为在所述模块M1到M5、CPU之间的通信的基础,来管理所述多个模块M1到M5之间的通信。
现在将参考附图详细描述本发明。
附图简述

图1示出了根据第一实施例的片上系统的框图;图2示出了根据第二实施例的片上系统的框图;以及图3示出了根据第三实施例的片上系统的框图。
具体实施例方式
根据本发明的片上系统可以是低资源的,也就是,如移动电话或便携式设备这样的低成本和低功率的系统。然而,本发明的原理同样可以被应用到较少限制的环境。
图1示出了根据本发明的第一实施例的片上系统SoC的框图。该系统包括两个模块M1、M2、中央处理单元CPU、全局存储器GM和互连装置IM。第二模块M2包括存储缓冲器MB。全局存储器GM包括全局缓冲器FB,并被用作共享存储器,CPU或两个模块M1、M2可以在该共享存储器中存储数据。通信管理单元CMU在软件基础上被实现在中央处理单元CPU上,并被用于管理在CPU和模块之间的通信以及模块间通信。
根据在模块上运行的应用,不同的模块能够以不同的速度和不同的粒度产生数据。模块间通信能够以两种方式实现,也就是直接块到块或模块到模块通信或基于存储器的通信。直接块到块通信主要地用于小令牌的交换。这个通信具有相当高的同步率,但却仅使用小缓冲器,其中该缓冲器对于一个块是本地的。基于存储器的通信主要用于大令牌,其具有更低的同步率,但是更大的缓冲器,其中该缓冲器位于主存储器中,也就是共享存储器GM中。仅使用直接块到块的通信会导致不灵活的系统,这是由于某些特定的连接仅能够使用基于存储器的服务而被建立。然而,如果仅执行基于存储器的通信,这将导致共享存储器和较低通信要求情况所需功率的过度使用,由此也阻止或阻塞了其它通信请求的处理。
通过实现通信管理单元CMU,片上系统可以根据请求的通信的实际粒度和数据率动态分配直接块到块或者基于存储器的通信。因此,对于将实现什么通信模式或通信服务的决定,是基于对请求的通信的实际参数的分析的。根据第一实施例,在第一和第二模块M1、M2之间的通信的管理由在CPU上实现的通信管理单元CMU执行。在两个模块M1、M2之间的通信可以通过连接C1或通过连接C2执行。连接C1被实现为基于存储器的通信,也就是,模块M1写数据到全局缓冲器FB中,而模块M2从全局缓冲器FB中读取这些数据。连接C2被实现为从模块M1到模块M2的直接连接,其中数据可以直接被写到存储缓冲器MB中。根据第一实施例,对于使用哪条连接(C1或C2)的决定是通过被实现为运行在CPU上的软件任务的通信管理单元CMU而执行的。因此,在系统中的中央位置上执行该决定处理。
在处理系统上的应用期间,可以从CPU发布请求到通信管理单元CMU,以在模块M1和模块M2之间建立通信或连接。作为选择,也可以从模块M1、M2中的一个发送这个请求。通信管理单元CMU从应用或发送模块中检索请求的通信的参数。这些参数可以是所需通信的粒度或带宽。
如果通信的参数相互对应,且一个模块,也就是接收模块,具有足够的本地缓冲,也就是模块缓冲器MB,那么直接模块到模块通信被用来建立连接C2。然而,如果参数不匹配,那么基于存储器的连接C1被选择。对于要使用上述通信模式中的哪一个的决定,优选地在每次建立连接的请求被通信管理单元CMU接收时被执行。因此,系统可以为通信请求动态分配最佳的资源。在成功地执行模块之间或在CPU和一个模块之间的通信后,像全局存储器GM中的全局缓冲器FB这样的已经为这个通信而保留的资源被释放,使得这些资源可以被用于其它连接。因此,可以最佳地使用系统存储器和系统的带宽,使得存储器的全部使用的资源分配减少,同样与静态的情况相比,该通信模式所需的带宽,允许同时打开更多通信信道。另外,由于占用更少的资源,因此降低了系统的功耗。
在两个模块之间的直接通信与基于存储器的服务相比,具有较少的延迟或等待时间,由此可以增加系统的性能。然而,在能够建立通信之前发生的决定处理向该通信中引入了初始延迟,并同样需要实现通信管理单元所需的控制开销。在另一方面,不需要实时建立连接,此外偶尔执行这些连接的建立,使得某些延迟是可以接受的。
图2示出了根据本发明的第二实施例的片上系统的框图。该片上系统包括两个模块M3、M4,以及互连装置IM和全局存储器GM。全局存储器GM包括全局缓冲器FB。模块M3包括通信管理单元CMU,其被实现为所述模块M3上的软件任务。模块M4包括模块缓冲器MB,并且一个被实现为硬件块的通信管理单元CMU与模块M4相关。通信管理单元CMU或两个模块M3、M4被用于管理模块的通信。能够通过连接C1或者通过连接C2执行两个模块M3、M4之间的通信,其中连接C1也就是基于存储器的通信,连接C2也就是直接通信。
根据第二实施例,没有在第一实施例中的中央通信管理单元。模块的通信管理被分布到每个模块上并被对每个模块而执行。可以在发起通信的模块上或者在接收通信的模块上执行通信管理,其中该接收通信的模块也就是从模块。作为选择,可以在发起以及接收模块上执行通信管理。在这样的情况中,要为每个模块实现决定机制。通信管理可以被实现为软件任务(模块M3)或硬件元件,其中硬件元件被安排成模块和互连装置IM之间的命令解释器(shell)。
如第一实施例中所述的那样来执行实际的决定机制。首先,接收在两个模块之间建立通信的请求。可以从一个块或从在片上系统上原始地执行的应用发送这个请求。优选地与发起模块(作为选择这也可以是接收模块)相关的通信管理单元CMU,要检查这个通信所需的参数。如上所述,这可以是粒度或带宽。如果发送和接收模块的通信参数匹配,且如果接收模块在其模块缓冲器MB中有足够的本地缓冲,那么选择直接模块到模块通信,且在模块之间建立对应的连接,也就是连接C2。然而,如果模块的通信参数不匹配,或者如果在模块缓冲器MB中没有足够的本地缓冲,那么选择基于存储器的通信且使用连接C1。
根据可选择的实施例,可以提供在第一和第二实施例的组合的基础上的片上系统SoC。因此,可以中央地或非中央地执行对通信服务的选择。
图3示出了根据本发明第三实施例的片上系统。第三实施例是在第一实施例的基础上的。该系统包括模块M5、命令解释器S、互连装置IM、全局存储器GM和资源管理单元RMU。模块M5通过命令解释器S和互连装置IM而连接到全局存储器GM。模块M5包括处理器PROC、指令高速缓存器I,数据高速缓存器D和本地存储器LM。处理器PROC和本地存储器LM通过总线B而相互连接。本地存储器LM包括预取缓冲器PB。本地存储器LM被用作专用于模块M的私有存储器。本地存储器LM被定尺寸为小存储器,其足够以低存储器需求来运行应用。这个存储空间的量可以取决于在模块M5上执行的应用。
另外,如图1所示,该系统还包括中央处理单元CPU和两个模块M1、M2。第二模块M2包括存储缓冲器MB。全局存储器GM包括全局缓冲器FB,并被用作共享存储器,CPU或两个模块M1、M2可以在该共享存储器中存储数据。通信管理单元CMU在软件的基础上在中央处理单元CPU上被实现,并被用来管理在CPU和模块之间的通信以及模块间通信。根据第一实施例执行对通信服务的选择。
模块M5可以是任意的子系统,且可以还包括其它功能块,执行专用的应用或一些不同的应用。命令解释器S配备在模块M5和互连电路IM之间,并被用于管理在模块和互连电路之间的通信。命令解释器S的思想是对模块隐藏互连电路的特性。因此,由于命令解释器S被用作接口,已经存在的模块可以被使用而不必重新设计它们的通信。互连电路IM优选地是在芯片上的网络,但同样可以是基于总线的电路。
命令解释器S包括存储管理单元MMU和寻址转换单元ATU。存储管理单元MMU监测本地存储器LM中的空闲存储空间,并且一旦本地存储器LM中的可用存储空间比预定最小值小时就请求分配全局存储器GM中的全局缓冲器FB。在这背后的思想是对于在本地存储器LM中没有足够空间的运行在模块M上的应用,则外包处理数据。地址转换单元ATU接着用来将由运行在模块M上的应用使用的地址转换成相应于全局存储器GM的全局地址映射的地址。
如上所述,存储管理单元MMU发送一个请求,来请求全局存储器GM中的缓冲器,该缓冲器应当被保留专用于来自该模块的处理数据。该请求被从存储管理单元MMU发送到资源管理单元RMU。资源管理单元RMU用来管理系统中的全部资源。另外,存储管理单元MMU请求提供通过互连电路IM在模块M和全局存储器GM之间的保证的数据路径。资源管理单元RMU接收到这些请求,并确定在全局存储器GM中是否有足够的可用空间来保留所请求大小的缓冲器,以及是否互连电路IM可以提供在模块M5和全局存储器GM之间的请求的通信路径的足够带宽。如果资源管理单元RMU已确定在全局存储器GM中有足够的可用空间并且对于通信路径有足够的可用通信资源,那么资源管理单元RMU向存储管理单元MMU发送一个响应。资源管理单元RMU将全局存储器GM中全局缓冲器FB的可用空间及其地址包括到该响应中。一旦存储管理单元MMU已经从资源管理单元RMU接收到这个肯定的响应,它可以激活地址转换单元ATU。地址转换单元ATU被用来对于运行在模块M上的应用隐藏处理数据的外包。为了完成这种隐藏,不能再存储在本地存储器LM中的处理数据的地址被提供了偏移量。那些不能存储在本地存储器LM中的处理数据的地址偏移量,是根据由资源管理单元RMU返回的全局存储器GM中的全局缓冲器FB的地址计算的。
为了获得这个系统性能的另外的提高,存储在全局缓冲器FB中的数据可以在其由运行在模块M上的应用使用之前被预取并被存储在本地存储器LM中的预取缓冲器PB中。通过预取该数据,对于该应用隐藏了全局存储器GM中的全局缓冲器FB的较长的路径,且可以同样对该应用隐藏由外包处理数据引入的等待时间。
对于全局存储器GM中的全局缓冲器FB的分配可以在某个应用的运行时被执行,或也可以在预定的时间周期后被执行,或可选择地,可以如上所述在某个事件的基础上被执行。
如果片上以及片外全局存储器在系统中出现,那么将进行对于全局存储器中的缓冲器的分配,例如为了使成本、功率和带宽资源最优化。
根据本发明的动态存储器分配的缺点是,通过引入地址转换单元ATU,另外的复杂度被增加到模块M的接口或命令解释器中。此外,为了跟踪可用的通信资源,资源管理单元RMU需要被结合到片上系统中。数据的输出或外包会引入另外的等待时间。此外,资源管理单元RMU需要在全局存储器上执行访问判优,使得所需的通信路径可以被保证。
根据本发明的又一实施例,第三实施例的动态存储器分配同样可以被应用在根据第二实施例的片上系统SoC中,或可选择地被应用于在第一和第二实施例的组合的基础上的片上系统SoC中。
根据本发明的实施例的通信管理单元CMU同样也可以连同存储管理单元MMU和地址转换单元ATU一起被实现在根据第三实施例的命令解释器S中。
模块之间的通信的参数,模块的参数或运行在模块上的应用的参数可以由资源管理单元RMU存储并管理。因此,作为选择,向CMU查询通信参数可以通过向RMU发布对这些参数的请求来执行。
模块之间的通信同样可以在多于两个模块之间执行,例如,通过多播,也就是一个发送模块和几个接收模块。
在以上实施例中所述的通信管理单元CMU同样能够与模块(M1到M5)通信。这些模块例如可以发送请求,且CPU发送授权或程序缓冲器大小。这同样可以发生在实际数据交换期间,这是由于模块必须在它们之间通信来同步,例如通知另一个模块缓冲器已经满了,并可以由该另一个模块清空。这个通信在数据通信的相反方向中执行,并可以被实现为控制通信。基本上,这样的控制通信量,如发送请求、对模块(M1到M5)编程或它们之间的同步可以直接完成,而不需要进入全局存储器中。对于该通信量,有时同样可以使用单独的通信介质(总线)。
另外,互连IM可以被实现为网络,其中可以动态指定基于例如等待时间的通过该网络的路径。这样的互连装置IM同样能够例如提供不同参数的通信信道,其中所述参数例如带宽、延迟、去耦(通过全局存储器中的缓冲器)。可以动态选择适合具有某种参数的某种类型的通信的信道(具有合适的参数的信道)。
应该注意的是,上述实施例描述并不限制本发明,本领域的那些技术人员能够设计许多可选择的实施例,而不脱离所附的权利要求的范围。在权利要求中,括号之间的参考标记不应被解释为限制权利要求。词语“包括”不排除存在除了在权利要求中所列出的那些元件或者步骤以外的元件或者步骤。在元件前面的词语“一个”不排除存在多个这样的元件。在列举若干装置的设备权利要求中,这些装置中的若干个可以由同一个硬件具体化。在相互不同的从属权利要求中引用某些手段的事实并不表示这些手段的组合不具有优势。
此外,权利要求中的任何参考标记不应被理解为限制权利要求的范围。
权利要求
1.一种集成电路,包括用于处理应用的多个模块(M1到M5、CPU),该集成电路包括全局存储器(GM),其能够由所述多个模块(M1到M5、CPU)共享;互连装置(IM),其用于根据多个通信服务(C1、C2)来互连所述模块(M1到M5、CPU)和所述全局存储器(GM);以及至少一个通信管理单元(CMU),其用于管理所述多个模块(M1到M5)之间的通信,其中所述通信管理单元(CMU)接收在所述模块(M1到M5、CPU)中的至少两个之间通信的请求,并动态选择所述多个通信服务(C1、C2)中的一个作为所述模块(M1到M5、CPU)之间所请求的通信的基础。
2.根据权利要求1的集成电路,其中需要最少互连资源的通信服务(C1、C2)被选择。
3.根据权利要求1或2的集成电路,其中如果所述模块(M1到M5、CPU)中的至少两个的粒度和数据率不匹配,或者如果所述两个模块(M1-M5、CPU)中的一个未包含足够的本地缓冲,那么选择第二通信服务(C1)以允许在所述两个模块(M1到M5、CPU)之间的基于存储器的通信。
4.根据权利要求1或2的集成电路,其中如果所述模块(M1-M5、CPU)中的两个的粒度和数据率匹配,且如果所述两个模块(M1-M5、CPU)中的一个包含足够的本地缓冲,那么选择第二通信服务(C2)以允许在所述两个模块(M1-M5、CPU)之间的直接通信。
5.根据权利要求3或4的集成电路,其中每次通信管理单元(CMU)接收到在所述多个模块(M1到M5、CPU)中的至少两个之间建立通信的请求时,执行所述选择。
6.根据权利要求1或5的集成电路,其中为在所述多个模块中的所述两个之间的通信而保留的资源,在已经执行了所请求的通信之后被释放。
7.根据权利要求1的集成电路,其中运行在所述模块上的所述应用是资源受限的。
8.一种在集成电路中选择通信服务的方法,该集成电路包括用于处理应用的多个模块(M1到M5、CPU)和适于在所述多个模块(M1到M5、CPU)之间共享的全局存储器(GM),该方法包括以下步骤通过接收在所述模块(M1到M5、CPU)中的至少两个之间通信的请求,和通过动态选择所述多个通信服务(C1、C2)中的一个作为所述模块(M1到M5、CPU)之间的通信的基础,来管理所述多个模块(M1到M5)之间的通信。
全文摘要
提供了一种集成电路,包括多个模块(M1到M5、CPU),用于处理应用;全局存储器(GM),能够由所述多个模块(M1到M5、CPU)共享;互连装置(IM),用于根据多个通信服务(C1、C2)来互连所述模块(M1到M5、CPU)和所述全局存储器(GM)。所述集成电路进一步包括至少一个通信管理单元(CMU),其用于管理所述多个模块(M1到M5)之间的通信,其中所述通信管理单元(CMU)接收在所述模块(M1到M5、CPU)中的至少两个之间通信的请求,并动态选择所述多个通信服务(C1、C2)中的一个作为所述模块(M1到M5、CPU)之间所请求的通信的基础。
文档编号G06F15/167GK1829982SQ200480021831
公开日2006年9月6日 申请日期2004年7月21日 优先权日2003年7月30日
发明者阿图尔·T·伯查德, 弗朗索瓦丝·J·哈姆斯泽, 哈尔姆·J·H·N·肯特尔 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1