CN104991759B - 一种可变指令集微处理器及其实现方法 - Google Patents

一种可变指令集微处理器及其实现方法 Download PDF

Info

Publication number
CN104991759B
CN104991759B CN201510449099.8A CN201510449099A CN104991759B CN 104991759 B CN104991759 B CN 104991759B CN 201510449099 A CN201510449099 A CN 201510449099A CN 104991759 B CN104991759 B CN 104991759B
Authority
CN
China
Prior art keywords
variable order
order collection
register
processor
program
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
Application number
CN201510449099.8A
Other languages
English (en)
Other versions
CN104991759A (zh
Inventor
周海林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Kaiyan Intellectual Property Service Co ltd
Zhejiang Qusu Technology Co ltd
Original Assignee
Chengdu Teng Yue Science And Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Teng Yue Science And Technology Ltd filed Critical Chengdu Teng Yue Science And Technology Ltd
Priority to CN201510449099.8A priority Critical patent/CN104991759B/zh
Publication of CN104991759A publication Critical patent/CN104991759A/zh
Priority to PCT/CN2016/078069 priority patent/WO2017016232A1/zh
Application granted granted Critical
Publication of CN104991759B publication Critical patent/CN104991759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明公开了一种可变指令集微处理器及其实现方法,寄存器命名如下:变指地址寄存器,用于存放可变指令集地址;变指号寄存器,用于存放可变指令集号码,该寄存器的值从0开始,每当处理器可变指令集寄存器的值改变一次,该寄存器的值增加1;变指使能寄存器:当该寄存器的值被置位,处理器使用线程或者任务规定的可变指令集;当该寄存器被复位,处理器使用处理器自身的指令集;可变指令集寄存器储存程序可变指令集对应处理器指令集的关系;变指号清除指令:当程序使用该指令后,处理器会清除可变指令集号码对应的可变指令集地址。本发明采用可变指令集微处理器,可以避免逆向破解程序破解处理器的指令,从而防止恶意软件的攻击,提高数据安全性。

Description

一种可变指令集微处理器及其实现方法
技术领域
本发明涉及一种可变指令集微处理器及其实现方法。
背景技术
指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。Intel有x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4.1,SSE4.2和针对64位桌面处理器的EM-64T。AMD主要是3D-Now!指令集。CPU靠指令来计算和控制系统,每款CPU设计时就规定了与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC指令集)和精简指令集(RISC指令集)两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Singleinstruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图像和Internet等处理能力。通常把CPU的扩展指令集称为"CPU的指令集"。
现有处理器都采用固定指令集,这样破解程序通过分析二进制目标程序可以破解程序的源代码,这样容易导致数据安全隐患。
发明内容
本发明的目的在于克服现有技术的不足,提供一种可变指令集微处理器及其实现方法,当前程序可以随时更改可变指令集,使得非法程序不能更改当前程序,防止恶意软件的攻击,提高数据处理的安全性。
本发明的目的是通过以下技术方案来实现的:一种可变指令集微处理器,所述可变指令集微处理器的寄存器命名如下:
变指地址寄存器:用于存放可变指令集地址,可变指令集地址指用于存储用户可变指令集的内存地址,该寄存器只能被程序写入,而不能被程序读取,否则产生异常;
变指号寄存器:用于存放可变指令集号码,该寄存器的值从0开始,每当处理器可变指令集寄存器的值改变一次,该寄存器的值增加1,该寄存器能够被线程或者任务读写;
变指使能寄存器:当该寄存器的值被置位,处理器使用线程或者任务规定的可变指令集;当该寄存器被复位,处理器使用处理器自身的指令集;
可变指令集存储单元:用于存放用户可变指令集,存放在主存、辅存或者处理器中;所述的处理器指令集(我们把处理器完成计算或者控制的指令合称为指令集)为基于某一个固定地址偏移对应的处理器指令集,或者是基于某一个固定地址程序可变指令集处对应的处理器指令集,或者是基于处理器固定指令对应的程序可变指令集;
变指号清除指令:当程序使用该指令后,处理器会清除可变指令集号码以及可变指令集号码对应的可变指令集地址。
所述的可变指令集地址为:处理器可变指令集在主存、辅存或者处理器中的地址。
所述的处理器指令集为基于某一个固定地址偏移对应处理器指令集,或者是基于某一个固定地址程序可变指令集处对应处理器指令集,或者是基于处理器固定指令对应程序可变指令集,处理器机械地在主存或者辅存中划分一定容量的存储单元,把可变指令集的号码对应的可变指令集地址,可变指令集放在该存储单元中,处理器对该存储单元地址段内容进行了硬件加密,不能被程序读写,否则产生异常。
一种可变指令集微处理器的实现方法,包括以下步骤:
(1)开启模式可变指令:
程序在合适的存储单元建立好可变指令集,然后程序把可变指令目录地址放到处理器可变指令集寄存器,然后把程序的指令替换成需要更改的可变指令集,最后使能可变指令集寄存器,处理器使用程序提供的指令集;
(2)遗弃处理器使用的可变指令集:
程序要遗弃可变指令集,首先程序将程序正在使用的可变指令集代码转换成处理器的固定指令集代码,然后复位变指使能寄存器,使用清除可变指令集指令清除可变指令集地址和可变指令集号码;
(3)在程序运行过程中改变处理器指令集,包括以下子步骤:
S1:程序把对应处理器可变指令集的可变指令集存放在合适的储存单元,可变指令集存放在主存、片上缓存或者辅存中;
S2:把程序的指令替换成需要更改的可变指令集;
S3:程序把可变指令集地址放到变指地址寄存器,处理器将变指号寄存器的值加1;
S4:把程序的指令替换成新的可变指令集,置位变指使能寄存器,处理器使用程序提供的新的指令集;
(4)程序上下文的切换:
程序把使能可变指令集寄存器、变指号寄存器存入程序结构中,当要恢复线程上下文的时候,把程序结构中的使能可变指令集寄存器的值放到使能可变指令集寄存器中,把变指号寄存器的值放到变指号寄存器中。
本发明的有益效果是:逆向破解程序知道处理器的指令,从而得到软件的源代码。本申请采用可变指令集微处理器,可以避免逆向破解程序破解处理器的指令,从而防止恶意软件的攻击,提高数据安全性。
具体实施方式
下面进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
一种可变指令集微处理器,所述可变指令集微处理器的寄存器命名如下:
变指地址寄存器:用于存放可变指令集地址(指示处理器对应的可变指令集,在主存中,或者在辅存中,或者在处理器中的地址),可变指令集地址指用于存储用户可变指令集的内存地址,该寄存器只能被程序写入,而不能被程序读取(可防止其他程序窥探其他用户程序的指令集),否则产生异常;
变指号寄存器:用于存放可变指令集号码,该寄存器的值从0开始,每当处理器可变指令集寄存器的值改变一次,该寄存器的值增加1,该寄存器能够被线程或者任务读写;为了保证写的数据正确,不使用未被使用的值,并且也不要使用其他程序的可变指令集的号码,否则会产生不能预测的错误;
变指使能寄存器:当该寄存器的值被置位,处理器使用线程或者任务规定的可变指令集;当该寄存器被复位,处理器使用处理器自身的指令集;
可变指令集存储单元:用于存放用户可变指令集,存放在主存、辅存或者处理器中;所述的处理器指令集(我们把处理器完成计算或者控制的指令合称为指令集)为基于某一个固定地址偏移对应的处理器指令集,或者是基于某一个固定地址程序可变指令集处对应的处理器指令集,或者是基于处理器固定指令对应的程序可变指令集;
变指号清除指令:当程序使用该指令后,处理器会清除可变指令集号码以及可变指令集号码对应的可变指令集地址。
所述的可变指令集地址为处理器可变指令集在主存、辅存或者处理器中的地址。
一种可变指令集微处理器的实现方法,包括以下步骤:
(1)开启模式可变指令:
程序在合适的存储单元建立好可变指令集,然后程序把可变指令目录地址放到处理器可变指令集寄存器,然后把程序的指令替换成需要更改的可变指令集,最后使能可变指令集寄存器,处理器使用程序提供的指令集;
(2)遗弃处理器使用的可变指令集:
程序要遗弃可变指令集,首先程序将程序正在使用的可变指令集代码转换成处理器的固定指令集代码,然后复位变指使能寄存器,使用清除可变指令集指令清除可变指令集地址和可变指令集号码;
(3)在程序运行过程中改变处理器指令集,包括以下子步骤:
S1:程序把对应处理器可变指令集的可变指令集存放在合适的储存单元(可变指令集可以放在主存,片上缓存,或者辅存中);
S2:把程序的指令替换成需要更改的可变指令集;
S3:程序把可变指令集地址放到变指地址寄存器,处理器将变指号寄存器的值加1;
S4:置位变指使能寄存器,处理器使用程序提供的新的指令集;
(4)程序上下文的切换:
程序把使能可变指令集寄存器、变指号寄存器存入程序结构中,当要恢复线程上下文的时候,把程序结构中的使能可变指令集寄存器的值放到使能可变指令集寄存器中,把变指号寄存器的值放到变指号寄存器中。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (4)

