CN101996066A - 用于乱序编码指令的指令译码装置及方法 - Google Patents

用于乱序编码指令的指令译码装置及方法 Download PDF

Info

Publication number
CN101996066A
CN101996066A CN200910161376XA CN200910161376A CN101996066A CN 101996066 A CN101996066 A CN 101996066A CN 200910161376X A CN200910161376X A CN 200910161376XA CN 200910161376 A CN200910161376 A CN 200910161376A CN 101996066 A CN101996066 A CN 101996066A
Authority
CN
China
Prior art keywords
order
configuration file
instruction
order data
coded
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.)
Granted
Application number
CN200910161376XA
Other languages
English (en)
Other versions
CN101996066B (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.)
Beijing Duosi technical services Co. Ltd.
Original Assignee
BEIJING DUOSI TECHNOLOGY DEVELOPMENT Co 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 BEIJING DUOSI TECHNOLOGY DEVELOPMENT Co Ltd filed Critical BEIJING DUOSI TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CN200910161376.XA priority Critical patent/CN101996066B/zh
Publication of CN101996066A publication Critical patent/CN101996066A/zh
Application granted granted Critical
Publication of CN101996066B publication Critical patent/CN101996066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种用于乱序编码指令的指令译码装置及方法。该用于乱序编码指令的指令译码装置包括:选择单元,其具有至少两个输入和至少一个输出,其中,所述至少两个输入用于输入至少两个乱序编码指令数据,以及所述至少一个输出用于输出至少一个乱序编码指令数据,其中所述选择单元被配置成从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出;以及至少一个译码单元,其分别与所述至少一个输出中的相应输出耦合,用于接收所选择的乱序编码指令数据以及对所选择的乱序编码指令数据进行相应译码操作。

Description

