IP Library Granted Patent US 12,135,955
Granted Patent B2
US 12,135,955 · App. 17/133,815 · Granted Nov 5, 2024

Systems and methods for low latency modular multiplication

Inventors: Martin Langhammer (Alderbury, GB); Bogdan Mihai Pasca (Toulouse, FR)
Assignee: Intel Corporation
G06F7/5275G06F7/507G06F7/5277G06F7/5443
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,135,955
App. No.
17/133,815
Granted
Nov 5, 2024
Kind
B2
Abstract

An integrated circuit device includes multiplier circuitry configured to determine a plurality of columns of subproducts by multiplying a plurality of values. Each column of the plurality of columns includes one or more subproducts of a plurality of subproducts. The integrated circuit device also includes adder circuitry configured to determine a plurality of sums, each sum being a sum of one column of the plurality of columns. A first portion of the adder circuitry associated with a first column of the plurality of columns is configured to receive a first value and second value that are associated with the first column and a third value associated with a second column of the plurality of columns that differs from the first column. The third value is a carry-out value generated by a second portion of the adder circuitry associated with the second column of the plurality of columns.

Claims (54)

1. An integrated circuit device comprising:

multiplier circuitry configured to determine a plurality of columns of subproducts by multiplying a plurality of values, wherein the plurality of columns of subproducts comprises a plurality of subproducts and each column of the plurality of columns comprises one or more subproducts of the plurality of subproducts; and

adder circuitry configured to determine a plurality of sums, wherein each sum of the plurality of sums is a sum of one column of the plurality of columns, wherein a first portion of the adder circuitry associated with a first column of the plurality of columns is configured to receive a first value associated with the first column, a second value associated with the first column, and a third value associated with a second column of the plurality of columns that differs from the first column, wherein the third value is a carry-out value generated by a second portion of the adder circuitry associated with the second column, and wherein the first portion of the adder circuitry comprises:

ternary adder circuitry configured to add the first portion of the first value, a second portion of the second value, and the third value, wherein the first portion of the first value, the second portion of the second value, and the third value each include a first number of bits;

compressor circuitry communicatively coupled to the ternary adder circuitry, wherein the compressor circuitry is configured to receive a first remaining portion of the first value and a second remaining portion of the second value, wherein the first remaining portion of the first value and the second remaining portion of the second value each include a second number of bits, wherein the second number of bits is greater than the first number of bits; and

binary adder circuitry communicatively coupled to the compressor circuitry, wherein the binary adder circuitry is configured to output a sum of the first remaining portion of the first value and the second remaining portion of the second value.

2. The integrated circuit device of claim 1 , comprising one or more lookup-tables configured to generate a plurality of modulus values from a portion of the plurality of sums.

3. The integrated circuit device of claim 2 , comprising second adder circuitry configured to determine a sum of the plurality of modulus values.

4. The integrated circuit device of claim 3 , wherein:

the plurality of modulus values comprises:

a first modulus value associated with a third column of the plurality of columns having a first portion of the plurality of subproducts;

a second modulus value associated with a fourth column of the plurality of columns having a second portion of the plurality of subproducts, wherein the second portion of the plurality of subproducts includes more subproducts than the first portion of the plurality of subproducts;

a third modulus value associated with a fifth column of the plurality of columns having a third portion of the plurality of subproducts, wherein the third portion of the plurality of subproducts includes more subproducts than the second portion of the plurality of subproducts; and

a fourth modulus value associated with a sixth column of the plurality of columns having a fourth portion of the plurality of subproducts, wherein the fourth portion of the plurality of subproducts includes more subproducts than the third portion of the plurality of subproducts; and

the second adder circuitry is configured to determine a first sum of the first modulus value and the second modulus value before the third modulus value, the fourth modulus value, or both are determined.

5. The integrated circuit device of claim 4 , wherein the second adder circuitry is configured to:

determine a second sum of the third modulus value and the fourth modulus value after determining the first sum; and

determine a third sum of the first sum and the second sum after determining the second sum.

6. The integrated circuit device of claim 1 , wherein:

the compressor circuitry is configured to left-shift bits of the second remaining portion of the second value; and

the binary adder circuitry is configured to receive a second carry-out value generated by the ternary adder circuitry.

7. The integrated circuit device of claim 1 , wherein the integrated circuit device comprises a field-programmable gate array (FPGA).

8. The integrated circuit device of claim 7 , wherein the multiplier circuitry comprises one or more digital signal processing (DSP) blocks of the FPGA.

9. The integrated circuit device of claim 7 , wherein:

the multiplier circuitry is implemented on hard logic of the FPGA; and

the adder circuitry is implemented on soft logic of the FPGA.

10. The integrated circuit device of claim 7 , wherein the ternary adder circuitry is implemented on soft logic of the FPGA, the compressor circuitry is implemented on the soft logic of the FPGA, the binary adder circuitry implemented on the soft logic of the FPGA, or a combination thereof.

11. A method comprising:

