CN1503939A - 多项式算术运算 - Google Patents

多项式算术运算 Download PDF

Info

Publication number
CN1503939A
CN1503939A CNA028085418A CN02808541A CN1503939A CN 1503939 A CN1503939 A CN 1503939A CN A028085418 A CNA028085418 A CN A028085418A CN 02808541 A CN02808541 A CN 02808541A CN 1503939 A CN1503939 A CN 1503939A
Authority
CN
China
Prior art keywords
instruction
polynomial
register
result
polynomial arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA028085418A
Other languages
English (en)
Other versions
CN100422926C (zh
Inventor
M・斯特里贝克
M·斯特里贝克
基斯塞尔
K·D·基斯塞尔
P·帕里尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Original Assignee
MIPS Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MIPS Technologies Inc filed Critical MIPS Technologies Inc
Publication of CN1503939A publication Critical patent/CN1503939A/zh
Application granted granted Critical
Publication of CN100422926C publication Critical patent/CN100422926C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

提供了指令集体系结构(ISA)中的多项式运算指令(3010)。还提供了多项式乘-加(MADDP)指令和多项式乘(MULTP)指令(3013)。

Description

多项式算术运算
技术领域
本发明涉及用于执行多项式算术的微处理器指令,具体说涉及用于执行多项式乘法运算的微处理器指令。
背景
当业界朝向更庞大更复杂的指令集发展时,开发出了精简指令集计算机(RISC)体系结构。通过简化指令集设计,RISC体系结构使得应用例如流水线和高速缓冲技术更为容易,从而提高了系统的性能。
RISC体系结构一般具有在指令格式上几乎没什么变化的固定长度指令(例如16位,32位或64位)。指令集体系结构(ISA)中的每个指令可具有总处于相同位置的源寄存器。例如,32位ISA可具有总由位16-20和21-25指定的源寄存器。对每条指令而言,这允许无需任何复杂的指令译码就可读取指定寄存器。
概述
加密的系统(“密码系统”)越来越多地用于确保交易安全,对通信加密,对用户进行认证以及保护信息。许多专用密钥密码系统(例如数字加密算法(DES)),在计算上相对简单,并且常常可简化为对数据块进行一系列异或(XOR)、循环和置换运算的硬件解决方案。而另一方面,公共密钥密码系统比专用密钥密码系统在数学上更巧妙且在计算上更困难。
虽然不同的公共密钥密码系统方案依据不同的数学基础,但是它们往往都需要在数量级为1024位的大数值范围内进行整数运算。扩展精度运算常常基于模数(即以某个值域为模进行的运算),而在某些情况下则是基于二进制多项式而非二进制补码。例如,RSA公共密钥密码系统采用扩展精度模取幂来对信息加密和解密,而椭圆曲线密码系统采用扩展精度模多项式乘法对信息加密和解密。
公共密钥密码系统已经广泛用于用户认证和安全密钥交换,而专用密钥密码系统广泛用于加密通信通道。随着公共密钥密码系统的应用增多,希望能够提高扩展精度模算术运算的性能。
一般而言,指令集体系结构包括用于执行多项式算术的指令。该指令包括一个或多个将此指令识别为用于执行多项式算术运算的指令的操作码。此外,该指令识别一个或多个寄存器。通过使用所识别的寄存器来执行多项式算术运算,从而可对该指令加以处理。
实现可提供执行二进制多项式加法的指令,该指令可采用乘法器来实施。多项式算术运算的结果可存于一个或多个结果寄存器中。多项式算术运算可包括乘法,其中,使所标识的寄存器的内容相乘。运算还可以包括多项式的乘加运算,其中,所标识的寄存器的内容相乘然后加到一个或多个结果寄存器中。结果寄存器可包括高阶寄存器和低阶寄存器。可对存于寄存器中的多项式进行多项式算术运算。多项式可编码为系数的二进制表示。
以下附图和说明书中对一个或多个实现加以阐述。从说明书和附图以及权利要求中可明显看出本发明的其他特征和优点。
附图说明
图1是可用于RISC体系结构中的五级流水线示例的框图,
图2是包括执行核心和乘/除运算单元的处理器核心的框图。
图3A和3B是执行多项式乘法和加法的例示指令的指令编码。
详细说明
许多公共密钥密码系统采用扩展精度模运算来对数据加密和解密。例如,多数椭圆曲线(EC)密码系统大量采用二进制多项式乘法和加法来对数据加密和解密。椭圆曲线密码系统的性能可通过修改编程CPU乘法器以响应新定义的专用于多项式运算的指令来加以提高。
当(如IEEE1363-2000标准所推荐的那样)采用定义于GF(2163)上的椭圆曲线时,所需的主要运算是在GF(2163)域上的乘法运算。在2163个元素中每一个元素可表示为系数为0或1的至多163次幂的多项式。在此表示中,两个元素可以采用简单的按位异或相加,而两个多项式a(X)和b(X)可通过计算a(X)b(X)mod P(X)而得到相乘的结果,乘积a(X)b(X)是326次多项式,P(X)是IEEE1363-2000标准规定的既约多项式。
多项式乘法与模数乘法具有相同的形式,在整数范围内执行abmod p,不同之处在于:(1)常规的加法由异或替代;和(2)常规的32位乘法由32位不带进位的乘法替代。因此,可采用移位和异或而不是移位和加法运算来执行多项式模数乘法运算。
参考图1,可用来实现多项式乘法运算的示范性的微处理器结构包括五级流水线,其中,指令可在每个时钟周期发出并在固定的时间例如5个时钟周期内执行。每条指令的执行分成5步:取指(IF)级1001,读寄存器(RD)级1002,算术/逻辑单元(ALU)级1003,存储(MEM)级1004和写回(WB)级1005。在IF级1001中,从指令高速缓冲器中取出指定指令。所取指令的一部分用于指定可用于执行指令的源寄存器。在读寄存器(RD)级1002中,系统将指定源寄存器的内容取出。所取得的值可用在ALU级1003中执行算术或逻辑运算。在MEM级1004中,执行指令可读/写数据高速缓冲器中的存储器。最后,在WB级1005中,通过执行指令而获得的值可写回到某个寄存器中。
因为有些运算,例如浮点运算和整数乘/除运算未必能够在一个时钟周期内完成,某些指令仅仅开始指令的执行。在经过足够的时钟周期后,另一指令可用于取回结果。例如,当整数乘法指令花费5个时钟周期时,一条指令可启动乘法计算,而另一条指令可在乘法运算完成后将乘积装入寄存器中。如果在需要结果的时候乘法运算还未完成,流水线可停止直到结果可得。
参考图2,作为示例给出示范性的RISC体系结构。处理器核心2000(也称为“微处理器核心”)包括如下单元:执行单元2010、乘/除运算单元(MDU)2020、系统控制协处理器(CPO)2030、存储管理单元2040、高速缓存控制器2050和总线接口单元(BIU)2060。
执行单元2010是在处理器核心2000内执行指令的主要机构。执行单元2010包括寄存器阵列2011和算术逻辑单元(ALU)2012。在一种实现中,寄存器阵列2011包括32个可用于例如标量整数运算和地址计算的32位通用寄存器。可将包括两个读端口和一个写端口的寄存器阵列2011完全旁路,以使流水线中的运算延迟最小。ALU2012支持逻辑和算术运算,例如加法、减法和移位。
MDU 2020执行乘法和除法运算。在一种实现中,MDU 2020包括32位乘16位(32×16)Booth编码的(Booth-encoded)乘法器(未显示)、结果寄存器(HI寄存器2021和LO寄存器2022)、除法状态机以及执行这些功能的所需的所有多路复用器和控制逻辑。在一种流水线式实现中,每时钟周期可将32×16乘法运算发送给MDU2020,以便每个时钟周期32位的数可同16位的数相乘。但是直到乘法运算完成后HI/LO寄存器(2021和2022)中才有可用结果。可用MFHI和MFLO指令来访问结果。这些指令将结果从HI寄存器2021和LO寄存器2022中分别移至指定的寄存器。例如“MFHI $7”将HI寄存器2021的内容移至通用寄存器$7中。
乘-加(MADD/MADDU)和乘-减(MSUB/MSUBU)这两条指令可用于执行乘-加和乘-减运算。MADD指令使两个数相乘后再将乘积加到HI寄存器2021和LO寄存器2022的当前内容中。然后将结果存于HI/LO寄存器(2021和2022)中。类似地,MSUB指令使两个操作数相乘后再将乘积从HI寄存器2021和LO寄存器2022中减去,然后将结果存于HI/LO寄存器(2021和2022)中。MADD和MSUB指令对符号数执行运算。MADDU和MSUBU指令对无符号数执行类似运算。
参考图3A,提供了多项式乘法(MULTP)指令3010的示范性的指令编码。MULTP指令3010有两个寄存器字段,即rs 3011和rt3012,用于指定包含将要参与相乘的多项式的源寄存器。在乘运算完成之后,结果存在HI寄存器2021和LO寄存器2022中。MULTP指令3010还包括一个或多个用于识别将要执行的运算的操作码3013。在一些实现中,可以不用指令字段的一部分,例如字段3014。
在一种实现中,由rs 3011和rt 3012标识的寄存器包含二进制多项式(即模2化简的多项式系数)。因此,各系数或为“1”或为“0”。在32位寄存器中对多项式进行编码,其中每一位表示一个多项式系数。例如将多项式“x4+x+1”编码为“10011”,因为x3和x2的系数为“0”,其余系数为“1”。
MULTP指令3010允许将两个多项式相乘。例如,(x4+x+1)(x+1)=x5+x4+x2+2x+1。模2化简多项式得到x5+x4+x2+1。如果多项式以上述二进制编码,那么同一乘法可表示为(10011)(11)=110101。
指令和操作数的长度可任意改变;所描述的32位设计仅为一个例子。在32位的实现中,存于rs 3011中的32位字的值可以同存于rt 3012中的32位字的值进行多项式的乘法,即将两个操作数均作为二进制多项式值,以产生64位的结果。低阶32位字可放在LO寄存器2022中,高阶32位字结果可放在HI寄存器2021中。在某些实现中,不会发生运算异常。如果由rs 3011和rt 3012所指定的寄存器不包含32位带符号扩展的值,那么运算的结果可能无法预料。
参考图3B,提供了多项式乘加(MADDP)指令3020的示范性指令编码。MADDP指令3020有两个参数字段,即rs 3021和rt 3022,用于指定源寄存器,该源寄存器包含要执行乘法运算并采用多项式加法(异或)加到HI 2021和LO 2022的内容中的多项式。乘法和加法运算完成之后,其结果存在HI寄存器2021和LO寄存器2022中。MADDP指令3020还可包括一个或多个识别所要执行的运算的操作码3023。在一些实现中,可以不用指令段的一部分,例如字段3024。
MADDP指令3020执行如上讨论的乘法运算。二进制多项式加法类似于按位异或运算。例如,二进制多项式加(x4+x+1)+(x+1)的结果是x4+2x+2。模2化简系数得到x4,x4可表示为“10000”。
同样地,指令和操作数的长度可任意改变。在一种实现中,存于rs 3021的32位字的值可与存于rt 3022中的32位字的值作基于多项式的乘法运算,即把两个操作数均作为二进制多项式的值,从而得到64位结果。然后该结果可采用多项式加法加到HI寄存器2021和LO寄存器2022中的内容中。64位的结果包括低阶32位字和高阶32位字。低阶32位字可放在LO寄存器2022中,高阶32位字结果可放在HI寄存器2021中。如果由rs 3021和rt 3022指定的寄存器不包含32位带符号扩展的值,那么运算的结果可能无法预料。
多项式算术的实现除可采用硬件(如在微处理器或微控制器内)实现,还可用软件实现,所述软件设置在例如经配置用于存储软件(即计算机可读程序代码)的计算机可用(如可读的)媒体中。所述程序代码可使本说明书所公开的系统和技术的功能或构造或者二者均得以实现。例如,这可以通过使用通用编程语言(如C,C++)、硬件描述语言(HDL)(包括Verilog HDL、VHDL、AHDL(Altera HDL)等)、或者其它可用的编程和/或电路捕获工具来完成。程序代码可配置在任何已知的计算机可用媒体中,包括半导体、磁碟片、光盘(例如CD-ROM,DVD-ROM),以及配置为实现于计算机可用(如可读)传输媒体(如载波和任何别的包括数字的、光学的或基于模拟的媒体)中的计算机数据信号。这样,代码可通过包括因特网和企业内部网的通信网络来传输。
应理解,上述系统和技术所完成的功能和/或所提供的结构可以用于程序代码来实现的核心(如微处理器核心)来表示,并且可转换成作为集成电路产品一部分的硬件。所述系统和技术还可体现为硬件和软件的组合。因此,其它实现方式也在以下权利要求范围之内。

Claims (56)

1.一种在指令集体系结构中用于执行多项式算术的指令,所述指令为所述指令集体系结构的一部分并包括:
一个或多个将所述指令识别为用于执行多项式算术运算的指令的操作码;和
一个或多个寄存器标识符;
其中,使用所述一个或多个寄存器标识符来执行所述多项式算术运算从而处理所述指令。
2.如权利要求1所述的指令,其特征在于,所述多项式算术运算为二进制多项式加法。
3.如权利要求2所述的指令,其特征在于,所述二进制多项式加法采用乘法器来执行。
4.如权利要求1所述的指令,其特征在于,所述多项式算术运算的结果存于一个或多个结果寄存器中。
5.如权利要求4所述的指令,其特征在于,所述多项式算术运算包括:
将由所述一个或多个寄存器标识符标识的所述寄存器中的内容相乘而得到一个中间值;以及
将所述一个或多个结果寄存器的内容与所述中间值相加而得到结果。
6.如权利要求5所述的指令,其特征在于,所述结果存于所述一个或多个结果寄存器中。
7.如权利要求1所述的指令,其特征在于,所述多项式算术运算的结果存于高阶结果寄存器和低阶结果寄存器中。
8.如权利要求1所述的指令,其特征在于,所述多项式算术运算为多项式乘法。
9.如权利要求8所述的指令,其特征在于,由所述一个或多个寄存器标识符识别的各寄存器包含有多项式。
10.如权利要求9所述的指令,其特征在于,将每个多项式编码为系数的二进制表示。
11.如权利要求1所述的指令,其特征在于,所述指令集包括RISC指令集。
12.一种使用指令来执行多项式算术的方法,所述方法包括:
接收指令,所述指令包括:
一个或多个将所述指令识别为用于执行多项式算术运算的指令的操作码;和
一个或多个寄存器标识符;和
通过处理所述指令利用所述一个或多个寄存器标识符来执行多项式算术运算。
13.如权利要求12所述的方法,其特征在于,执行所述多项式算术运算包括执行二进制多项式加法。
14.如权利要求13所述的方法,其特征在于,执行所述二进制多项式加法包括使用乘法器。
15.如权利要求12所述的方法,其特征在于还包括将所述多项式算术运算的结果存于一个或多个结果寄存器中。
16.如权利要求15所述的方法,其特征在于,执行所述多项式算术运算包括:
将由所述一个或多个寄存器标识符标识的所述寄存器中的内容相乘而得到一个中间值;和
将所述一个或多个结果寄存器的内容与所述中间值相加而得到结果。
17.如权利要求16所述的方法,其特征在于还包括将所述结果存于所述一个或多个结果寄存器中。
18.如权利要求12所述的方法,还包括将所述多项式算术运算的结果存于高阶结果寄存器和低阶结果寄存器中。
19.如权利要求12所述的方法,其特征在于,执行所述多项式算术运算包括执行多项式乘法。
20.如权利要求19所述的方法,其特征在于,由所述一个或多个寄存器标识符识别的媒体各寄存器包含多项式。
21.如权利要求20所述的方法,其特征在于,将每个多项式编码为系数的二进制表示。
22.如权利要求12所述的方法,其特征在于,所述指令为指令集的一部分,并且所述指令集包括RISC指令集。
23.一种包括用软件实现的微处理器核心的计算机可读媒体,所述微处理器核心包括用于执行多项式算术的指令,所述指令包括:
将所述指令识别为一个或多个用于执行多项式算术运算的指令的操作码;和
一个或多个寄存器标识符;
其中,通过使用一个或多个寄存器标识符来执行所述多项式算术运算从而处理所述指令。
24.如权利要求23所述的计算机可读媒体,其特征在于,所述多项式算术运算为二进制多项式加法。
25.如权利要求24所述的计算机可读媒体,其特征在于,所述二进制多项式加法采用乘法器来执行。
26.如权利要求23所述的计算机可读媒体,其特征在于,所述多项式算术运算的结果存于一个或多个结果寄存器中。
27.如权利要求26所述的计算机可读媒体,其特征在于,所述多项式算术运算包括:
将由所述一个或多个寄存器标识符标识的所述寄存器中的内容相乘而得到一个中间值;和
将所述一个或多个结果寄存器的所述内容与所述中间值相加而得到结果。
28.如权利要求27所述的计算机可读媒体,其特征在于,所述结果存于所述一个或多个结果寄存器中。
29.如权利要求23所述的计算机可读媒体,其特征在于,所述多项式算术运算的结果存于高阶结果寄存器和低阶结果寄存器中。
30.如权利要求23所述的计算机可读媒体,其特征在于,所述多项式算术运算是多项式乘法。
31.如权利要求30所述的计算机可读媒体,其特征在于,由所述一个或多个寄存器标识符识别的各寄存器包含多项式。
32.如权利要求31所述的计算机可读媒体,其特征在于,将每个多项式编码为系数的二进制表示。
33.如权利要求23所述的计算机可读媒体,其特征在于,所述指令是指令集的一部分,并且所述指令集包括RISC指令集。
34.一种在公共密钥密码系统中用公共密钥对信息加密的方法,所述方法包括用于执行多项式算术的指令,所述指令包括:
一个或多个将所述指令识别为用于执行多项式算术运算的指令的操作码;和
一个或多个寄存器标识符;
其中,通过使用所述一个或多个寄存器标识符来执行所述多项式算术运算从而处理所述指令。
35.如权利要求34所述的方法,其特征在于,所述多项式算术运算是二进制多项式加法。
36.如权利要求35所述的方法,其特征在于,所述二进制多项式加法使用乘法器来执行。
37.如权利要求34所述的方法,其特征在于,所述多项式算术运算的结果存于一个或多个结果寄存器中。
38.如权利要求37所述的方法,其特征在于,所述多项式算术运算包括:
将由所述一个或多个寄存器标识符标识的所述寄存器中的内容相乘而得到一个中间值;和
将所述一个或多个结果寄存器的内容与所述中间值相加而得到结果。
39.如权利要求38所述的方法,其特征在于,所述结果存于所述一个或多个结果寄存器中。
40.如权利要求34所述的方法,其特征在于,所述多项式算术运算的结果存于高阶结果寄存器和低阶结果寄存器中。
41.如权利要求34所述的方法,其特征在于,所述多项式算术运算是多项式乘法。
42.如权利要求41所述的方法,其特征在于,由所述一个或多个寄存器标识符标识的媒体各寄存器包含多项式。
43.如权利要求42所述的方法,其特征在于,将每个多项式编码为系数的二进制表示。
44.如权利要求34所述的方法,其特征在于,所述指令是指令集的一部分,并且所述指令集包括RISC指令集。
45.一种在微处理器中用于执行多项式算术的指令,所述指令包括:
一个或多个将所述指令识别为用于执行多项式算术运算的指令的操作码;和
一个或多个寄存器标识符;
其中,通过使用所述一个或多个寄存器标识符来执行所述多项式算术运算从而处理所述指令。
46.如权利要求45所述的指令,其特征在于,所述多项式算术运算是二进制多项式加法。
47.如权利要求46所述的指令,其特征在于,所述二进制多项式加法采用乘法器来执行。
48.如权利要求45所述的指令,其特征在于,所述多项式算术运算包括:
将由所述一个或多个寄存器标识符标识的所述寄存器中的内容相乘而得到一个中间值;和
将所述一个或多个结果寄存器的内容与所述中间值相加而得到结果。
49.如权利要求45所述的指令,其特征在于,所述多项式算术运算是多项式乘法。
50.一种提供了一条或多条用于执行多项式算术的指令的微处理器,所述微处理器包括:
指令存储器;
执行单元,所述执行单元从所述指令存储器中取微处理器指令并处理所取指令;和
多项式算术单元,如果所取指令是所述一条或多条用于执行多项式算术的指令之一,则所述多项式算术单元在处理所取指令中由所述执行单元使用。
51.如权利要求50所述的微处理器,其特征在于,所述微处理器还包括乘/除单元。
52.如权利要求51所述的微处理器,其特征在于,所述多项式算术单元是所述乘/除单元的部件。
53.如权利要求50所述的微处理器,其特征在于,所述多项式算术单元可用于执行二进制多项式加法。
54.如权利要求50所述的微处理器,其特征在于,所述多项式算术单元可用于执行二进制多项式乘法。
55.如权利要求50所述的微处理器,其特征在于,所述微处理器还包括用于存储来自所述多项式算术单元的结果的结果寄存器。
56.如权利要求55所述的微处理器,其特征在于,通过执行二进制多项式乘法运算以确定中间结果并将所述中间结果加到所述结果寄存器中,所述多项式算术单元可用于执行二进制多项式乘-加操作。
CNB028085418A 2001-02-21 2002-02-15 多项式算术运算 Expired - Lifetime CN100422926C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/788,684 US7711763B2 (en) 2001-02-21 2001-02-21 Microprocessor instructions for performing polynomial arithmetic operations
US09/788,684 2001-02-21

Publications (2)

Publication Number Publication Date
CN1503939A true CN1503939A (zh) 2004-06-09
CN100422926C CN100422926C (zh) 2008-10-01

Family

ID=25145246

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028085418A Expired - Lifetime CN100422926C (zh) 2001-02-21 2002-02-15 多项式算术运算

Country Status (5)

Country Link
US (1) US7711763B2 (zh)
EP (1) EP1386224A4 (zh)
JP (2) JP2004533671A (zh)
CN (1) CN100422926C (zh)
WO (1) WO2002069136A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7325022B2 (en) * 2003-08-26 2008-01-29 Intel Corporation Methods and apparatus for determining approximating polynomials using instruction-embedded coefficients
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US7765252B1 (en) 2004-03-19 2010-07-27 Microsoft Corporation Five-term karatsuba-variant calculator
US7363336B1 (en) 2004-03-19 2008-04-22 Microsoft Corporation Six-term Karatsuba-variant calculator
CN100517214C (zh) * 2007-05-30 2009-07-22 北京天碁科技有限公司 一种实现二进制多项式运算的硬件配置方法及硬件系统
JP4780158B2 (ja) * 2008-08-26 2011-09-28 ソニー株式会社 符号化装置および方法
JP6387466B2 (ja) * 2014-12-22 2018-09-05 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 電子計算装置
US11868469B2 (en) * 2020-08-27 2024-01-09 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception
US11907369B2 (en) 2020-08-27 2024-02-20 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception
US11853424B2 (en) 2020-10-06 2023-12-26 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location

Family Cites Families (216)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614406A (en) 1964-09-30 1971-10-19 Bell Telephone Labor Inc Machine processing of algebraic information
BE758815A (fr) 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US3642744A (en) 1970-06-01 1972-02-15 Phillips Petroleum Co Vinyl monomer polymerization process
US4109310A (en) 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
FR2253415A5 (zh) 1973-12-04 1975-06-27 Cii
US3916388A (en) 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
GB1524850A (en) 1975-12-23 1978-09-13 Ferranti Ltd Data processing apparatus
JPS52119832A (en) 1976-04-01 1977-10-07 Toshiba Corp Electroinc calculator of microprogram control system
US4173041A (en) 1976-05-24 1979-10-30 International Business Machines Corporation Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length
US4128880A (en) 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4219874A (en) 1978-03-17 1980-08-26 Gusev Valery Data processing device for variable length multibyte data fields
US4307445A (en) 1978-11-17 1981-12-22 Motorola, Inc. Microprogrammed control apparatus having a two-level control store for data processor
JPS6041768B2 (ja) 1979-01-19 1985-09-18 株式会社日立製作所 デ−タ処理装置
US4302820A (en) 1979-08-20 1981-11-24 Allen-Bradley Company Dual language programmable controller
JPS5847053B2 (ja) 1979-11-19 1983-10-20 株式会社日立製作所 デ−タ処理装置
US4394736A (en) 1980-02-11 1983-07-19 Data General Corporation Data processing system utilizing a unique two-level microcoding technique for forming microinstructions
US4320820A (en) * 1980-07-28 1982-03-23 Harvey Hubbell Incorporated Section insulator with improved arc control
JPS5776634A (en) 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
US4434462A (en) 1980-11-24 1984-02-28 Texas Instruments Incorporated Off-chip access for psuedo-microprogramming in microprocessor
US4520439A (en) 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
US4538239A (en) 1982-02-11 1985-08-27 Texas Instruments Incorporated High-speed multiplier for microcomputer used in digital signal processing system
US4491910A (en) 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory
US4583199A (en) 1982-07-02 1986-04-15 Honeywell Information Systems Inc. Apparatus for aligning and packing a first operand into a second operand of a different character size
US4495598A (en) 1982-09-29 1985-01-22 Mcdonnell Douglas Corporation Computer rotate function
US4928223A (en) 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
US4507731A (en) 1982-11-01 1985-03-26 Raytheon Company Bidirectional data byte aligner
US4586130A (en) 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4825363A (en) 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
JPS61160176A (ja) 1984-12-29 1986-07-19 Hitachi Ltd ベクトル処理装置
US4899275A (en) 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4884197A (en) 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4860192A (en) 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4809212A (en) 1985-06-19 1989-02-28 Advanced Micro Devices, Inc. High throughput extended-precision multiplier
CA1266330A (en) 1985-08-13 1990-02-27 Erik Lee Brunvand Circulating context addressable memory
JPS6347874A (ja) 1986-08-16 1988-02-29 Nec Corp 算術演算装置
US4868777A (en) 1986-09-12 1989-09-19 Matsushita Electric Industrial Co., Ltd. High speed multiplier utilizing signed-digit and carry-save operands
US4771463A (en) * 1986-12-05 1988-09-13 Siemens Transmission Systems, Inc. Digital scrambling without error multiplication
US4811215A (en) 1986-12-12 1989-03-07 Intergraph Corporation Instruction execution accelerator for a pipelined digital machine with virtual memory
US4992934A (en) 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US4814976C1 (en) 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
US5073864A (en) 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5235686A (en) 1987-02-24 1993-08-10 Texas Instruments Incorporated Computer system having mixed macrocode and microcode
US4891781A (en) * 1987-03-04 1990-01-02 Cylink Corporation Modulo arithmetic processor chip
US5005118A (en) 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US4847801A (en) 1987-10-26 1989-07-11 Cyclotomics, Inc. Compact galois field multiplier
US4878174A (en) 1987-11-03 1989-10-31 Lsi Logic Corporation Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
US4829380A (en) 1987-12-09 1989-05-09 General Motors Corporation Video processor
US4879676A (en) 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
US4949250A (en) 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
US5136696A (en) 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
GB8820237D0 (en) 1988-08-25 1988-09-28 Amt Holdings Processor array systems
JPH0810428B2 (ja) 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
JP2538053B2 (ja) 1989-05-08 1996-09-25 松下電器産業株式会社 制御装置
JP2646778B2 (ja) 1990-01-17 1997-08-27 日本電気株式会社 ディジタル信号処理装置
US5193202A (en) 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5418915A (en) 1990-08-08 1995-05-23 Sumitomo Metal Industries, Ltd. Arithmetic unit for SIMD type parallel computer
JPH04127364A (ja) 1990-09-19 1992-04-28 Nec Corp 積和算器
JPH04172533A (ja) 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5815723A (en) 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5222244A (en) 1990-12-20 1993-06-22 Intel Corporation Method of modifying a microinstruction with operands specified by an instruction held in an alias register
CA2060555A1 (en) 1991-04-24 1992-10-25 Robert J. Bullions, Iii System and method for draining an instruction pipeline
US5245564A (en) 1991-05-10 1993-09-14 Weitek Corporation Apparatus for multiplying operands
US5961629A (en) 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
JP2875909B2 (ja) 1991-07-12 1999-03-31 三菱電機株式会社 並列演算処理装置
US5581773A (en) 1992-05-12 1996-12-03 Glover; Michael A. Massively parallel SIMD processor which selectively transfers individual contiguously disposed serial memory elements
US5669010A (en) 1992-05-18 1997-09-16 Silicon Engines Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units
US5396502A (en) 1992-07-09 1995-03-07 Advanced Hardware Architectures, Inc. Single-stack implementation of a Reed-Solomon encoder/decoder
US5457779A (en) 1993-01-15 1995-10-10 Silicon Graphics, Inc. System for accessing graphic data in a SIMD processing environment
US5299147A (en) 1993-02-22 1994-03-29 Intergraph Corporation Decoder scheme for fully associative translation-lookaside buffer
US5717947A (en) 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
EP0622727A1 (en) 1993-04-29 1994-11-02 International Business Machines Corporation System for optimizing argument reduction
JPH0720778A (ja) 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
US5598514A (en) 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US5392408A (en) 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
EP0645699A1 (en) 1993-09-29 1995-03-29 International Business Machines Corporation Fast multiply-add instruction sequence in a pipeline floating-point processor
US5815695A (en) 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
EP0651321B1 (en) 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
DE69427265T2 (de) 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
US5502829A (en) 1993-11-03 1996-03-26 Intergraph Corporation Apparatus for obtaining data from a translation memory based on carry signal from adder
EP1338957A3 (en) 1993-11-05 2003-10-29 Intergraph Corporation Software scheduled superscalar computer architecture
DE69430018T2 (de) 1993-11-05 2002-11-21 Intergraph Corp Befehlscachespeicher mit assoziativem Kreuzschienenschalter
US6425124B1 (en) 1993-11-08 2002-07-23 Matsushita Electric Industrial Co. Ltd. Resource allocation device for reducing the size and run time of a machine language program
US5996062A (en) 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
US6067615A (en) 1993-11-30 2000-05-23 Trw Inc. Reconfigurable processor for executing successive function sequences in a processor operation
US5392228A (en) 1993-12-06 1995-02-21 Motorola, Inc. Result normalizer and method of operation
US5809271A (en) 1994-03-01 1998-09-15 Intel Corporation Method and apparatus for changing flow of control in a processor
US5559974A (en) 1994-03-01 1996-09-24 Intel Corporation Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation
US5537629A (en) 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
US5673407A (en) 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
US5781457A (en) 1994-03-08 1998-07-14 Exponential Technology, Inc. Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
ATE240538T1 (de) 1994-03-24 2003-05-15 Kanagawa Kagaku Gijutsu Akad Optische faser und ihre herstellung
US5734600A (en) 1994-03-29 1998-03-31 International Business Machines Corporation Polynomial multiplier apparatus and method
US5734874A (en) 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
EP0681236B1 (en) 1994-05-05 2000-11-22 Conexant Systems, Inc. Space vector data path
JP3599409B2 (ja) 1994-06-14 2004-12-08 株式会社ルネサステクノロジ 分岐予測装置
FR2723223B1 (fr) 1994-07-29 1996-08-30 Sgs Thomson Microelectronics Procede de brouillage numerique et application a un circuit programmable
US5513366A (en) 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5758176A (en) 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
ZA9510127B (en) 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
US5887183A (en) 1995-01-04 1999-03-23 International Business Machines Corporation Method and system in a data processing system for loading and storing vectors in a plurality of modes
US5550768A (en) 1995-01-31 1996-08-27 International Business Machines Corporation Rounding normalizer for floating point arithmetic operations
US5713035A (en) 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
US5748979A (en) * 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5696937A (en) 1995-04-28 1997-12-09 Unisys Corporation Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509988D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
US5752071A (en) 1995-07-17 1998-05-12 Intel Corporation Function coprocessor
US6381690B1 (en) 1995-08-01 2002-04-30 Hewlett-Packard Company Processor for performing subword permutations and combinations
US5953241A (en) 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6295599B1 (en) 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
CN103064650B (zh) 1995-08-31 2016-02-24 英特尔公司 控制移位分组数据的位校正的装置
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5721892A (en) 1995-08-31 1998-02-24 Intel Corporation Method and apparatus for performing multiply-subtract operations on packed data
US5936872A (en) 1995-09-05 1999-08-10 Intel Corporation Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations
US5726927A (en) 1995-09-11 1998-03-10 Digital Equipment Corporation Multiply pipe round adder
US5768172A (en) 1995-10-04 1998-06-16 Apple Computer, Inc. Graphic software functions without branch instructions
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5819117A (en) 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
JPH09114645A (ja) * 1995-10-16 1997-05-02 Fuji Electric Co Ltd 有限体上の乗算回路
US5798923A (en) 1995-10-18 1998-08-25 Intergraph Corporation Optimal projection design and analysis
US5774709A (en) 1995-12-06 1998-06-30 Lsi Logic Corporation Enhanced branch delay slot handling with single exception program counter
US5852726A (en) 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5729724A (en) 1995-12-20 1998-03-17 Intel Corporation Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
US6185668B1 (en) 1995-12-21 2001-02-06 Intergraph Corporation Method and apparatus for speculative execution of instructions
US5793661A (en) 1995-12-26 1998-08-11 Intel Corporation Method and apparatus for performing multiply and accumulate operations on packed data
US5822606A (en) 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US6088783A (en) 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
EP0834114A2 (en) 1996-03-28 1998-04-08 Koninklijke Philips Electronics N.V. Method and computer system for processing a set of data elements on a sequential processor
US5717910A (en) 1996-03-29 1998-02-10 Integrated Device Technology, Inc. Operand compare/release apparatus and method for microinstrution sequences in a pipeline processor
US6066178A (en) 1996-04-10 2000-05-23 Lsi Logic Corporation Automated design method and system for synthesizing digital multipliers
US6128726A (en) 1996-06-04 2000-10-03 Sigma Designs, Inc. Accurate high speed digital signal processor
JPH1011289A (ja) 1996-06-19 1998-01-16 Mitsubishi Electric Corp 並列処理プロセッサにおける命令数拡張方法および並列処理プロセッサ
US5860017A (en) 1996-06-28 1999-01-12 Intel Corporation Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5812147A (en) 1996-09-20 1998-09-22 Silicon Graphics, Inc. Instruction methods for performing data formatting while moving data between memory and a vector register file
US6041403A (en) 1996-09-27 2000-03-21 Intel Corporation Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction
US5944776A (en) 1996-09-27 1999-08-31 Sun Microsystems, Inc. Fast carry-sum form booth encoder
US5729554A (en) 1996-10-01 1998-03-17 Hewlett-Packard Co. Speculative execution of test patterns in a random test generator
US6473779B1 (en) * 1996-10-03 2002-10-29 Texas Instruments Incorporated Combinatorial polynomial multiplier for galois field 256 arithmetic
US5784602A (en) 1996-10-08 1998-07-21 Advanced Risc Machines Limited Method and apparatus for digital signal processing for integrated circuit architecture
US5996066A (en) 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
JP3790307B2 (ja) 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
DE19644688B4 (de) 1996-10-28 2005-06-16 Systemonic Ag Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2m)
KR100291383B1 (ko) 1996-11-18 2001-09-17 윤종용 디지털신호처리를위한명령을지원하는모듈계산장치및방법
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
JPH10171350A (ja) 1996-12-10 1998-06-26 Hitachi Ltd ハッシュ値生成方法および装置
US5918031A (en) 1996-12-18 1999-06-29 Intel Corporation Computer utilizing special micro-operations for encoding of multiple variant code flows
US6006316A (en) 1996-12-20 1999-12-21 International Business Machines, Corporation Performing SIMD shift and arithmetic operation in non-SIMD architecture by operation on packed data of sub-operands and carry over-correction
FR2758195B1 (fr) 1997-01-09 1999-02-26 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire comprenant deux circuits de multiplication operant en parallele
US5880984A (en) 1997-01-13 1999-03-09 International Business Machines Corporation Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US5881307A (en) 1997-02-24 1999-03-09 Samsung Electronics Co., Ltd. Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor
US5922066A (en) 1997-02-24 1999-07-13 Samsung Electronics Co., Ltd. Multifunction data aligner in wide data width processor
US5875336A (en) 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
GB9707861D0 (en) 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6154834A (en) 1997-05-27 2000-11-28 Intel Corporation Detachable processor module containing external microcode expansion memory
US6035120A (en) 1997-05-28 2000-03-07 Sun Microsystems, Inc. Method and apparatus for converting executable computer programs in a heterogeneous computing environment
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US5790827A (en) 1997-06-20 1998-08-04 Sun Microsystems, Inc. Method for dependency checking using a scoreboard for a pair of register sets having different precisions
US5960012A (en) 1997-06-23 1999-09-28 Sun Microsystems, Inc. Checksum determination using parallel computations on multiple packed data elements
US5887181A (en) 1997-06-23 1999-03-23 Sun Microsystems, Inc. Method and apparatus for reducing a computational result to the range boundaries of an unsigned 8-bit integer in case of overflow
US6233597B1 (en) 1997-07-09 2001-05-15 Matsushita Electric Industrial Co., Ltd. Computing apparatus for double-precision multiplication
JP4018158B2 (ja) 1997-10-02 2007-12-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変命令セットコンピュータ
JP3945829B2 (ja) 1997-10-02 2007-07-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 仮想マシン命令を実行するための処理装置
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
EP0924895B1 (en) 1997-12-17 2009-07-08 Nippon Telegraph and Telephone Corporation Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon
JP3402441B2 (ja) * 1997-12-17 2003-05-06 日本電信電話株式会社 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体
US6181729B1 (en) * 1997-12-19 2001-01-30 Supergold Communication Limited Spread spectrum communication
US6009450A (en) 1997-12-24 1999-12-28 Motorola, Inc. Finite field inverse circuit
US6044389A (en) 1997-12-29 2000-03-28 Quantum Corporation System for computing the multiplicative inverse of a field element for galois fields without using tables
US6026420A (en) * 1998-01-20 2000-02-15 3Com Corporation High-speed evaluation of polynomials
US6058500A (en) * 1998-01-20 2000-05-02 3Com Corporation High-speed syndrome calculation
US6122738A (en) * 1998-01-22 2000-09-19 Symantec Corporation Computer file integrity verification
US6138229A (en) 1998-05-29 2000-10-24 Motorola, Inc. Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units
US6141786A (en) 1998-06-04 2000-10-31 Intenational Business Machines Corporation Method and apparatus for performing arithmetic operations on Galois fields and their extensions
US6438678B1 (en) 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
US6199087B1 (en) 1998-06-25 2001-03-06 Hewlett-Packard Company Apparatus and method for efficient arithmetic in finite fields through alternative representation
US6073154A (en) 1998-06-26 2000-06-06 Xilinx, Inc. Computing multidimensional DFTs in FPGA
US6199088B1 (en) 1998-06-30 2001-03-06 Quantum Corp. Circuit for determining multiplicative inverses in certain galois fields
US6314445B1 (en) 1998-08-03 2001-11-06 International Business Machines Coproration Native function calling
US6263429B1 (en) 1998-09-30 2001-07-17 Conexant Systems, Inc. Dynamic microcode for embedded processors
JP2000172520A (ja) * 1998-12-04 2000-06-23 Fujitsu Ltd ガロア体演算プロセッサ
US6397241B1 (en) 1998-12-18 2002-05-28 Motorola, Inc. Multiplier cell and method of computing
AU3286399A (en) * 1998-12-18 2000-07-12 Motorola, Inc. Circuit and method of cryptographic multiplication
JP3585800B2 (ja) 1999-01-13 2004-11-04 株式会社東芝 情報処理装置
JP2001034167A (ja) * 1999-07-23 2001-02-09 Toshiba Corp 演算装置及び暗号処理装置
US6480872B1 (en) 1999-01-21 2002-11-12 Sandcraft, Inc. Floating-point and integer multiply-add and multiply-accumulate
US6453407B1 (en) 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
DE19907575A1 (de) 1999-02-23 2000-08-24 Philips Corp Intellectual Pty Schaltungsanordnung zum Liefern eines Speisestromes
JP3553815B2 (ja) * 1999-04-01 2004-08-11 富士通株式会社 演算装置
JP3833412B2 (ja) 1999-04-09 2006-10-11 富士通株式会社 有限体演算における表現データ生成装置および方法
JP2000321979A (ja) 1999-05-14 2000-11-24 Matsushita Electric Ind Co Ltd 多項式演算装置、楕円曲線位数計算装置、楕円曲線生成装置及び楕円曲線暗号システム
TW482980B (en) 1999-05-31 2002-04-11 Ibm Hardware device for executing base programmable instructions based upon micro-instructions
JP2001147799A (ja) 1999-10-01 2001-05-29 Hitachi Ltd データ移動方法および条件付転送論理ならびにデータの配列換え方法およびデータのコピー方法
US6615366B1 (en) 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6760742B1 (en) 2000-02-18 2004-07-06 Texas Instruments Incorporated Multi-dimensional galois field multiplier
US6711602B1 (en) 2000-02-18 2004-03-23 Texas Instruments Incorporated Data processor with flexible multiply unit
US6513054B1 (en) 2000-02-22 2003-01-28 The United States Of America As Represented By The Secretary Of The Army Asynchronous parallel arithmetic processor utilizing coefficient polynomial arithmetic (CPA)
WO2001069376A2 (en) 2000-03-15 2001-09-20 Arc International Plc Method and apparatus for processor code optimization using code compression
EP1290555A2 (en) 2000-03-20 2003-03-12 Koninklijke Philips Electronics N.V. Method of executing a computer program with an interpreter, computer system and computer program product
AU2001288209A1 (en) 2000-05-05 2001-11-26 Ruby B. Lee A method and system for performing permutations using permutation instructions based on modified omega and flip stages
US6625726B1 (en) 2000-06-02 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for fault handling in computer systems
US6651160B1 (en) 2000-09-01 2003-11-18 Mips Technologies, Inc. Register set extension for compressed instruction set
US6625737B1 (en) 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
US20020069402A1 (en) 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7599981B2 (en) 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7003715B1 (en) * 2001-03-30 2006-02-21 Cisco Technology, Inc. Galois field multiply accumulator

