IP Library Granted Patent US 8,302,083
Granted Patent B2
US 8,302,083 · App. 12/321,643 · Granted Oct 30, 2012

Architecture and implementation method of programmable arithmetic controller for cryptographic applications

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 8,302,083
App. No.
12/321,643
Granted
Oct 30, 2012
Kind
B2
Abstract

An architecture includes a controller. The controller is configured to receive a microprogram. The microprogram is configured for performing at least one of hierarchical or a sequence of polynomial computations. The architecture also includes an arithmetic logic unit (ALU) communicably coupled to the controller. The ALU is controlled by the controller. Additionally, the microprogram is compiled prior to execution by the controller, the microprogram is compiled into a plurality of binary tables, and the microprogram is programmed in a command language in which each command includes a first portion for indicating at least one of a command or data transferred to the ALU, and a second portion for including a control command to the controller. The architecture and implementation of the programmable controller may be for cryptographic applications, including those related to public key cryptography.

Claims (27)

1. An architecture comprising:

a controller, the controller configured to receive a microprogram, the microprogram configured for performing at least one of hierarchical or a sequence of polynomial computations;

an arithmetic logic unit (ALU) communicably coupled to the controller, the ALU controlled by the controller; and

a hierarchical function library including a memory, the hierarchical function library storing separate blocks of subprograms and subfunctions in at least four levels of subprograms and subfunctions, wherein the at least four levels include a top level for including protocols, an application level for including relatively complex operational functionality, an arithmetic level for including operational functionality, and a ground level for including initial ALU operations;

wherein the microprogram is compiled prior to execution by the controller, the microprogram is compiled into a plurality of binary tables, and the microprogram is programmed in a command language in which each command includes a first portion for indicating at least one of a command or data transferred to the ALU, and a second portion for including a control command to the controller, and wherein the plurality of binary tables includes a PROGRAM ROM binary table, a LABEL ROM binary table, a FUNCTION ROM binary table, and an F_id DECODER binary table, the PROGRAM ROM binary table including binary code of the microprogram to be executed during runtime, the LABEL ROM binary table including addresses of commands labeled in the microprogram, the FUNCTION ROM binary table including addresses of functions and subfunctions as entry points to be called during execution, and the F_id DECODER binary table including indices of functions accessible for external control for decoding.

2. The architecture of claim 1 , wherein the microprogram includes indices for the LABEL ROM binary table and the FUNCTION ROM binary table, the indices requiring less memory than full addresses of commands.

3. The architecture of claim 1 , wherein only the ground level requires direct hardware support for implementation.

4. A method comprising:

programming a microprogram in a command language in which each microprogram command includes a first portion for indicating at least one of a command or data transferred to an arithmetic logic unit (ALU), and a second portion for including a control command to a controller;

compiling the microprogram into a plurality of binary tables, the microprogram configured for performing at least one of hierarchical or a sequence of polynomial computations, wherein compiling the microprogram into a plurality of binary tables includes compiling the microprogram from a hierarchical function library;

executing the microprogram by a controller;

configuring at least one of the plurality of binary tables for including the code of the microprogram;

configuring at least one of the plurality of binary tables for storing at least one address of a command labeled in the microprogram; and

storing separate blocks of subprograms and subfunctions in at least four levels of subprograms and subfunctions, the at least four levels include a top level for including protocols, an application level for including relatively complex operational functionality, an arithmetic level for including operational functionality, and a ground level for including initial ALU operations;

wherein the plurality of binary tables includes a PROGRAM ROM binary table, a

LABEL ROM binary table, a FUNCTION ROM binary table, and an F_id DECODER binary table, the PROGRAM ROM binary table including binary code of the microprogram to be executed during runtime, the LABEL ROM binary table including addresses of commands labeled in the microprogram, the FUNCTION ROM binary table including addresses of functions and subfunctions as entry points to be called during execution, and the F_id DECODER binary table including indices of functions accessible for external control for decoding.

5. The method of claim 4 , further including configuring at least one of the plurality of binary tables for storing addresses of at least one of a function or a subfunction as an entry point for calling during execution of the microprogram.

6. The method of claim 4 , further including configuring at least one of the plurality of binary tables for decoding indices of functions accessible for external control.

7. The method of claim 4 , further including performing at least one of editing the microprogram or generating binary tables, during which a controller netlist remains unchanged.

8. The method of claim 4 , further comprising providing hardware support for only the ground level.

9. A system comprising:

a controller, the controller configured to receive a microprogram, the microprogram configured for performing at least one of hierarchical or a sequence of polynomial computations;

an arithmetic logic unit (ALU) communicably coupled to the controller, the ALU controlled by the controller;

a command register communicably coupled to the controller, the command register controlled by the controller and configured for storing at least one of input data, output data, or internal registers; and

a hierarchical function library including a memory, the hierarchical function library storing separate blocks of subprograms and subfunctions in at least four levels of subprograms and subfunctions, wherein the at least four levels include a top level for including protocols, an application level for including relatively complex operational functionality, an arithmetic level for including operational functionality, and a ground level for including initial ALU operations;

wherein the microprogram is compiled prior to execution by the controller, the microprogram is compiled into four binary tables, and the microprogram is programmed in a command language in which each command includes a first portion for indicating at least one of a command or data transferred to the ALU, and a second portion for including a control command to the controller, and wherein the four binary tables include a PROGRAM ROM binary table, a LABEL ROM binary table, a FUNCTION ROM binary table, and an F id DECODER binary table, the PROGRAM ROM binary table including binary code of the microprogram to be executed during runtime, the LABEL ROM binary table including addresses of commands labeled in the microprogram, the FUNCTION ROM binary table including addresses of functions and subfunctions as entry points to be called during execution, and the F_id DECODER binary table including indices of functions accessible for external control for decoding.

10. The system of claim 9 , wherein the microprogram includes indices for the LABEL ROM binary table and the FUNCTION ROM binary table, the indices requiring less memory than full addresses of commands.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2009
From: BOLOTOV, ANATOLI A.; GRINCHUK, MIKHAIL I.; IVANOVIC, LAV D.; GALATENKO, ALEXEI V.
To: LSI CORPORATION
Reel/Frame 022215/0900 →