用于提高设备安全性的指令扰动的技术的制作方法

未命名 09-18 阅读:66 评论:0

用于提高设备安全性的指令扰动的技术
1.交叉引用
2.本专利申请要求由krishnaswamy等人于2021年1月28日提交的题为“techniques for instruction perturbation for improveddevice security(用于提高设备安全性的指令扰动的技术)”的美国专利申请no.17/160,769的权益,该申请被转让给本技术的受让人并且通过援引被明确纳入于此。
3.背景
4.下文涉及指令处理,包括用于提高设备安全性的指令扰动的技术。
5.一些系统可被广泛部署以提供各种类型的内容,诸如语音、视频、分组数据、消息接发、广播等等。这些系统可以能够处理、存储、生成、操纵和再现信息。此类系统的示例可包括娱乐系统、信息系统、虚拟现实系统、模型和模拟系统等等。这些系统可采用硬件和软件技术的组合来支持处理、存储、生成、操纵和再现信息,举例而言,诸如捕获设备、存储设备、通信网络、计算机系统和显示设备。系统可包括处理可执行指令的一个或多个设备。例如,一些系统可包括支持计算机处理架构的超长指令字(vliw)处理器,其中语言编译器可将指令分为可以并行执行的基本操作。
6.概述
7.所描述的技术涉及支持用于提高设备安全性的指令扰动的技术的改进的方法、系统、设备和装置。一般而言,所描述的技术提供了扰动(例如,修改、混洗、随机化等)可执行指令。例如,设备可标识与第一次序相对应的可执行指令集(例如,用于虚拟存储器地址映射的第一可执行指令),以随机或伪随机方式扰动可执行指令以使得经扰动的可执行指令对应于第二次序(例如,用于虚拟存储器地址映射的第二可执行指令),并基于该第二次序来处理可执行指令。
8.设备处理器可处理(例如,执行)可执行指令,并且处理器可被视为或包括中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、超长指令字(vliw)处理器等的各方面。上述处理器是示例,并且本文所描述的设备处理器的各方面不限于此。与设备相关联的编译器可生成包含可执行指令集的指令包,并且与设备相关联的处理器可根据经修改次序来处理该可执行指令集。
9.例如,设备可基于与指令包相关联的参数来向该指令包指派可执行指令集。集合中的每个可执行指令可独立于该集合中的其他可执行指令。参数可对应于由设备支持的包大小。设备可基于与该设备相关联的槽指令规则来选择可执行指令集的次序,并且集合中的每个可执行指令可对应于与该设备的存储器相关联的相应槽。在一些情形中,槽指令规则可指示由不同槽支持的指令类型。设备可基于槽指令规则在预解码后修改存储器阶层中可执行指令集的次序,并基于经修改次序来处理该可执行指令集。
10.描述了一种方法。该方法可包括:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令;基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽;基于该槽指令规则在预解
码后修改存储器阶层中该可执行指令集的次序;以及基于经修改次序来处理该指令包中的该可执行指令集。
11.描述了一种装置。该装置可包括处理器、与该处理器处于电子通信的存储器、以及存储在该存储器中的指令。这些指令可由该处理器执行以使该装置:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令;基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽;基于该槽指令规则在预解码后修改该可执行指令集在存储器阶层中的次序;以及基于经修改次序来处理该指令包中的该可执行指令集。
12.描述了另一种装备。该装备可包括:用于基于与指令包相关联的参数来向该指令包指派可执行指令集的装置,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令;用于基于与设备相关联的槽指令规则来选择该可执行指令集的次序的装置,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽;用于基于该槽指令规则在预解码后修改该可执行指令集在存储器阶层中的次序的装置;以及用于基于经修改次序来处理该指令包中的该可执行指令集的装置。
13.描述了一种存储代码的非瞬态计算机可读介质。该代码可包括能由处理器执行以进行以下操作的指令:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令;基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽;基于该槽指令规则在预解码后修改该可执行指令集在存储器阶层中的次序;以及基于经修改次序来处理该指令包中的该可执行指令集。
14.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:基于该可执行指令集来选择该指令包的包大小;以及基于该指令包的所选择包大小来向该指令包指派该可执行指令集。
15.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,修改该可执行指令集的次序可包括用于以下动作的操作、特征、装置或指令:选择该可执行指令集的第一次序;基于该可执行指令集的该第一次序来确定该可执行指令集中的至少一个可执行指令违反该槽指令规则;以及响应于该可执行指令集中的该至少一个可执行指令违反该槽指令规则而抑制基于该第一次序来处理该指令包中的该可执行指令集。
16.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:基于确定该可执行指令集中的该至少一个可执行指令违反该槽指令规则而选择该可执行指令集的第二次序;基于该可执行指令集的该第二次序来确定该可执行指令集中的每个可执行指令满足该槽指令规则;以及响应于该可执行指令集中的每个可执行指令满足该槽指令规则而基于该第二次序来处理该指令包中的该可执行指令集。
17.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:确定该可执行指令集中的每个可执行指令对应于与该设备的该存储器相关联的有效相应槽,并且其中选择该可执行指令集的次序可基于确定该可执行指令集中的每个可执行指令对应于与该设备的该存储器相关联的该有效相
应槽。
18.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:基于初始次序从与该设备相关联的第一存储器高速缓存接收该可执行指令集;以及基于该经修改次序向与该设备相关联的第二存储器高速缓存传送该可执行指令集。
19.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:基于随机化参数来处理该可执行指令集的可执行指令子集。
20.本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例可进一步包括用于以下动作的操作、特征、装置或指令:确定与堆栈帧相关联的所指派随机数可被修改,以及基于该确定来终止处理该可执行指令集的该可执行指令子集。
21.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,处理该可执行指令集可包括用于以下动作的操作、特征、装置或指令:在与该设备相关联的一个或多个处理器上执行该可执行指令集。
22.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,该一个或多个处理器包括可变长度处理器、超长指令字处理器、或hexagon处理器、或其组合。
23.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,该槽指令规则包括对可由槽支持的一个或多个指令类型的指示。
24.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,该参数包括标识该指令包的包大小的包大小参数。
25.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,该可执行指令集不包括互锁的流水线级指令。
26.在本文所描述的方法、装置(装备)和非瞬态计算机可读介质的一些示例中,该可执行指令集包括比每指令包的可执行指令的阈值数目要少的可执行指令。
27.附图简述
28.图1解说了根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的系统的示例。
29.图2解说了根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的指令处理技术的示例。
30.图3示出了根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的设备的框图。
31.图4示出了根据本公开的各方面的包括支持用于提高设备安全性的指令扰动的技术的设备的系统的示图。
32.图5至7示出了解说根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的方法的流程图。
33.详细描述
34.本公开的各个方面涉及用于扰动(例如,混洗)可执行指令以消除或降低设备利用风险的技术。例如,用户(例如,黑客、攻击方、恶意用户等)可通过更改可执行指令处理次序(例如,代码重用攻击)来利用设备,以使得由于根据经更改的次序处理可执行指令而实现
期望的设备状态。用户可确定不同可执行指令(例如,代码段)的实际或可能的地址(例如,物理存储器地址或虚拟存储器地址)并操纵设备(例如,执行缓冲器溢出)以使得设备处理导致期望设备状态的特定可执行指令。
35.处理器(例如,中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、超长指令字(vliw)处理器等)可基于经修改次序来执行或以其他方式执行指令,以阻止代码重用攻击并提高设备安全性。与设备相关联的编译器可生成包含可执行指令集的指令包,并且指令包中所包括的可执行指令可以部分或完全独立于作为该指令包的一部分的其他可执行指令。设备可扰动(例如,混洗)可执行指令集以产生可执行指令集的新的或经修改次序,并且处理器可根据经扰动的可执行指令来执行可执行指令集。在一些情形中,可执行指令的次序可被修改以使得可执行指令的经更新次序满足槽指令规则。例如,一些处理器可指定或关联于槽指令规则(例如,约束集),该槽指令规则例如描述哪些类型的指令可被指派给一个或多个槽。
36.本文所描述的技术可提供动态索引常量的更高效实现(例如,在大的常量缓冲器超过本地存储器容量的情况下)。一些技术可减少或消除与从非本地存储器(例如,外部存储器)检索动态索引常量相关联的开销等待时间等,这可改进着色器执行(例如,提高运行时效率、减少资源约束)和/或性能(例如,提高资源利用、减少系统等待时间、减少从非本地存储器检索的常量数目、减少并行线程处理中断)。
37.本公开的各方面最初在系统的上下文中进行描述。本公开的各方面进一步由与用于提高设备安全性的指令扰动的技术有关的装置图、系统图、以及流程图来进一步解说并参照这些装置图、系统图、以及流程图来描述。
38.图1解说了根据本公开的各方面的支持用于指令扰动的技术的设备的系统100。系统100可包括设备105、服务器110、以及数据库115。尽管系统100解说了两个设备105、单个服务器110、单个数据库115和单个网络120,但本公开适用于具有一个或多个设备105、服务器110、数据库115和网络120的任何系统架构。设备105、服务器110和数据库115可以彼此通信,并使用通信链路125经由网络120来交换支持用于提高设备安全性的指令扰动的技术的信息,诸如分组、数据或控制信息。在一些情形中,本文所描述的支持用于提高设备安全性的指令扰动的技术的一部分或全部技术可由设备105或服务器110或两者执行。
39.实现处理器管理器135的设备105可以执行各指令,一次执行一个指令包。每个指令包可包括多个独立的指令,并且由于每个指令之间没有依赖性,因此可并行执行各指令以实现设备105的处理器的高性能,如本文所述。在一些情形中,与设备105的处理器相关联的编译器可标识独立指令并将指令调度到这些指令包中。例如,对于4宽指令包架构,编译器可在每个包中调度至多达4个独立指令。由于编译器可能无法针对每个循环找到4个独立指令,因此设备105可支持可变长度包,例如1到4指令宽。这允许代码的紧凑表示,同时还从并行执行中获得性能。
40.作为示例,设备105可具有由4个指令表示为[a,b,c,d]的指令包。2次弹出(pop)和1次返回(return)的示例代码小工具(code gadget)可对应于序列[b,c,d]。寻求重用代码小工具的攻击方(例如,另一设备105)不得不注意不执行可能更改程序状态的其他指令。这意味着攻击方(例如,另一设备105)可能必须跳转到包中b所驻留的地址(或槽2)并开始执行。换言之,攻击方(例如,另一设备105)必须跳转到指令包的中间。由于所有四个指令(例
如,[a,b,c,d])彼此独立,因此设备105(例如,设备105的处理器)可按任何次序将每个指令定位在存储器中并执行。
[0041]
例如,代替根据以下次序[a,b,c,d]来执行指令,设备105(例如,经由设备105的处理器)可将次序变换为[b,a,d,c]。攻击方(例如,另一设备105)会跳转到槽2处的包中间并开始执行[a,d,c],这不是攻击方(例如,另一设备105)预期的并且这将会破坏恶意攻击。即,由于包中现有指令的次序与攻击方预期的次序不同,因此攻击被破坏。因此,当攻击方尝试在与包中的槽3相对应的虚拟地址处执行指令时,将执行不同的指令集。设备105可被配置成:在运行时执行这种随机扰动,每次执行序列时选取不同的次序,使得攻击方难以知道个体代码小工具的确切位置,从而阻止攻击。
[0042]
设备105可以是蜂窝电话、智能电话、个人数字助理(pda)、无线通信设备、手持式设备、平板计算机、膝上型计算机、无绳电话、显示设备(例如,监视器),和/或支持与数据可执行指令有关的各种类型的通信和功能特征(例如,传送、接收、广播、流式传送、汇集、捕获、存储和记录数据可执行指令)的类似设备。ue 105可以附加地或替换地被本领域技术人员称为用户装备(ue)、用户设备、智能电话、蓝牙设备、wi-fi设备、移动站、订户站、移动单元、订户单元、无线单元、远程单元、移动设备、无线设备、无线通信设备、远程设备、接入终端、移动终端、无线终端、远程终端、手持机、用户代理、移动客户端、客户端、和/或某个其他合适的术语。在一些情形中,设备105还可以能够直接与另一设备(例如,使用对等(p2p)或设备到设备(d2d)协议)通信。例如,设备105可以能够从另一设备105接收或向另一设备105传送各种信息,诸如指令或命令。
[0043]
设备105可包括应用130和处理器管理器135。虽然系统100解说了设备105包括应用130和处理器管理器135两者,但应用130和处理器管理器135可以是设备105的可任选特征。在一些情形中,应用130可以是能够经由使用通信链路125从服务器110、数据库115或另一设备105接收(例如,下载、流式传送、广播)或者向服务器110、数据库115或另一设备105传送(例如,上传)数据的应用。
[0044]
处理器管理器135可以是以下各项的一部分:被设计成执行本公开中所描述的功能的通用处理器、dsp、图像信号处理器(isp)、cpu、gpu、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)、分立的门或晶体管逻辑组件、分立的硬件组件、vliw、或其任何组合、或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合等。例如,处理器管理器135可处理来自设备105的本地存储器或数据库115的数据(例如,图像数据、视频数据、音频数据)或数据可执行指令和/或向设备105的本地存储器或数据库115写入数据或数据可执行指令。
[0045]
实现处理器管理器135的设备105可基于与指令包相关联的参数来向该指令包指派可执行指令集,并且该可执行指令集中的每个可执行指令可独立于该可执行指令集中的其他可执行指令。实现处理器管理器135的设备105可基于与该设备相关联的槽指令规则来选择可执行指令集的次序,并且该可执行指令集中的每个可执行指令可对应于与设备105的存储器相关联的相应槽。
[0046]
实现处理器管理器135的设备105可基于槽指令规则在预解码后修改存储器阶层中可执行指令集的次序,并基于经修改次序来执行指令包中的可执行指令集。本文所描述的技术可减少或消除代码重用攻击并提高设备安全性。此外,本文所描述的技术可对设备
105的操作提供益处和增强。例如,通过基于部分指令预编码来扰动指令,设备105的操作特性(诸如功耗和操作运行时)可减少。
[0047]
在图1的示例中,设备105可包括包含指令的系统存储器,并且指令可被加载到设备105的处理器的本地存储器(例如,高速缓存)中。在一些情形中,编译器可生成指令包,该指令包包含部分或完全独立于该包中的其他可执行指令的可执行指令集。在一些示例中,处理器架构可与四个指令的指令长度相关联,并且处理器可以每时钟循环执行四个指令。在一些示例中,指令长度可以是固定的(例如,四个指令),而在一些其他示例中,指令长度可以是可变的(例如,至多达四个指令)。每时钟循环处理多个指令可支持代码的紧凑表示,同时还提供并行化性能。
[0048]
可基于预编码步骤来扰动可执行指令集。例如,指令扰动可以随着l1高速缓存填充的发生而发生,并且扰动对于每个指令包而言可以是随机或伪随机的。硬件随机数生成器可被用于在l1高速缓存被填充时在由预编码器为每个指令包确定的有效排列之间随机选择。地址空间布局随机化技术是利用程序加载器来随机化代码段在加载程序的虚拟存储器中的位置的办法。该技术还可通过在加载期间使代码段移位来改变代码段(例如,代码小工具)的位置。
[0049]
攻击方可通过预测或推断运行时一个函数的地址并重构程序中其他代码小工具的地址来利用地址空间布局随机化技术。本文所描述的技术阻止这种利用,因为函数的预测地址将不会计及指令扰动。此外,由于扰动在运行时发生(而不是加载时),并在每次l1填充时持续发生,因此攻击方无法准确预测代码何时或如何受到扰动。附加地,由于与指令包相对应的可执行指令可独立地扰动代码小工具,因此攻击方将需要正确地猜测期望的代码小工具序列中的每个小工具的代码排列以实现期望状态。在一些情形中,攻击方可能尝试暴力攻击或地址空间探索攻击。所描述的技术增加了运行时期望序列的代码小工具的不同潜在排列数目,从而降低了暴力攻击和地址空间探索攻击两者的风险。
[0050]
服务器110可以是数据服务器、云服务器、与订阅提供商相关联的服务器、代理服务器、web服务器、应用服务器、通信服务器、家庭服务器、移动服务器、或其任何组合。服务器110在一些情形中可包括分发平台140。分发平台110可允许设备105使用通信链路125经由网络120来发现、浏览、分享和下载数据,并且因此提供对来自分布平台140的数据的数字分发。如此,数字分发可以是不使用物理媒体而是通过在线传递介质(诸如因特网)来传递媒体内容(诸如音频、视频、图像)的形式。例如,设备105可以上传或下载用于对数据(例如,图像、音频、视频)进行流式传送、下载、上传、处理、增强等的应用。服务器110还可向设备105传送各种信息,诸如在设备105上下载应用的指令或命令。
[0051]
数据库115可存储各种信息,诸如指令或命令。例如,数据库115可存储数据或数据可执行指令。设备可支持用于提高与数据相关联的设备安全性的指令扰动的技术。设备105可使用通信链路125经由网络120从数据库115检索所存储的数据。在一些示例中,数据库115可以是存储各种信息(诸如指令或命令)的关系数据库(例如,关系数据库管理系统(rdbms)或结构化查询语言(sql)数据库)、非关系数据库、网络数据库、面向对象的数据库、或其他类型的数据库。
[0052]
网络120可提供加密、接入授权、跟踪、网际协议(ip)连通性,以及其他接入、计算、修改和/或功能。网络120的示例可包括云网络、局域网(lan)、广域网(wan)、虚拟专用网
(vpn)、无线网络(例如使用802.11)、蜂窝网络(使用第三代(3g)、第四代(4g)、长期演进(lte)、或新无线电(nr)系统(例如,第五代(5g)))等)的任何组合。网络120可包括因特网。系统100中所示的通信链路125可包括从设备105到服务器110和数据库115的上行链路传输,和/或从服务器110和数据库115到设备105的下行链路传输。无线链路125可传送双向通信和/或单向通信。在一些示例中,通信链路125可以是有线连接或无线连接或两者。例如,通信链路125可包括一个或多个连接,包括但不限于wi-fi、蓝牙、蓝牙低能量(ble)、蜂窝、z-wave、802.11、对等、lan、无线局域网(wlan)、以太网、火线(firewire)、光纤和/或与无线通信系统有关的其他连接类型。
[0053]
图2解说了根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的指令处理技术200的示例。指令处理技术200可实现系统100的各方面。例如,处理器核230(例如,vliw核)可支持指令处理技术200并且可处理可执行指令,并且可基于代码扰动225来处理可执行指令。处理器(例如,vliw处理器、hexagon处理器、cpu、gpu、dsp等)可包括指令处理技术200的一个或多个方面。例如,处理器可根据指令次序215-a将指令从主存储器205加载到l2高速缓存210-a中,在220应用预编码器,在225扰动指令,根据指令次序215-b将指令加载到l1高速缓存210-b中,并在处理器核230处理指令。
[0054]
处理器核230可基于指令包中的可执行指令集的经修改或经扰动次序来处理该可执行指令集。作为解说性示例,指令包可被加载到l2高速缓存210-a中,并且该指令包可包含指令a、b、c和d(其可表示诸如加载、存储、移位、推送、弹出、返回等指令)。继续该解说性示例,l2高速缓存210-a可使用存储器地址(例如,虚拟存储器地址、槽等)来表示指令包中的可执行指令。存储器地址可被认为是可执行指令集的第一次序,其可以被表示为指令次序215-a。
[0055]
在220,预编码器可以对可执行指令集中的指令应用部分或完全解码,并且可执行指令集的第一次序(例如,指令次序215-a)可基于在220扰动指令而被修改(例如,扰动、混洗等)为可执行指令集的第二次序(例如,指令次序215-b)。在一些情形中,将第一次序修改为第二次序可能不会引入指令之间的任何依赖性。在一些情形中,可基于一个或多个槽指令规则来扰动指令。
[0056]
例如,处理器、设备或架构可与指示不同类型的指令的有效槽的规则(例如,约束)相关联。在一些情形中,指令可被随机修改(例如,基于伪随机数生成器),并且指令的经修改次序可被验证以使得满足槽规则。修改指令集的次序可阻止代码重用攻击并提高设备安全性,因为攻击方可能无法预测不同指令的位置,并且因此失去重用特定指令(例如,代码小工具)的能力。由此,随机化可被用于混洗存储器阶层中包内指令的次序,如本文所述。由于攻击方期望执行的指令集未被执行,因此攻击被阻止。
[0057]
一些vliw架构实施对哪些类别的指令可以置于哪些槽中的约束。例如,分支指令可能必须位于槽3或槽4中。alu指令可进入槽1至4,除非指令包中存在加载指令或存储指令或两者等等。即,在一些情形中,并非[a,b,c,d]的所有16种排列都可用。一些预解码器通过存储器阶层获取指令。该阶段执行对指令包的部分解码以加速核中的执行,这可包括插入代码扰动,代码扰动也会排列这些指令的虚拟地址。
[0058]
因此,代码扰动在每次l1高速缓存填充时发生并且对于每个指令包随机发生。l1中所有高速缓存行中的所有包都被扰动并且大部分代码小工具不断改变其位置。硬件随机
数生成器可被用于在每个指令包填充l1高速缓存时在由预解码器为每个指令包确定的合法排列之间随机选择。由于指令一次在一高速缓存行上运行并且位于l1与l2级之间,因此代码扰动提供改进以减少用于执行的开销。
[0059]
图3示出了根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的设备305的框图300。设备305可以是如本文所描述的处理器的各方面的示例。设备305可包括处理器310和处理器管理器320。这些组件中的每一者可彼此处于通信(例如,经由一条或多条总线)。
[0060]
处理器310可执行一个或多个软件应用,诸如web浏览器、图形用户界面、视频游戏、或涉及图像描绘的图形渲染的其他应用。如本文所述,处理器310在执行一个或多个软件应用时可能遇到处理器管理器程序(例如,适合于由处理器管理器320处置的程序)。因此,处理器310可向处理器管理器320提交渲染命令(例如,经由包含用于解析基于api的命令的编译器的处理器管理器驱动器)。
[0061]
处理器管理器320、处理器310或其各种组合或其各种组件可以是用于执行如本文所述的用于提高设备安全性的指令扰动的技术的各个方面的装置的示例。例如,处理器管理器320、处理器310、或其各种组合或组件可支持用于执行本文所描述的一个或多个功能的方法。
[0062]
在一些示例中,处理器管理器320、处理器310、或其各种组合或组件可在硬件中(例如,在通信管理电路系统中)实现。硬件可包括被配置为或以其他方式支持用于执行本公开中所描述的功能的装置的处理器、dsp、asic、fpga、vliw处理器、或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合。在一些示例中,处理器和与处理器耦合的存储器可被配置成执行本文所描述的一个或多个功能(例如,通过由处理器执行存储在存储器中的指令)。
[0063]
附加地或替换地,在一些示例中,处理器管理器320、处理器310、或其各种组合或组件可在由处理器执行的代码中(例如,作为通信管理软件或固件)实现。如果在由处理器执行的代码中实现,则处理器管理器320、处理器310、或其各种组合或组件的功能可由通用处理器、dsp、处理器、asic、fpga、vliw处理器、或这些或其他可编程逻辑器件的任何组合(例如,被配置为或以其他方式支持用于执行本公开中所描述的功能的装置)来执行。
[0064]
在一些示例中,处理器管理器320可被配置成使用或以其他方式协同处理器310来执行各种操作(例如,接收、监视、传送)。例如,处理器管理器320可从处理器310接收信息或与处理器310相结合地集成以接收信息、传送信息或执行如本文所述的各种其他操作。
[0065]
例如,处理器管理器320可被配置为或以其他方式支持用于基于与指令包相关联的参数来向该指令包指派可执行指令集的装置,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令。处理器管理器320可被配置为或以其他方式支持用于基于与设备相关联的槽指令规则来选择可执行指令集的次序的装置,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。处理器管理器320可被配置为或以其他方式支持用于基于槽指令规则在预解码后修改存储器阶层中可执行指令集的次序的装置。处理器管理器320可被配置为或以其他方式支持用于基于经修改次序来处理指令包中的可执行指令集的装置。通过包括或配置根据如本文所描述的示例的处理器管理器320,设备305(例如,控制或以其他方式耦合到处理器310、处理器管理器320或其组合
的处理器)可以支持用于安全地并行处理多个指令以及高效资源利用的技术。
[0066]
设备305或其各种组件可以是用于执行如本文所描述的用于提高设备安全性的指令扰动的技术的各个方面的装置的示例。例如,处理器管理器320可包括包管理器325、指令次序管理器330、指令管理器335、槽规则管理器340、存储器高速缓存管理器345、或其任何组合。这些组件中的每一者可彼此直接或间接通信(例如,经由一条或多条总线)。
[0067]
包管理器325可被配置为或以其他方式支持用于基于与指令包相关联的参数来向该指令包指派可执行指令集的装置,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令。指令次序管理器330可被配置为或以其他方式支持用于基于与设备相关联的槽指令规则来选择可执行指令集的次序的装置,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。在一些示例中,指令次序管理器330可被配置为或以其他方式支持用于基于槽指令规则在预解码后修改存储器阶层中可执行指令集的次序的装置。指令管理器335可被配置为或以其他方式支持用于基于经修改次序来处理指令包中的可执行指令集的装置。
[0068]
在一些示例中,包管理器325可被配置为或以其他方式支持用于基于可执行指令集来选择指令包的包大小的装置。在一些示例中,包管理器325可被配置为或以其他方式支持用于基于指令包的所选择包大小来向该指令包指派可执行指令集的装置。在一些示例中,为了支持修改可执行指令集的次序,指令次序管理器330可被配置为或以其他方式支持用于选择可执行指令集的第一次序的装置。在一些示例中,为了支持修改可执行指令集的次序,槽规则管理器340可被配置为或以其他方式支持用于基于可执行指令集的第一次序来确定该可执行指令集中的至少一个可执行指令违反槽指令规则的装置。在一些示例中,为了支持修改可执行指令集的次序,指令管理器335可被配置为或以其他方式支持用于响应于可执行指令集中的至少一个可执行指令违反槽指令规则而抑制基于第一次序来处理指令包中的可执行指令集的装置。
[0069]
在一些示例中,指令次序管理器330可被配置为或以其他方式支持用于基于确定可执行指令集中的至少一个可执行指令违反槽指令规则来选择该可执行指令集的第二次序的装置。在一些示例中,槽规则管理器340可被配置为或以其他方式支持用于基于可执行指令集的第二次序来确定该可执行指令集中的每个可执行指令满足槽指令规则的装置。在一些示例中,指令管理器335可被配置为或以其他方式支持用于响应于可执行指令集中的每个可执行指令满足槽指令规则而基于第二次序来处理指令包中的可执行指令集的装置。
[0070]
槽规则管理器340可被配置为或以其他方式支持用于确定可执行指令集中的每个可执行指令对应于与设备的存储器相关联的有效相应槽的装置。在一些示例中,指令次序管理器330可被配置为或以其他方式支持用于基于确定可执行指令集中的每个可执行指令对应于与设备的存储器相关联的有效相应槽来选择该可执行指令集的次序的装置。在一些示例中,存储器高速缓存管理器345可被配置为或以其他方式支持用于基于初始次序从与设备相关联的第一存储器高速缓存接收可执行指令集的装置。在一些示例中,存储器高速缓存管理器345可被配置为或以其他方式支持用于基于经修改次序向与设备相关联的第二存储器高速缓存传送可执行指令集的装置。
[0071]
指令管理器335可被配置为或以其他方式支持用于基于随机化参数来处理可执行指令集的可执行指令子集的装置。在一些示例中,指令管理器335可被配置为或以其他方式
支持用于基于随机化参数来终止处理可执行指令集的可执行指令子集的装置。在一些示例中,为了支持处理可执行指令集,指令管理器335可被配置为或以其他方式支持用于在与设备相关联的一个或多个处理器上执行可执行指令集的装置。在一些示例中,一个或多个处理器(例如,处理器310)包括可变长度处理器、超长指令字处理器、或hexagon处理器、或其组合。在一些示例中,槽指令规则包括对由槽支持的一个或多个指令类型的指示。在一些示例中,参数包括标识指令包的包大小的包大小参数。在一些示例中,可执行指令集不包括互锁的流水线级指令。在一些示例中,可执行指令集包括比每指令包的可执行指令的阈值数目要少的可执行指令。
[0072]
图4示出了根据本公开的各方面的包括支持用于提高设备安全性的指令扰动的技术的设备405的系统400的示图。设备405可以是如本文所描述的设备305的示例或包括设备305的组件。设备405可包括用于双向语音和数据通信的组件,其包括用于传送和接收通信的组件,诸如处理器管理器420、i/o控制器410、存储器415、收发机425和处理器440。这些组件可处于电子通信中,或经由一条或多条总线(例如,总线435)以其他方式耦合(例如,操作地、通信地、功能地、电子地、电气地)。
[0073]
i/o控制器410可管理设备405的输入和输出信号。i/o控制器410还可管理未被集成到设备405中的外围设备。在一些情形中,i/o控制器410可表示至外部外围设备的物理连接或端口。在一些情形中,i/o控制器410可利用操作系统,诸如接或端口。在一些情形中,i/o控制器410可利用操作系统,诸如或另一已知操作系统。在一些其他情形中,i/o控制器410可表示调制解调器、键盘、鼠标、触摸屏或类似设备或者与其交互。在一些情形中,i/o控制器410可被实现为处理器(诸如,处理器440)的一部分。在一些情形中,用户可经由i/o控制器410或经由i/o控制器410所控制的硬件组件来与设备405交互。
[0074]
存储器415可包括ram和rom。存储器415可存储包括指令的软件435(例如,计算机可读代码、计算机可执行代码),这些指令在由处理器管理器420或处理器440执行时使得设备405执行本文所描述的各种功能。软件435可被存储在非瞬态计算机可读介质中,诸如系统存储器或其他类型的存储器。在一些情形中,软件435可以不由处理器管理器420或处理器440直接执行,但可使得计算机(例如,在被编译和执行时)执行本文中所描述的功能。在一些情形中,存储器415可尤其包含bios,该bios可控制基本硬件或软件操作,诸如与外围组件或设备的交互。
[0075]
在一些情形中,设备405可包括单个天线。然而,在一些其他情形中,设备405可具有一个以上天线,这些天线可以能够并发地传送或接收多个无线传输。收发机425可经由一个或多个天线、有线或无线链路进行双向通信,如本文中所描述的。例如,收发机425可表示无线收发机并且可与另一无线收发机进行双向通信。收发机425还可包括调制解调器,以调制分组并将经调制分组提供给一个或多个天线以供传输、以及解调从一个或多个天线收到的分组。收发机425、或收发机425和一个或多个天线可以是如本文中所描述的发射机、接收机或其任何组合或其组件的示例。
[0076]
软件435可包括用于实现本公开的各方面的指令,包括用于支持无线通信的指令。软件435可被存储在非瞬态计算机可读介质中,诸如系统存储器或其他类型的存储器。在一些情形中,软件435可以不由处理器440直接执行,但可使得计算机(例如,在被编译和执行
时)执行本文中所描述的功能。
[0077]
例如,处理器管理器420可被配置为或以其他方式支持用于基于与指令包相关联的参数来向该指令包指派可执行指令集的装置,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令。处理器管理器420可被配置为或以其他方式支持用于基于与设备相关联的槽指令规则来选择可执行指令集的次序的装置,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。处理器管理器420可被配置为或以其他方式支持用于基于槽指令规则在预解码后修改存储器阶层中可执行指令集的次序的装置。处理器管理器420可被配置为或以其他方式支持用于基于经修改次序来处理指令包中的可执行指令集的装置。通过包括或配置根据如本文所描述的示例的处理器管理器420,设备405可支持用于减少指令处理时间、更高效利用通信资源、以及提高设备安全性的技术。
[0078]
处理器管理器420或其子组件可以在硬件、由处理器执行的代码(例如,软件或固件)、或其任何组合中实现。如果在由处理器执行的代码中实现,则处理器管理器420或其子组件的功能可由设计成执行本公开中描述的功能的通用处理器、dsp、asic、fpga或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来执行。处理器管理器420或其子组件可物理地位于各个位置处,包括被分布成使得功能的各部分在不同物理位置处由一个或多个物理组件实现。在一些示例中,根据本公开的各个方面,处理器管理器420或其子组件可以是分开且相异的组件。在一些示例中,根据本公开的各个方面,处理器管理器420或其子组件可与一个或多个其他硬件组件(包括但不限于i/o组件、收发机、网络服务器、另一计算设备、本公开中所描述的一个或多个其他组件、或其组合)相组合。
[0079]
图5示出了解说根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的方法500的流程图。方法500的操作可以由如本文中所描述的处理器管理器设备或其组件来实现。例如,方法500的操作可由参照图1至4所描述的处理器管理器设备来执行。在一些示例中,处理器管理器设备可执行指令集来控制该处理器管理器设备的功能元件执行所描述的功能。附加地或替换地,处理器管理器设备可以使用专用硬件来执行所描述的功能的各方面。
[0080]
在505,该方法可包括:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令集独立于该可执行指令集中的其他可执行指令。505的操作可根据如本文所公开的示例来执行。在一些示例中,505的操作的各方面可由如参照图3所描述的包管理器325来执行。
[0081]
在510,该方法可包括:基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。510的操作可根据如本文所公开的示例来执行。在一些示例中,510的操作的各方面可以由如参照图3所描述的指令次序管理器330来执行。
[0082]
在515,该方法可包括:基于该槽指令规则在预解码后修改存储器阶层中该可执行指令集的次序。515的操作可根据如本文所公开的示例来执行。在一些示例中,515的操作的各方面可由如参照图3所描述的指令次序管理器330来执行。
[0083]
在520,该方法可包括:基于经修改次序来处理该指令包中的该可执行指令集。520的操作可根据如本文所公开的示例来执行。在一些示例中,520的操作的各方面可由如参照
图3所描述的指令管理器335来执行。
[0084]
图6示出了解说根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的方法600的流程图。方法600的操作可以由如本文中所描述的处理器管理器设备或其组件来实现。例如,方法600的操作可由参照图1至4所描述的处理器管理器设备来执行。在一些示例中,处理器管理器设备可执行指令集来控制该处理器管理器设备的功能元件执行所描述的功能。附加地或替换地,处理器管理器设备可以使用专用硬件来执行所描述的功能的各方面。
[0085]
在605,该方法可包括:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令。605的操作可根据如本文所公开的示例来执行。在一些示例中,605的操作的各方面可由如参照图3所描述的包管理器325来执行。
[0086]
在610,该方法可包括:基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。610的操作可根据如本文所公开的示例来执行。在一些示例中,610的操作的各方面可由如参照图3所描述的指令次序管理器330来执行。
[0087]
在615,该方法可包括:基于该槽指令规则在预解码后修改存储器阶层中该可执行指令集的次序。615的操作可根据如本文所公开的示例来执行。在一些示例中,615的操作的各方面可由如参照图3所描述的指令次序管理器330来执行。
[0088]
在620,该方法可包括:基于经修改次序来处理该指令包中的该可执行指令集。620的操作可根据如本文所公开的示例来执行。在一些示例中,620的操作的各方面可由如参照图3所描述的指令管理器335来执行。
[0089]
在625,该方法可包括:基于该可执行指令集来选择该指令包的包大小。625的操作可根据如本文所公开的示例来执行。在一些示例中,625的操作的各方面可由如参照图3所描述的包管理器325来执行。
[0090]
在630,该方法可包括:基于该指令包的所选择包大小来向该指令包指派可执行指令集。630的操作可根据如本文所公开的示例来执行。在一些示例中,630的操作的各方面可由如参照图3所描述的包管理器325来执行。
[0091]
图7示出了解说根据本公开的各方面的支持用于提高设备安全性的指令扰动的技术的方法700的流程图。方法700的操作可以由如本文中所描述的处理器管理器设备或其组件来实现。例如,方法700的操作可由参照图1至4所描述的处理器管理器设备来执行。在一些示例中,处理器管理器设备可执行指令集来控制该处理器管理器设备的功能元件执行所描述的功能。附加地或替换地,处理器管理器设备可以使用专用硬件来执行所描述的功能的各方面。
[0092]
在705,该方法可包括:基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令集独立于该可执行指令集中的每个其他可执行指令。705的操作可根据如本文所公开的示例来执行。在一些示例中,705的操作的各方面可由如参照图3所描述的包管理器325来执行。
[0093]
在710,该方法可包括:基于与设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽。710
的操作可根据如本文所公开的示例来执行。在一些示例中,710的操作的各方面可由如参照图3所描述的指令次序管理器330来执行。
[0094]
在715,该方法可包括:基于该槽指令规则在预解码后修改存储器阶层中该可执行指令集的次序。715的操作可根据如本文所公开的示例来执行。在一些示例中,715的操作的各方面可由如参照图3所描述的指令次序管理器330来执行。
[0095]
在720,该方法可包括:基于经修改次序来处理该指令包中的该可执行指令集。720的操作可根据如本文所公开的示例来执行。在一些示例中,720的操作的各方面可由如参照图3所描述的指令管理器335来执行。
[0096]
在725,该方法可包括:基于初始次序从与该设备相关联的第一存储器高速缓存接收该可执行指令集。725的操作可根据如本文所公开的示例来执行。在一些示例中,725的操作的各方面可由如参照图3所描述的存储器高速缓存管理器345来执行。
[0097]
在730,该方法可包括:基于经修改次序向与该设备相关联的第二存储器高速缓存传送该可执行指令集。730的操作可根据如本文所公开的示例来执行。在一些示例中,730的操作的各方面可由如参照图3所描述的存储器高速缓存管理器345来执行。
[0098]
应注意,本文中所描述的方法描述了可能的实现,并且各操作和步骤可被重新安排或以其他方式被修改且其他实现也是可能的。此外,来自两种或更多种方法的各方面可被组合。
[0099]
方面1:一种在设备处进行的方法,包括:至少部分地基于与指令包相关联的参数来向该指令包指派可执行指令集,该可执行指令集中的每个可执行指令独立于该可执行指令集中的其他可执行指令;至少部分地基于与该设备相关联的槽指令规则来选择该可执行指令集的次序,该可执行指令集中的每个可执行指令对应于与该设备的存储器相关联的相应槽;至少部分地基于该槽指令规则在预解码后修改存储器阶层中该可执行指令集的次序;以及至少部分地基于经修改次序来处理该指令包中的该可执行指令集。
[0100]
方面2:如方面1的方法,进一步包括:至少部分地基于该可执行指令集来选择该指令包的包大小;以及至少部分地基于该指令包的所选择包大小来向该指令包指派该可执行指令集。
[0101]
方面3:如方面1至2中任一者的方法,其中,修改该可执行指令集的次序包括:选择该可执行指令集的第一次序;至少部分地基于该可执行指令集的该第一次序来确定该可执行指令集中的至少一个可执行指令违反该槽指令规则;以及响应于该可执行指令集中的该至少一个可执行指令违反该槽指令规则而抑制至少部分地基于该第一次序来处理该指令包中的该可执行指令集。
[0102]
方面4:如方面3的方法,进一步包括:至少部分地基于确定该可执行指令集中的该至少一个可执行指令违反该槽指令规则而选择该可执行指令集的第二次序;至少部分地基于该可执行指令集的该第二次序来确定该可执行指令集中的每个可执行指令满足该槽指令规则;以及响应于该可执行指令集中的每个可执行指令满足该槽指令规则而至少部分地基于该第二次序来处理该指令包中的该可执行指令集。
[0103]
方面5:如方面1至4中任一者的方法,进一步包括:确定该可执行指令集中的每个可执行指令对应于与该设备的该存储器相关联的有效相应槽,其中选择该可执行指令集的次序至少部分地基于确定该可执行指令集中的每个可执行指令对应于与该设备的该存储
器相关联的该有效相应槽。
[0104]
方面6:如方面1至5中任一者的方法,进一步包括:至少部分地基于初始次序从与该设备相关联的第一存储器高速缓存接收该可执行指令集;以及至少部分地基于该经修改次序向与该设备相关联的第二存储器高速缓存传送该可执行指令集。
[0105]
方面7:如方面1至6中任一者的方法,进一步包括:至少部分地基于随机化参数来处理该可执行指令集的可执行指令子集。
[0106]
方面8:如方面1至7中任一者的方法,进一步包括:至少部分地基于随机化参数来终止处理该可执行指令集的该可执行指令子集。
[0107]
方面9:如方面1至8中任一者的方法,其中,处理该可执行指令集包括:在与该设备相关联的一个或多个处理器上执行该可执行指令集。
[0108]
方面10:如方面9的方法,其中,该一个或多个处理器包括可变长度处理器、超长指令字处理器、或hexagon处理器、或其组合。
[0109]
方面11:如方面1至10中任一者的方法,其中,该槽指令规则包括对由槽支持的一个或多个指令类型的指示。
[0110]
方面12:如方面1至11中任一者的方法,其中,该参数包括标识该指令包的包大小的包大小参数。
[0111]
方面13:如方面1至12中任一者的方法,其中,该可执行指令集不包括互锁的流水线级指令。
[0112]
方面14:如方面1至13中任一者的方法,其中,该可执行指令集包括比每指令包的可执行指令的阈值数目要少的可执行指令。
[0113]
方面15:一种装置,包括:处理器;与该处理器耦合的存储器;以及指令,这些指令存储在该存储器中并且能由该处理器执行以使该装置执行如方面1至14中任一者的方法。
[0114]
方面16:一种装备,包括用于执行如方面1至14中任一者的方法的至少一个装置。
[0115]
方面17:一种存储代码的非瞬态计算机可读介质,该代码包括能由处理器执行以执行如方面1至14中任一者的方法的指令。
[0116]
本文中所描述的信息和信号可使用各种各样的不同技艺和技术中的任一种来表示。例如,贯穿本描述始终可能被述及的数据、指令、命令、信息、信号、比特、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
[0117]
结合本文中的公开描述的各种解说性框以及模块可以用设计成执行本文中所描述的功能的通用处理器、dsp、asic、fpga或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可被实现为计算设备的组合(例如,dsp与微处理器的组合、多个微处理器、与dsp核心协同的一个或多个微处理器,或者任何其他此类配置)。
[0118]
本文中所描述的功能可在硬件、由处理器执行的软件、固件、或其任何组合中实现。如果在由处理器执行的软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。其他示例和实现落在本公开及所附权利要求的范围内。例如,由于软件的本质,本文中所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或其任何组合来实现。实现功能的特征也可物理地位于各种位置,包括被分布以使
得功能的各部分在不同的物理位置处实现。
[0119]
计算机可读介质包括非瞬态计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。非瞬态存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,非瞬态计算机可读介质可包括随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程rom(eeprom)、闪存存储器、压缩盘(cd)rom或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来携带或存储指令或数据结构形式的期望程序代码手段且能被通用或专用计算机、或者通用或专用处理器访问的任何其他非瞬态介质。同样,任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从网站、服务器、或其他远程源传送的,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括cd、激光碟、光碟、数字通用碟(dvd)、软盘和蓝光碟,其中盘常常磁性地再现数据而碟用激光来光学地再现数据。以上介质的组合也被包括在计算机可读介质的范围内。
[0120]
如本文(包括权利要求中)所使用的,在项目列举(例如,以附有诸如“中的至少一个”或“中的一个或多个”之类的措辞的项目列举)中使用的“或”指示包含性列举,以使得例如a、b或c中的至少一个的列举意指a或b或c或ab或ac或bc或abc(即,a和b和c)。同样,如本文所使用的,短语“基于”不应被解读为引述封闭条件集。例如,被描述为“基于条件a”的示例性步骤可基于条件a和条件b两者而不脱离本公开的范围。换言之,如本文所使用的,短语“基于”应当以与短语“至少部分地基于”相同的方式来解读。
[0121]
在附图中,类似组件或特征可具有相同的附图标记。此外,相同类型的各个组件可通过在附图标记后跟随短划线以及在类似组件之间进行区分的第二标记来加以区分。如果在说明书中仅使用第一附图标记,则该描述可应用于具有相同的第一附图标记的类似组件中的任何一个组件而不论第二附图标记、或其他后续附图标记如何。
[0122]
本文中结合附图阐述的说明描述了示例配置而并非代表可被实现或者落在权利要求的范围内的所有示例。本文所使用的术语“示例性”意指“用作示例、实例或解说”,而并不意指“优于”或“胜过其他示例”。本详细描述包括具体细节以提供对所描述的技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些实例中,众所周知的结构和设备以框图形式示出以避免模糊所描述的示例的概念。
[0123]
提供本文中的描述是为了使得本领域技术人员能够制作或使用本公开。对本公开的各种修改对于本领域技术人员将是显而易见的,并且本文中所定义的普适原理可被应用于其他变形而不会脱离本公开的范围。由此,本公开并非被限定于本文中所描述的示例和设计,而是应被授予与本文所公开的原理和新颖特征相一致的最广范围。

