IP Library Patent Application 14705333
Patent Application
App. No. 14/705,333

Ternary Content Addressable Memory Scan-Engine

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 None
App. No.
14/705,333
Abstract

A packet processing pipeline very efficiently checks for parity errors in memories located along the packet pipeline. The parity check is highly parallelized. For instance, individual unit layouts that are the constituent memory instances of a particular memory execute the parity check in parallel. As another example, each memory along the packet pipeline executes the parity check in parallel with the other memories at other pipeline stages. The parity computation and parity check operations may be implemented in hardware for extremely fast execution.

Claims (82)

1 . A system comprising:

a packet processing pipeline comprising:

a first pipeline stage; and

a second pipeline stage subsequent to the first pipeline stage;

a controller configured to:

issue a broadcast read instruction into the packet processing pipeline;

a first memory at the first pipeline stage, the first memory configured to:

recognize the broadcast read instruction; and

perform a parity test of the first memory responsive to the broadcast read instruction;

a second memory at the second pipeline stage, the second memory configured to:

recognize the broadcast read instruction; and

perform a parity test of the second memory responsive to the broadcast read instruction.

2 . The system of claim 1 , where:

the broadcast read instruction comprises:

an opcode identifying the broadcast read instruction for execution by both the first memory and the second memory; and

a memory address within both the first memory and the second memory at which to perform the parity tests.

3 . The system of claim 1 , where the first memory comprises:

parity check logic operable to determine whether a parity error exists in the first memory.

4 . The system of claim 1 , where the first memory comprises:

parity compute logic operable to determine parity to store in the first memory.

5 . The system of claim 1 , where the first memory comprises:

a data bit array; and

a parity bit array for the data bit array.

6 . The system of claim 5 , where:

the parity bit array comprises an interleaved parity bit array.

7 . The system of claim 6 , where:

the interleaved parity bit array comprises an at least two bit interleaved parity bit array.

8 . The system of claim 1 , where:

the first memory comprises:

a first memory module; and

a second memory module; and where:

the first memory is configured to execute the parity test of the first memory on both the first memory module and the second memory module in parallel.

9 . The system of claim 8 , where:

the first and second memory module each comprise parity check logic operable to determine whether a parity error exists in their respective module.

10 . The system of claim 8 , where:

the first and second memory module each comprise parity compute logic operable to determine parity to store in their respective module.

11 . The system of claim 8 , where the first memory module and the second memory module comprise individual instances of a pre-defined macro block.

12 . The system of claim 8 , where:

the first memory module comprises a first parity output;

the second memory module comprises a second parity output; and

further comprising error arbitration logic operable to prioritize between the first parity output and the second parity output.

13 . A method comprising:

receiving a scan instruction at a first ternary content addressable memory (TCAM) at a first pipeline stage; and

responsive to the scan instruction, performing a first parity check in parallel over multiple TCAM constituent modules comprising the first TCAM at the first pipeline stage.

14 . The method of claim 13 , further comprising:

receiving the scan instruction at a second ternary content addressable memory (TCAM) at a second pipeline stage; and

responsive to the scan instruction, performing a second parity check in parallel over multiple TCAM constituent modules comprising the second TCAM at the second pipeline stage.

15 . The method of claim 13 , where receiving comprises:

receiving an opcode and an address; and further comprising:

recognizing the opcode as a broadcast read instruction; and

performing the first parity check in each TCAM constituent module at the address.

16 . The method of claim 13 , where the first pipeline stage is part of a packet processing pipeline, and further comprising:

determining a selected cycle at which to issue the scan instruction, the selected cycle occurring during a pre-scheduled overhead pipeline access time period; and

issuing the scan instruction into the packet processing pipeline at the selected cycle.

17 . The method of claim 13 , further comprising:

arbitrating error reporting between the multiple TCAM constituent modules when there is more than one parity error in the first TCAM.

18 . The method of claim 13 , where the scan instruction is part of a set of scan instructions, and further comprising:

issuing the set of scan instructions with addresses in the set configured to test each memory line in the multiple TCAM constituent modules.

19 . A system comprising:

a packet pipeline comprising:

a first pipeline stage; and

a second pipeline stage subsequent to the first pipeline stage;

a first ternary content addressable memory (TCAM) at the first pipeline stage, the first TCAM comprising:

a first instance of a pre-defined TCAM unit layout; and

a second instance of the pre-defined TCAM unit layout;

a second ternary content addressable memory (TCAM) at the second pipeline stage, the second TCAM comprising:

a third instance of the pre-defined TCAM unit layout; and

a controller in communication with the packet pipeline, the controller configured to:

sequentially issue a set of individual broadcast test instructions into the packet pipeline to test parity in parallel across the first TCAM and the second TCAM, the individual broadcast test instructions comprising:

an instruction opcode identifying the individual broadcast test instructions as parity test instructions for both the first TCAM and the second TCAM to execute; and

an address field for specifying memory addresses at which to test parity in both the first TCAM and the second TCAM;

the first TCAM configured to:

receive the set of individual broadcast test instructions; and

perform first individual parity tests of the first instance at the memory addresses responsive to the set of individual broadcast test instructions;

in parallel with the first parity test, perform second individual parity tests of the second instance at the memory addresses responsive to the set of individual broadcast test instructions; and

the second TCAM configured to:

receive the set of broadcast test instructions; and

perform third individual parity tests of the third instance at the memory address responsive to the set of broadcast test instructions.

20 . The system of claim 19 , where the controller is further configured to:

determine time periods during which pre-scheduled pipeline overhead access will occur for the packet pipeline;

from among the time periods, determine selected cycles at which to issue the set of individual broadcast test instructions; and

sequentially issue the individual broadcast test instructions into the packet pipeline at the selected cycles.

Assignments (4)
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 May 6, 2015
From: KULKARNI, ABHAY KUMAR; TSAI, KUNTA
To: BROADCOM CORPORATION
Reel/Frame 035577/0429 →