首页> 中国专利> 指令模式识别装置及指令模式识别方法

指令模式识别装置及指令模式识别方法

摘要

一种指令模式识别装置及指令模式识别方法。该指令模式识别装置,包含:一用以储存一包括多个位的指令地址的程序计数器,且其中至少一位是一冗余位;及一依据该冗余位以识别目前指令的指令模式的处理器。因此,处理器可以根据不同的指令模式而将冗余位设定为对应的数值,以作为判断不同指令模式的依据。

著录项

  • 公开/公告号CN101739234A

    专利类型发明专利

  • 公开/公告日2010-06-16

    原文格式PDF

  • 申请/专利权人 瑞昱半导体股份有限公司;

    申请/专利号CN200810176824.9

  • 发明设计人 詹胜渊;

    申请日2008-11-25

  • 分类号G06F9/30;G06F9/38;

  • 代理机构北京市柳沈律师事务所;

  • 代理人蒲迈文

  • 地址 中国台湾新竹科学园区

  • 入库时间 2023-12-18 00:22:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-09-11

    授权

    授权

  • 2010-09-01

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20081125

    实质审查的生效

  • 2010-06-16

    公开

    公开

说明书

技术领域

本发明涉及一种指令模式识别装置及指令模式识别方法,特别是涉及适用于一处理器的指令模式的识别装置与方法。

背景技术

典型的处理器可以根据不同的指令集架构(Instruction Set Architecture,ISA)而执行不同指令模式的指令,一般最常见的就是一16位处理器(如:Intel 8086、80286、Motorola M6800)可以处理并执行16位指令集中的所有指令,而一32位处理器(如:Intel Pentium Pro)可以处理并执行32位指令集的所有指令。