1.一种可变指令集微处理器,其特征在于,所述可变指令集微处理器的寄存器命名如下:
变指地址寄存器:用于存放可变指令集地址,可变指令集地址指用于存储用户可变指令集的内存地址,该寄存器只能被程序写入,而不能被程序读取,否则产生异常;
变指号寄存器:用于存放可变指令集号码,该寄存器的值从0开始,每当处理器可变指令集寄存器的值改变一次,该寄存器的值增加1,该寄存器能够被线程或者任务读写;
变指使能寄存器:当该寄存器的值被置位,处理器使用线程或者任务规定的可变指令集;当该寄存器被复位,处理器使用处理器自身的指令集;
可变指令集存储单元:用于存放用户可变指令集,存放在主存、辅存或者处理器中;所述的处理器完成计算或者控制的指令集为基于某一个固定地址偏移对应的处理器指令集,或者是基于某一个固定地址程序可变指令集处对应的处理器指令集,或者是基于处理器固定指令对应的程序可变指令集;
变指号清除指令:当程序使用该指令后,处理器会清除可变指令集号码以及可变指令集号码对应的可变指令集地址。
2.根据权利要求1所述的一种可变指令集微处理器,其特征在于:所述的可变指令集地址为:处理器可变指令集在主存、辅存或者处理器中的地址。
3.根据权利要求1所述的一种可变指令集微处理器,其特征在于:所述的处理器指令集为基于某一个固定地址偏移对应处理器指令集,或者是基于某一个固定地址程序可变指令集处对应处理器指令集,或者是基于处理器固定指令对应程序可变指令集,处理器机械地在主存或者辅存中划分一定容量的存储单元,把可变指令集的号码对应的可变指令集地址,可变指令集放在该存储单元中,处理器对该存储单元地址段内容进行了硬件加密,不能被程序读写,否则产生异常。
4.根据权利要求1-3中任意一项所述的一种可变指令集微处理器的实现方法,其特征在于,包括以下步骤:
(1)开启模式可变指令:
程序在合适的存储单元建立好可变指令集,然后程序把可变指令目录地址放到处理器可变指令集寄存器,然后把程序的指令替换成需要更改的可变指令集,最后使能可变指令集寄存器,处理器使用程序提供的指令集;
(2)遗弃处理器使用的可变指令集:
程序要遗弃可变指令集,首先程序将程序正在使用的可变指令集代码转换成处理器的固定指令集代码,然后复位变指使能寄存器,使用清除可变指令集指令清除可变指令集地址和可变指令集号码;
(3)在程序运行过程中改变处理器指令集,包括以下子步骤:
S1:程序把对应处理器可变指令集的可变指令集存放在合适的储存单元,可变指令集存放在主存、片上缓存或者辅存中;
S2:把程序的指令替换成需要更改的可变指令集;
S3:程序把可变指令集地址放到变指地址寄存器,处理器将变指号寄存器的值加1;
S4:把程序的指令替换成新的可变指令集,置位变指使能寄存器,处理器使用程序提供的新的指令集;
(4)程序上下文的切换:
程序把使能可变指令集寄存器、变指号寄存器存入程序结构中,当要恢复线程上下文的时候,把程序结构中的使能可变指令集寄存器的值放到使能可变指令集寄存器中,把变指号寄存器的值放到变指号寄存器中。
CN201510449099.8A 2015-07-28 2015-07-28 一种可变指令集微处理器及其实现方法 Active CN104991759B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510449099.8A CN104991759B (zh) 2015-07-28 2015-07-28 一种可变指令集微处理器及其实现方法
PCT/CN2016/078069 WO2017016232A1 (zh) 2015-07-28 2016-03-31 一种可变指令集微处理器及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510449099.8A CN104991759B (zh) 2015-07-28 2015-07-28 一种可变指令集微处理器及其实现方法

