一种电子并行处理电路的制作方法

文档序号:6566628阅读:184来源:国知局
专利名称:一种电子并行处理电路的制作方法
技术领域
本发明涉及一种包括多个并行指令处理单元的电子电路。
技术背景具有多个并行指令处理单元的处理器电路的典型实例是SIMD (单指令多数据)处理器,其中,所有的处理单元执行公共的指令 周期。在每个指令周期中,这些SIMD处理单元执行相同的程序指 令,每个处理单元使用它们自己的操作数数据。典型地,这类SIMD 处理器具有中央程序计数器,用于对提供给所有处理单元的共有指 令进行寻址。在计算机程序中,除了最简单的程序,通常所有程序都包括一 些条件流控制形式,以便如果被处理数据的值满足了某条件,则从 程序的一部分跳转到另一部分,从而实现例如高级程序中的 if-then-else结构。把这类跳转实现为对程序计数器的条件更新。还希望在SIMD处理器中实现条件执行。使用了各种方法。欧 洲专利申请号0035647描述了一种结构,在该结构中每个处理器单 元判决是否对提供给所有处理器单元的共有指令进行执行。可替换 的方案是使用跳转,来实现为所有处理元件集体选择后续指令。已 知为这种跳转使用跳转条件,其包括检测是否所有处理单元发出用 于表示它们检测到特定条件的信号,或者是否没有处理单元发出用 于表示其检测到特定条件的信号。典型地,这是通过使用OR电路 或AND电路来实现的,其中该OR或XOR电路的输入端连接到处 理单元的标志输入端,该OR/AND电路的输出用于对是否执行跳转 进行控制。考虑到更多种条件,还已知对来自可选择的处理单元的 标志信号进行屏蔽。
这类条件跳转仅可以承担程序流中非常有限的取决于数据的控 制。只有在诸如"没有处理单元设置了它们的标志"或"所有的处 理单元都设置了它们的标志"这样的条件下才有可能跳转。这对于 例如当(数据包含噪声且)需要取决于统计条件的跳转时没有什么 用。发明内容其中,本发明的目的是为了使得能够在更复杂的条件下在处理 器电路中执行跳转指令,其中在该处理器电路中,多个处理单元执 行具有公共程序流的程序。其中,本发明的目的是为了提供具有多个并行处理单元的处理 器电路,其支持在统计条件下的集体程序跳转。权利要求1中描述了根据本发明的电子电路。根据本发明,使 用了加法器电路,其输入端连接到处理单元的标志输出端,并且其 和输出端连接到公共流控制电路。这样,程序跳转条件可以基于设 置了标志的处理单元数量的计数来实现。