然而,在现今的应用中,一处理器往往不再仅局限于处理单一指令集架构,如:ARM-9TDMI(http://www.arm.com)处理器是一32位处理器,同时亦可处理并执行一16位的拇指指令集(Thumb Instruction Set),也就是说,一ARM-9TDMI处理器,可以同时支持32位及16位的指令模式。

上述这种可支持二种不同指令集模式的处理器,一般是根据一内建于该处理器中的指令集模式寄存器(Instruction Set Mode Register)或是指令集模式位(Instruction Set Mode Bit)作为判断目前处理中的指令是属于哪一种指令模式的依据。

参阅图1,举例来说,以MIPS处理器(http://www.mips.com/)为例,一般可以分为指令撷取(Instruction Fetch,IF)级11、指令解码(InstructionDecode,ID)级12、指令执行(Instruction Execution,IE)级13、存储器存取(Memory Access,MA)级14,及写回(Write-back,WB)级15等五个部分,并且依照指令撷取、指令解码、指令执行、存储器存取,及写回的操作顺序,将所述级11~15串接成一个具有五级管线(5-stage Pipeline)架构的管线式处理器(Pipeline Processor)。

对于同一个时间点,在不考虑到数据危障(Data Hazard)的前提下,上述处理器可以同时处理五个指令,但是,因为每一级管线都是共用一指令模式寄存器16,所以每一级管线内的指令一定都是相同的指令模式,也就是说,同一个时间点内,在五级管线内不可能处理二种以上的指令模式。

假设,当MIPS处理器要将其指令模式由MIPS32切换到MIPS16时,藉由执行跳跃指令(在MIPS16指令集中为JALX或JR),指令执行级13会先改变一程序计数器(Program Counter)17中储存的地址(Address),使得MIPS处理器可以根据程序计数器,跳至另一地址以撷取下一个指令,然后,写回级15会写入一表示为MIPS16指令架构的数值于指令模式寄存器16内,使得每一级管线由下一个指令开始,以MIPS16的模式执行。

参阅图2,由指令执行周期来看,当跳跃指令JALX被执行之后,须等待一延迟周期(指令A)以使下一个指令仍然以原本的指令模式而被执行,然而,因为需要等到写回级15设定指令模式寄存器16之后,指令解码级12才可以判断正确的指令模式以进行指令解码操作,因此,必须等到三个指令周期之后(指令D)才能完成正确切换到MIPS16模式的操作,因此,在不计入该延迟周期的情况下,这样的切换操作仍需要浪费二个指令周期(指令B、指令C),以完成指令模式的切换,若是以更高阶的处理器来说,为了要提供更高的效能,往往会把增加管线的级数,或是使用超纯量(Super-scalar)架构,因此,当指令执行级13与写回级15间的管线级数增加时,更会大幅增加浪费的指令周期数。

根据上述习知的设计方法,可以归纳出以下缺点:

一.在同一个时间点,管线内无法同时处理二种以上的指令模式;及

二.当处理器切换指令模式时,需要浪费二个以上的指令周期以完成切换操作,进而影响指令执行的效能。

发明内容

因此,本发明的目的,即在提供一种指令模式识别装置,包含:

一程序计数器,储存一指令地址,该指令地址包括多个位,用以表示正在执行或将要执行的指令所在地址,这些位当中至少有一位是一冗余位;及

一处理器,依据该冗余位识别一指令模式,该指令模式代表目前指令所执行的模式。

此外,本发明的另一目的为,提供一种指令模式识别方法,包含:

提供一程序计数器,该程序计数器储存一指令地址,该指令地址包含多个位,用以表示正在执行或将要执行的指令所在地址,这些位当中至少有一位是一冗余位;及

提供一处理器,该处理器依据该冗余位识别一指令模式,该指令模式代表目前指令所执行的模式。

于是,本发明可以利用既有程序计数器中的冗余位纪录不同的指令模式以供后续进行指令模式的识别,不但不会增加硬件成本,还可使得处理器同时可以处理二种以上不同指令模式的指令,进而有效降低指令模式转换时所浪费的时间。

附图说明

图1是已知的指令模式识别装置的方块图;

图2是已知于指令模式切换时,指令周期示意图;

图3是本发明的指令模式识别装置的示意图;

图4是本发明的一实施例的方块图;

图5是本实施例于指令模式切换时,指令周期示意图;及

图6是本发明的指令模式识别方法的流程图。

附图符号说明

8 …………程序计数器

91…………指令撷取级

92…………指令解码级

93…………指令执行级

94…………存储器存取级

95…………写回级

901~904…管线寄存器

具体实施方式

有关本发明的前述及其他技术内容、特点与功效,以下结合参考附图的一个实施例的详细说明可清楚的呈现。

参阅图3,本发明指令模式识别装置的一个实施例,包含:一程序计数器8,且该程序计数器8用于储存一具有多个位的地址,且所述位中至少有一冗余位(Redundant Bit)81,也就是说,程序计数器8所储存的地址中至少有一个位是不会改变或是没有被定义的,例如:对于一32位处理器而言,因为其存储器存取的最小单位为一字元(Word),因此,要撷取下一个指令时,该程序计数器内储存的地址会自动加四(如:第一个指令的二进位地址为0000b,则第二个指令的二进位地址为0100b,同理,第三个指令的二进位地址为1000b,其余类推),因此,对于该程序计数器8而言,其最后二位将会固定为00b,因此在此范例,最后二位是冗余位。

根据这样的特性,本实施例将程序计数器8中固定不变的位,视为冗余位81,因此,当一处理器要改变指令模式时,可以藉由设定该程序计数器8的冗余位,以作为判断不同指令模式的依据。

举例来说,参阅图4,当本发明的指令模式识别装置应用于一具有五级管线的MIPS处理器中,其包含:一指令撷取级91、一指令解码级92、一指令执行级93、一存储器存取级94、一写回级95,及一程序计数器8,其中,在每二级管线之间具有一管线寄存器901~904,用以暂时储存每一级管线处理完的结果,并于下一指令周期时送入下一级管线中。且为了方便说明,下文在描述时将省略管线寄存器901~904的操作。

指令撷取级91根据程序计数器8中储存的地址,由一存储器中取出对应地址上的指令,然后,将所取出的指令与程序计数器8的地址一起传送至指令解码级92中;指令解码级92根据程序计数器8的地址上的冗余位81判断目前要进行解码操作的指令属于何种指令模式,并进行对应的解码操作,当解码完成后,将产生对应的控制讯号与该程序计数器8的地址传送至指令执行级93中,指令执行级93依据程序计数器8的地址上的冗余位81判断目前要执行的指令属于何种指令模式,并根据所述控制讯号以执行指令,且一并更新程序计数器8的地址,当执行完成后,将执行指令的结果传送至存储器存取级94,且将该更新后程序计数器8的地址传回至指令撷取级91,以撷取下一个指令。

存储器存取级94依据对应的指令,将执行结果储存于存储器中,或是从存储器中读取出来,最后,写回级95将重新设定指令解码级92以供执行后续的指令。

在本范例中,因为该MIPS处理器为32位处理器,当要撷取下一个指令时,程序计数器8内储存的地址会加四或加二,所以,程序计数器8的最后一位,将固定为0,且该位符合上面所述固定不变的位可以视为冗余位的定义。

因此,在本范例中,当指令模式要切换至MIPS16时,该程序执行级会将该程序计数器8的最后一位设定为1也就是说,当目前指令的指令模式为MIPS32时,对应的程序计数器所储存的指令地址的最后一个位(LSB)一定是0,而当目前指令的指令模式为MIPS16时,对应的程序计数器所储存的指令地址的最后一个位一定是1。

值得注意的是,处理器可以依据指令模式数量的需求,以冗余位81的位数量M,而定义出2M种不同的指令模式。如上述例子:该程序计数器8具有二冗余位81,因此可以定义冗余位81等于00时,代表MIPS32指令模式、冗余位81等于01时,代表MIPS16指令模式、冗余位81等于10时,代表第三指令模式,及冗余位81等于11时,代表第四指令模式等四种指令模式。

参阅图5,由指令执行周期来看,当跳跃指令JALX被执行之后,须等待一延迟周期(指令A’)以使下一个指令仍然以原本的指令模式而被执行,然而,不同于现有的方法的是,因为指令执行级93在下一个指令周期(指令B’)会将更新后的程序计数器8所储存的地址回传至该指令撷取级91中,因此,该指令解码级92可以在次一个指令周期(指令C’)读取到正确的程序计数器8的地址,所以,根据程序计数器8的最后一位以判断,目前指令模式为MIPS16或是MIPS32。

因为,更新程序计数器8地址的操作(包括设定程序计数器8的最后一位的操作)是在指令执行级完成,因此,若是应用于更高阶、或是管线级数更多的处理器中,其浪费的指令周期数皆为一个,不会因为指令执行级13与写回级15间的管线级数增加而随的增加,因此,藉由本发明的指令模式识别装置,可以将指令模式转切换时所浪费的指令周期数目降到最少。

此外,同一时间点上,每一级管线所依据的程序计数器8的地址皆有所差异(为前一指令周期储存于对应的管线寄存器内的地址),举例来说,指令撷取级91所依据的程序计数器8的地址为最新或是更新后的地址,而指令解码级92所依据的程序计数器8的地址,为前一指令周期时,指令撷取级91所依据的程序计数器8的地址,同理,指令执行级93所依据的程序计数器的地址与指令撷取级的地址,相差二个指令周期;因此,指令撷取级91、指令解码级92、指令执行级93可以在同一个时间点分别执行不同指令模式的指令,一方面可以更有效的混合使用MIPS16与MIPS32的指令集,另一方面当处理到需要呼叫外部数据库的程序码时,可能因为外部数据库的指令模式与主程序码的指令模式不同而造成频繁的指令模式切换,藉由本发明可以将频繁指令模式切换所造成浪费的指令周期数目降到最少,进而大幅提升程序码的执行效率。

值得注意的是,程序计数器8的冗余位81不一定如上述范例为该程序计数器8的最后一位,只要是符合该程序计数器8中没有被定义的位,或是即使有被定义但是其值固定不变的位,即可作为表示不同指令模式的冗余位。

本发明所揭示的指令模式识别有着多种的应用。以分支预测(BranchPrediction)的应用为例,由于分支预测本来就是在处理程序计数器的运算,因此在同样带有冗余位的情况下,亦可在执行上展现如上述实施例所述及的各项优点。

参阅下列表1,是本发明应用于一MIPS处理器上的相关效能数据,其中第一栏表示针对一段程序码全部以MIPS32指令模式执行的相关数据,第二栏为依照每段子程序码对于执行效能的要求高或低,分别以MIPS32及MIPS16两种模式分开进行处理,而其中MIPS32/MIPS16的模式切换是根据一内建的指令模式寄存器(或指令模式位)来判断,即采用习知的设计方法,最后,第三栏是以本发明的指令模式识别装置来实施,并依照每段子程序码对于执行效能的要求高或低,分别以MIPS32及MIPS16两种模式进行处理的相关数据。值得注意的是,该程序码大小与执行时间的数据是经过正规化(Normalized)处理之后的数据。

  MIPS32  MIPS32/MIPS16  (已知的方法)  MIPS32/MIPS16  (本发明的方法)  程序码大小  (正规化)  1.5KB  1.06KB  1.06KB  执行时间  1  1.31  1.23  (正规化)

表1

观察表1的数据可以发现,藉由本发明的指令模式识别装置,可以维持原本使用MIPS16指令模式以压缩程序码大小的优点,同时,因为可以将浪费的指令周期数降到最少(一个)的情况下,因此,在程序码执行时间上可以比已知的方法更快,并且,因为不需要使用额外的指令模式寄存器或是指令模式位,所以并没有额外的硬件成本。本发明的指令模式识别装置与方法在任何具有冗余位的程序计数器上皆适用,因此并不以上述针对MIPS处理器的应用为限。

参阅图6,本发明的指令模式识别方法,适用于一N级管线式处理器,其包括以下步骤:

步骤61是该处理器利用一程序计数器用以储存一指令地址,该指令地址包含多个位,用以表示正在执行或将要执行的指令所在地址,这些位当中至少有一位是一冗余位;及

步骤62是该处理器依据该冗余位识别一指令模式,该指令模式代表目前指令所执行的模式。

综上所述,本发明的指令模式识别装置具有以下优点:

一.同一时间点内,管线内可以处理二种或二种以上的指令模式;

二.不论处理器的管线的架构为何,只需要消耗一个指令周期,就可以完成指令模式的切换操作;及

三.采用程序计数器中既有的冗余位来识别不同的指令模式,因此,没有额外的硬件成本。

所以确实能实现本发明的目的。

以上所述者,仅为本发明的较佳实施例而已,而不能以此限定本发明实施的范围,凡依本发明的权利要求及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号