WO2006029152A3 - Multiply instructions for modular exponentiation - Google Patents

Multiply instructions for modular exponentiation Download PDF

Info

Publication number
WO2006029152A3
WO2006029152A3 PCT/US2005/031709 US2005031709W WO2006029152A3 WO 2006029152 A3 WO2006029152 A3 WO 2006029152A3 US 2005031709 W US2005031709 W US 2005031709W WO 2006029152 A3 WO2006029152 A3 WO 2006029152A3
Authority
WO
WIPO (PCT)
Prior art keywords
multiply
processor
modular exponentiation
intermediate results
multiplication operation
Prior art date
Application number
PCT/US2005/031709
Other languages
French (fr)
Other versions
WO2006029152A2 (en
Inventor
David A Carlson
Original Assignee
Cavium Networks
David A Carlson
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 Cavium Networks, David A Carlson filed Critical Cavium Networks
Priority to EP05818045A priority Critical patent/EP1817661A2/en
Publication of WO2006029152A2 publication Critical patent/WO2006029152A2/en
Publication of WO2006029152A3 publication Critical patent/WO2006029152A3/en

Links

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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/527Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/723Modular exponentiation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

A method and apparatus for increasing performance of a multiplication operation in a processor. The processor's instruction set includes multiply instructions that can be used to accelerate modular exponentiation. Prior to issuing a sequence of multiply instructions for the multiplication operation, a multiplier register in a multiply unit in the processor is loaded with the value of the multiplier. The multiply unit stores intermediate results of the multiplication operation in redundant format. The intermediate results are shifted and stored in the product register in the multiply unit so that carries between intermediate results are handled within the multiply unit.
PCT/US2005/031709 2004-09-10 2005-09-01 Multiply instructions for modular exponentiation WO2006029152A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05818045A EP1817661A2 (en) 2004-09-10 2005-09-01 Multiply instructions for modular exponentiation

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US60921104P 2004-09-10 2004-09-10
US60/609,211 2004-09-10
US11/044,648 2005-01-27
US11/044,648 US20060059221A1 (en) 2004-09-10 2005-01-27 Multiply instructions for modular exponentiation

Publications (2)

Publication Number Publication Date
WO2006029152A2 WO2006029152A2 (en) 2006-03-16
WO2006029152A3 true WO2006029152A3 (en) 2006-09-14

Family

ID=36035380

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/031709 WO2006029152A2 (en) 2004-09-10 2005-09-01 Multiply instructions for modular exponentiation

Country Status (3)

Country Link
US (1) US20060059221A1 (en)
EP (1) EP1817661A2 (en)
WO (1) WO2006029152A2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100717240B1 (en) 2005-07-20 2007-05-11 엔에이치엔(주) Method and system for providing reliable sequence
US9002915B1 (en) 2009-04-02 2015-04-07 Xilinx, Inc. Circuits for shifting bussed data
US9411554B1 (en) * 2009-04-02 2016-08-09 Xilinx, Inc. Signed multiplier circuit utilizing a uniform array of logic blocks
US8527572B1 (en) * 2009-04-02 2013-09-03 Xilinx, Inc. Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same
US8706793B1 (en) * 2009-04-02 2014-04-22 Xilinx, Inc. Multiplier circuits with optional shift function
CN104254833B (en) 2012-05-30 2018-01-30 英特尔公司 Mould exponentiation based on vector sum scalar
US9355068B2 (en) 2012-06-29 2016-05-31 Intel Corporation Vector multiplication with operand base system conversion and re-conversion
US10095516B2 (en) 2012-06-29 2018-10-09 Intel Corporation Vector multiplication with accumulation in large register space
FR3023047B1 (en) 2014-06-27 2016-06-24 Continental Automotive France METHOD FOR MANAGING FAILURE MESSAGES OF A MOTOR VEHICLE
JP5917678B1 (en) 2014-12-26 2016-05-18 株式会社Pfu Information processing apparatus, method, and program
US11038856B2 (en) * 2018-09-26 2021-06-15 Marvell Asia Pte, Ltd. Secure in-line network packet transmittal
CN110098977B (en) * 2019-04-12 2020-11-06 中国科学院声学研究所 Network data packet in-sequence storage method, computer device and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
EP0890899A2 (en) * 1997-07-09 1999-01-13 Matsushita Electric Industrial Co., Ltd. Multiplication method and apparatus
US6484194B1 (en) * 1998-06-17 2002-11-19 Texas Instruments Incorporated Low cost multiplier block with chain capability

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5422805A (en) * 1992-10-21 1995-06-06 Motorola, Inc. Method and apparatus for multiplying two numbers using signed arithmetic
JP3655403B2 (en) * 1995-10-09 2005-06-02 株式会社ルネサステクノロジ Data processing device
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6434586B1 (en) * 1999-01-29 2002-08-13 Compaq Computer Corporation Narrow Wallace multiplier
CA2294554A1 (en) * 1999-12-30 2001-06-30 Mosaid Technologies Incorporated Method and circuit for multiplication using booth encoding and iterative addition techniques
US6633896B1 (en) * 2000-03-30 2003-10-14 Intel Corporation Method and system for multiplying large numbers
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
US7346159B2 (en) * 2002-05-01 2008-03-18 Sun Microsystems, Inc. Generic modular multiplier using partial reduction
US7266580B2 (en) * 2003-05-12 2007-09-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
EP0890899A2 (en) * 1997-07-09 1999-01-13 Matsushita Electric Industrial Co., Ltd. Multiplication method and apparatus
US6484194B1 (en) * 1998-06-17 2002-11-19 Texas Instruments Incorporated Low cost multiplier block with chain capability

Also Published As

Publication number Publication date
WO2006029152A2 (en) 2006-03-16
EP1817661A2 (en) 2007-08-15
US20060059221A1 (en) 2006-03-16

Similar Documents

Publication Publication Date Title
WO2006029152A3 (en) Multiply instructions for modular exponentiation
EP1496432A3 (en) Method and apparatus for performing multiplication of signed packed operands
TW200500940A (en) Simd integer multiply high with round and shift
WO2005101190A3 (en) Processor having parallel vector multiply and reduce operations with sequential semantics
WO2004103056A3 (en) Processor reduction unit for accumulation of multiple operands with or without saturation
WO2001097007A3 (en) Math coprocessor
WO2001033332A3 (en) Method and apparatus for representing arithmetic intervals within a computer system
EP1320027A3 (en) Elliptic curve cryptosystem apparatus, method and program
WO2003021373A3 (en) Vector-matrix multiplication
AU6516498A (en) Improved apparatus & method for modular multiplication & exponentiation based onmontgomery multiplication
WO2007140338A3 (en) Graphics processor with arithmetic and elementary function units
WO2008016489A3 (en) Methods and systems for modifying an integrity measurement based on user athentication
EP0212571A3 (en) Method and circuit for performing discrete transforms
IES20080198A2 (en) A processor
TW200710731A (en) Method and apparatus for precise handling of exceptions during program code conversion
WO2006060541A3 (en) Market-based labeling system and method
TW200641666A (en) Microprocessor apparatus and method for modular exponentiation
WO2004111838A3 (en) Method and data processor for reduced pipeline stalling
WO2003029954A3 (en) Splittable multiplier for efficient mixed-precision dsp
WO2008142750A1 (en) Calculation unit, processor, and processor architecture
AU2003289909A1 (en) Device and method for calculating a multiplication involving a shifting of the multiplicand
AU2066297A (en) Method and apparatus for performing an operation multiple times in response o a single instruction
WO2005001686A3 (en) Data packet arithmetic logic devices and methods
WO2006102379A3 (en) Processor and method of grouping and executing dependent instructions in a packet
WO2004059515A3 (en) Modular multiplication with parallel calculation of look-ahead parameters

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005818045

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005818045

Country of ref document: EP