Also Published As

Publication number Publication date
JP2004533671A (ja) 2004-11-04
US7711763B2 (en) 2010-05-04
EP1386224A4 (en) 2008-11-26
CN100422926C (zh) 2008-10-01
WO2002069136A1 (en) 2002-09-06
EP1386224A1 (en) 2004-02-04
JP2009282992A (ja) 2009-12-03
US20020116428A1 (en) 2002-08-22

Similar Documents

Publication Publication Date Title
JP5231336B2 (ja) 拡張精度アキュムレータ
US7599981B2 (en) Binary polynomial multiplier
Shantz From Euclid's GCD to Montgomery multiplication to the great divide
CN102084335B (zh) 任意伽罗瓦域算术在可编程处理器上的实施
JP2009282992A (ja) 多項式演算オペレーション
EP2276194B1 (en) System and method for reducing the computation and storage requirements for a Montgomery-style reduction
Savas et al. Architectures for unified field inversion with applications in elliptic curve cryptography
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
WO2006124160A2 (en) Randomized modular polynomial reduction method and hardware therefor
WO1999004332A1 (en) Composite field multiplicative inverse calculation for elliptic curve cryptography
Page et al. Parallel cryptographic arithmetic using a redundant Montgomery representation
JP5193358B2 (ja) 多項式データ処理演算
JP2002023999A (ja) 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器
Ibraimov et al. Hardware implementation of the coding algorithm based on FPGA
Monfared et al. Secure and efficient exponentiation architectures using Gaussian normal basis
Arunachalamani et al. High Radix Design for Montgomery Multiplier in FPGA platform
Yang et al. An optimized scalable and unified hardware structure of Montgomery multiplier
Moudgill et al. Galois Field Instructions in the Sandblaster 2.0 Architectrue
WO2000041068A1 (en) Method for generating a value for a multiplicative inverse of an element of a galois field
Neustadter et al. Elliptic Curves over Prime and Binary Fields in Cryptography
Venkatasubramani et al. Novel Methods for Montgomery Modular Multiplication for Public Key Cryptosystems
WO2003083642A2 (en) A data processing system and method for performing a mathematical operation on multi bit binary integer numbers using floating point arithmetic
JPS63129388A (ja) Rsa暗号の復号化装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20141210

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECHNOLOGIES, INC.

Effective date: 20141210

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141210

Address after: cambridge

Patentee after: ARM Overseas Finance Co.,Ltd.

Address before: American New Jersey

Patentee before: Overpass Bridge Co.,Ltd.

Effective date of registration: 20141210

Address after: American New Jersey

Patentee after: Overpass Bridge Co.,Ltd.

Address before: California, USA

Patentee before: Mips Technologies, Inc.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20081001