一种执行指令的方法及系统的制作方法

文档序号:6611046阅读:390来源:国知局

专利名称::一种执行指令的方法及系统的制作方法
技术领域
:本发明涉及计算机技术,具体涉及一种执行指令的方法及系统。
背景技术
:现有的中央处理器(CPU,CentralProcessingUnit)指令中大都有类似于出栈/进栈(pop/push)、帧指针寄存器存取指令(lwp!/swp!)及转移并连接(bl,branchandlink)等这样的副作用指令。虽然这类指令在进行编码时不含有某些寄存器信息,节省了指令的编码空间,但是为了CPU指令的连续执行,上述指令分别隐含使用了栈指针寄存器(sp)、帧指针寄存器(fp)及链接寄存器(lr)等通用寄存器,指令的执行结果会修改这些指令隐含的寄存器的内容。例如,pop/push对应的隐含寄存器为sp寄存器,执行pop/push指令时,为了能够正常执行下一个pop/push指,不仅会向sp指向的堆栈中存取数据,还会隐含修改sp寄存器中的值。bl指令为了在执行返回指令时,能够执行跳转指令的下一条指令,而隐含将下一条指令的地址存放于lr中,从而破坏了原有lr寄存器中的内容。因此,虽然副作用指令中不包含寄存器信息,节省了指令的编码空间,但是,这些指令的执行却可以修改通用寄存器的内容,从而限制了CPU寄存器分配算法有效地利用寄存器以及灵活使用指令,为指令和体系结构的升级造成了困难。
发明内容有鉴于此,本发明提供一种执行指令的方法,对CPU寄存器进行灵活有效地利用。本发明提供一种执行指令的系统,对CPU寄存器进行灵活有效地利用。为达到上述目的,本发明的技术方案是这样实现的一种执行指令的方法,预先在索引寄存器中设置索引与寄存器编码的对应关系,该方法包括读取与索引相关的指令,并获取所述指令对应的索引后,从索引寄存器的对应关系中读取该索引对应的寄存器编码;基于该寄存器编码对应的寄存器执行所述指令。较佳地,所述预先在索引寄存器中设置索引与寄存器编码的对应关系通过执行设置索引与寄存器编码的对应关系的指令实现。进一步地,所述在索引寄存器中设置索引与寄存器编码的对应关系之前,该方法还包括设置隐含索引的指令,令所述隐含索引的指令与一个索引对应;相应地,所述读取与索引相关的指令并获取与指令对应的索引为读取隐含索引的指令,获得与该指令对应的索引。较佳地,所述设置隐含索引的指令通过在控制逻辑中固化所述隐含索引的指令与一个索引的对应关系实现。所述隐含索引的指令与索引——对应。所述预先在索引寄存器中设置索引与寄存器编码的对应关系的步骤,在系统启动时执行;或者在系统启动后并且在执行至少一条与索引相关的指令前执行;或者在系统启动后多次执行。将所述从索引寄存器中的对应关系中读取该索引对应的寄存器编码的步骤合并到译码阶段或指令执行阶段。取该索引对应的寄存器编码的步骤。其中,所述指令为包含索引的指令。所述预先在索引寄存器中设置索引与寄存器编码的对应关系之前,该方法进一步包括在应用程序二进制接口(ABI,ApplicationBinaryInterface)中定义指令中的索引使用约定。一种执行指令的系统,包括控制逻辑和索引寄存器,所述控制逻辑,用于预先在索引寄存器中设置索引与寄存器编码的对应关系;读取与索引相关的指令,获取该指令对应的索引,从索引寄存器的对应关系中读取该索引对应的寄存器编码,并基于该寄存器编码对应的寄存器执行所述指令;所述索引寄存器,用于存储索引与寄存器编码的对应关系。其中,所述指令为包含索引的指令。所述控制逻辑固化了至少一个隐含索引的指令与一个固定索引——对应的关系,所述控制逻辑还用于读取隐含索引的指令,将该指令与索引相关,获得该指令对应的索引。与现有技术相比,本发明所提供的技术方案,预先在索引寄存器中设置索引与寄存器编码的对应关系,读取与索引相关的指令,并获取该指令对应的索引,从索引寄存器的对应关系中读取该索引对应的寄存器编码,然后,基于该寄存器编码对应的寄存器执行该指令。从而通过索引实现了指令与寄存器的间接相关,因此,可以通过软件修改索引对应的寄存器编码,在设置索引寄存器的内容时设置修改后的对应关系,实现了CPU寄存器的灵活配置与应用。同时,在执行副作用指令时,通过索引与索引所指的寄存器相关,从而使得副作用指令执行时隐含修改索引所指的寄存器,避免了副作用指令隐含修改固定通用寄存器的内容,释放了固定通用寄存器,可以灵活应用CPU寄存器。由于本发明提供的技术方案释放了固定通用寄存器,且实现了对CPU寄存器的灵活配置与应用,从而使得在体系结构升级时,可以随意增加使用各寄存器的指令,使得ABI的调整更加全面、灵活。通过索引与寄存器相对应,在指令中引用索引而间接与寄存器相关,从而可以利用较小位数的索引与较大标号的寄存器相关,节省了指令中寄存器的编码空间,增大了立即数的位数,从而增大了寻址范围;或在立即数位数不变的情况下,减小了指令代码长度。图1为本发明实施例一中执行bl指令的数据通路图2为本发明实施例一中执行指令的方法流程图3为本发明实施例二中执行存取数指令的数据通路图4为本发明实施例二中执行指令的方法流程图。具体实施例方式下面结合附图及具体实施例对本发明进行详细说明。本发明提供的执行指令的方法,预先在索引寄存器中设置索引与寄存器编码的对应关系,读取与索引相关的指令后,获取该指令对应的索引,并在索引寄存器的对应关系中读取该索引对应的寄存器编码;然后基于该寄存器编码所指的寄存器执行该指令。以下以两个实施例说明与索引相关的指令的执行过程,实现例一为隐含索引的指令执行的过程,实施例二为包含索引的指令的执行过程。实施例一本实施例详细说明为CPU指令中隐含索引的指令,即副作用指令,配置寄存器的情况。本发明实施例一中的执行指令的系统包括控制逻辑和索引寄存器。其中,控制逻辑,用于预先在索引寄存器中设置索引与寄存器编码的对应关系;从指令寄存器中读出副作用指令,获得该副作用指令对应的索引,然后在索引寄存器的对应关系中读取该索引对应的寄存器编码,并结合分析指令得到的寄存器读写控制,基于该寄存器编码对应的寄存器执行该指令。索引寄存器,用于存储索引与寄存器编码的对应关系。图1为本发明实施例一中执行bl指令的数据通路图。如图l所示,控制逻辑从指令寄存器读取bl指令,获得该指令对应的索引,根据该索引在控制逻辑产生的寄存器读写控制的控制下,读取索引寄存器,获得该指令隐含修改的寄存器的编码,例如寄存器l;然后结合分析该指令得到的寄存器读写控制执行该指令;同时,由于现有技术中该指令隐含将下一条指令的地址存入lr寄存器中,本实施例中执行该指令时,将隐含修改该指令对应的索引对应的寄存器l,即读取PC寄存器中的指令地址,将该地址加4得到下一条指令的地址后,存入该指令对应的索引对应的寄存器中,本实施例中为寄存器l。可见,本发明实施例将副作用指令与索引相关,隐含修改索引对应的寄存器的内容,从而释放了现有技术中副作用指令隐含修改的寄存器,使得该寄存器可作其它使用。图2为本发明实施例一中执行指令的方法流程图。该方法包括以下步骤步骤201:CPU启动时,控制逻辑在索引寄存器中设置索引与寄存器编码的对应关系。本步骤中,控制逻辑读取配置特殊寄存器的指令,在索引寄存器中配置索引与寄存器编码的对应关系。实际应用中,本步骤也可以在CPU启动后并且在执行至少一条与索引相关的指令前执行,或者在CPU启动后多次执行,本领域技术人员容易想到只要避免CPU寄存器使用混乱的问题,就可以利用本方案灵活使用CPU寄存器,能够在系统的运行中根据具体的情况重新配置索引寄存器的内容,根据所执行指令的不同情况对寄存器的分配情况进行相应的调整,无疑更进一步的增加了寄存器使用的灵活性。例如,当CPU启动时,控制逻辑读取在索引寄存器中设置索引与寄存器编码对应关系的指令,在索引寄存器中设置如表1所示的索引与寄存器编码的对应关系。<table>complextableseeoriginaldocumentpage8</column></row><table>表l索引与寄存器编码的对应关系如表1所示,索引1对应的寄存器编码为0000,0001,也就是说,该索引对应的寄存器为Rl寄存器。在索引寄存器中配置索引与寄存器编码的对应关系也可以这样一种方式实现索引寄存器为多个索引相关寄存器组成的寄存器组,将寄存器组中的各个索引相关寄存器利用索引进行编号,并在各个索引相关寄存器中存储与索引对应的寄存器编码,从而实现索引与寄存器的对应。在索引寄存器中配置索引与寄存器编码的对应关系也可以在索引寄存器中顺序设置各索引对应的寄存器编码,例如,16位寄存器中,在索引寄存器的第一个8位设置0000,0000表示索引0与寄存器R0相对应,第2个8位设置0000,0010表示索引1与寄存器R2相对应,等等。步骤202:在执行副作用指令时,控制逻辑读取该指令,获得该指令对应的索引。执行本步骤之前,设置了隐含索引的指令,并令该指令与一个索引对应,例如通过在控制逻辑中固化隐含索引的指令与一个索引的对应关系实现,从而使得本步骤中控制逻辑读取副作用指令后,可以获得该副作用指令对应的索引。其中,在控制逻辑中固化隐含索引的指令与一个索引的对应关系的技术以及本步骤执行的过程,分别与现有的在控制逻辑中固化副作用指令与其隐含修改的寄存器编码的对应关系,以及控制逻辑读取副作用指令后,获得该副作用指令对应的隐含修改的寄存器编码的技术相同,因此,在此不再赘述。例如,表2所示为将副作用指令与索引相关的示例。<table>complextableseeoriginaldocumentpage9</column></row><table>表2副作用指令与索引的相关如表2所示,控制逻辑将pop/push指令与索引0相关,lwp!/swp!与索引l相关,bl指令与索引2相关。当控制逻辑读取到pop/push指令时,根据表2相关的例子直接得到该指令与索引0相关。步骤203:在控制逻辑分析该指令获得的寄存器读写控制的控制下,在索引寄存器的对应关系中读取该索引对应的寄存器编码,获得该索引对应的寄存器。例如,步骤202中控制逻辑读入的副作用指令为pop/push,且在步骤202中可得到该指令对应的索引为0,则在执行本步骤时,在索引寄存器中读取索引O对应的寄存器编码,从而得到该指令对应的寄存器为R0寄存器。步骤204:在控制逻辑分析指令得到的寄存器读写控制的控制下,执行该指令,并修改索引对应的寄存器的内容。例如,执行副作用指令pop/push时,如果为pop指令,则本步骤中控制逻辑分析指令得到的寄存器读写控制是读取,该指令执行的寄存器为堆栈寄存器,因此,执行本步骤中,读取堆栈寄存器栈顶的内容,同时,该指令的执行隐含修改与其相关的索引对应的寄存器的内容,即将索引0对应的RO寄存器中的内容修改为当前堆栈的指针;如果为push指令,则本步骤中控制逻辑分析指令得到的寄存器读写控制是写入,该指令执行的寄存器是堆栈寄存器,因此,执行本步骤中,将该指令之前得到的参数写入堆栈寄存器中,同时,该指令的执行隐含修改与其相关的索引对应的寄存器的内容,即将索引0对应的RO寄存器中的内容修改为当前堆栈的指针。本步骤中,控制逻辑分析指令得到寄存器读写控制,并结合该寄存器读写控制执行指令为现有技术,因此在此不再赘述。现有技术中执行push/p叩指令时,隐含的修改sp寄存器的内容,而由以上描述可知,在本发明实施例一中,在索引寄存器中配置索引与寄存器编码的对应关系,通过控制逻辑将指令与索引相关,使得副作用指令push/pop隐含修改的寄存器由原来的sp寄存器,改变为该指令相关的索引所对应的寄存器。因此产生副作用的指令不再直接与具体的寄存器相关联,而是与索引寄存器中存储的与该指令相关的索引所对应的寄存器相关。因此,原先副寄存器的灵活使用。在下一次使用时,如果RO寄存器被使用在其它的方面,则可以通过修码对应,在CPU启动时执行该指令,将索引寄存器存储的对应关系中索引0所对应的寄存器编码修改为其它寄存器编码,例如R5寄存器的寄存器编码,从而实现了CPU寄存器的灵活配置与应用。同时,本发明实施例一中执行指令后,所使用的副作用指令不需要包含索引就可以实现与索引对应的寄存器隐含相关,因此可以保证不占用指令编码空间的同时,实现CPU寄存器的灵活配置与应用。本实施例中的副作用指令与索引是——对应的关系。实施例二本实施例详细说明采用固定寄存器作为全局基址寄存器进行寻址的指令的情况下,执行指令的方法及系统。本实施例中,执行指令的系统包括控制逻辑和索引寄存器。其中,控制逻辑,用于预先在索引寄存器中设置索引与寄存器编码的对应关系;读取包含索引的指令,获得该指令对应的索引,根据该索引在索引寄存器的对应关系中读取该索引对应的寄存器编码,并结合分析指令得到的寄存器读写控制,基于该寄存器编码对应的寄存器执行该指令。索引寄存器,用于存储索引与寄存器编码的对应关系。图3为本发明实施例二执行存取数指令的数据通路图。如图3所示,执行存储访问指令load时,具体过程包括读取包含索引的指令,从该指令中获得索引,然后在控制逻辑分析该指令获得的寄存器读写控制的控制下,读取索引寄存器,获得该索引对应的寄存器编码,例如为寄存器l;在寄存器读写控制的控制下读取索引对应的寄存器l中的内容,获得基址,再与指令中的地址偏移一起获得将要读取的存储器的地址,并从该地址中读取数据,将该读取的数据写入到指令中包含的寄存器2中。在执行存储访问指令store时,读取寄存器2中的内容,写入到根据指令中所包含的索引对应的寄存器中存储的基址与指令中的地址偏移计算得到的地址中。图4为本发明实施例二中执行指令的方法流程图。如图4所示,该方法包括以下步骤步骤400:在ABI中定义索引使用约定。每个操作系统都会为运行在该系统下的应用程序提供ABI。ABI包含了应用程序在这个系统下运行时必须遵守的编程约定,包括一系列的系统调用和使用这些系统调用的方法,以及关于程序可以使用的内存地址和寄存器使用的规定。本步骤中,在ABI中定义索引使用约定是定义指令中出现的索引的用途,例如,索引3为用于全局基址寄存器的索引。步骤401:CPU启动时,控制逻辑在索引寄存器中设置索引与寄存器编码的对应关系。本步骤与步骤201相同,因此在此不再赘述。步骤402:读取包含索引的指令,从该指令获取索引,并在控制逻辑分析指令获得的寄存器读写控制的控制下,从索引寄存器的对应关系中,读取该索引所对应的寄存器编码,获得该索引所对应的寄存器。步骤403:结合控制逻辑分析该指令获得的寄存器读写控制,基于该索引对应的寄存器执行指令。举例来说,在C语言中,编译器、连接器通常将小字段变量集中存放,以方便存取,在指令执行过程中通过全局基址寄存器(gp)与地址偏移相加的方式存取这类变量。而在本发明实施例二中,使用索引代替gp,同时在CPU启动时,在索引寄存器中设置索引3与gp寄存器的对应关系。例如,执行指令loadrl,[3,immediate],读取该指令后,分析该指令得到其中全局基址寄存器对应的索引3,在索引寄存器中读取指令中的索引3对应的寄存器编码,例如为R3寄存器。然后在控制逻辑分析指令获得的寄存器读写控制的控制下,从该寄存器中读取基址,再利用该基址继续执行该指令。而在现有技术执行指令loadrl,[gp,immediate]时,由于gp参力口指令编码,在CPU包含32个寄存器的情况下,每个寄存器需要5位的编码空间,当指令的编码长度固定时,相对于寄存器编码占用位数少的情况,立即数(immediate)的编码长度减小,使得该立即数的数值范围较小,即偏移量变小,从而使得基于gp的寻址空间变小。而本发明中,如果利用索引设置的寄存器为4个,则索引只用到4即可,也就是说通过使用索引,只需两位就可以表示原先占用5位编码的寄存器,从而将立即数的编码长度增大了3位,也就增大了基于gp的寻址空间。由以上所述可知,本发明可通过索引间接使用寄存器,从而使得寄存器的用途不再固定,有利于通过软件灵活的配置使用寄存器。且在相同编码长度的条件下,可扩大寻址范围,或在相同寻址范围下,得到较小尺寸的代码,从而达到节省编码空间的效果。因此,本实施例中的方法也可以作为一种指令寻址模式使用。灵活应用本发明实施例一的技术方案,还可使得在体系结构升级时进行的ABI调整更加全面、灵活。体系结构的升级一般是通过对原有体系结构指令的改进获得,但是为了保持已有软件的正确运行,通常不会对已有的指令及二进制编码格式进行修改,而只利用剩余的二进制编码空间增加功能更强的指令。但是,如果增加的指令希望利用已有副作用指令会改变的寄存器,则这种指令的增加往往会受到限制,增加之后也往往达不到希望的结果。而在现有的体系结构中,副作用指令通常存在,且它与固定通用寄存器的直接相关,又使得通用寄存器的使用受限,这使得传统体系结构中软件ABI可以随着需要调整任意寄存器用途的功能受到限制。例如,在score体系中增加16位指令时,由于编码空间限制,希望寄存器编码只占用3位,也就是说希望只使用R0-R7寄存器作为操作寄存器,因此,需要在ABI中将R0-R7的用途设为操作寄存器。但是,在score体系下,R0、R2和R3寄存器有固定用途,RO寄存器用于在执行pop/push指令时的sp寄存器,R2寄存器用于执行lwp!/swp!指令时的fp寄存器,R3用于执行bl指令时的lr寄存器,这三个寄存器的固定性限制了软件ABI的设计。从而使得增加的16位指令只能使用寄存器Rl和R4-R7,而不能够充分利用指令空间所表示的所有寄存器。利用本实施例的技术方案时,只需要将这些副作用指令与索引寄存器的索引相关,而在索引寄存器中设置该索引对应的寄存器为R7以后的寄存器,例如将pop/push指令通过索引与R8寄存器相关,lwp!/swp!指令通过索引与R9寄存器相关,而bl指令通过索引与寄存器Rll相关,这样,原来有固定用途的寄存器R0、R2和R3就可以通过配置而释放出来,供ABI重新定义,从而解除了原有体系结构中副作用指令对寄存器任意使用造成的限制,使得小标号寄存器得到充分利用。实际应用中,可以将本发明实施例一中提供的技术方案与实施例二提供的技术方案结合使用,例如CPU启动时在索引寄存器中设置索引与寄存器编码的对应关系,利用实施例一的技术方案,将索引0、1、2与副作用指令相关;而在基址变址寻址的指令中,使用索引3与全局基址寄存器对应,从而在释放了副作用指令隐含修改的固定通用寄存器的同时,还可以让出更多位给立即数,可以尽可能将含有立即数的指令用一条指令表示;并且增大指令的寻址范围,或节省指令的编码空间。另外,本发明实施例一中描述的执行指令的方法不仅限于副作用指令,也可以应用于其它隐含索引的指令,例如预先设置load指令与索引的对应关系,而将load指令中指定的全局基址寄存器或对应的索引去掉,将load指令变为隐含索引的指令,通过控制逻辑读取该隐含索引的指令后,获得该指令对应的索引,读取索引寄存器,获取load指令中的全局基址寄存器,从而可以灵活使用全局基址寄存器,或将其它寄存器作为全局基址寄存器,实现对寄存器的灵活应用;同时,由于指令中没有出现基址寄存器,节省了指令编码空间,或者增大立即数的寻址范围。本例中,可以有多个隐含索引的指令与一个索引相对应,例如隐含索引的load指令和隐含索引的store指令可以与一个索引相对应,即load指令和store指令均与一个全局基址寄存器对应;也可以是一个隐含索引的指令与多个索引相对应,例如隐含索引的load指令对应第一个索引为全局基址寄存器的索引,对应的第二个索引为从存储器取出数据后存放的寄存器对应的索引。本发明通过索引间接引用寄存器,在实现CPU寄存器灵活配置与应用的同时,也由于通过索引才能作用到寄存器而带来了效率的问题。由于多加一级索引查找,硬件上需要有相应的阶段进行处理,因此可通过多加一级管道流水实现,也可将索引查找合并到现有某一个流水阶段,例如译码阶段或指令执行阶段而实现。由以上所述可以看出,本发明所提供的技术方案,副作用指令通过控制逻辑作用到索引所对应的寄存器上,改变了现有技术中的副作用指令隐含修改固定通用寄存器,从而使得固定通用寄存器释放出来,在需要的时候定义为其它作用的寄存器,实现了对CPU寄存器的灵活配置与使用。同时,本发明提供的技术方案不需要对已有副作用指令进行改变,可以保证与现有技术中副作用指令编码长度相同的情况下,配置副作用指令隐含修改的寄存器;同时,还可以保证硬件二进制指令的兼容性。而又由于可以通过设置索引寄存器的内容为CPU指令灵活配置寄存器,从而方便编译器人员调度、设计前端语言的ABI规则时,调整任何需要的寄存器用途,有利于找到合理的ABI规则模型。因此,既达到了对CPU体系结构升级时,可以有效的保持硬件二进制指令的兼容性和软件ABI设计的一致性的效果,又达到了方便编译器人员通过软件的方法调度前端语言的ABI规则,以找出一种合理的ABI规则模型的效果。最后,本发明提供的技术方案,通过索引与寄存器相对应,在指令中引用索引而间接引用寄存器,使得可以根据寄存器使用情况及编码长度限制情况,利用较低位数的索引与较大标号的寄存器相关,减小指令中寄存器的编码空间,从而为偏移量释放出更多的位数,增大了寻址范围;同时,在偏移量位数不变的情况下,减小了指令代码长度。以上所述的实施例虽然只列举了load和store指令在本发明中的应用,但是本领域技术人员应该理解,除这两个指令外,其它需要使用CPU寄存器的指令也适于应用本发明的方案,以达到以上所述的效果,或解决以上所述的问题。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种执行指令的方法,其特征在于,预先在索引寄存器中设置索引与寄存器编码的对应关系,该方法包括读取与索引相关的指令,并获取与所述指令对应的索引后,从所述索引寄存器的对应关系中读取该索引对应的寄存器编码;基于该寄存器编码对应的寄存器执行所述指令。2、如权利要求l所述的方法,其特征在于,所述在索引寄存器中设置索引与寄存器编码的对应关系通过执行设置索引与寄存器编码的对应关系的指令实现。3、如权利要求l所述的方法,其特征在于,所述读取与索引相关的指令之前,该方法进一步包括设置隐含索引的指令,令所述隐含索引的指令与一个索引对应;所述读取与索引相关的指令并获取与指令对应的索引为读取隐含索引的指令,获得与该指令对应的索引。4、如权利要求3所述的方法,其特征在于,所述设置隐含索引的指令通过在控制逻辑中固化所述隐含索引的指令与一个索引的对应关系实现。5、如权利要求3或4所述的方法,其特征在于,所述隐含索引的指令与索引——对应。6、如权利要求l所述的方法,其特征在于,所述预先在索引寄存器中设置索引与寄存器编码的对应关系的步骤,在系统启动时执行;或者在系统启动后并且在执行至少一条与索引相关的指令前执行;或者在系统启动后多次执行。7、如权利要求l所述的方法,其特征在于,将所述从索引寄存器中的对应关系中读取该索引对应的寄存器编码的步骤合并到译码阶段或指令执行阶段。8、如权利要求l所述的方法,其特征在于,所述从索引寄存器中的对应关系中读取该索《1对应的寄存器编码的步骤在新增加的一级管道流水中执行。9、如权利要求l所述的方法,其特征在于,所述指令为包含索引的指令。10、如权利要求9所述的方法,其特征在于,所述预先在索引寄存器中设置索引与寄存器编码的对应关系之前,该方法进一步包括在应用程序二进制接口ABI中定义指令中的索引使用约定。11、一种执行指令的系统,其特征在于,该系统包括控制逻辑和索引寄存器,所述控制逻辑,用于预先在索引寄存器中设置索引与寄存器编码的对应关系;读取与索引相关的指令,获取该指令对应的索引,从索引寄存器的对应关系中读取该索引对应的寄存器编码,并基于该寄存器编码对应的寄存器执行所述指令;所述索引寄存器,用于存储索引与寄存器编码的对应关系。12、如权利要求11所述的系统,其特征在于,所述指令为包含索引的指令。13、如权利要求12所述的系统,其特征在于,所述控制逻辑固化了至少一个隐含索引的指令与一个固定索引——对应的关系,所述控制逻辑还用于读取所述隐含索引的指令,获得该指令对应的索引。全文摘要本发明公开了一种执行指令的方法,预先在索引寄存器中设置索引与寄存器编码的对应关系,该方法包括读取与索引相关的指令,获取该指令对应的索引,并在索引寄存器的对应关系中读取该索引对应的寄存器编码;然后基于该寄存器编码对应的寄存器执行该指令。本发明还公开了一种执行指令的系统,包括控制逻辑和索引寄存器。使用本发明实现了CPU寄存器的灵活配置与应用,突破了副作用指令执行时隐含修改对应的固定通用寄存器内容造成的对寄存器使用的限制,从而可全面进行应用程序二进制接口(ABI)的调整;并且节省指令的编码空间,或者增大指令的寻址范围。文档编号G06F9/30GK101344841SQ20071013052公开日2009年1月14日申请日期2007年7月11日优先权日2007年7月11日发明者陈立勤申请人:凌阳科技股份有限公司;北京北阳电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1