处理器间通信系统 【发明领域】
本发明通常涉及在两个或更多处理器之间的通信。本发明特别地涉及排列在同一半导体冲模上的处理器之间的处理器间通信。
发明背景技术
随着对更强大计算设备需求的增加,提供了越来越多包含不只一个处理器的系统。
为了本发明起见,在包含两个或多个分离处理器的计算机系统和其中两个或多个处理器被集成在同一芯片上的系统之间进行区分。在一个母板上具有一个主要中央处理单元(CPU)、并且在一个图形卡上具有一个算法处理器的一台计算机是用于一个具有两个分离处理器的计算机系统的一个实例。具有几个分离处理器的一个计算机系统的另一个实例是一台并行计算机,其中配置有一系列处理器以便获得一个改进的性能。为了简化起见,在一个板上具有两个或多个分离处理器的系统还被认为是属于同一类别。
存在有其中两个或多个处理器被集成在同一个芯片或者半导体冲模上的系统。一个典型实例是在同一半导体冲模上具有一个主处理器和一个加密处理器的一个SmartCard(智能卡)(也被称为集成电路卡)。
随着小型手持设备变得越来越普及,对强大和灵活的芯片的需求正在增加。一个典型实例是蜂窝电话,在它开始传播时仅仅是一个用于语音传输(模拟通信)的电话。近几年来已经增加了额外的特征,而且现在大部分地蜂窝电话都被设计成用于语音和数据服务。额外的差别是无线应用协议(WAP)支持、无线电寻呼和短信息系统(SMS)功能,这些仅仅是某些最新发展的名称。所有这些特征需要更强大的处理器和甚至经常需要双处理器或者多处理器芯片。
在将来,举例来说处理数字视频流的系统将变得可用。这些系统也需要强大和灵活的芯片组。
其它实例是诸如多功能JavaCards之类的集成电路卡,诸如掌上型计算机或者个人数字助理(PDAs)之类的小型手持设备,等诸如此类。
对这种双处理器或者多处理器芯片来说,存在有一个用于高效处理器间通信的通信通道是必不可少的。词语“处理器间通信”在此被用作一个用于在第一处理器和/或与这个第一处理器有关的系统资源与第二个处理器和/或与这个第二个处理器有关的系统资源之间的任何通信的同义词。一个共享存储器是需要由一个芯片的所有处理器访问的一个系统资源的一个实例。
系统资源必须以一种有效方式在双处理器或者多处理器芯片中被共享,其中这些处理器在一个任务的同一特征上或者在同一任务的不同特征上并行操作。资源共享在处理器被调用以处理相关数据的应用程序中也可能是必需的。
在1993年四月16日提出的欧洲专利申请EP 0580961-A1中给出了一个多处理器系统的一个实例。所引用的专利申请涉及一个具有多个分离的处理器和一条由所有这些处理器共享的全局总线的系统。增强的处理机接口被提供用于连接这些处理器到公共总线上。由于高的总线负载将影响系统的性能,所以这种多处理器系统不可能用于RISC处理器。在EP 0580961-A1中给出的多处理器系统是强大的,但是实现起来是较为复杂和昂贵的。所示的结构不能用于在一个公共冲模上的多处理器系统。
在1985年四月26日提出的U.S.专利4,866,597中提出了另一种系统。这个US专利涉及一个其中每个处理器具有它自己的处理器总线的多处理器系统。在这些处理器之间经由先进先出数据缓冲区(FIFO)交换数据,其中该先进先出数据缓冲区(FIFO)直接互连相应的处理器总线。这种方法的一个缺点是:随着将要被传送的数据数量而使缓冲区的大小被显著地增加了。
在于1991年9月17日提出的U.S.专利5,283,903中描述和要求保护了具有一个共享存储器的一个多处理器系统。根据这个US专利,该系统包含多个处理器、一个共享存储器(主存储器)、和一个优先级选择器单元。优先级选择器单元在那些处理器之间对访问共享存储器的请求进行判优。由于共享存储器是一个不能处理来自几个处理器的同时和竞争请求的单端口存储器(例如,一个随机存取存储器),所以这是必需的。这种方法的一个缺点是:共享存储器仅仅作为中间存储器是昂贵的。随着高的数据传送而使共享存储器可能变得很大。
在1990年4月24日提出的U.S.专利5,289,588中描述了另一种多处理器系统。处理器通过一条公共总线连接。它们能够经由这条公共总线访问一个共享存储器。一个高速缓存与每个处理器相关联,而且使用了一个判优方案以控制对共享存储器的访问。这种方法的一个缺点是:高速缓冲存储器仅仅作为大的高速缓存以给出一个实际的性能提高是昂贵的。此外,总线冲突导致每个处理器一个降低的性能。
在1992年7月7日提出的PCT专利申请PCT/JP92/00869、而且PCT公开号为WO93/01553的申请中,描述了一种微处理器体系结构。该体系结构支持多个不同种类处理器,这些处理器通过数据、地址、和控制信号总线连接。对一个存储器的访问由判优电路进行控制。
一些已知的多处理器系统使用其中处理器间通信占据处理器的处理周期一部分的体系结构。所希望的是避免这个开销并且释放处理器的处理能力以便能够利用处理器的能力和性能。
其它已知的方案不能被用于集成的、其中两个或多个处理器位于同一芯片内的多处理器系统。
某些已知系统还有另一个缺点是它们在它们的实现中是不对称的,这意味着对每个处理器来说需要不同的实现。此外,用于形式验证的工作对不对称实现来说要比用于对称实现的更大。
发明概述
本发明的一个目的是提供一种用于在两个或多个处理器和/或它们的相关组件之间通信的方案。
本发明的一个目的是提供一种适于集成到一个半导体冲模里的处理器间通信方案。
这些及其它目的通过提供了一个包含至少两个集成处理器的系统的本发明实现。根据本发明,这两个处理器可以经由一个用于交换信息的通信通道连接。一个处理器(P1)具有一条处理器总线,一个可共享的单元、以及一个具有一个外部DMA通道的DMA单元。DMA单元和可共享的单元连接到处理器总线上。另一个处理器具有一个存取单元,它可连接到DMA单元的外部DMA通道上。由于这个配置,可以从存取单元到可共享的单元经由外部DMA通道、DMA单元、和处理器总线建立一个通信通道。
这两个处理器能够被配置在一个公共的半导体冲模上。这允许实现诸如PDAs、手持式计算机、掌上型计算机、蜂窝电话、和无绳电话之类的计算设备。
通信通道能被有利地使用用于在两个或多个处理器和/或它们的相关组件之间进行通信。本发明的配置适合一般的多核心通信要求。该配置是高度对称的,而且它允许其他方面需要的总线控制的数目对每个处理器为最小。本方案是可扩展的而且是非常灵活的。
参考在下文中描述的实施例,本发明的这些及其它方面将会是显然的,并且被解释清楚。
附图简要说明
为了更完整地描述本发明以及为了它的更进一步的目的和优点,参考以下说明并结合附图,其中:
图1是依据本发明的一个双处理器计算机系统的第一实施例的框图;
图2是在图1的双处理器计算机系统中建立的处理器间通信通道的一个示意图;
图3是与本发明第一实施例结合使用的一个存取单元的框图;
图4是依据本发明的一个双处理器计算机系统的第二实施例的示意框图;
图5是在图4的双处理器计算机系统中建立的处理器间通信通道的一个示意图;
图6是与本发明第二实施例结合使用的存取单元和DMA单元的一个框图;
图7是与本发明第二实施例结合使用的存取单元的一个框图;
图8是依据本发明另一实施例、具有三个处理器的一个计算机系统的框图;
图9是依据本发明、具有两个处理器的一个计算机系统的另一实施例的框图。
将结合几个实施例对本发明进行描述。
如图1所示,应用了本发明的一个双处理器系统15包含一个经由一条处理器总线10连接到一个可共享单元13的第一处理器P1。一条处理器总线(也被称作微处理器总线)是连接到计算机系统的处理器的主要途径。一个可共享单元13的实例是一个共享存储器(例如,一个随机存取存储器;RAM)。第一处理器总线10是一条64位、20MHz的总线。系统15包含一个也具有一条处理器总线20的第二处理器P2。这条第二处理器总线20是一条64位、66MHz的总线。在这两个处理器环境16和22(在图1中用圆圈示意地表示)之间的一个互连是经由一个直接存储器存取(DMA)单元11建立的。一个传统的或者一个专用的DMA设计能被使用。DMA单元11经由它的内部接口14连接到处理器总线10,并且经由它的外部接口12连接到一个存取单元21。外部接口12为16位宽。存取单元21本身被连接到第二处理器P2的处理器总线20上。能够在单元21和可共享的单元13之间建立一条用于交换信息的通信通道,即在处理器环境22内的设备和/或单元21能够访问可共享的单元13而不必通过处理器P1,而且不用考虑可共享的单元13与第一处理器P1相连的事实。处理器P1和P2被集成在一个公共的半导体冲模(在图1中未显示),其它单元也是如此。
图2是具有两个处理器环境16和22的公共半导体冲模18的一个示意图。有一个依据本发明建立的、用于处理器间通信的通信通道17。
这个双处理器方案15允许第二处理器P2访问可共享的单元13。从更普遍的观点来看,依据本发明的一个多处理器系统中的一个处理器(在本实施例中为处理器P2)能够访问与另一个处理器(在本实施例中为处理器P1)相关联的资源(在本实施例中为可共享的单元13)。
各种类型的处理器能够使用本方案进行互连。它允许用多个同类处理器乃至用多个不同种类处理器来实现芯片。单词处理器在此处被用作一个用于能够被集成到一个半导体芯片中、并且实际上执行指令和处理数据的任何处理单元的同义词。
复杂指令集计算(CISC)是当今使用的两个主要类型的处理器设计中的一个。它正慢慢地失去普及到精简指令集计算(RISC)设计。目前最普及的CISC处理器是x86,但是还有68xx、65xx、和Z80s在使用中。
当前,最快速的处理器是基于RISC的。有几种普及的RISC处理器,包含Alphas(由Digital研发,并且目前由Digital/Compaq和Samsung生产)、ARMs(由Advanced RISC Machines研发,目前由Intel拥有,而且目前由上述两者和Digital/Compaq生产)、PA-RISCs(由Hewlett-Packard研发)、PowerPCs(在IBM、Apple、和Motorola之间合作研发)、和SPARCs(由Sun研发;SPARC设计目前由许多不同的公司生产)。
ARMs与大多数的其它处理器不同,因为它们没有被设计为最大化性能而是最大化消耗每功率的性能。因此ARMs在手持式机器和PDAs中找到了大部分它们的使用。
在以上部分中给出了依据本发明能够互连的处理器的某些实例。此外合适的是R.E.A.L.处理器,任何已知处理器的处理器核心,以及用户特定的处理器设计。换句话说,本原理适用于大多数的微处理器体系结构。如结合图1中的实施例说明的那样,甚至能够互连一个具有一条慢速处理器总线的处理器和一个具有一条快速处理器总线的处理器。
为了本应用,以下也被认为是一个处理器:中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、系统控制器(SC)、协处理器、辅助处理器等诸如此类。直接存储器存取(DMA)单元是一个被设计用于把数据从一个存储器传递到另一个设备而不通过处理器传递它的单元。DMA一般具有一个或多个专用的内部DMA通道和一个或多个用于外部外围设备的专用外部DMA通道。例如,DMA允许在一条处理器总线上的设备访问存储器而不需要通过处理器介入。
可共享单元的例子是:易失性存储器、非易失性存储器、外围设备、接口、输入设备、输出设备等诸如此类。
存取单元的一个实现例子如图3所示。单元21包含一个处理器接口32、一个直接存取单元(DAU)31、和一个外部DMA通道接口30。处理器接口32具有用于连接到处理器总线20的一个数据链路33和一个控制链路34。外部DMA通道接口30具有一个输出连接到DMA单元11的外部DMA通道12。存取单元21在处理器总线20和DMA单元11之间提供了一个半双工通道。存取单元21利用外部DMA通道12以便从可共享的单元13传输信息(数据和/或控制信息)以及把它传输到可共享的单元13。这样一个外部DMA通道-与由与它相关联的处理器控制的一个内部DMA通道相反-是由外部代理设置的,以便使远程处理器P2可以访问可共享的单元13。
存取单元21去耦在第一处理器P1的时钟域和第二处理器P2的时钟域之间的数据流。这意味着对存取单元21的寄存器的访问总是能够在一个周期中完成,而独立于实际上把数据传输到DMA 11的外部通道12需要花费多长时间。在图1中的右侧发生传输的时间期间内,左侧可以被停机或不是,这取决于实现。这意味着处理器2可以继续操作而几乎没有影响它的性能。
根据本发明,存取单元21能够仅仅由一个核心进行程序设计。
外部DMA通道接口30和/或DAU核心31能够被标准化。换句话说,根据本发明,每个存取单元可以包含一个相同功能的核心。只有处理器接口32必须被修改,这取决于实际使用的处理器和/或处理器总线。由于最大化了重新使用和减少了验证工作,这导致了一个减少了的研发时间。
如图3所示,存取单元21包含两个截然不同的单元,即外部DMA通道接口30和DAU核心31。这是有利的,因为最佳数据同步能够由这样的一种设计来加以保证。然而,把DMA通道接口30和DAU核心31组合到一个单元里也是可能的。
双处理器系统45的另一个实施例如图4所示。这个方案被称作一个对称串联。这个系统45包含一个经由一条处理器总线40连接到一个可共享单元43的第一处理器P1。第一处理器总线40是一条8位、150MHz的总线。系统45包含一个也具有一条处理器总线50的第二处理器P2。这个第二处理器总线50是一个32位、66MHz总线,即总线40比总线50更快。从第一处理器环境46到第二处理器环境52(在图4中以圆圈示意地说明)的一个互连是经由一个存取单元48和一个DMA54建立的,而从第二处理器环境52到第一处理器环境46的一个互连是经由一个存取单元51和一个DMA41建立的。
DMA单元41经由它的内部接口44连接到处理器总线40,并且经由它的外部接口42连接到存取单元51。外部接口42是8位宽的。存取单元51本身被连接到第二处理器P2的处理器总线50上。能够在单元51和可共享的单元43之间建立一条用于传输信息的通信通道,即在处理器环境52内的设备和/或单元51能够访问可共享的单元43,而不必通过处理器P1,而且不用考虑可共享的单元43与第一处理器环境46相连的事实。第二处理器环境52也包含一个可共享的单元53,它能够从第一处理器环境46内部进行访问。
DMA单元54经由它的内部接口57连接到处理器总线50,并且经由它的外部接口55连接到存取单元48。外部接口55是8位宽的。存取单元48本身被连接到第一处理器P1的处理器总线40上。在单元48和处理器环境52内部的某些资源之间能够建立一条用于传输信息的通信通道。这就是说在处理器环境46内部的资源和/或单元48能够访问在处理器环境52内部的某些资源而不必通过处理器P2。这意味着,没有必要连接第一处理器P2用于访问在这个处理器环境52内部的资源。
在图5中给出了具有两个处理器环境46和52的公共半导体冲模49的一个简图。有一个用于处理器间通信、从处理器环境52到处理器环境46建立的通信通道47,和一个从处理器环境46到处理器环境52建立的通信通道56。
这个对称的双处理器方案45允许第二处理器P2访问可共享的单元43,并且允许处理器P1访问在处理器环境52内部的资源。
DMA单元41和存取单元51的一个实现例子在图6的下半部分进行了说明。DMA单元54和存取单元48在图6的上半部分进行了说明。单元51和48与图3中的单元21相同。唯一必须修改的部分是处理器接口62和72。直接存取单元核心(DAU核心)61和71以及外部DMA通道接口60和70是相同的。处理器接口72具有用于连接到处理器总线50的一个数据链路58和一个控制链路59。外部DMA通道接口70具有一个输出连接到DMA单元41的外部DMA通道42。存取单元51提供了一个半双工通道往返于处理器总线50和DMA单元41之间。存取单元51利用外部DMA通道42以便从可共享的单元43中传输信息(数据和/或控制信息)。外部DMA通道接口60具有一个输出连接到DMA单元54的外部DMA通道55。存取单元48提供了一个半双工通道往返于处理器总线40和DMA单元54之间。存取单元48利用外部DMA通道55以便向处理器环境52传输信息(数据和/或控制信息)。
存取单元51和48去耦在第一处理器P1的时钟域和第二处理器P2的时钟域之间的数据流,如图7中示意地说明的那样。第一处理器P1的时钟信号(P1时钟)经由一条时钟线74传送到存取单元48的DAU核心61和处理器接口62。第二处理器P2的时钟信号(P2时钟)经由一条时钟线73传送到存取单元51的DAU核心71和处理器接口72。对存取单元51或者48中的寄存器的访问总是能够在一个处理器时钟周期中执行,而独立于实际上把数据传输到外部通道42或者55需要花费多长时间。
图8是依据本发明另一实施例包含三个处理器P1、P2、和P3的一个计算机系统80的框图。第一处理器P1经由一条快速处理器总线81连接到一个DMA1。使用了一个桥接器82以连接处理器总线81到一条具有几个外围设备1a和1b的慢速外围总线83。这些元件是第一处理器环境的所有部分。第二处理器P2和快速处理器总线84是第二处理器环境的一部分。处理器P3经由一条快速处理器总线85和一个桥接器86连接到一条慢速外围总线87。在本实施例中,有两个外围设备3a和3b连接到这条外围总线87。根据本发明,如图8所示,在三个处理器P1、P2、P3之间建立实际的半双工通道。使用了包含一个DAU核心和一个外部DMA通道接口的一个存取单元88,以在处理器总线84和第一处理器P1的DMA1之间建立一个连接89。在第一处理器环境内部也有包含一个DAU核心和一个外部DMA通道接口的一个存取单元90。使用了这个存取单元90以建立一个到第二处理器环境中的DMA2的连接91。存取单元88和DMA1在一侧、而存取单元90和DMA2在另一侧的方案是对称的,如图8中所示。在本实施例中,在第一处理器环境和第三处理器环境之间也有一个连接92。这个连接92建立在在左手侧的存取单元93和在右手侧的DMA3之间。最后但并非最不重要的,还有一个用于互连第二和第三处理器环境的连接95。这个连接95把存取单元94连接到DMA2。存取单元90、93、94位于慢速外围总线83、87中,并且经由外部通道91、92、95连接到另一个处理器的DMA单元DMA2、DMA3。这提供了一个高度对称的核心间的解决办法。存取单元90、93、和94利用外部DMA通道以在/从远程外围设备中传输日期。
还有另一个实施例100出现于图9中。这个实施例100特征是在一个数字信号处理器(DSP)核心101和一个系统控制器(SC)核心102之间有两个实际的半双工通道。在DSP输入/输出空间中有一个连接到输入/输出总线105的存取单元103。两个外围设备(外围设备1a和外围设备2a)连接到外围总线118。这个存取单元103经由一个外部通道106连接到在SC102环境内部的一个DMA2。一个存取单元104位于SC输入/输出空间中,它连接到一条外围总线107。两个外围设备(外围设备1b和外围设备2a)连接到外围总线107。这个存取单元104经由一个外部通道108连接到在DSP 101环境内部的一个DMA1。在本实施例中,每个存取单元103、104的特征是一个具有自动递增功能的32位地址寄存器(s++)109、110和16位数据寄存器111、112、113、114。
通过一个核心对较远的存储空间115、116的直接访问能够以一种间接寻址方式进行,即,在能够经由数据寄存器111、112、113,114传输数据之前把地址写入到地址寄存器109、110中。如果自动递增功能被启用了,则能够进行对后续地址的更进一步访问而不需要相应地址寄存器的明确设置。这最小化了用于块传送的开销,并且允许使用DMA而不必应用一个地址。
在由一个DAU核心和一个DMA竞争使用存取单元的情况下,能够提供两个自动递增的地址寄存器以允许准并行操作。
如果SC总线117被SC核心102占用持续一个比较长的时期,则直接访问可能导致在DSP101侧上一个高的等待时间。为了在忙碌的时间内传输较大的数据块,能够通过改变在SC总线117上的判优模式而得到改善。
实现一种块传送模式也是可能的。在这种模式下,存取单元可以被配置为使用两个DMAs传送一个较大数据块。
同时也可能实现一个邮箱功能。例如一个传输起源于SC102。一旦完成了一个传输,就在DSP101中产生一个中断。DSP101能够通过在SC102中产生一个中断而请求一台新的数据传输。为了允许准并行使用块传送和邮箱功能,可以使用两个自动递增的地址寄存器。
依据另一个实施例,为了消息传送目的使用了一个公共的共享邮箱单元,多处理器系统中的处理器都能够访问这个邮箱单元。
在本发明的另一个实施例中,依据本发明,两个或多个处理器和一个用于处理器间通信的通信通道被集成到一个特定用途集成电路(ASIC)中。
在此提出和要求保护的体系结构的一个优点是:它支持多个不同种类的处理器。本发明的方案能够是扩展到适合通用的多核心通信要求。根据本发明,由于潜在可用的DMA单元能被用于这个目的,所以用于每个处理器的总线控制的数目能够被减少。原理和设计重用是另一个优点。已经结合本发明的各个实施例提到了其它各种优点。
某些设备由DMA启动以直接访问存储器的事实有助于加速处理。
提出的体系结构是对称的,而且可应用到大多数的微处理器体系结构中。它能够被扩展到多核心体系结构中,即它与核心的数目无关。
本发明最适合在诸如PDAs、手持式计算机、掌上型计算机等之类的计算设备中使用。它也适于在蜂窝电话(例如、GSM电话)、无绳电话(例如,DECT电话)等中使用。在此提出的体系结构能够在用于上述设备的芯片或芯片组或者用于Bluetooth(蓝牙)应用的芯片中使用。
应意识到,本发明的各个特征为了清楚起见在单独的实施例环境中进行了描述,但是它们也可以在单个实施例中组合提供。相反地,本发明的各个特征为了简洁起见在单个实施例环境中进行了描述,但是它们也可以分别地或者以任何适当的子组合形式提供。
附图和说明书公开了本发明的最佳实施例,而且尽管使用了特定的术语,但是因此给出的描述仅仅以一种通用的和叙述性的意义使用专业词汇,并不是为了限制目的。