Multibank queuing system
First Claim
1. A method of load balancing across a plurality of memory banks, the method comprising:
- receiving data items to be stored in a first queue configured to store the data items until a processing device is ready to process the data items, wherein the first queue is distributed among the plurality of memory banks;
distributing the data items among the plurality of memory banks, including selecting memory banks in which to store the data items based on pseudorandom numbers generated for the data items, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed;
subsequently retrieving the data items from the plurality of memory banks, including selecting memory banks from which to retrieve the data items based on the pseudorandom numbers regenerated for the data items, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed; and
processing, with the processing device, the data items retrieved from the plurality of memory banks.
0 Assignments
0 Petitions
Accused Products
Abstract
Data items to be stored in a queue are received, where the queue is distributed among a plurality of memory banks. The data items are distributed among the plurality of memory banks, including selecting memory banks in which to store the data items based on pseudorandom numbers generated for the data items, where the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed. Subsequently the data items are retrieved from the plurality of memory banks, including selecting memory banks from which to retrieve the data items based on the pseudorandom numbers regenerated for the data items, where the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed.
36 Citations
23 Claims
-
1. A method of load balancing across a plurality of memory banks, the method comprising:
-
receiving data items to be stored in a first queue configured to store the data items until a processing device is ready to process the data items, wherein the first queue is distributed among the plurality of memory banks; distributing the data items among the plurality of memory banks, including selecting memory banks in which to store the data items based on pseudorandom numbers generated for the data items, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed; subsequently retrieving the data items from the plurality of memory banks, including selecting memory banks from which to retrieve the data items based on the pseudorandom numbers regenerated for the data items, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed; and processing, with the processing device, the data items retrieved from the plurality of memory banks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A queuing system, comprising:
-
a plurality of memory banks; a write controller coupled to the plurality of memory banks, the write controller including a first pseudorandom number generator, initialized with a first seed, to generate pseudorandom numbers, wherein the write controller is configured to receive data items to be stored in a first queue configured to store the data items until a processing device is ready to process the data items, wherein the first queue is distributed among multiple memory banks in the plurality of memory banks, and distribute the data items among multiple memory banks, including selecting memory banks in which to store the data items based on the pseudorandom numbers generated by the first pseudorandom number generator; and a read controller coupled to the plurality of memory banks, the read controller including a second pseudorandom number generator, initialized with the first seed, to regenerate the pseudorandom numbers generated by the first pseudorandom number generator, wherein the read controller is configured to retrieve the data items from the first queue distributed among the multiple memory banks, including selecting memory banks from which to retrieve the data items based on pseudorandom numbers regenerated by the second pseudorandom number generator; wherein the queuing system is configured to provide the data items retrieved from the plurality of memory banks to the processing device for processing of the data items. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A processing device, comprising:
-
one or more processor cores configured to process data items; and a queuing system coupled to the one or more processor cores, the queueing system comprising a first pseudorandom number generator, initialized with a first seed, to generate pseudorandom numbers, and a second pseudorandom number generator, initialized with a second seed, to regenerate the pseudorandom numbers generated by the first pseudorandom number generator; wherein the queuing system is configured to receive, from one or more processor cores, data items to be stored in a first queue configured to store the data items until the processing device is ready to process the data items, wherein the first queue is distributed among a plurality of memory banks, distribute the data items among the plurality of memory banks, including selecting memory banks in which to store the data items based on the pseudorandom numbers generated by the first pseudorandom number generator initialized with the first seed, and subsequently retrieve the data items from first queue distributed among the plurality of memory banks, including selecting memory banks from which to retrieve the data items based on the pseudorandom numbers regenerated by the second pseudorandom number generator initialized with the first seed; wherein the processing device is configured to process the data items retrieved from the plurality of memory banks. - View Dependent Claims (20, 21, 22, 23)
-
Specification