CN101320324A - 处理机装置及复合条件处理方法 - Google Patents
处理机装置及复合条件处理方法 Download PDFInfo
- Publication number
- CN101320324A CN101320324A CNA2008101084827A CN200810108482A CN101320324A CN 101320324 A CN101320324 A CN 101320324A CN A2008101084827 A CNA2008101084827 A CN A2008101084827A CN 200810108482 A CN200810108482 A CN 200810108482A CN 101320324 A CN101320324 A CN 101320324A
- Authority
- CN
- China
- Prior art keywords
- condition
- mentioned
- branch
- compound
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 5
- 239000002131 composite material Substances 0.000 title 1
- 238000012545 processing Methods 0.000 claims abstract description 28
- 150000001875 compounds Chemical class 0.000 claims description 294
- 230000000052 comparative effect Effects 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 7
- 230000004087 circulation Effects 0.000 description 17
- 230000015572 biosynthetic process Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 8
- 238000011282 treatment Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013517 stratification Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种抑制循环数及指令长度的增大、使条件分支处理高速化的处理机装置,公开的处理机装置中,作为指令组包括:复合条件分支指令,进行和一个或多个条件的每一个对应的比较运算,根据上述比较运算的结果与指定的分支条件值之间的比较运算,向指定的分支目的地分支;以及设定上述条件的条件设定指令,上述处理机装置具有:复合条件设定存储部(1),存储由条件设定指令指定的复合条件;条件比较部(2),具有复合条件分支指令执行时,比较复合条件设定存储部(1)中由复合条件分支指令指定的复合条件的各条件的多个比较器;复合条件分支判断部(3),利用对由上述条件比较部(2)的多个比较器进行的比较运算的结果与由复合条件分支指令指定的分支条件值进行比较而得到比较结果,判断是否分支到上述分支目的地。
Description
技术领域
本发明涉及到一种对指令进行提取、译码并执行的处理器,尤其涉及到一种复合条件分支处理的方法和装置。
背景技术
作为这种复合条件处理方法,如专利文献1公开了以下构造:作为并行处理多个指令的构造具有:根据多个比较指令的执行结果的真伪值可独立且并行地设置/重置位的标记寄存器单元;逻辑积单元,取得该标记寄存器单元的保持内容与由条件分支指令指定的屏蔽值的每个位的逻辑积;指令提取地址选择单元,根据逻辑积单元的输出值是否是0,将上述条件分支指令指定的分支目的地地址或同一指令的下一指令地址,作为接着应执行的指令地址选择,将由屏蔽值指定的标记寄存器的各个位位置的位状态作为复合条件,决定是否执行分支。
在专利文献1所述的并行处理装置中,通过具有多个比较指令译码器,同时执行多个比较指令,将执行结果存储到标记寄存器,根据标记寄存器的状态进行条件分支。
首先,对专利文献1所述的复合条件处理方式进行概述。作为程序,以C语言程序:
if(X>1 && X<10 && X!=5)
{复合条件成立时的处理}
所对应的汇编指令(编译结果)为例进行说明。此外,C语言的上述程序中,当三个条件X>1和X<10及X!=5全部成立时(&&表示AND运算),执行以下指令,即{复合条件成立时的处理},当三个条件中的某一个不成立时,进行分支,以不执行{复合条件成立时的处理}。根据专利文献1,C语言的上述程序的编译结果如下:
SLE X,1,0 SGE X,10,1 SEQ X,5,2
BNZ 7,$1
(复合条件成立时的处理)
&1:(分支目的地的处理)
在第1个比较指令SLE X,1,0,…中,进行复合条件的比较运算。SLE比较指令为“SLE A,B,C”形式,是比较A和B,当A<=B时,将标记寄存器的位C(0~3位的某一个)设置为“1”,否则,设置为“0”的比较指令。SGE比较指令为“SGE A,B,C”形式,是比较A和B,当A>=B时,将标记寄存器的位C(0~3位的某一个)设置为“1”,否则,设置为“0”的比较指令。SEQ比较指令为“SEQ A,B,C”形式,是比较A和B,当A=B时,将标记寄存器的位C(0~3位的某一个)设置为“1”,否则,设置为“0”的比较指令。
在第2个条件分支指令BNZ7,$1中,进行复合条件的比较运算结果与分支条件值(屏蔽值)“7”的位运算,如条件不成立,跳到地址$1。BNZ条件分支指令为“BNZ M,L”形式,取M(4位屏蔽值)和标记寄存器的对应位的逻辑积,零判断电路判断逻辑积结果是否全部为“0”,全部为“0”时,输出“1”,否则输出“0”,将零判断电路的输出信号(零/非零判断结果)作为分支成立/分支不成立信号输出,分支成立时,分支为L指定的地址。此外,BNZ7,$1中,屏蔽值为“0111”,标记寄存器的位0~3中,进行和位0~2的值对应的条件分支。
这样,使用比较指令SLE X,1,0,…和条件分支指令BNZ的二个指令。
在该程序例中,表示了当对于值X(相当于寄存器)的三个比较条件(X>1、X<10、X!=5)中的任意一个不成立时,即,根据汇编码,三个比较条件(X<=1、X>=10、X=5)的任意一个成立时,跳到分支目的地$1的情况。但也可通过进行比较结果的反转而全部设为OR条件。
此外,专利文献2公开了如下构造:廉线寄存器(pipeline register)利用输出的指令,通过条件值选择器选择用于选择外部状态信号的值、及用于代码控制的值,使用所选择的值,从外部状态信号通过条件代码选择器选择信号,通过在代码控制器中进行极性判断,次地址选择器可选择非分支地址或分支地址进行输出,因此在变更程序顺序的分支条件或极性判断条件时,不用变更指令存储器的指令语言,仅变更条件寄存器的内容即可变更分支条件或极性判断条件。
日本专利文献1:特开平5-274143号公报
日本专利文献2:特开平6-290044号公报
发明内容
专利文献1所述的复合条件处理方式在仅运算一次复合条件时不会有问题。但当用于反复执行相同条件的循环处理时,存在以下问题(以下是本发明人的分析结果)。
问题1,由于需要以组执行复合条件的比较指令和条件分支指令,因此每次在条件分支处理中,需要二个步骤的执行循环。对此进行如下说明。
在专利文献1所述的复合条件处理方式中,如图11所示,需要二个指令的循环数。此外,图11是本发明人为了说明专利文献1所述的复合条件处理方式的动作而制作的。
在图11所示的例子中,每一次需要比较指令(SLE X,1,0,…)和条件分支指令(BNZ)的二个指令的、6次循环(F(指令提取)、D(指令译码)、EX(执行)、F、D、EX)(参照图11的8-1、8-2、8-3等)。在复合条件的比较指令(SLE X,1,0,…)中,并行执行与复合条件的各条件对应的比较运算,将比较运算结果设定到标记寄存器的指定位,在条件分支指令(BNZ)中,根据标记寄存器的值和屏蔽值的逻辑运算结果,进行分支判断。因此,在专利文献1所述的复合条件处理方式中,指令分为比较指令和条件分支指令这二个,因此指令提取和指令译码的循环至少需要二次,循环次数增加,在循环处理下的循环次数的增大变得明显,成为限速的主要原因。
问题2,在专利文献1所述的复合条件处理方式中,比较指令是对所有复合条件以一个指令并行执行的构成,为了表示多个条件,指令长度变大。
例如,在比较指令
SLE X,1,0SGE X,10,1SEQ X,5,2中,
●指令代码8位(假定为具有256种指令的处理器),
●比较器种类为6种,因此比较器种类选择需要3位,
●操作数X从16个寄存器中选择一个时,寄存器选择需4位,
●操作数的条件值(例如“SLE X,1,0”的1对应于比较条件X<=1中的右边的1)可指定为0~15,需4位,
●操作数的标记寄存器内的位的位置指定(位0~3的任意一个)为2位,
共计需要:
8+4+(3+4+2)×3=39位(参照表1)。
表1
指令代码 | 寄存器 | 比较器0 | 条件值0 | 标记位1 | 比较器1 | 条件值1 | 标记位2 | 比较器2 | 条件值2 | 标记位3 |
8bit | 4bit | 3bit | 4bit | 2bit | 3bit | 4bit | 2bit | 3bti | 4bit | 2Bit |
X | LE | 1 | 0 | GE | 10 | 1 | EQ | 5 | 2 | |
XXXXXXXX | XXXX | 011 | 0001 | 00 | 101 | 1010 | 01 | 000 | 0101 | 10 |
因此,指令长度之所以变长,是因为在专利文献1的并行处理机装置中,用一个指令(比较指令)指定全部复合条件。
本申请公开的发明为了解决上述课题,其概要构成如下。
本发明的一个侧面涉及的装置中,作为指令组,根据条件成立的有无,包括分支/不分支到分支目的地的条件分支指令和设定上述条件的条件设定指令。在本发明中具有:条件设定存储部,上述条件设定指令执行时,存储由上述条件设定指令指定的条件;条件比较部,上述条件分支指令执行时,进行上述条件设定存储部中存储的条件中由上述条件分支指令选择的条件所对应的比较运算;以及分支条件判断部,根据上述条件比较部中的比较运算结果,判断是否向分支目的地分支。
在本发明中,上述条件分支指令作为分支判断用的条件,由含有多个条件构成的复合条件的复合分支条件指令构成。在本发明中,上述条件设定存储部具有至少一个存储构成上述复合分支条件指令的复合条件的多个条件的复合条件存储部,并且具有使由上述复合分支条件指令指定的复合条件存储部有效的电路。在本发明中,上述条件比较部也可以在上述复合条件分支指令执行时,对由上述复合条件分支指令指定的复合条件存储部中保持的多个条件的每一个进行比较运算。
在本发明中,上述条件比较部具有多个比较器,并行比较由上述复合条件分支指令指定的复合条件存储部的多个条件。在本发明中,上述分支条件判断部根据上述多个比较器的比较结果,判断是否向分支目的地分支。
在本发明中,上述条件设定指令由操作数指定上述条件设定存储部的复合条件存储部中,使用哪个复合条件存储部,在上述复合条件存储部中设定第几个条件。
在本发明中,处理器中,作为指令组,包括:复合条件分支指令,其进行和构成指定的复合条件的多个条件的每一个对应的比较运算,根据上述比较运算的结果与指定的分支条件值之间的比较运算,进行分支到指定的分支目的地的处理;以及条件设定指令,在复合条件、及构成该复合条件的多个条件中,指定是哪一个条件,进行设定上述条件的处理。在本发明中,处理器具有:复合条件设定存储部,存储通过多个上述条件设定指令的执行而设定的多个条件所构成的复合条件;条件比较部,上述复合条件分支指令执行时,在上述复合条件设定存储部中存储保持的复合条件中,对构成由上述复合条件分支指令指定的复合条件的多个条件的每一个,进行比较运算;以及复合条件分支判断部,利用将由上述条件比较部进行的比较运算的结果与由上述复合条件分支指令指定的上述分支条件值进行比较的结果,判断是否向上述分支目的地分支。
在本发明涉及的方法中,指令组中,根据条件成立的有无,包括:分支/不分支到分支目的地的条件分支指令和存储上述条件的条件设定指令,为了多个条件的设定,通过多次执行上述条件设定指令将多个条件存储到存储部,
上述条件分支指令执行时,在通过上述条件设定指令提前存储的多个上述条件中,对通过上述条件分支指令选择的条件进行比较运算,
根据上述比较运算结果,判断是否向分支目的地分支。
在本发明涉及的方法中,上述条件分支指令由含有多个条件构成的复合条件在内的复合分支条件指令构成,用于分支判断,
通过执行多个上述条件设定指令,以构成上述复合分支条件指令的复合条件的多个条件作为1组,存储1组或多组,
上述复合条件分支指令执行时,选择由上述条件分支指令提前设定的复合条件中、由上述复合分支条件指令指定的复合条件,执行构成所选择的复合条件的多个条件的每一个所对应的比较运算,根据多个条件的比较运算的结果,进行分支判断,
上述复合条件的条件分支处理可通过一个复合条件分支指令执行。
根据本发明,通过执行条件设定指令,提前存储条件,在条件分支指令中,选择提前设定的条件,通过这种构成,可抑制循环数、指令长度的增大,使条件分支处理高速化。根据本发明,反复执行同一条件的处理的次数越多,处理性能的提高效果越大。
附图说明
图1是表示本发明的一个实施例的构成的图。
图2是表示本发明的一个实施例中的复合条件存储部的构成的图。
图3是表示本发明的一个实施例中的条件比较部及其相关部分的构成的图。
图4是表示本发明的一个实施例中的复合条件分支判断部及其相关部分的构成的框图。
图5是表示在本发明的一个实施例中使用了条件设定指令和复合条件分支指令的程序示例的图。
图6是表示在本发明的一个实施例中使用了条件设定指令和复合条件分支指令的程序示例的图(其1)。
图7是表示在本发明的一个实施例中使用了条件设定指令和复合条件分支指令的程序示例的图(其2)。
图8是表示本发明的一个实施例中的比较运算结果和分支条件值的位的对应的图。
图9是表示本发明的一个实施例的动作的时序图。
图10是说明比较例的构成和条件分支指令的图。
图11是说明专利文献1的动作的时序图。
具体实施方式
在本发明中,通过条件设定指令存储多个复合条件(也可存储一个复合条件),在存储的复合条件中,在复合条件分支指令执行时调用任意的复合条件,可执行条件分支处理。通过上述构成,可适用于较复杂的条件、多重循环处理等,使条件分支高速化。
本发明涉及的处理机装置的形态之一中,作为指令组包括:
(A)复合条件分支指令,其进行构成指定的复合条件的多个条件的每一个所对应的比较运算,根据上述比较运算的结果与指定的分支条件值之间的比较运算,进行分支到指定的分支目的地处理;
(B)条件设定指令,指定是复合条件和构成该复合条件的多个条件中的哪一个条件,进行设定上述条件的处理。
在本发明涉及的处理机装置中,作为执行由指令译码器译码的指令的执行部,具有:复合条件设定存储部(1),存储一组或多组由上述条件设定指令指定的复合条件;条件比较部(2),上述复合条件分支指令执行时,对于构成上述复合条件设定存储部(1)中存储保持的复合条件中由上述复合条件分支指令指定的复合条件的多个条件的每一个,进行比较运算;复合条件分支判断部(3),利用对由上述条件比较部(2)进行的比较运算的结果与由上述复合条件分支指令指定的上述分支条件值进行比较的结果,判断是否向上述分支目的地分支。
在本发明中,上述条件设定指令也可以使操作数含有:
上述复合条件设定存储部中的复合条件的存储目的地的指定信息以及构成复合条件的多个条件中的第几个条件的指定信息;
比较运算的种类;
比较运算对象的运算用寄存器的寄存器地址或上述运算用寄存器的寄存器地址和立即数数据。
在本发明中,上述复合条件分支指令也可以使运算码含有比较运算的种类(和复合条件的多个条件相关的多个比较运算结果的比较运算的种类、NE、EQ等),
可使操作数含有:上述复合条件设定存储部中的复合条件的存储目的地的指定信息;上述分支条件值;以及上述分支目的地。
在本发明中,复合条件设定存储部(1)具有多个复合条件存储部(图2的100、200、300、400),该复合条件存储部与构成复合条件分支指令的复合条件的多个条件的个数对应,具有将以由以下构成的条件作为1组存储的条件存储部(101、102、103):
比较对象的二个运算用寄存器的第1及第2地址;
立即数数据;
存储运算用寄存器的数据之间的比较运算、或运算用寄存器的数据与立即数数据之间的比较运算的种类的标记;以及
比较器的运算的种类。
复合条件存储部(图2的100、200、300、400)的每一个具有选择由上述条件设定指令指定的条件存储部的选择器(104)。
复合条件设定存储部(1)具有选择多个复合条件存储部(图2的100、200、300、400)中、由复合条件分支指令指定的复合条件所对应的复合条件存储部的选择器(500)。选择器(500)也进行由条件设定指令指定的复合条件存储部的选择。此外,在复合条件设定存储部(1)中,根据程序构造,存在不使用全部的四个复合条件存储部(图2的100、200、300、400)、而使用一个或二个复合条件存储部进行处理的情况。当具有四个复合条件存储部时,可将四个不同的复合条件在复合条件分支指令执行前存储保持。并且,条件存储部(101、102、103)的存储内容基本上保持到以下一个条件设定指令进行改写为止。
条件比较部(2)对应于上述复合条件存储部的条件存储部(101、102、103),具有以下的组(图3的201、202、203):
第1及第2译码器(图3的201a、201b),将条件存储部(例如图3的101)中存储的上述第1及第2地址译码,将第1、第2寄存器地址分别输出到上述运算用寄存器,并且分别保持从上述运算用寄存器读出的数据;
选择器(图3的201c),接收上述复合条件存储部中存储的立即数数据以及上述第2译码器的值,根据上述标记的输出来选择其中一个;
比较器(201d),将上述第3选择器的输出和上述第1译码器的输出作为输入接收,进行和上述复合条件存储部中存储的运算种类对应的运算。
在上述复合条件设定存储部中,通过上述条件设定指令的执行而存储的条件在上述条件设定指令之后执行其它的条件设定指令,通过上述其它的条件设定指令再次选择上述条件设定比较部,改写为其它的条件。
进一步具有:第4选择器(10),根据反映算术逻辑运算装置(图1的7)中的运算结果的标记寄存器(图1的8),进行条件判断的条件分支判断部(9)的输出和来自上述复合条件分支判断部(3)的输出与输入连接,通过指令译码器(4)译码的条件分支指令是上述复合条件分支指令时,选择来自上述复合条件分支判断部的输出,为上述复合条件分支指令以外的条件分支指令时,选择上述条件分支判断部的输出;以及选择器(11),接收从选择器(10)输出的结果的真伪值,为真时,选择由指令译码器(4)译码的条件分支指令所指定的分支目的地地址,为伪时,选择使当前的程序计数器(12)的值+1的地址,设定到程序计数器(12)。以下参照实施例进行说明。
(实施例)
图1是表示本发明的一个实施例的构成的图。参照图1,本实施例的个人计算机具有:复合条件设定存储部1,可存储多个复合条件;条件比较部2,对复合条件的每个条件进行比较运算;复合条件分支判断部3,判断在复合条件分支指令中是否进行程序的分支;指令译码器4,保持及解析指令代码,控制与该指令相关的块;存储有指令代码的指令存储器5;处理器为了进行运算而使用的通用的运算用寄存器组6;进行和运算指令对应的算术运算、逻辑运算等的运算单元(ALU)7;保持根据运算单元的运算结果而生成的各种标记的标记寄存器8;条件分支判断部9,判断在条件分支指令中是否进行程序的分支;选择器10,通过条件分支指令、或复合条件分支指令选择输入值;选择器11,根据选择器10的值,选择分支目的地地址或下一指令的地址(当前的程序计数器的值PC+1);程序计数器(PC)12,表示处理器的指令执行位置。
在此,为了便于理解本发明,利用图10所示的比较例(参考例),不对参照专利文献1等说明的非复合条件分支,而对通常的条件分支动作进行说明。条件分支如图10(b)所示,首先执行算术运算指令(ADDr1,5)、比较指令(CMP r1 100)这样的指令(i),之后进行条件分支指令(BEQ L1)(ii)。对该动作参照图10(a)的框图进行说明。
首先,从程序计数器(PC)12的值所示的指令存储器5的地址,将数据、即指令代码提取到指令译码器4。
该指令是比较指令(图10(b)的CMP r1,100(i))。
指令译码器4解析指令代码,将运算代码(CMP)和操作数(r1和100)传送到运算单元(ALU)7。
通过运算单元7内的运算器7a从运算用寄存器6读出第1个寄存器(r1)的值,与值100(立即数数据)进行比较运算。
根据该运算结果,标记生成部7b计算各种标记值,存储到标记寄存器8。图10中的标记Z、S、E、C、O如下所示。
标记Z是Zero标记,运算结果为0时取1,为0以外时取0的值。
标记S是Sign标记,运算结果为负值时取1,为正时取0。
标记E是Even标记,运算结果为偶数时取1,奇数时取0。
标记C是Carry标记,运算结果进退位时取1。
标记O是Overflow标记,运算结果溢位时取1。
指令译码器4判断该比较指令是不伴随分支的指令,并进行控制使选择器选择伪(F)。
这样一来,下一个地址的指令被提取到指令译码器4。
下一个指令是条件分支指令(图10的(b)的BEQ L1(ii))。
指令译码器4解析指令代码,将运算代码(BEQ)传送到条件分支判断部9,将操作数(L1)、即分支目的地地址输出到选择器11(该值由指令译码器4内的寄存器保持)。
条件分支判断部9从运算代码的种类中选择Zero标记,Zero标记的值为1时(EQ成立),将真(T)输出到选择器11,Zero标记的值为0时(EQ不成立),将伪(F)输出到选择器11。
其中,在选择器11中,当条件分支判断部9的结果是真(T)时,选择分支目的地地址(L1),接着执行位于该分支目的地的指令。并且,为伪(F)时,选择“PC+1”,执行下一地址的指令。
因此,通常的条件分支提前进行算术逻辑运算指令、比较指令等,在标记寄存器8中存储用于进行条件分支的信息,在之后执行的条件分支指令中,将存储在标记寄存器8中的值参照由指令代码指定的分支条件进行评价,判断是否进行分支。即,算术逻辑运算指令或比较指令与条件分支指令这二个指令成对地执行。这种情况下,在循环内执行通常的条件分支时,总是执行二个指令。
接着说明本发明中的复合条件分支指令的动作。在本发明的一个实施例中,如图1所示,向图10(a)的构造中,作为指令组,追加条件设定指令、复合条件分支指令(指令译码器构成为可解析这些追加指令),作为执行追加的指令(条件设定指令、复合条件分支指令)的执行部,具有:复合条件设定存储部1、条件比较部2、复合条件分支判断部3、选择复合条件分支判断部3和条件分支判断部9的判断结果的选择器10。
图2是表示图1所示的复合条件设定存储部1的构成的图。参照图2,复合条件设定存储部1分别具有:复合条件存储部100、200、300、400,存储复合条件分支指令的分支判断所使用的复合条件;选择器500,选择使多个复合条件存储部100~400中的哪一个有效。
复合条件存储部100具有:存储构成复合条件的多个条件中的第1个条件的条件存储部101、存储构成复合条件的多个条件中的第2个条件的条件存储部102、存储构成复合条件的多个条件中的第3个条件的条件存储部103;以及选择使多个条件存储部101~103中的哪一个有效的选择器104。此外,在图2中,为了简便,未图示复合条件存储部200、300、400的内部构造,但它们均是与复合条件存储部100相同的构造。
在条件存储部101中:
r101a是存储运算用寄存器6的第1寄存器地址的寄存器,
r101b是存储运算用寄存器6的第2寄存器地址的寄存器,
r101c是存储立即数数据的寄存器,
r101d是存储R/I标记的寄存器(R=Register:寄存器地址,I=Immediate:立即数)
r101e是存储比较器的运算种类的寄存器。
图3是表示图1的条件比较部2的构造的图。在本实施例中,条件比较部2具有进行比较运算的三个条件比较部201、202、203,分别对应于条件存储部101、102、103。
条件比较部201具有:
译码器201a、201b,接收来自存储运算用寄存器6的寄存器地址的、复合条件存储部100的条件存储部101的寄存器(也称为地址寄存器)r101a、r101b的地址并译码,选择运算用寄存器6的寄存器;选择器201c,将复合条件存储部100的条件存储部101的R/I标记r101d的值作为选择控制信号输入,输入来自复合条件存储部100的条件存储部101的寄存器r101c的立即数和译码器201b的输出,并选择其中任意一个;以及比较器201d,对运算用寄存器6内的寄存器值(译码器201a的输出r1)和从译码器201c输出的值r12进行比较运算。此外,在图3中,为了简便,未图示条件比较部202、203的内部构造,但它们均是和条件比较部201相同的构造。
在本发明中,在处理器的指令组中重新准备条件设定指令、复合条件分支指令。
条件设定指令是设定进行比较运算的条件的指令,在汇编的助记码中表示如下:
SETCMP s0,c0,r1,L,r11...(1)
“SETCMP”表示条件设定指令的名称。
“s0”表示第1个复合条件设定,表示复合条件设定存储部1中的复合条件存储部100(参照图2)。同样,“s1”、“s2”、“s3”分别对应于复合条件设定存储部1中的复合条件存储部200、300、400(参照图2)。
“c0”表示第1个条件,表示条件存储部101(参照图2)。
“c1”、“c2”分别对应于条件存储部102、103(参照图2)。
“r1”及“r11”表示运算用寄存器6内的寄存器地址1及11的寄存器。
“L”表示比较r1和r11时使用的比较运算器的种类“<”(Less)。
图2中示意性地表示:在指令译码器4中解析上述(1)的条件设定指令的指令代码,并分解为位串的状态。
即,“s0”(00b)(b表示2进制)输入到选择器500,选择器500选择复合条件存储部100。
“c0”(00b)输入到选择器104,选择器104选择条件存储部101。
“r1”(0001b)输入到寄存器r101a中并被保持。
“r11”(1011b)输入到寄存器r101b中并被保持。
R/I标记(0b)输入到寄存器r101d中并被保持。
比较器的种类“L”(010b)输入到寄存器r101e中并被保持。
这种情况下,图2的条件存储部101(选择器104选择条件存储部101)的寄存器r101a、r101b、r101d、r101e中分别存储保持二进制值的1、11、0、以及和2项运算符“<”对应的符号。立即数r101c不设定值。
这些值只要之后对于同一场所的条件存储部的条件设定指令不被执行就被保持。
复合条件分支指令是:进行由条件设定指令设定的各条件的比较运算,进行其结果与分支条件值的比较运算的指令,在汇编的助记码中如下表示。
XBNE s0,0111b,L1...(2)
“XBNE”是复合条件分支指令的名称,“NE”部分表示比较运算器的种类“!=”。此外,开头的“X”表示通常的条件分支指令BNE的扩张指令(复合条件分支指令)。
“s0”表示第1个复合条件设定,表示选择图2的复合条件存储部100。
“0111b”是分支条件值,以2进制表示进行与各条件的比较运算结果的比较的值。
“L1”表示条件分支的判断结果为真时分支的、程序的分支目的地地址。
图4表示如下状态:在指令译码器4中,解析上述(2)的复合条件分支指令的指令代码,分解为位串的状态。
“s0”(00b)输入到选择器500,选择器500选择复合条件存储部100。这样一来,条件存储部101、102、103中分别存储的值(寄存器地址、立即数、R/I标记、比较器选择)分别输入到条件比较部201、202、203,条件比较部201、202、203中的比较运算结果C0、C1、C2分别作为2a、2b、2c输出到复合条件分支判断部3。
在复合条件分支判断部3中,分支条件值3a和比较运算结果2a、2b、2c通过比较器3c比较运算,结果(真(T)/伪(F))输出到选择器10。
比较器3c中,“0111b”作为分支条件值3a从指令译码器4输入。作为运算种类3b输入“NE”(NOT EQUAL、表示为“!=”)。
分支条件值“0111b”和比较运算结果2a、2b、2c为“NE”(NOTEQUAL)时,比较器3c的输出为真(T)。
其中,比较运算结果2a、2b、2c如图8(a)所示,与分支条件值3a的各个位0、1、2建立对应。此外,分支条件值3a的值为“0111b”时,如图8(b)所示。
指令译码器4在复合条件分支指令(“XBNE”等,“X”开始的助记符)时,将输出信号10a的值1(2进值)作为选择控制信号输出到选择器10。因此,复合条件判断部3中的比较运算结果从选择器10直接输出到选择器11。
另一方面,当是通常的条件分支指令时,指令译码器4将0作为信号10a输出到选择器10,选择器10选择条件分支判断部9的输出,输出到选择器11。条件分支判断部9对通常的分支指令进行条件分支判断,该条件分支判断和运算单元7中的设定了运算结果的标记寄存器8相关。
当复合条件分支判断部3中的比较运算结果为真(T)时,选择器11选择分支目的地地址“L1”,设定到程序计数器12。因此,在下一循环中,位于分支目的地地址“L1”的指令被提取,输入到指令译码器4中并被执行。
当复合条件分支判断部3中的比较运算结果是伪(F)时,选择器11选择“PC+1”,设定到程序计数器12。因此,地址“PC+1”的指令被提取、译码、执行。
这样一来,复合条件分支指令选择复合条件设定存储部1中存储的特定的复合条件,并同时评价比较运算,通过一个指令执行是否进行分支的的判断。
参照图9的时序图说明本实施例中的复合条件分支指令的动作。
图9的指令循环6-1中的第1次复合条件分支指令:
XBNE s0,0111b,L1中,
通过指令提取循环F,指令代码从指令存储器5读入到指令译码器4。
通过下一指令译码循环D,读入的指令代码由指令译码器4如图4所示被解析。
在指令译码器4中,XBNE的“NE”(!=)是“001b”,设定到比较器3c。并且由于是复合条件分支指令,将输出信号10a的值1(2进值)作为选择控制信号输出到选择器10。通过第1次的复合条件设定,“00b”被提供到复合条件设定存储部1的选择器500。分支条件值“0111b”作为“0111b”设定到比较器3c。“L1”作为“XXXXXXXXb”(表示跳跃目的地地址L1的值),输出到选择器11。
在指令执行循环EX(6-A)中,对应于复合条件的三个条件,在条件比较部2的比较比较部201、202、203(参照图3)中,利用指定运算用寄存器6的寄存器的条件存储部101、102、103的寄存器r101a、r101b,译码器201a、201b从运算用寄存器6中,读出对应的运算用寄存器6的值,进行第1次复合条件设定的复合条件的比较运算,从条件比较部2的比较比较部201、202、203分别输出比较运算结果c0、c1、c2。在后续指令执行循环EX(6-B)中,在比较器3c中,使比较运算结果(c0、c1、c2)=(1、0、0)与分支条件值“0111b”比较,由于比较运算结果c0、c1、c2不全是1,因此条件NE(!=)成立,比较器3c输出真(T),选择器11输出跳跃目的地地址L1。在下一指令提取循环(6-C)中,提取程序计数器(PC)12中设定的跳跃目的地地址L1的指令。
在图9的指令循环6-2中的第2次复合条件分支指令:
XBNE s0,0111b,L1
的指令执行循环EX(6-D)中,比较比较部201、202、203的比较运算结果(c0、c1、c2)变为(1、1、1)。在后续指令执行循环EX(6-E)中,比较器3c与分支条件值“0111b”比较,由于比较运算结果c0、c1、c2全为1,因此条件NE不成立,比较器3c输出伪(F),选择器11输出下一地址n+1。在下一指令提取循环(6-F)中,提取程序计数器(PC)12中设定的地址n+1的指令。
图5表示在本实施例中仅使用1个复合条件的程序示例。提前通过上述(1)的条件设定指令设定三个条件(复合条件)(图5(a))。在图5中,“//”是注释记号,右栏是注释。
在图5(a)中,SETCMP s0,c0,r1,L,r11选择图1的复合条件存储部100、条件存储部101,设定存储r1<r11的比较运算。
SETCMP s0,c1,r2,GE,10选择图1的复合条件存储部100、条件存储部102,设定存储r2≥10的比较运算。
SETCMP s0,c2,r3,EQ,13选择图1的复合条件存储部100、条件存储部102,设定存储r3=R13的比较运算。
接着,在进行了使这些条件变化的某些处理后,执行上述(2)的复合条件分支指令(图5(b))。
其中,当复合条件、条件c0、c1、c2未全部成立时,跳到标签L1,反复进行处理(参照指令XBNE s0,0111b,L1)。
图6及图7中表示在本实施例中使用多个复合条件的程序的示例。此外,图6及图7因制图而分开,图7的最上行的指令(LD r10,0)紧接图6的最下行的指令(SETCMP s3,c2,r6,NE,4)。
使用三个条件设定指令(SETCMP)如图6(a)所示设定第1复合条件。图6(a)的三个条件设定指令(SETCMP)均指定复合条件设定存储部1的复合条件存储部100,在复合条件存储部100内的条件存储部101、102、103(参照图2)中设定各条件并被存储保持。
同样,使用三个条件设定指令如图6(b)、图6(c)、图6(d)所示设定第2~4的复合条件。在图6(b)、图6(c)、图6(d)中,由三个条件设定指令(SETCMP)设定的复合条件在复合条件设定存储部1的复合条件存储部200、300、400内的条件存储部101、102、103(参照图2)中设定并被存储保持。
复合条件设定指令例如如图7(e)所示。和该汇编语言对应的C语言的源程序如图7(f)所示。
以下说明图7(e)的汇编语言的源、图7(f)的C语言的源的步骤概要。循环(do循环)前使运算用寄存器6的r10为0。在do循环中,首先在处理A(更新r1~r3,r11,r13的值的处理)后,判断复合条件(r1<r11)且(r2≥10)且(r3==r13)(条件s0c0、s0c1、s0c2)是否成立,当成立时,执行处理B。当该复合条件不成立时,(r2==0)(条件s1c0)、(r4>r12)且(r4!=r14)(条件s1c1、s1c2)成立时,执行处理C。
(r2==0)不成立时,(r2=5)(条件s2c0)成立时,执行处理D,接着,判断(r5≥3)且(r5<12)是否成立,当成立时,执行处理E,不成立时,判断(r6≥1)且(r6<10)且(r6!=4)是否成立,当成立时,执行处理F,之后执行处理G,接着只要do循环的Exit条件(r10==0)成立,重复从标签L_LOOP开始的处理。此外,运算用寄存器6的r10在处理A至G中被更新。
根据本实施例,通过图7(e)所示的汇编程序,可高速处理图7(f)所示的复杂的条件判断。即,在进行图7(f)这样的复杂的条件判断分支处理时,在本实施例中,将复合条件通过图6(a)至(d)的条件设定指令,事前存储到复合条件设定存储部1,从而例如无需在循环处理内插入由条件分支指令、及该条件分支指令前放置的设定该条件分支指令使用的条件的指令(例如比较指令)的组,在循环处理内,仅通过条件分支指令可进行条件判断(用于分支成立/比成立判断的条件判断)。
此外,在本实施例中,作为复合条件设定存储部1,以具有四个复合条件存储部(100、200、300、400)、各复合条件存储部具有三个条件存储部(101、102、103)的构造为例进行了说明,本发明不限于上述构造,复合条件存储部、条件存储部分别至少具有一个的构造即可,其个数是任意的。
进一步,作为本实施例的变形例,也可是具有二个以上的具有多个复合条件存储部(100、……400)的复合条件设定存储部1的构造。
这种情况下,可向复合条件分支指令追加选择复合条件设定存储部1的位,通过指令进行选择。例如,将复合条件设定存储部之一用于中断处理,进行控制,使得进入中断处理后,自动选择该复合条件设定存储部。
或者,也可进行控制,使得按照多任务环境下的各任务分别自动选择多个复合条件设定存储部1。使多个复合条件设定存储部1与任务ID建立关联并进行管理,通过任务ID选择复合条件设定存储部1。并且在本实施例中,以条件存储部、复合条件存储部、复合条件设定存储部(或多个复合条件设定存储部)的构造为例进行了说明,但不限于上述构造,复合条件设定存储部的存储构造的层次化的水平是任意的。
在上述实施例中,以条件比较部2具有三个条件比较用的比较器为例进行了说明,条件比较用的比较器是一个以上即可,其个数是任意的。但比通过复合条件指令同时评价的复合条件个数少时,分为2个循环以上的时钟进行比较运算,从而使复合条件分支指令的时钟循环数增加。
以下说明本实施例的作用效果(也说明与上述专利文献1、2等的不同点)。
在专利文献1及图10的比较例中,组合比较和分支的二个指令进行条件分支。与之相对,根据本发明,具有:条件设定指令(SETCMP),将复合条件存储到复合条件设定存储部1内的指定的存储区域(存储地);及复合条件分支指令,在指令执行时,将指定的复合条件从复合条件设定存储部1内的存储地的存储区域取出并进行比较运算,通过条件设定指令提前进行条件的设定,从而在条件分支的阶段内,只需要一个条件分支指令执行所需的步骤数。因此,根据本实施例,可进行更高速的分支处理。尤其是,通过适用于重复执行相同条件的循环处理,和相关技术相比,具有高速性增加的效果。并且,在本实施例中,通过具有多个复合条件存储部(图2的100、200、300、400)可存储多个复合条件。因此,可适用于较复杂的条件的组合、多重循环处理,实现高速化。
此外,上述专利文献2中,和复合条件设定存储部内的条件存储部相等的只有一组(单一条件)。与之相对,在本发明中,具有多组(复合条件)条件存储部,并具有用于指定选择这些组的哪一个的选择器,进一步,具有多个复合条件。在专利文献2中,和现有的一般方法同样地,在比较或运算指令后执行条件分支指令,采用这种以二个指令为组进行条件分支的构造。在专利文献2中,对于条件寄存器(第1及第2)存储的内容(溢出、零、符号等)存储单一的条件。并且,在专利文献2中,通过条件符号选择器从运算器(未图示)选择运算结果的输出信号(外部状态信号)的某一个,从这一角度而言,生成外部状态信号的运算必须在条件分支指令之前执行。因此,专利文献2公开的发明与提前设定(存储)用于复合条件分支的多个条件并在处理条件分支指令时执行设定的条件的构造相比,是完全不同的。
此外,上述专利文献公开的内容以引用方式加入到本说明书中。在本发明所有公开(包括权利要求)的框架内,进一步根据其基本技术思想,可进行实施方式或实施例的变更、调整。并且,在本发明的权利要求范围内,可进行各种公开要素的多种组合或选择。即,本发明包括根据包括权利要求范围在内的所有公开、技术思想由本领域技术人员获得的各种变形、修改。
Claims (14)
1.一种处理机装置,
作为指令组,根据条件成立的有无,包括分支/不分支到分支目的地的条件分支指令和设定上述条件的条件设定指令,
该处理机装置具有:
条件设定存储部,上述条件设定指令执行时,存储由上述条件设定指令指定的条件;
条件比较部,上述条件分支指令执行时,进行上述条件设定存储部中存储的条件中由上述条件分支指令选择的条件所对应的比较运算;以及
分支条件判断部,根据上述条件比较部中的比较运算结果,判断是否向分支目的地分支。
2.根据权利要求1所述的处理机装置,其特征在于,
上述条件分支指令作为分支判断用的条件,由含有复合条件的复合分支条件指令构成,上述复合条件由多个条件构成,
上述条件设定存储部具有至少一个存储构成上述复合分支条件指令的复合条件的多个条件的复合条件存储部,并且具有使由上述复合分支条件指令指定的复合条件存储部有效的电路,
上述条件比较部在上述复合条件分支指令执行时,对由上述复合条件分支指令指定的复合条件存储部中保持的多个条件的每一个进行比较运算。
3.根据权利要求2所述的处理机装置,其特征在于,
上述条件比较部具有多个比较器,并行比较由上述复合条件分支指令指定的复合条件存储部的多个条件,
上述分支条件判断部根据上述多个比较器的比较结果,判断是否向分支目的地分支。
4.根据权利要求2所述的处理机装置,其特征在于,上述条件设定指令由操作数指定上述条件设定存储部的复合条件存储部中,使用哪个复合条件存储部,在上述复合条件存储部中设定第几个条件。
5.一种处理机装置,其特征在于,
作为指令组,包括:复合条件分支指令,其进行和构成指定的复合条件的多个条件的每一个对应的比较运算,根据上述比较运算的结果与指定的分支条件值之间的比较运算,进行分支到指定的分支目的地的处理;以及条件设定指令,在复合条件、及构成该复合条件的多个条件中,指定是哪一个条件,进行设定上述条件的处理,
该处理机装置具有:
复合条件设定存储部,存储通过多个上述条件设定指令的执行而设定的多个条件构成的复合条件;
条件比较部,上述复合条件分支指令执行时,对于构成上述复合条件设定存储部中存储保持的复合条件中由上述复合条件分支指令指定的复合条件的多个条件的每一个,进行比较运算;以及
复合条件分支判断部,利用将由上述条件比较部进行的比较运算的结果与由上述复合条件分支指令指定的上述分支条件值进行比较的结果,判断是否向上述分支目的地分支。
6.根据权利要求5所述的处理机装置,其特征在于,
上述条件设定指令使操作数含有:
上述复合条件设定存储部中的复合条件的存储目的地的指定信息以及构成上述复合条件的多个条件中的第几个条件的指定信息;
比较运算的种类;
比较运算对象的运算用寄存器的寄存器地址或上述运算用寄存器的寄存器地址和立即数数据。
7.根据权利要求5或6所述的处理机装置,其特征在于,
上述复合条件分支指令使运算码含有比较运算的种类,
使操作数含有:
上述复合条件设定存储部中的复合条件的存储目的地的指定信息;
上述分支条件值;以及
上述分支目的地。
8.根据权利要求5所述的处理机装置,其特征在于,
上述复合条件设定存储部具有多个复合条件存储部,该复合条件存储部与构成上述复合条件分支指令的复合条件的多个条件的个数对应,具有将以由以下构成的条件作为1组存储的条件存储部:
比较对象的二个运算用寄存器的第1及第2地址;
立即数数据;
存储运算用寄存器的数据之间的比较运算、或运算用寄存器的数据与立即数数据之间的比较运算的种类的标记;以及
比较器的运算的种类,
上述复合条件存储部的每一个具有选择由上述条件设定指令指定的条件存储部的第1选择器,
上述复合条件设定存储部具有选择上述多个复合条件存储部中、由上述复合条件分支指令指定的复合条件所对应的复合条件存储部的第2选择器,
上述第2选择器也进行由上述条件设定指令指定的复合条件存储部的选择。
9.根据权利要求8所述的处理机装置,其特征在于,
上述条件比较部对应于上述复合条件存储部内的上述多个条件存储部,具有以下的组:
第1及第2译码器,将上述条件存储部中存储的上述第1及第2地址译码,将第1、第2寄存器地址分别输出到上述运算用寄存器,并且分别保持从上述运算用寄存器读出的数据;
第3选择器,接收上述复合条件存储部中存储的立即数数据以及上述第2译码器的值,根据上述标记的输出来选择其中一个;
比较器,将上述第3选择器的输出和上述第1译码器的输出作为输入接收,进行和上述复合条件存储部中存储的运算种类对应的运算。
10.根据权利要求5所述的处理机装置,其特征在于,在上述复合条件设定存储部中,通过上述条件设定指令的执行而存储的条件在以下期间内被保持:在上述条件设定指令之后执行其它的条件设定指令,通过上述其它的条件设定指令再次选择上述条件设定比较部,改写为其它的条件为止的期间。
11.根据权利要求5至10的任意一项所述的处理机装置,其特征在于,进一步具有:
第4选择器,根据反映算术逻辑运算装置中的运算结果的标记寄存器,在进行条件判断的条件分支判断部的输出和来自上述复合条件分支判断部的输出上连接输入,通过指令译码器译码的条件分支指令是上述复合条件分支指令时,选择来自上述复合条件分支判断部的输出,为上述复合条件分支指令以外的条件分支指令时,选择上述条件分支判断部的输出;以及
第5选择器,接收从上述第4选择器输出的、上述复合条件分支判断部或上述条件分支判断部的输出,为真时,选择执行的条件分支指令的分支地址,为伪时,选择使当前的程序计数器的值增加1的地址,设定到程序计数器。
12.根据权利要求5至10的任意一项所述的处理机装置,其特征在于,具有多个上述复合条件设定存储部,并具有选择上述多个复合条件设定存储部中的一个的单元。
13.一种条件分支处理方法,用于处理器中,其特征在于,
指令组中,根据条件成立的有无,包括:分支/不分支到分支目的地的条件分支指令和存储上述条件的条件设定指令,
为了多个条件的设定,通过多次执行上述条件设定指令将多个条件存储到存储部,
上述条件分支指令执行时,在通过上述条件设定指令提前存储的多个上述条件中,对通过上述条件分支指令选择的条件进行比较运算,
根据上述比较运算结果,判断是否向分支目的地分支。
14.根据权利要求13所述的条件分支处理方法,其特征在于,
上述条件分支指令由含有多个条件构成的复合条件的复合分支条件指令构成,用于分支判断,
通过执行多个上述条件设定指令,以构成上述复合分支条件指令的复合条件的多个条件作为1组,存储1组或多组,
上述复合条件分支指令执行时,选择由上述条件分支指令提前设定的复合条件中、由上述复合分支条件指令指定的复合条件,执行构成所选择的复合条件的多个条件的每一个所对应的比较运算,根据多个条件的比较运算的结果,进行分支判断,
上述复合条件的条件分支处理可通过一个复合条件分支指令执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007151927A JP2008305185A (ja) | 2007-06-07 | 2007-06-07 | プロセッサ装置及び複合条件処理方法 |
JP2007151927 | 2007-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101320324A true CN101320324A (zh) | 2008-12-10 |
Family
ID=40133452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101084827A Pending CN101320324A (zh) | 2007-06-07 | 2008-06-06 | 处理机装置及复合条件处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7797519B2 (zh) |
JP (1) | JP2008305185A (zh) |
KR (1) | KR100995269B1 (zh) |
CN (1) | CN101320324A (zh) |
TW (1) | TWI375909B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893254A (zh) * | 2010-05-11 | 2013-01-23 | Arm有限公司 | 条件式比较指令 |
CN104699454A (zh) * | 2013-12-06 | 2015-06-10 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104699454B (zh) * | 2013-12-06 | 2018-08-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332620B2 (en) * | 2008-07-25 | 2012-12-11 | Freescale Semiconductor, Inc. | System, method and computer program product for executing a high level programming language conditional statement |
US8078849B2 (en) | 2008-12-23 | 2011-12-13 | Juniper Networks, Inc. | Fast execution of branch instruction with multiple conditional expressions using programmable branch offset table |
US8660132B2 (en) * | 2010-06-28 | 2014-02-25 | Avaya Inc. | Control plane packet processing and latency control |
WO2020181670A1 (en) * | 2019-03-11 | 2020-09-17 | Huawei Technologies Co., Ltd. | Control flow optimization in graphics processing unit |
CN111679785A (zh) | 2019-03-11 | 2020-09-18 | 三星电子株式会社 | 用于处理操作的存储器装置及其操作方法、数据处理系统 |
US11029920B1 (en) * | 2020-10-21 | 2021-06-08 | Chariot Technologies Lab, Inc. | Execution of a conditional statement by an arithmetic and/or bitwise unit |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59165141A (ja) * | 1983-03-11 | 1984-09-18 | Hitachi Ltd | デ−タ処理装置 |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
JPH0460720A (ja) * | 1990-06-29 | 1992-02-26 | Hitachi Ltd | 条件分岐命令制御方式 |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
JP2928680B2 (ja) | 1992-03-30 | 1999-08-03 | 株式会社東芝 | 複合条件処理方式 |
JPH06290044A (ja) * | 1992-06-04 | 1994-10-18 | Matsushita Electric Ind Co Ltd | 順序制御回路 |
JPH06309165A (ja) * | 1993-04-26 | 1994-11-04 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3494489B2 (ja) * | 1994-11-30 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
JPH1055275A (ja) * | 1996-08-09 | 1998-02-24 | Nissan Motor Co Ltd | 情報処理装置 |
US6598153B1 (en) * | 1999-12-10 | 2003-07-22 | International Business Machines Corporation | Processor and method that accelerate evaluation of pairs of condition-setting and branch instructions |
JP2001344100A (ja) * | 2000-06-02 | 2001-12-14 | Sharp Corp | 複数のフラグレジスタを備えた中央演算処理装置 |
KR20050078703A (ko) | 2004-01-31 | 2005-08-08 | 삼성전자주식회사 | 하나 이상의 조건들을 동시에 결정하는 마이크로 프로세서 |
JP2007272353A (ja) * | 2006-03-30 | 2007-10-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
JP2009163624A (ja) * | 2008-01-09 | 2009-07-23 | Nec Electronics Corp | プロセッサ装置及び条件分岐処理方法 |
-
2007
- 2007-06-07 JP JP2007151927A patent/JP2008305185A/ja active Pending
-
2008
- 2008-06-04 US US12/133,032 patent/US7797519B2/en not_active Expired - Fee Related
- 2008-06-05 KR KR1020080053387A patent/KR100995269B1/ko not_active IP Right Cessation
- 2008-06-06 CN CNA2008101084827A patent/CN101320324A/zh active Pending
- 2008-06-06 TW TW097121098A patent/TWI375909B/zh not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893254A (zh) * | 2010-05-11 | 2013-01-23 | Arm有限公司 | 条件式比较指令 |
CN102893254B (zh) * | 2010-05-11 | 2015-11-25 | Arm有限公司 | 数据处理装置和数据处理设备 |
US9383999B2 (en) | 2010-05-11 | 2016-07-05 | Arm Limited | Conditional compare instruction |
CN104699454A (zh) * | 2013-12-06 | 2015-06-10 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104699454B (zh) * | 2013-12-06 | 2018-08-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
KR100995269B1 (ko) | 2010-11-19 |
US20080313443A1 (en) | 2008-12-18 |
US7797519B2 (en) | 2010-09-14 |
TWI375909B (en) | 2012-11-01 |
KR20080108053A (ko) | 2008-12-11 |
TW200915177A (en) | 2009-04-01 |
JP2008305185A (ja) | 2008-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2569694B1 (en) | Conditional compare instruction | |
US4435758A (en) | Method for conditional branch execution in SIMD vector processors | |
US6647489B1 (en) | Compare branch instruction pairing within a single integer pipeline | |
CN101320324A (zh) | 处理机装置及复合条件处理方法 | |
US20080141229A1 (en) | Processor, program conversion apparatus, program conversion method, and computer program | |
JP2009163624A (ja) | プロセッサ装置及び条件分岐処理方法 | |
JPH10222397A (ja) | シミュレーション装置、シミュレーション方法、及び、シミュレーションプログラムを記録した機械読み取り可能な記録媒体 | |
US6611956B1 (en) | Instruction string optimization with estimation of basic block dependence relations where the first step is to remove self-dependent branching | |
CN105204837A (zh) | 一种逻辑编程的实现方法和装置 | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
KR100589102B1 (ko) | Vliw 프로세서 | |
KR100374401B1 (ko) | 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치 | |
JP2006053830A (ja) | 分岐予測装置および分岐予測方法 | |
US7886133B2 (en) | Information processing apparatus and method for accelerating information processing | |
KR101118593B1 (ko) | Vliw 명령어 처리 장치 및 방법 | |
JPH1196001A (ja) | プログラム実行装置及びプログラム変換方法 | |
JPH0876996A (ja) | プログラマブルコントローラ | |
LaMeres | Program Flow Instructions | |
CN114035848A (zh) | 一种分支预测的方法、装置及处理器 | |
KR100515039B1 (ko) | 조건부 명령어를 고려한 파이프라인 상태 표시 회로 | |
WO2002042897A2 (en) | Data processing apparatus | |
JPH0512009A (ja) | デイジタル信号処理装置 | |
Navabi et al. | Computer Architecture | |
JPH0512007A (ja) | データ処理方式 | |
WO2007015258A1 (en) | A microprocessor with a configurable control unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: RENESAS ELECTRONICS CO., LTD. Free format text: FORMER OWNER: NEC CORP. Effective date: 20101124 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20101124 Address after: Kanagawa, Japan Applicant after: Renesas Electronics Corporation Address before: Kanagawa, Japan Applicant before: NEC Corp. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20081210 |