本发明涉及计算机应用技术领域,特别是涉及一种微处理器指令集在线可重构方法。
背景技术:
指令集是存储在cpu内部,对cpu运算进行指导和优化的硬程序,系统所安排的每一条指令,都需要cpu根据预先设定好的指令配合使用,而这些预先设定好的指令统称为指令集。随着微处理器技术的发展,使用一种通用的指令集译码单元在某些部分场合,无法满足专用的需求,因此需要微处理器能够在线可以对指令集部分进行配置重构。
微处理器指令集在线可重构技术是一种新型的微处理器架构,其可以结合专用软件编译器和固化的可重构逻辑,可以实时在线对译码器部分逻辑进行重新配置,具有高灵活性、高性能、高安全性等优点。
技术实现要素:
本发明目的是提供一种指令集在线可重构的方法,可以在微处理器运行时,在线对指令集进行配置重构,该方法可以用于对程序的需要的关键部分进行加密执行。
本发明为实现上述目的所采用的技术方案是:一种微处理器指令集在线可重构方法,包括以下步骤:
从存储器中取出指令,指令被译码;
判断是否为重构逻辑的指令;
若指令不是重构逻辑的指令,则选择指令译码器对指令进行译码,直接将译码结构写入流水线寄存器;
若指令为重构逻辑指令,则触发可重构逻辑,同时产生可重构指令,可重构指令控制可重构逻辑进行重构,重构后的指令、立即数、操作数据发送至流水线寄存器。
所述判断是否为重构逻辑的指令具体为:
查询指令中是否存在预先设定好的编码;如存在,则为重构逻辑的指令,否则,不是重构逻辑的指令。
所述可重构逻辑,用于对指令、立即数、操作数据进行操作。
所述可重构指令控制可重构逻辑进行重构具体如下:可重构指令触发可重构逻辑,可重构逻辑对数据源进行逻辑操作,得到的处理后的数据发送至流水线寄存器。
所述重构逻辑的指令通过编译器获得。
所有译码后的指令以及重构后的指令、立即数、操作数据写入流水线寄存器,然后通过后续指令执行模块进行运算执行。
本发明具有以下有益效果及优点:
1.本发明通过在线对编译指令进行比较,实现指令集的在线可重构配置。
2.本发明使用对流水线中的译码逻辑部分配置,具有高灵活性、高性能、高安全性等优点。
3.本发明使用软件编译器对软件编译可对异构部分逻辑进行配置,实现加密功能,不影响软件原有软件程序。
附图说明
图1本发明所设计的微处理器指令集在线可重构系统工作原理图;
图2本发明所设计的微处理器指令集在线可重构系统工作流程图;
图3本发明所设计的微处理器指令集在线可重构系统的一种具体硬件实施方式工作原理图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明对于在处理器执行过程中的译码器单元,添加指令比较逻辑,实时在线比较取指令后要进行译码的指令;指令比较单元比较指令是否为配置可重构逻辑指令,若指令为配置可重构指令,则产生触发配置切换可重构逻辑信号;
在配置为可重构逻辑时,原有译码器部分将被选择替换为另一套译码器逻辑,其替换部分可以为全部译码器逻辑,也可以为部分译码器逻辑;
若在配置为可重构逻辑时,指令比较单元比较指令是否为配置普通译码器,若指令为配置普通译码器指令,测产生触发配置切换普通译码器。
配置可重构逻辑需要使用软件编译器,对其运行的软件程序进行编译,用来产生专用加密的可重构逻辑指令,可以对软件程序关键部分配置为使用重构逻辑部分译码执行。
如图1所示,本发明所涉及的微处理器指令集在线可重构系统包括取指令模块、指令译码模块、可重构指令、可重构逻辑模块、指令执行模块。本发明所设计的指令集在线可重构系统的重点在于指令的在线可重构逻辑模块,主要是在指令译码的部分。在此部分添加指令比较逻辑,识别判断操作码,以及可配置的另一部分指令译码电路,如图3所示。
该部分的可重构逻辑需要使用软件编译器对用户程序进行编译,产生专用的执行指令,在未使用软件编译器时,指令译码模块将不会被触发;在使用软件编译器时,用户可以将软件中设定的关键部分使用异构指令触发配置切换置另一部分重构逻辑译码,达到对译码后的执行指令进行加密的目的。
如图2所示,本发明的系统具体的处理流程图,具体实施流程如下:
s101:一般微处理器的取指令操作,从存储器中取出指令,放入指令流水线;
s102:指令译码部分,在此处理过程中,指令被译码;
s103:该发明的比较逻辑实时比较被译码的指令,判断是否为特定的触发切换值重构逻辑的指令,判断方法为在指令中插入预先设定好的编码,通过译码步骤中的实时比较判断出重构指令;
s104:若指令未被触发至重构逻辑,则指令译码部分选择使用一般指令译码器对指令进行译码,此过程完全与一般的译码器效果相同,直接将译码结构写入流水线寄存器;
s105:若比较逻辑识别为配置异构指令,则触发选择切换至重构逻辑,则指令译码部分产生可重构指令,可重构指令再控制可重构逻辑对指令、立即数、操作数据等进行重构。比如对指令的重构,可以将指令再重构为另外一条指令,改变指令的功能;比如对操作数重构,将操作数进行移位、取反等操作,达到对编译码加密的目的;
s106:指令执行过程,指令占用数据通路,寄存器堆被读取,与一般微处理器执行过程相同。
如图3所示,本发明所设计的微处理器指令集在线可重构系统的一种具体硬件实施方式图。该逻辑主要包括译码器包含比较逻辑、可重构指令(a、b、c、d、e、f)、可重构逻辑(a、b、c、d、e、f)、选择器(mux)、及相关配置的重构逻辑;在指令执行过程中,译码器在译码过程中在线比较识别特殊指令码,在识别出特殊指令码后产生选择控制信号,控制可重构指令(a、b、c、d、e、f)模块产生可重构指令,各个可重构指令再分别控制可重构逻辑(a、b、c、d、e、f),可重构逻辑(a、b、c、d、e、f)再分别对操作码、立即数、数据源ab、操作数ab进行重构及相关操作数进行逻辑处理。例如取指令模块识别到了触发重构指令,然后接下来要执行的是数据源a减数据源b,可重构模块a将减法指令重构成加法指令别,可重构逻辑c将数据源a取反、可重构逻辑将数据源b取反,经过以上重构逻辑处理后的数据为解密后的逻辑操作,指令译码过程处理后,所有译码后的指令及操作数缓存进流水线寄存器;在取指令模块识别到了关闭重构逻辑,译码器输出的所有操作码、立即数、数据源ab、操作数ab将直接写入流水线寄存器。