将通过非限制性实例,来说明本发明的各个有利的方面,其中 该实例使用以下附图。 图1示出处理电路; 图2示出进一步的处理电路。
具体实施方式
图l示出了处理电路,其包括多个处理单元IO、操作数存储电 路12、加法器电路14、控制存储器16、程序计数器18,以及指令 提供电路19。尽管仅示出了三个处理单元IO,应该明白,在实践中 可以出现大得多的数量。处理单元10具有连接到操作数存储电路12 的操作数输入端和输出端,并且具有连接到加法器电路14的输入端 的标志输出端。加法器电路14的和输出端连接到控制处理器16。指令提供电路19具有连接到程序计数器18的输入端,并且具有连接 到处理单元10、操作数存储电路12以及控制处理器16的输出端。 控制处理器16具有连接到程序计数器18的控制输出端。在简单的 实现中,指令提供电路19是指令存储器,其返回由程序计数器18 所寻址的存储器位置的内容,但是可以使用更复杂的电路,用于实 现例如高速缓冲存储、流水线操作和/或初步指令解码。在结构上, 程序计数器18可以被看做是指令提供电路19的一部分,但是为了 清楚起见,单独将其示出。在操作中,程序计数器18把指令地址提供给指令提供电路19。 在通常情况下,程序计数器18在连续的指令周期中递增指令地址, 使得在连续的指令周期中寻址连续的程序指令。响应于每个指令地 址,指令提供单元19把指令信息提供给处理单元10、操作数存储电 路12以及控制处理器16。响应于指令信息,操作数存储电路12把 操作数数据输出到处理单元IO,并且处理单元IO执行受指令控制的 操作,每个操作使用操作数数据中的不同部分作为操作数。作为执 行结果,每个处理单元10产生一个结果,并且把这些处理单元10 的组合结果写回到操作数存储电路12中由指令提供电路19的指令 所控制的地址上。响应于至少一类指令,处理单元IO在它们的标志输出端输出取 决于操作数的标志数据。在一个实例中,处理单元10支持"比较" 指令,并且一旦执行了这个指令,每个处理单元10在其标志输出端 输出针对其特定操作数所获得的比较结果。在另一个实例中,在计 算结果的期间,作为副作用产生标志输出端的信号,该信号指示出, 例如,该结果是表示大于零的数,还是表示溢出等等。加法器电路14把标志输出端的信号进行相加。g口,其形成了对 标志输出端的数量的计数,其中在标志输出端的标志信号具有预定 的逻辑电平。因此,如果仅有一个处理单元输出了这种标志信号, 加法器电路14就输出用于表示数量"1"的信号,如果仅有两个处 理器单元输出了这种标志信号,加法器电路14就输出用于表示数量 "2的信号,依次类推,直到处理单元的数量"N"。
控制处理器16从指令提供电路19接收它自己的取决于程序计 数器的指令,并且从加法器电路14接收和信号。响应于这些指令, 控制存储器16可以执行各种类型的动作。这些指令包括条件跳转指 令(在本文中该术语与术语"分支指令"可互换地使用)。响应于这 种指令,控制处理器16对是否满足指令中所指定的条件进行测试, 并且如果满足了该条件,那么控制存储器16把信号发送给程序计数 器18,以改变该指令地址。所需要的改变可以是例如绝对改变(程 序所选择的地址),又例如相对改变(旧的指令地址加上程序所选择 的偏移量)。在一个实施例中,控制处理器16被设计为通过使用取决于来自 加法器电路14的和信号的条件,对至少一类指令做出响应。在一个 实施例中,这类指令通过门限数量来指定该条件,从而如果来自加 法器电路的和信号超过了这个门限数量(和/或可选择地等于这个数 量),那么控制处理器16响应于该指令,促使程序计数器18根据相 对或绝对跳转来更新指令地址。在另一个实施例中,如果来自加法 器电路的和信号低于或等于这个门限数量,那么控制处理器16响应 于这个指令来促使跳转。最好把控制处理器16设计为支持各个指令 当各个来自加法器电路的和信号低于(和/或等于)和高于(和/或等 于)这个门限数量时促使跳转。在一个实例中,这类指令用来在信号处理(例如处理音频信号, 其中处理单元10处理各自的音频抽样、或各自的傅立叶系数,和/ 或处理视频信号,其中处理单元10处理各自的像素抽样、或各自的 傅立叶系数(此处所用的"抽样"不仅涉及直接测量到的物理值, 还涉及对这种测量序列进行处理所产生的序列))期间做统计判决。 在这类任务的程序中,例如可以提供有普通的程序流,还可以提供 特殊程序部分用于多于最小数量的抽样值超过门限的情况。在这种 情况下,该程序可以包含用于跳转到特殊程序部分的指令,比如, 一旦5%的处理单元IO检测到其操作数超过了门限,就进行该跳转。在进一步的实施例中,该电路可以被配置为支持标志的屏蔽, 以便加法器电路14仅形成来自程序所选择的处理单元10的标志信
号的和。可以以各种方式来实现屏蔽。在一个实施例中,处理单元 10中支持屏蔽。在这种情况下,例如每个处理单元10可以被设计为 如果在该特定处理单元10中的一个指令的第一操作数的条^^不满 足,并且在该特定处理单元10中的该指令的第二操作数中的控制标 志具有预定值,则响应于该指令而输出零标志信号(即对和没有贡 献的信号)。在这种情况下,处理单元10只有当满足该条件并且该控制标志没有预定值时才输出非零标志信号。在另一个实施例中,通过指令提供电路19提供给控制寄存器(未 示出)的屏蔽向量来支持屏蔽。可以从指令提供电路19直接提供这 个屏蔽向量,或者经由控制处理器16来提供。图2示出了一个实施例,其中以处理单元10和加法器电路14 之间所提供的AND门20的形式,把屏蔽电路示出在处理单元10 之外。每个处理单元10的标志输出端连接到各自AND门的第一输 入端,从屏蔽寄存器22提供控制标志到第二输入端。AND门20的 输出端连接到加法器电路14。在这个实施例中,控制寄存器22的各 个输出端连接到AND门20的输入端,以提供控制标志。在这个实 施例中,经由控制处理器16来提供屏蔽向量,可以用一个或多个用 于设置控制寄存器各个部分的指令来实现该屏蔽向量。然而,本发 明并不限于这个实施例,例如类似于AND门的功能可以是处理单元 IO固有的,在此情况下,控制寄存器22连接到处理单元10;或者 可以使用作为处理单元10的部件的控制寄存器。类似地,如果从指 令提供电路19提供控制标志,该电路可以连接到控制寄存器22,或 者如果控制标志来自操作数存储单元12,则控制寄存器22将会是该 电路的部件。在另一个实施例中,处理单元10被构造为输出多个不同的标志 信号(发出信号来表示例如不同条件,例如,操作数相等、第一操 作数大于第二操作数、第一操作数小于第二操作数、或者操作结果 分别大于零、等于零以及小于零)。在这个实施例中,可以在处理单 元10和控制处理器16之间提供多个加法器电路14,每个用于对各 自类型的标志信号进行求和。在这种情况下,控制处理器16优选被
构造为对不同类型的指令做出响应,该不同类型的指令响应于不同 类型的和来实现跳转。在另一个实施例中,把多个种类型的标志信号提供给一个法器电路14,并且每个复用器(未示出)连接在各个 处理单元10的一组标志输出端和加法器电路14的相应输入端之间, 控制处理器16具有连接到这些复用器的控制输入端的输出端,用于 选择在控制处理器16的指令控制之下必须被求和的标志信号的类 型;可选择地,处理单元可以被配置为在它们的指令的控制之下来 选择标志类型。在一个实施例中,加法器电路14是饱和加法器电路,其被设计 为仅累计到预定的最大值,返回表示该最大值的数字,或者如果该 实际的和超过了最大值则返回以该实际和为模的数。这在许多情况 中满足要求。然而,优选把加法器电路14设计为累加到所有可能的 和值。可以使用各种类型的加法器电路。优选使用树形结构加法器 电路14,其中提供了各个子加法器(未示出)以形成处理单元子集 的标志信号的各自部分和,并且一个或多个后续加法器对这些部分 和进行求和。这减小了标志信号的生成和跳转的执行之间等待时间。 应该明白的是,在任何情况下,都可以使用某种流水线操作形式, 使得在一个指令周期内处理单元IO所输出的标志信号的和,影响在 稍后的指令周期内的跳转,该跳转导致程序计数器地址改变,例如 对于最初指令周期偏移在流水线化的加法器电路14中所使用的多个 周期。优选使用一比特的标志。但是在进一步的实施例中可以使用多 比特标志(例如两比特标志,以指示处理单元10的操作数之间的比 较导致四个种类中哪一个)。在进一步的实施例中,把加法器电路14 设计为将这些多比特标志作为数字来求和。要强调的是,如果使用 多比特标志,则该多比特标志的大小最好很小,典型地,比处理单 元10的操作数中的比特数量小得多,以避免标志的输出和跳转的执 行之间有过大的等待时间。该处理电路优选是SIMD(单指令多数据)电路,其意味着指令 提供电路19在每个指令周期把相同指令提供给所有处理单元10。这
样,以简单的方式确保了将由处理单元io输出可比较的标志信号,可以明显地对该信号进行求和。然而,本发明不限于SIMD处理器。 本发明还可应用于MIMD处理器,即其中的指令提供电路19能够 把彼此不同的指令提供给处理单元10的处理器。典型地,在这种情 况下,以标志信号的和为条件的跳转指令仅用于当把相等的或至少 相似的指令提供给所有处理单元10 (或者至少那些没有屏蔽在和之 外的处理单元IO)时产生的标志输出。此外,尽管本发明所描述的优选实施例中使用加法器电路14的 输出来执行条件跳转(分支)指令,但是应该明白的是,此外或者 可替换地,本发明可以应用于中断或异常处理。在中断的情况下, 当发生了取决于该和的条件时,控制处理器16促使跳转到预定的地 址。例如,固定地通过硬接线或响应于"激活中断"指令,可以为 后续的指令预先设置条件和/或预定的地址。在这类处理器中,程序 计数器18跟随正常程序流,除非在正常程序流期间执行了任一指令 之后该和满足了条件。如果满足了条件,控制跳转到异常处理指令。此处描述了一个实施例中,控制处理器16被构造为与处理单元 10来步调一致地执行指令,包括用于改变程序计数器的跳转指令, 该程序计数器对处理单元IO和控制处理器16的指令选择进行控制。 典型地,控制处理器16被构造为还能够执行其它类型的指令,例如 以便控制将信号数据捕获到操作数存储电路12中或者更新该电路的 输出结果等等。然而应该明白的是本发明不限于这个实施例。在不 同的实施例中,控制处理器16仅仅用来监视条件,以便实现取决于 这些条件的程序计数器的更新。在这个情况下,控制处理器的"指 令"仅仅包含跳转目标地址(或偏移量)以及可选择的条件指定, 例如和的门限值以及/或者如果该和高于或低于该门限值时是否需 要跳转。此外,尽管只详细描述了使用标志信号的和来指定跳转条件, 应该明白的是,控制处理器16此外可以构造为还促使在其它条件下 的跳转,例如取决于(标志输出的可选择屏蔽部分的) 一些逻辑函 数(是否为真)。为此,可以把相应的逻辑电路与加法器电路14并
行连接在标志输出端和控制处理器16之间。在这个情况下,控制处 理器的指令优选指定用哪个电路来判决是否实现跳转。然而,应该 注意的是,对于标志输出信号的一些简单的逻辑函数(例如逻辑 AND、逻辑OR,以及奇偶函数)的结果之上的跳转,可以使用加 法器电路14的输出信号如果和大于零,则逻辑OR的值为真;如 果该和等于最大可能值,则逻辑AND的值为真;并且奇偶性对应于 该和的最低有效位。通过结合对所选择的标志信号进行屏蔽,求和电路的输出还可 以用来计算纠错校验子值的比特。典型地,这包括多个不同的屏蔽, 以及和的最低有效位的使用。可替换地,可以并行地提供多个不同 的求和电路(其中某些仅具有最低有效位输出)以及多个屏蔽寄存 器,以并行地计算校验子的不同比特。
权利要求
1、一种电子电路,包括多个并行指令处理单元(10),每个处理单元(10)都具有标志输出端,用于提供条件信号,以表示在由该处理单元(10)执行指令的期间是否发生了取决于数据的条件;指令提供电路(18、19),其输出端连接到所述处理单元(10)具有输入端以及和输出端的加法器电路(14),所述输入端连接到所述标志输出端;控制电路(16),其连接到所述指令提供电路(18、19)以控制所提供指令的程序流,所述控制电路(16)具有连接到所述和输出端的条件输入端,所述控制电路(16)被配置为根据在所述和输出端所提供的和的值,实现所述指令提供电路(18、19)的条件程序控制跳转。
2、 如权利要求l所述的电子电路,包括屏蔽电路(20、 22), 用于消除所述条件信号对从根据屏蔽选择的处理单元(10)而来的 取决于数据的条件的依赖性。
3、 如权利要求l所述的电子电路,用包含跳转指令的程序对其 进行编程,以根据与大于一并且小于处理单元(10)的总数减一的 数相对的所述和结果的值,强制程序跳转。
4、 如权利要求1所述的电子电路,其中,所述电子电路具有 SIMD结构,所述指令提供电路(18、 19)被配置为对所有处理单元 共同提供相同指令信息。
5、 如权利要求l所述的电子电路,其中,所述控制电路(16) 是指令处理电路,所述指令提供电路(18、 19)被配置为在向所述 处理单元(10)提供所述指令信息的同时,向所述控制电路(16) 提供与用于所述处理单元(10)的各个指令相关联的控制指令,所述控制电路的控制指令集包括用于实现条件程序控制跳转的条件跳 转指令。
6、 如权利要求l所述的电子电路,其中,通过所述加法器电路 来相加的所述条件信号是一比特信号,所述和是多比特和信号。
7、 如权利要求1所述的电子电路,其中,所述处理单元(10) 的指令集包括比较指令,用于定义该取决于数据的条件是如何取决 于所述指令的操作数数据的。
8、 如权利要求1所述的电子电路,其中,所述控制电路(16) 被配置为根据所述和的值是否低于所述控制电路的控制指令中指 定的门限值以及/或者根据所述和的值是否高于所述控制电路的控 制指令中指定的门限值,来实现所述条件程序控制跳转。
9、 一种用于并行地处理多个操作数的方法,所述方法包括 把指令提供给多个并行的处理单元(10); 把所述指令的各个操作数数据提供给各个处理单元(10); 在每个特定的处理单元(10)中,确定在由该特定的处理单元(10)执行指令的期间,是否发生了取决于操作数数据的条件; 根据所述确定,从每个特定的处理单元(10)输出条件信号; 对所述条件信号进行求和,以形成和信号;在包含所述指令的程序中实现条件程序控制跳转,该跳转根据 所述和信号表示的值来实现。
全文摘要
一种包含多个处理单元(10)的电子电路,其中把受公共程序流控制的指令提供给该多个处理单元(10),该电子电路典型地用于SIMD操作,其中,把相同的指令应用到所有的处理单元,并且把该指令的不同操作数数据应用到各自的处理单元(10)。在该指令的控制之下,每个处理单元(10)确定是否发生了取决于操作数数据的条件。该处理单元根据所述确定输出条件信号。把条件信号相加,以形成和信号。通过取决于该和信号所表示的值的条件跳转来控制程序流。
文档编号G06F9/32GK101120310SQ200680004709
公开日2008年2月6日 申请日期2006年2月9日 优先权日2005年2月14日
发明者A·A·阿博, R·P·克莱霍斯特, S·F·莫于 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1