Publications (2)

Publication Number Publication Date
CN104991759A CN104991759A (zh) 2015-10-21
CN104991759B true CN104991759B (zh) 2018-01-16

Family

ID=54303575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510449099.8A Active CN104991759B (zh) 2015-07-28 2015-07-28 一种可变指令集微处理器及其实现方法

Country Status (2)

Country Link
CN (1) CN104991759B (zh)
WO (1) WO2017016232A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104991759B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
CN109685731B (zh) * 2018-12-13 2023-07-18 浪潮通用软件有限公司 一种基于sse4指令集加快图片渐变速度的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1147307A (zh) * 1994-05-03 1997-04-09 先进Risc机器有限公司 多指令集的数据处理
US5854913A (en) * 1995-06-07 1998-12-29 International Business Machines Corporation Microprocessor with an architecture mode control capable of supporting extensions of two distinct instruction-set architectures
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器
CN101253480A (zh) * 2005-08-31 2008-08-27 明达尔半导体有限公司 具有实时动态可变指令集的计算机

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104991759B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1147307A (zh) * 1994-05-03 1997-04-09 先进Risc机器有限公司 多指令集的数据处理
US5854913A (en) * 1995-06-07 1998-12-29 International Business Machines Corporation Microprocessor with an architecture mode control capable of supporting extensions of two distinct instruction-set architectures
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器
CN101253480A (zh) * 2005-08-31 2008-08-27 明达尔半导体有限公司 具有实时动态可变指令集的计算机

Also Published As

Publication number Publication date
CN104991759A (zh) 2015-10-21
WO2017016232A1 (zh) 2017-02-02

Similar Documents

Publication Publication Date Title
US20220131861A1 (en) Address validation using signatures
US8954678B2 (en) Automatic pattern-based operand prefetching
TWI574156B (zh) 具有獨立的使用者和監管者域的記憶體保護鑰結構
US8516271B2 (en) Securing non-volatile memory regions
TW201717030A (zh) 用於記憶體位址範圍的支持可組態安全性級別
US8832383B2 (en) Delayed replacement of TLB entries
DE102018126731A1 (de) Freigabeanweisung, um Seitenblock während des Auslagerns umzukehren
KR20170033891A (ko) 보호 영역에서의 메모리 초기화
US20090031142A1 (en) System, Method and Computer Program Product for Processing a Memory Page
EP3340060A1 (en) Efficient memory aware cache management
CN110162380A (zh) 用来防止软件侧通道的机制
EP3671473A1 (en) A scalable multi-key total memory encryption engine
CN104991759B (zh) 一种可变指令集微处理器及其实现方法
TW201935305A (zh) 用於後快取互鎖之系統和方法
CN104221005A (zh) 用于从多线程发送请求至加速器的机制
US20200233807A1 (en) Secure memory repartitioning technologies
WO2014044152A1 (en) Method and apparatus for encryption
GB2433336A (en) Metadata verification during measurement processing
TWI731906B (zh) 用於分配式一致性記憶體的系統、方法及設備
TW201725507A (zh) 用於在遠端處理器上進行基元動作之硬體機制
CN103186746A (zh) 一种可执行文件的保护方法及系统
CN110457348A (zh) 一种数据处理方法及装置
EP3491521A1 (en) Apparatus and method supporting code optimization
Hutton Immunizing files against ransomware with koalafied immunity
CN108446186B (zh) 从加壳Android应用程序中恢复Dex源文件的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191227

Address after: 610000 No.6, 20th floor, building 4, NO.666, Jincheng Avenue, Chengdu high tech Zone, Chengdu, Sichuan Province

Patentee after: CHENGDU CHANGMING INFORMATION TECHNOLOGY Co.,Ltd.

Address before: West high tech Zone Fucheng Road in Chengdu city of Sichuan Province in 610000 399, 9 13 storey building No. 6

Patentee before: CHENGDU TENYUM TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201202

Address after: 274300 380 meters east of the intersection of Weichuang road and Jiantai Road, Shanxian Industrial Zone, Heze City, Shandong Province

Patentee after: Zeng Huan

Address before: 610000 No.6, 20th floor, building 4, NO.666, Jincheng Avenue, Chengdu high tech Zone, Chengdu, Sichuan Province

Patentee before: CHENGDU CHANGMING INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210125

Address after: 311800 17th floor, Jiyang Fortune Building, 28 Wenzhong South Road, Taozhu street, Zhuji City, Shaoxing City, Zhejiang Province

Patentee after: Zhejiang qusu Technology Co.,Ltd.

Address before: No.17, 18 / F, unit 1, building 4, No.68, yangzishan Road, Chenghua District, Chengdu, Sichuan 610000

Patentee before: Sichuan Kaiyan Intellectual Property Service Co.,Ltd.

Effective date of registration: 20210125

Address after: No.17, 18 / F, unit 1, building 4, No.68, yangzishan Road, Chenghua District, Chengdu, Sichuan 610000

Patentee after: Sichuan Kaiyan Intellectual Property Service Co.,Ltd.

Address before: 274300 380 meters east of the intersection of Weichuang road and Jiantai Road, Shanxian Industrial Zone, Heze City, Shandong Province

Patentee before: Zeng Huan

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20151021

Assignee: Hefei Qusu Chaowei Integrated Circuit Co.,Ltd.

Assignor: Zhejiang qusu Technology Co.,Ltd.

Contract record no.: X2022990000804

Denomination of invention: A variable instruction set microprocessor and its implementation

Granted publication date: 20180116

License type: Exclusive License

Record date: 20221013