determining, via multiplier circuitry of an integrated circuit device, a plurality of columns of subproducts by multiplying a plurality of values, wherein the plurality of columns of subproducts comprises a plurality of subproducts and each column of the plurality of columns comprises one or more subproducts of the plurality of subproducts; and

determining, via adder circuitry of the integrated circuit device, a plurality of sums, wherein each sum of the plurality of sums is a sum of one column of the plurality of columns, wherein determining the plurality of sums comprises:

receiving, via a first portion of the adder circuitry associated with a first column of the plurality of columns, a first value associated with the first column, a second value associated with the first column, and a third value associated with a second column of the plurality of columns that differs from the first column, wherein the third value is a carry-out value generated by a second portion of the adder circuitry associated with the second column of the plurality of columns;

determining, via the first portion of the adder circuitry, a sum of a first portion of the first value, a second portion of the second value, and the third value; and

generating, via the integrated circuit device, a plurality of modulus values from a portion of the plurality of sums, wherein the plurality of modulus values are added in an order based on latencies associated with determining the plurality of sums.

12. The method of claim 11 , comprising determining, via the first portion of the adder circuitry, a sum of a remaining portion of the first value and a remaining portion of the second value.

13. The method of claim 11 , wherein the integrated circuit device comprises a programmable logic device.

14. The method of claim 11 , wherein the first portion of the adder circuitry comprises:

ternary adder circuitry configured to add the first portion of the first value, the second portion of the second value, and the third value, wherein the first portion of the first value, the second portion of the second value, and the third value each include a first number of bits;

compressor circuitry communicatively coupled to the ternary adder circuitry, wherein the compressor circuitry is configured to receive a first remaining portion of the first value and a second remaining portion of the second value, wherein the first remaining portion of the first value and the second remaining portion of the second value each include a second number of bits, wherein the second number of bits is greater than the first number of bits; and

binary adder circuitry communicatively coupled to the compressor circuitry, wherein the binary adder circuitry is configured to output a sum of the first remaining portion of the first value and the second remaining portion of the second value.

15. The method of claim 11 , the plurality of modulus values comprises:

a first modulus value associated with a third column of the plurality of columns having a first portion of the plurality of subproducts; and

a second modulus value associated with a fourth column of the plurality of columns having a second portion of the plurality of subproducts, wherein the second portion of the plurality of subproducts includes more subproducts than the first portion of the plurality of subproducts.

16. A programmable logic device configurable to be programmed to perform modular multiplication, wherein, when programmed, the programmable logic device comprises:

multiplier circuitry configured to determine a plurality of columns of subproducts by multiplying a plurality of values, wherein the plurality of columns of subproducts comprises a plurality of subproducts and each column of the plurality of columns comprises one or more subproducts of the plurality of subproducts; and

adder circuitry at least partially implemented in programmable logic of the programmable logic device, wherein the adder circuitry is configured to determine a plurality of sums, wherein each sum of the plurality of sums is a sum of one column of the plurality of columns, wherein a first portion of the adder circuitry associated with a first column of the plurality of columns is configured to receive a first value associated with the first column, a second value associated with the first column, and a third value associated with a second column of the plurality of columns that differs from the first column, wherein the third value is a carry-out value generated by a second portion of the adder circuitry associated with the second column of the plurality of columns, and wherein the first portion of the adder circuitry comprises:

ternary adder circuitry configured to add a first portion of the first value, a second portion of the second value, and the third value, wherein the first portion of the first value, the second portion of the second value, and the third value each include a first number of bits;

compressor circuitry communicatively coupled to the ternary adder circuitry, wherein the compressor circuitry is configured to receive a first remaining portion of the first value and a second remaining portion of the second value, wherein the first remaining portion of the first value and the second remaining portion of the second value each include a second number of bits, wherein the second number of bits is greater than the first number of bits; and

binary adder circuitry communicatively coupled to the compressor circuitry, wherein the binary adder circuitry is configured to output a sum of the first remaining portion of the first value and the second remaining portion of the second value.

17. The programmable logic device of claim 16 , wherein the multiplier circuitry comprises digital signal processing (DSP) circuitry that is implemented in a non-programmable portion of the programmable logic device.

18. The programmable logic device of claim 16 , wherein:

the third value comprises a first number of bits;

the first portion of the adder circuitry comprises a look-up table configured to receive a first input, second input, and third input that each have the first number of bits, wherein the first input is the first portion of the first value, the second input is the second portion of the second value, and the third input is the third value.

19. The programmable logic device of claim 16 , wherein the programmable logic device comprises a field-programmable gate array (FPGA).

20. The programmable logic device of claim 19 , wherein the ternary adder circuitry is implemented on soft logic of the FPGA, the compressor circuitry is implemented on the soft logic of the FPGA, the binary adder circuitry implemented on the soft logic of the FPGA, or a combination thereof.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: LANGHAMMER, MARTIN; PASCA, BOGDAN MIHAI
To: INTEL CORPORATION
Reel/Frame 057357/0838 →
Continuity (1)
Related Publication 20210117157A1 · Apr 22, 2021