技术特征:
1.一种在设备处进行的方法,包括:至少部分地基于与指令包相关联的参数来向所述指令包指派可执行指令集,所述可执行指令集中的每个可执行指令独立于所述可执行指令集中的其他可执行指令;至少部分地基于与所述设备相关联的槽指令规则来选择所述可执行指令集的次序,所述可执行指令集中的每个可执行指令对应于与所述设备的存储器相关联的相应槽;至少部分地基于所述槽指令规则在预解码后修改存储器阶层中所述可执行指令集的次序;以及至少部分地基于经修改次序来处理所述指令包中的所述可执行指令集。2.如权利要求1所述的方法,进一步包括:至少部分地基于初始次序从与所述设备相关联的第一存储器接收所述可执行指令集;以及至少部分地基于所述经修改次序向与所述设备相关联的第二存储器传送所述可执行指令集。3.如权利要求1所述的方法,进一步包括:至少部分地基于所述可执行指令集来选择所述指令包的包大小;以及至少部分地基于所述指令包的所选择包大小来向所述指令包指派所述可执行指令集。4.如权利要求1所述的方法,其中,修改所述可执行指令集的次序包括:选择所述可执行指令集的第一次序;至少部分地基于所述可执行指令集的所述第一次序来确定所述可执行指令集中的至少一个可执行指令违反所述槽指令规则;以及响应于所述可执行指令集中的所述至少一个可执行指令违反所述槽指令规则而抑制至少部分地基于所述第一次序来处理所述指令包中的所述可执行指令集。5.如权利要求4所述的方法,进一步包括:至少部分地基于确定所述可执行指令集中的所述至少一个可执行指令违反所述槽指令规则而选择所述可执行指令集的第二次序;至少部分地基于所述可执行指令集的所述第二次序来确定所述可执行指令集中的每个可执行指令满足所述槽指令规则;以及响应于所述可执行指令集中的每个可执行指令满足所述槽指令规则而至少部分地基于所述第二次序来处理所述指令包中的所述可执行指令集。6.如权利要求1所述的方法,进一步包括:确定所述可执行指令集中的每个可执行指令对应于与所述设备的所述存储器相关联的有效相应槽,其中选择所述可执行指令集的次序至少部分地基于确定所述可执行指令集中的每个可执行指令对应于与所述设备的所述存储器相关联的所述有效相应槽。7.如权利要求1所述的方法,进一步包括:至少部分地基于随机化参数来处理所述可执行指令集的可执行指令子集。8.如权利要求1所述的方法,其中,处理所述可执行指令集包括:在与所述设备相关联的一个或多个处理器上执行所述可执行指令集。9.如权利要求8所述的方法,其中,所述一个或多个处理器包括可变长度处理器、或超
长指令字处理器、或其组合。10.如权利要求1所述的方法,其中,所述槽指令规则包括对由槽支持的一个或多个指令类型的指示。11.如权利要求1所述的方法,其中,所述参数包括标识所述指令包的包大小的包大小参数。12.如权利要求1所述的方法,其中,所述可执行指令集不包括互锁的流水线级指令。13.如权利要求1所述的方法,其中,所述可执行指令集包括比每指令包的可执行指令的阈值数目要少的可执行指令。14.一种装置,包括:处理器;与所述处理器耦合的存储器;以及存储在所述存储器中并且能由所述处理器执行以使所述装置进行以下操作的指令:至少部分地基于与指令包相关联的参数来向所述指令包指派可执行指令集,所述可执行指令集中的每个可执行指令独立于所述可执行指令集中的其他可执行指令;至少部分地基于与设备相关联的槽指令规则来选择所述可执行指令集的次序,所述可执行指令集中的每个可执行指令对应于与所述设备的存储器相关联的相应槽;至少部分地基于所述槽指令规则在预解码后修改存储器阶层中所述可执行指令集的次序;以及至少部分地基于经修改次序来处理所述指令包中的所述可执行指令集。15.如权利要求14所述的装置,其中,所述指令进一步能由所述处理器执行以使所述装置:至少部分地基于初始次序从与所述设备相关联的第一存储器接收所述可执行指令集;以及至少部分地基于所述经修改次序向与所述设备相关联的第二存储器传送所述可执行指令集。16.如权利要求14所述的装置,其中,所述指令进一步能由所述处理器执行以使所述装置:至少部分地基于所述可执行指令集来选择所述指令包的包大小;以及至少部分地基于所述指令包的所选择包大小来向所述指令包指派所述可执行指令集。17.如权利要求14所述的装置,其中,用于修改所述可执行指令集的次序的指令能由所述处理器执行以使所述装置:选择所述可执行指令集的第一次序;至少部分地基于所述可执行指令集的所述第一次序来确定所述可执行指令集中的至少一个可执行指令违反所述槽指令规则;以及响应于所述可执行指令集中的所述至少一个可执行指令违反所述槽指令规则而抑制至少部分地基于所述第一次序来处理所述指令包中的所述可执行指令集。18.如权利要求17所述的装置,其中,所述指令进一步能由所述处理器执行以使所述装置:至少部分地基于确定所述可执行指令集中的所述至少一个可执行指令违反所述槽指
令规则而选择所述可执行指令集的第二次序;至少部分地基于所述可执行指令集的所述第二次序来确定所述可执行指令集中的每个可执行指令满足所述槽指令规则;以及响应于所述可执行指令集中的每个可执行指令满足所述槽指令规则而至少部分地基于所述第二次序来处理所述指令包中的所述可执行指令集。19.如权利要求14所述的装置,其中,所述指令进一步能由所述处理器执行以使所述装置:确定所述可执行指令集中的每个可执行指令对应于与所述设备的所述存储器相关联的有效相应槽,其中用于选择所述可执行指令集的次序的指令进一步能由所述处理器执行以使所述装置至少部分地基于确定所述可执行指令集中的每个可执行指令对应于与所述设备的所述存储器相关联的所述有效相应槽。20.一种装备,包括:用于至少部分地基于与指令包相关联的参数来向所述指令包指派可执行指令集的装置,所述可执行指令集中的每个可执行指令独立于所述可执行指令集中的其他可执行指令;用于至少部分地基于与所述设备相关联的槽指令规则来选择所述可执行指令集的次序的装置,所述可执行指令集中的每个可执行指令对应于与所述设备的存储器相关联的相应槽;用于至少部分地基于所述槽指令规则在预解码后修改存储器阶层中所述可执行指令集的次序的装置;以及用于至少部分地基于经修改次序来处理所述指令包中的所述可执行指令集的装置。

技术总结
描述了用于提高设备安全性的指令扰动的技术的方法、系统和设备。一种设备可基于与指令包相关联的参数来向该指令包指派可执行指令集,并且该可执行指令集中的每个可执行指令可独立于该可执行指令集中的其他可执行指令。该设备可基于与该设备相关联的槽指令规则来选择该可执行指令集的次序,并且该可执行指令集中的每个可执行指令可对应于与该设备的存储器相关联的相应槽。该设备可基于该槽指令规则在预解码后修改存储器阶层中该可执行指令集的次序并基于经修改次序来处理该指令包中的该可执行指令集。的该可执行指令集。的该可执行指令集。


技术研发人员:A
受保护的技术使用者:高通股份有限公司
技术研发日:2021.11.30
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