CN1259624C - 半导体装置 - Google Patents
半导体装置 Download PDFInfo
- Publication number
- CN1259624C CN1259624C CNB031452450A CN03145245A CN1259624C CN 1259624 C CN1259624 C CN 1259624C CN B031452450 A CNB031452450 A CN B031452450A CN 03145245 A CN03145245 A CN 03145245A CN 1259624 C CN1259624 C CN 1259624C
- Authority
- CN
- China
- Prior art keywords
- address
- instruction
- branch
- semiconductor device
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
Abstract
本发明目的在于提供能够防止因产生以往那样的无用执行周期而引起的处理性能下降的半导体装置。本发明在用IFB 2进行读取处理时,根据来自EXB 4的分支成立信号(BRTKN 9)的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,提供给指令存储器(1),通过这样在IFB 2控制与这些地址对应的读取处理的执行。
Description
技术领域
本发明涉及作为各种运算处理用按照存储器上的指令对条件分支的处理执行进行控制的半导体装置。
背景技术
向来在广泛用作各种运算处理,按照存储器内存储的指令程序执行各种处理的半导体装置中,作为条件分支控制,在根据分支成立还是不成立执行分支为该地址的条件分支时,预先对预测的条件分支执行指令读取,在分支条件确定后,若预先预测执行的指令读取是正确的,则继续进行该处理不变,若是错误的,则中止处理,对条件分支的处理执行进行控制,使其再度执行指令。
下面利用附图对这样的已有的半导体装置进行说明。
图13为已有的半导体装置的构成方框图。已有的半导体装置如图13所示,包含将指令代码构成的指令程序作为数据存储的指令存储器1、读取来自指令存储器1的指令程序数据6的指令读取单元(下面称为“IFB”)2、将构成指令程序的代码7译码的译码单元(下面称为“DECB”)3、以及根据与译码的指令对应的控制信号8执行指令的执行单元(下面称为“EXB”)4。
在上述构成中,将地址5从IFB2输入至指令存储器1,将数据6从指令存储器1输出给IFB2,指令代码7从IFB2输出给DECB3,将控制信号8从DECB3输出给EXB4,条件分支成立信号(下面称为“BRTKN”)9从EXB4输入至IFB2及DECB3。系统时钟信号CLK输入至各单元,根据同一个CLK产生的时序进行流水线(pipeline)动作。
下面对如上所述构成的已有的半导体装置,就执行条件分支指令的情况,对其动作进行说明。
图14为已有的半导体装置在条件分支指令执行时的时序图。在图14中,a期间在IFB2进行寄存器之间的差值运算SUB D2、D1的读取。
b期间在IFB2进行条件分支指令BEQdisp8的读取,在DECB3进行SUB D2、D1的译码。条件分支指令BEQdisp8是根据刚才前面的标记变化指令在使零标记为1时分支的指令。也就是说,若运算结果为零则分支,除此以外的情况则不分支,执行下面的指令。
c期间在IFB2进行通常的下一个指令即AND D0、D1的读取,在DECB3进行BEQdisp8的译码,在EXB4执行SUB D2、D1。在运算结果为零(零标记为1)时,在c期间的正当中生成条件分支成立信号BRTKN9(高电平)。
在d期间,使BRTKN9返回,在IFB2进行分支目的地指令的MOV D2、AO的读取,在DECB3,预测分支不成立,执行读取的AND D0、D1的译码,而在EXB4,执行BEQdisp8。即使BRTKN9返回,使DECB3的MOV D2、A0的译码为无效。
在e期间,在DECB3执行分支目的地指令的MOV D2、A0的译码,在EXB4因BRTKN9而不执行AND D0、D1的译码,使其无效化,因此不执行任何处理。
在f期间,执行分支目的地指令的MOV D2、A0。
这样的已有的半导体装置,在预先预测并执行的指令读取出错时,即条件分支成立时,由于使预测并读取的指令的执行处理无效化,因此存在这样的问题,即因指令读取的预测执行而产生无用的执行周期,导致处理性能下降。
发明内容
本发明的目的在于解决上述向来存在的问题,提供能够防止因产生以往那样的无用的执行周期而导致处理性能下降的半导体装置。
本发明的第1项所述的半导体装置,包含与地址对应将指令代码构成的指令程序作为数据存储的指令存储器、读取所述指令程序数据的指令读取单元、进行所述指令代码的译码的译码单元、以及根据与译码的指令对应的控制信号指令该指令的执行单元,所述地址由所述指令读取单元提供给所述指令存储器,该地址的所述指令程序数据从所述指令存储器输入至所述指令读取单元,与所述指令程序数据对应的指令代码从所述指令读取单元输入至所述译码单元,与将所述指令代码译码的指令对应的控制信号从所述译码单元输入至所述执行单元,从所述执行单元根据利用所述控制信号执行指令的结果,将表示条件分支的状态的条件分支成立信号输出,根据该条件分支成立信号按照所述指令存储器上的指令程序,对条件分支的处理执行进行控制,而且所述半导体装置具有选择器,所述选择器在所述指令读取单元进行读取处理时,根据所述条件分支成立信号的状态,选择条件分支成立时的分支目的地地址或条件分支不成立时的地址,提供给所述指令存储器。
采用这种结构,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第2项所述的半导体装置是本发明的第1项所述的半导体装置,而且具有根据所述指令程序数据所包含的位移量信息生成所述分支目的地地址的单元。
采用这种结构,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第3项所述的半导体装置是本发明的第2项所述的半导体装置,而且具有这样的结构,即具有根据来自所述指令读取单元的指令代码判断条件分支指令的单元,根据该判断结果,检测条件分支指令的执行情况,仅在所述条件分支指令执行时,根据条件分支成立信号进行地址选择。
采用这种结构,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第4项所述的半导体装置是本发明的第2项所述的半导体装置,而且具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号供给与所述2维的各排列对应设置的2个地址译码器中的后决定的1个译码器的输出侧。
采用这种结构,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第5项所述的半导体装置是本发明的第2项所述的半导体装置,而且具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维的各排列对应设置的2个地址译码器中的后决定的1个译码器的输入侧。
采用这种结构,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第6项所述的半导体装置是本发明的第3项所述的半导体装置,而且具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维各排列对应设置的2个地址译码器中的后决定的1个译码器的输出侧。
采用这种结构,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第7项所述的半导体装置是本发明的第3项所述的半导体装置,而且具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维各排列对应设置的2个地址译码器中的后决定的1个译码器的输入侧。
采用这种结构,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
本发明的第8项所述的半导体装置是本发明的第3项所述的半导体装置,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,在与所述2维各排列对应设置的2个地址译码器中,将条件分支指令及分支目的地指令的地址利用连接程序进行映射,使得对先决定的地址译码器的地址输入相同,仅对后决定的地址译码器的地址输入发生变化。
采用这种结构,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
如上所述,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
因此,能够防止因产生以往那样的无效周期而引起的处理性能下降。
另外,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
因此,能够不产生以往那样的无效周期,防止处理性能下降,同时能够在对条件分支命令的读取处理执行时以外的时间,不进行地址选择,没有无谓的功率消耗,能够降低整个装置的功耗。
另外,指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,在与所述2维的各排列对应设置的2个地址译码器中,将条件分支指令及分支目的地指令的地址利用连接程序进行映射,以使对先决定的地址译码器的地址输入相同,仅对后决定的地址译码器的地址输入发生变化,这样,在再配置的全部条件分支指令中,可不产生以往那样的无效化周期。
附图说明
图1所示为本发明实施例1的半导体装置构成方框图。
图2所示为该实施例1的半导体装置的动作时序图。
图3所示为本发明实施例2的半导体装置构成方框图。
图4所示为该实施例2的半导体装置的动作时序图。
图5所示为本发明实施例3的半导体装置构成方框图。
图6所示为该实施例3的半导体装置的动作时序图。
图7所示为本发明实施例4的半导体装置构成方框图。
图8所示为该实施例4的半导体装置的动作时序图。
图9所示为本发明实施例5的半导体装置构成方框图。
图10所示为该实施例5的半导体装置的动作时序图。
图11所示为本发明实施例6的半导体装置方框图。
图12所示为该实施例6的半导体装置的动作时序图。
图13所示为已有的半导体装置构成方框图。
图14所示为该已有技术的例子的半导体装置的动作时序图。
图15为本发明实施例7的半导体装置的地址映射流程图。
图16为该实施例7的半导体装置的地址映射图。
图17为该实施例7的半导体装置的再映射后的地址映射图。
具体实施方式
下面参照附图具体说明表示本发明实施例的半导体装置。
实施例1
下面说明本发明实施例1的半导体装置。
图1所示为本实施例1的半导体装置构成方框图。在图1中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7及控制信号8与已有技术中说明的各要素相同。
在IFB2内部,具有地址生成器10、地址锁存器13、保持位移量信息的disp锁存器14、AU18及选择器20,地址生成器10的输出12及输入至地址锁存器13及选择器20,从数据6抽取的位移量信息15被输入至disp锁存器14,地址锁存器13的输出16及disp锁存器14的输出17被输入至AU18,AU18的输出19输入至选择器20,BRTKN9作为选择信号输入至选择器20,选择器20的输出21作为地址5输入至指令存储器1。
对于如上所述构成的本实施例1的半导体装置,下面详细说明其动作。
图2所示为本实施例1的半导体装置的动作时序图。在图2中,在a期间输出地址(ADR)0000,在IFB2进行寄存器间运算SUB D2、D1的读取。
在b期间,输出地址0002,在IFB2中进行条件分支指令BEQ disp8的读取,在DECB3进行SUB D2、D1的译码,再在b期间的最后,将BEQdisp8的指令所包含的位移量信息的20存入disp锁存器14,将地址0002存入地址锁存器13。若刚才前面的运算结果为零,则条件分支指令BEQ disp8分支,除此之外的情况则不分支,执行下一个指令。
在c期间,首先输出地址0004,在IFB2进行通常的下一个指令AND D0、D 1的读取,地址锁存器13的值0002及disp锁存器14的值0020被输入至AU18,作为分支地址19输出0022。在DECB3中,进行BEQ disp8的译码,在EXB4,执行SUB D2、D1。
在本实施例中,由于SUB D2、D1的运算结果为零,因此在c期间的正当中,生成条件分支成立信号BRTKN9。若将BRTKN9输入至选择器20,则选择分支地址19,选择器的输出21变为0022,地址5变为0022。根据输出的地址0022,在IFB2中,执行存储于地址0022的指令MOV D2、A0的读取。
在d期间,在DECB3,进行分支目的地指令MOV D2、A0的译码,在EXB4,执行BEQ disp8。但是,由于条件分支的动作已经结束,因此实际上什么也不执行。
在e期间,在EXB4,执行分支目的地指令MOV D2、A0。
如上所述,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够不产生以往那样的无效周期,防止因此引起的处理性能下降。
实施例2
下面说明本发明实施例2的半导体装置。
图3所示为本实施例2的半导体装置构成方框图。在图3中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7、控制信号8、BRTKN9、地址生成器10、地址12、地址锁存器13、disp锁存器14、地址锁存器输出16、disp锁存器输出17、AU18、分支地址19、选择器20及选择器输出21与实施例1说明的各要素相同。
在DECB3的内部具有条件分支指令判定器22,在条件分支指令输入至DECB3的情况下,从条件分支指令判定器22输出表示条件分支指令执行的信号BREN23。BREN23被输入至地址锁存器13、disp锁存器14、AU18及选择器20,仅在BREN23为HI(高电平)时,地址锁存器13、disp锁存器14、AU18及选择器20动作。
下面就如上所述构成的本实施例2的半导体装置,详细说明其动作。
图4为本实施例2的半导体装置的动作时序图。在图4中,在c期间,BREN23为高电平,仅在该期间,地址锁存器13、disp锁存器14、AU18及选择器20动作。另一方面,在BREN23为低电平的期间,地址锁存器13、disp锁存器14、AU18及选择器20停止工作。其他的动作与实施例1说明的各要素的动作相同。
如上所述,仅在条件分支指令执行时,在进行对该指令的读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够不产生以往那样的无效周期,防止处理性能下降,同时能够在对条件分支命令的读取处理执行以外的时间,不进行地址选择,没有无谓的功率消耗,能够降低整个装置的功耗。
实施例3
下面说明本发明实施例3的半导体装置。
图5所示为本实施例3的半导体装置构成方框图。在图5中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7、控制信号8、BRTKN9、地址锁存器13、disp锁存器14、地址锁存器输出16、disp锁存器输出17、AU18及分支地址19与实施例2说明的各要素相同。
在本实施例中,地址锁存器13、disp锁存器14及AU18配置在指令存储器1内部。还有,在指令存储器1的内部,配置X译码器24、Y译码器30及存储器阵列25,在Y译码器30的内部,配置正常地址的Y译码器28及分支地址的Y译码器29,输入正常Y译码器输出31及分支Y译码器输出33作为输入数据,配置作为选择信号将BRTKN9输入的选择器26、作为输入数据将正常Y译码器输出32及分支Y译码器输出34输入,作为选择信号是将BRTKN9输入的选择器27、以及输入分支地址19及地址5的地址判定器35,选择器26的输出37及选择器27的输出38输入至存储器阵列25,地址判定器35的输出YADROV36输入至DECB3。
下面就如上所述构成的本实施例3的半导体装置,详细说明其动作。
图6所示为本实施例3的半导体装置的动作时序图。在图6中,XDEC表示输入至X译码器的地址5的高端2位,YDECN表示输入至Y译码器30的地址5的低端2位,XDECP表示X译码器24的预充电信号,YDECP表示Y译码器30的预充电信号。37表示选择器26的输出,38表示选择器27的输出。
图中的a及b的区间,进行与实施例2相同的动作。在图中的c区间,首先,XDECP及YDECP为高电平,从X译码器24的全部输出及从Y译码器30的全部输出为非选择状态(低电平)。然后,XDECP变为低电平,X译码器24的选择线(line)变为高电平,被输入至存储器阵列25。再往后,YDECP变为低电平,Y译码器30的选择线变为高电平,被输入至存储器阵列25。
在图中的c区间,对X译码器24输入00,对正常Y译码器28输入04,对分支Y译码器29输入22。正常Y译码器28的输出31在正常Y译码器输入为00时变为高电平,而输出32在输入为22时发生变化。分支Y译码器29的输出33在正常Y译码器输入为00时变为高电平,而输出34在输入为22时发生变化。选择器26的输出37是在地址的低端2位为00时的选择信号,在低端2位为00时变为高电平。选择器27的输出38是地址的低端2位为22时的选择信号,在低端2位为22时变为高电平。
在本实施例的c期间,由于正常Y译码器输入为00,分支Y译码器输入为22,因此31及34变为高电平,32及33固定在低电平。选择器26及27在BRTKN9为低电平时,选择正常Y译码器输出信号,而在BRTKN9为高电平时,选择分支Y译码器输出信号。在本实施例中,由于BRTKN变为高电平,因此选择器27的输出变为高电平,选择器26的输出固定在低电平。亦即,22输入至Y译码器30,作为输入存储器25的地址,输入分支目的地地址0022。由于在不分支时的地址0004中存储了AND D0、D1,而在分支地址0022中存储了MOVD2、A0,因此在IFB2读取MOV D2、A0的指令。
以后的动作与实施例2相同。另外,分支地址19及地址5被输入至地址判定器35,在分支地址19的值在使X译码器输入变化时,即在本实施例中,高端2位变化时,输入至DECB3的YADROV为高电平,进行与以往相同的条件分支动作。
另外,利用编译程序及连接程序,对包含条件分支指令的函数的前面的地址进行地址映射,使分支地址19与地址5的相差值在低端2位以内,通过这样能够使X译码器的输入不发生变化。
如上所述,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够防止以往那样的无效周期引起的处理性能下降。
实施例4
下面说明本发明实施例4的半导体装置。
图7所示为本实施例4的半导体装置构成方框图。在图7中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7、控制信号8、BRTKN9、地址锁存器13、disp锁存器14、地址锁存器输出16、disp锁存器输出17、AU18、X译码器24、Y译码器30、存储器阵列25、正常Y译码器28、分支Y译码器29、正常Y译码器输出31及32、分支地址19、Y译码器输出33及34、选择器26及27、选择器输出37及38、以及地址判定器35与实施例3说明的各要素相同。
在DECB3的内部具有条件分支指令判定器22,在条件分支指令被输入至DECB3时,从条件分支指令判定器22输出表示条件分支指令执行的信号BREN23。BREN23被输入至地址锁存器13、disp锁存器14、AU18、地址判定器35及分支Y译码器29,仅在BREN23为高电平时,地址锁存器13、disp锁存器14、AU18、地址判定器35及分支Y译码器29动作。
下面就如上所述构成的本实施例4的半导体装置,详细说明其动作。
图8所示为本实施例4的半导体装置的动作时序图。在图8中,在c期间BREN为高电平,仅在该期间,地址锁存器3513、disp锁存器14、AU18、地址判定器35及分支Y译码器29动作。在BREN为低电平的期间,地址锁存器13、disp锁存器14、AU18、地址判定器35及分支Y译码器29停止工作。其它动作与实施例3说明的各要素的动作相同。
如上所述,仅在条件分支指令执行时,在进行对该指令的读取处理时,可以根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够不产生以往那样的无效周期,防止处理性能下降,同时能够在执行对条件分支指令的读取处理以外的时间,不进行地址选择,没有无谓的功率消耗,能够降低整个装置的功耗。
实施例5
下面说明本发明实施例5的半导体装置。
图9所示为本实施例5的半导体装置构成方框图。在图9中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7、控制信号8、BRTKN9、地址锁存器13、disp锁存器14、地址锁存器输出16、disp锁存器输出17、AU18、X译码器24、存储器阵列25及地址判定器35与实施例3说明的各要素相同。
在指令存储器1的内部,地址5及分支地址19输入数据,而作为选择信号将BRTKN9输入的选择器40的输出39,输入至Y译码器41,Y译码器输出38输入至存储器阵列25。
下面对具有如上所述构成的本实施例5的半导体装置,详细说明其动作。
下图10是表示本实施例5的半导体装置的动作的时序图。在图10中,ADR、XDEC、YDECN及YDECB表示与实施例4相同的信号。选择器40的输出39,在选择信号BRTKN9为高电平时,为正常地址5的低端2位、即YDECN,在BRTKN9为低电平时,为分支地址19的低端2位、即YDECB。
从Y译码器41,将Y译码器输入39为04时为高电平的Y译码器输出37以及Y译码器输入39为22时为高电平的Y译码器输出38,分别输入至存储器阵列25。
c期间的初期,由BRTKN信号为低电平,因此选择器40的输出39为04。但是,该期间由于YDECP为高电平,因此Y译码器41的输出全部固定在低电平。
在c期间的中途,若BRTKN9变为高电平,则选择器40的输出39变为22,若YDECP变为低电平,则在Y译码器41的输入39为22时成为高电平的Y译码器输出38为高电平。即,Y译码器41输入22,作为对存储器25的地址,输入分支目的地地址0022。
由于在不分支时的地址0004中存储了AND D0、D1,而在分支地址0022中存储了MOV D2、A0,因此在IFB2中,读取MOV D2、A0的指令。
以后的动作与实施例3相同。
如上所述,在进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够防止发生以往那样的无效周期引起的处理性能下降。
实施例6
下面说明本发明实施例6的半导体装置。
图11所示为本实施例6的半导体装置构成方框图。在图11中,指令存储器1、IFB2、DECB3、EXB4、地址5、数据6、指令代码7、控制信号8、BRTKN9、地址锁存器13、disp锁存器14、地址锁存器输出16、disp锁存器输出17、AU18、X译码器24、存储器阵列25、地址判定器35、选择器40、选择器输出39以及Y译码器41与实施例5说明的各要素相同。
DECB3内部具备条件分支指令判定器22,在条件分支指令输入至DECB3的情况下,从条件分支指令判定器22输出表示条件分支指令执行的信号BREN23。BREN23被输入地址锁存器13、disp锁存器14、AU18、地址判定器35,仅在BREN23为高电平的情况下,地址锁存器13、disp锁存器14、AU18、地址判定器35动作。
下面就具有如上所述结构的本实施例6半导体装置,对其动作加以详细说明。
图12所示为本实施例6的半导体装置的动作时序图。在图12中,在c期间,BREN为高电平,仅在该期间,地址锁存器13、disp锁存器14、AU18、地址判定器35动作。在BREN为低电平期间,地址锁存器13、disp锁存器14、AU18、地址判定器35停止动作。其他动作与实施例5说明的各要素的动作相同。
如上所述,仅在条件分支指令执行时,在对该指令进行读取处理时,能够根据分支成立信号的状态,在条件分支成立时选择分支目的地地址,在条件分支不成立时选择下一个指令的地址,执行与这些地址对应的读取处理,这样就可以消除以往那样的预测执行的处理无效化的情况,不产生无用的执行周期。
其结果是,能够不产生以往那样的无效周期,防止处理性能下降,同时能够在对条件分支命令的读取处理执行以外的时间,不进行地址选择,没有无谓的功率消耗,能够降低整个装置的功耗。
实施例7
下面说明本发明实施例7的半导体装置。
下面说明本实施例7的半导体装置的地址映射方法。
图15所示为本实施例7的半导体装置的映射方法流程图。在图15的步骤1中,进行各指令的地址映射。
然后,在步骤2,将各条件分支指令的地址与利用所述条件分支指令进行分支的分支目的地指令的地址进行比较。在本实施形态中,设指令的地址为20位。
然后,在步骤3,若所述条件分支指令与分支目的地指令的地址的高端10位相同,则转向步骤4,若不相同,则转向步骤5。
在步骤4,地址的映射结束。在步骤5,进行地址的再映射,在进行分支指令配置最佳处理后,转向步骤2。
图16及图17为本实施例7的半导体装置中进行地址映射的实施例。在图15的步骤1,利用连接程序进行地址映射,图16为刚进行该地址映射后的地址映射图。
在图16,条件分支指令BEQ disp8与映射为2进制数地址0000 0000 00111000 0000。在本实施例中,所述条件分支指令BEQ disp8的disp8为2进制数1000 0000。因而,分支目的地指令MOV D2、A0映射为2进制数地址00000000 0100 0000 0000。
在图15的步骤2,将条件分支指令与分支目的地指令的地址加以比较,在步骤3,判定高端10位是否相同,若相同,则转向步骤4,若不相同,则转向步骤5。
在本实施例中,由于高端10位不相同,因此转向步骤5,进行地址的再映射。在本实施例中,连接程序对包含条件分支指令的子程序的配置地址进行控制等,对条件分支指令进行配置,使得即使加上表示disp8的2进制数10000000,也不向高端10位以上进位,即条件分支指令的低端10位的地址为小于从最大值1111111111(2进制数)减去disp8的差的数值。
图17为再映射后的地址映射图,在图17中,条件分支指令BEQ disp 8映射为2进制数地址1000 0000 0000 0000 0000,分支目的地指令MOV D2、A0映射为2进制数地址1000 0000 0000 1000 0000。
在图15的步骤3,判断为地址的高端10位相同,转向步骤4,地址映射结束。
其结果是,在再配置的全部条件分支指令中,能够不产生以往那样的无效周期,防止处理性能下降。
Claims (8)
1.一种半导体装置,包含与地址对应将指令代码构成的指令程序作为数据存储的指令存储器、读取所述指令程序数据的指令读取单元、进行所述指令代码的译码的译码单元、以及根据与译码的指令对应的控制信号执行该指令的执行单元,所述地址由所述指令读取单元提供给所述指令存储器,该地址的所述指令程序数据从所述指令存储器输入至所述指令读取单元,与所述指令程序数据对应的指令代码从所述指令读取单元输入至所述译码单元,与将所述指令代码译码的指令对应的控制信号从所述译码单元输入至所述执行单元,从所述执行单元根据利用所述控制信号执行指令的结果,将表示条件分支的状态的条件分支成立信号输出,根据该条件分支成立信号按照所述指令存储器上的指令程序,对条件分支的处理执行进行控制,其特征在于,
具备选择器,所述选择器在所述指令读取单元进行读取处理时,根据所述条件分支成立信号的状态,选择条件分支成立时的分支目的地地址或条件分支不成立时的地址,提供给所述指令存储器。
2.如权利要求1所述的半导体装置,其特征在于,具有根据所述指令程序数据中所包含的位移量信息生成所述分支目的地地址的单元。
3.如权利要求2所述的半导体装置,其特征在于,具有这样的结构,即具有根据来自所述指令读取单元的指令代码判断条件分支指令的单元,根据该判断结果,检测条件分支指令的执行情况,仅在所述条件分支指令执行时,根据所述条件分支成立信号进行地址选择。
4.如权利要求2所述的半导体装置,其特征在于,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维的各排列对应设置的2个地址译码器中的后决定的1个译码器的输出侧。
5.如权利要求2所述的半导体装置,其特征在于,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维的各排列对应设置的2个地址译码器中的后决定的1个译码器的输入侧。
6.如权利要求3所述的半导体装置,其特征在于,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维的各排列对应设置的2个地址译码器中的后决定的一个译码器的输出侧。
7.如权利要求3所述的半导体装置,其特征在于,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,将所述条件分支成立信号作为地址选择信号提供给与所述2维各排列对应设置的2个地址译码器中的后决定的一个译码器的输入侧。
8.如权利要求3所述的半导体装置,其特征在于,具有这样的结构,即所述指令存储器由2维排列的存储单元组成,以便对其地址进行2维指定,在与所述2维的各排列对应设置的2个地址译码器中,对条件分支指令及分支目的地指令的地址利用连接程序进行映射,使得对先决定的地址译码器的地址输入相同,仅对后决定的地址译码器的地址输入发生变化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002183754 | 2002-06-25 | ||
JP2002183754A JP3877650B2 (ja) | 2002-06-25 | 2002-06-25 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1470994A CN1470994A (zh) | 2004-01-28 |
CN1259624C true CN1259624C (zh) | 2006-06-14 |
Family
ID=29996687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031452450A Expired - Fee Related CN1259624C (zh) | 2002-06-25 | 2003-06-25 | 半导体装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7178012B2 (zh) |
JP (1) | JP3877650B2 (zh) |
CN (1) | CN1259624C (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3641327B2 (ja) | 1996-10-18 | 2005-04-20 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US6119221A (en) * | 1996-11-01 | 2000-09-12 | Matsushita Electric Industrial Co., Ltd. | Instruction prefetching apparatus and instruction prefetching method for processing in a processor |
US6260138B1 (en) * | 1998-07-17 | 2001-07-10 | Sun Microsystems, Inc. | Method and apparatus for branch instruction processing in a processor |
US6609194B1 (en) * | 1999-11-12 | 2003-08-19 | Ip-First, Llc | Apparatus for performing branch target address calculation based on branch type |
JP2001172504A (ja) | 1999-12-21 | 2001-06-26 | Kanegafuchi Chem Ind Co Ltd | 硬化性組成物および硬化性導電性組成物 |
US20020099910A1 (en) | 2001-01-23 | 2002-07-25 | Shah Emanuel E. | High speed low power cacheless computer system |
-
2002
- 2002-06-25 JP JP2002183754A patent/JP3877650B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-25 US US10/602,640 patent/US7178012B2/en not_active Expired - Fee Related
- 2003-06-25 CN CNB031452450A patent/CN1259624C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004030085A (ja) | 2004-01-29 |
JP3877650B2 (ja) | 2007-02-07 |
US7178012B2 (en) | 2007-02-13 |
US20040004869A1 (en) | 2004-01-08 |
CN1470994A (zh) | 2004-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1279442C (zh) | 选择性存取不同指令缓冲阶层的装置及方法 | |
CN1191524C (zh) | 预取指令的执行方法和设备 | |
CN1308826C (zh) | 用于smt处理器上的cpi调度的系统和方法 | |
CN1308825C (zh) | 用于在smt处理器中进行cpi负载平衡的系统和方法 | |
CN1222985A (zh) | 在多级流水线结构中处理条件跳转的方法 | |
CN1577275A (zh) | 使用遗传算法的微处理器 | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
CN1828563A (zh) | 处理器及信息处理方法 | |
CN1722130A (zh) | 可重配置运算装置 | |
CN1877532A (zh) | 编译装置 | |
CN1503142A (zh) | 控制高速缓存的高速缓存系统和高速缓存控制装置 | |
CN1532692A (zh) | 数据处理系统及其控制方法 | |
CN1741193A (zh) | 非易失性存储装置 | |
CN1828541A (zh) | Java操作系统中定时任务的实现方法 | |
CN1716230A (zh) | 运算装置和运算装置控制方法 | |
CN1645516A (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN1607499A (zh) | 可变流水线级数的数据处理装置 | |
CN1940867A (zh) | 信息处理装置和方法、记录媒体和程序 | |
CN1855068A (zh) | 测试多线程软件并发冲突的方法 | |
CN1734415A (zh) | 分枝预测装置及分枝预测方法 | |
CN1259624C (zh) | 半导体装置 | |
CN1529858A (zh) | 计算系统 | |
CN1304944C (zh) | 预先读取脱序执行指令的方法及处理器 | |
CN1959630A (zh) | 微处理器 | |
CN1960194A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060614 Termination date: 20120625 |