背景技术
随着对更强大的计算设备的要求的增长,提供越来越多的包括不止一个处理器的系统。
为了本发明的目的,需区别包括两个或更多个分立的处理器的计算机系统和在相同的芯片上集成两个或更多处理器的系统。具有在母板上的主中央处理器单元(CPU)和在图形卡上的算法处理器的计算机是具有两个分立处理器的计算机系统的一个例子。具有多个分立处理器的计算机系统的另一个例子是并行计算机,其中安排了处理器阵列以获得提高的性能。为了简便的目的,在板上具有两个或更多的分立处理器的系统也被认为是属于相同的种类。
存在在相同的芯片或半导体芯片上集成两个或更多处理器的系统。一个典型的例子是智能卡(也被称为集成电路卡),其在同一半导体芯片上具有一个主处理器和一个隐式处理器。
随着小型手持设备变得越来越普及,对强大而灵活的芯片的要求日益增加。一个典型的例子是蜂窝电话,在其传播的初期,蜂窝电话只是一个用于语音传输的电话(模拟通信)。经过这些年,已增加了附加的特征,并且当今大部分的蜂窝电话被设计用于语音和数据业务。附加的微分器可以是无线应用协议(WAP)支持、短消息系统(SMS)和多媒体消息服务(MMS)功能,这只列举了许多当前发展中的一些。所有这些特征要求更强大的处理器并甚至经常要求是双处理器或多处理器芯片。
今后,处理数字视频流的系统将例如变得可利用。这些系统也要求强大而灵活的芯片组。
其他的例子是集成电路卡、比如多用途JavaCard,小型手持设备、比如掌上电脑或个人数字助理(PDA),视频和音频设备,用于在汽车中使用的设备等。
对于这种双处理器或多处理器芯片而言,存在用于高效的处理器间通信的通信通道是必要的。表述“处理器间通信”在这里用作第一处理器和/或与第一处理器关联的系统资源同第二处理器和/或与第二处理器关联的系统资源之间的任何通信的同义词。共享的存储器(例如随机访问存储器)是通常需要被芯片的所有处理器访问的系统资源的一个例子。
系统资源必须以一种有效的方式在双处理器或多处理器芯片中被共享,其中处理器对任务的同一方面或相同任务的不同方面进行并行操作。资源的共享在请求处理器处理相关的数据的应用程序中可能也是必要的。
多处理器系统的一个例子在1993年4月16日提交的欧洲专利申请EP 0580961-A1中给出。该专利申请涉及具有多个分立处理器和由所有这些处理器共享的全局总线的系统。提供增强的处理器接口,用于将处理器链接到公共总线。由于影响系统性能的高的总线负载,该具有全局总线的多处理器系统不能利用RISC处理器实现。在EP 0580961-A1中给出的多处理器系统是强大的,但是实现起来复杂而昂贵。所示的结构不能用于在一个公共芯片上的多处理器系统中。
在1985年4月26日提交的美国专利US 4,866,597中提出了另一个系统。该美国专利涉及一种多处理器系统,其中每个处理器具有其自己的处理器总线。数据在这些处理器之间通过直接使相应的处理器总线相互连接的先进先出(FIFO)数据缓存进行交换。该方法的缺点是缓存的大小随待传输的数据量而急剧增加。
美国专利US 5,093,780涉及一种处理器间传输系统,该系统具有自动读写传输数据的数据链路。直接存储器访问(DMA)单元和发送器被分配给第一处理器,并且接收器以及DMA单元在第二处理器上被分配。处理器必须通过对相应的DMA进行编程来设置传输。即是,处理器事先必须知道数据是否要被传输。这是所描述的处理器间传输系统的一个缺点,因为需要涉及相应的处理器。所述系统的另一个缺点是以下事实,即整个传输是单向的、也即实现是不对称的。只可能从在图4的左手边的存储器16传输数据到右手边的存储器26。
一种用于多处理器系统的DMA控制器在美国专利5,222,227中公开。该DMA控制器具有控制由微型计算机系统执行的数据传输操作的功能。提供分离的地址和数据管道。为总线使用三态技术。总线CDB和SDB至少是暂时以电子方式相互连接的。因此,两种总线必须以相同时钟速度操作,并且两种总线必须具有相同的总线带宽。根据美国专利5,222,227,只有同构总线才能互相连接。在所示的系统中没有使用外部DMA通道。
在1991年9月17日提交的美国专利US 5,283,903中描述和要求保护一种具有共享的存储器的多处理器系统。根据该美国专利的系统包括多个处理器、一个共享的存储器(主存储器)和一个优先级选择单元。优先级选择单元在这些处理器之间仲裁对共享的处理器进行访问的请求。这是需要的,因为共享的存储器是单端口存储器(例如随机访问存储器),其不能处理来自若干处理器的同时的竞争请求。该方法的缺点在于共享的存储器作为唯一的中间存储器是昂贵的。该共享的存储器可能随数据传输的增加而增大。
在1990年4月24日提交的美国专利US 5,289,588中描述了另一种多处理器系统。处理器和公共总线耦合。处理器可以通过该公共总线访问共享的存储器。一个缓存与每个处理器相关联并且一种仲裁方案被用于控制对共享的存储器的访问。该方法的缺点是缓存存储器非常昂贵,因为只有大的缓存才能有真正的性能提升。另外,总线冲突导致每个处理器的性能下降。
在1992年7月7日提交的PCT专利申请PCT/JP92/00869中描述了一种多处理器体系结构,并以PCP公开号WO 93/01553公开。该体系结构支持多个异构处理器,这些异构处理器通过数据、地址和控制信号总线耦合。对存储器的访问由仲裁电路控制。
在一些已知的多处理器系统使用的体系结构中,处理器间通信占用处理器的部分处理周期。为了能够更好地利用处理器的能力和性能,期望避免这种系统开销并且释放处理器的处理能力。
其他已知方案不能用于集成的多处理器系统,其中两个或多个处理器位于相同的芯片内。
一些已知系统的另一个缺点是其实现中的不对称,这意味着每个处理器要求不同的实现方式。另外,非对称实现的正式验证的努力比对称实现要大。
具体实施方式
本发明结合若干实施例进行描述。
如图1所示,应用本发明的双处理器系统包括第一处理器P1,其经由第一处理器总线10与第一可共享的单元13连接。处理器总线(也称之为微处理器总线)是连接到计算机系统的处理器的主要路径。可共享的单元13或23的一个例子是共享的存储器(例如随机访问存储器RAM)。第一处理器总线10是64位、20MHz总线。该系统包括还具有处理器总线20的第二处理器P 2。该第二处理器总线20是64位、66MHz总线。两个处理器环境18和28之间的互相连接(在图1中用椭圆形示意性表示)经由两个双向通信通道11和21而建立。第一双向通信通道11可由处理器P1进行编程,如箭头12所示,并且第二通道21可由处理器P2进行编程,如箭头22所示。这两个双向通道11和21在之后被称为核间(intercore)通信系统9。
在图2中描述了第一实施例的更多细节。核间通信系统29包括具有第一和第二外部DMA通道46、47的第一DMA单元45(DMA1)。第一DMA单元45可经由内部DMA通道49与第一处理器总线10连接。核间通信系统29进一步包括第一双串联式单元(DTU)34(DTU1),其可经由第一外部DMA通道47与第一DMA单元45连接。DTU单元34可由第一处理器P1进行编程,如箭头32所示,并且第一DMA单元45可由第一处理器P1进行编程,如箭头132所示。另外,核间通信系统29包括第二DMA单元35(DMA2)和第二DTU单元44(DTU2)。DMA单元35具有第一和第二外部DMA通道36、37以及内部DMA通道39。第二DMA单元35经由内部DMA通道39与第二处理器总线20连接。第二DMA单元35和第二DTU单元44可经由第一外部DMA通道37连接。DTU单元44可由第二处理器P2进行编程,如箭头42所示,并且第二DMA单元35可由第二处理器P2进行编程,如箭头142所示。第一双向通信通道由第一DTU单元34实现而第二双向通道由第二DTU单元44实现。每个DTU34、44可直接连接到用于编程/配置目的的处理器,如图2所示。在两个处理器环境38和48之间的互相连接(在图2中用椭圆形示意性表示)可由双向数据传输建立。
在图1和2中给出的实施例的新颖的特征是一个DTU单元(比如DTU1)的编程允许从处理器环境48到处理器环境38的(双向)数据传输及相反的(双向)数据传输,而无需对其它的任何资源进行编程。数据可移动到DMA1并且从与第二处理器总线20连接的可共享的单元23获取。DTU2能够将数据移动到DMA2并从与第一处理器总线10连接的可共享的单元13获取数据。
图1或2说明的双处理器布置允许第二处理器P2访问可共享的单元13。可共享的单元23可由处理器P1访问。
更通常地说,根据本发明的多处理器系统的一个处理器(本实施例中的处理器P2)能够访问与另一个处理器(本实施例中的处理器P1)关联的资源(本实施例中的可共享的单元13)。可访问在远程总线上的另一个处理器的资源,用于例如从便宜的远程存储器上载和下载数据。一个处理器例如可访问协处理器的存储器以获取由协处理器计算出的数据。这仅仅是第一处理器访问远程总线上的资源的情况的两个典型例子。
不同类型的处理器可利用本方案相互连接。其允许实现具有多个同构处理器或甚至具有多个异构处理器的芯片。单词“处理器”在这里用作任何可集成到半导体芯片中并且实际上利用数据执行指令和工作的处理单元的同义词。
复杂指令集计算(CISC)是当今使用的处理器设计的两种主要类型的其中之一。其逐渐让位于精简指令集计算(RISC)设计。当前最流行的CISC处理器是x86,但还有68xx、64xx和Z80也在应用。
当前,最快的处理器是基于RISC的。存在几种流行的RISC处理器,包括Alpha(由Digital开发并且当前由Digital/康柏和三星生产)、ARM(由Advanced RISC Machines开发,当前属于Intel,并由其和Digital/康柏一起生产)、PA-RISC(由惠普开发)、PowerPC(由IBM、苹果和摩托罗拉联合开发)和SPARC(由SUN开发;SPARC设计当前由许多不同的公司生产)。
ARM不同于多数其他处理器,因为它们不是被设计用来最大化性能而是最大化所消耗的每单位功率的性能。因此,ARM多数应用于手持机器和PDA中。
在上述部分中,给出了一些可根据本发明互相连接的处理器的实例。数字信号处理器(DSP)、任何已知处理器的处理器核心,用户指定的处理器设计也是合适的。换句话说,这个概念可应用于大多数微处理器体系结构。甚至可以将一个处理器与一个慢速处理器总线连接,以及可以将一个处理器与一个快速处理器总线连接。
为了本申请的目的,下面还考虑了一个处理器:中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、系统控制器(SC)、协处理器、辅助处理器、控制单元等等。
直接存储器访问(DMA)单元是为将数据从一个存储器传递到另一个设备而不用将其通过处理器传输而设计的单元。DMA通常具有一个或多个专用的内部DMA通道和用于外部的外围设备的一个或多个专用的外部DMA通道。这样的外部DMA通道由外部代理设置,与由与其关联的处理器控制的内部DMA通道相反,以便远程处理器访问另一个处理器的可共享的单元。例如,DMA允许处理器总线上的设备访问存储器而不用由处理器请求中断。
可共享的单元的例子有:易失性存储器、非易失性存储器、外围设备、接口、输入设备、输出设备等等。
根据本发明的核间通信系统去耦合第一处理器P1的时钟范围和第二处理器P2的时钟范围之间的数据流。这意味着在具有发明性的数据传输系统的限制内,一个处理器上的活动不要求在另一个处理器上的同时和等效的活动。
结合图3来描述根据本发明的核间通信系统29的细节。核间通信系统29包括第一DTU34(DTU1)、第二DTU44(DTU2)、第一DMA45(DMA1)和第二DMA35(DMA2)。在本实施例中,DMA单元35包括两个外部DMA通道单元56、57。这两个外部DMA通道单元56、57的内部通道39与处理器总线20连接。
第一外部DMA通道单元56经由链路36与第二DTU44连接。第二外部DMA通道单元57经由链路37与第一DTU34连接。第一DMA单元45包括两个外部DMA通道单元54、55。这两个外部DMA通道单元54、55的内部通道49与处理器总线10连接。第一外部DMA通道单元55经由链路47与第一DTU34连接。第二外部DMA通道单元54经由链路46与第二DTU44连接。这两个外部DMA通道单元54、55的内部通道49与处理器总线10连接。
DTU34包括第一处理器接口60,允许经由处理器总线10建立到处理器P1的编程链路52(在图3中未示出)。DTU34进一步包括直接访问单元核(DAU核)62,和两个外部DMA通道接口61和63。外部DMA通道接口61用作通向外部DMA通道单元55的接口,并且外部DMA通道接口63用作通向外部DMA通道单元57的接口。
DTU44包括第一处理器接口50,允许建立经由处理器总线20到处理器P2的编程链路51(在图3中未示出)。DTU44进一步包括直接访问单元核(DAU核)52,和两个外部DMA通道接口51和53。外部DMA通道接口51用作通向外部DMA通道单元56的接口,并且外部DMA通道接口53用作通向外部DMA通道单元54的接口。
第一处理器P1的时钟信号(时钟1)经由时钟线路58馈送给下列单元:外部DMA通道单元54、外部DMA通道单元55、外部DMA通道接口53、外部DMA通道接口61和DAU核62。第二处理器P2的时钟信号(时钟2)经由时钟线路59馈送给下列单元:外部DMA通道单元56、外部DMA通道单元57、外部DMA通道接口51、外部DMA通道接口63和DAU核52。
处理器P1通过第一处理器接口60配置第一DTU 34。DTU 34的DAU核心62是用于两个外部通道接口61和63的控制逻辑。DAU核心62进一步执行理想地由先进先出(FIFO)增强的数据传输。以相同的方式,处理器P2通过第二处理器接口50配置第二DTU 44。在两种情况下,第一DMA单元45的外部通道使用处理器总线10上的内部DMA通道49的资源,并且第二DMA单元35的外部通道使用处理器总线20上的内部DMA通道39的资源。
如图3所示,核间通信系统29提供时钟去耦。所有的模块要么由处理器P1的时钟1计时,要么由处理器P2的时钟2计时,使得一个处理器上的活动不要求在另一个处理器上的同时和等效的活动。
在时钟信号时钟1和时钟2之间不存在相位和/或频率关系的情况下,可以这样实现DAU核52,62,使得它们能够通过适合的握手信号提供安全的数据传输。这些握手信号在DAU核52和外部DMA通道接口53之间以及在DAU核62和外部DMA通道接口63之间是有效的。
外部DMA通道接口和/或DAU核可被标准化。换句话说,根据本发明的每个DTU或DMA可包含相同的功能核。仅处理器接口需要依据实际应用的处理器和/或处理器总线来而调整。这导致由于重用的最大化而减少了开发时间,并且还减少了验证的努力。
根据本发明,DMA单元通过其内部接口与处理器总线连接并且通过其外部接口与DTU连接。外部接口的宽度可以是8比特。
处理器接口具有编程输入端(例如在图3中的输入端52),因为该接口用于对包含它的DTU进行编程。该处理器接口不要求到处理器总线的任何数据链路,因为交换的任何数据是由DTU的外部DMA通道接口处理的。双向通道的设置和配置是由处理器通过经由处理器接口对相应的DTU的DAU核进行编程而完成的。
DTU34例如利用外部DMA通道47,以便将信息(数据和/或控制信息)传输给可共享的单元13并且从可共享的单元13传输数据。
图4中示出另一个实施例。示例的系统包括第一处理器P1、第一处理器总线70和与第一处理器总线70连接的第一可共享的单元76。还有第二处理器P2、第二处理器总线80和与其连接的第二可共享的单元86。第一双向通信通道可经由具有外部DMA通道85的第一DMA单元83建立。第一DMA单元83可与第一处理器总线70连接。提供第一DTU单元82。第一DTU单元82可通过外部DMA通道85与第一DMA单元83连接。该DTU单元82可由第一处理器P1进行编程。编程经由处理器总线70和编程链路84而发生。另外提供主设备(主控器2)81。该主设备81用作第一DTU单元82和第二处理器总线80之间的接口。第二双向通信通道可经由具有外部DMA通道75的第二DMA单元73建立。第二DMA单元73可与第二处理器总线80连接。提供第二DTU单元72。第二DTU单元72可通过外部DMA通道75与第二DMA单元73连接。该DTU单元72可由第二处理器P 2进行编程。编程经由处理器总线80和编程链路74而发生。另外提供主设备(主控器1)71。该主设备71用作第二DTU单元72和第一处理器总线70之间的接口。在上下文中主控器是一个能够启动(并继续)处理器总线上的数据传输的单元。该主控器因此需要有权访问总线上一些类型的仲裁(优先化)(该优先化不是本专利申请的一部分)。主控器具有一个寻址电路,用于选择处理器总线上的激活的设备。
图5中示出另一个实施例。提供一个核间通信系统99,其允许建立两个处理器总线90和100之间的两个双向通道。例如,处理器P1可以是数字信号处理器(DSP)核,并且处理器P2可以是系统控制器(SC)核。在本实施例中,存在一个公共的DTU单元92,其例如包括图2、3或4的DTU1和DTU2的功能元件。该公共的DTU单元92的一部分可由处理器P1进行编程,如箭头104所指示,并且其他部分可由处理器P2进行编程,如箭头94所指示。该DTU 92的细节在图6中描述。
该公共的DTU 92包括第一处理器接口120,允许建立经由处理器总线90到处理器P1的编程链路104(未在图6示出)。该DTU 92还包括直接访问单元核(DAU核)122,和两个外部DMA通道接口121和123。外部DMA通道接口121用作通向DMA1单元101的接口,并且外部DMA通道接口123用作通向DMA2单元93的接口。该DTU 92还包括第二处理器接口110,允许编程链路94经由处理器总线100被建立到处理器P2(未在图6示出)。该DTU92还包括另一个直接访问单元核(DAU核)112,和两个外部DMA通道接口111和113。外部DMA通道接口111用作通向DMA2单元93的接口,并且外部DMA通道接口113用作通向DMA1单元101的接口。如何应用两个时钟信号时钟1和时钟2也在图6中示出。
DTU92的编程优选地利用两个分离的寄存器组完成,每个寄存器组由一个处理器P1或P2分派。这允许避免由两个DAU核112和122执行同时访问时的冲突。但是,需要允许区分来自处理器P1的请求或来自处理器P2的请求的优先次序的优先化方案。建议以下两种方案:
-不指定优先级,并且操作基于先来先服务的原则,即是先来的处理器具有比其他服务器更高的优先级。正在进行的传输总是被完成并且新的传输被放到等待队列中。
-处理器P1具有高于处理器P2的优先级,或相反。低优先级数据的传输可被具有高优先级的处理器提交的请求中断。传输的中断的发生对于低优先级核是透明的。在完成高优先级请求后,恢复低优先级请求。高优先级传输从不被中断。
根据本发明,DTU单元利用外部DMA通道来与可共享的单元来回传输数据,该可共享的单元与其他处理器的处理器总线连接。相对于可由对应的处理器编程的内部DMA通道,这样的外部DMA通道可由外部代理设置,以便访问其他处理器的资源。在本专利申请中的该外部代理是由远程处理器编程的命令,以访问本地处理器上的资源--内部DMA通道由本地处理器自身编程。
本发明还用在具有多于两个处理器的系统中。例如,第三处理器可经由其自身的处理器总线、第三DMA3单元和第三DTU3连接到第二处理器的DMA2单元。这可允许第三处理器建立到与第二处理器关联的资源的双向通道。
在本发明的又一个实施例中,根据本发明的两个或更多的用作处理器间通信的通信通道被集成到客户的专用集成电路(ASIC)中。
在这里给出并要求保护的体系结构的优点是其支持多个异构处理器。该发明方案能被扩展以适合通用多核通信的需要。根据本发明,可减少每个处理器的总线主控器的数量,同时为此目的使用潜在可得的DMA单元。概念和设计上的重用是另一个优点。不同的其他优点已经参照本发明的各种实施例而进行了描述。
提出的体系结构也适用于计算设备,比如PDA、手持计算机和掌上计算机等。还适用于蜂窝电话(比如GSM电话)、无绳电话(例如DECT电话)等。这里提出的体系结构被用在用于上述设备的芯片或芯片集上或用于蓝牙应用的芯片上。
可以理解,为了清楚,在各个实施例中的上下文中描述的本发明的各种特征还可组合在单个实施例中提供。相反,为了简明,在单个实施例中描述的本发明的不同特征还可分离地或以任何适合的子集合被提供。
在附图和说明书中,叙述了本发明的优选实施例,尽管使用了指定的术语,这样给出的说明使用通用的术语,这仅仅是描述性的而不是限制的目的。