用于乱序编码指令的指令译码装置及方法
技术领域
本发明涉及指令译码技术,具体来说,涉及一种用于乱序编码指令的指令译码装置和方法。
背景技术
目前,在计算机技术领域,安全性日益为人们所关注。随着网络技术的快速发展,诸如病毒等的非法程序日益泛滥。如果这些非法程序在用户的计算机上运行,往往会给用户造成很大的损失。一方面,这些非法程序可能会占用用户计算机的大量资源,从而降低用户的工作效率,甚至可能令用户的计算机系统崩溃。另一方面,这些非法程序往往是恶意的。某些人可能会利用这些恶意的程序来窃取用户的信息。这是用户更加不希望发生的情况。
在现有技术中,通常通过防病毒程序来处理这种问题。这种方式往往不是十分有效的。因为,在计算机中使用的处理器都是通用的,或者说在一定程度上是通用的。即,对于某一种处理器或芯片来说,它的指令是固定的,而不会在各个单独的处理器或芯片之间发生变化。例如,属于Intel公司的某一种型号(诸如酷睿TM2(CoreTM2))的所有处理器芯片的结构都是相同的,即,不会出现同一型号的两个芯片使用不同的指令的情况。因此,处理器或芯片的指令体系是公知的。在这种情况下,很难阻止非法程序在这种通用的处理器上运行。
由于处理器的这种通用性,因此,在现有技术中,很难完全对可以在用户的计算机上运行的程序进行监控。很多非法程序可以在用户不知情的情况下在用户的计算机上运行,而用户却无法阻止。
针对上述问题,可能想到的一种相对安全的方式是为每个用户设计和制造一块独特的处理器。由于每个用户的处理器都不同,因此,即使非法程序被装载到用户的计算机上,由于该处理器的指令是独特的,因此,非法程序不能够由该处理器执行。
这种方式也存在多个问题。首先,它的成本很高,从而导致它往往是不可行的。其次,在设计和制造的过程中,该处理器的指令可以被除了最终用户之外的其他人(例如,设计人员)所知道,因此,也可能存在不安全的因素。例如,在要求极高安全性的情况下,这也是不能够允许的。再有,这种方式不允许用户进行设置,因此,不够灵活。
图3示出了现有技术的指令译码方式。图3A示意性地示出了一个顺序指令3100的顺序结构。图3B示意性地示出了对图3A中所示的顺序指令进行译码的指令译码装置3200的框图。
如图3A所示,该顺序指令3100具有顺序的指令结构。例如,该指令顺序包括4个域,即,域A、B、C、D。当然,图3A仅仅是作为例子示出的而非限制性的,该指令可以包含更多或者更少的域。例如,可以用于不同的指令以及指令中的不同字节、不同比特等来替换所述域A、B、C、D。
如图3B所示,指令译码装置3200包括域A译码单元3210、域B译码单元3220、域C译码单元3230和域D译码单元3240。当然,指令译码装置中的译码单元不限于四个,而是可以是更多或者更少个。指令3200中的域A、B、C、D分别被输入到相应译码单元中,以进行译码处理,并产生相应的输出。
图3中所示的现有技术的译码方式也存在前面所述的问题。
因此,需要提出一种新的技术来解决上述现有技术中的任何问题。
发明内容
本发明的一个目的在于至少部分地解决上面所述的现有技术中的问题里的至少一个技术问题。
本发明的一个目的是提供一种新的译码方式。
本发明的另一个目的是提高处理器的安全性。
本发明的另一个目的是给用户提高一种灵活设置指令译码装置的安全性的方式。
本发明的发明人注意到,对于指令的译码来说,如果指令的顺序、指令中的各个域的顺序、指令中的各个字节的顺序或者指令中的各个比特的顺序发生变化,就会出现译码错误或无法译码的情况。
因此,根据本发明的第一方面,提供了一种用于乱序编码指令的指令译码装置,包括:选择单元,其具有至少两个输入和至少一个输出,其中,所述至少两个输入用于输入至少两个乱序编码指令数据,以及所述至少一个输出用于输出至少一个乱序编码指令数据,其中所述选择单元被配置成从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出;以及至少一个译码单元,其分别与所述至少一个输出中的相应输出耦合,用于接收所选择的乱序编码指令数据以及对所选择的乱序编码指令数据进行相应译码操作。
优选地,所述选择单元还输入配置文件,以及所述选择单元还被配置成根据配置文件从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出。
优选地,所述选择单元包括多个选通电路,其中,每个选通电路被配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
优选地,所述多个选通电路被配置成以并联、级联以及并联和级联的组合方式而被设置。
优选地,所述配置文件是所述选通电路的输入的序号。
优选地,所述配置文件是与所选择的乱序编码指令数据对应的随机数。
优选地,所述配置文件是由用户设置的。
优选地,所述配置文件是系统自动设置的。
优选地,所述配置文件是通过软件程序、硬件装置、固件装置或者它们的组合来设置的。
优选地,所述乱序编码指令数据是指令,或者是指令中的域,或者是指令中的字节,或者是指令中的比特。
优选地,所述至少两个乱序编码指令数据的顺序是预先根据配置文件而被调整的。
根据本发明的第二方面,提供了一种用于乱序编码指令的指令译码方法,包括:输入至少两个乱序编码指令数据;从所述至少两个乱序编码指令数据中选择并输出至少一个乱序编码指令数据;以及对所选择的乱序编码指令数据进行相应译码操作。
优选地,根据本发明的指令译码方法还包括:输入配置文件,以及根据配置文件,从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应译码操作。
优选地,根据本发明的指令译码方法还包括:通过多个选通电路来选择乱序编码指令数据,其中,将每个选通电路配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
优选地,根据本发明的指令译码方法还包括:以并联、级联以及并联和级联的组合方式来设置所述多个选通电路。
优选地,所述配置文件是所述选通电路的输入的序号。
优选地,所述配置文件是与所选择的乱序编码指令数据对应的随机数。
优选地,根据本发明的指令译码方法还包括:由用户设置所述配置文件。
优选地,根据本发明的指令译码方法还包括:由系统自动设置所述配置文件。
优选地,根据本发明的指令译码方法还包括:通过软件程序、硬件装置、固件装置或者它们的组合来设置所述配置文件。
优选地,所述乱序编码指令数据是指令,或者是指令中的域,或者是指令中的字节,或者是指令中的比特。
优选地,所述至少两个乱序编码指令数据的顺序是预先根据配置文件而被调整的。
根据本发明的第三方面,提供了一种处理器,其包括:根据本发明的的用于乱序编码指令的指令译码装置;以及算术和逻辑单元,用于根据所述指令译码装置的指令译码结果对数据进行相应的算术和逻辑处理,并输出结果。
本发明的一个优点在于,对乱序编码的指令进行处理,因此,可以提高安全性。
本发明的另一个优点在于,根据配置文件来进行译码操作,因此,可以提高安全性。
本发明的另一个优点在于,可以本地(由用户或者系统自动)设置配置文件,因此,可以防止他人获知指令结构。因此,本发明可以提高安全性。
本发明的另一个优点在于,可以由用户设置配置文件,因此,可以提供灵活性。
本发明的再一个优点在于,可以在提高安全性的同时提供灵活性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1是示出可以应用本发明的示例性计算机系统的框图。
图2是示出可以应用本方面的示例性处理器的框图。
图3是现有技术的示图,其中,图3A示出了现有技术的顺序指令结构,以及图3B示出了现有技术的顺序指令指令译码装置。
图4是根据本发明的第一实施例的乱序编码指令的指令译码装置。
图5是根据本发明的第一实施例的乱序编码指令指令译码方法。
图6是根据本发明的第二实施例的乱序编码指令的指令译码装置。
图7是根据本发明的第二实施例的乱序编码指令指令译码方法。
图8是示出根据本发明的例子1的示图。
图9是示出根据本发明的例子2的示图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,需要说明的是,对于本领域技术人员公知的是,可以将数据和程序(指令)存储在相同的存储器中以供处理器使用。因此,尽管在本说明书中描述的是“指令数据”,但是本领域技术人员应当知道,所述“指令数据”包括指令、或者数据、或者指令和数据。
<硬件配置>
图1是示出可以实现本发明的实施例的计算机系统1000的硬件配置的框图。
如图1所示,计算机系统包括计算机1110。计算机1110包括经由系统总线1121连接的处理单元1120、系统存储器1130、固定非易失性存储器接口1140、移动非易失性存储器接口1150、用户输入接口1160、网络接口1170、视频接口1190和输出外围接口1195。
系统存储器1130包括ROM(只读存储器)1131和RAM(随机存取存储器)1132。BIOS(基本输入输出系统)1133驻留在ROM 1131内。操作系统1134、应用程序1135、其它程序模块1136和某些程序数据1137驻留在RAM 1132内。
诸如硬盘的固定非易失性存储器1141连接到固定非易失性存储器接口1140。固定非易失性存储器1141例如可以存储操作系统1144、应用程序1145、其它程序模块1146和某些程序数据1147。
诸如软盘驱动器1151和CD-ROM驱动器1155的移动非易失性存储器连接到移动非易失性存储器接口1150。例如,软盘可以被插入到软盘驱动器1151中,以及CD(光盘)可以被插入到CD-ROM驱动器1155内。
诸如鼠标1161和键盘1162的输入设备被连接到用户输入接口1160。
计算机1110可以通过网络接口1170连接到远程计算机1180。例如,网络接口1170可以通过局域网1171连接到远程计算机1181。或者,网络接口1170可以连接到调制解调器(调制器-解调器)1172,以及调制解调器1172经由广域网1173连接到远程计算机1180。
远程计算机1180可以包括诸如硬盘的存储器1181,其可以存储远程应用程序1185。
视频接口1190连接到监视器1191。
输出外围接口1195连接到打印机1196和扬声器1197。
本领域技术人员应当理解,图1所示的计算机系统仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。
图2示意性地示出了一般处理器的结构。如图2所示,处理器2000可以包括指令译码装置2010以及算术和逻辑单元2020。
指令译码装置2010接收指令并对指令进行译码操作。译码操作指的是:对指令进行解析,并产生相应的控制信号(指令译码结果),用于控制算术和逻辑单元2020对数据进行相应的算术和逻辑处理。译码操作是本领域公知的,并且进行译码操作的具体方式并不是本发明所关心的,因此,在这里不对译码操作进行更加详细的描述。
在一个实施例中,指令译码装置2010例如可以是根据本发明的用于乱序编码指令的指令译码装置。
算术和逻辑单元2020接收指令译码结果,根据指令译码结果对数据进行相应的算术和逻辑处理,并输出结果。算术和逻辑单元的算术和逻辑处理也是本领域公知的,并且不是本发明所关心的,因此,在这里也不对其进行更加详细的描述。
除了上述指令译码装置2010和算术和逻辑单元2020之外,处理器2000还可以包括许多其他部分,例如,用于为处理器中的各个部分提供时钟信号的时钟单元2030、用于缓存指令和/或数据的存储器2040以及用于测试时使用的测试单元2050、等等。
处理器2000还可以包括输入/输出单元(未示出),用于从外部接收指令。例如,输入/输出单元可以从图1所示的系统总线接收指令和/或数据。例如,所述指令和/或数据可以是存储在系统存储器中的,或者可以是存储在固定或者移动的存储器中的,或者可以是通过用户接口或网络接口从外部输入的,等等。本领域技术人员可以想到许多方式将指令输入到处理器中,因此,在这里不对输入/输出方式进行限制。
另外,本领域技术人员应当知道,输入/输出单还可以经由其它接口电路从外部接收指令。
尽管在图2中示出了:指令译码装置2010接收指令,以及指令译码装置2010连接到算术和逻辑单元2020,但是本领域技术人员应到知道,这种连接关系仅仅是示意性的而不应当对本发明构成任何限制。例如,输入/输出单元可以首先将指令发送给置换单元(未示出),以及置换单元将置换后的指令发送给指令译码装置2010。另外,在指令译码装置2010与算术和逻辑单元2020之间也可以插入许多其它处理电路。
尽管在图2中示出了指令译码装置2010和算术和逻辑单元2020都被包括在处理器2000内,但是,本领域技术人员应当理解,指令译码装置2010可以位于处理器2000的外部。
本领域技术人员应当理解,图2所示的处理器2000仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。
<第一实施例>
下面将参照图4和5来描述根据本发明的第一实施例。
图4示出了根据本发明的第一实施例的用于乱序编码指令的指令译码装置4000。
如图4所示,指令译码装置4000包括选择单元4100和至少一个译码单元4200-a、4200-b、......、4200-m,其中,m≥1。
选择单元4100具有至少两个输入1、2、3、......、N,其中,N≥2。选择单元4100具有至少一个输出1、2、......、m,其中,m≥1。当然,至少两个输入的数量(N)可以与所述至少一个输出的数量(m)相等,即,m=N。或者,二者可以不相等,即,m≠N。例如,m可以大于N,或者m可以小于N。
所述至少两个输入用于输入至少两个乱序编码指令数据。所述至少一个输出用于输出至少一个乱序编码指令数据。所述选择单元4100被配置成从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出1、2、......、m,其中,m≥1。
所述至少一个译码单元4200-a、4200-b、......、4200-m分别与所述至少一个输出1、2、......、m中的相应输出耦合。所述至少一个译码单元4200-a、4200-b、......、4200-m用于接收所选择的乱序编码指令数据以及对所选择的乱序编码指令数据进行相应译码操作。所述至少一个译码单元4200-a、4200-b、......、4200-m输出指令译码结果。
所述至少两个乱序编码指令数据可以是至少两个指令。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个域。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个字节。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个比特。
乱序编码指令数据是对指令数据中的各部分的顺序进行调整(打乱数据)之后所得到的指令数据。所述各部分例如可以是多个顺序连接的指令、指令中的各个域、指令中的各个字节、指令中的各个比特等。
如前面针对图2所述,可以经由系统总线来接收所述至少两个乱序编码指令数据。如前面所述,所述至少两个乱序编码指令数据可以是被存储在存储器中的、或者由用户输入的、或者通过网络接收的等等。
所述至少两个乱序编码指令数据的顺序预先被调整(例如,打乱顺序)。例如,将原本处于第一顺序的乱序编码指令数据调整到第三顺序,将原本处于第二顺序的乱序编码指令数据调整到第一顺序,将原本处于第三顺序的乱序编码指令数据调整到第五顺序,等等。
可以通过软件程序的方式来进行所述调整。例如,可以设计一个调整程序来对程序的代码(即,指令)和/或数据进行调整。
可以通过硬件和/或固件的方式来进行所述调整。例如,将专用的硬件和/或固定连接到计算机上对程序的代码(即,指令)和/或数据进行调整。
可以通过软件程序、硬件和固件的组合的方式来进行所述调整。
根据上面的描述,本领域技术人员应当知道有很多方式来调整所述乱序编码指令数据的顺序,并且,如何进行所述调整并不是本发明所关心的内容,因此,在这里不对它进行更加详细的描述。
图5示出了根据本发明用于乱序编码指令的指令译码方法。
如图5所示,在步骤s5100,输入至少两个乱序编码指令数据。
如前面所述,所述至少两个乱序编码指令数据可以是至少两个指令。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个域。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个字节。或者,所述至少两个乱序编码指令数据可以是指令中的至少两个比特。
所述至少两个乱序编码指令数据的顺序预先被调整(例如,打乱顺序)。
例如,可以通过软件程序的方式来进行所述调整。例如,可以通过硬件和/或固件的方式来进行所述调整。例如,可以通过软件程序、硬件和固件的组合的方式来进行所述调整。
在步骤s5200,从所述至少两个乱序编码指令数据中选择并输出至少一个乱序编码指令数据。
如前面所述,所述至少两个输入的数量(N)可以与所述至少一个输出的数量(m)相等,即,m=N。或者,二者可以不相等,即,m≠N。例如,m可以大于N,或者m可以小于N。
在步骤s5300,对所选择的乱序编码指令数据进行相应译码操作,以输出指令译码结果。
在本发明的第一实施例中,提供了一种对乱序编码的指令进行指令译码的方式。
根据本发明的第一实施例,由于输入的指令是经乱序编码的,因此,可以在一定程度上提高指令译码的安全性。
<第二实施例>
下面将参照图6和7来描述根据本发明的第二实施例。为了简明起见,对于第二实施例中与第一实施例相同的部分,可能不再进行描述。
图6示出了根据本发明的第二实施例的用于乱序编码指令的指令译码装置6000。
如图6所示,指令译码装置6000包括选择单元6100和至少一个译码单元6200-a-1、6200-a-2、......、6200-m,其中,m≥1。
选择单元6100具有至少两个输入1、2、3、......、N,其中,N≥2。选择单元6100具有至少一个输出1、2、......、m,其中,m≥1。如前面所述,至少两个输入的数量(N)可以与所述至少一个输出的数量(m)相等,即,m=N。或者,二者可以不相等,即,m≠N。例如,m可以大于N,或者m可以小于N。
所述至少两个输入用于输入至少两个乱序编码指令数据。所述至少一个输出用于输出至少一个乱序编码指令数据。所述选择单元6100被配置成从所述至少两个乱序编码指令数据1、2、3......N中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出1、2、......m,其中,N≥2,以及m≥1。
所述至少一个译码单元6200-a-1、6200-a-2、......、6200-m分别与所述至少一个输出1、2、......、m中的相应输出耦合。所述至少一个译码单元6200-a-1、6200-a-2、......、6200-m用于接收所选择的乱序编码指令数据1、2、......、m以及对所选择的乱序编码指令数据进行相应译码操作。所述至少一个译码单元6200-a-1、6200-a-2、......、6200-m输出指令译码结果。
所述选择单元6100还输入配置文件,以及可以根据配置文件从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出。
所述选择单元6100包括多个选通电路6100-1、6100-m、6100-1-1、6100-1-2。尽管图6中仅仅示出了4个选通电路,但是,本领域技术人员应当知道,图6仅仅是示例性的而非对本发明的任何限制,因此,选择单元还可以包括多于4个或者少于4个的选通电路,例如,可以仅包括1个选通电路。
所述选通电路例如可以用晶体管、MOS(金属氧化物半导体)等来实现。
所述选择单元6100将配置文件设置到各个选通电路。用于不同选通电路的配置文件可以是相同的也可以是不同的。
每个选通电路被配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
选通电路6100-1从所述输入接收所述至少两个乱序编码指令数据。选通电路6100-1根据为其设置的配置文件从所述至少两个乱序编码指令数据选择并输出一个乱序编码指令数据。
例如,由选通电路6100-1所输出的乱序编码指令数据中的多个部分也是打乱顺序的。在此情况下,在此情况下,将所述多个部分输入到选通电路6100-1-1、6100-1-2。选通电路6100-1-1、6100-1-2分别根据相应的配置文件从所述多个部分中的选择一个部分(乱序编码指令数据)并将其输出。
例如,选通电路6100-1-1的配置文件可以与选通电路6100的配置文件相同,而选通电路6100-1-2的配置文件可以与选通电路6100的配置文件不同。当然,它们的配置文件也可以彼此各不相同。
选通电路6100-1-1的输出被连接到译码单元6200-a-1的输入。选通电路6100-1-2的输出被连接到译码单元6200-a-2的输入。
译码单元6200-a-1和译码单元6200-a-2可以是不同的译码单元,也可以是相同译码单元的不同部分。例如,如果选通电路6100-1-1和6100-1-1输出的指令译码结果是两个不同的指令或者指令中的两个不同的域,则译码单元6200-a-1和译码单元6200-a-2可以是不同的译码单元。例如,如果选通电路6100-1-1和6100-1-1输出的指令译码结果是一个指令或者指令中的一个域中的不同字节或比特,则译码单元6200-a-1和译码单元6200-a-2可以是相同译码单元的不同部分。
选通电路6100-m从所述输入接收所述至少两个乱序编码指令数据。选通电路6100-m根据为其设置的配置文件从所述至少两个乱序编码指令数据选择并输出一个乱序编码指令数据。
例如,由选通电路6100-1所输出的乱序编码指令数据已经是顺序的。在此情况下,选通电路6100-1的输出连接到译码单元6200-m的输入。
如图6所示,选通电路6100-1被设置成分别与选通电路6100-1-1和选通电路6100-1-2级联。选通电路6100-1被设置成与选通电路6100-m并联。
在选择单元6100中,选通电路6100-1、选通电路6100-1-1、选通电路6100-1-2和选通电路6100-m以并联和级联的组合方式而被设置。
所述配置文件是供选择单元选择所述多个乱序编码指令数据之一的信息。本领域技术人员能够想到许多方式来形成所述配置文件。
例如,所述配置文件可以是所述选通电路的输入的序号。例如,期望选择由与所述序号对应的输入所输入的乱序编码指令数据。
例如,所述配置文件可以是与要选择的乱序编码指令数据对应的随机数。
本领域技术人员能够想到许多方式来设置所述配置文件。
可以由用户设置配置文件。例如,可以由用户通过芯片上的跳线或者按键来设置配置文件。例如,可以将由用户输入的随机数设置作为配置文件。
可以由系统自动设置配置文件。例如,可以将由计算机系统自动生成随机数设置作为配置文件。
本领域技术人员应当知道,可以有多种方式将该配置文件设置到指令译码装置。例如,可以通过软件程序、硬件装置、固件装置或者它们的组合来设置所述配置文件。
例如,如前面所述,通过跳线或者按键将配置文件设置到指令译码装置中。
例如,可以由用户通过计算机的基本输入输出系统(BIOS)来设置所述配置文件。
例如,可以通过软件来设置所述配置文件,并通过软件将该配置文件提供给指令译码装置。
例如,可以添加额外的硬件或固件装置,用于设置和保存配置文件,并在系统启动或者运行期间将配置文件提供给译码装置。
本领域技术人员能够想到许多设置配置文件的方式,因此,不在这里作更加详细的描述。
如前面所述,所述乱序编码指令数据可以是指令。或者,所述乱序编码指令数据可以是指令中的域。或者,所述乱序编码指令数据可以是指令中的字节。或者,所述乱序编码指令数据可以是指令的字节中的比特。
所述至少两个乱序编码指令数据的数量可以与所述至少两个输入的数量相等。但是,本领域技术人员也应当理解,所述至少两个乱序编码指令数据的数量也可以少于所述输入的数量。
如前面针对图2所述,可以经由系统总线来接收所述多个乱序编码指令数据(或指令)。如前面所述,所述多个乱序编码指令数据(或指令)可以是被存储在存储器中的、由用户输入的、通过网络接收的等等。
所述至少两个乱序编码指令数据的顺序预先根据配置文件而被调整。例如,根据配置文件,将原本处于第一顺序的乱序编码指令数据调整到第三顺序,将原本处于第二顺序的乱序编码指令数据调整到第一顺序,将原本处于第三顺序的乱序编码指令数据调整到第五顺序,等等。
例如,可以为所述多个至少两个编码指令数据中的每一个乱序编码指令数据分配一个随机数作为配置文件。对于与相同随机数对应的乱序编码指令数据,保留其中的第一个乱序编码指令数据,而给其它乱序编码指令数据重新分配随机数。根据随机数的值来调整各个乱序编码指令数据的顺序。例如,将与最小(或最大)随机数值对应的乱序编码指令数据放到第一顺序,将与第二小(或第二大)随机数值对应的乱序编码指令数据放到第二顺序,依此类推。
可以通过软件程序的方式来进行所述调整。例如,可以设计一个调整程序来对程序的代码和/或数据进行调整。
可以通过硬件和/或固件的方式来进行所述调整。例如,将专用的硬件和/或固定连接到计算机上对程序的代码和/或数据进行调整。
根据上面的描述,本领域技术人员应当知道有很多方式来调整所述信息的顺序,并且,如何进行所述调整并不是本发明所关心的内容,因此,在这里不对它进行更加详细的描述。
图7示出了根据本发明的第二实施例的用于乱序编码指令的指令译码方法。
如图7所示,在步骤s7100,设置配置文件。
如前面所述,例如,可以由用户设置所述配置文件。例如,可以由系统自动设置所述配置文件。例如,可以通过软件程序、硬件装置、固件装置或者它们的组合来设置所述配置文件。
在步骤s7200,输入配置文件。
在步骤s7300,输入至少两个乱序编码指令数据。
在步骤s7400,根据配置文件,从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应译码操作。
如前面所述,在本发明中可以利用选通电路。例如,根据配置文件,通过多个选通电路,从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应译码操作。
例如,可以将每个选通电路配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
如前面所述,例如,可以通过并联、级联以及并联和级联的组合方式来设置所述多个选通电路。
如前面所述,例如,所述配置文件可以是所述选通电路的输入的序号。例如,所述配置文件可以是与所选择的乱序编码指令数据对应的随机数。
如前面所述,所述乱序编码指令数据可以是指令。或者,所述乱序编码指令数据可以是指令中的域。或者,所述乱序编码指令数据可以是指令中的字节。或者,所述乱序编码指令数据可以是指令的字节中的比特。
如前面所述,可以预先根据配置文件俩调整所述至少两个乱序编码指令数据的顺序。
在步骤s7500,对所选择的乱序编码指令数据进行相应译码操作。
根据本发明的第二实施例,通过配置文件来设置指令译码方式,因此,可以提供灵活性。
根据本发明的第二实施例,可以在本地(用户设置或系统自动设置等)设置配置文件,因此,可以提供安全性。
根据本发明的第二实施例,例如,只有经过用户的许可才对存储在用户的计算机中的程序的指令进行所述调整。因此,未经用户许可的程序,即使被装载到用户的计算机中也无法运行,从而能够防止非法程序对用户的计算机系统的侵害。
<第三实施例>
根据本发明的第三实施例可以包括一种处理器,例如,如图2所示。该处理器包括根据本发明的用于乱序编码指令的指令译码装置以及算术和逻辑单元。
所述算术和逻辑单元接收指令译码装置的指令译码结果(控制信息)。所述算术和逻辑单元根据所述指令译码结果对输入的数据进行相应的算术和逻辑处理,并输出结果。
<例子1>
图8示出了根据本发明的例子1。图8A示出了经过乱序排列的乱序编码指令结构8100。图8B示出了一个示例性的乱序编码指令的指令译码装置8200。
如图8A所示,乱序编码指令结构8100包括4个域,即,域A、B、C和D。乱序编码指令结构8100仅仅用于举例,而不作为对本发明的任何限制,例如,乱序编码指令结构可以包括多于4个域或者少于4个域。
乱序编码指令结构8100的原始顺序应当是域A->B->C->D。在图8A中,经过乱序排列之后的顺序是:C->A->D->B。
对于图8的例子来说,用于域A的配置文件例如可以是“01”;用于域B的配置文件例如可以是“11”;用于域C的配置文件例如可以是“00”;以及用于域D的配置文件例如可以是“10”。
图8B示出了用于对图8A中所示的乱序编码指令结构8100进行译码的乱序编码指令的指令译码装置8200的框图。
如图8B所示,乱序编码指令的指令译码装置8200包括第一选通器8211、第二选通器8212、第三选通器8213、第四选通器8214、域A译码单元8221、域B译码单元8222、域C译码单元8223和域D译码单元8224。第一选通器8211、第二选通器8212、第三选通器8213和第四选通器8214中的每个选通器分别与域A译码单元8221、域B译码单元8222、域C译码单元8223和域D译码单元8224中的相应一个译码单元连接。
如图8B所示,第一选通器8211、第二选通器8212、第三选通器8213、第四选通器8214中的每个选通器都分别接收乱序编码指令结构8100中的域C、A、D和B。
另外,第一选通器8211、第二选通器8212、第三选通器8213、第四选通器8214中的每个选通器还分别接收配置文件。例如,第一选通器8211接收用于域A的配置文件“01”,第二选通器8212接收用于域B的配置文件“11”,第三选通器8213接收用于域C的配置文件“00”,以及第四选通器8214接收用于域D的配置文件“10”。
在正常情况下,由于乱序编码指令结构8100中的域C、A、D和B是经过乱序排列的,因此,译码单元不能够对乱序编码指令结构8100进行正确的译码。
在本发明中,第一选通器8211可以根据配置文件“01”选择域A,并将域A输入到对应的域A译码单元进行译码;第二选通器8212可以根据配置文件“11”选择域B,并将域B输入到对应的域B译码单元进行译码;第三选通器8213可以根据配置文件“00”选择域C,并将域C输入到对应的域C译码单元进行译码;以及第四选通器8214可以根据配置文件“10”选择域D,并将域D输入到对应的域D译码单元进行译码。
<例子2>
图9示出了根据本发明的例子2。
假设域C的结构中包含四个字节,即,字节c1、c2、c3和c4。这四个字节c1、c2、c3和c4也可以是经过乱序排列的。例如,图9A示出了对域C进行乱序排列的结构。
域C的原始顺序应当是字节c1->c2->c3->c4。在图9A中,经过乱序排列之后的顺序是字节c2->c1->c4->c3。
对于域C来说,用于字节c1的配置文件可以是“01”;用于字节c2的配置文件可以是“00”;用于字节c3的配置文件可以是“11”;以及用于字节c4的配置文件可以是“10”。在本例子中,用于字节c1、c2、c3和c4的配置文件与用于域A、B、C和D的配置文件是不同的,但是,二者也可以是相同的。
图9B示出了用于对图9A中所示的域C的结构9100进行译码的C域乱序编码指令的指令译码装置9200的框图。
如图9B所示,C域乱序编码指令的指令译码装置9200包括第一选通器9211、第二选通器9212、第三选通器9213、第四选通器9214、c1译码单元9221、c2译码单元9222、c3译码单元9223和c4译码单元9224。第一选通器9211、第二选通器9212、第三选通器9213和第四选通器9214中的每个选通器分别与c1译码单元9221、c2译码单元9222、c3译码单元9223和c4译码单元9224中的相应一个译码单元连接。
如图9B所示,第一选通器9211、第二选通器9212、第三选通器9213和第四选通器9214中的每个选通器都分别接收C域中的字节c2、c1、c4和c3。
另外,第一选通器9211、第二选通器9212、第三选通器9213和第四选通器9214中的每个选通器还分别接收配置文件。例如,第一选通器9211接收用于c1的配置文件“01”,第二选通器9212接收用于c2的配置文件“00”,第三选通器9213接收用于c3的配置文件“11”,以及第四选通器9214接收用于c4的配置文件“10”。
在正常情况下,由于域C中的字节c2、c1、c4和c3是经过乱序排列的,因此,译码单元不能够对域C进行正确的译码。
在本发明中,第一选通器9211可以根据配置文件“01”选择c1,并将c1输入到对应的c1译码单元进行译码;第二选通器9212可以根据配置文件“00”选择c2,并将c2输入到对应的c2译码单元进行译码;第三选通器9213可以根据配置文件“11”选择c3,并将c3输入到对应的c3译码单元进行译码;以及第四选通器9214可以根据配置文件“10”选择c4,并将c4输入到对应的c4译码单元进行译码。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

Claims (23)

1.一种用于乱序编码指令的指令译码装置,包括:
选择单元,其具有至少两个输入和至少一个输出,其中,所述至少两个输入用于输入至少两个乱序编码指令数据,以及所述至少一个输出用于输出至少一个乱序编码指令数据,其中所述选择单元被配置成从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出;以及
至少一个译码单元,其分别与所述至少一个输出中的相应输出耦合,用于接收所选择的乱序编码指令数据以及对所选择的乱序编码指令数据进行相应译码操作。
2.如权利要求1所述的指令译码装置,其中,所述选择单元还输入配置文件,以及所述选择单元还被配置成根据配置文件从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应输出。
3.如权利要求2所述的指令译码装置,其中,所述选择单元包括多个选通电路,其中,每个选通电路被配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
4.如权利要求3所述的指令译码装置,其中,所述多个选通电路被配置成以并联、级联以及并联和级联的组合方式而被设置。
5.如权利要求3或4所述的指令译码装置,其中,所述配置文件是所述选通电路的输入的序号。
6.如权利要求2-4中的任何一个所述的指令译码装置,其中,所述配置文件是与所选择的乱序编码指令数据对应的随机数。
7.如权利要求2-4中的任何一个所述的指令译码装置,其中,所述配置文件是由用户设置的。
8.如权利要求2-4中的任何一个所述的指令译码装置,其中,所述配置文件是系统自动设置的。
9.如权利要求2-4中的任何一个所述的指令译码装置,其中,所述配置文件是通过软件程序、硬件装置、固件装置或者它们的组合来设置的。
10.如权利要求1-4中的任何一个所述的指令译码装置,其中,所述乱序编码指令数据是指令,或者是指令中的域,或者是指令中的字节,或者是指令中的比特。
11.如权利要求2-4中的任何一个所述的指令译码装置,其中,所述至少两个乱序编码指令数据的顺序是预先根据配置文件而被调整的。
12.一种用于乱序编码指令的指令译码方法,包括:
输入至少两个乱序编码指令数据;
从所述至少两个乱序编码指令数据中选择并输出至少一个乱序编码指令数据;以及
对所选择的乱序编码指令数据进行相应译码操作。
13.如权利要求12所述的指令译码方法,还包括:输入配置文件,以及根据配置文件,从所述至少两个乱序编码指令数据中选择至少一个乱序编码指令数据以及将所选择的乱序编码指令数据分配给相应译码操作。
14.如权利要求13所述的指令译码方法,还包括:通过多个选通电路来选择乱序编码指令数据,其中,将每个选通电路配置成输入乱序编码指令数据以及根据所述配置文件选择并输出一个乱序编码指令数据。
15.如权利要求14所述的指令译码方法,还包括:以并联、级联以及并联和级联的组合方式来设置所述多个选通电路。
16.如权利要求14或15所述的指令译码方法,其中,所述配置文件是所述选通电路的输入的序号。
17.如权利要求13-15中的任何一个所述的指令译码方法,其中,所述配置文件是与所选择的乱序编码指令数据对应的随机数。
18.如权利要求13-15中的任何一个所述的指令译码方法,还包括:由用户设置所述配置文件。
19.如权利要求13-15中的任何一个所述的指令译码方法,还包括:由系统自动设置所述配置文件。
20.如权利要求13-15中的任何一个所述的指令译码方法,还包括:通过软件程序、硬件装置、固件装置或者它们的组合来设置所述配置文件。
21.如权利要求12-15中的任何一个所述的指令译码方法,其中,所述乱序编码指令数据是指令,或者是指令中的域,或者是指令中的字节,或者是指令中的比特。
22.如权利要求13-15中的任何一个所述的指令译码方法,其中,所述至少两个乱序编码指令数据的顺序是预先根据配置文件而被调整的。
23.一种处理器,包括:
如权利要求1-11中的任何一个所述的指令译码装置;以及
算术和逻辑单元,用于根据所述指令译码装置的指令译码结果对数据进行相应的算术和逻辑处理,并输出结果。
CN200910161376.XA 2009-08-10 2009-08-10 用于乱序编码指令的指令译码装置及方法 Active CN101996066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910161376.XA CN101996066B (zh) 2009-08-10 2009-08-10 用于乱序编码指令的指令译码装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910161376.XA CN101996066B (zh) 2009-08-10 2009-08-10 用于乱序编码指令的指令译码装置及方法

Publications (2)

Publication Number Publication Date
CN101996066A true CN101996066A (zh) 2011-03-30
CN101996066B CN101996066B (zh) 2014-03-19

Family

ID=43786256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910161376.XA Active CN101996066B (zh) 2009-08-10 2009-08-10 用于乱序编码指令的指令译码装置及方法

Country Status (1)

Country Link
CN (1) CN101996066B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017016087A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 一种生成随机布局程序的方法及装置
CN107358126A (zh) * 2017-06-14 2017-11-17 北京天宏绎网络技术有限公司 一种处理器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1250909A (zh) * 1998-10-12 2000-04-19 北京多思科技工业园股份有限公司 指令控制替换方法及其装置
CN1302400A (zh) * 1999-05-04 2001-07-04 密克罗奇普技术公司 指令集可以配置的微控制器
US6598166B1 (en) * 1999-08-18 2003-07-22 Sun Microsystems, Inc. Microprocessor in which logic changes during execution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1250909A (zh) * 1998-10-12 2000-04-19 北京多思科技工业园股份有限公司 指令控制替换方法及其装置
CN1302400A (zh) * 1999-05-04 2001-07-04 密克罗奇普技术公司 指令集可以配置的微控制器
US6598166B1 (en) * 1999-08-18 2003-07-22 Sun Microsystems, Inc. Microprocessor in which logic changes during execution

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017016087A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 一种生成随机布局程序的方法及装置
CN107358126A (zh) * 2017-06-14 2017-11-17 北京天宏绎网络技术有限公司 一种处理器
CN107358126B (zh) * 2017-06-14 2020-04-03 北京多思安全芯片科技有限公司 一种处理器

