IP Library Granted Patent US 7,434,043
Granted Patent B2
US 7,434,043 · App. 10/350,922 · Granted Oct 7, 2008

Cryptography accelerator data routing unit

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 7,434,043
App. No.
10/350,922
Granted
Oct 7, 2008
Kind
B2
Abstract

Methods and apparatus are provided for handling data at a cryptography accelerator output interface. A shared resource such as a shared output buffer is provided at the cryptography accelerator output interface having multiple output ports. The output interface shared resource can be allocated amongst the various output ports based on characteristics and requirements of the various input ports. References to data in the shared resource allow processing and ordering of data following processing by cryptographic processing cores.

Claims (44)

1. A cryptography accelerator, comprising:

a plurality of output ports;

a data routing unit input controller coupled to a plurality of data paths associated with a plurality of cryptographic processing cores, the data routing unit input controller configured to write data blocks from the plurality of data paths into an output buffer and write entries corresponding to the data blocks into a buffer pointer table;

a data routing unit load distributor configured to select entries from the buffer pointer table and provide the entries to a target list, wherein the target list is configurable to vary the allocation of output buffer space to each of the plurality of output ports; and

wherein both the data routing unit input controller and the data routing unit load distributor are configured to manage ordering and delay of the data blocks targeted at various output ports amongst the plurality of output ports.

2. The cryptography accelerator of claim 1 , further comprising a data routing unit output controller operable to receive buffer pointer table entries from the target list, pull data blocks corresponding to the entries from the input buffer, and forward the data blocks to the plurality of output ports.

3. The cryptography accelerator of claim 2 , wherein the output controller is further configured to return entries in the buffer pointer table as free after the data blocks have been forwarded to the plurality of data paths.

4. The cryptography accelerator of claim 2 , wherein the buffer pointer table is a free pointer list.

5. The cryptography accelerator of claim 2 , wherein the buffer pointer table is a data structure having a plurality of references corresponding to data blocks in the output buffer.

6. The cryptography accelerator of claim 2 , wherein the entries are pointers.

7. The cryptography accelerator of claim 2 , wherein the plurality of output ports comprise a streaming port and a memory mapped port.

8. A method for receiving data in a cryptography accelerator, comprising:

receiving a plurality of data sequences at a data routing unit input controller, the plurality of data sequences having been cryptographically processed by cryptographic processing circuitry;

writing the plurality of data sequences into a shared output buffer;

providing references to the data sequences in the shared output buffer, wherein the references identify the data sequences as well as the type of the data sequences; arranging the plurality of data sequences in order; and

forwarding the plurality of data sequences form the shared output buffer to a plurality of output ports.

9. The method of claim 8 , wherein the plurality of data sequences were cryptographically processed by a plurality of cryptographic processing blocks.

10. The method of claim 8 , wherein cryptographic processing circuitry comprises a plurality of cryptographic processing cores.

11. The method of claim 8 , wherein the cryptographic processing cores are grouped into a plurality of cryptographic processing blocks.

12. The method of claim 8 , wherein each cryptographic processing block comprises four cryptographic processing cores.

13. The method of claim 8 , wherein the plurality of output ports comprise a streaming interface port.

14. The method of claim 13 , wherein the plurality of output ports further comprise a memory mapped port.

15. The method of claim 8 , wherein the shared output buffer is shared by the plurality of output ports.

16. A cryptographic accelerator, comprising:

means for receiving a plurality of data sequences at a data routing unit input controller, wherein the plurality of data sequences were cryptographically processed by cryptographic processing circuitry;

means for writing the plurality of data sequences into a shared output buffer;

means for providing references to the data sequences in the shared output buffer, wherein the references identify the data sequences as well as the type of the data sequences;

means for arranging the plurality of data sequences in order; and

means for forwarding the plurality of data sequences from the shared output buffer to a plurality of output ports.

17. The cryptographic accelerator of claim 16 , wherein the plurality of data sequences were cryptographically processed by a plurality of cryptographic processing blocks.

18. The cryptographic accelerator of claim 16 , wherein cryptographic processing circuitry comprises a plurality of cryptographic processing cores.

19. The cryptographic accelerator of claim 16 , wherein the cryptographic processing cores are grouped into a plurality of cryptographic processing blocks.

20. The cryptographic accelerator of claim 16 , wherein each cryptographic processing block comprises four cryptographic processing cores.

21. The cryptographic accelerator of claim 16 , wherein the plurality of output ports comprise a streaming interface port.

22. The cryptographic accelerator of claim 21 , wherein the plurality of output ports further comprise a memory mapped port.

23. A cryptographic processor, comprising:

a plurality of output ports;

a cryptographic processing core configured to provide cryptographically processed data to a shared output buffer, wherein the shared output buffer space is dynamically allocable to the plurality of output ports based on characteristics associated with the plurality of output ports;

a buffer pointer table having a plurality of entries associated with data blocks in the shared output buffer, wherein an entry is processed to determine the output port to which an associated data block should be forwarded.

24. The cryptographic processor of claim 23 , wherein the buffer point table is a data structure comprising a plurality of pointers.

25. The cryptographic processor of claim 23 , further comprising a load distributor configured to select entries from the buffer pointer table and provide the entries to a target list, wherein the target list is configurable to vary the allocation of output buffer space to each of the plurality of output ports.

26. The cryptographic processor of claim 25 , further comprising an output controller operable to receive buffer pointer table entries from the target list, pull data blocks corresponding to the entries from the input buffer, and forward the data blocks to the plurality of output ports.

27. The cryptography accelerator of claim 26 , wherein the output controller is further configured to return entries in the buffer pointer table as free after the data blocks have been forwarded to the plurality of data paths.

28. The cryptography accelerator of claim 27 , wherein the buffer pointer table is a free pointer list.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048674/0834 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047357/0302 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0658 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2003
From: BUER, MARK; MATTHEWS, DONALD P.
To: BROADCOM CORPORATION
Reel/Frame 014008/0876 →