CN1230745C - 用于并行执行多个任务的方法 - Google Patents
用于并行执行多个任务的方法 Download PDFInfo
- Publication number
- CN1230745C CN1230745C CNB018220886A CN01822088A CN1230745C CN 1230745 C CN1230745 C CN 1230745C CN B018220886 A CNB018220886 A CN B018220886A CN 01822088 A CN01822088 A CN 01822088A CN 1230745 C CN1230745 C CN 1230745C
- Authority
- CN
- China
- Prior art keywords
- bus
- processor unit
- head
- storer
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims description 15
- 239000004020 conductor Substances 0.000 claims description 14
- 238000000151 deposition Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 62
- 239000004744 fabric Substances 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 208000032953 Device battery issue Diseases 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000013021 overheating Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
一种用于并行执行多个任务的方法,在一种并行电子架构中,包括连接到一条通信总线的多个处理器单元(1a、1b、…、1n),每个处理器单元都适于自动执行一个或多个预先定义的任务,该方法的特征在于,对每个处理器单元进行配置,使得它的每个任务都关联到一个头部,每个处理器单元都适于使用以下协议与其它处理器单元进行通信:在总线上发送一条消息,所述消息包括指明一项功能的一个头部,并且每个处理器单元对总线上的每个头部进行解码,作为所述头部数值的一种功能,或者忽略总线上的信息,或者执行与所述消息的头部相关联的任务。
Description
技术领域
本发明涉及并行(多处理器和多任务)电子架构。该架构包括多个处理器单元,它们连接到一条通信总线并且使用一种新的协议相互通信。
背景技术
在本文中,术语“处理器单元”是指适于自动执行一个或多个截然不同任务的任何机器。它可以是一个硬连线处理器单元。优选情况下,它是一个可编程的处理器单元,包括一个编程为自动执行一个或多个截然不同任务的处理器(微处理器、微控制器等)。该处理器单元可以是可编程的机器,比如微型计算机、一台机器的***设备、底板母卡上安装的子卡等。这里并未列出全部内容。
目前,在包括由通信总线相互连接之多个处理器单元的电子架构中,在总线上由每个处理器单元特定的一个物理地址来识别该处理单元。现有的通信协议使得一个第一处理器单元(后文中称作发送者单元)能够与一个第二处理器单元(后文中称作目标单元)进行通信。所以,当发送者单元向目标单元发送一条消息时,例如触发由目标单元执行一个预先定义的任务,发送者单元就在总线上发送目标单元的地址。每个处理器单元都能够对总线上发送的地址进行解码,并且如果一个目标单元识别了它自己的地址,它就把相关联的消息加载到本机的存储器,并且执行它编程的任务。目标单元和发送者单元的地址和数据总线通常具有类似的固定宽度。
利用现有的架构和以上类型的通信协议,难以产生一个多任务***,其中多个处理器单元并行执行同一任务(或功能),因为处理器单元的这种并行工作需要处理器单元寻址的复杂管理。
发明内容
本发明旨在提出一种新的并行架构,它减弱了这种缺点并且它也是模块化的设计,易于通过增加一个新的处理器单元或者更换或去除一个处理器单元来进行修改。
为此,本发明提供了一种用于并行执行多个任务的方法,在一种并行电子架构中,包括连接到一条通信总线的多个处理器单元(1a、1b、…、1n),每个处理器单元都适于自动执行一个或多个预先定义的任务,该方法的特征在于,对每个处理器单元进行配置,使得它的每个任务都关联到一个头部,每个处理器单元都适于使用以下协议与其它处理器单元进行通信:在总线上发送一条消息,所述消息包括指明一项功能的一个头部,并且每个处理器单元对总线上的每个头部进行解码,作为所述头部数值的一种功能,或者忽略总线上的信息,或者执行与所述消息的头部相关联的任务。
实现以上的目标,是通过本发明的并行架构,本领域的技术人员已经知晓,它包括一种并行电子架构,包括连接到一条通信总线的多个处理器单元,每个单元都适于自动执行一项或多项预先定义的任务。
以一种新颖的方式——它是本发明的特征——对每个处理器单元进行配置,使得它的每个任务都关联到一个头部,每个处理器单元都设计为使用以下协议与其它处理器单元进行通信:在总线上发送一条消息,包括指明一项功能的一个头部,并且可能包括由一个或多个字组成的帧,每个处理器单元都适于对总线上的每个头部进行解码,作为所述头部数值的一种功能,或者忽略总线上的信息,或者执行与所述消息的头部相关联的任务。
所以,本发明之架构的操作是基于一种新的原理:在通信总线上发送一项功能的地址,而不是指定目标处理器单元的地址。因此,按照本发明,指明一项功能的头部,会激活所有连接着的、能识别该功能的处理器单元,所以这些处理器单元并行地执行与该功能相关联的任务。
附图说明
阅读了以下对本发明一个优选实施例的说明之后,本发明的其它特性和优点将会变得更加显而易见。该实施例作为非限制性的实例而给出,并且参考了若干附图,其中:
图1是本发明的一个多主/多从架构实例的一般框图,有多个处理器单元连接到一条16位(D0-D15)并行总线α,
图2是一个处理器单元的一个FIFO存储器和一个确认存储器的详细电路图,
图3是一个主处理器单元向总线α写一个头部所涉及的主信号的时序图,
图4是一个主处理器单元向总线α写一帧的一个字所涉及的主信号的时序图,
图5是一个从处理器单元读取总线α上出现的一个有效头部所涉及的主信号的时序图,
图6是一个主信号的时序图,所述主信号在从处理器单元收到一个有效头部后在该从处理器单元中工作,并且在向总线α写一个字帧的主处理器单元中涉及,以及
图7是一个主信号的时序图,所述主信号在从处理器单元收到一个无效头部后在该从处理器单元中工作,并且在向总线α写一个字帧的主处理器单元中涉及。
具体实施方式
参考图1的一般框图,本发明的一个架构包括多个处理器单元1a、1b、…、1n,它们连接到一条并行数据总线α。
图1的架构便于看作一种多主/多从架构。如果处理器单元1a、1b、…、1n中的某一个希望在总线α上发送一条消息,它就控制该总线并变为主单元,其它单元就变为从单元。它的消息发送到总线上之后,主处理器单元释放总线,使得另一个处理器单元能够控制总线α以便发送消息。这种操作模式隐含着使用以写模式来判断对总线访问的装置,判优装置在其输入端从每个处理器单元接收请求以写模式访问总线的信号,并在其输出端发送信号,授权每个处理器单元以写模式访问总线。判优装置对于本领域的技术人员是众所周知的,因为这个原因它们并没有在图1中显示,并且在本文中不再进一步介绍。
本发明不限于多主/多从类型的架构,例如仅有一个主处理器单元能够在总线上写,而其它处理器单元永远是从单元,只能读取总线的架构,同样可以很好地使用本发明。
主要术语的定义
总线α
总线α是一条数据总线,包括
q条并行的导电体,其中
q是一个大于等于1的整数。在图1和图2所示的实例中,总线α是一条16位的总线,包括16条并行的导电体(D0-D15)。
粒度原子(AG)
粒度原子(AG)对应于处理器单元能够在总线α上通信的最小宽度(同样参见下面对术语“颜色”给出的定义)。由于总线α通常包括
q条并行的导电体,其中
q是一个大于等于1的整数,q=AG.2p。AG的数值必须是2的幂。
处理器单元的颜色
处理器单元的“颜色”定义为其数据总线的宽度(以位数表示)。在图1的实例中,处理器单元1a是一台16位机(数据总线D0-D15),处理器单元1b是一台4位机(数据总线D0-D3),依此类推,直到处理器单元1n,它是一台8位机(数据总线D0-D7)。
后文中,处理器单元的“颜色”表示为A、B、C、D等,按照以下的惯例:仅能够以一个AG进行通信的处理器单元是颜色A,最大能够以两个AG进行通信的处理器单元是颜色B,最大能够以四个AG进行通信的处理器单元是颜色C,最大能够以八个AG进行通信的处理器单元是颜色D,依此类推。
字
一个字对应于总线α上任何指定时刻的一个数值。一个字的最大尺寸受限于总线α中并行导体的条数。
消息
一条消息对应于一个处理器单元在总线α上依次写入的一系列的字。一条消息包括一个首字,它组成一个头部(功能键),随后是一帧,以所使用的串行格式包括一个或多个连续的字。
串行格式(FS)
串行格式定义了组成总线上传送之消息的所有字。在总线α上能够使用非常不同的串行格式,它们都必须具有一个共同的特性:一条消息的首字是一个头部。
下面给出标准串行格式的一个实例,它不限于本发明的使用:
头部(功能键) | (参见下面的定义) |
(消息的尺寸) | (功能键之后),一个数字 |
(特征) | (功能键之后),讲解发送消息之主处理器的类型及其在总线上的位置 |
(类型) | (功能键之后),一个数字 |
(帧尺寸) | (功能键之后),一个数字 |
帧 | (功能键之后),依次排列的N个字 |
标志 | 消息中所有字的控制位,用于确定在传输位中是否发生错误。 |
按照功能(如头部的编码)的不同,从以上的标准格式能够得出其它的串行格式,带有传输监视的最简单的串行格式为:头部/标志。在可以设想的一个更简单的实施例(不检验传输数据的完整性)中,一条消息可以仅仅包括一个头部。
并行格式(FP)
处理器单元的每种颜色(A、B、C、D等),与总线α上传送之消息的具体格式相关联。
下面的表中给出了并行格式(FP)编码的一个实例:
总线α上的头部 | 并行格式 | |||||||
第一个AG | 第二个AG | 第三个AG | 第四个AG | 第五个AG | 第六个AG | 第七个AG | 第八个AG | |
XXXX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | FP-A:2AG功能 |
0 | XXXX | 0 | 0 | 0 | 0 | 0 | 0 | FP-B:2AG功能 |
0 | 0 | XXXX | XXXX | 0 | 0 | 0 | 0 | FP-C:28.AG功能 |
0 | 0 | 0 | 0 | XXXX | XXXX | XXXX | XXXX | FP-D:24.AG功能 |
… | ||||||||
XXXX | XXXX | 0 | 0 | 0 | 0 | 0 | 0 | FP-AB |
XXXX | 0 | XXXX | XXXX | 0 | 0 | 0 | 0 | FP-AC |
XXXX | 0 | 0 | 0 | XXXX | XXXX | XXXX | XXXX | FP-AD |
XXXX | 0 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | FP-ACD |
… |
XXXX表示,AG可以取任何可用的数值。一个0表示该AG的所有导体都处于0。
每种FP的形式
FP-A:总线上第一个AG的导体用于随后组成该消息帧的所有其它的字。因此对连接到总线并且具有所需功能的所有处理器单元寻址,因为根据定义即使最小的处理器单元也能够以一个AG进行通信。
FP-B:总线上前两个AG的导体用于随后组成该消息帧的所有其它的字。根据定义,这就排除了不能访问总线的处理器单元,因为它们无论如何都不能对第二个AG上的XXXX进行解码。仅仅需要对能够以两个AG进行通信的机器进行寻址。
FP-C:总线上前四个AG的导体用于随后组成该消息帧的所有其它的字。
FP-D:总线上前八个AG的导体用于随后组成该消息帧的所有其它的字。
组合的格式(FP-AB、FP-AC、FP-AD、FP-ACD等)提供了更精细(更详细)的数据,如果所涉及的处理器能够读取不只一个AG上的数据的话。
使用混合格式FP-AB和FP-AD的实例:
格式FP-AB对能够读取一个AG的处理器单元和能够读取两个AG的处理器单元进行寻址。那些能够读取一个AG的处理器单元具有足够的信息来执行该功能,但是不一定具有所有的细节。那些能够读取两个AG的处理器单元例如在第二个AG上具有一个纠错码,用于验证第一个AG中的信息。
例如,对于在总线α上传送小影像,FP-AD格式可能是有用的。第一个AG可以用于对九个像素的方块的平均灰度(或颜色)级别进行编码。只能访问这种信息的处理器单元,仍然能够从这种数据获益,换句话说有一幅小了三分之二的影像。还能访问FP-D格式的处理器单元,能够从全部读取八个AG中获益,例如其它AG使它能够增加相对于平均值的差异,以确定方块中像素的数值(这就是Haar小波的原理)。
头部(功能键)
按照本发明的基本特性,头部是总线α上任何消息的第一个字,主要定义被寻址的功能。优选情况下,尽管不是必须,这个头部还定义了:
-消息的并行格式,
-消息的串行格式,
-产生该消息之处理器单元(主处理器单元)的颜色,以及
-消息长度的定性信息。
功能
术语“功能”是指连接到总线α的一个处理器单元能够自动执行的任何功能或任务。
功能表
每个处理器单元都配置为包括一个它特有的功能表,它使该处理器单元能够执行的每项任务与一个头部数值相关联。优选情况下,该表格也定义了与每项任务相关联的串行格式(FS)以及与该功能相关联的消息长度。对于一个指定的处理器单元,可用功能的数目仅仅取决于它在总线上能够访问之AG的数目以及AG的数值。
符合本发明之通信协议的一般注释
在总线α上,在一个主处理器单元与其它从处理器单元之间交换消息。前者控制着该总线,所以是惟一被授权在总线α上写入数据的处理器单元。后者只能读取总线α。
一个处理器单元1a、1b、…、1n已经控制了总线α之后,它就开始在总线上写入一个头部(功能键),随后是包括一个或多个字的一帧,这取决于使用的串行格式(FS)。
每个从处理器单元都读取该头部,主要是使每个从处理器单元都能够确定在总线α上发送的帧是否是对它寻址的,如果是的话,它必须执行哪项任务。
如果在总线α上发送的头部不在一个从处理器单元的功能表中,该单元就会忽略在总线上在头部之后发送的帧。否则,从处理器单元还会读取在总线上在头部之后发送的帧,并且自动执行其功能表中该与头部相关联的任务。
因此,本发明之通信协议的新颖之处源于以下事实:一个主处理器单元在总线上写入一条消息时,不是由寻址的(物理的或逻辑的)地址来识别其位置在总线上的一个指定的从处理器单元,而是由从处理器单元的功能(任务)来识别,并行地处理该消息的所有处理器单元,都具有与总线上发送之头部相关联的功能。
一个处理器单元(1a、…、1n)结构的实例
参考图1,一个处理器单元1a、1b、…、1n本质上包括:
-一个微处理器2,
-一个确认存储器3,
-一个FIFO存储器4,
-一个逻辑单元5,用于使用时钟信号CLKA和CLKD对确认存储器3和FIFO存储器4的操作定序,
-一条数据总线6,后文中称为接口总线,
-一条内部总线7,微处理器2能够在该总线上读写数据,
-若干3态寄存器6
a,它们在微处理器2(信号8)的控制下,把内部总线7上出现的数据写到接口总线6(D0-D15)上。
接口总线(6)
这条接口总线是一条n位的数据总线(D0-Dn-1),通常包括
n条并行的导电体,其中
n是一个小于或等于
q(总线α的宽度)的整数,本总线并行地连接到总线α的前
n条导体。
微处理器(2)/内部总线(7)
微处理器以通常方式与一个随机存取存储器(RAM)相关联。为了简单起见,在图1中未显示该存储器。微处理器2能够以通常方式读写该存储器。随机存取存储器包含着处理器单元的功能表和微处理器的操作程序,后面还要详细介绍。
内部总线7是一条ISA总线,以通常方式包括:
-一条数据总线(在16位处理器单元1a的情况下,是一条16位(D_ISA0至D_ISA15)的数据总线),
-一条地址总线,未在图1的一般框图中显示,它的两个LSB地址位在图3和图4的时序图中分别标注为A0_ISA和A1_ISA,以及
-一条控制总线,携带着微处理器2得到的写信号Wr_ISA和读信号Rd_ISA,以及通过对读信号和写信号进行解码获得的选择信号Cs_ISA;这些信号Wr_ISA、Rd_ISA和Cs_ISA未在图1的流程图中显示,仅仅出现在图3和图4的时序图中。
确认存储器(3)
确认存储器3既可以是一个随机存取存储器,也可以是一个只读存储器。优选情况下,它是一个EEPROM。确认存储器用作列出了有效头部的一个对应表,确认存储器3的地址端口连接到总线α。确认存储器3的输出端口连接到(信号9)微处理器2,连接着微处理器专门处理中断的一个端口。
由逻辑单元5从时钟信号CLKA和CLKD得到的信号5a,对确认存储器3的读取定序。
确认存储器3的功能是确认(信号9)总线α上出现的一个头部是否对微处理器2有效,这一点将在下面的说明中变得更加明确。为此目的,对应于一个处理器单元能够在总线α上发送的一个头部数值,在确认存储器的每个地址处存放着一个数据条目,微处理器2将它识别为或者是一个头部有效数据条目,或者是一个头部无效数据条目。如果在确认存储器3的输出(信号9)传递的数据条目是一个有效数据条目,就通知微处理器2,它必须加载在总线α上已经确认的头部之后发送的帧。相反,如果来自确认存储器的数据条目对该头部无效,微处理器2就忽略在总线α上该头部之后发送的帧。
对于存储器3的每个地址,有效或无效对每个处理器单元1a、1b、…、1n是各自的,并且用于定制处理器单元的操作。
参考图2,在一个具体的实施例中,确认存储器3采用一个集成电路CI1,例如一个AM29F010。在这个实施例中,存储器的地址端口对应于A0至A15,它们分别并行地连接到总线α的导电体(D0-D15)。信号“Write_AD”对应于图1中的信号5a,存储器输出端口的信号“Rejected_Address”、“IRQ#5”、“IRQ#4”、“IRQ#3”、“IRQ#2”和“IRQ#P”,对应于前面图1的框图中引用的信号9。在这个实施例中,存储器的确认分布在多个级别,但是有用的确认是在信号IRQ#P处编码。例如,若是这个信号IRQ#P处于低状态(相对于高状态),在总线α上出现头部对于微处理器2就是有效的(相对于无效的)。
FIFO存储器(4)
参考图1,FIFO存储器4的输入通过接口总线6连接到总线α,它的输出连接到内部总线7的数据总线。微处理器2能够利用写信号10,命令把总线α上出现的一个字加载到FIFO存储器4中,而且能够利用读信号11,命令把FIFO存储器中存放的一个字提取出来并写入内部总线7的数据总线。向FIFO存储器4写入一个字或者读取FIFO存储器中的一个字,这些操作的定序由逻辑单元5从时钟信号CLKA和CLKD得到的一个计时信号5b进行同步。FIFO存储器4也在其输出端向微处理器2传递状态信号12,以表示它对微处理器2的充满程度。
参考图2,在一个具体的实施例中,FIFO存储器4由两个8位的集成电路CI2和CI3构成,例如IDT7200集成电路,其中的每一个分别专门存放总线α的高位(D8至D15)和低位(D0至D7)。
在这个实施例中,图2中的信号“Empty_Flag_H”、“Full_Flag_H”、“Half_Full_H”、“Empty_Flag_B”、“Full_Flag_B”、“Half_Full_B”对应于前面在图1的框图中引用的状态信号12,并且用于对每个FIFO寄存器(CI2和CI3)的充满程度进行编码。信号“Write_FIFO_OK”对应于前面在图1中引用的写信号10。信号“Read_FIFO_B”和“Read_FIFO_H”对应于前面在图1中引用的读信号11。信号“Reset_FIFO”是使FIFO存储器复位至零的信号,由微处理器2传递,用于使存储器4初始化。
3态寄存器(6a)
一个处理器单元内部总线7的数据总线,通过一个或多个3态寄存器6a,并行地连接到接口总线6。例如,在处理器单元1a使用16位内部总线(D_ISA0-D_ISA15)的情况下,在接口总线6上可以使用两个专门用于写的8位寄存器,在总线α上也类似,分别用于内部总线7中数据总线的低八位(D_ISA0-D_ISA7)和高八位(D_ISA8-D_ISA15)。微处理器利用写信号8(图1),命令把内部总线7中数据总线(D_ISA0-D_ISA15)上出现的数据传递到总线α(D0-D15)。
时钟信号CLKA和CLKD
参考图1,一个处理器单元的每个微处理器2都在其输出端传递两个时钟信号2a和2b,它们通过开路集电极13,连接到所有处理器单元共同的时钟总线(CLKA、CLKD)。一个处理器单元控制着总线α(从而变成主处理器单元)时,时钟信号CLKA和CLKD分别对应于主处理器单元中微处理器2的时钟信号2a和2b;其它的从处理器单元的时钟信号2a和2b是浮动的,并且与时钟总线CLKA、CLKD隔离。因此,总线α上的数据交换由主处理器单元定时,而从处理器单元对写在总线α上的消息(确认存储器3/信号5a;FIFO存储器4/信号5b)进行加载,无论其自身的时钟速度(其自身微处理器2的操作频率)如何。这样做的优点是,具有不同时钟速度的处理器单元能够相互通信。
一个处理器单元中微处理器(2)的操作
主程序
一个处理器单元的微处理器2,编程为执行以下的主程序循环:
a)读取FIFO存储器4中的一条消息(头部和帧),
b)在功能表中对与该头部相关联的功能进行解码,以及
c)自动执行该功能对应的例程(任务)
在总线α上写一条消息(图3和图4)
在步骤c)的执行期间,可能会发生以下情况:要求微处理器2在总线α上写一条消息,以激活在总线α上连接的一个或多个其它处理器管理的一项功能。在这种情况下,处理器单元在控制了总线α之后,在总线上写入为该功能编码的头部以及该消息的字帧,然后释放总线。图3和图4为这种写操作中使用的主信号的时序图。
在图3和图4中,信号“Data_Isa”对应于内部总线7的数据总线,换句话说,对应于例如处理器单元1的内部总线7中D_ISA0至D_ISA15位(图2)。信号“Com_CLKA”和“Com_CLKD”对应于上述的信号2a和2b。在内部总线7的数据总线中基地址+偏移2处,写入一个头部;随后在内部总线7的数据总线中基地址+偏移3处,写入数据(对比信号A0_ISA和A1_ISA)。
加载在总线α上出现的一条消息(图5和图6)
如果在总线α上出现一个有效的头部,由确认存储器传递的确认数据(信号“IRQ#P改变状态)就会中断上述主程序的执行。然后,微处理器执行一个次级例程,将该头部和总线α上该头部之后发送字帧加载到FIFO存储器中,对应的存储器对应以从模式运行。
图5显示了在总线α上一个有效头部的写入期间,一个从处理器单元所用主信号的时序图。图6显示了一个从处理器单元读取总线α上由主处理器单元写入的、与该总线上前面写入之有效头部有关的若干字的一帧(图6/“数据n”、“数据n+1”)期间,所用主信号的时序图。
参考图5,在一个有效头部是针对从处理器单元的情况下,在确认存储器3的输出端,中断IRQ#P立刻改变状态。由信号CLKA和CLKD的同时动作,在FIFO存储器4中捕获这个有效头部(信号10/Write_FIFO_OK)。
参考图6,仅仅由信号CLKD对FIFO存储器中数据的捕获进行定时。
接收无效头部/图7
参考图7,如果总线α上出现的头部对于一个从处理器单元不是有效的,中断信号IRQ#P就不改变状态,微处理器2的主程序就不被中断。微处理器2就不命令把总线α上出现的头部加载到FIFO存储器4中(信号Write_FIFO_OK不改变状态),随后也不命令把总线上该头部之后的字帧加载到FIFO存储器4中。因此,这个从处理器单元就会忽略总线α上的这条消息。
参考图1至图7介绍的多处理器架构具有以下的主要优点:
-使用头部(功能键)根据处理器单元的功能对其寻址的原理,简化了处理器单元任务并行执行的管理,从而简化了处理器单元的编程;不仅如此,它还以更低的成本,使用低性能的处理器单元,产生了一种强有力的架构。
-这种架构的优点包括模块化和非常易于修改;它也是非常稳健的:其形式能够通过增加、去除或更换一个处理器单元而“热”改变,而不会严重干扰该架构上通用操作***的执行;所以,即使组成该架构的某些处理器单元损坏,也不必停止整个架构的运行。
-这种并行架构是“通用的”:它提供了不同处理器单元之间的通信,尤其是数据总线(接口总线6)宽度不同的处理器单元;能够连接的处理器单元总线宽度的惟一限制是在总线α上并行的位数;这种架构不限于仅仅一种数据格式,而是可用于宽度等于或超过粒度原子(AG)的任何数据格式。
-因为通信总线(总线α)上数据的交换是由控制着该总线的主处理器单元定时(信号CLKA和CLKD),无论各处理器的类型如何,最重要的是无论各处理器的时钟频率如何,处理器单元都能相互通信。
应用实例
产生了一台机器人,包括一块底板母卡,其上安装着五块子卡,每块都对应一个处理器单元:一块推动卡控制机器人的运动,一块声卡,一块视频摄像卡,以及一块动作判断(计算机)卡,它控制着机器人的动作。
下面的表格1、2、3、4陈述了若干头部及相关联功能的一个实例。
表1
头部和数据 | 功能 | 推动卡 |
0 | 保留 | ↓:从不↑:从不 |
1 | 紧急停止 | ↓:电机过热↑:总是 |
2速度 | 申请向前运动 | ↓:从不↑:总是 |
3速度 | 申请向后运动 | ↓:从不↑:总是 |
4数字 | 申请传送一幅影像 | ↓:从不↑:从不 |
5影像 | 传送一幅影像 | ↓:从不↑:从不 |
6名字 | 识别一个人 | ↓:从不↑:总是(减速) |
7数字 | 发出一个声音 | ↓:从不↑:从不 |
8声音 | 传送一个声音 | ↓:从不↑:从不 |
9推理标识符 | 卡消失 | ↓:电池失效/故障↑:从不 |
10 | 申请识别卡存在 | ↓:从不↑:总是 |
11功能标识符 | 宣布其存在以及其功能 | ↓:待命(10)↑:从不 |
表2
头部和数据 | 功能 | 视频摄像卡 |
0 | 保留 | ↓:从不↑:从不 |
1 | 紧急停止 | ↓:探测到障碍物↑:从不 |
2速度 | 申请向前运动 | ↓:从不↑:从不 |
3速度 | 申请向后运动 | ↓:从不↑:从不 |
4数字 | 申请传送一幅影像 | ↓:可能↑:总是 |
5影像 | 传送一幅影像 | ↓:待命(4)↑:总是 |
6名字 | 识别一个人 | ↓:识别后↑:总是 |
7数字 | 发出一个声音 | ↓:从不↑:从不 |
8声音 | 传送一个声音 | ↓:从不↑:从不 |
9推理标识符 | 卡消失 | ↓:电池失效/故障↑:从不 |
10 | 申请识别卡存在 | ↓:从不↑:总是 |
11功能标识符 | 宣布其存在以及其功能 | ↓:待命(10)↑:从不 |
表3
头部和数据 | 功能 | 声卡(Mic/LS) |
0 | 保留 | ↓:从不↑:从不 |
1 | 紧急停止 | ↓:从不↑:总是(警告声) |
2速度 | 申请向前运动 | ↓:从不↑:从不 |
3速度 | 申请向后运动 | ↓:从不↑:从不 |
4数字 | 申请传送一幅影像 | ↓:从不↑:从不 |
5影像 | 传送一幅影像 | ↓:从不↑:从不 |
6名字 | 识别一个人 | ↓:识别后↑:总是 |
7数字 | 发出一个声音 | ↓:从不↑:总是 |
8声音 | 传送一个声音 | ↓:可能↑:总是 |
9推理标识符 | 卡消失 | ↓:电池失效/故障↑:从不 |
10 | 申请识别卡存在 | ↓:从不↑:总是 |
11功能标识符 | 宣布其存在以及其功能 | ↓:待命(10)↑:从不 |
表4
头部和数据 | 功能 | 动作判断卡 |
0 | 保留 | ↓:从不↑:从不 |
1 | 紧急停止 | ↓:选择紧急停止↑:总是 |
2速度 | 申请向前运动 | ↓:选择向前走↑:从不 |
3速度 | 申请向后运动 | ↓:选择向后走↑:从不 |
4数字 | 申请传送一幅影像 | ↓:申请↑:总是 |
5影像 | 传送一幅影像 | ↓:选择紧急停止↑:总是 |
6名字 | 识别一个人 | ↓:从不↑:总是 |
7数字 | 发出一个声音 | ↓:选择发出一个声音↑:从不 |
8声音 | 传送一个声音 | ↓:申请↑:从不 |
9推理标识符 | 卡消失 | ↓:电池失效/故障↑:从不 |
10 | 申请识别卡存在 | ↓:申请↑:总是 |
11功能标识符 | 宣布其存在以及其功能 | ↓:从不↑:总是 |
↓:该卡把头部写到总线α上的能力。
↑:该卡把总线α上出现的头部加载到FIFO存储器(头部确认)中的能力。
在这个实施例中,至少两个处理器单元(子卡)以相同的头部进行配置,换句话说,它们在其功能表中具有相同的头部数值(参见下面的功能“紧急停止”:推动卡、声卡和动作判断卡全都以相同的头部数值‘1’进行配置)。同时,在这个实施例中,至少一个处理器单元适于执行多个任务并且配置为每项任务都关联到一个不同的头部。例如,推动卡在其功能表中具有头部数值‘1’、‘2’、‘3’、‘6’和‘10’,分别与以下功能相关联:“紧急停止”、“申请向前运动”、“申请向后运动”、“识别一个人”和“申请识别卡存在”。
“紧急停止”功能将会进一步陈述,以进一步讲解以上的表格。
“紧急停止”功能
为“紧急停止”功能进行编码的数值为‘1’的头部,对于推动卡、声卡和动作判断卡总是有效的。在推动卡的功能表中,这个头部数值与“紧急停止”功能相关联,相关联的例程(任务)是停止机器人的驱动电机。
在声卡的功能表中,这个头部数值‘1’与“紧急停止”功能相关联,相关联的例程是由该卡发出一个警告声。在动作判断卡的功能表中,这个头部数值与“紧急停止”功能相关联,相关联的例程存放该事件并注明日期,并且通过验证视频摄像机正在观察到固定影像,验证紧急停止已经生效。在总线α上出现头部数值‘1’时,就并行地激活这些卡中每块卡上对应于这项功能的例程(任务)。
相反,对于视频摄像卡,为“紧急停止”功能进行编码的数值为‘1’的头部绝不会是有效的。如果在总线α上出现这种头部,视频摄像卡就会忽略对应的消息,并且继续正常工作。
在推动卡(如果它探测到电机过热)、或者视频摄像卡(如果它探测到一个障碍物)、或者动作判断卡的初始化阶段,可以通过在总线α上写入头部数值‘1’来激活“紧急停止”功能。在声卡的初始化阶段,则绝不会触发“紧急停止”功能。
以上的表格使本领域的技术人员能够为每块卡定义功能表,以及定义对它头部进行解码之确认存储器3的内容。
在图1所示之具体的实施例中,识别了一个有效头部之后,一个处理器单元就把在总线α上出现的消息加载到FIFO存储器,再执行与该消息的头部相关联的任务。不过,在一个更简单的实施例中,可以设想一个处理器单元在识别了总线α上的头部之后,就执行与该头部相关联的任务,而不必事先把该消息加载到本机的存储器中。在这种情况下,该处理器单元不一定要包括FIFO存储器4。同样,在另一个实施例中,可以由对在总线上的头部进行解码的任何其它装置——例如在组合逻辑电路中实施的解码表——来取代确认存储器3。
Claims (10)
1.一种用于并行执行多个任务的方法,在一种并行电子架构中,包括连接到一条通信总线的多个处理器单元(1a、1b、...、1n),每个处理器单元都适于自动执行一个或多个预先定义的任务,该方法的特征在于,对每个处理器单元进行配置,使得它的每个任务都关联到一个头部,每个处理器单元都适于使用以下协议与其它处理器单元进行通信:在总线上发送一条消息,所述消息包括指明一项功能的一个头部,并且每个处理器单元对总线上的每个头部进行解码,作为所述头部数值的一种功能,或者忽略总线上的信息,或者执行与所述消息的头部相关联的任务。
2.根据权利要求1的方法,其特征在于,处理器单元把总线上的消息加载到存储器中,再执行一项任务。
3.根据权利要求1的方法,其特征在于,两个或两个以上的处理器单元用相同的头部进行配置。
4.根据权利要求1的方法,其特征在于,处理器单元执行多项任务并且被配置为每项任务与一个不同的头部相关联。
5.根据权利要求1的方法,其特征在于,通信总线是一条数据总线,包括q条并行的导体,其中q是一个大于或等于1的整数,并且每个处理器单元包括一条n位的数据总线(6)并行地连接到通信总线的前n条导体,其中n是一个小于或等于q的整数。
6.根据权利要求5的方法,其特征在于,一个处理器单元适于使用以下的串行格式在总线上发送所述消息:在总线上写入与头部对应的一个首字,然后依次写入组成消息帧的每个字。
7.根据权利要求1的方法,其特征在于,处理器单元包括:编程为执行一项或多项单独任务的一个处理器(2),适于确认通信总线上传送一个头部是否对处理器(2)有效的解码装置,以及连接到该通信总线、可由处理器(2)以读取模式访问并且在处理器(2)的控制下加载通信总线上的一条消息的一个存储器(4)。
8.根据权利要求7的方法,其特征在于,该解码装置包括一个确认存储器(3),其地址端口连接到该通信总线,通信总线上的每个头部数值对应于所述确认存储器(3)的一个地址,而且对应于一个头部数值的所述确认存储器的每个地址都存放着头部有效或无效的数据。
9.根据权利要求8的方法,其特征在于,确认存储器(3)的输出端口连接到专门处理中断的处理器(2)的一个端口。
10.根据权利要求1至9中任何一条的方法,其特征在于,它是属于多主/多从类型,而且通信总线上的数据交换由发送消息的主处理器单元定时。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0016858A FR2818774B1 (fr) | 2000-12-22 | 2000-12-22 | Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites |
FR00/16858 | 2000-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1486460A CN1486460A (zh) | 2004-03-31 |
CN1230745C true CN1230745C (zh) | 2005-12-07 |
Family
ID=8858068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018220886A Expired - Fee Related CN1230745C (zh) | 2000-12-22 | 2001-12-21 | 用于并行执行多个任务的方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6859847B2 (zh) |
EP (1) | EP1344131A1 (zh) |
JP (1) | JP2004521412A (zh) |
KR (1) | KR20030072573A (zh) |
CN (1) | CN1230745C (zh) |
CA (1) | CA2432384A1 (zh) |
FR (1) | FR2818774B1 (zh) |
HK (1) | HK1063228A1 (zh) |
IL (1) | IL156482A0 (zh) |
WO (1) | WO2002052414A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004075582A1 (en) | 2003-02-21 | 2004-09-02 | Nortel Networks Limited | Data communication apparatus and method for establishing a codec-bypass connection |
WO2005089055A2 (en) * | 2004-03-19 | 2005-09-29 | Nortel Networks Limited | Communicating processing capabilites along a communications path |
GB0622408D0 (en) * | 2006-11-10 | 2006-12-20 | Ibm | Device and method for detection and processing of stalled data request |
US8346239B2 (en) | 2006-12-28 | 2013-01-01 | Genband Us Llc | Methods, systems, and computer program products for silence insertion descriptor (SID) conversion |
US8908541B2 (en) | 2009-08-04 | 2014-12-09 | Genband Us Llc | Methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway |
US9292409B2 (en) * | 2013-06-03 | 2016-03-22 | Infineon Technologies Ag | Sensor interfaces |
CN104360904A (zh) * | 2014-10-16 | 2015-02-18 | 四川长虹电器股份有限公司 | 基于事件总线的模块间消息传递机制 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8510973D0 (en) * | 1985-04-30 | 1985-06-05 | Emi Ltd | Data transmission system |
IL96808A (en) * | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US5898845A (en) * | 1996-10-29 | 1999-04-27 | Intervoice Limited Partnership | Assigning and utilizing overlapping address space for multiple cards on a common computer bus |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6185631B1 (en) * | 1998-10-14 | 2001-02-06 | International Business Machines Corporation | Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6690676B1 (en) * | 1998-11-23 | 2004-02-10 | Advanced Micro Devices, Inc. | Non-addressed packet structure connecting dedicated end points on a multi-pipe computer interconnect bus |
US6529504B1 (en) * | 1999-06-02 | 2003-03-04 | Sprint Communications Company, L.P. | Telecommunications service control point interface |
US6725281B1 (en) * | 1999-06-11 | 2004-04-20 | Microsoft Corporation | Synchronization of controlled device state using state table and eventing in data-driven remote device control model |
-
2000
- 2000-12-22 FR FR0016858A patent/FR2818774B1/fr not_active Expired - Fee Related
-
2001
- 2001-12-21 WO PCT/FR2001/004176 patent/WO2002052414A1/fr not_active Application Discontinuation
- 2001-12-21 JP JP2002553647A patent/JP2004521412A/ja active Pending
- 2001-12-21 KR KR10-2003-7008448A patent/KR20030072573A/ko not_active Application Discontinuation
- 2001-12-21 US US10/451,032 patent/US6859847B2/en not_active Expired - Fee Related
- 2001-12-21 EP EP01995776A patent/EP1344131A1/fr not_active Withdrawn
- 2001-12-21 IL IL15648201A patent/IL156482A0/xx unknown
- 2001-12-21 CA CA002432384A patent/CA2432384A1/fr not_active Abandoned
- 2001-12-21 CN CNB018220886A patent/CN1230745C/zh not_active Expired - Fee Related
-
2004
- 2004-08-09 HK HK04105915A patent/HK1063228A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
IL156482A0 (en) | 2004-01-04 |
WO2002052414A1 (fr) | 2002-07-04 |
EP1344131A1 (fr) | 2003-09-17 |
US20040059888A1 (en) | 2004-03-25 |
FR2818774A1 (fr) | 2002-06-28 |
CA2432384A1 (fr) | 2002-07-04 |
HK1063228A1 (en) | 2004-12-17 |
FR2818774B1 (fr) | 2003-03-21 |
KR20030072573A (ko) | 2003-09-15 |
JP2004521412A (ja) | 2004-07-15 |
US6859847B2 (en) | 2005-02-22 |
CN1486460A (zh) | 2004-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1129852C (zh) | 通用串行总线装置控制器 | |
CN1270239C (zh) | 处理***或计算机***的任务控制方法 | |
CN1150460C (zh) | 计算机总线***、通信***和通过总线通信的方法 | |
CN101051281A (zh) | 多cpu对临界资源进行互斥访问的方法和装置 | |
CN100343796C (zh) | 直接打印图像的方法和装置 | |
CN1106609C (zh) | 在一个计算机***中配置多个媒体的方法和设备 | |
CN1151449C (zh) | 允许服务器远程访问未通电的客户计算机***资产信息的数据处理***和方法 | |
CN1230745C (zh) | 用于并行执行多个任务的方法 | |
CN1932772A (zh) | 一种隔离总线故障的方法、装置与一种单板 | |
CN1760839A (zh) | 帮助多端口主机适配器的端口测试的装置、***和方法 | |
CN1881934A (zh) | 微处理器、网络***和通信方法 | |
CN1100822A (zh) | ***总线***总线间最佳数据传送用多总线***总线桥 | |
CN1926525A (zh) | 多突发协议设备控制器 | |
CN1904864A (zh) | 一种使hid设备能提供智能卡接口的装置及方法 | |
CN1632774A (zh) | Usb接口设备的识别方法 | |
CN110119374A (zh) | 应用处理器、汽车电子处理器和计算装置 | |
US20090006676A1 (en) | Method for Scheduling a Device Notification Time Slot for a Wireless USB System | |
CN1955933A (zh) | 数据处理设备和方法 | |
CN114077562A (zh) | 一种1553b总线控制器协议处理ip核 | |
CN1645852A (zh) | Modbus/tcp工业以太网和profibus—dp现场总线间的协议转换方法和装置 | |
CN1761954A (zh) | 处理器阵列 | |
CN1934551A (zh) | 数据转发控制*** | |
CN1127243C (zh) | 远程访问客户***个别初始化设定的数据处理***和方法 | |
CN1567279A (zh) | 数据传送方法和数据传送*** | |
CN111311471B (zh) | 一种基于fpga计算的批量图片分割调度处理合成***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1063228 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |