执行两种指令长度代码的处理机及其指令码输入装置.pdf

上传人:b*** 文档编号:654234 上传时间:2018-03-01 格式:PDF 页数:33 大小:1.38MB
返回 下载 相关 举报
摘要
申请专利号:

CN97103068.5

申请日:

1997.03.19

公开号:

CN1177140A

公开日:

1998.03.25

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 9/32申请日:19970319授权公告日:20021127终止日期:20140319|||授权|||公开|||

IPC分类号:

G06F9/32

主分类号:

G06F9/32

申请人:

三菱电机株式会社;

发明人:

大谷寿贺子; 岩田俊一

地址:

日本东京都

优先权:

1996.09.13 JP 243375/96

专利代理机构:

中国专利代理(香港)有限公司

代理人:

姜郛厚;叶恺东

PDF下载: PDF下载
内容摘要

一种备有两种指令长度代码的处理机,通过缩小代码尺寸及减少H/W量来达到高速化。在该处理机中将指令码的配置方法限制在以下2种。即(1)将2个16位长指令码存储在32位长的字边界内,(2)将单一的32位长指令码直接存储在32位字边界内。再将分支目标的地址限制在32位字边界内,同时在各指令码的MSB上设置1位的指令长度标识符,进行指令码的执行顺序的控制。从而处理机内的从指令读取部至指令译码部的传输路径变为2种。

权利要求书

1: 一种执行两种指令长度代码的处理机,其特征在于:备有指令码输入装 置和指令读取装置,所说的指令码输入装置备有只由给出N(N为1以上的 整数)位长指令的第1指令数据信号和给出2N位长指令的第2指令数据信 号构成的指令码,上述第1及第2指令数据信号的指令码按照下述两个规则 配置,即(1)将2个上述第1指令数据信号存储在2N位长的字边界内,(2)将各 个上述第2指令数据信号存储在2N位字边界内; 所说的指令读出装置从上述指令码输入装置读取后保持按上述规则配 置的上述指令码。
2: 根据权利要求1所述的执行两种指令长度代码的处理机,其特征在于: 还备有接收由上述指令读取装置传输的给出上述指令码的信号、通过对上 述指令码将分支目标地址限制在上述2N位字边界内、对上述指令码进行译 码的指令译码装置。
3: 根据权利要求2所述的执行两种指令长度代码的处理机,其特征在于: 上述各第1及第2指令数据信号在其规定的位的位置备有给出指令执行顺 序的控制信息的指令长度标识符数据。
4: 根据权利要求2或3所述的执行两种指令长度代码的处理机,其特征 在于:只在上述指令码的上述2N位字边界内受理执行外部中断信号及特定 的地址时发生的由各PC断开中断信号产生的中断请求,进行与上述中断请 求对应的处理。
5: 根据权利要求2或3所述的执行两种指令长度代码的处理机,其特征 在于:当在上述2N位字边界内配置的上述指令码是指示执行由软件控制的 中断的俘获指令时,由上述指令译码装置对上述俘获指令进行译码,进行与 上述俘获指令对应的处理。
6: 一种指令码输入装置,它是对处理机赋与指令码的指令码输入装置,上 述指令码由给出N(N为1以上的整数)位长指令的第1指令数据信号和给出 2N位长指令的第2指令数据信号构成, 上述第1及第2指令数据信号的指令码按照下述两个规则配置: (1)将2个上述第1指令数据信号存储在2N位长的字边界内, (2)将各个上述第2指令数据信号存储在2N位字边界内。

说明书


执行两种指令长度代码的处理机及其指令码输入装置

    本发明涉及进行多个指令码的运算用的数据处理装置,具体地说,涉及处理机中的指令码的配置技术。

    通常,在处理机中,指令被作为指令码存储在通过数据总线与处理机连接的存储器中。这时,该存储器中存储的指令码的格式有以下两种:①指令码的长度与指令的种类无关而始终设定为一常数的″固定长度格式″;②指令码的长度随各指令的种类的不同而设定得不同的″任意长度指令格式″。

    指令码包括两部分,即指定运算、传输、分支等指令功能地操作码部分,及指定指令的执行对象数据(操作数)的操作码部分。操作数的指定是这样进行的,即在指令码中的编址方式的指定部分中,指定该操作数存储在寄存器内还是存储在外部存储器内。而且,操作数存储在存储器中时,还要将地址信息加在指令码中。

    以下,将固定长度格式及任意长度格式的指令格式分别模式地示于图18及图19中。两图中,指令格式100表示无操作数时的固定长度格式,指令格式101表示有操作数时的固定长度格式,指令格式102表示无操作数时的任意长度格式,指令格式103表示有操作数时的任意长度格式。

    ①指令码为固定长度指令格式时

    这时的优点是指令码容易译码。但其指令格式必须在确定了的一定的指令长度范围内,要有操作码或编址方式的指定部,还有必须记述地址信息等附加信息的制约。因此,为了记述更多的附加信息,必须将指令长度设定得长些。其结果是在增大了指令长度的固定长度指令格式中,出现指令位模式中的冗余部分增大、及代码尺寸加大的问题。另一方面,如果为了缩小代码尺寸而将指令长度设定得短些时,又会产生增大对指令功能的限制的问题。

    ②指令码为任意长度指令格式时

    这时,由于使用2种以上的任意的指令长度的指令格式,所以具有能根据每个指令扩展指令功能的优点。另外,由于能将无操作数的指令的长度设定得短些,所以与固定长度指令格式相比较,具有能减小代码尺寸的优点。

    其反面是,由于将读入的数据从存储器中抽出作为各指令码,从而使得各指令码本身的译码工作更加复杂化,所以存在不得不使指令译码方法复杂化的问题。因此,从存储的内容中抽出指令码并送给指令译码器用的H/W(硬件)变大。例如,如图20所示,当将16/32位长指令格式105、104作为任意长度指令格式导入时,如图21所示,为了传输指令码,在指令读取部和指令译码器之间必须准备4条路径。因此,必须使指令译码器具有复杂的移位功能,以便将有效的指令码移位、在适当的指令码的配置下进行译码。

    如上所述,在①固定长度指令格式及②任意长度指令格式中各有一个优点一个缺点。因此,希望实现兼备①及②各自的优点的处理机。

    本发明就是为了实现上述未解决的问题而开发的,具体地说,主要目的在于:(i)与固定长度指令格式相比,缩小代码尺寸,(ii)实现与现有的任意长度指令格式相比减少了处理机的H/W量且备有能谋求高速化的指令格式的处理机及处理机用的输入装置。

    本发明的次要目的在于:实现具有在执行指令过程中发生的各种中断(外部中断、PC断开中断)或软件中断功能的处理机。

    本发明的再一个次要目的在于:使对这样的指令码进行译码用的处理机的结构具体化。

    与发明的第1方面有关的执行两种指令长度代码的处理机备有只由给出N(N为1以上的整数)位长指令的第1指令数据信号和给出2N位长指令的第2指令数据信号构成的指令码,上述第1及第2指令数据信号的指令码按照下述两个规则配置,即(1)将2个上述第1指令数据信号存储在2N位长的字边界内,(2)将各个上述第2指令数据信号存储在2N位字边界内,还备有输入按上述规则配置的指令码的指令码输入装置及从上述指令码输入装置读取后保持按上述规则配置的上述指令码的指令读取装置。

    与发明的第2方面有关的执行两种指令长度代码的处理机是执行发明的第1方面的两种指令长度代码的处理机,它还备有接收由上述指令读取装置传输的给出上述指令码的信号、通过将上述指令码的分支目标的地址限制在上述2N位字边界内、对上述指令码进行译码的指令译码装置。

    与发明的第3方面有关的是执行两种指令长度代码的处理机,上述各第1及第2指令数据信号在其规定的位的位置备有给出指令执行顺序的控制信息的指令长度标识符数据。

    与发明的第4方面有关的是执行两种指令长度代码的处理机是执行发明的第2或第3方面的两种指令长度代码的处理机,其特征在于:只在上述指令码的上述2N位字边界内受理执行外部中断信号及特定的地址时发生的由各PC断开中断信号产生的中断请求,进行与上述中断请求对应的处理。

    与发明的第5方面有关的执行两种指令长度代码的处理机是执行发明的第2或第3方面的两种指令长度代码的处理机,其特征在于:当在上述2N位字边界内配置的上述第1指令数据信号内的一方是指示执行由软件控制的中断的俘获指令时,由上述指令译码装置对上述俘获指令进行译码,进行与上述俘获指令对应的处理。

    与发明的第6方面有关的指令码输入装置是对处理机赋与指令码的指令输入装置,上述指令码只由给出N(N为1以上的整数)位长指令的第1指令数据信号和给出2N位长指令的第2指令数据信号构成、上述第1及第2指令数据信号的指令码按照下述两个规则配置,即(1)将2个上述第1指令数据信号存储在2N位长的字边界内,(2)将各个上述第2指令数据信号存储在上述2N位字边界内。

    图1是数据处理装置的结构框图。

    图2是表示指令码的配置方法的模式图。

    图3是表示指令码的配置方法的模式图。

    图4是表示指令读取部和指令译码部的传输路径的模式图。

    图5是3种指令码的配置图。

    图6是指令尾接部内的指令码数据信号格式图。

    图7是表式指令尾接部和指令译码部的传输路径的模式图。

    图8是处理机的指令码表。

    图9是处理机的指令码表。

    图10是处理机的指令码表。

    图11是指令码的执行顺序的控制方法的示意图。

    图12是指令译码部的详细结构框图。

    图13是第1~第3控制信号和指令译码输入锁存器内的有效码配置的关系图。

    图14是指令译码部的控制逻辑的第1~第3控制信号和第4~第6控制信号的关系图。

    图15是PC部及地址生成器的详细结构框图。

    图16是中断·俘获发生时的处理顺序图。

    图17是检测中断·俘获的电路框图。

    图18是现有的固定长度指令格式图。

    图19是现有的任意长度指令格式图。

    图20是现有的任意长度指令格式的具体例图。

    图21是现有的指令读取部和指令译码部之间的传输路径图。

    图22是在硬件上实现PC的形态图。

    图23是在硬件上实现BPC的形态图。

    实施形态1

    这里,根据附图说明N=16时的一例。

    图1是本发明的进行多种运算的数据处理装置的结构框图。如图所示,该装置以处理机10为中心构成。

    处理机10由运算部1、寄存器2、程序计数部(以下称PC部)3、地址生成器4、指令尾接(queue)部5、指令读取部6、指令译码部7及控制部8构成。其中,控制部8根据指令译码部7输出的译码结果,控制处理机10内的各部1~7的工作。为了简化图示,在该图中省略了从控制部8输出的各控制信号的图示。运算部1由ALU(算术逻辑运算器)、移位器(shift)、装入-存储(Load-Store)装置及乘法器(Mul.)构成。另外,寄存器2是通用寄存器,达32位宽,有16条信号线,保持运算结果的数据及地址数据。关于其它结构部分将在后文详细说明。

    将指令尾接部5、指令读取部6的通称定义为″指令读取功能部″。

    由数据总线15和总线接口部13连接处理机10、外部电路11、存储器12及数据选择器14。数据总线15相当于将给出指令码的指令码数据信号输入本处理机10的″输入装置。

    I.指令码的配置方法(指令设置)

    其次,说明成为本发明的核心的″指令码的配置方法″。

    已说明过,在①固定长度指令格式及②任意长度指令格式中各有一个优点一个缺点。特别是在②任意长度指令格式中,当使用16位长的指令码和32位长的两种指令码时,在指令读取部(乃至指令尾接部)和指令译码部之间必须有4条传输路径。其中,特别是成为引起硬件复杂化这一突出问题的主要原因被认为在于允许配置32(2N)位长指令超过32(2N)位边界的指令码。这一点模式地示于图2中。

    现在,假定指令读出部能从外部存储器读出按照该图上侧所示的顺序排列的4个指令码106~109,其中,32位长的指令码107及108经过数据处理是有效的。在此情况下,假定按照该图下侧所示配置,则必须对有效指令码107及108进行译码。因此,如该图所示,必须使两条路线110、111交叉。这里将成为这种路径的指令码的配置称为″2N位指令跨越2N位边界的配置″。因此,不得不使指令译码器一侧的硬件复杂化。从这一主要原因来看,必须禁止指令码这样配置。

    因此,在本发明中,(i)执行只由N(N≥1)位长的指令(第1指令数据信号)和2N位长的指令(第2指令数据信号)这样两种指令长度构成的多个指令码(指令码数据信号),(ii)指令的配置方法、即怎样将各指令配置在以2N位长给出的″字″内(将其称为2N位长字边界内),只限于以下2种方法。即

    (1)将2个N位长指令存储在2N位字边界内。

    (2)将单一的2N位长指令存储在2N位字边界内。

    在本实施例中,由于处理N=16的情况,所以只是16位长指令和32位长指令(最大位长的指令)2种,指令码的配置方法如图3所示。

    通过设置这样的配置限制,32位长指令跨越32位边界的指令码的配置完全被禁止,其结果是图1中的指令读取部6和指令译码部7的传输路径如图4所示,被削减成3种。这3种传输路径通过以下的模式说明图5就能理解。

    如图5所示,在指令码被保持在指令尾接部5内的状态下有3种排列形式。其中,该图中上侧和中间所示的只有先行的16位长指令码A1及后行的16位长指令码B2是有效的情况,上述任何一种排列方法都是在(1)的限制下排列的。其中,在该图上侧的情况下,指令码A1经过图4所示的路径RT1被传输给译码器。在图5的中间的情况下,指令码B2经过图4所示的交叉路径RT3被传输给译码器。其它的图5下侧所示的32位长的指令码C1是在上述配置方法(2)的制约下排列的,经过图4所示的路径RT1、RT2被传输给译码器。因此,为了译码只需3种路径RT1~RT3就可以了。

    这样,由于指令码的配置服从于上述(1)、(2)的制约,所以传输路径能比以往的情况只减少1种,而受上述(1)、(2)的制约给出配置的指令码的指令码数据信号能作为图1中的数据总线15上的输入数据信号实现,并能保持在指令尾接部5中。为此,这时通过以上述制约规则(1)、(2)为依据的程序控制,将指令码的数据写入存储器12内。因此,将存储按照上述制约规则(1)、(2)的配置写入的指令码数据信号的″存储器12″和作为将按照上述配置顺序从该存储器12读出的指令码数据信号输入处理机10内的装置的″数据总线15″统称为″处理机用指令码输入装置″。

    在上述指令码数据信号内,将给出根据上述制约(1)配置的16位(一般为N位)长指令码的指令码数据信号称为″第1指令码数据信号″,将给出根据上述制约(2)配置的32位(一般为2N位)长指令码的指令码数据信号称为″第2指令码数据信号″。

    图6中示出了处理机10的指令尾接部5内的指令码数据信号的格式。该图中的符号op1、op2表示操作数码,符号R1、R2表示寄存器,符号C表示常数,符号cond表示分支条件的指定。

    另外,也可以取代在上述(1)、(2)的限制下将指令码的数据写入存储器12内,而是设置与上述限制无关地将指令码的数据写入存储器12内,再将从存储器12读出的指令码数据信号在上述(1)、(2)的限制下重新配置在数据总线15上的功能部,将该功能部输出的数据存储在指令尾接部5内。

    II.分支目标的控制

    在本处理机10中,对分支目标的地址只指定或限制在32位边界内。这样,除了禁止将指令码配置在32位边界上以外,通过将分支目标的地址限制在32位边界内,能将指令读取部6和指令译码器之间的传输路径削减到2种。

    如果现在回到已说明过的图5,这一点就容易理解了。即,只能将分支目标地址指定在32位边界内的限制,意味着在图1中的指令译码部7中,接收由指令读取部6输出的配置在32位长字边界内的指令码数据信号后,从该32位(2N位)边界开始对该指令码数据信号进行译码。因此,当在32位字边界内配置着2个16位长指令码时,对先行的指令码A2译码后,将先行的指令码A2移位到某位的位置,再对该图中间的指令码B2进行译码即可。

    因此,如模式图7所示,从指令尾接部5至指令译码部7的指令码数据信号传输路径只有2种。即传输路径

    (一)指令尾接部:高位16位→指令译码部:高位16位。

    (二)指令尾接部:低位16位→指令译码部:低位16位。

    按以下形式进行分支指令的转移目标的指定。根据图8、图9及图10所示的本处理器10中的指令码表说明这一点。在上述指令码表中,″Format(格式)″中的″dest(目标)″表示结果收容目标的寄存器编号,″src(源信息)″是运算对象,这里意味着图6所示的寄存器R1,该寄存器R1中的数值成为存储器的地址值。另外,″pcdisp8″表示用8位给出立即值。

    在上述指令码表中,

    (a)JMP、JL指令指示在指令码内指定的寄存器的值成为分支目标地址。(但忽略寄存器的低位的2位值″0″)。

    (b)BRA、BL、BC、BNC指令指定8位或24位的立即值。

    (c)BEQ、BNE、BEQZ、BNEZ、BLTZ、BGEZ、BLEZ、BGTZ指令指定16位的立即值。

    上述(b)、(c)中的分支目标的地址为

    (分支指令的PC值)+(将代码展开后的立即值向左(最高位的位置一侧)移2位后的值)。

    但是,进行加法运算时,PC值的低位的2位变为″00″。

    如上所述,通过对分支目标只指定32位边界,于是分支目标地址的低位的2位经常为″00″。因此,在指令码内指定分支目标地址时,不需要指定其低位的2位。其结果是,能从指令码内直接分支的范围变为22倍即4倍。在本实施形态的情况下,如上述指令码表所示,指令码内的地址指定部最大为24位,所以能从执行中的指令的地址直接分支到±32MByte(兆字节)的范围内。

    III.指令的译码顺序的控制

    在本处理机10中,将给出指令格式标识符的信息以规定的位数、这里以1位设定在指令码内。而且,根据该指令格式标识符的值如何,控制指令的译码及执行顺序。这里,各指令码的MSB(Most Significant Bit(最高有效位))相当于指令格式标识符。

    使用上述指令格式标识符的控制规则如下设定。即,单一的32位长指令码的MSB经常设定为1。另一方面,在指令码由2个16位长指令码构成的情况下,在高位的16位侧存在的指令码的MSB经常为0。对于接下来的低位的16位侧的指令码,取决于其MSB的值如何而进行不同的处理。

    用图11说明指令的执行顺序的控制方法。该图中,①″指令B″的MSB为0时,连续执行″指令A″和″指令B″。

    与此不同,②″指令B″的MSB为1时,只执行″指令A″。不执行指令B。即,作为以32位长指令的指令码配置的制约为依据的字对准调整用的指令B,插入字对准调整用的″NOP指令″时,汇编程序自动地使位于该″NOP指令″的指令码的MSB为1,因此只执行″指令A″。通常的无效运算″NOP指令″作为″0111000000000000″给出,但为了实现对准的上述目的,″NOP指令″被插入32位字边界内的低位侧16位的位置,不需要直接执行它。因此,在本处理机10中,″NOP指令″作为″1111000000000000″给出,其结果是,″NOP指令″本身不执行。

    通过这样控制指令的执行顺序,能获得为了满足代码配置而无须插入的无效运算即″NOP指令″的执行时间补偿的优点。

    IV.指令译码方法及其控制部

    以下,用图2说明指令的译码控制方法的具体例。

    (指令译码部7的结构)

    指令译码部7由指令译码输入锁存器7a、指令译码器7c、常数生成器7d及指令译码部7的控制逻辑电路7b构成。其中,控制逻辑电路7b控制指令译码部7的各部。指令译码器7c将指令译码输入锁存器7a中存储的32位的位模式中的有效指令码作为输入接收,该指令译码器7c对指令码进行译码。指令译码输入锁存器7a内的指令码的配置方法与存储器12上的指令码的配置方法相同。译码结果被输出到处理机10的控制部8,控制部8根据该译码结果,控制运算部1和处理部10全体。

    各部的更详细的动作如下。

    (指令读取部6)

    首先,指令读取部6通过数据总线15(图1)以32位长为单位从存储器12读取指令码数据信号,将它们存入指令尾接部5。指令读取部6根据后文所述的第5控制信号CB,从指令尾接部5依次读出指令码数据信号,并转送到指令译码部7中。结果,可被转送的指令码数据信号存入32位宽的指令译码输入锁存器7a中。

    根据已说过的指令格式标识符,由控制逻辑电路7b,对进行存储在指令译码输入锁存器7a中的指令码数据信号内给出有效指令码的信号的译码像下述那样进行控制。以下详细说明这个问题。

    (控制逻辑电路7b)

    图13中示出了图12中的第1~第3控制信号CT1~CT3(也称为输入信号)和指令译码输入锁存器7a内的有效码配置的关系。图中的斜线部分表示指令格式标识符,梨皮状部分表示有效码。

    如图12所示,控制逻辑电路7b输入存储在指令译码输入锁存器7a中的32位模式中的给出指令长标识符的第1、第2控制信号CT1、CT2和从控制逻辑电路7b本身输出的第3控制信号CT3。即,指令译码输入锁存器7a将作为指令格式标识符自身保有的32位的位模式的第0位的值和第16位的值分别作为第1控制信号CT1和第2控制信号CT2输出给控制逻辑电路7b。第3控制信号CT3是来自控制逻辑电路7b自身的输出信号,它表示根据指令译码器7c输出的译码结束信号ES,存储在上述锁存器7a中的32位的位模式中的从第0位至第15位的部分是否被译码(此时为″0″),或者表示从第16位至第31位的部分是否现在正在译码(此时为″1″)。

    (α)当第1控制信号CT1的值为″1″时,指令译码输入锁存器7a中存储的指令码数据信号是给出32位长指令的信号。

    (β)当第1控制信号CT1的值为″0″时,指令译码输入锁存器7a中存储着由2个16位长指令构成的指令码数据信号。这时,如果第2控制信号CT2为″0″且第3控制信号CT3也为″0″,则有效指令码位于高位的16位一侧。与此相反,如果第2控制信号CT2为″0″且第3控制信号CT3为″1″,则有效指令码位于低位的16位一侧。

    (γ)当第1控制信号CT1为″0″、且第2控制信号CT2为″1″时,仅高位的16位的指令码是有效码,低位的16位的指令码是上述的字对准调整用的″NOP指令″,不执行。

    控制逻辑电路7b根据以上的输入信号CT1~CT3的值,为了进行后面的代码的译码而输出以下3种控制信号CA、CB、CT3。其中,第4控制信号CA是在指令译码输入锁存器7a内将低位的16位的指令码移到高位的16位的位置用的控制信号、即移位器控制信号,第5控制信号CB是指令地址的32位边界的指针、是相对指令读取部6指示开始向指令译码输入锁存器7a传输指令码的信号。已说过,第3控制信号CT3是表示下一个有效码位于32位字边界内的高位的16位的位置还是位于低位的16位的位置的信号。

    如图12所示,当在指令译码器7c中正在进行译码的指令码的地址位于32位字边界上时,控制逻辑电路7b将″1″作为第6控制信号CC输出给后文所述的PC的位30部(PC30部),当不在字边界上时,输出″0″。

    当对由指令码内的立即值指定分支目标地址的分支指令即上述的(b)BRA指令等或(c)BEQ指令等进行译码时,该锁存器7a将立即值输出给连接在指令译码输入锁存器7a的后半部分的24位(从第8位至第31位)位置的常数生成器7d。常数生成器7d对立即值进行代码展开,并将得到的值输出给总线S2。

    在执行指令过程中发生分支时,与第1~第3控制信号(输入)CT1-CT3的值无关,指令译码部7的第4控制信号CA、第5控制信号CB、第6控制信号CC及第3控制信号CT3全部被初始化。

    控制信号(输入)和控制信号(输出)的关系示于图14中。

    由上述可知,在指令译码部7(图1、图12)中,在任何情况下第1次译码的指令码必然是从指令译码输入锁存器7a的开头开始。因此,指令译码输入锁存器7a的内容直接传输给指令译码器7c。当指令码数据信号是单一的32位长指令码时,传输路径是图12所示的路径P2、P3。高位的16位长指令码的传输路径是路径P2。

    只有当指令译码输入锁存器7a中的指令码的配置逐次执行16位长指令时,才第2次向指令译码器7c输出指令码。这时,在第2次向指令译码器7c输出之前,进行下述处理。由于成为译码对象的指令码即有效码位于32位字边界内的低位侧的16位的位置,所以指令译码输入锁存器7a的内容只被向左(向32位的位模式的第0位方向)移动16位(路径P1),输入到输入锁存器7a。其结果是成为第2次向指令译码器7c输出(路径P2)。

    这样,由于只限于有效码位于指令译码输入锁存器7a的低位的16位的位置时才经由路径P1,所以能减少H/W的量,可进一步高速化。

    V.PC部3的增量动作

    图15是图1中的PC部3及地址生成器4的部分被放大了的框图。用图15说明PC部3的增量动作。

    地址生成器4由移位器4a和加法器4b构成,根据编址方式计算分支指令的地址。

    PC部3以程序计数器(以后称PC)为中心,还由比较器3b、(+1/0)部3e、后备程序计数器(以下称BPC)3f、BPC30部3g及程序计数器断开指示器(以下称PBP)3a构成。其中,PBP3a和BPC3f是控制寄存器。

    上述的程序计数器是32位的计数器,保持现在正在执行的指令的地址值。由于指令码的配置方法被如上所述那样限定,所以本处理机10(图1)的指令只从偶数地址值开始。于是,如图22中的例所示,程序计数器的第31位的值固定为″0″。因此,不需要在硬件上实现PC的第31位的值,所以如图15所示,PC能由给出从第0位至第29位的值的PC(0∶29)3c和给出第30位的值的PC30部3d来实现。其中,PC30部3d是保有第6控制信号CC的值″0 ″或″1″的寄存器。

    上述的BPC在发生后文所述的中断·俘获时保存PC3c保持的PC值。如图23中的例所示,BPC的第31位的值经常被固定为″0″,所以在硬件上能由给出从第0位至第29位的值的BPC(0∶29)3f和给出第30位的值的BPC30来实现BPC。因此,本处理机10(图1)在检测出发生后文所述的中断·俘获时,将PC(0∶29)3c的值保存到BPC(0∶29)3f中。另一方面,PBP3a是控制后文所述的PC断开中断用的32位宽控制寄存器,PBP3a预先保有起动中断的指令执行地址值,利用从控制部8(图1)输出的总线D1上的写入指令信号,写入上述地址值。

    在处理机10(图1)中执行除分支以外的指令时,如下进行PC(0∶29)3c的更新。这里,使用4条总线S1、S2、S3及D1,信号线D连接着PC3c。

    从图12中的指令译码部7的控制逻辑电路7b输出的第5控制信号CB(指示32位字边界的地址的指针)被更新后,PC(0∶29)3c保持的值只由(+1/0)部3e增加″+1″,该增加后的值被加在信号线D上。与此不同,不更新第5控制信号CB时,PC(0∶29)3c的值不由(+1/0)部3e增加,而是直接加在信号线D上。

    信号线D上的值被写入PC(0∶29)3c,因此,PC(0∶29)3c的PC值被改写成下一个指令的PC(0∶29)3c的值。另外,由于信号线D连接着总线S1,所以能将该PC(0∶29)3c的更新值调到总线S1上。

    从指令译码部7内的控制逻辑电路7b(图1)输出的第6控制信号CC的值在执行指令时被写入PC30部3d中。

    另一方面,在执行指令时发生分支的情况下,下一个指令的PC值用地址生成器4生成,该生成值经由总线S3被写入PC(0∶29)3c。

    在用立即值进行转移目标地址指定的分支指令(上述的分支指令(b)、(c))的情况下,指令译码部7的常数生成器7d(图1)将从该指令码抽出的立即值展开成32位,将展开后的立即值通过总线S2输出到地址生成器4。然后,代码展开后的立即值由地址生成器4内的移位器4a只向左(向最高位一侧)移2位。PC(0∶29)3c的更新值通过总线S1,被从信号线D输出给地址生成器4。在这里,PC(0∶29)3c的更新值位于分支指令的PC高位30位。加法器4b计算

    (PC(0∶29)3c的更新值)+(将代码展开后的立即值向左移2位后的值)

    从而获得分支目标地址的高位的30位。该高位的30位的值通过总线S3被写入PC(0∶29)3c。

    在用寄存器2(图1)的值进行转移目标地址指定的分支指令(上述的分支指令(a))的情况下,从由指令码指定的寄存器2,通过总线S1接收保持在寄存器中的值,该常数值被写入PC3c。

    发生分支时,指令译码部7通过将第6控制信号CC初始化为″0″,将″0″写入PC30部3d。因此,如上所述,在本处理机10(图1)中,分支目标地址只为32位字标界。

    VI.中断·俘获动作的说明

    在处理机10(图1)执行通常的程序过程中,如果发生某事件而使该程序的执行中断,必须执行另一程序。这样的事件大致可区分为中断及俘获动作。

    (a)中断(Interrupt)

    上述事件内由来自外部的硬件信号(将其称为中断请求信号)或由执行特定地址时产生的PC断开信号发生的事件。

    (b)俘获(Trap)

    上述事件中按照指令发送的事件。

    本处理机10(图1)备有实现由外部中断(E1)及PC断开中断(PBI)构成的2种(a)中断和1种俘获(TRAP)的功能。

    用图16说明发生中断·俘获时的处理顺序,概述如下。

    当中断请求信号或PC断开信号有效时,如后文所详述,处理机10只在32位字边界上受理中断指令。该指令执行后,开始处理俘获指令。

    因此,处理机10(图1)将所执行的程序中断后,进行中断或俘获处理。这时,如后文所述,该处理机10检测中断或俘获的事件,将图15中的PC3c的PC值保存在BPC3f中,此后分支到与各个中断或俘获对应的处理程序″中断·俘获处理程序″。

    ″中断·俘获处理程序″中的处理结束后,执行来自″中断·俘获处理程序″的返回指令,接着进行PC3c的PC值的返回,处理机10从该中断·俘获处理返回。

    如上所述,本处理机10中的中断·俘获处理由硬件进行处理的部分和程序进行处理的部分构成。即在上述处理中,本处理机10由硬件部分进行下述处理:

    (1)返回目标即PC值保存到BPC3f中;

    (2)分支到″中断·俘获处理程序″;

    (3)BPC值写入PC3c。

    由来自外部的硬件信号(中断请求信号)发生上述的外部中断(E1)。只在32位字边界上受理由中断请求信号发生的中断请求(该机构由后文所述的检测电路构成)。发生中断时保存在图15所示的BPC3f中的值是下述指令的PC值。

    另一方面,在执行过特定的地址时发生PC断开中断(PBI)。在本处理机10(图1)中指定的地址只是32位字边界。图15所示的比较器3b在每一循环中都对PBP3a保持的值和PC3c的值进行比较,当两者的值一致时输出PC断开信号18。PC断开信号18通过后文所述的中断·俘获检测电路被作为中断·俘获检测信号检测出来,该信号被输出给图15所示的(+1/0)部3e。其结果是在处理机10中发生中断,且保存PC值。已说过,利用数据总线D1进行向PBP3a的写入。另外,发生中断时保存在BPC3f中的值是下一个指令的PC值。

    所谓俘获是指用软件控制的中断,它是由于执行俘获指令而发生的。这时将给出俘获指令位于32位字边界内的高位的16位一侧、或是位于低位的16位一侧的信息存储在BPC位30即BPC30部3g中。当俘获指令位于高位的16位时,BPC30部3g的值为″0″,当位于低位的16位时,BPC30部3g的值为″1″。发生中断时保存在BPC中的值是(俘获指令的PC值+4)。

    图17中示出了检测中断·俘获的电路。该检测电路构成图1中的控制部8的一部分,它由倒相器22、AND电路23、24及中断·俘获检测电路16构成。    

    本处理机10利用该检测电路,只在32位字边界上受理由外部信号19产生的中断请求及由PC断开信号18产生的中断请求。即由于在32位字边界上第6控制信号CC的电平为″0″,所以只有当将第6控制信号CC反转后的字边界检测信号21(其电平为″1″)和中断请求信号19同时有效(″1″)时,输出信号VE才变为有效(″1″)。这样,只在32位字边界上受理上述中断请求,且分支到中断·俘获处理程序,进行过该处理后,通过执行来自″中断·俘获处理程序″的返回指令,从中断·俘获处理返回到执行程序的状态。

    另一方面,在俘获指令的情况下,如果指示进行由俘获指令产生的中断时,俘获请求信号20变为有效(″1″)。

    当俘获请求信号20、输出信号VE及输出信号VF中的任意一个变为有效(″1″)时,由中断·俘获检测电路16输出中断·俘获检测信号17。中断·俘获检测信号17被输出后,分支到中断·俘获处理程序,进行该处理后执行返回指令,从该处理返回到执行程序的状态。

    已说过,当发生中断·俘获时,PC3c(图15)的值被保存在BPC3f中。发生中断时下一个指令的PC值被写入BPC3f中。

    例如在执行分支指令后发生了中断时,给出由图15中的地址生成器4生成的分支目标的PC值在控制部8的控制下,经由总线S3被写入BPC3f。与此不同,在执行过除分支指令以外的指令后发生了中断时,由(+1/0)部3e将PC(0∶29)3c的输出值加″+1″后的值写入BPC(0∶29)3f中。

    PC30部3d的值被写入BPC30部3g中。在本处理机10(图1)中,已说明过只在32位字边界上受理中断,所以发生中断时保存在BPC30部3g中的值经常为″0″。

    发生俘获时,((俘获指令的PC)+4)的值被写入BPC3f。即由(+1/0)部3e将PC(0∶29)3c的输出值加″+1″后的值写入BPC(0∶29)3f中,PC30部3d的值被写入BPC30部3g中。即当发生了俘获的俘获指令位于32位字边界的高位的16位时,″0 ″被写入BPC30部3f中,当位于32位字边界的低位的16位时,″1″被写入BPC30部3g中。

    已说过,通过执行返回指令,进行来自中断·俘获的返回。返回指令指示接收控制部8输出的信号25,分支到BPC3f输出的信号给出的地址。但是在本处理机10中,由于分支目标的地址常常设定在32位边界,当BPC3f返回PC3c时,PC的低位的2位经常为″00″

    (总结)

    通过采用以上结构,能获得以下特征。

    本处理机10通过执行由N位长和2N位长的2种指令长度构成的指令码,与固定长度指令格式相比较,不受指令功能的限制,能缩小代码尺寸,同时与现有的任意长度指令格式相比较,能简化指令译码方法。  特别是由于对指令码的配置方法加了一定限制,禁止跨越2N位边界的指令的配置,同时将分支目标地址只指定在2N位字边界上,所以能极大地减少指令读取部6及指令译码部7之间的数据传输路径。其结果是能减少指令译码用的H/W的数量,能谋求高速化。

    而且,在本处理机10中由于将分支目标地址限制在2N位标界上,所以分支目标地址的低位的2位经常为″00″。因此在指令码内不需要指定分支目标地址的低位的2位。其结果是,与指定地址的全部位的情况相比较,能根据执行中的指令地址直接分支到22倍即4倍的广大范围。

    还可以使具有这种功能的本处理机10具有能支援各种中断或俘获处理的功能。

    如果采用本发明的第1~第5方面所述的处理机,则由于由指令码输入装置将2个第1指令数据信号及第2指令数据信号一起存储在2N位字边界内,所以2N位长指令的数据跨越该2N位边界的指令码的配置被禁止。因此具有能将从指令读取部至指令译码部的指令码数据信号的传输路径从原来的4种减少到3种的效果。

    特别是如果采用本发明的第2方面所述的处理机,则由于指令译码装置将分支目标地址限制在2N位字边界内,所以具有能将指令码数据信号的传输路径减少到2种的效果。

    如果采用本发明的第3方面所述的处理机,则能根据指令长度标识符控制各指令的译码及其执行顺序。而且,通过适当地配置指令长度标识符,能不执行作为无效运算的指令码数据信号,因此具有无须执行时间补偿的优点。

    本发明的第4方面所述的处理机具有能支援外部中断及PC断开中断的效果。

    本发明的第5方面所述的处理机能获得支援俘获指令的效果。

    在本发明的第6方面所述的处理机中,由于指令码输入装置将第1指令数据信号及第2指令数据信号这两个信号一起存储在2N位字边界内,这样能将限制各指令码的配置的2N位长的指令码数据信号依次输入给处理机,所以在收到该指令码数据信号的处理机一侧具有能将指令译码用的传输路径从原来的4种减少到3种的效果。

执行两种指令长度代码的处理机及其指令码输入装置.pdf_第1页
第1页 / 共33页
执行两种指令长度代码的处理机及其指令码输入装置.pdf_第2页
第2页 / 共33页
执行两种指令长度代码的处理机及其指令码输入装置.pdf_第3页
第3页 / 共33页
点击查看更多>>
资源描述

《执行两种指令长度代码的处理机及其指令码输入装置.pdf》由会员分享,可在线阅读,更多相关《执行两种指令长度代码的处理机及其指令码输入装置.pdf(33页珍藏版)》请在专利查询网上搜索。

一种备有两种指令长度代码的处理机,通过缩小代码尺寸及减少H/W量来达到高速化。在该处理机中将指令码的配置方法限制在以下2种。即(1)将2个16位长指令码存储在32位长的字边界内,(2)将单一的32位长指令码直接存储在32位字边界内。再将分支目标的地址限制在32位字边界内,同时在各指令码的MSB上设置1位的指令长度标识符,进行指令码的执行顺序的控制。从而处理机内的从指令读取部至指令译码部的传输路径变。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1