Also Published As

Publication number Publication date
CN101996066B (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
US7908450B2 (en) Memory management unit, code verifying apparatus, and code decrypting apparatus
CN107659632A (zh) 一种文件加解密方法、装置及计算机可读存储介质
CN102341806B (zh) 软件保护
CN105683990A (zh) 用于保护动态库的方法和装置
CN102197382A (zh) 多层内容保护微控制器
CN101853357A (zh) 软件保护方法
CN102163268A (zh) 在执行期间验证软件代码的完整性的方法和设备
EP3757857B1 (en) Device id for memory protection
CN102999480A (zh) 编辑文档的方法及系统
KR101734663B1 (ko) 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치
CN101996286A (zh) 动态安全度量的实现方法、安全度量装置和应用系统
CN110377339B (zh) 长延时指令处理装置、方法以及设备、可读存储介质
CN102289625A (zh) 具有加密功能的存储芯片和防盗版方法
US7458100B2 (en) Adding copy protection to a computer program
CN101996066B (zh) 用于乱序编码指令的指令译码装置及方法
JP2005216027A (ja) 暗号化装置及びこれを備えた暗号化システム並びに復号化装置及びこれを備えた半導体システム
US20080127078A1 (en) Method and apparatus for preventing modulation of executable program
US11119818B2 (en) Contextual awareness associated with resources
CN112580114A (zh) 一种信息处理方法、装置、设备及存储介质
US9256432B2 (en) Method of compressing and decompressing an executable or interpretable program
CN108063680B (zh) 资源分配控制方法和装置
JP2007172526A (ja) 情報処理システム、情報処理方法
JP6069120B2 (ja) 情報処理システム
CN110597755B (zh) 一种安全处理器的重组配置方法
KR102190359B1 (ko) 무결성 검증 방법 및 장치

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
ASS Succession or assignment of patent right

Owner name: NANSI SCIENCE AND TECHNOLOGY DEVELOPMENT CO LTD, B

Free format text: FORMER OWNER: BEIJING WISDOM TECHNOLOGY DEVELOPMENT CO., LTD.

Effective date: 20141009

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 100091 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20141009

Address after: 100091, Beijing Haidian District red mountain Yamaguchi 3 maintenance group new building 189, a layer

Patentee after: Nansi Science and Technology Development Co., Ltd., Beijing

Address before: 100080, Beijing, Zhongguancun Haidian District South Avenue, building 56, B801

Patentee before: Beijing Duosi Technology Development Co., Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160223

Address after: 100095, room 108, building G, quiet core garden, No. 25, North Hollywood Road, Beijing, Haidian District

Patentee after: Beijing Duosi security chip technology Co. Ltd.

Address before: 100091, Beijing Haidian District red mountain Yamaguchi 3 maintenance group new building 189, a layer

Patentee before: Nansi Science and Technology Development Co., Ltd., Beijing

DD01 Delivery of document by public notice

Addressee: Zhou Yan

Document name: Notification of Passing Examination on Formalities

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160713

Address after: 100195, room 106, building G, quiet core garden, No. 25, North Hollywood Road, Beijing, Haidian District

Patentee after: Beijing tianhongyi Network Technology Co., Ltd.

Address before: 100195, room 108, building G, quiet core garden, No. 25, North Hollywood Road, Beijing, Haidian District

Patentee before: Beijing Duosi security chip technology Co. Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160720

Address after: 100195, room 109, block G, Beijing quiet garden, 25 North Road, North Hollywood village, Beijing, Haidian District

Patentee after: Beijing Duosi technical services Co. Ltd.

Address before: 100195, room 106, building G, quiet core garden, No. 25, North Hollywood Road, Beijing, Haidian District

Patentee before: Beijing tianhongyi Network Technology Co., Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100192 no.814, 8th floor, building 26, yard 1, Baosheng South Road, Haidian District, Beijing

Patentee after: BEIJING DUOSI TECHNICAL SERVICE Co.,Ltd.

Address before: 100195 room 109, block G, Beijing static core garden 25, North Wu Village, Haidian District, Beijing.

Patentee before: BEIJING DUOSI TECHNICAL SERVICE Co.,Ltd.