IP Library Granted Patent US 8,255,644
Granted Patent B2
US 8,255,644 · App. 12/782,393 · Granted Aug 28, 2012

Network communications processor architecture with memory load balancing

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,255,644
App. No.
12/782,393
Granted
Aug 28, 2012
Kind
B2
Abstract

Described embodiments provide a memory system including a plurality of addressable memory arrays. Data in the arrays is accessed by receiving a logical address of data in the addressable memory array and computing a hash value based on at least a part of the logical address. One of the addressable memory arrays is selected based on the hash value. Data in the selected addressable memory array is accessed using a physical address based on at least part of the logical address not used to compute the hash value. The hash value is generated by a hash function to provide essentially random selection of each of the addressable memory arrays.

Claims (27)

1. In a memory system comprising a plurality of hardware engines, the hardware engines coupled to (i) at least one unidirectional ring bus, and (ii) a plurality of addressable memory arrays, a method of accessing data in the arrays, the method comprising the steps of:

sending, by a source one of the plurality of hardware engines, a task message over the at least one unidirectional ring bus to an adjacent hardware engine coupled to the ring bus, the task message having a corresponding one or more destination hardware engines;

iteratively:

checking, by the adjacent hardware engine, whether the hardware engine is a destination hardware engine for the task message and, if not, passing the task message unchanged to a next adjacent hardware engine coupled to the ring bus, thereby passing the task message from the source hardware engine to each corresponding destination engine on the ring bus;

reading, from the received task message by the corresponding one or more destination hardware engines, a logical address of data in the addressable memory array to be accessed;

computing, by the destination hardware engine, a hash value based on at least a part of the logical address;

selecting one of the plurality of addressable memory arrays based on the hash value; and

accessing the data in the selected addressable memory array using a physical address based on at least part of the logical address not used to compute the hash value.

2. The method of claim 1 , wherein the step of computing the hash value is completed in one clock cycle.

3. The method of claim 1 , wherein the plurality of addressable memory arrays comprises at least a power of two addressable memory arrays.

4. The method of claim 1 , wherein at least a portion of the addressable memory arrays are organized into caches.

5. The method of claim 1 , wherein the hash value is generated to provide random selection of each of the addressable memory arrays.

6. A memory system comprising:

a plurality of hardware engines the hardware engines each coupled to (i) at least one unidirectional ring bus, and (ii) a plurality of addressable memory arrays;

each hardware engine configured to:

send a task message over the at least one unidirectional ring bus to an adjacent hardware engine coupled to the ring bus, the task message having a corresponding one or more destination hardware engines;

check, upon receiving a task message, whether the hardware engine is a destination hardware engine for the task message and, if not, pass the task message unchanged to a next adjacent hardware engine coupled to the ring bus, whereby the task message is passed from the source hardware engine to each corresponding destination engine on the ring bus;

read from the task message, if the hardware engine is a destination engine for the task message, a logical address of data in the addressable memory array to be accessed by the destination hardware engine;

generate a hash value based on at least a part of the logical address;

select one of the plurality of addressable memory arrays based on the hash value; and

access the data in the selected addressable memory array using a physical address based on at least part of the logical address not used to compute the hash value.

7. The memory system of claim 6 , wherein the hardware engine is configured to generate the hash value in one clock cycle.

8. The memory system of claim 6 , wherein the plurality of addressable memory arrays comprises at least a power of two addressable memory arrays.

9. The memory system of claim 6 , wherein the hash value is configured to provide random accesses by the circuit of each of the addressable memory arrays.

10. The memory system of claim 6 , wherein the memory system is implemented in a network processor.

11. The memory system of claim 10 , wherein the network processor is implemented in an integrated circuit chip.

12. The memory system of claim 10 , wherein each of the plurality of addressable memory arrays of the memory system are coupled to one or more processing cores of the network processor by a non-blocking crossbar switch.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
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 Sep 9, 2010
From: SONNIER, DAVID P.; BETKER, MICHAEL R.
To: LSI CORPORATION
Reel/Frame 024960/0909 →