CN101046741A - 处理器装置和复合条件处理方法 - Google Patents
处理器装置和复合条件处理方法 Download PDFInfo
- Publication number
- CN101046741A CN101046741A CNA2007100919567A CN200710091956A CN101046741A CN 101046741 A CN101046741 A CN 101046741A CN A2007100919567 A CNA2007100919567 A CN A2007100919567A CN 200710091956 A CN200710091956 A CN 200710091956A CN 101046741 A CN101046741 A CN 101046741A
- Authority
- CN
- China
- Prior art keywords
- instruction
- mentioned
- condition
- comparison
- branch
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims description 19
- 150000001875 compounds Chemical class 0.000 claims abstract description 128
- 239000002131 composite material Substances 0.000 claims description 24
- 230000015654 memory Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 10
- 238000007796 conventional method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
-
- 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/30061—Multi-way branch instructions, e.g. CASE
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种抑制周期数的增加和指令长度的增大,使条件分支处理快速化的处理装置。作为指令组包含:复合条件分支指令,进行和一个或多个条件分别对应的比较运算,根据比较运算结果和指定分支条件值间的比较运算,向指定的分支对象进行分支;和设定一个条件的条件设定指令,处理器装置具有多个条件设定比较部,通过条件设定指令的运行而被选择,设定由条件设定指令指定的条件,在运行复合条件分支指令时,分别运行和由条件设定指令设定的条件对应的比较运算;和复合条件分支判定部,在运行复合条件分支指令时,利用对在多个条件设定比较部的比较运算结果和由复合条件分支指令指定的分支条件值进行了比较的结果,判定是否向分支对象进行分支。
Description
技术领域
本发明涉及将指令取出、解码并运行该指令的处理器装置,特别涉及复合条件分支处理的方法和装置。
背景技术
作为此种复合条件处理方式,例如在专利文献1中,作为并列处理多个指令的构成,公开一种构成,该构成具有:标记寄存器单元,可按照多个比较指令的运行结果的真伪值,独立且并列地对比特进行置位/复位;逻辑积单元,取该标记寄存器单元的保持内容和由条件分支指令指定的掩码值的每比特的逻辑积;和指令取出地址选择单元,按照逻辑积单元的输出值是否为零,相应地选择上述条件分支指令指定的分支对象地址或该指令的下一个指令地址作为下一个应运行的指令地址,将被掩码值指定的标记寄存器的各比特位置的比特状态作为复合条件,决定是否运行分支。
在专利文献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:(分支对象的处理)
在第一个比较指令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”。
在第二个条件分支指令BNZ 7,$1中,进行复合条件的比较运算结果和分支条件值(掩码值)“7”的比特运算,如果条件不成立,就跳转到地址$1。BNZ条件分支指令为“BNZ M,L”形式,取M(4比特掩码值)和标记寄存器的对应比特的逻辑积,零判定电路判定逻辑积结果是否全部为“0”,当全部为“0”时,输出“1”,反之则输出“0”,并将零判定电路的输出信号(零/非零判定结果)作为分支成立/分支不成立信号输出,分支成立时,向L指定的地址分支。另外,在BNZ 7,$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条件。
专利文献1:特开平5-274143号公报
专利文献1所述的复合条件处理方式,在只运算一次复合条件时,不会产生特别的问题。但是,要想用于重复运行相同条件的循环处理时,有如下所述的问题点。
第一个问题点是,因为需要将复合条件的比较指令和条件分支指令配套运行,所以每次条件分支处理需要两个步骤的运行周期。下面就这一点进行说明。
在专利文献1所述的复合条件处理方式中,如图10(a)所示,需要两个指令的周期数。在图10(a)的例中,一次需要比较指令(SLE X,1,0,…)和条件分支指令(BNZ)的两个指令的6个周期[F(指令取出)、D(解码)、EX(运行)、F、D、EX](参照图10的10-1和10-2)。在复合条件的比较指令(SLE X,1,0,…)中,并列运行和复合条件的各条件相对应的比较运算,并将比较运算结果设定为标记寄存器的指定比特,在条件分支指令(BNZ)中,根据标记寄存器的值和掩码值的逻辑运算结果进行分支判定。如此,在专利文献1所述的复合条件处理方式中,因为指令分成了比较指令和条件分支指令两个,所以指令取出和指令解码的周期至少需要两次,周期数增加,循环处理中的周期数的增加变得突出,成为限制速度的原因。
第二个问题点是,在专利文献1所述的复合条件处理方式中,比较指令形成为将复合条件全部用一个指令并列运行的构成,为了表示多个条件,指令长度变长。
例如,在比较指令:
SLE X,1,0 SGE X,10,1 SEQ 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 | Flagbit1 | 比较器1 | 条件值1 | Flagbit2 | 比较器2 | 条件值2 | Flagbit3 |
8bit | 4bit | 3bit | 4bit | 2bit | 3bit | 4bit | 2bit | 3bit | 4bit | 2bit |
X | LE | 1 | 0 | GE | 10 | 1 | EQ | 5 | 2 | |
XXXX XXXX | XXXX | 011 | 0001 | 00 | 101 | 1010 | 01 | 000 | 0101 | 10 |
如此指令长度变长,在专利文献1的并列处理装置中,是因为复合条件全部用一个指令来指定。
发明内容
本申请所公开的发明,为了解决上述课题,大致形成为以下的构成。
本发明的一种方式(侧面)所涉及的装置,作为指令组,包含:按照条件成立的有无,向分支对象进行分支/非分支的条件分支指令;和设定上述条件的条件设定指令,并具有在运行上述条件设定指令时设定由上述条件设定指令指定的条件的电路,上述电路不进行和上述条件相对应的比较运算,还具有如下电路:在运行上述条件分支指令时,进行和由上述条件设定指令预先设定的上述条件相对应的比较运算,并根据上述比较运算结果,判定是否向分支对象进行分支。在本发明中,上述条件分支指令,由复合分支条件指令构成来用于分支判定,上述复合条件分支指令包含由多个条件构成的复合条件,通过运行多个上述条件设定指令,进行上述复合条件的各条件的设定,在运行上述复合条件分支指令时,并列地运行和由上述条件分支指令预先设定的多个条件分别相对应的比较运算,并根据多个上述比较运算的结果,进行分支判定,可用一个复合条件分支指令运行基于上述复合条件的条件分支处理。
本发明的另外的方式(侧面)所涉及的装置,作为指令组,包含:复合条件分支指令,进行和一个或多个的条件分别相对应的比较运算,并根据在上述比较运算的结果和指定了的分支条件值之间的比较运算,向指定的分支对象进行分支;和设定一个上述条件的条件设定指令,上述装置具有:多个条件设定比较部,通过上述条件设定指令的运行而被选择,由上述条件设定指令指定的条件得到设定,在运行上述复合条件分支指令时,分别运行和由上述条件设定指令设定的条件相对应的比较运算;和复合条件分支判定部,在运行上述复合条件分支指令时,利用对在多个上述条件设定比较部中分别进行的比较运算结果和由上述复合条件分支指令指定的上述分支条件值进行了比较的结果,判定是否向上述分支对象进行分支。
在本发明中,上述条件设定指令,在操作数中包含:上述条件设定比较部的指定、比较运算的类别、和比较运算对象的运算用寄存器的寄存器、或上述运算用寄存器的寄存器和立即数据。
在本发明中,上述复合条件分支指令,在操作码中包含比较运算的类别,在操作数中包含上述分支条件值和上述分支对象。
在本发明中,上述条件设定比较部具有:存储比较对象的两个运算用寄存器的地址信息的第一和第二地址寄存器;存储立即数据的立即值寄存器;存储比较运算的类别的比较器选择寄存器;比较器;和对上述第一和第二地址寄存器的地址进行解码的第一和第二解码器,通过上述条件设定指令的运行,设定上述第一和第二地址寄存器、或上述第一地址寄存器及上述立即值寄存器、和上述比较器选择寄存器的各寄存器的值,通过上述复合条件分支指令的运行,读出由上述第一和第二地址寄存器、或上述第一地址寄存器指定的上述运算用寄存器,在上述比较器中对通过上述第一和第二地址寄存器的指定而读出的两个上述运算用寄存器的值进行比较,或对通过上述第一地址寄存器的指定而读出的上述运算用寄存器的值和上述立即数据进行比较。
在本发明中,具有分别保存上述多个条件设定比较部的比较运算结果的多个寄存器。
在本发明中,上述复合条件分支判定部具有:接受来自对上述复合条件分支指令进行解码的指令解码器的输出,存储由上述复合条件分支指令指定的上述分支条件值的第一寄存器、和存储比较运算的种类的第二寄存器;以及比较器,就分别保存上述多个条件设定比较部的比较运算结果的上述多个寄存器的输出、和由上述第一寄存器指定的分支条件值,进行由上述第二寄存器指定的比较运算,并输出比较结果。
在本发明中,具有选择器,该选择器根据指令解码器进行的上述条件设定指令的解码结果,选择由上述条件设定指令指定的上述条件设定比较部。
还具有:跳转对象地址寄存器,存储由在上述指令解码器中进行了解码的复合条件分支指令指定的跳转对象地址;和选择器,接受从上述复合条件分支判定部输出的结果的真伪值,在为真时选择上述跳转对象地址,在为伪时选择程序计数器的值+1的地址,在程序计数器中进行设定。
本发明的另外的方式所涉及的方法,是处理器中的条件分支的处理方法,在指令组中,包含:按照条件成立的有无,向分支对象进行分支/非分支的条件分支指令;和设定上述条件的条件设定指令,该方法具有以下各步骤:
(a)在运行上述条件设定指令时,设定由上述条件设定指令指定的条件,不进行和上述条件相对应的比较运算,
(b)在运行上述条件分支指令时,进行和由上述条件设定指令预先设定的上述条件相对应的比较运算,并根据上述比较运算结果,判定是否向分支对象进行分支。
在本发明所涉及的方法中,上述条件分支指令,由复合分支条件指令构成来用于分支判定,上述复合条件分支指令包含由多个条件构成的复合条件,通过运行多个上述条件设定指令,进行上述复合条件的各条件的设定,在运行上述复合条件分支指令时,并列地运行和由上述条件分支指令预先设定的多个条件分别相对应的比较运算,并根据多个上述比较运算的结果,进行分支判定,可用一个复合条件分支指令运行基于上述复合条件的条件分支处理。
根据本发明,通过使在现有的复合条件处理方式中以比较指令和条件分支指令两个指令的组合来运行的条件分支处理能够用一个复合条件分支指令来运行,从而在适用于重复运行同一条件的处理的循环处理等中时,在循环处理之前,可预先设定好复合条件,在循环处理内,能够用一个复合条件分支指令进行条件分支。因此,根据本发明,和现有的复合条件处理方式所示的用两个指令进行条件分支时相比,能够实现快速化。
根据本发明,重复运行同一条件的处理的次数越多,处理性能提高的效果越大。
而且,根据本发明,条件设定指令因为是相对于一个指令只设定一个条件,所以和同时设定多个条件时相比,能够缩短指令长度。
附图说明
图1是表示本发明的一实施例的构成的图。
图2是表示本发明的一实施例的条件设定比较部和其相关部位的图。
图3是表示本发明的一实施例的条件设定比较部和其相关部位的图。
图4是表示本发明的一实施例的条件设定比较部和其相关部位的图。
图5是表示本发明的一实施例的复合条件分支判定部和其相关部位的图。
图6是将本发明的一实施例中的条件设定指令和复合条件分支指令用汇编程序语言进行了例示的图。
图7是表示本发明的一实施例中的条件设定指令的操作的时序图。
图8是表示本发明的一实施例中的复合条件分支指令的操作的时序图。
图9(a)、(b)是用于说明本发明的一实施例的图,是表示了复合条件的比较运算结果和分支条件的比特的对应的图。
图10是表示在专利文献1的复合条件处理方式中适用了循环处理时的复合条件处理的操作的时序图。
具体实施方式
为了就上述的本发明更加详细地进行说明,下面参照附图进行说明。
本发明适用于逐次运行型计算机,通过设置用于设定分支判定所使用的比较条件的条件设定指令,并将该条件设定指令先于复合条件分支指令运行,来事先设定好构成复合条件的多个比较条件。本发明具有如下单元:在运行复合条件分支指令时,进行和该设定了的复合条件的各条件相对应的比较运算,并利用对比较运算的结果和用指令码指定的分支条件值进行了比较的结果,判定是否进行分支。
更详细地说,本发明优选方式的处理装置,作为指令组,包含:设定用于分支判定的比较条件的条件设定指令(操作码:SETCMP);和复合条件分支指令(操作码:XBEQ、XBNE、XBL、XBLE、XBG、XBGE),该复合条件分支指令运行和被上述条件设定指令设定了的比较条件相对应的比较运算,并根据在上述比较运算的结果和指定了的分支条件值之间的比较运算,判定是否向指定的分支对象进行分支。本发明具有:多个条件设定比较部(参照图1的2、3、4),通过上述条件设定指令的运行而被选择,设定由上述条件设定指令指定的比较条件(比较运算的类别、比较对象的寄存器,或寄存器和立即数据),在运行上述复合条件分支指令时,分别运行和由上述条件设定指令设定的比较条件相对应的比较运算;和复合条件分支判定部(图1的7),在运行上述复合条件分支指令时,利用对在多个上述条件设定比较部中的比较运算结果和由上述复合条件分支指令指定的上述分支条件值进行了比较的结果,判定是否向上述分支对象进行分支。
在本发明中,条件设定指令(SETCMP)在操作数中包含:上述条件设定比较部的指定、比较运算的类别、和比较对象的运算用寄存器的两个寄存器或上述运算用寄存器的一个寄存器和立即数据。
在本发明中,上述复合条件分支指令,在操作码中包含比较运算的类别,在操作数中包含上述分支条件值和上述分支对象。
在本发明中,参照图2,各条件设定比较部具有:分别存储运算用寄存器(6)的两个寄存器的地址信息的第一和第二地址寄存器(2c、2d);分别对第一和第二地址寄存器(2c、2d)的地址进行解码的第一和第二解码器(2a、2b);存储立即数据的立即值寄存器(2e);存储比较运算的类别的比较器选择寄存器(2f);和比较器(2h),上述各条件设定比较部,经条件设定指令(SETCMP)的运行,设定第一和第二地址寄存器(2c、2d)、立即值寄存器(2e)、和比较器选择寄存器(2f)的各寄存器的值,经复合条件分支指令的运行,读出由分别对第一和第二地址寄存器(2c、2d)的地址进行解码的第一和第二解码器(2a、2b)选择的运算用寄存器(6)的两个寄存器,对读出的该两个寄存器的值在比较器(2h)进行比较,或者,读出例如由对第一地址寄存器(2c)的地址进行解码的第一解码器(2a)选择的运算用寄存器(6)的一个寄存器,对读出的该一个寄存器的值和立即数据在比较器(2h)进行比较。
在本发明中,具有分别保存多个条件设定比较部(图1的2、3、4)的比较运算结果的多个寄存器(图1的5a、5b、5c)。
在本发明中,参照图5,复合条件分支判定部(图1的7)具有:接受来自对复合条件分支指令进行解码的指令解码器(11)的输出,存储由上述复合条件分支指令指定的上述分支条件值的第一寄存器(7a);存储比较运算的种类的第二寄存器(7b);和比较器(7c),就分别保存多个条件设定比较部(2、3、4)的比较运算结果的多个寄存器(5a、5b、5c)的输出、和由第一寄存器(7a)指定的分支条件值,进行由第二寄存器(7b)指定的比较运算,并输出比较结果。
在本发明中,具有选择器(图1的1),该选择器(1)根据基于指令解码器(图1的11)的上述条件设定指令的解码结果,选择由上述条件设定指令指定的条件设定比较部。在本发明中,具有:跳转对象地址寄存器(图1的8),存储由在上述指令解码器中解码的复合条件分支指令指定的跳转对象地址;和选择器(图1的9),接受从上述复合条件分支判定部(图1的7)输出来的比较结果,在比较结果为真时,选择跳转对象地址,在为伪时,选择复合条件分支指令的下一个指令的地址,即当前的程序计数器的值+1的地址,并在程序计数器(图1的10)中设定。
本发明形成为:可用一个复合条件分支指令运行在上述专利文献1所述的现有的复合条件处理方式中,用比较指令和条件分支指令两个指令的组合来运行的条件分支处理。因此,在适用于重复运行同一条件处理的处理时,在循环处理之前设定好复合条件,在循环处理内能够用一个复合条件分支指令进行条件分支。即,根据本发明,能够实现比现有的复合条件处理方式所示的用两个指令进行条件分支时更快速的处理。
根据本发明,重复运行同一条件的处理的次数越多,处理性能提高的效果越大。
而且,根据本发明,条件设定指令因为是对一个指令只设定一个条件,所以和现有的复合条件处理方式所示的同时设定多个条件时相比,能够缩短指令长度。因此,其特征在于,在指令存储器的总线宽度较窄的系统中,适用起来也很容易。
下面,就本发明和专利文献1等现有的复合条件处理方式进行比较说明。在以往的方式中,一次需要6个周期,与之相对,根据本发明,由于能够用一个指令进行条件分支,所以只需要4个周期。重复次数为2~3次时,在本发明中,因具有预先条件设定指令的运行步骤,相应地运行周期数增加,但是如果是如现有的复合条件处理方式所示,能够用一个指令同时运行多个条件设定的并列系统,也能够用一个指令来实现,此时,即使没有重复运行,也能够形成为和现有的复合条件处理方式相同的步骤数。
另外,在本发明中,对每一个一个的条件,能够分别指定特定的寄存器和立即数据。如果将此功能适用于现有的复合条件处理方式,指定寄存器的比特数就会增加2个的量,如果设寄存器的指定为4比特,则合计为39+4×2=47比特(参照表2)。
表2
指令码 | 寄存器0 | 比较器0 | 条件值0 | flagbit1 | 寄存器1 | 比较器1 | 条件值1 | flagbit2 | 寄存器2 | 比较器2 | 条件值2 | flagbit3 |
8bit | 4bit | 3bit | 4bit | 2bit | 4bit | 3bit | 4bit | 2bit | 4bit | 3bit | 4bit | 2bit |
r1 | LE | 1 | 0 | r2 | GE | 10 | 1 | r3 | EQ | 5 | 2 | |
XXXX XXXX | 0001 | 011 | 0001 | 00 | 0010 | 101 | 1010 | 01 | 011 | 000 | 0101 | 010 |
指令存储器的总线宽度在为例如32比特时,如表3所示,因为一个指令横跨两个指令存储器的地址,所以如图10(b)的10b-1所示,需要两次指令取出,指令取出周期增加,复合条件比较指令的运行速度相应地下降。
表3
地址 | 指令存储器的内容 |
n-1 | XXXX XXXX 0001 011 0001 0010 101 1010 00 |
n | 0011 000 0101 00000 0000 0000 0000 0000 |
与此相对,根据本发明,条件设定指令和复合条件分支指令两者和以往的方式相比,都能够以短的指令长度来实现。具体地说,如下所述。
在本发明中,在新导入到指令组中的条件设定指令:
SETCMP c0,r1,L,r11
中,条件设定比较部的选择为2比特,两个寄存器为8比特,比较器的种类为3比特,合计为8+2+4+4+3=21比特(参照表4)。
表4
指令码 | 选择 | 寄存器1 | 比较器 | 寄存器2 |
8bit | 2bit | 4bit | 3bit | 4bit |
SETCMP | c0 | r1 | L | r11 |
XXXX XXXX | 00 | 0001 | 010 | 1011 |
而且,如果SETCMP c1,r2,GE,10也设立即值为4比特,就成为21比特(参照表5)。
表5
指令码 | 选择 | 寄存器1 | 比较器 | 立即值 |
8bit | 2bit | 4bit | 3bit | 4bit |
SETCMP | c1 | r2 | GE | 10 |
XXXX XXXX | 00 | 0010 | 101 | 1010 |
另外,在本发明中,在新导入到指令组中的复合条件分支指令:
XBNE 0111b,L1
中,指令码为8比特,比较器的种类为3比特,分支条件值如果能够选择0~7,为3比特,跳转对象地址L1如果是指令存储器的地址值,为64K字码地址空间,则为16比特,合计为8+3+3+16=30比特,指令存储器的总线宽度在32比特以下也能够收容,指令取出周期不增加(参照表6)。
表6
指令码 | 比较器 | 分支条件值 | 跳转对象地址 |
8bit | 3bit | 3bit | 16bit |
SBNE | NE | 0111b | L1 |
XXXX XXXX | 001 | 111 | XXXX XXXX XXXX XXXX |
而且,在使跳转对象地址为12比特的相对地址时,有32-8-3-12=9比特的富余。在下面的实施例中,用3比特表示了分支条件值,但是也可以增加更多的比特数,指定更多的复合条件。此时,条件设定比较部也需要相应该比特数的个数。下面结合具体的实施例进行说明。
实施例
图1是表示本发明的一实施例的处理器的要部构成的图。参照图1,本实施例的处理器具有:选择器1;多个条件设定比较部2、3、4;寄存器5;运算用寄存器6;复合条件分支判定部7;跳转对象地址寄存器8;选择器9;程序计数器10;和指令解码器11。作为多个条件设定比较部表示了三个的构成,但是在本发明中,条件设定比较部不限于三个。
选择器1具有:接受指令解码器11中的条件设定指令SETCMP的解码结果的寄存器1a(存储和条件设定指令SETCMP的条件设定比较部的指定信息对应的2比特);和根据寄存器1a的值,选择条件设定比较部2、3、4的选择器1b。
条件设定比较部2、3、4由选择器1进行选择(激活),分别设定由条件设定指令SETCMP指定的一个条件,并进行和该条件相对应的比较运算。另外,在条件设定比较部2、3、4,在运行条件设定指令SETCMP时,只进行条件的设定(比较器的类别、比较对象的寄存器的指定等),条件设定比较部2、3、4中的比较运算在运行复合条件分支指令时运行。所述构成形成了本发明的主要特征之一。
寄存器5具有分别保存条件设定比较部2、3、4的比较运算结果的寄存器5a、5b、5c。
运算用寄存器6是处理器为了运算而使用的N个寄存器(寄存器文件)r1~rN。
复合条件分支判定部7具有:寄存器7a(参照图5),接受来自对复合条件分支指令进行解码的指令解码器11的输出,存储由该复合条件分支指令指定的比较用的分支条件值;存储比较器的种类的寄存器7b(参照图5);和进行比较运算的比较器7c(参照图5)。
跳转对象地址寄存器8,存储由在指令解码器11中进行了解码的复合条件分支指令指定的跳转对象地址。
程序计数器(PC)10表示处理器的指令运行位置。
选择器9,以跳转对象地址寄存器8的地址和复合条件分支指令的下一个指令的地址[程序计数器的值(PC)+1]为输入,接受从复合条件分支判定部7输出的结果的真伪值(T/F)作为选择控制信号,当从复合条件分支判定部7输出来的结果为真时,选择跳转对象地址寄存器8的地址,为伪时,选择复合条件分支指令的下一个指令的地址[程序计数器的值(PC)+1]。来自选择器9的输出,被设定在程序计数器(PC)10中。
如此,在本实施例中,在指令组中重新准备以下两个指令:
·条件设定指令(SETCMP);
·复合条件分支指令(XBNE、XBEQ等)。
条件设定指令是设定在复合条件分支指令中所使用的复合判定的各条件的指令。复合条件分支指令是进行和由条件设定指令设定的各条件相对应的比较运算,进行比较运算结果和用指令码指定的分支条件值的比较运算,并根据比较运算结果进行分支的指令。
首先,从条件设定指令进行说明。在本实施例中,如果用汇编程序的记忆码(mnemonic)表示,可表示如下:
SETCMP c0,r1,L,r11
“SETCMP”表示条件设定指令的名称(操作码)。
第一个操作数的“c0”,意味着第一个条件设定,表示条件设定比较部2。
第二、四个操作数的“r1”和“r11”指定了运算用寄存器6内的寄存器地址1和11的寄存器。
第三个操作数的“L”表示对r1和r11的值进行比较时使用的比较运算器的种类。将比较运算器的种类与含意、C语言表记、和选择值一起在表7中一览表示。
表7
种类(记忆码表记) | 含意 | C语言表记 | 选择值 |
EQ | 等于(Equal) | ‘==’ | 0(000b) |
NE | 不等于(Not Equal) | ‘!=’ | 1(001b) |
L | 小于(Less) | ‘<’ | 2(010b) |
LE | 小于或等于(Less or Equal) | ‘<=’ | 3(011b) |
G | 大于(Greater) | ‘>’ | 4(100b) |
GE | 大于或等于(Greater or Equal) | ‘>=’ | 5(101b) |
作为本实施例的具体操作,用图6说明图6的三个条件设定指令得到运行时的操作。在图6的各行的文字列中,“//”以后(右侧)的文字列是注解。图6的三个条件设定指令(SETCMP),分别进行r1<r11、r2>=10、r3==r13的比较条件的设定。另外,在图6中,在紧接着三个条件设定指令的标签L1以下,进行运算,r1~r3、r11、r13的各寄存器得到更新(指令码未图示),在下一个复合条件分支指令XBNE运行时,当条件C0~C2全部不成立时,向标签L1分支。从标签L1到复合条件分支指令XBNE构成循环处理,复合条件分支指令XBNE进行循环处理退出判定。
运行第一个条件设定指令:
SETCMP c0,r1,L,r11
时,在图7的7-1中,在指令取出周期F,指令码从指令存储器(未图示)被读入到指令解码器11。
在下一个指令解码周期D,被读入的指令码如图2所示,在图2的指令译码器11中得到解析。在图2中,示意性地表示了相对于条件设定指令:
SETCMP c0,r1,L,r11,
说明图1的指令解码器11的操作、和条件设定比较部2的操作的构成。
参照图2,条件设定比较部2具有:存储运算用寄存器6的寄存器地址的寄存器(也称“地址寄存器”)2c、2d;解码器2a、2b,接受来自寄存器2c、2d的寄存器地址,进行解码,选择运算用寄存器6的寄存器;存储立即数据的立即值寄存器2e;比较器选择寄存器2f;选择器2g,选择立即值寄存器2e的输出和解码器2b的输出(被选择的运算用寄存器6的读出值)的一个进行输出;和比较器2h,输入解码器2a的输出(被选择的运算用寄存器6的读出值)和选择器2g的输出,进行由比较器选择寄存器2f选择的比较运算。另外,图1的条件设定比较部3、4也和条件设定比较部2形成为同一构成。
在指令解码器11中,条件设定指令:
SETCMP c0,r1,L,r11
中的
“c0”被解码成“00b”(2进位数);
“r1”被解码成“0001b”;
“L”被解码成“010b”;
“r11”被解码成“1011b”。
同时,表示条件设定“c0”的值“00b”从指令解码器11被存储到选择器1的寄存器1a中。
而且,在下一个指令运行周期EX,选择器1的寄存器1a的值“c0”作用于选择器1的选择器1b,条件设定比较部2得到选择(图2的选择器1内的Sa被激活),“0001b”、“1011b”和“010b”分别从指令解码器11被存储到条件设定比较部2的寄存器2c、2d和2f。
另外,寄存器2c~2f的值,在条件设定指令:
SETCMP c0,r1,L,r11
的指令运行后也被保持不变。即,在直到下一个作用于条件设定比较部2的条件设定指令被运行的期间,条件设定比较部2内的各寄存器的值不被改写。
图2表示运行了到该时刻为止的操作的状态。
分别在条件设定比较部2的寄存器2c中存储表示运算用寄存器r1的寄存器地址“1”(“0001b”);
在条件设定比较部2的寄存器2d中存储表示运算用寄存器r11的寄存器地址“11”(“1011b”);
在条件设定比较部2的寄存器2f中存储表示比较器的种类“L”的值[在表7中用“2”(“010b”)表示,在图2(a)中用“<”表示]。
在第二个条件设定指令:
SETCMP c1,r2,GE,10
中,在第四个参数(第四个操作数),是立即值(immediate value)“10”被指定,而不是运算用寄存器。
如图7的7-2所示,在操作上,除了将立即值“10”存储到条件设定比较部3的寄存器3e(参照图3)中以外,和第一个条件设定指令时同样地进行处理。
作为结果,在条件设定比较部3,如图3所示,分别
在寄存器3c中存储表示运算用寄存器r2的寄存器地址“2”(“0010b”);
在寄存器3e中存储表示立即值“10”的值“10”(“1010b”);
在寄存器3f中存储表示比较器的种类“GE”的值[在表7中用“5”(“101b”)表示,在图2(b)中用“≥”表示]。
在第三个条件设定指令:
SETCMP c2,r3,EQ,r13
中,也是通过条件设定“c2”,选择条件设定比较部4,和第一个指令SETCMP c0,r1,L,r11同样地进行处理,成为如图7的7-3所示的操作。
作为结果,在条件设定比较部4,如图4所示,分别
在寄存器4c中存储表示运算用寄存器r3的寄存器地址“3”(“0011b”);
在寄存器4d中存储表示运算用寄存器r13的寄存器地址“13”(“1101b”);
在寄存器4f中存储表示比较器的种类“EQ”的值[在表7中用“0”(“000b”)表示,在图2(c)中用“==”表示]。
如此在本实施例中,在运行复合条件分支指令前,先用条件设定指令设定好构成复合条件的多个条件。
另外,条件设定指令只是设定条件,不进行实际的比较运算。原因是在该时刻,成为比较运算的对象的运算用寄存器6中,还没有值被存储。比较运算靠复合条件分支指令的运行来进行。
在本实施例中,在指令组中导入的另一个追加指令复合条件分支指令,是进行和用条件设定指令设定了的各条件相对应的比较运算,并进行该结果和分支条件值的比较运算的指令,在汇编程序的记忆码中,对于图6所示的例,可表示如下:
XBNE 0111b,L1
“XBNE”是指令的名称,“NE”的部分表示比较运算器的种类(参照图7)。除了“NE”以外,也可以是“EQ”、“L”、“LE”、“G”、“GE”的比较。
“0111b”是分支条件值,将进行和在各条件下的比较运算结果的比较(比特比较)的值用2进位数表示。
“L1”表示在复合条件的分支的判定结果为真时进行分支的程序的跳转对象地址。
说明本实施例中的复合条件分支指令的操作。
在图8的8-1中的第一次复合条件分支指令:
XBNE 0111b,L1
中,在指令取出周期F,指令码从指令存储器(未图示)被读入指令解码器11。
在下一个指令解码周期D,被读入的指令码如图5所示,在图5的指令解码器11中得到解析。另外,复合条件分支判定部7具有寄存器7a、7b和比较器7c。
在指令解码器11中,
XBNE的“NE”被解码成“001b”;
“0111b”直接被解码成“0111b”;
“L1”被解码成“XXXXXXXXb”(表示跳转对象地址L1的值)。
同时,从指令解码器11,
将“0111b”置位到复合条件分支判定部7的寄存器7a中;
将表示比较“NE”的值“001b”(在表7中用“1”表示,在图5中用“!=”表示“NE”)存储到复合条件分支判断部7的寄存器7b中。
另外,跳转对象地址“L1”从指令解码器11被存储到跳转对象地址寄存器8中。各寄存器的值,在图8中,在下一个周期8-A(XBNE的指令运行周期EX)得到反映。
与此同时,在条件设定比较部2(参照图2)中,用指定运算用寄存器6的寄存器的寄存器2c、2d,解码器2a、2b从运算用寄存器6之中读出相应的运算用寄存器6(此时,为r1、r11)的值。被读出的r1、r11的值被供给到比较器2h。
在条件设定比较部3和条件设定比较部4也同样地进行处理。参照图3,由解码器3a指定的运算用寄存器6的值被读出。在条件设定比较部3,由寄存器3c选择的运算用寄存器6的寄存器r2被读出,寄存器r2的值和由选择器3g选择的立即值寄存器3e的值10被供给到比较器3h。
参照图4,在条件设定比较部4,用指定运算用寄存器6的寄存器的地址寄存器4c、4d,解码器4a、4b从运算用寄存器6之中读出相应的运算用寄存器6(此时,为r3、r13)的值。被读出的运算用寄存器6的r3、r13的值被供给到比较器4h。
在XBNE的指令运行周期EX(图8的8-A),在条件设定比较部2(参照图2),用被解码器2a、2b读出的两个运算用寄存器的值,比较器2h在比较器选择寄存器2f显示的比较器中运行比较运算,并将结果存储到寄存器5a(参照图5)。
在此,如条件设定比较部3所示,当比较运算的一边的值为立即值时,在选择器3g(图3)选择立即值寄存器3e(图3)的值,将其交接给比较器3h,进行比较运算。在条件设定比较部4也进行同样的处理。
将条件设定比较部2的比较器2h、条件设定比较部3的比较器3h、和条件设定比较部4的比较器4h的各自的运算结果,存储到寄存器5a~5c。
而且,在下一个指令运行周期EX(图8的8-B),参照图5,在比较器7c运行存储有比较运算结果的寄存器5a~5c和从指令码得到的分支条件值(寄存器7a的值)的比较运算。另外,复合条件分支指令紧接着指令取出F、解码D,包含两个指令运行周期EX(第一个指令运行周期EX是在条件设定比较部2、3、4的比较运算的运行和对寄存器5的设定,第二个指令运行周期EX是基于由比较器7c进行的寄存器5的值和分支条件值的比较的分支判定)。
在此使用的比较器的种类,为由寄存器7b选择的值“NE”[在表7中用“1”(“001b”)表示,在图3中用“!=”表示]。
在此,寄存器5a、5b、5c如图9(a)所示,分别和寄存器7a的分支条件值的各个比特0、1、2相对应。另外,当寄存器7a的分支条件值的值为“0011b”时,变成如图9(b)所示。
在XBNE的下一个指令运行周期EX(图8的8-B)值,比较器7c的运算结果输出T/F为“T”,即表示复合条件的各条件全部不成立时,跳转对象地址寄存器8的地址被选择器9选择,并被代入程序计数器10。
此时,在指令存储器总线,跳转对象地址寄存器8的地址值被输出,在下一个指令取出周期,“L1”地址的指令从指令存储器被读入(图8的8-C)。
之后,在再次运行复合条件分支指令XBNE 0111b,L1时(图8的8-2),进行和上述同样的处理,但是,因为此次是如图8的8-D(XBNE的指令运行周期EX)所示,全部的条件都成立了,所以比较器7c(参照图3)的运算结果输出T/F成为“F”,下一个指令的地址(n+1)被选择器9选择,并被代入程序计数器10。
此时,在指令存储器总线,下一个指令的地址被输出,在下一个指令取出周期,复合条件分支指令XBNE 0111b,L1的下一个指令从未图示的指令存储器被读入(图8的8-F)。
如上所述,通过预先用条件设定指令设定好多个条件,用复合条件分支指令进行多个条件的比较运算,进而根据该结果和指定了的分支条件值的比较,判定有无分支,从而能够用一个指令进行多个条件的条件分支。
下面,就本实施例的作用效果,结合和专利文献1所述的以往的方式的比较对比进行说明。
相对于在前面所述的以往方式中,必须将比较指令和条件分支指令两个指令组合来进行条件分支,在本实施例中,通过预先进行好条件分支所使用的条件的设定,能够用一个条件分支指令运行条件分支处理。因此,能够对应进一步的快速化。特别是通过适用于重复运行相同条件的处理中,而具有和以往相比增加快速性的效果。另外,在复合条件分支指令中,因为和多个条件相对应的比较处理得到并列运行,因此可以实现高速化。
另外,如以往方式所示,用一个指令表现所有的复合条件时,操作数部分增加,指令长度变长。在指令存储器的总线宽度较窄的系统中,指令取出需要追加周期。
与此相对,在本实施例中,通过形成为可在条件分支指令之外用另外的条件设定指令来设定条件,从而条件设定指令和条件分支指令能够以与通常的比较指令和条件分支指令没有多大变化的指令长度来实现。从而,即使在指令存储器宽度较窄的系统中,没有指令取出的追加周期也可以的情况增加。这是因为它具有:可预先设定好多个条件的条件设定指令;和进行被设定了的复合条件的运算与分支条件的比较,并判定是否进行分支的复合条件分支指令。
因为在本实施例中,条件分支处理只是一个复合条件分支指令被运行,用一个指令的运行周期就可以,所以比以往的用两个指令进行条件分支能够更快速地进行条件分支。
而且,在本实施例中,形成为:具有用于一个一个进行条件设定的选择器1、用于存储复合条件的寄存器2c~2f、用于从运算用寄存器6取得值的解码器2a和2b,通过所述的构成,能够在复合条件分支指令之中运行复合条件的比较运算。
从而,起到如下所述的作用效果(优点)。
在以往方式中,因为形成为复合条件比较指令和条件分支指令两个指令的组合,所以需要两次的指令取出和指令解码的周期。
与此相对,在本实施例中,因为可用条件分支指令一个指令得到相同的结果,用一次的指令取出和指令解码就可以,所以相应地指令周期数减少,更加快速。不过,因为是预先分别用条件设定指令设置多个条件,所以如果包含该部分,在仅一次的条件分支处理中,是以往的方式显得更快速。但是,在适用于多次重复相同复合条件的处理时,重复次数越多,本发明越能快速地处理。
以往方式的复合条件比较的指令因为是全部用一个指令来指定多个条件,所以指令的操作数部分变长。因此,如果指令存储器的总线宽度窄于该指令长度,就需要有追加的指令取出周期,相应地指令运行周期数增加。
另一方面,在本实施例中,因为基本上是用一个指令指定一个条件,所以能够形成为和另外的通常的运算指令等同等程度的指令长度。因此,也可以不需要追加的指令取出周期的可能性很高,所以运行周期数也不增加。
另外,在本实施例中,作为条件分支指令的条件(condition),以比较数值大小的两项比较运算为例进行了说明,但是,本发明不限于所述的两项比较运算,另外,除了大小比较以外,对于基于处理器的标记(零标记、进位标记)等的判定的条件分支也可以适用。另外,作为条件的比较运算,也可以形成为使用逻辑运算。
以上结合上述实施例说明了本发明,但是,本发明不只限于上述实施例的构成,还包含在本发明的范围内可由本领域技术人员进行的各种变形和修改。
Claims (13)
1.一种处理器装置,其特征在于,
作为指令组,包含:按照条件成立的有无,向分支对象进行分支/非分支的条件分支指令;和设定上述条件的条件设定指令,
并具有在运行上述条件设定指令时设定由上述条件设定指令指定的条件的电路,上述电路不进行和上述条件相对应的比较运算,
具有如下电路:在运行上述条件分支指令时,进行和由上述条件设定指令预先设定的上述条件相对应的比较运算,并根据上述比较运算结果,判定是否向分支对象进行分支。
2.根据权利要求1所述的处理器装置,其特征在于,
上述条件分支指令,由复合分支条件指令构成,用于分支判定,上述复合条件分支指令包含由多个条件构成的复合条件,
通过运行多个上述条件设定指令,进行上述复合条件的各条件的设定,
在运行上述复合条件分支指令时,并列地运行和由上述条件分支指令预先设定的多个条件分别相对应的比较运算,并根据多个上述比较运算的结果,进行分支判定,可用一个复合条件分支指令运行基于上述复合条件的条件分支处理。
3.一种处理器装置,其特征在于,
作为指令组,包含:
复合条件分支指令,进行和一个或多个的条件分别相对应的比较运算,并根据在上述比较运算的结果和指定了的分支条件值之间的比较运算,向指定的分支对象进行分支;和
设定一个上述条件的条件设定指令,
上述处理器装置具有:
多个条件设定比较部,通过上述条件设定指令的运行而被选择,由上述条件设定指令指定的条件得到设定,在运行上述复合条件分支指令时,分别运行和由上述条件设定指令设定的条件相对应的比较运算;和
复合条件分支判定部,在运行上述复合条件分支指令时,利用对在多个上述条件设定比较部中分别进行的比较运算结果和由上述复合条件分支指令指定的上述分支条件值进行了比较的结果,判定是否向上述分支对象进行分支。
4.根据权利要求3所述的处理器装置,其特征在于,
上述条件设定指令,在操作数中包含:上述条件设定比较部的指定、比较运算的类别、和比较运算对象的运算用寄存器的寄存器、或上述运算用寄存器的寄存器和立即数据。
5.根据权利要求3所述的处理器装置,其特征在于,
上述复合条件分支指令,在操作码中包含比较运算的类别,在操作数中包含上述分支条件值和上述分支对象。
6.根据权利要求3所述的处理器装置,其特征在于,
在上述条件设定比较部中,通过上述条件设定指令的运行而被设定的条件,在直到如下情况为止的期间被保持:在上述条件设定指令之后运行另外的条件设定指令,通过上述另外的条件设定指令而再次选择上述条件设定比较部,被改写成另外的条件。
7.根据权利要求3所述的处理器装置,其特征在于,
上述条件设定比较部具有:存储比较对象的两个运算用寄存器的地址信息的第一和第二地址寄存器;存储立即数据的立即值寄存器;存储比较运算的类别的比较器选择寄存器;比较器;和对上述第一和第二地址寄存器的地址进行解码的第一和第二解码器,
通过上述条件设定指令的运行,设定上述第一和第二地址寄存器、或上述第一地址寄存器及上述立即值寄存器、和上述比较器选择寄存器的各寄存器的值,
通过上述复合条件分支指令的运行,读出由上述第一和第二地址寄存器、或上述第一地址寄存器指定的上述运算用寄存器,在上述比较器中对通过上述第一和第二地址寄存器的指定而读出的两个上述运算用寄存器的值进行比较,或对通过上述第一地址寄存器的指定而读出的上述运算用寄存器的值和上述立即数据进行比较。
8.根据权利要求3所述的处理器装置,其特征在于,具有分别保存上述多个条件设定比较部的比较运算结果的多个寄存器。
9.根据权利要求8所述的处理器装置,其特征在于,
上述复合条件分支判定部具有:
接受来自对上述复合条件分支指令进行解码的指令解码器的输出,存储由上述复合条件分支指令指定的上述分支条件值的第一寄存器、和存储比较运算的种类的第二寄存器;以及
比较器,就分别保存上述多个条件设定比较部的比较运算结果的上述多个寄存器的输出、和由上述第一寄存器指定的分支条件值,进行由上述第二寄存器指定的比较运算,并输出比较结果。
10.根据权利要求3所述的处理器装置,其特征在于,具有选择器,该选择器根据指令解码器进行的上述条件设定指令的解码结果,选择由上述条件设定指令指定的上述条件设定比较部。
11.根据权利要求10所述的处理器装置,其特征在于,
还具有:
跳转对象地址寄存器,存储由在上述指令解码器中进行了解码的复合条件分支指令指定的跳转对象地址;和
选择器,接受从上述复合条件分支判定部输出的结果的真伪值,在为真时选择上述跳转对象地址,在为伪时选择程序计数器的值+1的地址,在程序计数器中进行设定。
12.一种处理器中的条件分支处理方法,其特征在于,
在指令组中,包含:按照条件成立的有无,向分支对象进行分支/非分支的条件分支指令;和设定上述条件的条件设定指令,
在运行上述条件设定指令时,设定由上述条件设定指令指定的条件,不进行和上述条件相对应的比较运算,
在运行上述条件分支指令时,进行和由上述条件设定指令预先设定的上述条件相对应的比较运算,并根据上述比较运算结果,判定是否向分支对象进行分支。
13.根据权利要求12所述的条件分支处理方法,其特征在于,
上述条件分支指令,由复合分支条件指令构成,用于分支判定,上述复合条件分支指令包含由多个条件构成的复合条件,
通过运行多个上述条件设定指令,进行上述复合条件的各条件的设定,
在运行上述复合条件分支指令时,并列地运行和由上述条件分支指令预先设定的多个条件分别相对应的比较运算,并根据多个上述比较运算的结果,进行分支判定,可用一个复合条件分支指令运行基于上述复合条件的条件分支处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006094589A JP2007272353A (ja) | 2006-03-30 | 2006-03-30 | プロセッサ装置及び複合条件処理方法 |
JP2006094589 | 2006-03-30 | ||
JP2006-094589 | 2006-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101046741A true CN101046741A (zh) | 2007-10-03 |
CN101046741B CN101046741B (zh) | 2010-05-26 |
Family
ID=38560846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100919567A Expired - Fee Related CN101046741B (zh) | 2006-03-30 | 2007-03-30 | 处理器装置和复合条件处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070234019A1 (zh) |
JP (1) | JP2007272353A (zh) |
KR (1) | KR100875401B1 (zh) |
CN (1) | CN101046741B (zh) |
TW (1) | TW200809621A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699454A (zh) * | 2013-12-06 | 2015-06-10 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN106775593A (zh) * | 2016-12-30 | 2017-05-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
CN104699454B (zh) * | 2013-12-06 | 2018-08-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN113485748A (zh) * | 2021-05-31 | 2021-10-08 | 上海卫星工程研究所 | 卫星条件指令系统及其执行方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305185A (ja) * | 2007-06-07 | 2008-12-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
KR101507783B1 (ko) | 2007-10-01 | 2015-04-03 | 엘지전자 주식회사 | 가전장치 및 이의 제어방법 |
US20090198876A1 (en) * | 2008-01-31 | 2009-08-06 | Jimmy Kwok Lap Lai | Programmable Command Sequencer |
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 |
US8880854B2 (en) * | 2009-02-11 | 2014-11-04 | Via Technologies, Inc. | Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register |
GB2480285A (en) * | 2010-05-11 | 2011-11-16 | Advanced Risc Mach Ltd | Conditional compare instruction which sets a condition code when it is not executed |
US8832417B2 (en) | 2011-09-07 | 2014-09-09 | Qualcomm Incorporated | Program flow control for multiple divergent SIMD threads using a minimum resume counter |
US9256429B2 (en) | 2012-08-08 | 2016-02-09 | Qualcomm Incorporated | Selectively activating a resume check operation in a multi-threaded processing system |
US9229721B2 (en) | 2012-09-10 | 2016-01-05 | Qualcomm Incorporated | Executing subroutines in a multi-threaded processing system |
US10705841B2 (en) | 2015-06-24 | 2020-07-07 | International Business Machines Corporation | Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation |
US10698688B2 (en) * | 2015-06-24 | 2020-06-30 | International Business Machines Corporation | Efficient quantization of compare results |
US10620952B2 (en) | 2015-06-24 | 2020-04-14 | International Business Machines Corporation | Conversion of boolean conditions |
US11886883B2 (en) * | 2021-08-26 | 2024-01-30 | International Business Machines Corporation | Dependency skipping in a load-compare-jump sequence of instructions by incorporating compare functionality into the jump instruction and auto-finishing the compare instruction |
WO2024264022A1 (en) * | 2023-06-23 | 2024-12-26 | Texas Instruments Incorporated | Conditional branch instructions for aggregating conditional branch operations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
EP0474297B1 (en) * | 1990-09-05 | 1998-06-10 | Koninklijke Philips Electronics N.V. | Very long instruction word machine for efficient execution of programs with conditional branches |
JPH1185506A (ja) | 1997-09-11 | 1999-03-30 | Fujitsu Ltd | 複数条件コード処理機能を有するデータ処理装置 |
-
2006
- 2006-03-30 JP JP2006094589A patent/JP2007272353A/ja not_active Withdrawn
-
2007
- 2007-03-21 US US11/723,623 patent/US20070234019A1/en not_active Abandoned
- 2007-03-27 TW TW096110549A patent/TW200809621A/zh unknown
- 2007-03-29 KR KR1020070031101A patent/KR100875401B1/ko not_active IP Right Cessation
- 2007-03-30 CN CN2007100919567A patent/CN101046741B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699454A (zh) * | 2013-12-06 | 2015-06-10 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104699454B (zh) * | 2013-12-06 | 2018-08-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN106775593A (zh) * | 2016-12-30 | 2017-05-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
CN106775593B (zh) * | 2016-12-30 | 2019-12-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
CN113485748A (zh) * | 2021-05-31 | 2021-10-08 | 上海卫星工程研究所 | 卫星条件指令系统及其执行方法 |
CN113485748B (zh) * | 2021-05-31 | 2022-08-12 | 上海卫星工程研究所 | 卫星条件指令系统及其执行方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100875401B1 (ko) | 2008-12-23 |
CN101046741B (zh) | 2010-05-26 |
US20070234019A1 (en) | 2007-10-04 |
KR20070098688A (ko) | 2007-10-05 |
JP2007272353A (ja) | 2007-10-18 |
TW200809621A (en) | 2008-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101046741A (zh) | 处理器装置和复合条件处理方法 | |
CN1210647C (zh) | 适于作由正值处理及饱和运算处理组成的修整处理的处理器 | |
CN1178145C (zh) | 高效执行特长指令字的处理器 | |
CN1269041C (zh) | 半导体集成电路和存储器测试方法 | |
CN1174313C (zh) | 多指令集的数据处理 | |
CN1877532A (zh) | 编译装置 | |
CN1218222A (zh) | 数据序列产生方法及设备、转换方法及计算机 | |
CN1532693A (zh) | 处理器和编译器 | |
CN1508709A (zh) | 仲裁电路和数据处理系统 | |
CN101046812A (zh) | 一种数据库表记录构造与检查的方法及其装置 | |
CN1183462C (zh) | 可变流水线级数的数据处理装置 | |
CN1845213A (zh) | 一种实现sms4密码算法中加解密处理的方法 | |
CN1270232C (zh) | 信息处理装置以及电子设备 | |
CN1202473C (zh) | 具有中断控制功能的信息处理方法和信息处理装置 | |
CN1278228C (zh) | 两层粘贴缓冲区和显示装置 | |
CN1035190A (zh) | 基于操作数长度和对位的微码转移 | |
CN1848097A (zh) | 存储器地址生成装置以及具有它的处理器、存储器地址生成方法 | |
CN1862511A (zh) | 一种软件单元的测试方法 | |
CN1530826A (zh) | 低电力动作控制装置及程序最佳化装置 | |
CN1483188A (zh) | 语音编码方法及其装置 | |
CN101031884A (zh) | 处理器 | |
CN1114153C (zh) | 支持程序编码长度减小的微处理器 | |
CN1959630A (zh) | 微处理器 | |
CN1425982A (zh) | 程序变换装置、方法及进行程序变换处理的计算机程序 | |
CN1278386A (zh) | 解码方法和记录解码程序的记录媒体 |
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 | ||
C56 | Change in the name or address of the patentee |
Owner name: RENESAS ELECTRONICS CO., LTD. Free format text: FORMER NAME: NEC CORP. |
|
CP01 | Change in the name or title of a patent holder |
Address after: Kanagawa, Japan Patentee after: Renesas Electronics Corporation Address before: Kanagawa, Japan Patentee before: NEC Corp. |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100526 Termination date: 20140330 |