用于二进制标志确定的设备和方法

文档序号:703227 发布日期:2021-04-13 浏览:21次 >En<

阅读说明:本技术 用于二进制标志确定的设备和方法 (Apparatus and method for binary flag determination ) 是由 R·佩拉尔 F·罗曼 于 2020-10-10 设计创作,主要内容包括:本公开的各实施例涉及用于二进制标志确定的设备和方法。一种用于确定第一二进制数据的进位数字指示符位的实施例方法,包括用于通过掩蔽操作而被掩蔽的第一二进制数据的处理的步骤,并且不包括第一二进制数据的任何处理步骤。(Embodiments of the present disclosure relate to an apparatus and method for binary flag determination. An embodiment method for determining a carry digit indicator bit of a first binary data includes steps for processing of the first binary data masked by a masking operation and does not include any processing steps of the first binary data.)

用于二进制标志确定的设备和方法

相关申请的交叉引用

本申请要求于2019年10月11日提交的法国临时申请号1911347的权益,该申请通过引用并入本文。

技术领域

本公开总体上涉及电子系统和电路,并且更具体地涉及处理器和相关联的方法。本公开更具体地涉及被配置为处理掩蔽数据的处理器及其操作方法。

背景技术

处理器是存在于许多电子系统和电路中的电子组件,处理器被配置为通过执行来自计算机程序的命令和指令来处理数据。

在一些情况下,处理器可能必须处理机密数据。这些机密数据通常例如通过掩蔽被加密。

期望能够至少部分地改进已知处理器的某些方面。

发明内容

在本领域中需要更可靠的处理器。

在本领域中需要被配置为处理掩蔽数据的处理器。

在本领域中需要被配置为处理掩蔽数据而不实施这些数据的揭露操作的处理器。

一个实施例解决了已知处理器的缺点中的全部缺点或一些缺点。

一个实施例提供了一种用于确定第一二进制数据的进位数字指示符位的方法,包括用于通过掩蔽操作而被掩蔽的二进制数据的处理的步骤,并且不包括第一数据的任何处理步骤。

根据一个实施例,第一数据在确定期间不被揭露。

根据一个实施例,通过执行第二掩蔽数据和第三掩蔽数据的相加来获得第一数据。

根据一个实施例,被掩蔽的数据通过向要被掩蔽的数据添加掩码来进行掩蔽。

根据一个实施例,进位数字指示符位由以下等效公式提供:

Flag_C=CD1_M xor CD2_M xor CADD_D_M xor CADD_M xor CD_MD

Flag_C=CD1_M+CD2_M+CADD_D_M-CADD_M-CD_M

其中:

xor表示异或逻辑运算;

“+”表示加法运算;

“-”表示减法运算;

CD1_M表示在得到第二掩蔽数据的掩蔽操作期间能够出现的进位数字;

CD2_M表示在得到第三掩蔽数据的掩蔽操作期间能够出现的进位数字;

CADD_D_M表示在第二掩蔽数据和第三掩蔽数据的相加操作期间能够出现的进位数字;

CADD_MD表示在第二掩码和第三掩码的添加操作期间能够出现的进位数字;以及

CD_M表示在得到第一掩蔽数据的掩蔽操作期间能够出现的进位数字。

另一个实施例提供一种电路,该电路被配置为执行前述方法。

根据一个实施例,该电路包括三个比较器。

根据一个实施例,该电路还包括实施异或类型的逻辑门的一个电路。

根据一个实施例,实施异或类型的逻辑门的电路包括五个输入。

附图说明

在下面通过示例而非限制的方式给出的对特定实施例的描述中,将参考附图,对上述特征和优点以及其他特征和优点进行详细描述,其中:

图1示意性地并且以框图的形式示出了处理器的架构的一部分;

图2示意性地并且以框图的形式示出了图1的处理器的电路的一个实施例;

图3示意性地并且以框图的形式示出了图1的处理器的另一个电路的一个实施例;以及

图4示意性地并且以框图的形式示出了图1的处理器的一个实施例的详细示例。

具体实施方式

