CN100552622C - 运算处理装置 - Google Patents
运算处理装置 Download PDFInfo
- Publication number
- CN100552622C CN100552622C CNB200580047363XA CN200580047363A CN100552622C CN 100552622 C CN100552622 C CN 100552622C CN B200580047363X A CNB200580047363X A CN B200580047363XA CN 200580047363 A CN200580047363 A CN 200580047363A CN 100552622 C CN100552622 C CN 100552622C
- Authority
- CN
- China
- Prior art keywords
- condition flag
- value
- result
- register
- instruction
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 162
- 230000005540 biological transmission Effects 0.000 claims abstract description 58
- 238000011156 evaluation Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 description 24
- 239000000654 additive Substances 0.000 description 12
- 230000000996 additive effect Effects 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000004065 semiconductor Substances 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种运算处理装置,能够以尽量少的步骤来执行,利用各个运算单元所生成的条件标志,生成共通参照的条件标志的运算。以一个指令对多个数据进行并行处理的运算处理装置(100)包括:处理单元(102、103),根据指令寄存器所存储的指令的评价结果,执行共通的运算;以及条件标志运算器(104),对各处理单元所保存的条件标志执行逻辑运算和比较运算的某一个,将执行后的结果传输到处理单元,并将条件标志更新为执行后的结果。
Description
技术领域
本发明涉及运算处理装置,尤其涉及具有条件标志寄存器的SIMD(Single Instruction Multiple Data:单指令多数据)型的运算处理装置。
背景技术
通常,在运算处理装置中具有以一个指令来并行处理多个数据的SIMD(Single Instruction Multiple Data:单指令多数据)型的运算处理装置。通过利用这种运算处理装置,可以以一个指令控制装置来并行处理多个数据,并可以缩短处理的执行时间,提高数据处理能力(例如,参照专利文献1)。
并且,还有一种流水线型运算处理装置,与上述的处理高速化不同,这种流水线型运算处理装置将运算处理本身以时间序列来分割为多个阶段,且多个独立的阶段分别执行垂直的运算处理。此运算处理装置在指令字垂直排列的情况下,可以发挥最大的性能。但是,在有条件转移等指令的情况下,流水线的控制会混乱,造成一时的处理性能降低。对此,为了减少条件转移而采用判定语句(Predicate,以下称为条件标志)的方法。在此,条件标志修饰指令字,并通过选择是否执行该指令字的处理,可以降低条件转移指令的使用频度,从而可以提高运算处理性能(例如,参照专利文献2)。
专利文献1日本国特开2000-47998号公报
专利文献2日本国特开平10-27102号公报
然而,在所述通常的技术中,关于SIMD型运算处理装置,由于是按照运算单元来处理不同数据的,因此,即使运算功能相同,并且用于执行运算的指令字即使在所有的运算单元都相同,则各个运算单元得到的运算结果也会不同。
例如,在执行了比较指令的情况下,由于是按照运算单元使用不同的数据来进行运算的,因此作为该运算结果的条件标志也会因运算单元不同而不同。因此,在利用条件标志执行附有条件的运算处理的情况下,各个运算单元利用各自的条件标志来执行附有条件的转移指令是容易的。
但是,由于在所有的运算单元利用共同的比较指令的结果,因此,在所有的运算单元也就需要参照共同的条件标志值。为此,需要有按照各个运算单元存储所有运算单元的条件标志值的逻辑和(LogicalDisjunction)、逻辑乘(Logical Conjunction)的寄存器,由于需要的寄存器较多所以安装面积也会增大。并且,毕竟条件转移指令所使用的条件标志的生成方法只有一个,由于不能减少条件转移指令本身,因此,由转移指令的发行而发生损失(penalty),导致全体的运算处理性能降低。
并且,在SIMD型的运算处理装置中,可按照估计的程序中、要求的运算处理性能中最大的一个的数量来决定运算单元的数量。为此,在执行不需要最大处理性能的程序的情况下,可以只使用一部分运算单元,而不使用剩余的运算单元。
但是,若不使用剩余的运算单元,则不使用的运算单元进行不必要的运算,或者为了减少耗电,执行中止运算工作的控制。在这样的情况下若执行比较指令,则在不要的运算单元中使用非有效的数据来执行比较指令,或者由于运算本身未被执行,而导致条件标志也存储了非有效的值。为此,在运算单元间执行条件标志的运算的情况下,只有一部分的运算单元存储了有效条件标志值,需要追加只选择有效值的处理,这样,就不能容易地执行运算单元间的条件标志运算。
即,存在的问题是:SIMD型的运算处理装置中,在所有的运算处理装置利用相同的条件标志执行条件转移时,利用各个运算单元所分别生成的条件标志,执行生成共同参照的条件标志的运算时,不能以尽量少的步骤来执行,从而不能得到高速化的效果。
发明内容
于是,本发明鉴于上述问题,目的在于提供一种运算处理装置,利用各个运算单元所分别生成的条件标志,在执行生成共同参照的条件标志的运算时能够以尽量少的步骤来完成。
为了达到所述目的,本发明所涉及的运算处理装置为(a)以一个指令对多个数据进行并行处理,其包括:(b)多个处理单元,根据对指令寄存器中所存储的指令进行评价而获得的结果,执行共通的运算;(c)条件标志运算器,对各个处理单元中所保存的条件标志执行逻辑运算以及比较运算的任一个,将执行后的结果传输到各个处理单元,并将所述条件标志更新为执行后的结果;(d)指令发行控制单元,该指令发行控制单元具有根据从条件标志运算器传输来的运算结果来执行条件转移的功能;(e)条件标志屏蔽寄存器,其具有与所述多个处理单元的个数相同数量的比特宽度,且各比特与各处理单元一一对应;以及(f)条件标志转换器,在所述条件标志运算器执行逻辑乘运算的情况下,将作为无效数据的处理单元的条件标志的值转换为不影响运算结果的标志值“1”。
据此,可以以一个步骤来更新各处理单元所保持的条件标志,并可以在所有的处理单元高速地建立共同的条件标志。而且,可以减少通常所需要的条件转移,并可以减少因转移处理而发生的损失,从而可以抑制因损失而造成的性能降低。
而且,本发明不仅可以作为运算处理装置来实现,而且也可以作为控制运算处理装置的方法(以下称为运算处理方法)、或作为使运算处理方法仿效计算机系统等的运算处理程序、或作为记录运算处理程序的记录介质来实现。
并且,还可以作为系统LSI、IP核(以下称为运算处理核)、以及记录运算处理核的记录介质来实现,所述系统LSI中组装有构成运算处理装置的一个或两个以上的功能(以下称为运算处理功能),所述IP核将运算处理功能形成于FPGA(Field Programmable Gate Array:用户可编程门阵列)、CPLD(Complex Programmable Logic Device:复杂可编程逻辑器件)等可编程逻辑器件上。
这样,根据本发明所涉及的运算处理装置,可以对多个处理单元中所包含的条件标志寄存器的值执行运算,并可以以一个步骤将执行后的结果存储到各个处理单元所包含的条件标志寄存器中,从而可以快速地将共同的条件标志建立在所有的处理单元。而且,可以减少通常所必需的条件转移,从而可以抑制因转移处理而带来的损失所导致的性能降低。
而且,通过更新条件标志,并且通过使用共同的条件标志运算器,这与安装在各个处理单元的情况相比,可以减少安装面积,所述条件标志运算器生成在执行条件转移时所参照的条件标志。
而且,通过预先将使用的条件标志寄存器信息设定到条件标志屏蔽寄存器,即使在因程序等造成,从使用所有的条件标志寄存器的情况变化为使用的条件标志寄存器的数量发生变化的情况下,也不必变更使用所有条件标志寄存器的情况下的指令发行方法,使程序的记述变得容易。
附图说明
图1是在实施例1中运算处理装置的概略构成图。
图2A是实施例1中向运算处理装置提供的指令的一示例图。
图2B是实施例1中向运算处理装置提供的指令的一示例图。
图3A是一般技术中向运算处理装置提供的指令的一示例图。
图3B是一般技术中向运算处理装置提供的指令的一示例图。
图4是在实施例2中运算处理装置的概略构成图。
图5A是实施例2中向运算处理装置提供的指令的一示例图。
图5B是实施例2中向运算处理装置提供的指令的另一示例图。
图6是在实施例3中运算处理装置的概略构成图。
图7是在实施例4中运算处理装置的概略构成图。
符号说明
100、200、300、400运算处理装置
101、201、401指令寄存器
102、103处理单元
104、204、304、404条件标志运算器
105条件标志传输信号线
121、131寄存器文件
122、132算术逻辑运算器(ALU)
123、133选择器
124、134条件标志寄存器
125、135选择器
126、136运算结果更新控制信号线
206、406指令发行控制部
307条件标志屏蔽寄存器
381、382条件标志转换器
具体实施方式
(实施例1)
以下参照附图,对本发明所涉及的实施例1进行说明。
在实施例1的运算处理装置的特点是,多个处理单元分别具有条件标志寄存器,并对条件标志寄存器中所保存的条件标志的值进行运算,将运算后得到的结果传输到所有的处理单元内所具备的条件标志寄存器,并存储到条件标志寄存器。
据此,只要用一个步骤就可以更新所有的条件标志寄存器,在所有的处理单元可以快速建立共同的条件标志,可以减少以往所必需的条件转移,并减少转移处理中所必需的损失,从而可以抑制因损失而导致的性能降低。
“条件标志”是指判定语句(Predicate),其修饰指令字,通过选择是否执行该指令字的处理,可以降低条件转移指令的使用频度,并可以使运算处理性能提高。
依照以上几点对实施例1中的运算处理装置进行说明。
首先,对实施例1中的运算处理装置的构成进行说明。
如图1所示,运算处理装置100将指令寄存器101中所存储的指令字提供给处理单元(以下称为PE)102、103,以一个指令来并行执行多个数据的运算处理的装置。
在此,作为一个例子示出了运算处理装置100包括:指令寄存器101、PE102及103、条件标志运算器104等。
并且,指令字包括条件标志指定字段(以下称为CF字段)和操作码及操作数字段,在此,条件标志指定字段指定条件执行的有无以及使用的条件标志码,操作码及操作数字段指定操作码及操作数。
条件标志运算器104根据指令,对条件标志中的指令寄存器101的CF字段中所设定的条件标志的值,执行逻辑和运算以及逻辑乘运算中的某一个。并且,通过传输总线105向所有的PE传输运算结果。以下,作为一个例子在此仅对逻辑和运算进行说明,省略逻辑乘运算的说明。
并且,对于存储有程序的指令超高速缓存、存储有数据的数据超高速缓存等的构成要素以及ALU的运算方法,因是常规技术故省略说明。
而且,PE的数量也可以不是两个,可以是更多,例如是四个。
而且,条件标志运算器104除执行逻辑和运算以及逻辑乘运算以外,还可以执行其它的逻辑运算,例如异或逻辑运算等。并且,也可以取代逻辑运算而执行比较运算。而且,在执行比较运算的情况下,也可以对从各PE输出的多个比特的条件标志执行比较运算。并且,例如,对从各PE输出的多个比特的条件标志执行比较运算的结果也可以是,在所有的条件标志相同的情况下,将所有的比特为1的运算结果传输到所有的PE。并且,在不相同的情况下,可以将所有为0的运算结果传输到所有的PE,也可以什么都不传输。
下面对实施例1中运算处理装置的处理单元进行说明。在此,对PE102的构成进行说明,由于PE103的构成与PE102的构成相同,因此省略说明。
并且,对于处理单元的数据提供装置以及数据存储装置,可以是不同的装置也可以共同使用一个装置,在此数据提供装置提供作为运算对象的数据,数据存储装置存储作为运算结果的数据。在此,将数据提供装置以及数据存储装置作为一个共同使用的数据记录装置,具体而言是寄存器文件,以下就以该寄存器文件为例进行说明。
PE102包括:寄存器文件121、ALU运算器122、选择器123、条件标志寄存器124以及选择器125等。
ALU运算器122根据指令寄存器101,利用寄存器文件121中存储的数据或立即数来执行运算处理。
选择器123选择以下运算结果中的某一个,并将选择的运算结果传输到条件标志寄存器124,所述运算结果指,从ALU运算器122传输来的运算结果,以及通过条件标志传输信号线105、从条件标志运算器124传输来的运算结果。
条件标志寄存器124保存从选择器123传输来的运算结果。
选择器125在条件标志寄存器124为多个的情况下,根据指令寄存器101的CF字段的值,选择要传输哪一个条件标志寄存器124中所保存的条件标志。
寄存器更新控制信号线126为控制信号线,根据条件标志的内容等,有选择地执行是否要将ALU运算器122的运算结果,存储到寄存器文件121以及条件标志寄存器124中的某一个。
而且,寄存器文件121设有多个存储数据的区域,以便能够使用任意的数据值。
例如,在设有四个数据区域的情况下,一般为了识别而分配R0、R1、R2、R3等编号。
同时,对于条件标志寄存器124,一般是分配C0、C1、C2、C3等编号。
例如,在寄存器文件R1~R4中存储有矢量数据时,可以使条件标志分别对应8比特长的两个数据,C0中保存对应的两个条件标志。此时,可以使C1中保存与16比特长的数据对应的条件标志,C2中保存对应的两个条件标志,该对应的两个条件标志是分别与16比特长的两个数据相对应的,C3中保存与32比特长的数据相对应的条件标志。
而且,条件标志寄存器124可以不是两个,可以更多,例如可以是四个。这是为了便于识别。
接着,对向实施例1中的运算处理装置提供的指令串进行说明。
如图2A、图2B所示,在此作为一个例子,例如编辑源代码1生成指令串11。
指令串11包括:第一指令(001)、第二指令(002)、第三指令(003)以及第四指令(004)。
第一指令(001)是比较指令(cmpgt)。
第二指令(002),是在各PE间的条件标志寄存器值的逻辑乘运算指令(cfand)。
第三指令(003)是条件执行的加法指令([C0]add)。
第四指令(004)是通常执行的加法指令(add)。
而且,即使是比较指令以外,比如像移动指令、逻辑运算指令等,生成条件标志的指令中,同样也可以执行在各PE间的条件标志寄存器值的逻辑乘运算指令。
接着,对实施例1中的运算处理装置的工作进行说明。在此,作为一个例子,执行从图2A、图2B所示的源代码1中生成的指令串11,以下将对该执行情况进行说明。
运算处理装置100执行第一指令(001),对寄存器文件121的R0值和立即数(immediate value)“5”进行比较,当比较的结果为R0的值比立即数“5”大的情况下,在第一指令的CF字段中设定的各PE的条件标志寄存器的C0中,存储表示“真”的“1”。另一方面,当R0的值在立即值“5”以下的情况下,在各PE的条件标志寄存器的C0中,存储表示“假”的“0”。此时,将选择器123设定为选择从ALU运算器122传输来的值。
接下来,运算处理装置100执行第二指令(002)在条件标志运算器104执行各PE的条件标志寄存器C0的值的逻辑乘运算。通过条件标志传输信号线105,将执行的结果存储到各PE条件标志寄存器的C0中。此时,使用的条件标志寄存器编号,是由指令寄存器101的操作数来设定的,并将选择器123设定为通过条件标志传输信号线105选择传输来的值。
接下来,运算处理装置100执行第三指令(003),在指令字的CF字段,将在附有条件的执行中使用的条件标志寄存器编号设定为C0的情况下,从寄存器文件121中读出R1和R2的值,并在ALU运算器122对读出的R1的值和R2的值进行加法运算,并将运算后的结果存储到寄存器文件121的R2中。此时,条件标志寄存器124的C0的值若为真,即“1”时,通过运算结果更新控制信号线126,将有效(Active)信号提供给寄存器文件121,以便存储加法运算后的结果。另一方面,条件标志寄存器124的C0的值若为假,即“0”时,则在不存储加法运算后的结果的状态下,提供否定(Negative)信号。
接下来,运算处理装置100执行第四指令(004),从寄存器文件121中读出R2的值,在ALU运算器122对读出的R2的值和立即数“1”进行加法运算,并将运算的结果存储到寄存器文件121的R2。
如以上说明,实施例1中的运算处理装置100对第二指令(002)的各PE的条件标志寄存器的值进行运算以及更新,都是在1个步骤内完成的,不需要在其它的PE间进行多余的数据传输,并且,不会发生因条件转移处理而产生的损失,还可以减少到条件转移执行结束为止的循环次数。
而且,可以在一个步骤对所有的条件标志寄存器进行更新,并且可以在所有的处理单元快速地建立共同的条件标志。而且,如图3B所示,可以消减以往所需要的条件转移的指令(002),从而可以减少因转移处理而发生的损失,并可以抑制因损失而造成的性能降低。
在此,图3B所示的指令串2是向以往的运算处理装置提供的指令串,是编辑图3A所示的源代码1而生成的。
(实施例2)
以下,参照附图对本发明所涉及的实施例2进行说明。
本发明所涉及的实施例2中的运算处理装置具有指令发行控制部,该指令发行控制部具有根据从条件标志运算器传输来的运算结果来执行条件转移的功能。
依照以上这点,对实施例2中的运算处理装置进行说明。并且,对于与实施例1相同的构成要素赋予相同的符号,省略其说明。
首先,对实施例中运算处理装置的构成进行说明。
如图4所示,运算处理装置200与运算处理装置100相比,有以下(1)~(3)之处不同。
(1)代替指令寄存器101的是具有指令寄存器201,指令寄存器201保存从指令发行控制206传输来的指令;(2)代替条件标志运算器104的是具有条件标志运算器204,条件标志运算器204也向指令发行控制部206传输运算结果;(3)新增加了指令发行控制部206,指令发行控制部206控制指令的发行,该指令含有条件转移指令。根据从条件标志运算器204传输来的运算结果,所述指令发行控制部206发行指令,并将发行的指令传输到指令寄存器201。
接下来,对向实施例2的运算处理装置提供的指令串进行说明。
在此,作为一个例子,如图5A、图5B所示,例如编辑源代码1并生成指令串21。
指令串21包括:第一指令(001)、第二指令(002)、第三指令(003)以及第四指令(004)。
第一指令(001),是比较指令(cmpgt)。
第二指令(002),是在各PE间的条件标志寄存器值的逻辑乘运算指令([C0]br.all)。
第三指令(003),是在没有执行转移处理的情况下的加法指令(add)。
第四指令(004),是在执行了转移处理的情况下的加法指令(label1:add)。
在此,“br.all”表示是,只有所有的PE的条件标志为“1”时,执行转移类的指令“br”。
而且,除此以外,对于“jump”,“loop”等的转移类的指令,也可以是在所有的PE的条件标志为“1”时,执行转移类的指令。
接下来,对实施例2的运算处理装置的工作进行说明。在此,作为一个例子,对执行图5A、图5B所示出的源代码1所生成的指令串21的情况进行说明。
运算处理装置200执行第一指令(001),对寄存器文件121的R0值和立即数“5”进行比较,当比较的结果为R0的值比立即数“5”大的情况下,在第一指令的CF字段中设定的各PE的条件标志寄存器的C0中,存储表示“真”的“1”。另一方面,当R0的值在立即值“5”以下的情况下,在各PE的条件标志寄存器的C0中,存储表示“假”的“0”。此时,将选择器123设定为选择从ALU运算器122传输来的值。
接下来,运算处理装置200执行第二指令(002),在条件标志运算器204,执行各PE的条件标志寄存器C0的值的逻辑乘运算。通过条件标志传输信号线105,将执行的结果存储到各PE条件标志寄存器的C0中。
并且,运算处理装置200通过条件标志传输信号线105将执行的结果传输给指令发行控制部206。并且,在通过条件标志传输信号线105向指令发行控制部206传输的条件标志的值为真,即“1”的情况下,执行转移处理,从指令发行控制部206将第四指令(004)传输给指令寄存器201,并执行第四指令(004)。另一方面,在通过条件标志传输信号线105向指令发行控制部206传输的条件标志的值为假,即“0”的情况下,不执行转移处理,从指令发行控制部206将第三指令(003)传输给指令寄存器201,并执行第三指令(003)。
接下来,运算处理装置200执行第三指令(003),从各PE的寄存器文件中读出R1和R2的值,在ALU运算器122对读出的R1和R2的值进行加法运算,并将运算的结果存储到寄存器文件121的R2。
接下来,运算处理装置200执行第四指令(004),从各PE的寄存器文件中读出R2的值,在ALU运算器122对读出的R2的值和立即数“1”进行加法运算,并将运算的结果存储到寄存器文件121的R2。
如以上说明,实施例2的运算处理装置200在执行条件转移时,由于可以共通使用条件标志运算器204,因此可以减小安装面积。
并且,关于运算处理装置200,在条件标志运算器204执行的指令,除逻辑乘运算以外,还有逻辑和运算的指令(br.any)等。
在此,“br.any”表示的是,只要所有的PE的条件标志中有1个是“1”,就执行转移类的指令“br”。
并且,除此之外,对于“jump”、“loop”等转移类的指令,也可以是只要所有的PE的条件标志中有1个是“1”,就执行转移类的指令。
(实施例3)
以下,参照附图对本发明所涉及的实施例3进行说明。
在本发明所涉及的实施例3中,运算处理装置包括:条件标志屏蔽寄存器,其具有与所述多个处理单元的个数相同数量的比特宽度,且各比特与各处理单元一一对应;以及条件标志转换器,(a)在条件标志运算器执行逻辑和运算的情况下,将来自与所述条件屏蔽寄存器的比特的值相对应的处理单元的条件标志的值转换为第一逻辑值,(b)在条件标志运算器执行逻辑乘运算的情况下,将来自与所述条件屏蔽寄存器的比特的值相对应的处理单元的条件标志的值转换为第二逻辑值。
依照以上这点,对实施例3的运算处理装置进行说明。并且,对于与实施例1相同的构成要素采用相同的符号,在此省略其说明。
首先,对实施例3的运算处理装置的构成进行说明。
如图6所示,运算处理装置300与运算处理装置100相比,有以下(1)之处不同。
(1)新增加了条件标志屏蔽寄存器307、条件标志转换器381及382。条件标志屏蔽寄存器307保存设定值。条件标志转换器381及382将选择器125的输出值转换为“0”或“1”的某一个。
接下来,对实施例3的运算处理装置的工作进行说明。在此,作为一个例子,对执行图2A、图2B所示的源代码1生成的指令串11的情况进行说明。
并且,运算处理装置300预先在条件标志屏蔽寄存器307,将与PE102对应的比特设定为“0”,将与PE103对应的比特设定为“1”,在条件标志屏蔽寄存器307中存储的比特的值为“10”。而且,对指令串11仅使用PE102,不使用PE103。
运算处理装置300执行第一指令(001),对寄存器文件121的R0值和立即数“5”进行比较,当比较的结果为R0的值比立即数“5”大的情况下,在第一指令的CF字段中设定的各PE的条件标志寄存器的C0中,存储表示“真”的“1”。另一方面,当R0的值在立即值“5”以下的情况下,在各PE的条件标志寄存器的C0中,存储表示“假”的“0”。此时,将选择器123设定为选择从ALU运算器122传输来的值。
接下来,运算处理装置300执行第二指令(002),根据条件标志屏蔽寄存器307,在各条件标志转换器转换,并在条件标志运算器304执行转换后的各PE的条件标志寄存器的值的逻辑乘运算。通过条件标志传输信号线105将执行的结果存储到各PE的条件标志寄存器的C0中。此时,使用的条件标志寄存器编号是由指令寄存器101的操作数来设定的,并将选择器123设定为通过条件标志传输信号线105选择传输来的值。
在此,在条件标志屏蔽寄存器307,由于将与PE102相对应的比特设定为“0”,因此,PE102的条件标志寄存器124的值不会在条件标志转换器381被转换。并且,执行的指令为逻辑乘运算指令,由于与PE103对应的比特被设定为“1”,因此,PE103的条件标志值在条件标志转换器382被转换为“1”。
接下来,运算处理装置100执行第三指令(003),在指令字的CF字段,将在赋有条件的执行中使用的条件标志寄存器编号设定为C0的情况下,从寄存器文件121中读出R1和R2的值,并在ALU运算器122对读出的R1的值和R2的值进行加法运算,并将运算后的结果存储到寄存器文件121的R2中。此时,条件标志寄存器124的C0的值若为真,即“1”时,则在存储了加法运算后的结果的状态下,通过运算结果更新控制信号线126,将Active信号提供给寄存器文件121。另一方面,条件标志寄存器124的C0的值若为假,即“0”时,则在不存储加法运算后的结果的状态下,提供Negative信号。
接下来,运算处理装置300执行第四指令(004),从寄存器文件121中读出R2的值,在ALU运算器122对读出的R2的值和立即数“1”进行加法运算,并将运算的结果存储到寄存器文件121的R2。
如以上说明,实施例3的运算处理装置300执行第二指令(002),对各PE的条件标志寄存器的值执行逻辑乘运算之前,条件标志转换器382将作为无效数据的PE103的条件标志寄存器134的值,转换为即使执行逻辑乘运算也不会影响到结果的标志值“1”,从而可以仅利用有效的条件标志值来执行逻辑乘运算。
并且,运算处理装置300在PE103的条件标志值有效的情况和无效的情况下,只是通过对条件标志屏蔽寄存器307的值预先进行设定,就可以不必变更指令的发行方法,从而使程序的制作变得容易。
(实施例4)
以下,参照附图对本发明所涉及的实施例4进行说明。
本发明所涉及的实施例4的运算处理装置包括指令发行控制部,该指令发行控制部具有根据条件标志运算器传输来的运算结果来执行条件转移的功能。
依照以上这点,对实施例4的运算处理装置进行说明。而且,对于与实施例3相同的构成要素采用相同的符号,并省略其说明。
首先,对实施例4的运算处理装置的构成进行说明。
如图7所示,运算处理装置400与运算处理装置300相比,有以下(1)~(3)之处不同。
(1)代替指令寄存器101的是具有指令寄存器401,该指令寄存器401,保存从指令发行控制部406传输来的指令;(2)代替条件标志运算器304的是具有条件标志运算器404,该条件标志运算器404也将运算结果传输给指令发行控制部406;(3)新增加了指令发行控制部406,该指令发行控制部406,控制指令的发行,该指令含有赋有条件的转移类指令。根据条件标志运算器404传输来的运算结果发行指令,并将发行的指令传输到指令寄存器401。
并且,对于指令发行控制部406的详细构成是常规技术,在此省略其说明。
接下来,对实施例4的运算处理装置的工作进行说明。在此,作为一个例子,对执行图5A、图5B所示的源代码1所生成的指令串21的情况进行说明。
并且,运算处理装置400预先在条件标志屏蔽寄存器307将与PE102对应的比特设定为“0”,将与PE103对应的比特设定为“1”,在条件标志屏蔽寄存器307中存储值“10”。而且,对指令串21仅使用PE102不使用PE103。
运算处理装置400执行第一指令(001),对寄存器文件121的R0值和立即数“5”进行比较,当比较的结果为R0的值比立即数“5”大的情况下,在第一指令的CF字段中设定的各PE的条件标志寄存器的C0中,存储表示“真”的“1”。另一方面,当R0的值在立即值“5”以下的情况下,在各PE的条件标志寄存器的C0中,存储表示“假”的“0”。此时,将选择器123设定为选择从ALU运算器122传输来的值。
接下来,运算处理装置400执行第二指令(002),根据条件标志屏蔽寄存器307在各条件标志转换器转换,并在条件标志运算器404执行转换后的各PE的条件标志寄存器的值的逻辑乘运算。通过条件标志传输信号线105,将执行的结果存储到各PE的条件标志寄存器的C0中。此时,使用的条件标志寄存器编号,是由指令寄存器101的操作数来设定的,并将选择器123设定为,通过条件标志传输信号线105选择传输来的值。
在此,在条件标志屏蔽寄存器307,由于将与PE102相对应的比特设定为“0”,因此,PE102的条件标志寄存器124的值,不会在条件标志转换器381被转换。并且,执行的指令为逻辑乘运算指令,由于与PE103对应的比特被设定为“1”,因此,PE103的条件标志寄存器134的值在条件标志转换器382被转换为“1”。
并且,运算处理装置400通过条件标志传输信号线105,向指令发行控制部406传输。并且,通过条件标志传输信号线105,向指令发行控制部406传输的条件标志的值为真即“1”的情况下,执行转移处理,将第四指令(004)从指令发行控制部406传输到指令寄存器101,并执行第四指令(004)。另一方面,在通过条件标志传输信号线105向指令发行控制部406传输的条件标志的值为假即“0”的情况下,不执行转移处理,从指令发行控制部406将第三指令(003)传输给指令寄存器101,并执行第三指令(003)。
接下来,运算处理装置400执行第三指令(003),从各PE的寄存器文件121中读出R1和R2的值,在ALU运算器122对读出的R1和R2的值进行加法运算,并将运算的结果存储到寄存器文件121的R2。
接下来,运算处理装置400执行第四指令(004),从各PE寄存器文件121中读出R2的值,在ALU运算器122对读出的R2的值和立即数“1”进行加法运算,并将运算的结果存储到寄存器文件121的R2。
如以上说明,实施例4的运算处理装置400执行第二指令(002),对各PE的条件标志寄存器的值执行逻辑乘运算之前,条件标志转换器382将作为无效数据的PE103的条件标志寄存器134的值,转换为即使执行逻辑乘运算也不会影响到结果的标志值“1”,从而可以仅利用有效的条件标志值来执行逻辑乘运算。
并且,运算处理装置400在PE103的条件标志值有效的情况和无效的情况下,只是通过对条件标志屏蔽寄存器307的值预先进行设定,就可以不必变更指令的发行方法,从而可以快速地执行条件转移。
(变化方案)
而且,处理单元也可以不具有ALU运算器,取而代之的是可以具有其它的运算器,诸如对像素运算或规定的处理进行特殊化的扩展运算器(XU运算器)等。
而且,指令发行控制部还可以另外具有转移类的指令用标志,在发行指令时,可以按照其它的标志来发行指令。
而且,运算处理装置也可以由全定制(full-custom)大规模集成电路(LSI:Large Scale Integration)来实现。并且,也可以由像专用集成电路(ASIC:Application Specific Integrated Circuit)等半定制(semi-custom)LSI来实现。并且,也可以由像用户可编程门阵列(FPGA:Field Programmable Gate Array)、复杂可编程逻辑器件(CPLD:Complex Programmable Logic Device)等可编程逻辑器件(Programmable Logic Device)来实现。并且,也可以由动态可改写电路构成的动态可重构器件(Dynamic Reconfigurable Device)来实现。
而且,在这些LSI上形成构成运算处理装置的一个以上的功能的设计数据,也可以作为一种程序(以下称为HDL程序),该程序是由像甚高速集成电路硬件描述语言(VHDL:Very high speed integratedcircuit Hardware Description Language)、硬件描述语言(Verilog-HDL)、SystemC(一种基于C++语言的用于系统设计的计算机语言)等硬件描述语言所描述的。并且,也可以作为对HDL程序进行逻辑综合而得到的门级(gate level)网表(net list)。并且,也可以作为将配置信息、工艺条件等附加到门级网表的宏单元信息。并且,也可以作为尺寸、时机等所规定的屏蔽数据。
而且,为了能够使计算机系统、编入系统等硬件系统可以读出,也可以是将设计数据预先存储到诸如光学记录介质(例如CD-ROM等)、磁记录介质(例如硬盘等)、光磁记录介质(例如,MO等。)、半导体存储器(例如RAM等)等计算机可读取的记录介质中。并且,通过记录介质由其它的硬件系统读取的设计数据,也可以通过下载缆线,下载到可编程逻辑器件。
或者,也可以将设计数据保存到传输路径上的硬件系统,以便其它的硬件系统能够经由网络等传输路径获得。而且,其它的硬件系统通过传输路径从硬件系统获得的设计数据,也可以通过下载缆线,下载到可编程逻辑器件。
并且,经过逻辑综合、配置、布线的设计数据也可以预先记录到串行ROM,以便通电时能够被传输到FPGA。而且,也可以是在通电时,串行ROM中记录的设计数据被直接下载到FPGA。
并且,也可以是在通电时,经过逻辑综合、配置、布线的设计数据,由微处理器生成并下载到FPGA。
本发明具有条件标志寄存器以及条件执行标志生成选择装置等,可以作为对多个数据高速并高效率地进行相同处理运算的SIMD型运算处理装置等来利用,尤其可以作为用于对静止图像、动态图像等进行图像处理时的SIMD型运算处理装置等来利用。
Claims (5)
1.一种运算处理装置,以一个指令对多个数据进行并行处理,其特征在于,包括:
多个处理单元,根据对指令寄存器中所存储的指令进行评价而获得的结果,执行共通的运算;
条件标志运算器,对各个处理单元中所保存的条件标志执行逻辑运算以及比较运算的任一个,将执行后的结果传输到各个处理单元,并将所述条件标志更新为执行后的结果;
指令发行控制单元,该指令发行控制单元具有根据从条件标志运算器传输来的运算结果来执行条件转移的功能;
条件标志屏蔽寄存器,其具有与所述多个处理单元的个数相同数量的比特宽度,且各比特与各处理单元一一对应;以及
条件标志转换器,在所述条件标志运算器执行逻辑乘运算的情况下,将作为无效数据的处理单元的条件标志的值转换为不影响运算结果的标志值“1”。
2.如权利要求1所述的运算处理装置,其特征在于,
该标志值与所述条件标志屏蔽寄存器的值被设置为屏蔽侧的比特相对应。
3.如权利要求1所述的运算处理装置,其特征在于,各个处理单元还包括:
一个以上的条件标志寄存器,保存所述条件标志;
数据提供装置,提供数据;
数据存储装置,存储对所述数据的运算结果;
运算器,对所述数据提供装置所提供的数据执行规定的运算,并将执行后的结果传输到所述数据存储装置以及所述条件标志寄存器;
第一选择器,从所述条件标志运算器传输来的结果以及从所述运算器传输来的结果中选择任一个,并将选择的结果传输到所述条件标志寄存器;以及
第二选择器,从所述一个以上的条件标志寄存器中选择一个寄存器的值,并将该值传输到所述条件标志运算器,若所述值为1,则将与所述值对应的结果传输到所述数据存储装置;若所述值为0,则不存储与所述值对应的结果。
4.如权利要求1所述的运算处理装置,其特征在于,各个处理单元还包括:
一个以上的条件标志寄存器,保存所述条件标志;
数据记录装置,提供数据,且存储对所述数据的运算结果;
运算器,对所述数据记录装置所提供的数据执行规定的运算,并将执行后的结果传输到所述数据记录装置以及所述条件标志寄存器;
第一选择器,从所述条件标志运算器传输来的结果以及从所述运算器传输来的结果中选择任一个,并将选择的结果传输到所述条件标志寄存器;以及
第二选择器,从所述一个以上的条件标志寄存器中选择一个寄存器的值,并将该值传输到所述条件标志运算器,若所述值为1,则将与所述值对应的结果传输到所述数据记录装置;若所述值为0,则不存储与所述值对应的结果。
5.一种运算处理方法,在具有条件标志运算器、指令发行控制单元、条件标志屏蔽寄存器、条件标志转换器以及多个处理单元的装置中,以一个指令对多个数据进行并行处理,其特征在于,包括:
运算步骤,多个处理单元根据对指令寄存器中所存储的指令进行评价而获得的结果,执行共通的运算;
条件标志运算步骤,条件标志运算器对各个处理单元中所保存的条件标志执行逻辑运算以及比较运算的任一个,将执行后的结果传输到各个处理单元,并将所述条件标志更新为执行后的结果;
指令发行控制步骤,指令发行控制单元根据从条件标志运算器传输来的运算结果来执行条件转移;
条件标志屏蔽寄存步骤,条件标志屏蔽寄存器具有与所述多个处理单元的个数相同数量的比特宽度,且各比特与各处理单元一一对应;以及
条件标志转换步骤,在所述条件标志运算器执行逻辑乘运算的情况下,将作为无效数据的处理单元的条件标志的值转换为不影响运算结果的标志值“1”。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005104107 | 2005-03-31 | ||
JP104107/2005 | 2005-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101111818A CN101111818A (zh) | 2008-01-23 |
CN100552622C true CN100552622C (zh) | 2009-10-21 |
Family
ID=37114796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200580047363XA Active CN100552622C (zh) | 2005-03-31 | 2005-08-24 | 运算处理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8086830B2 (zh) |
EP (1) | EP1870803A4 (zh) |
JP (1) | JP4277042B2 (zh) |
CN (1) | CN100552622C (zh) |
WO (1) | WO2006112045A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4228241B2 (ja) * | 2006-12-13 | 2009-02-25 | ソニー株式会社 | 演算処理装置 |
JP5193624B2 (ja) * | 2008-02-19 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
JP5481793B2 (ja) * | 2008-03-21 | 2014-04-23 | 富士通株式会社 | 演算処理装置および同装置の制御方法 |
JP5463799B2 (ja) * | 2009-08-28 | 2014-04-09 | 株式会社リコー | Simd型マイクロプロセッサ |
US8433885B2 (en) * | 2009-09-09 | 2013-04-30 | Board Of Regents Of The University Of Texas System | Method, system and computer-accessible medium for providing a distributed predicate prediction |
CN101980147B (zh) | 2010-11-04 | 2013-11-27 | 威盛电子股份有限公司 | 多线程处理器及其指令执行与同步方法 |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9032189B2 (en) * | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
JP5610551B2 (ja) * | 2013-02-04 | 2014-10-22 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
CN103645881B (zh) * | 2013-12-13 | 2016-08-24 | 广西科技大学 | 浮点数加/减运算执行控制器 |
CN103853526B (zh) * | 2014-02-20 | 2017-02-15 | 清华大学 | 可重构处理器及可重构处理器的条件执行方法 |
WO2015123848A1 (zh) | 2014-02-20 | 2015-08-27 | 清华大学 | 可重构处理器及可重构处理器的条件执行方法 |
JP5767374B2 (ja) * | 2014-07-30 | 2015-08-19 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
CN104966026A (zh) * | 2015-06-03 | 2015-10-07 | 西安科技大学 | 数学运算系统 |
JP6725482B2 (ja) * | 2017-12-05 | 2020-07-22 | 矢崎総業株式会社 | 演算装置 |
CN113065326B (zh) * | 2021-03-31 | 2024-06-21 | 北京达佳互联信息技术有限公司 | 一种文本比对方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0682309A2 (en) * | 1994-04-28 | 1995-11-15 | International Business Machines Corporation | Data processing system adapted for single instruction branching on multiple condition codes from plural processing elements |
US5815680A (en) * | 1993-09-27 | 1998-09-29 | Ntt Mobile Communications Network, Inc. | SIMD multiprocessor with an interconnection network to allow a datapath element to access local memories |
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
CN1469241A (zh) * | 2002-06-14 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 处理器、程序变换装置和变换方法以及计算机程序 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01116828A (ja) | 1987-10-30 | 1989-05-09 | Hitachi Ltd | データ演算処理装置 |
US5349671A (en) * | 1989-03-23 | 1994-09-20 | Matsushita Electric Industrial Co., Ltd. | Microprocessor system generating instruction fetch addresses at high speed |
JPH0460720A (ja) * | 1990-06-29 | 1992-02-26 | Hitachi Ltd | 条件分岐命令制御方式 |
JP2793342B2 (ja) | 1990-08-09 | 1998-09-03 | 株式会社東芝 | 演算処理装置 |
CA2122139C (en) * | 1991-10-24 | 2000-08-29 | David Leroy Sprague | Data processing system |
JPH05189585A (ja) | 1992-01-14 | 1993-07-30 | Nippon Telegr & Teleph Corp <Ntt> | 並列処理における条件付き演算制御回路 |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JP2806346B2 (ja) | 1996-01-22 | 1998-09-30 | 日本電気株式会社 | 演算処理装置 |
JP3442225B2 (ja) | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US20010049780A1 (en) * | 1998-03-27 | 2001-12-06 | Shreekant Thakkar | Method and apparatus for performing integer operations in response to a result of a floating point operation |
JP4096133B2 (ja) | 1998-04-21 | 2008-06-04 | 日本ケミコン株式会社 | 電解コンデンサ用電解液 |
JP3652518B2 (ja) | 1998-07-31 | 2005-05-25 | 株式会社リコー | Simd方式の演算器及び演算処理装置 |
JP2001265592A (ja) | 2000-03-17 | 2001-09-28 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6677869B2 (en) | 2001-02-22 | 2004-01-13 | Panasonic Communications Co., Ltd. | Arithmetic coding apparatus and image processing apparatus |
JP2004062401A (ja) | 2002-07-26 | 2004-02-26 | Matsushita Electric Ind Co Ltd | 演算プロセッサおよび当該演算プロセッサを用いたカメラ装置 |
JP2004334297A (ja) | 2003-04-30 | 2004-11-25 | Asahi Kasei Corp | 並列演算処理装置及び並列演算処理方法 |
-
2005
- 2005-08-24 WO PCT/JP2005/015361 patent/WO2006112045A1/ja not_active Application Discontinuation
- 2005-08-24 US US11/720,899 patent/US8086830B2/en active Active
- 2005-08-24 CN CNB200580047363XA patent/CN100552622C/zh active Active
- 2005-08-24 EP EP05774894A patent/EP1870803A4/en not_active Withdrawn
- 2005-08-24 JP JP2006520503A patent/JP4277042B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815680A (en) * | 1993-09-27 | 1998-09-29 | Ntt Mobile Communications Network, Inc. | SIMD multiprocessor with an interconnection network to allow a datapath element to access local memories |
EP0682309A2 (en) * | 1994-04-28 | 1995-11-15 | International Business Machines Corporation | Data processing system adapted for single instruction branching on multiple condition codes from plural processing elements |
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
CN1469241A (zh) * | 2002-06-14 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 处理器、程序变换装置和变换方法以及计算机程序 |
Also Published As
Publication number | Publication date |
---|---|
WO2006112045A1 (ja) | 2006-10-26 |
EP1870803A1 (en) | 2007-12-26 |
JP4277042B2 (ja) | 2009-06-10 |
US8086830B2 (en) | 2011-12-27 |
CN101111818A (zh) | 2008-01-23 |
EP1870803A4 (en) | 2008-04-30 |
JPWO2006112045A1 (ja) | 2008-11-27 |
US20090228691A1 (en) | 2009-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100552622C (zh) | 运算处理装置 | |
US7779380B2 (en) | Data processing apparatus including reconfigurable logic circuit | |
Dennl et al. | On-the-fly composition of FPGA-based SQL query accelerators using a partially reconfigurable module library | |
KR100638703B1 (ko) | 데이터 프로세싱 시스템용 셀룰러 엔진 | |
US6041399A (en) | VLIW system with predicated instruction execution for individual instruction fields | |
JP5431044B2 (ja) | 浮動小数点実行ユニットを用いる回路装置、集積回路装置、プログラム製品、および方法(動的値域調整浮動小数点実行ユニット) | |
US20080263332A1 (en) | Data Processing Apparatus and Method for Accelerating Execution Subgraphs | |
US9740488B2 (en) | Processors operable to allow flexible instruction alignment | |
JP7245833B2 (ja) | 構成可能なハードウェアの実行時の最適化 | |
US9933996B2 (en) | Selectively combinable shifters | |
CN113672285A (zh) | 针对轻量级处理器核心的风险减轻 | |
Klauer | The convey hybrid-core architecture | |
US11263014B2 (en) | Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry | |
KR20240038109A (ko) | 분산 레지스터 파일을 사용한 병렬 처리 아키텍처 | |
Lisa et al. | Column Scan Optimization by Increasing Intra-Instruction Parallelism. | |
Page | Parameterised processor generation | |
JP2002318687A (ja) | 情報処理装置及び計算機システム | |
Arthi et al. | MicroWIP325: A Low-Area Architectural Design and Analysis of Processors for Wearable Technologies | |
Johnston | Shared instruction-set extensions for soft multiprocessor systems implemented on field-programmable gate arrays | |
Vitkovskiy | Memory hierarchy and data communication in heterogeneous reconfigurable SoCs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151027 Address after: Kanagawa Patentee after: Co., Ltd. Suo Si future Address before: Osaka Japan Patentee before: Matsushita Electric Industrial Co., Ltd. |