部分逐位置换制造技术

技术编号:2871550 阅读:149 留言:0更新日期:2012-04-11 18:40
在微处理器或微控制器中提供了部分逐位置换指令。部分逐位指令可以由下列方式中的一项或多项来指定:目标说明符、先前的部分值的源、目标子集说明符和控制说明符。微处理器或微控制器中的阵列单元(3030)包括两个并行乘法器(Marray  4100和MParray  4200)和置换逻辑(4300)。第一个阵列Marray  4100执行算术乘法。Marray(4100)使用Acc1(3031)、Acc2(3032)、M(3033)和sel(3034)作为输入,产生结果C和结果S作为输出。第二个阵列MParray  4200执行二进制多项式乘法。置换逻辑(4300)用来根据RThold(3012)中的值对RShold的低位执行各种置换。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于在微处理器中执行部分逐位置换的技术。
技术介绍
随着工业趋势趋向于更大更复杂的指令集,精简指令集计算机(RISC)体系结构被开发出来。通过简化指令集设计,RISC体系结构使得使用像流水线和高速缓存这样的技术更加容易,从而提高系统性能。RISC体系结构的指令通常是固定长度的(例如,16-位、32-位或64-位),指令格式很少变化。指令集结构(ISA)中的每条指令都可以具有总是在相同位置的源寄存器。例如,32-位ISA可以总是具有由16-20位和21-25位指定的源寄存器。这允许为每条指令取指定的寄存器而不需要进行任何复杂的指令译码。
技术实现思路
密码系统(“cryptosystem”)正日益用来保护事务、加密通信、鉴别用户并保护信息。很多密钥加密系统,例如数字加密标准(DES),对数据块执行异或、循环和置换的序列操作的硬件解决方案来说,在计算上相对简单并且经常可简化。在一个通用方面,在指令集体系结构中提供了用于执行部分逐位置换的指令。该指令包括标识该指令为部分置换指令的操作码和置换操作规范。置换操作规范包括标识目标寄存器的目标说明符、先前的部分值的源说明符、目标子集说明符和控制说明符。目标子集说明符标识目标寄存器的一个或多个目标位,控制说明符为标识出的目标位中的每一位标识源。该指令通过执行由置换操作规范定义的部分逐位置换加以处理。实施方案可以包括显式或隐式地标识目标寄存器的目标说明符。目标寄存器可以被指定为微处理器的乘/除单元中的累加器和/或通用寄存器。同样,部分值的源说明符可以隐式或显式地标识先前部分值的源寄存器。先前的部分值的源寄存器可以被指定为累加器和/或通用寄存器。另外,目标寄存器和先前的个部分值的源寄存器也可以被标识为相同的寄存器。在一些实施方案中,目标子集说明符标识目标寄存器中的一个连续的位块。该连续的位块可以包括目标寄存器的最低有效位。不同的实施方案可以在该连续的位块中包括1-6位或者更多位。控制子集说明符可以包括一个或多个源位说明符,还可以包括一个掩码和一个缺省位。另外,控制子集说明符可以作为指令内的一个字段加以存储或被存储在通用寄存器中字段。实施方案可以包括在RISC指令集中提供部分置换指令。在附图和下面的描述中将阐明一种或多种实施方案的细节。从描述、附图以及权利要求中也可以明显地看到其它特性和优点。附图说明图1是可以用在RISC体系结构中的一种示例性五步流水线的框图。图2是包括执行单元和乘/除单元的处理器核心的框图。图3是在一种支持二进制多项式算术的乘/除单元中实现的数据通路图。图4是在一种实施方案中支持算术和二进制多项式乘法的乘法器阵列的框图。图5是可以用在图4所示的实施方案中的算术乘法器阵列的框图。图6是可以用在图4中所示的实施方案中的二进制多项式乘法器的框图。图7A是描述在一种实施方案中的32-位乘16-位的操作的时序图。图7B是描述在一种实施方案中的32-位乘32-位的操作的时序图。图7C是描述在一种实施方案中的除法操作的时序图。图8是实现用于执行乘法指令的步骤的有限状态机。图9是实现用于执行除法指令的步骤的有限状态机。图10A是具有四个操作数的示例性部分置换指令的指令编码。图10B是一种用于诸如图10A中所示的部分置换指令的操作数的示例性控制字编码格式。图11A和11B是不使用控制字操作数的示例性部分置换指令的指令编码。图12A是隐式地使用乘/除单元的寄存器的示例性部分置换指令的指令编码。图12B是一种用于诸如图12A中所示的部分置换指令的操作数的示例性控制字编码格式。图13A是隐式地使用乘/单元的寄存器的另一条部分置换指令的指令编码。图13B是一种用于诸如图13A中所示的部分置换指令的示例性控制字编码格式。具体实施例方式一些加密操作,例如数字加密标准(DES)(以及准备用来代替DES的高级加密标准(AES)的几个候选标准),对数据值执行某种程度的逐位置换。这些很难映射到传统微处理器指令集体系结构的操作用硬件可以非常有效地实现。然而,国家标准与技术局还处在创建新的AES标准过程中。因此,不太确定在将来会使用哪些算法。至少对于这个原因来说,希望提供支持逐位置换的微处理器,其可以用于提升像分组密码这样的加密算法的性能。参考图1,图1描述了一种可以用来实现多项式乘法的示例性微处理器体系结构,它包括一个五步流水线,在该流水线中每条指令都被以固定的时间来执行,例如四个时钟周期。每条指令的执行被分为五步取指令(IF)步1001、寄存器读(RD)步1002、算术/逻辑单元(ALU)步1003、存储器(MEM)步1004和写回(WB)步1005。在IF步1001,从指令高速缓冲存储器中取出指定的指令。该取出的指令的一部分被用来指定在执行该指令中可以被使用的源寄存器。在寄存器读(RD)步1002,系统取出所述指定的源寄存器的内容。这些取出的值可以被用来在ALU步1003中执行算术或逻辑操作。在MEM步1004,执行中的指令可以读/写数据高速缓冲存储器中的存储器。最后,在WB步1005,由指令执行而获得的值可以被写回到一寄存器中。因为一些操作例如浮点计算和整数乘/除不能在一个时钟周期内加以执行,所以一些指令仅仅开始一指令的执行。在经过了足够的时钟周期后,可以用另一条指令来取回结果。例如,当一条整数乘法指令用了五个时钟周期时,一条指令可以启动乘法计算,另一条指令可以在乘法操作完成以后把乘法操作的结果装入寄存器。如果乘法操作在请求结果时仍然没有完成,则流水线将停下来直到获得该结果为止。参考图2,通过实例提供了一种示例性的RISC体系结构。处理器核心200(也称作“微处理器核心”)包括以下部件执行单元2010、乘/除单元(MDU)2020、系统控制协处理器(CP0)2030、存储管理单元2040、高速缓冲存储器控制器2050和总线接口单元(BIU)2060。在图2中,MDU2020是组合的乘/除单元;不过,其它实施方案也可以提供相互独立的乘和除单元。执行单元2010是处理器核心2000中用于执行指令的主要机构。执行单元2010包括寄存器堆2011和算术逻辑单元(ALU)2012。在一种实施方案中,寄存器堆2011包括32个可以用在例如标量整数操作和地址计算中的32-位通用寄存器。寄存器堆2011包括两个读端口和一个写端口,而且可以被完全绕过以使该流水线中的操作等待时间为最小。ALU2012支持逻辑和算术操作,例如加、减和移位。MDU2020包括三个可以供各种操作使用的寄存器(ACX2021、HI2022和LO 2023)。根据一种实施方案,这三个寄存器可以被一起使用来保存最多72-位的值。在一种实施方案中,LO寄存器2023和HI寄存器2022均是32-位宽并且用作MDU2020的专用输出寄存器。在一种实施方案中,ACX寄存器2021在HI/LO寄存器对已经提供的精度之外还提供8-位额外的整数精度。精确的位数随实现而变,但优选的最小位数是2位。对具有32位数据通路的处理器来说,ACX寄存器的优选的最大位数是32位。与此相反,对具有64位数据通路的处理器来说,ACX寄存器的优选最大位数是64位。因此,在具有32-位宽的HI和LO寄存器的处理器中,ACX/HI/LO的组合能本文档来自技高网...

【技术保护点】
在指令集体系结构中的一种用于执行部分逐位置换的指令,该指令是指令集体系结构的一部分,该指令包括:用于标识该指令为部分置换指令的操作码;和置换操作规范,包括:用于标识目标寄存器的目标说明符;部分值的源说明符;   用于标识目标寄存器中的一个或多个目标位的目标子集说明符;以及用于为由目标子集说明符标识的所述一个或多个目标位中的每一位标识源的控制说明符;其中,该指令通过执行由置换操作规范定义的部分逐位置换加以处理。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:KD基斯塞尔HWJ埃克纳M斯特里贝克JS詹森
申请(专利权)人:美普思科技有限公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利