在各个附图中,相似的特征已经由相似的附图标记指定。特别地,在各个实施例之间共有的结构和/或功能特征可以具有相同的附图标记并且可以布置相同的结构、尺寸和材料特性。

为了清楚起见,仅图示和详细描述了对理解本文描述的实施例有用的操作和元件。这里将不公开处理器的完整操作,下面公开的实施例与处理器的通常操作方法中的大部分操作方法兼容。

除非另有指示,否则当提及连接在一起的两个元件时,这表示没有导体以外的任何中间元件的直接连接;并且当提及耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。

在以下公开中,除非另有指示,否则当提及绝对位置修饰词(诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等)或相对位置修饰词(诸如,术语“上方”、“下方”、“上部”、“下部”等)时,或者当提及定向的修饰词(诸如,“水平”、“垂直”等)时,指的是图中所示的定向。

除非另有指定,否则表述“约”、“近似”、“基本”和“大约”表示在10%以内,优选在5%以内。

在本公开的其余部分中,数据是二进制数据,即,每个数据与包括至少一位(优选地包括一位以上)的二进制字相对应。

图1示意性地并且以框图的形式示出了处理器10(CPU)的一个实施例的架构的一部分。

处理器10是被配置为处理掩蔽数据及其掩码的处理器。处理器10包括算术和逻辑单元100(ALU),算术和逻辑单元100也被配置为处理掩蔽数据及其掩码。更具体地,处理器100接收被掩蔽的输入数据Data_In及其掩码Mask_In作为输入,并且提供被掩蔽的输出数据Data_Out及其掩码Mask_Out作为输出。

通过实施算术类型的掩蔽,分别利用掩码Mask_In和Mask_Out来分别掩蔽输入数据Data_In和输出数据Data_Out。在这里描述的情况下,算术掩蔽是将掩码添加到要被掩蔽的数据的附加掩蔽。掩码和要被掩蔽的数据是相等大小的二进制字。更具体地,通过以下公式给出掩蔽数据A_M:

A_M=(A+MA)mod2n

其中:

A表示要被掩蔽的数据;

MA表示掩码;

“+”表示加法运算;

“mod”表示取模运算;以及

n是构成要被掩蔽的数据A、掩码MA和掩蔽数据A_M的位的数目。

单元100被配置为进一步接收操作代码Opcode,操作代码Opcode解释要被应用于均包括被掩蔽的输入数据Data_In及其掩码Mask_In的对的处理。操作代码Opcode指示要被应用于被掩蔽的输入数据Data_In及其掩码Mask_In的不同操作或一组不同操作,以便获得被掩蔽的输出数据Data_Out及其掩码Mask_Out。更具体地,操作代码是一组指令,该一组指令限定要被应用于输入数据Data_In及其掩码Mask_In的算术和/或逻辑运算或一组算术和/或逻辑运算。

为了实施这些操作代码,单元100包括被配置为实施各种算术或逻辑运算的一个或多个(优选地多个)电路101(OP)。电路101被配置为根据由操作代码Opcode限定的一组指令来进行选择和使用,该操作代码Opcode由单元100接收。作为一个示例,电路101被配置为实施算术运算(诸如加法、乘法、互补计算等)和/或逻辑运算(诸如,与运算、或运算,异或运算(XOR)等)。可以并联或串联地实施多个电路101,以便执行操作代码Opcode。因此,每个电路101被配置为接收被掩蔽的输入数据Data_In及其掩码Mask_In和/或与其他电路101的输出数据及其掩码相对应的、中间的被掩蔽的输出数据Data_Int及其掩码Mask_Int。

单元100还包括用于生成指示符位或标志位的电路103(FL)。每个电路103耦合到电路101中的一个电路101。电路103被配置为接收掩蔽数据(被电路101接收作为输入)及其掩码,并且接收由电路101提供作为输出的数据及其掩码,作为输入。因此,在关于图1公开的示例中,电路103被配置为接收掩蔽数据Data_In及其掩码Mask_In(图1中未示出),并且接收中间输出数据Data_Int及其掩码Mask_Int。电路103提供指示符位作为输出。更具体地,电路103被配置为提供:

符号指示符位Flag_N;

进位数字指示符位Flag_C;

空值的指示符位Flag_Z;以及

溢出指示符位Flag_V。

根据一种变型,单元100的电路103的某些部分可以由多个电路101共享。

当从其计算的数据为负数时,符号指示符位Flag_N是等于“1”的位,并且否则等于“0”。结合图2公开了一种被配置为计算指示符位Flag_N的示例性电路。

当从其计算的数据包括进位数字时,进位数字指示符位Flag_C是等于“1”的位,并且否则等于“0”。结合图3公开了一种被配置为计算进位数字指示符位Flag_C的示例性电路。

当从其计算的数据等于零时,空值的指示符位Flag_Z是等于“1”的位,并且否则等于“0”。

当从其计算的数据是太大而不能由从其计算的数据的位的数目表示的数时,溢出指示符位Flag_V是等于“1”的位,否则等于“0”。

根据一个实施例,指示符位Flag_N、Flag_C、Flag_Z和Flag_V在每次使用电路101时被生成。根据一个变体,针对电路101的几种用途或另一种类型的电路101,仅生成指示符位Flag_N、Flag_C、Flag_Z和Flag_V中的一些。

图2示意性地并且以框图的形式示出了电路20(Flag_N)的一个实施例,电路20(Flag_N)被配置为计算关于图1公开的符号指示符位Flag_N。

电路20接收掩蔽数据B_M及其掩码MB作为输入,数据B_M从数据B获得。数据B_M和掩码MB是包括n位的二进制字,n是自然整数。下文将使用以下标记:

P[m;k]指定从二进制字P的排序k到排序m的一组位,m和k是小于或等于n的自然整数;以及

P[m]指定二进制字P的排序m的位。

如关于图1所公开的,在从其计算的数据(即这里的数据B)表示负数时,符号指示符位Flag_N是等于“1”的位,并且否则等于“0”。按照惯例,表示负数的二进制字的最高有效位等于“1”。根据一个实施例,当以下条件被满足时,掩蔽数据B_M为负:

(B_M[n-1;0]+CB_M*2n)≥(MB[n-1;0]+2n-1)

其中CB_M表示在得到掩蔽数据B_M的掩蔽操作期间能够出现的进位数字。

当满足以下条件时,进位数字CB_M等于“1”,并且否则等于“0”:

B_M[n-1;0]<MB[n-1;0]

结合图2公开的电路的一个优点在于,它使得可以提供掩蔽数据的符号指示符位Flag_N而不必揭露该数据。

图3示意性地并且以框图的形式示出了电路30(Flag_C)的一个实施例,电路30(Flag_C)被配置为计算关于图1公开的进位数字指示符位Flag_C。

电路30是更具体地属于结合图1公开的电路103的电路,该电路30与在两个掩蔽数据之间实施加法运算的电路101相关联。更具体地,电路101的输出数据D_M及其掩码MD由以下公式给出:

其中:

D1_M和D2_M表示在掩蔽操作之后的两个数据D1和D2;以及MD1和MD2表示被掩蔽的数据D1_M和D2_M的掩码。

如关于图1所公开的,当从其计算的数据包括进位数字时,进位数字指示符位Flag_C是等于“1”的位,并且否则等于“0”。进位数字指示符位Flag_C更具体地由以下等效公式给出:

Flag_C=CD1_M xor CD2_M xor CADD_D_M xor CADD_MD xor CD_M

Flag_C=CD1_M+CD2_M+CADD_D_M-CADD_MD-CD_M

其中:

xor表示异或逻辑运算;

CD1_M表示在加法掩蔽操作期间能够出现的进位数字,该加法掩蔽操作利用掩码MD1得到掩蔽数据D1_M;

CD2_M表示在加法掩蔽操作期间能够出现的进位数字,该加法掩蔽操作利用掩码MD2得到掩蔽数据D2_M;

CADD_D_M表示在两个掩蔽数据D1_M和D2_M之间进行加法运算期间能够出现的进位数字;

CADD_MD表示在两个掩码MD1和MD2之间进行加法运算期间能够出现的进位数字;以及

CD_M表示在加法掩蔽操作期间能够出现的进位数字,该加法掩蔽操作利用掩码MD得到掩蔽数据D_M。

进位数字CD1_M、CD2_M和CD_M是以与如结合图2公开的获得进位数字CB_M的方式相同的方式,通过将其各自关联的掩蔽数据与其掩码进行比较来获得的。

当以下条件被满足时,进位数字CADD_D_M等于“1”:

D_M[n-1;0]<(D1_M[n-1;0]+D2_M[n-1;0])mod2n

否则,进位数字CADD_D_M等于“0”。进位数字CADD_D_M也是由二进制字D1_M[n-1;0]和D2_M[n-1;0]的相加而得到的排序n的位。

当以下条件被满足时,进位数字CADD_MD等于“1”:

MD[n-1;0]<(MD1[n-1;0]+MD2[n-1;0])mod2n

否则,进位数字CADD_MD等于“0”。进位数字CADD_MD也是由二进制字MD1[n-1;0]和MD2[n-1;0]的相加而得到的排序n的位。

结合图3公开的电路30的一个优点在于,它不使用掩蔽数据D_M、D1_M和D2_M的任何揭露操作来计算进位数字指示符位Flag_C。

图4示意性地并且以框图的形式示出了与电路101相关联的电路103的一个实施例的更详细的示例。

电路101是被配置为在两个掩蔽数据E_M和F_M与它们的掩码ME和MF之间实施加法或减法运算的电路,以提供掩蔽数据G_M及其掩码MG作为输出。掩蔽数据E_M、F_M、G_M分别是分别利用掩码ME、MF、MG,分别对数据E、F、G进行加法掩蔽的结果。在加法的情况下,掩蔽数据G_M及其掩码MG由以下公式(A)给出:

(A)

在减法的情况下,掩蔽数据G_M及其掩码MG由以下公式(B)给出:

(B)

其中!X指定二进制字X的1的补码。

电路101包括两个加法器电路1011和1012,并且包括两个反相器电路1013和1014。作为示例,反相器电路1013和1014是异或逻辑电路,其在减法运算的情况下被用作反相器,或者在加法运算的情况下被用作跟随器。

逐位加法电路1011是包括至少三个输入和至少两个输出的电路。电路1011接收掩码ME、从掩码M修改的掩码MF’以及操作信息ADD_SUB作为输入。作为一个示例,操作信息ADD_SUB在加法的情况下等于“0”,并且在减法的情况下等于“1”。电路1011提供掩码MG和进位数字C1011作为输出。

加法电路1012是包括至少三个输入和至少两个输出的电路。电路1012接收掩蔽数据E_M、从掩蔽数据F_M修改的掩蔽数据F_M’以及操作信息ADD_SUB作为输入。电路1012提供掩码MG和进位数字C1012作为输出。

反相器电路1013使得可以根据操作信息ADD_SUB将掩码MF修改为掩码MF’。

反相器电路1014使得可以根据操作信息ADD_SUB将掩蔽数据F_M修改为掩蔽数据F_M’。

电路101的操作如下。当请求加法运算时,操作信息ADD_SUB等于“0”,并且当请求减法运算时,操作信息ADD_SUB等于“1”。

当请求加法运算时,反相器电路1013和1014看到操作信息ADD_SUB等于“0”,这向它们指示,不要求它们反转其作为输入接收的数据。然后,电路1013和1014提供等于掩码MF的掩码MF’和等于掩蔽数据F_M的掩蔽数据F_M’作为输出。加法器电路1011和1012将其接受的数据作为输入,然后根据上面给出的公式(A)来提供掩码MG和掩蔽数据G_M作为输出。

当请求减法运算时,反相器电路1013和1014看到操作信息ADD_SUB等于“1”,这向它们指示,它们接收作为输入的数据的补数的计算被请求。然后,电路1013和1014提供等于掩码MF的掩码MF’和等于掩蔽数据F_M的掩蔽数据F_M’作为输出。加法器电路1011和1012以及它们接收作为输入的数据,然后根据上面给出的公式(B)来提供掩码MG和掩蔽数据G_M作为输出。

