CN109558169B - 一种微处理器指令集在线可重构方法 - Google Patents
一种微处理器指令集在线可重构方法 Download PDFInfo
- Publication number
- CN109558169B CN109558169B CN201811430366.7A CN201811430366A CN109558169B CN 109558169 B CN109558169 B CN 109558169B CN 201811430366 A CN201811430366 A CN 201811430366A CN 109558169 B CN109558169 B CN 109558169B
- Authority
- CN
- China
- Prior art keywords
- instruction
- logic
- reconfigurable
- reconstruction
- decoder
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000006870 function Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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 or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种微处理器指令集在线可重构方法,该方法包括以下步骤:在译码器单元增加指令比较单元;在线实时比较匹配额外加密指令,触发启动加密译码器;使用加密译码器译码,同时在线实时比较匹配额外解密指令;触发到解密指令,恢复正常译码器功能。本发明可以在关键需要加密的部分触发配置处理器调用另一套译码器逻辑。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种微处理器指令集在线可重构方法。
背景技术
指令集是存储在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将直接写入流水线寄存器。
Claims (3)
1.一种微处理器指令集在线可重构方法,其特征在于,包括以下步骤:
从存储器中取出指令,指令被译码;
判断是否为重构逻辑的指令;
查询指令中是否存在预先设定好的编码;如存在,则为重构逻辑的指令,否则,不是重构逻辑的指令;
若指令不是重构逻辑的指令,则选择指令译码器对指令进行译码,直接将译码结构写入流水线寄存器;
若指令为重构逻辑指令,则触发可重构逻辑,同时产生可重构指令,可重构指令控制可重构逻辑进行重构,重构后的指令、立即数、操作数据发送至流水线寄存器;
对指令的重构,将指令再重构为另外一条指令,改变指令的功能;对操作数重构,将操作数进行移位、取反操作,达到对编译码加密的目的;
所述可重构逻辑,用于对指令、立即数、操作数据进行操作;
所述重构逻辑的指令通过编译器获得。
2.根据权利要求1所述的一种微处理器指令集在线可重构方法,其特征在于,所述可重构指令控制可重构逻辑进行重构具体如下:可重构指令触发可重构逻辑,可重构逻辑对数据源进行逻辑操作,得到的处理后的数据发送至流水线寄存器。
3.根据权利要求1所述的一种微处理器指令集在线可重构方法,其特征在于,所有译码后的指令以及重构后的指令、立即数、操作数据写入流水线寄存器,然后通过后续指令执行模块进行运算执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430366.7A CN109558169B (zh) | 2018-11-28 | 2018-11-28 | 一种微处理器指令集在线可重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430366.7A CN109558169B (zh) | 2018-11-28 | 2018-11-28 | 一种微处理器指令集在线可重构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558169A CN109558169A (zh) | 2019-04-02 |
CN109558169B true CN109558169B (zh) | 2023-07-18 |
Family
ID=65867624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811430366.7A Active CN109558169B (zh) | 2018-11-28 | 2018-11-28 | 一种微处理器指令集在线可重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558169B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127273B (zh) * | 2019-12-31 | 2023-07-14 | 华润微集成电路(无锡)有限公司 | 单片机检测电路及相应的检测的方法 |
CN116227614B (zh) * | 2023-01-17 | 2024-01-26 | 深圳国际量子研究院 | 一种使用指令集的实时微系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114274A (zh) * | 2007-08-23 | 2008-01-30 | 顾士平 | 动态可重构指令处理器配置及通信控制器 |
TW201319934A (zh) * | 2011-11-07 | 2013-05-16 | Ind Tech Res Inst | 可重新配置的指令編碼方法及處理器架構 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373642B2 (en) * | 2003-07-29 | 2008-05-13 | Stretch, Inc. | Defining instruction extensions in a standard programming language |
CN101364214A (zh) * | 2007-08-08 | 2009-02-11 | 顾士平 | 动态可重构指令计算机处理器及实现方法 |
CN101826142B (zh) * | 2010-04-19 | 2011-11-09 | 中国人民解放军信息工程大学 | 一种可重构椭圆曲线密码处理器 |
CN104750660A (zh) * | 2015-04-08 | 2015-07-01 | 华侨大学 | 一种具有多工作模式的嵌入式可重构处理器 |
CN105824603B (zh) * | 2016-03-14 | 2018-07-31 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
-
2018
- 2018-11-28 CN CN201811430366.7A patent/CN109558169B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114274A (zh) * | 2007-08-23 | 2008-01-30 | 顾士平 | 动态可重构指令处理器配置及通信控制器 |
TW201319934A (zh) * | 2011-11-07 | 2013-05-16 | Ind Tech Res Inst | 可重新配置的指令編碼方法及處理器架構 |
Also Published As
Publication number | Publication date |
---|---|
CN109558169A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4484925B2 (ja) | Simdデバイスにおける制御フロー管理のための方法及び装置 | |
US6826674B1 (en) | Program product and data processor | |
US7313671B2 (en) | Processing apparatus, processing method and compiler | |
CN109558169B (zh) | 一种微处理器指令集在线可重构方法 | |
KR100423910B1 (ko) | 코프로세서 명령 실행 장치 및 방법 | |
US7574583B2 (en) | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor | |
Reshadi et al. | Hybrid-compiled simulation: An efficient technique for instruction-set architecture simulation | |
KR100573334B1 (ko) | 실시간 동적 수정이 가능한 명령어 집합을 가지는 컴퓨터 | |
JP5759537B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
CN111090465B (zh) | 一种rv32ic指令集的译码系统及其译码方法 | |
KR101147190B1 (ko) | 다중-명령어 워드 프로세서에서 피드백 접속의 런타임 선택 | |
JP5122277B2 (ja) | データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム | |
JP4828409B2 (ja) | タイムステーショナリプロセッサにおける条件動作のためのサポート | |
US20070055851A1 (en) | Zero overhead branching and looping in time stationary processors | |
WO2005036384A2 (en) | Instruction encoding for vliw processors | |
Wang et al. | Reliable computing with ultra-reduced instruction set coprocessors | |
Xianhua et al. | Efficient code size reduction without performance loss | |
Oliver et al. | Improving DSP performance with a small amount of field programmable logic | |
UCHIYAMA et al. | Embedded processor core with 64-bit architecture and its system-on-chip integration for digital consumer products | |
Soares et al. | Adaptive reduced bit-width Instruction Set Architecture (adapt-rISA) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |