微处理器和用于一微处理器的检测方法技术

技术编号:15048213 阅读:144 留言:0更新日期:2017-04-05 19:31
本发明专利技术涉及一种微处理器和一种用于一微处理器的检测方法,该微处理器包括:一指令高速缓存;一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的。其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。

【技术实现步骤摘要】
本申请为申请日为2014年9月19日、申请号为201410482567.7的专利技术名称为“微处理器和用于一微处理器的检测方法”的申请案的分案申请。
本专利技术涉及一种微处理器,特别涉及一种可动态重设的微处理器及用于微处理器的动态重设方法。
技术介绍
微处理器的设计者会花费许多努力在效能分析上。在依据先前几代微处理器为基础并以利用特征及效能目标的基准集合来架构一微处理器时,设计者会执行软件应用程序中与其顾客最相关的代表性样本,并撷取软件应用程序的指令执行记录。设计者接着使用所撷取的记录以仿真正在设计的微处理器的操作。为了在所有目标软件应用程序中达成最高的聚集效能(aggregateperformance),设计者可设定被仿真微处理器的不同特性。一般而言,某个一目标应用程序的特性对一特别组态设定是需要的,但其它应用程序则不需要。在这些例子中,设计者可决定那个软件应用程序较为重要,或是寻找其它方法来尝试平衡多个软件应用程序的需求。上述选择通常无法达到最佳化目标软件应用程序效能的目的,因为在尝试最佳化其中一个软件应用程序的效能时也会损害另一个软件应用程序的效能。当辨识出组态设定的最佳平均集合时,举例来说,微处理器设计者可将其写为VHDL或Verilog程序代码。其它微处理器可通过包含在微处理器中的一组熔丝来修改其硬编码设定,这些熔丝可在微处理器制造时选择性地熔断,以改变其硬编码值(hardcodedvalues)的组态设定。上述方式可让微处理器在制造时有限度的最佳化,且或许可对在微处理器设计后所发表的新软件应用程序或是操作系统所需的系统组态做响应。然而,该解决方式仍无法达到使目标软件应用程序的效能最佳化的目的,因其需要设计者/制造者选择用于最佳化某些应用程序但且同时牺牲其它应用程序效能的组态设定、或是选择通常不会对任何应用程序进行最佳化的平衡组态设定。为了陈述该问题,于2008年7月10日申请的美国专利申请号12/170,591已揭示一微处理器可基于目前正在操作的应用程序的一装置驱动器以动态设定至多个操作模式,该美国专利已经公告为第8,566,565号,且整份专利提供于此作为参考之用。然而,更佳的效能最佳化效果的需求依然存在。
技术实现思路
本专利技术还提供一种微处理器,包括:一指令高速缓存;一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的。其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。本专利技术还提供一种由一微处理器执行的用于防止壳码的执行的方法。该微处理器包括一指令高速缓存及一硬件状态机。该方法可以包括:利用该硬件状态机通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是从指令高速缓存撷取的指令的第一数据流的一部分或不是从其得到的。其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。本专利技术还提供一种微处理器,包括:一指令高速缓存;一硬件状态机,用以检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,该微处理器暂停由该指令高速缓存撷取及执行指令。本专利技术还提供一种用于一微处理器的检测方法,该微处理器包括一指令高速缓存及一硬件状态机,该方法包括:利用该硬件状态机检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,暂停由该指令高速缓存撷取及执行指令。本专利技术还提供一种计算机程序产品,编码于至少一计算机可读媒体中以供一运算装置使用,该运算装置包括一微处理器,该计算机程序产品包括:一第一程序代码,用以指出该微处理器的一指令高速缓存;以及一第二程序代码,用以指出该微处理器的一硬件状态机,用以检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,该微处理器暂停由该指令高速缓存撷取及执行指令。附图说明图1示出了一微处理器100的功能方块图。图2示出了依据本专利技术一实施例中的指纹单元102的详细功能方块图。图3示出了依据本专利技术一实施例中用以产生已知目标程序部分及其有关的静态指纹、组态设定及指纹产生准则的数据库的流程图。图4示出了依据本专利技术一实施例中微处理器100动态自我重新配置的操作的流程图。图5示出了依据本专利技术一实施例中微处理器110动态自我重新配置的更进一步操作流程图。图6示出了依据本专利技术另一实施例中微处理器100动态自我重新配置的操作流程图。图7示出了依据本专利技术另一实施例中微处理器100动态自我重新配置的操作流程图。图8示出了依据本专利技术另一实施例中图1的指纹单元102的方块图。图9示出了依据本专利技术一实施例中的微处理器100动态自我重新配置的操作流程图。图10示出了依据本专利技术一实施例中微处理器100检测NOP滑动的操作流程图。附图符号说明100~微处理器;102~指纹单元;104~重设单元;124~组态寄存器;126~指纹设定准则表;128~动态重设功能单元;132~指纹编程寄存器;142~指令信息;144~控制信号;202~指令索引;204~位移字段;206~运算码字段;208~ModRM字段;212~SIB字段;214~前缀;222~数学运算电路;224~结果(动态指纹);226~比较器;228~相符信号;232~静态指纹;234~控制逻辑;238~指纹产生准则;242~衰减计数器;244~串接信号;822~指令计数器;826~比较器;832~静态指令计数值;302-314、402-412、514-522、602-608、702-708、902-912、1002-1008~方块具体实施方式为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图式,作详细说明如下。词汇(Glossary)「指纹(fingerprint)」为可辨识一程序的指令序列的一数值,指纹值的产生是依据一数学运算而得到的关于指令序列的信息累积结果。该信息可包括,举例来说,该指令的指令索引值的多个组合(例如指令的地址)、指令的操作码(opcode)、指令的位移(displacement)、指令的前缀(prefix)、及/或指令的部分地址模式,例如是x86架构指令(或是其一部分的)的SIB或modRM位。累积指令信息的数学运算,举例来说,可包括连续地计算与序列中各指令有关的循环冗余检查码(cyclicredundancycode)。此外,该数学运算亦可包括在一多输入位移寄存器(multipleinputshiftregister)中使用最大计数多项式来累计指令信息。再者,该数学运算还可包括依据一哈希函数(hashfunction),例如是一可本文档来自技高网
...

【技术保护点】
一种微处理器,包括:一指令高速缓存;一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的;其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。

【技术特征摘要】
2013.09.20 US 61/880,620;2013.10.10 US 14/050,7571.一种微处理器,包括:一指令高速缓存;一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的;其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。2.如权利要求1所述微处理器,其中指令的第二数据流是操作系统例外处理程序。3.如权利要求1所述的微处理器,其中该微处理器用以通过产生无效运算码错...

【专利技术属性】
技术研发人员:泰瑞派克斯
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1