一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

伪数据处理方法、装置、执行单元以及处理器与流程

2022-04-14 03:38:18 来源:中国专利 TAG:


1.本公开涉及计算机领域,具体涉及伪数据处理方法、装置、执行单元以及处理器。


背景技术:

2.在例如中央处理器(central processing unit,cpu)的数字运算器件中,当例如算术逻辑单元(arithmetic and logic unit,alu)的执行单元不执行有效操作时,执行单元的例如电压、电流以及功耗中的至少一项的物理特征和执行有效操作时不同,例如更低。这种物理特征变化的现象容易被外部检测,从而导致cpu被攻击。而对于执行密码运算的cpu,此问题影响更大。
3.为了对例如功耗的物理特征进行扰乱,现有方案可以分为以下几类。
4.1.如果程序中存在多个互相不相干的步骤,通过随机执行这些互不相干的步骤,将固有的执行顺序打乱,实现攻击者不能准确地对故障注入点进行判断和分析,从而有效抵御侧信道攻击和故障注入攻击,提高cpu的安全性。
5.2.通过电容的充放电实现功耗的转移, 并且还可通过控制电路控制防护电路只有在需要的时候开启,在降低cpu的功耗的同时,达到防功耗攻击的目的。
6.3.在多轮次的密码算法中,通过加入逆向的伪轮运算实现功耗扰乱。伪轮运算对包含一个正向加密伪轮运算和一个逆向解密伪轮运算。不管输入什么样的明文和密钥,功耗和数据都无规律可循,彻底破坏了电路运行功耗与内部数据的相关性。攻击者无法利用功耗信息来破译密钥,实现了加、解密运算过程的安全。
7.4.使用数据掩蔽的方法对算法进行掩蔽,从而抵御功耗分析。数据掩蔽算法电路使用了一组或多组掩蔽数据与需要处理的输入数据进行异或,在整个运算过程中,输入不会直接参与运算,而是通过掩蔽数据异或之后的数据,即掩蔽后数据参与计算。
8.但是,由于cpu内部设计极其复杂,大量寄存器以及状态标记有着紧密的逻辑关系。任何加扰策略都不应该影响cpu内部状态的非正常改变,影响指令的正常执行。在目前的功耗加扰方案中,第1类方案需要软件做专门调整,增加了开发难度和开发周期;第2类方案在芯片物理设计阶段实现,电路特性与具体工艺密切相关,无法在不同的工艺之间迅速迁移,对不同工艺的适应性较差;第3和第4类方案是针对密码算法的特点而设计的,并不适用于cpu的工作和结构特点。而且,以上方案都无法在cpu的逻辑设计阶段实现。
9.因此,亟待提出一种在不影响有效操作正常执行的条件下,符合cpu的工作和结构特点,能对cpu的电压、电流以及功耗中的至少一项进行随机扰乱的技术方案,避免由于不执行有效操作时,电压、电流以及功耗中的至少一项的变化被检测而遭受攻击。
10.本领域普通技术人员可以理解,除了cpu,单片机、arm处理器、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、图像处理器(graphic processing unit,gpu)、张量处理器(tensor processing unit,tpu)、网络处理器(network processing unit,npu)以及专用集成电路(application specific integrated circuit,asic)等数字运算器件,均可面临上述电
压、电流以及功耗中的至少一项特征被检测,而遭受攻击的问题。此电压、电流以及功耗中的至少一项的变化被检测、遭受攻击的问题也可出现于密码运算之外的其它运算中。


技术实现要素:

11.为了解决相关技术中的问题,本公开实施例提供了一种伪数据处理方法、装置、执行单元以及处理器。
12.第一方面,本公开实施例中提供了一种伪数据处理方法,其特征在于,包括:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在所述执行单元的状态为空闲状态的条件下,所述执行单元根据获取的所述伪数据,执行特定操作,得到伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
13.结合第一方面,本公开在第一方面的第一种实现方式中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
14.结合第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,在所述执行单元是所述算术逻辑单元的条件下,所述特定操作是算术逻辑运算操作;和/或在所述执行单元是所述乘除法单元的条件下,所述特定操作是乘除运算操作;和/或在所述执行单元是所述寄存器堆的条件下,所述特定操作是寄存器堆读写操作;和/或在所述执行单元是所述存储器的条件下,所述特定操作是存储器读写操作。
15.结合第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地执行所述伪数据获取步骤和伪数据操作步骤。
16.结合第一方面,本公开在第一方面的第四种实现方式中,在所述执行单元执行所述伪数据获取步骤和所述伪数据操作步骤时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
17.第二方面,本公开实施例中提供了一种伪数据处理方法,其特征在于,包括:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在所述执行单元的状态为空闲状态的条件下,所述执行单元根据获取的所述伪数据,执行特定操作,得到伪输出数据;伪输出数据处理步骤,所述执行单元将所述伪输出数据写入输出存储单元,或丢弃所述伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
18.结合第二方面,本公开在第二方面的第一种实现方式中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
19.结合第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,所述输出存储单元包括:回收寄存器。
20.结合第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述回收寄存器位于所述寄存器堆中。
21.结合第二方面的第一种实现方式,本公开在第二方面的第四种实现方式中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地执行所述伪数据获取步骤,所述伪数据操作步骤和所述伪输出数据处理步骤。
22.结合第二方面,本公开在第二方面的第五种实现方式中,在所述执行单元执行所述伪数据获取步骤、所述伪数据操作步骤以及所述伪输出数据处理步骤时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
23.结合第二方面,本公开在第二方面的第六种实现方式中,在所述伪数据获取步骤之前,还包括:状态获取步骤,控制单元获取所述执行单元的状态;伪数据处理请求发送步骤,在所述执行单元的状态为空闲状态的条件下,所述控制单元基于控制信息,向所述执行单元发送伪数据处理请求。
24.结合第二方面的第六种实现方式,本公开在第二方面的第七种实现方式中,所述控制信息包括:模式控制信息、实时伪数据处理控制信息。
25.结合第二方面的第七种实现方式,本公开在第二方面的第八种实现方式中,所述模式控制信息包括以下的至少一项:伪数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;和/或所述实时伪数据处理控制信息包括以下的至少一项:伪数据处理使能信息、源数据选择信息以及第一随机数。
26.结合第二方面的第八种实现方式,本公开在第二方面的第九种实现方式中,所述伪数据处理开关信息用于:控制所述执行单元开启或停止所述伪数据获取步骤、所述伪数据操作步骤以及所述伪输出数据处理步骤;和/或控制所述执行单元停止所述伪数据获取步骤、所述伪数据操作步骤以及所述伪输出数据处理步骤的方式。
27.结合第二方面的第八种实现方式,本公开在第二方面的第十种实现方式中,所述控制单元基于所述输入数据配置信息,选择所述输入常数信息和所述第一随机数中的一项,作为所述伪数据获取步骤中的所述伪数据。
28.结合第二方面的第八种实现方式,本公开在第二方面的第十一种实现方式中,所述控制单元根据所述最大伪数据处理频率信息和第二随机数,确定所述执行单元的伪数据处理频率。
29.结合第二方面的第六种实现方式,本公开在第二方面的第十二种实现方式中,所述伪数据操作步骤包括:所述执行单元在接收到所述伪数据处理请求后,在所述执行单元处于空闲状态的条件下,根据获取的伪数据,执行所述特定操作,得到伪输出数据。
30.结合第二方面的第十二种实现方式,本公开在第二方面的第十三种实现方式中,
所述伪数据操作步骤还包括:所述执行单元在接收到所述伪数据处理请求后,在所述执行单元处于非空闲状态的条件下,忽略所述伪数据处理请求,执行有效操作。
31.结合第二方面的第十二种实现方式,本公开在第二方面的第十四种实现方式中,在所述执行单元处于空闲状态的条件下,在所述执行单元是算术逻辑单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是乘除法单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是寄存器堆的条件下,所述执行单元的输入数据是以下各项中的一项:伪数据、所述算术逻辑单元的伪输出数据、所述乘除法单元伪输出数据、所述寄存器堆的伪输出数据以及存储器的伪输出数据;和/或在所述执行单元是存储器的条件下,所述执行单元的输入数据是以下各项中的一项:伪数据、所述寄存器堆的伪输出数据。
32.第三方面,本公开实施例中提供了一种执行单元,用于伪数据的处理,其特征在于,包括:伪数据获取模块,用于获取伪数据;伪数据操作模块,用于在所述执行单元的状态为空闲状态的条件下,根据获取的所述伪数据,执行特定操作,得到伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
33.结合第三方面,本公开在第三方面的第一种实现方式中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
34.结合第三方面的第一种实现方式,本公开在第三方面的第二种实现方式中,在所述执行单元是所述算术逻辑单元的条件下,所述特定操作是算术逻辑运算操作;和/或在所述执行单元是所述乘除法单元的条件下,所述特定操作是乘除运算操作;和/或在所述执行单元是所述寄存器堆的条件下,所述特定操作是寄存器堆读写操作;和/或在所述执行单元是所述存储器的条件下,所述特定操作是存储器读写操作。
35.结合第三方面的第二种实现方式,本公开在第三方面的第三种实现方式中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地运行。
36.结合第三方面,本公开在第三方面的第四种实现方式中,在所述执行单元的所述伪数据获取模块和所述伪数据操作模块工作时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
37.第四方面,本公开实施例中提供了一种执行单元,用于伪数据处理,其特征在于,
包括:伪数据获取模块,用于获取伪数据;伪数据操作模块,用于在所述执行单元的状态为空闲状态的条件下,根据获取的所述伪数据,执行特定操作,得到伪输出数据;伪输出数据处理模块,用于将所述伪输出数据写入输出存储单元,或丢弃所述伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
38.结合第四方面,本公开在第四方面的第一种实现方式中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
39.结合第四方面的第一种实现方式,本公开在第四方面的第二种实现方式中,所述输出存储单元包括:回收寄存器。
40.结合第四方面的第二种实现方式,本公开在第四方面的第三种实现方式中,所述回收寄存器位于所述寄存器堆中。
41.结合第四方面的第一种实现方式,本公开在第四方面的第四种实现方式中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地运行。
42.结合第四方面,本公开在第四方面的第五种实现方式中,在所述执行单元的所述伪数据获取模块、所述伪数据操作模块以及所述伪输出数据处理模块工作时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
43.第五方面,本公开实施例中提供了一种伪数据处理装置,其特征在于,包括:第四方面至第四方面的第五种实现方式中任一项所述的执行单元;控制单元,其特征在于,包括:状态获取模块,用于获取所述执行单元的状态;伪数据处理请求发送模块,在所述执行单元的状态为空闲状态的条件下,基于控制信息,向所述执行单元发送伪数据处理请求。
44.结合第五方面,本公开在第五方面的第一种实现方式中,所述控制信息包括:模式控制信息、实时伪数据处理控制信息。
45.结合第五方面的第一种实现方式,本公开在第五方面的第二种实现方式中,所述模式控制信息包括以下的至少一项:伪数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;和/或所述实时伪数据处理控制信息包括以下的至少一项:扰乱使能信息、源数据选择信息以及第一随机数。
46.结合第五方面的第二种实现方式,本公开在第五方面的第三种实现方式中,所述伪数据处理开关信息用于:控制所述执行单元开启或停止所述状态获取模块、所述伪数据操作模块以及所述伪输出数据处理模块;和/或控制所述执行单元停止所述状态获取模块、所述伪数据操作模块以及所述伪输出
数据处理模块的方式。
47.结合第五方面的第二种实现方式,本公开在第五方面的第四种实现方式中,所述伪数据处理请求发送模块基于所述输入数据配置信息,选择所述输入常数信息和所述第一随机数中的一项,作为所述伪数据获取步骤中的所述伪数据。
48.结合第五方面的第二种实现方式,本公开在第五方面的第五种实现方式中,所述伪数据处理请求发送模块根据所述最大伪数据处理频率信息和第二随机数,确定所述执行单元的伪数据处理频率。
49.结合第五方面,本公开在第五方面的第六种实现方式中,所述执行单元用于:在接收到所述伪数据处理请求后,在所述执行单元处于空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输出数据。
50.结合第五方面的第六种实现方式,本公开在第五方面的第七种实现方式中,所述执行单元还用于:在接收到所述伪数据处理请求后,在所述执行单元处于非空闲状态的条件下,忽略所述伪数据处理请求,执行有效操作。
51.结合第五方面的第六种实现方式,本公开在第五方面的第八种实现方式中,在所述执行单元处于空闲状态的条件下,在所述执行单元是算术逻辑单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是乘除法单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是寄存器堆的条件下,所述执行单元的输入数据是以下各项中的一项:伪数据、所述算术逻辑单元的伪输出数据、所述乘除法单元伪输出数据、所述寄存器堆的伪输出数据以及存储器的伪输出数据;和/或在所述执行单元是存储器的条件下,所述执行单元的输入数据是以下各项中的一项:伪数据、所述寄存器堆的伪输出数据。
52.第六方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面,第一方面的第一种实现方式至第一方面的第四种实现方式、第二方面,第二方面的第一种实现方式至第二方面的第十四种实现方式中任一项所述的方法。
53.第七方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式至第一方面的第四种实现方式、第二方面、第二方面的第一种实现方式至第二方面的第十四种实现方式所述的方法。
54.第八方面,本公开实施例中提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式至第一方面的第四种实现方式、第二方面、第二方面的第一种实现方式至第二方面的第十四种实现方式所述的
方法步骤。
55.第九方面,本公开实施例中提供了一种中央处理器,用于执行处理器指令,该处理器指令被所述中央处理器执行时实现如第一方面、第一方面的第一种实现方式至第一方面的第四种实现方式、第二方面、第二方面的第一种实现方式至第二方面的第十四种实现方式所述的方法步骤。
56.第十方面,本公开实施例中提供了一种芯片,用于执行指令,该指令被所述芯片执行时实现如第一方面、第一方面的第一种实现方式至第一方面的第四种实现方式、第二方面、第二方面的第一种实现方式至第二方面的第十四种实现方式所述的方法步骤。
57.本公开实施例提供的技术方案可以包括以下有益效果:根据本公开实施例提供的技术方案,通过数据处理方法,用于伪数据的处理,其特征在于,包括:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在执行单元的状态为空闲状态的条件下,执行单元根据获取的伪数据,执行特定操作,得到伪输出数据,伪数据包括以下的至少一项:输入常数信息、第一随机数,从而用伪数据处理模拟有效操作,防止执行单元在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。输入常数信息作为伪数据易于实现,第一随机数作为伪数据可以更真实的模拟有效操作。
58.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
59.结合附图,通过以下非限制性实施例的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中。
60.图1示出根据本公开一实施例的伪数据处理方法的实施场景的示例性示意图。
61.图2示出根据本公开另一实施例的伪数据处理方法的实施场景的示例性示意图。
62.图3示出根据本公开一实施例的伪数据处理方法的流程图。
63.图4示出根据本公开一实施例的伪数据处理方法的流程图。
64.图5示出根据本公开另一实施例的伪数据处理方法的流程图。
65.图6示出根据本公开一实施例的执行单元的结构框图。
66.图7示出根据本公开另一实施例的执行单元的结构框图。
67.图8示出根据本公开一实施例的伪数据处理装置的结构框图。
68.图9示出根据本公开的实施例的电子设备的结构框图。
69.图10示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施例
70.下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
71.在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的标签、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他标签、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
72.另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的标签
可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
73.在例如中央处理器(central processing unit,cpu)的数字运算器件中,当例如算术逻辑单元(alu)的执行单元不执行有效操作时,执行单元的例如电压、电流以及功耗中的至少一项的物理特征和执行有效操作时不同,例如更低。这种功耗变化的现象容易被外部检测,从而导致cpu被攻击。而对于执行密码运算的cpu,此问题影响更大。
74.为了对功耗进行扰乱,现有方案可以分为以下几类。
75.1.如果程序中存在多个互相不相干的步骤,通过随机执行这些互不相干的步骤,将固有的执行顺序打乱,实现攻击者不能准确地对故障注入点进行判断和分析,从而有效抵御侧信道攻击和故障注入攻击,提高cpu的安全性。
76.2.通过电容的充放电实现功耗的转移, 并且还可通过控制电路控制防护电路只有在需要的时候开启,在降低cpu的功耗的同时,达到防功耗攻击的目的。
77.3.在多轮次的密码算法中,通过加入逆向的伪轮运算实现功耗扰乱。伪轮运算对包含一个正向加密伪轮运算和一个逆向解密伪轮运算。不管输入什么样的明文和密钥,功耗和数据都无规律可循,彻底破坏了电路运行功耗与内部数据的相关性。攻击者无法利用功耗信息来破译密钥,实现了加、解密运算过程的安全。
78.4.使用数据掩蔽的方法对算法进行掩蔽,从而抵御功耗分析。掩蔽算法电路使用了一组或多组掩蔽数据与需要处理的输入数据进行异或,在整个运算过程中,输入不会直接参与运算,而是通过掩蔽数据异或之后的数据,即掩蔽后数据参与计算。
79.但是,由于cpu内部设计极其复杂,大量寄存器以及状态标记有着紧密的逻辑关系。任何的加扰策略都不应该影响cpu内部状态的非正常改变,影响指令的正常执行。目前的功耗加扰方案中,第1类方案需要软件做专门调整,增加了开发难度和开发周期;第2类方案在芯片物理设计阶段实现,电路特性与具体工艺密切相关,无法在不同的工艺之间迅速迁移,对不同工艺的适应性较差;第3和第4类方案是针对密码算法的特点而设计的,并不适用于cpu的工作和结构特点。而且,以上方案都无法在cpu的逻辑设计阶段实现。
80.因此,亟待提出一种符合cpu的工作和结构特点,在不影响有效操作正常执行的条件下,能对cpu的功耗进行随机扰乱的技术方案,避免由于不执行有效操作时,电压、电流以及功耗中的至少一项的变化被检测而遭受攻击。
81.本领域普通技术人员可以理解,除了cpu,单片机、arm处理器、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、图像处理器(graphic processing unit,gpu)、张量处理器(tensor processing unit,tpu)、网络处理器(network processing unit,npu)以及专用集成电路(application specific integrated circuit,asic)等数字运算器件,均可面临上述电压、电流以及功耗中的至少一项特征被检测,而遭受攻击的问题。此电压、电流以及功耗中的至少一项的变化被检测、遭受攻击的问题也可出现于密码运算之外的其它运算中。
82.为了解决相关技术中的问题,本公开实施例提供了一种伪数据处理与输出方法、装置、设备、介质以及处理器。
83.图1示出根据本公开一实施例的伪数据处理方法的实施场景的示例性示意图。
84.图1具体示出了例如算术逻辑单元(alu)的执行单元进行伪数据处理,从而进行功耗扰乱的实施场景的示例性示意图。
85.本领域普通技术人员可以理解,图1示例性示出了伪数据处理方法的实施场景,而不构成对本公开的限制。
86.在图1中,alu101在不执行有效操作的空闲状态时,获取伪数据进行加减法、逻辑与或以及移位等计算,得到伪输出数据113。伪输出数据113可以被抛弃,从而简化对伪输出数据113的处理。伪输出数据113也可以写入例如回收寄存器103的输出存储单元,从而模拟alu在执行有效操作时的有效输出数据回写过程。通过alu101在空闲状态时执行伪数据计算,使得alu101的功耗和执行有效操作时保持一致,从而避免alu101的功耗变化被外部检测而遭受攻击。
87.在本公开的实施例中,alu伪数据处理可以仅包括alu获取伪数据、计算伪数据得到伪输出数据113的过程,也可以包括获取伪数据、计算伪数据得到伪输出数据113、抛弃或者将伪输出数据113写入回收寄存器103的过程。
88.本领域普通技术人员可以理解,当多个例如alu的执行单元同时进行伪数据处理,而用于写入伪输出数据的回收寄存器不足时,也可将伪输出数据写入例如缓存(cache)的输出存储单元,或其它存储器件,本公开对此不作限定。
89.在本公开实施例中,为了对alu101的伪数据处理进行灵活控制,本实施例还公开了alu模式控制部件105和alu实时伪数据处理控制部件104。alu模式控制部件105、alu实时伪数据处理控制部件104以及选择器106属于alu控制单元114,用于对alu101进行控制。回收寄存器103可以位于寄存器堆102中,从而利用cpu的原有设计结构,简化设计。
90.在本公开实施例中,alu模式控制部件105中的“伪数据处理开关信息”、“输入常数信息”、“alu最大伪数据处理频率信息”以及“alu输入数据配置信息”构成“alu模式控制信息”,可以用于对算术逻辑部件101的静态配置控制。
91.在本公开实施例中,alu实时伪数据处理控制部件104中的“alu伪数据处理使能信息”、“alu源数据选择信息”以及“第一随机数”构成“alu实时伪数据处理控制信息”,可以用于对算术逻辑部件101的动态实时伪数据处理控制。
92.在本公开实施例中,“alu模式控制信息”和“alu实时伪数据处理控制信息”构成“alu控制信息”。
93.在本公开实施例中,下面详细陈述“alu模式控制信息”中各部分的作用。
94.在本公开实施例中,“伪数据处理开关信息”用于对alu101是否进行伪数据处理进行整体开关控制。例如,当“伪数据处理开关信息”的第1比特为1时,alu101在空闲状态时可以处理伪数据;当“伪数据处理开关信息”的第1比特为0时,alu101关闭伪数据处理功能。alu101在伪数据处理的过程中如果接收到有效输入数据,如果“伪数据处理开关信息”的第2比特为1,alu101可以强制中断alu伪数据处理的流水线,进行计算有效输入数据的有效操作;如果“伪数据处理开关信息”的第2比特为0,alu101可以等alu伪数据处理的流水线完成,再进行有效操作。通过这种方式,“伪数据处理开关信息”可以对alu101是否执行伪数据处理和如何退出伪数据处理进行灵活控制。
95.本领域普通技术人员可以理解,“伪数据处理开关信息”的具体取值也可以为其它值,本公开对此不作限定。
96.在本公开实施例中,“输入常数信息”可以作为alu101的伪数据处理的可能输入。“输入常数信息”具体取值可以是0x0、0xffffffff、0x55555555以及0xaaaaaaaa等,也可以
是其它数值。
97.在本公开实施例中,“alu输入数据配置信息”控制选择器106,在“输入常数信息”和“第一随机数”中选择一个,作为alu101的伪数据处理的输入。选择器106还可以选择有效数据111,作为alu101的有效操作的输入。
98.在本公开实施例中,“alu最大伪数据处理频率信息”用于限定alu101的最大伪数据处理频率信息,例如用比特数限定alu控制单元114向alu101发出alu伪数据处理请求的最大alu时钟周期。
99.在本公开实施例中,例如可以将“alu最大伪数据处理频率信息”设定为12比特的0xfff,即最多每4096个alu时钟周期向算术逻辑部件101发出alu伪数据处理请求。
100.在本公开实施例中,下面详细陈述“alu实时伪数据处理控制信息”中各部分的作用。
101.在本公开实施例中,“alu伪数据处理使能信息”根据alu101的当前状态,确定当前是否发出alu伪数据处理请求。
102.在本公开实施例中,“alu源数据选择信息”用于根据软件配置的“alu源数据配置”进行译码,实现硬件信号,以在“输入常数信息”和“第一随机数”中选择一个,作为alu101的伪数据处理的输入。将“输入常数信息”作为alu101的伪数据处理的输入,可以简化设计。将“第一随机数”作为alu101的伪数据处理的输入,可以更真实的模拟alu101的有效操作。
103.在本公开实施例中,“第一随机数”可以设置为alu101的伪数据处理的输入。对于alu101的多次伪数据处理,“第一随机数”可以不同,从而保证alu101的逻辑门在进行伪数据处理时始终处于翻转状态,维持alu101的功耗与执行有效操作时一致。
104.在本公开实施例中,下述示例性具体陈述alu控制单元114控制alu101进行alu伪数据处理的过程。
105.在本公开实施例中,“伪数据处理开关信息”的第1比特设置为1,alu101在空闲状态时可以处理伪数据;“伪数据处理开关信息”的第2比特设置为1,alu101在伪数据处理过程中如果接收到有效输入数据,可以强制中断alu伪数据处理的流水线,进行计算有效输入数据111的有效操作。
106.alu控制单元114从alu101获取alu状态107。当alu控制单元114判断alu状态107为空闲状态,即alu101没有有效操作时,设置“alu伪数据使能信息”为1。依据“alu输入数据配置信息”,通过选择器控制信号108控制选择器106,选择第一随机数109和输入常数信息110中的一项,作为伪数据输入alu101。例如,当“alu输入数据配置信息”为1时,选择第一随机数109作为伪数据;当“alu输入数据配置信息”为0时,选择输入常数信息110作为伪数据。alu控制单元114将“第二随机数”和例如12比特的0xfff“alu最大伪数据处理频率信息”进行与运算,截取“第二随机数”的末12位作为“伪数据处理频率”。alu101的时钟计数器计数至“伪数据处理频率”时,alu控制单元114向alu101发送“伪数据处理请求”,并发送伪数据。
107.在本公开实施例中,alu101获得“伪数据处理请求”后,若仍旧处于空闲状态,则执行例如加减法、逻辑与或的算术逻辑运算,得到伪输出数据113。伪输出数据113可以抛弃,以降低实现复杂度。也可以将伪输出数据113写入例如回收寄存器103的输出存储单元,从而更加逼真地模拟有效数据操作的数据回写操作。回收寄存器103位于寄存器堆102中,以简化设计。当多个alu101同时进行伪数据处理,回收寄存器103容量不足时,也可以将cache
作为输出存储单元,用于写入伪输出数据113。
108.在本公开实施例中,alu101获取“伪数据处理请求”后,若已通过选择器106接收到有效输入数据111,处于非空闲状态,则忽略“伪数据处理请求”,执行有效操作,得到有效输出数据112。
109.图2示出根据本公开另一实施例的伪数据处理方法的实施场景的示例性示意图。
110.图2具体示出了针对alu、乘除法单元、寄存器堆以及存储器的伪数据处理方法的实施场景。
111.本领域普通技术人员可以理解,图2示例性示出了伪数据处理方法的实施场景,而不构成对本公开的限制。
112.图1中的执行单元仅包含alu101,图2中的执行单元225包括alu201、乘除法单元202、寄存器堆203以及存储器205。
113.图2中的控制单元225包括:模式控制部件211、实时伪数据处理控制部件210、第一选择器213、第二选择器214、第三选择器215以及第四选择器216。
114.模式控制部件211中的“alu最大伪数据处理频率信息”、“alu输入数据配置信息”、......、“输入常数信息”构成“模式控制信息”,可以用于对执行单元226的静态配置控制。实时伪数据处理控制部件210中的“alu伪数据处理使能信息”、“alu源数据选择信息”、......、“第一随机数”构成“实时伪数据处理控制信息”,可以用于对执行单元226的动态实时伪数据处理控制。
115.在本公开实施例中,alu201进行算术逻辑运算,乘除法单元202进行乘除法运算,寄存器堆203进行数据读写操作,存储器205进行数据读写操作。alu201、乘除法单元202、寄存器堆203以及存储器205可以分别独立地运行,分别独立地处于空闲状态而进行伪数据处理。
116.在本公开实施例中,存储器205可以是随机访问存储器(random access memory,ram),也可以是闪存flash等其它类型的存储器,本公开对此不作限定。
117.图2中的实施例基于图1的实施例扩展得到。为了说明书附图的简洁,图2和图1相比省略了部分连线。
118.本领域普通技术人员可以理解,图2中对alu、乘除法单元、寄存器堆以及存储器仅各示出了一个。而在实施例中,alu、乘除法单元、寄存器堆以及存储器均可以为多个。也可以实现为仅包括alu、乘除法单元、寄存器堆以及存储器中的一部分,例如仅包括alu、寄存器以及存储器,而不包括乘除法单元。本公开对此不作限定。
119.在本公开实施例中,下面详细陈述“模式控制信息”中各部分的作用。
120.在本公开实施例中,“伪数据处理开关信息”用于对执行单元226是否进行伪数据处理进行整体开关控制。例如,当“伪数据处理开关信息”的第1比特为1时,alu201、乘除法单元202、寄存器堆203以及存储器205中的任意一个在空闲状态时可以处理伪数据;当“伪数据处理开关信息”的第1比特为0时,执行单元226关闭伪数据处理功能。alu201、乘除法单元202、寄存器堆203以及存储器205中的任意一个在伪数据处理过程中如果接收到有效输入数据,如果“伪数据处理开关信息”的第2比特为1,可以强制中断伪数据处理的流水线,进行计算有效输入数据的有效操作;如果“伪数据处理开关信息”的第2比特为0,则可以等伪数据处理的流水线完成,再进行有效操作。通过这种方式,“伪数据处理开关信息”可以对执
行单元226是否执行伪数据处理和如何退出伪数据处理进行灵活控制。
121.本领域普通技术人员可以理解,“伪数据处理开关信息”除了对执行单元226进行整体控制,也可以分解为4个子信息,分别对alu201、乘除法单元202、寄存器堆203以及存储器205进行控制,本公开对此不作限定。“伪数据处理开关信息”的具体取值也可以为其它值,本公开对此不作限定。
122.在本公开实施例中,“输入常数信息”可以作为alu201、乘除法单元202、寄存器堆203以及存储器205的伪数据处理的可能输入。“输入常数信息”的具体取值可以是0x0、0xffffffff、0x55555555以及0xaaaaaaaa等,也可以是其它数值。
123.在本公开实施例中,“alu输入数据配置信息”控制第一选择器206,在“输入常数信息”和“第一随机数”中选择一个,作为alu201的伪数据处理的输入。选择器206还可以选择第一有效数据213,作为alu201的有效操作的输入。
124.在本公开实施例中,“alu最大伪数据处理频率信息”用于限定alu201的最大伪数据处理频率信息,例如用比特数限定控制单元225向alu201发出“alu伪数据处理请求”的最大alu时钟周期。
125.在本公开实施例中,图2中的“乘除法单元输入数据配置信息”、“乘除法单元最大伪数据处理频率信息”、......、“存储器最大伪数据处理频率信息”等分别用于控制乘除法单元202、寄存器堆203以及存储器205,控制方式与上述alu201相同,本公开对此不再赘述。
126.在本公开实施例中,下面详细陈述“实时伪数据处理控制信息”中各部分的作用。
127.在本公开实施例中,“第一随机数”可以设置为alu201、乘除法单元202、寄存器堆203以及存储器205的伪数据处理的输入。对于alu201、乘除法单元202、寄存器堆203以及存储器205的多次伪数据处理,“第一随机数”可以不同,从而保证alu201、乘除法单元202、寄存器堆203以及存储器205的逻辑门在进行伪数据处理时始终处于翻转状态,维持alu201、乘除法单元202、寄存器堆203以及存储器205的功耗与执行有效操作时一致,防止外部检测和攻击。
128.在本公开实施例中,“alu伪数据处理使能信息”根据alu201的当前状态,确定当前是否发出alu伪数据处理请求。
129.在本公开实施例中,“alu源数据选择信息”用于根据软件配置的“alu源数据配置”进行译码,实现硬件信号,以在“输入常数信息”和“第一随机数”中选择一个,作为alu201的伪数据处理的输入。将“输入常数信息”作为alu201的伪数据处理的输入,可以简化设计。将“第一随机数”作为alu201的伪数据处理的输入,可以更真实的模拟alu201的有效操作。
130.在本公开实施例中,图2中的“乘除法单元伪数据处理使能信息”、“乘除法单元源数据选择信息”、......、“存储器源数据选择信息”等分别用于控制乘除法单元202、寄存器堆203以及存储器205,控制方式与上述alu201相同,本公开对此不再赘述。
131.在本公开实施例中,下述示例性具体陈述alu控制单元225控制alu201进行alu伪数据处理的过程。
132.在本公开实施例中,“伪数据处理开关信息”的第1比特设置为1,alu201在空闲状态时可以处理伪数据;“伪数据处理开关信息”的第2比特设置为1,alu201在伪数据处理过程中如果接收到第一有效输入数据213,可以强制中断alu伪数据处理的流水线,进行计算第一有效输入数据213的有效操作。
133.控制单元225从alu201获取alu状态。当控制单元225判断alu状态为空闲状态,即alu201没有有效操作时,设置“alu伪数据使能信息”为1。依据“alu输入数据配置信息”,通过控制第一选择器206,选择“第一随机数”和“输入常数信息”中的一项,作为伪数据输入alu201。例如,当“alu输入数据配置信息”为1时,选择“第一随机数”作为伪数据;当“alu输入数据配置信息”为0时,选择“输入常数信息”作为伪数据。控制单元将“第二随机数”和例如12比特的0xfff“alu最大伪数据处理频率信息”进行与运算,截取“第二随机数”的末12位作为“alu伪数据处理频率”。alu201的时钟计数器计数至“alu伪数据处理频率”时,控制单元225向alu201发送“alu伪数据处理请求”,并发送伪数据。
134.在本公开实施例中,alu201获得“alu伪数据处理请求”后,若仍旧处于空闲状态,则执行例如加减法、逻辑与或的算术逻辑运算,得到第一伪输出数据218。第一伪输出数据218可以抛弃,以降低实现复杂度。也可以将第一伪输出数据218经由第五选择器212、第三选择器208写入例如回收寄存器204的输出存储单元,从而更加逼真地模拟有效数据操作的数据回写操作。回收寄存器204可以位于寄存器堆203中,以利用cpu的原有结构特点,简化设计。当多个alu、乘除法单元以及存储器同时进行伪数据处理,回收寄存器204容量不足时,也可以将cache作为输出存储单元,用于写入伪输出数据。
135.在本公开实施例中,alu201获取“alu伪数据处理请求”后,若已通过第一选择器206接收到第一有效输入数据213,处于非空闲状态,则忽略“alu伪数据处理请求”,执行有效操作,得到第一有效输出数据217。
136.如图2所示,本领域普通技术人员可以理解,控制单元225从乘除法单元202、寄存器堆203以及存储器205获取状态,并控制乘除法单元202、寄存器堆203以及存储器205分别进行伪数据处理的乘除法运算、数据读写操作,本公开在此不再赘述。
137.在本公开实施例中,alu201、乘除法单元202、寄存器堆203以及存储器205中的任意两个执行单元进行伪数据处理时,输入的伪数据可以相同,例如都是输入常数信息或者都是第一随机数;也可以不同,例如一个使用输入常数信息作为伪数据输入,另一个使用第一随机数作为伪数据输入。两个执行单元的输入伪数据相同可以简化设计,而两个执行单元的输入伪数据不同可以提供更多的灵活性。
138.本领域普通技术人员可以理解,在一个cpu中可以有多个alu201,和/或多个乘除法单元202。多个alu201在执行伪数据处理时,输入的伪数据也可以相同,或不同。多个乘除法单元202在执行伪数据处理时,输入的伪数据也可以相同,或不同。对多个寄存器堆203、存储器205的情形,依此类推。本公开对此不再赘述。
139.在本公开的实施中,当alu201进行伪数据处理时,可以从第一随机数和输入常数信息中选择一项,作为伪数据,并作为alu201的输入。
140.当乘除法单元202进行伪数据处理时,可以从第一随机数和输入常数信息中选择一项,作为伪数据,并作为乘除法单元202的输入。
141.当寄存器堆203进行伪数据处理时,可以从伪数据、第一伪输出数据218、第二伪输出数据220、第三伪输出数据222以及第四伪输出数据224中选择一项,作为寄存器堆203的输入。
142.当存储器205进行伪数据处理时,可以从伪数据、第三伪输出数据222中选择一项,作为存储器205的输入。
143.在本公开的实施中,alu201、乘除法单元202的数量可以较多。alu201、乘除法单元202在进行伪数据处理时,仅以伪数据作为输入,而不以寄存器堆203的第三伪输出数据222、存储器205的第四伪输出数据224作为输入,可以避免大量的alu201、乘除法单元202进行并发伪数据处理时,对寄存器堆203、存储器205的数据总线造成过大压力,防止在寄存器堆203、存储器205的数据总线处形成瓶颈,在简化设计的同时提高处理效率。
144.在本公开的实施中,执行单元226除了包括alu201、乘除法单元202、寄存器堆203以及存储器205,还可以包括其它形式,例如gpu中的图像处理单元、tpu中的张量计算单元等,本公开对此不作限定。
145.上述cpu、单片机、arm处理器、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、图像处理器(graphic processing unit,gpu)、张量处理器(tensor processing unit,tpu)、网络处理器(network processing unit,npu)以及专用集成电路(application specific integrated circuit,asic)等数字运算器件可实现为芯片形式。
146.图3示出根据本公开一实施例的伪数据处理方法的流程图。
147.如图3所示,伪数据处理方法包括步骤s301、s302。
148.在步骤s301中,执行单元获取伪数据。
149.在步骤s302中,在执行单元的状态为空闲状态的条件下,执行单元根据输入的伪数据,执行特定操作,得到伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
150.步骤s301是伪数据获取步骤,步骤s302是伪数据操作步骤。
151.如前对图2的陈述,例如alu201、乘除法单元202、寄存器堆203以及存储器205的执行单元226获取伪数据后,在空闲状态下对伪数据分别进行算术逻辑运算、乘除法运算、寄存器堆读写操作以及存储器读写操作,得到伪输出数据。
152.根据本公开的实施例,通过伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在执行单元的状态为空闲状态的条件下,执行单元根据获取的伪数据,执行特定操作,得到伪输出数据,伪数据包括以下的至少一项:输入常数信息、第一随机数,从而用伪数据处理模拟有效操作,防止执行单元在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。输入常数信息作为伪数据易于实现,第一随机数作为伪数据可以更真实的模拟有效操作。
153.在本公开实施例中,如图2所示,执行单元包括以下的至少一项:alu201、乘除法单元202、寄存器堆203以及存储器205。
154.根据本公开的实施例,通过执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器,从而使得多种执行单元均可进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
155.根据本公开的实施例,通过在执行单元是算术逻辑单元的条件下,特定操作是算术逻辑运算操作;和/或在执行单元是乘除法单元的条件下,特定操作是乘除运算操作;和/或在执行单元是寄存器堆的条件下,特定操作是寄存器堆读写操作;和/或在执行单元是存储器的条件下,特定操作是存储器读写操作,从而使得伪数据处理符合例如cpu的数字运算器件的结构特点,多种执行单元均可进行伪数据处理,防止在空闲状态下的电流、电压、功
耗发生变化,而被外部检测,遭受攻击。
156.在本公开实施例中,如图2所示,算术逻辑单元201、乘除法单元202、寄存器堆203以及存储器205可以分别独立地处于空闲状态,从而独立地进行伪数据处理。
157.根据本公开的实施例,通过算术逻辑单元、乘除法单元、寄存器堆以及存储器相互独立地执行伪数据获取步骤和伪数据操作步骤,从而使得伪数据处理符合例如cpu的数字运算器件的结构特点,多种执行单元均可独立进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
158.在本公开实施例中,当例如alu的执行单元执行伪数据获取步骤和伪数据操作步骤时,alu的例如电流、电压、功耗的物理特征与空闲状态不同,而与处理有效数据时的非空闲状态的物理特征一致,从而防止外部检测、受到攻击。进而,包含例如alu的执行单元的芯片的物理特征也与空闲状态不同,而与非空闲状态一致,从而防止外部检测、受到攻击。
159.根据本公开的实施例,通过在执行单元执行伪数据获取步骤和伪数据操作步骤时,包含执行单元的芯片的物理特征与执行单元处于空闲状态时的物理特征不同,从而防止外部检测、受到攻击。
160.图4示出根据本公开一实施例的伪数据处理方法的流程图。
161.如图4所示,伪数据处理方法包括:步骤s301、s302以及s401。
162.图4中的步骤s301、s302与图3相同。
163.在步骤s401中,执行单元将伪输出数据写入输出存储单元,或丢弃伪输出数据。
164.步骤s401是伪输出数据处理步骤。
165.伪数据包括以下的至少一项:输入常数信息、第一随机数。
166.如前对图1和图2的陈述,例如alu的执行单元将伪输出数据写入例如回收寄存器的存储单元,从而模拟有效操作中的输出数据回写操作,进一步保证伪数据操作产生的功耗和有效操作一致,防止被检测和攻击。伪输出数据也可以被直接丢弃而不写入存储单元,从而简化设计。而且,输入常数信息作为伪数据易于实现,第一随机数作为伪数据可以更真实的模拟有效操作。
167.如前所述,输出存储单元也可以采用cache等其它方式实现,从而解决多个alu、乘除法单元等同时进行伪数据操作而导致的回收寄存器不足问题。
168.根据本公开的实施例,通过伪数据数据处理方法,其特征在于,包括:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在所述执行单元的状态为空闲状态的条件下,所述执行单元根据获取的所述伪数据,执行特定操作,得到伪输出数据;伪输出数据处理步骤,所述执行单元将所述伪输出数据写入输出存储单元,或丢弃所述伪输出数据,从而更真实地模拟有效操作,或简化设计。
169.根据本公开的实施例,通过执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器,从而使得多种执行单元均可进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
170.在本公开实施例中,使用回收寄存器作为输出存储单元,从而保证输出存储单元的工作频率与alu、乘除法单元的工作频率基本一致,保证伪输出数据的回写效率,真实模拟有效操作。
171.根据本公开的实施例,通过输出存储单元包括:回收寄存器,从而提高伪输出数据
的回写效率,真实模拟有效操作。
172.在本公开实施例中,回收寄存器可以位于寄存器堆中,从而充分利用例如cpu的数字运算器件的原有设计结构,简化设计。
173.根据本公开的实施例,通过回收寄存器位于寄存器堆中,从而简化设计。
174.在本公开实施例中,如前述对图2的陈述,算术逻辑单元201、乘除法单元202、寄存器堆203以及存储器205可以相互独立地处于空闲状态,进而相互独立地进行伪数据获取、伪数据操作和伪输出数据处理。
175.根据本公开的实施例,通过算术逻辑单元、乘除法单元、寄存器堆以及存储器相互独立地执行伪数据获取步骤,伪数据操作步骤和伪输出数据处理步骤,从而更真实地模拟有效操作,防止外部检测和攻击。
176.在本公开实施例中,如前对图1、图2的陈述,在例如alu的执行单元执行伪数据获取步骤、伪数据操作步骤以及伪输出数据处理步骤时,执行单元的例如电压、电流、功耗的物理特征与空闲状态不同,而与有效操作的非空闲状态一致,进而相应影响到芯片的物理状态,从而防止外部检测,防止攻击。
177.根据本公开的实施例,通过在执行单元执行伪数据获取步骤、伪数据操作步骤以及伪输出数据处理步骤时,包含执行单元的芯片的物理特征与执行单元处于空闲状态时的物理特征不同,从而防止外部检测,防止攻击。
178.图5示出根据本公开另一实施例的伪数据处理方法的流程图。
179.如图5所示,伪数据处理方法除了包括和图4相同的步骤s301、s302以及s401,还包括步骤s501、s502。
180.在步骤s501中,控制单元获取执行单元的状态。
181.在步骤s502中,在执行单元的状态为空闲状态的条件下,控制单元基于控制信息,向执行单元发送伪数据处理请求。
182.步骤s501是状态获取步骤,步骤s502是伪数据处理请求发送步骤。
183.在本公开实施例中,如前对图2的陈述,在例如alu201的执行单元执行伪数据获取步骤之前,控制单元225获取alu201的状态,在alu201的状态为空闲状态的条件下,控制单元225基于实时伪数据处理控制部件210、模式控制部件211中的控制信息,向alu201发送alu伪数据处理请求。
184.根据本公开的实施例,通过在伪数据获取步骤之前,还包括:状态获取步骤,控制单元获取执行单元的状态;伪数据处理请求发送步骤,在执行单元的状态为空闲状态的条件下,控制单元基于控制信息,向执行单元发送伪数据处理请求,从而实现控制单元对执行单元的状态检测和灵活控制。
185.在本公开实施例中,如前对图2的陈述,控制信息包括:模式控制部件211中的“模式控制信息”和实时伪数据处理控制部件210中的“实时伪数据处理控制信息”。“模式控制信息”可以用于对执行单元226的静态配置控制,“实时伪数据处理控制信息”可以用于对执行单元226的动态实时伪数据处理控制。
186.根据本公开的实施例,通过控制信息包括:模式控制信息、实时伪数据处理控制信息,从而对执行单元进行灵活控制。
187.在本公开实施例中,如前对图2的陈述,“模式控制信息”包括以下的至少一项:伪
数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;“实时伪数据处理控制信息”包括以下的至少一项:伪数据处理使能信息、源数据选择信息以及第一随机数。
188.根据本公开的实施例,通过模式控制信息包括以下的至少一项:伪数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;和/或实时伪数据处理控制信息包括以下的至少一项:伪数据处理使能信息、源数据选择信息以及第一随机数,从而对执行单元的伪数据处理进行精确控制。
189.在本公开实施例中,如前对图2的陈述,“伪数据处理开关信息”用于对执行单元226是否进行伪数据处理进行整体开关控制。例如,当“伪数据处理开关信息”的第1比特为1时,alu201、乘除法单元202、寄存器堆203以及存储器205中的任意一个在空闲状态时可以处理伪数据;当“伪数据处理开关信息”的第1比特为0时,执行单元226关闭伪数据处理功能。alu201、乘除法单元202、寄存器堆203以及存储器205中的任意一个在伪数据处理过程中如果接收到有效输入数据,如果“伪数据处理开关信息”的第2比特为1,可以强制中断伪数据处理的流水线,进行计算有效输入数据的有效操作;如果“伪数据处理开关信息”的第2比特为0,则可以等伪数据处理的流水线完成,再进行有效操作。通过这种方式,“伪数据处理开关信息”可以对执行单元226是否执行伪数据处理和如何退出伪数据处理进行灵活控制。
190.本领域普通技术人员可以理解,“伪数据处理开关信息”除了对执行单元226进行整体控制,也可以分解为4个子信息,分别对alu201、乘除法单元202、寄存器堆203以及存储器205进行控制,本公开对此不作限定。“伪数据处理开关信息”的具体取值也可以为其它值,本公开对此不作限定。
191.根据本公开的实施例,通过伪数据处理开关信息用于:控制执行单元开启或停止伪数据获取步骤、伪数据操作步骤以及伪输出数据处理步骤;和/或控制执行单元停止伪数据获取步骤、伪数据操作步骤以及伪输出数据处理步骤的方式,从而对执行单元的伪数据处理开启、关闭以及退出伪数据处理的方式进行灵活控制。
192.在本公开实施例中,如前对图2的陈述,控制单元可以使用例如“alu输入数据配置信息”的“输入数据配置信息”,在“输入常数信息”和“第一随机数”中选择一个,作为伪数据处理的输入。将“输入常数信息”作为伪数据处理的输入,可以简化设计。将“第一随机数”作为伪数据处理的输入,可以更真实的模拟alu的有效操作。
193.根据本公开的实施例,通过控制单元基于输入数据配置信息,选择输入常数信息和第一随机数中的一项,作为伪数据获取步骤中的伪数据,从而灵活选择数据作为伪数据处理的输入。
194.在本公开实施例中,例如“alu最大伪数据处理频率信息”的“最大伪数据处理频率信息”用于限定例如alu201的执行单元的最大伪数据处理频率,例如用比特数限定控制单元225向alu201发出alu伪数据处理请求的最大alu时钟周期。
195.控制单元225将“第二随机数”和例如12比特的0xfff“alu最大伪数据处理频率信息”进行与运算,截取“第二随机数”的末12位作为“alu伪数据处理频率”。alu201的时钟计数器计数至“alu伪数据处理频率”时,控制单元225向alu201发送“alu伪数据处理请求”,并发送伪数据。
196.根据本公开的实施例,通过控制单元根据所述最大伪数据处理频率信息和第二随机数,确定所述执行单元的伪数据处理频率,从而使得伪数据处理频率也随机化,模拟有效处理的真实运行场景。
197.在本公开实施例中,如前对图2的陈述,alu201获得“alu伪数据处理请求”后,若仍旧处于空闲状态,则执行例如加减法、逻辑与或的算术逻辑运算,得到第一伪输出数据218。
198.根据本公开的实施例,通过伪数据操作步骤包括:执行单元在接收到伪数据处理请求后,在执行单元处于空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输出数据,从而通过二次空闲状态检测的方式,防止由于控制单元发出伪数据处理请求后,执行单元处于非空闲状态而产生冲突,无法执行伪数据处理。
199.在本公开实施例中,如前对图2的陈述,alu201获取“alu伪数据处理请求”后,若已通过第一选择器206接收到第一有效输入数据213,处于非空闲状态,则忽略“alu伪数据处理请求”,执行有效操作,得到第一有效输出数据217。
200.伪数据操作步骤还包括:执行单元在接收到伪数据处理请求后,在执行单元处于非空闲状态的条件下,忽略伪数据处理请求,执行有效操作,从而使得执行单元在接收到伪数据处理请求后,还可以优先处理已经接收到的有效输入数据,防止误进入伪数据处理。
201.在本公开实施例中,如前对图2的陈述,当alu201进行伪数据处理时,可以从第一随机数和输入常数信息中选择一项,作为伪数据,并作为alu201的输入。
202.当乘除法单元202进行伪数据处理时,可以从第一随机数和输入常数信息中选择一项,作为伪数据,并作为乘除法单元202的输入。
203.当寄存器堆203进行伪数据处理时,可以从伪数据、第一伪输出数据218、第二伪输出数据220、第三伪输出数据222以及第四伪输出数据224中选择一项,作为寄存器堆203的输入。
204.当存储器205进行伪数据处理时,可以从伪数据、第三伪输出数据222中选择一项,作为存储器205的输入。
205.根据本公开的实施例,通过执行单元处于空闲状态的条件下,在执行单元是算术逻辑单元的条件下,执行单元的输入数据是伪数据;和/或在执行单元是乘除法单元的条件下,执行单元的输入数据是伪数据;和/或在执行单元是寄存器堆的条件下,执行单元的输入数据是以下各项中的一项:伪数据、算术逻辑单元的伪输出数据、乘除法单元伪输出数据、寄存器堆的伪输出数据以及存储器的伪输出数据;和/或在执行单元是存储器的条件下,执行单元的输入数据是以下各项中的一项:伪数据、寄存器堆的伪输出数据,从而防止在寄存器堆、存储器的数据总线处形成瓶颈,在简化设计的同时提高处理效率。
206.图6示出根据本公开一实施例的执行单元的结构框图。
207.如图6所示,执行单元600包括:伪数据获取模块601、伪数据操作模块602。
208.伪数据获取模块601,用于获取伪数据。
209.伪数据操作模块602,用于在执行单元的状态为空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输出数据。
210.伪数据包括以下的至少一项:输入常数信息、第一随机数。
211.根据本公开的实施例,通过伪数据获取模块,用于获取伪数据;伪数据操作模块,用于在执行单元的状态为空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输
出数据,伪数据包括以下的至少一项:输入常数信息、第一随机数,从而用伪数据处理模拟有效操作,防止执行单元在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。而且,输入常数信息作为伪数据时易于实现,第一随机数作为伪数据可以更真实的模拟有效操作。
212.根据本公开的实施例,通过执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器,从而使得多种执行单元均可进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
213.根据本公开的实施例,通过在执行单元是算术逻辑单元的条件下,特定操作是算术逻辑运算操作;和/或在执行单元是乘除法单元的条件下,特定操作是乘除运算操作;和/或在执行单元是寄存器堆的条件下,特定操作是寄存器堆读写操作;和/或在执行单元是存储器的条件下,特定操作是存储器读写操作,从而使得多种执行单元都可以进行伪数据处理,防止外部检测和被攻击。
214.根据本公开的实施例,通过算术逻辑单元、乘除法单元、寄存器堆以及存储器相互独立地运行,从而使得伪数据处理符合例如cpu的数字运算器件的结构特点,多种执行单元均可独立进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
215.根据本公开的实施例,通过在执行单元的伪数据获取模块和伪数据操作模块工作时,包含执行单元的芯片的物理特征与执行单元处于空闲状态时的物理特征不同,从而防止外部检测和攻击。
216.图7示出根据本公开另一实施例的执行单元的结构框图。
217.如图7所示,执行单元700除了包括和图6中相同的伪数据获取模块601、伪数据操作模块602,还包括:伪输出数据处理模块701。
218.伪输出数据处理模块701,用于将伪输出数据写入输出存储单元,或丢弃伪输出数据。
219.伪数据包括以下的至少一项:输入常数信息、第一随机数。
220.根据本公开的实施例,通过伪数据获取模块,用于获取伪数据;伪数据操作模块,用于在执行单元的状态为空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输出数据;伪输出数据处理模块,用于将伪输出数据写入输出存储单元,或丢弃伪输出数据,伪数据包括以下的至少一项:输入常数信息、第一随机数,从而模拟有效处理的真实功耗特性,防止外部检测和攻击。而且,输入常数信息作为伪数据时易于实现,第一随机数作为伪数据可以更真实的模拟有效操作。
221.根据本公开的实施例,通过执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器,从而使得多种执行单元均可进行伪数据处理,防止在空闲状态下的电流、电压、功耗发生变化,而被外部检测,遭受攻击。
222.根据本公开的实施例,通过输出存储单元包括:回收寄存器,从而提高处理效率。
223.根据本公开的实施例,通过回收寄存器位于寄存器堆中,从而使用例如cpu的数字运算器件的原有设计结构,简化设计。
224.根据本公开的实施例,通过算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地运行,从而对各执行单元进行伪数据处理的灵活控制,模拟有效处理
的真实过程,避免外部检测和攻击。
225.根据本公开的实施例,通过在执行单元的伪数据获取模块、伪数据操作模块以及伪输出数据处理模块工作时,包含执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同,从而避免外部检测和攻击。
226.图8示出根据本公开一实施例的伪数据处理装置的结构框图。
227.如图8所示,伪数据处理装置800包括:与图7相同的执行单元700和控制单元801。
228.控制单元801中包括:状态获取模块802、伪数据处理请求发送模块803。
229.状态获取模块802,用于获取执行单元的状态。
230.伪数据处理请求发送模块803,在执行单元的状态为空闲状态的条件下,基于控制信息,向执行单元发送伪数据处理请求。
231.根据本公开的实施例,通过伪数据处理装置,包括:执行单元;控制单元,其特征在于,包括:状态获取模块,用于获取执行单元的状态;伪数据处理请求发送模块,在执行单元的状态为空闲状态的条件下,基于控制信息,向执行单元发送伪数据处理请求,从而实现对执行单元的灵活控制,进行伪数据处理。
232.根据本公开的实施例,通过控制信息包括:模式控制信息、实时伪数据处理控制信息,从而实现对执行单元进行灵活控制。
233.根据本公开的实施例,通过模式控制信息包括以下的至少一项:伪数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;和/或实时伪数据处理控制信息包括以下的至少一项:扰乱使能信息、源数据选择信息以及第一随机数,从而实现对执行单元进行灵活控制。
234.根据本公开的实施例,通过伪数据处理开关信息用于:控制执行单元开启或停止状态获取模块、伪数据操作模块以及伪输出数据处理模块;和/或控制执行单元停止状态获取模块、伪数据操作模块以及伪输出数据处理模块的方式,从而对执行单元的伪数据处理开启、关闭以及退出伪数据处理的方式进行灵活控制。
235.根据本公开的实施例,通过伪数据处理请求发送模块基于输入数据配置信息,选择输入常数信息和第一随机数中的一项,作为伪数据获取步骤中的所述伪数据,从而灵活选择数据作为伪数据处理的输入。
236.根据本公开的实施例,通过伪数据处理请求发送模块根据最大伪数据处理频率信息和第二随机数,确定执行单元的伪数据处理频率,从而使得伪数据处理频率也随机化,模拟有效处理的真实运行场景。
237.根据本公开的实施例,通过所述执行单元用于:在接收到伪数据处理请求后,在执行单元处于空闲状态的条件下,根据获取的伪数据,执行特定操作,得到伪输出数据,从而通过二次空闲状态检测的方式,防止由于控制单元发出伪数据处理请求后,执行单元处于非空闲状态而产生冲突,无法执行伪数据处理。
238.根据本公开的实施例,通过执行单元还用于:在接收到伪数据处理请求后,在执行单元处于非空闲状态的条件下,忽略伪数据处理请求,执行有效操作,从而使得执行单元在接收到伪数据处理请求后,还可以优先处理已经接收到的有效输入数据,防止误进入伪数据处理。
239.根据本公开的实施例,通过在执行单元处于空闲状态的条件下,在执行单元是算
术逻辑单元的条件下,执行单元的输入数据是伪数据;和/或在执行单元是乘除法单元的条件下,执行单元的输入数据是伪数据;和/或在执行单元是寄存器堆的条件下,执行单元的输入数据是以下各项中的一项:伪数据、算术逻辑单元的伪输出数据、乘除法单元伪输出数据、寄存器堆的伪输出数据以及存储器的伪输出数据;和/或在执行单元是存储器的条件下,执行单元的输入数据是以下各项中的一项:伪数据、寄存器堆的伪输出数据,从而防止在寄存器堆、存储器的数据总线处形成瓶颈,在简化设计的同时提高处理效率。
240.图9示出根据本公开的实施例的电子设备的结构框图。
241.如图9所示,所述电子设备900包括存储器901和处理器902,其中,存储器901用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器902执行以实现以下步骤:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在所述执行单元的状态为空闲状态的条件下,所述执行单元根据获取的所述伪数据,执行特定操作,得到伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
242.在本公开的实施例中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
243.在本公开的实施例中,在所述执行单元是所述算术逻辑单元的条件下,所述特定操作是算术逻辑运算操作;和/或在所述执行单元是所述乘除法单元的条件下,所述特定操作是乘除运算操作;和/或在所述执行单元是所述寄存器堆的条件下,所述特定操作是寄存器堆读写操作;和/或在所述执行单元是所述存储器的条件下,所述特定操作是存储器读写操作。
244.在本公开的实施例中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地执行所述伪数据获取步骤和伪数据操作步骤。
245.在本公开的实施例中,在所述执行单元执行所述伪数据获取步骤和所述伪数据操作步骤时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
246.所述一条或多条计算机指令还被所述处理器902执行以实现以下步骤:伪数据获取步骤,执行单元获取伪数据;伪数据操作步骤,在所述执行单元的状态为空闲状态的条件下,所述执行单元根据获取的所述伪数据,执行特定操作,得到伪输出数据;伪输出数据处理步骤,所述执行单元将所述伪输出数据写入输出存储单元,或丢弃所述伪输出数据,所述伪数据包括以下的至少一项:输入常数信息、第一随机数。
247.在本公开的实施例中,所述执行单元包括以下的至少一项:算术逻辑单元、乘除法单元、寄存器堆以及存储器。
248.在本公开的实施例中,所述输出存储单元包括:回收寄存器。
249.在本公开的实施例中,所述回收寄存器位于所述寄存器堆中。
250.在本公开的实施例中,所述算术逻辑单元、所述乘除法单元、所述寄存器堆以及所述存储器相互独立地执行所述伪数据获取步骤,所述伪数据操作步骤和所述伪输出数据处理步骤。
251.在本公开的实施例中,在所述执行单元执行所述伪数据获取步骤,所述伪数据操作步骤和所述伪输出数据处理步骤时,包含所述执行单元的芯片的物理特征与所述执行单元处于空闲状态时的物理特征不同。
252.在本公开的实施例中,在所述伪数据获取步骤之前,还包括:状态获取步骤,控制单元获取所述执行单元的状态;伪数据处理请求发送步骤,在所述执行单元的状态为空闲状态的条件下,所述控制单元基于控制信息,向所述执行单元发送伪数据处理请求。
253.在本公开的实施例中,所述控制信息包括:模式控制信息、实时伪数据处理控制信息。
254.在本公开的实施例中,所述模式控制信息包括以下的至少一项:伪数据处理开关信息、输入常数信息、最大伪数据处理频率信息以及输入数据配置信息;和/或所述实时伪数据处理控制信息包括以下的至少一项:伪数据处理使能信息、源数据选择信息以及第一随机数。
255.在本公开的实施例中,所述伪数据处理开关信息用于:控制所述执行单元开启或停止所述伪数据获取步骤,所述伪数据操作步骤和所述伪输出数据处理步骤;和/或控制所述执行单元停止所述伪数据获取步骤,所述伪数据操作步骤和所述伪输出数据处理步骤的方式。
256.在本公开的实施例中,所述控制单元基于所述输入数据配置信息,选择所述输入常数信息和所述第一随机数中的一项,作为所述伪数据获取步骤中的所述伪数据。
257.在本公开的实施例中,所述控制单元根据所述最大伪数据处理频率信息和第二随机数,确定所述执行单元的伪数据处理频率。
258.在本公开的实施例中,所述伪数据操作步骤包括:所述执行单元在接收到所述伪数据处理请求后,在所述执行单元处于空闲状态的条件下,根据获取的伪数据,执行所述特定操作,得到伪输出数据。
259.在本公开的实施例中,所述伪数据操作步骤还包括:所述执行单元在接收到所述伪数据处理请求后,在所述执行单元处于非空闲状态的条件下,忽略所述伪数据处理请求,执行有效操作。
260.在本公开的实施例中,在所述执行单元处于空闲状态的条件下,在所述执行单元是算术逻辑单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是乘除法单元的条件下,所述执行单元的输入数据是伪数据;和/或在所述执行单元是寄存器堆的条件下,所述执行单元的输入数据是以下各项中的
一项:伪数据、所述算术逻辑单元的伪输出数据、所述乘除法单元伪输出数据、所述寄存器堆的伪输出数据以及所述存储器的伪输出数据;和/或在所述执行单元是存储器的条件下,所述执行单元的输入数据是以下各项中的一项:伪数据、所述寄存器堆的伪输出数据。
261.图10示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
262.如图10所示,计算机系统1000包括处理单元1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行上述实施例中的各种处理。在ram1003中,还存储有系统1000操作所需的各种程序和数据。处理单元1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
263.以下部件连接至i/o接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。其中,所述处理单元1001可实现为cpu、gpu、tpu、fpga、npu等处理单元。
264.特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该计算机程序产品可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。
265.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
266.描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
267.作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
268.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术
方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献