电路103适于提供结合图1公开的指示符位Flag_V、Flag_C、Flag_N和Flag_Z。电路103接收作为输入的:

掩码ME;

掩蔽数据E_M;

掩码MF;

掩蔽数据F_M;

操作信息ADD_SUB;

来自加法器电路1011的进位数字C1011;

来自加法器电路1012的进位数字C1012;

掩码MG;以及

掩蔽数据G_M。

电路103包括:

三个比较器电路1031(COMP1)、1032(COMP2)和1033(COMP3);

两个电路1034和1035,其实施“与”类型的逻辑门;

一个电路1036,其实施“或”类型的逻辑门;以及

一个电路1037,其实施异或类型的逻辑门。

比较器电路1031接收掩码ME和掩蔽数据E_M作为输入,并且提供二进制字CE_M作为输出,二进制字CE_M表示可以在导致掩蔽数据E_M的掩蔽操作期间出现的进位数字。另外,比较器电路1031提供符号指示符位FlagE_N作为输出,该符号指示符位FlagE_N指示与利用掩码揭露的掩蔽数据E_M相对应的数据E的符号。

比较器电路1032接收掩码MF、掩蔽数据F_M和操作信息ADD_SUB作为输入,并且提供二进制字CF_M作为输出,在加法的情况下,二进制字CF_M表示可以在导致掩蔽数据F_M的掩蔽操作期间出现的进位数字,并且在减法的情况下,表示可以在导致掩蔽数据F_M的掩蔽操作期间出现的进位数字的反相。另外,比较器电路1032提供符号指示符位FlagF_N作为输出,在加法的情况下,符号指示符位FlagF_N指示与利用掩码MF揭露的掩蔽数据F_M相对应的数据F的符号,或者在减法的情况下,表示F的符号的反相。

比较器电路1033接收掩码MG和掩蔽数据G_M作为输入,并且提供二进制字CG_M作为输出,二进制字CG_M表示在得到掩蔽数据G_M的掩蔽操作期间能够出现的进位数字。另外,比较器电路1033提供符号指示符位FlagG_N作为输出,符号指示符位FlagG_N指示与利用掩码MG,通过[sic]揭露的掩蔽数据G_M相对应的数据G的符号,并且提供空值的指示符位FlagG_Z作为输出,空值的指示符位FlagG_Z指示数据G是否等于零。符号指示符位Flag_N等于指示符位FlagG_N。空值的指示符位Flag_Z等于指示符位FlagG_Z。

电路1034是实施“与”类型的逻辑门的电路,其包括一个非反相器输入和两个反相器输入。电路1034在其非反相器输入上接收符号指示符位FlagG_N作为输入,并且在其两个反相器输入上接收符号指示符位FlagE_N和符号指示符位FlagG_N作为输入。电路1034提供数据Flag_V4作为输出。

电路1035是实施“与”类型的逻辑门的电路,电路1035包括两个非反相器输入和一个反相器输入。电路1035在其非反相器输入上接收符号指示符位FlagE_N和符号指示符位FlagF_N作为输入,并且在其反相器输入上接收符号指示符位FlagG_N作为输入。电路1035提供数据Flag_V5作为输出。

电路1036是实施包括两个输入的“或”逻辑门的电路。电路1036接收电路1035和1036的输出作为输入,即数据Flag_V4和Flag_V5。电路1036提供溢出指示符位Flag_V作为输出。

电路1037是实施包括五个非反相器输入的异或类型的逻辑门的电路。电路1037接收进位数字CE_M、进位数字CG_M、进位数字C1011和进位数字C1012作为输入。电路1037提供进位数字指示符位Flag_C作为输出。

结合图4公开的电路103的一个优点是,它不使用揭露操作来计算指示符位Flag_V、Flag_C、Flag_N和Flag_Z。

已经描述了各种实施例和变型。本领域技术人员将理解,这些实施例的某些特征可以被组合,并且本领域技术人员将容易想到其他变型。

最后,基于上文提供的功能描述,本文描述的实施例和变型的实际实施方式在本领域技术人员的能力之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:锁频环电路、低压降稳压器电路及相关方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!