Shared memory
First Claim
1. A method for packet queueing in a packet processing device comprising:
- receiving a packet;
analyzing the packet to determine a designated queue for the packet;
generating a packet identifier based on the analyzing;
associating an address to a shared memory with the packet identifier;
storing the packet identifier in the shared memory at the associated address; and
storing the associated address in the designated queue.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for tracking data using a sharing memory is disclosed. In one embodiment the system comprises a plurality of queues, each configured to track the order of receipt of data items. The plurality of queues utilize a shared memory instead of associating memory with each queue. Memory addresses are dynamically allocated and de-allocated based on the needs of each queue. As a queue utilizes all its originally assigned addresses, additional memory addresses may be allocated to the queue. Likewise, as a queue outputs its contents, unused memory addresses are de-allocated so the addresses may be used by other queues. In one embodiment, the addresses are allocated in blocks by a block identifier comprising a single memory address. One or more counters in each queue increments and decrements the block identifier to access different memory locations. In one embodiment each queue includes an order tracking module to track the order of receipt of each data item based on the address at which the data item is stored.
-
Citations
35 Claims
-
1. A method for packet queueing in a packet processing device comprising:
-
receiving a packet;
analyzing the packet to determine a designated queue for the packet;
generating a packet identifier based on the analyzing;
associating an address to a shared memory with the packet identifier;
storing the packet identifier in the shared memory at the associated address; and
storing the associated address in the designated queue. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for tracking data items:
-
assigning data items one or more designations of a plurality of designations;
for each designation, obtaining and assigning a memory address, the address corresponding to a location in a shared memory;
tracking each assignment of designation of data items;
storing a record of each designation and assigned memory address in the shared memory at the obtained memory address, wherein the shared memory stores a plurality of assignments of designations. - View Dependent Claims (8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19)
-
-
14. A shared memory and plurality of queues configured for use in a data item processing device comprising:
-
a shared memory configured to store at least one data item identifier, the memory having memory locations defined by memory addresses;
a plurality of queues, at least one queue configured to track the order of receipt of at least one data item identifier assigned thereto by storing memory addresses; and
control logic configured to initiate storage of at least one data item identifier in shared memory based on an evaluation of the data item identifier or the data item identified by the data item identifier and assign memory address at which data items are stored to one or more queues.
-
-
20. A queue system configured to utilize a shared memory comprising:
-
a shared memory, wherein items stored in shared memory are identified by a memory address;
two or more first-in, first-out queues;
an address allocation unit configured to allocate memory addresses;
a controller configured to;
receive and analyze packet data corresponding to a packet;
request an address from the allocation unit;
associate the address with a packet identifier;
assign the address to one or more of the queues based on the analysis of packet data; and
initiate storage of the packet identifier in shared memory at the address associated with the packet identifier. - View Dependent Claims (21, 22, 23, 24, 26, 27, 28, 29)
-
-
25. A first-in, first-out queue system having a shared memory comprising:
-
a controller configured to receive a packet, assigned the packet to a transmit priority queue, and store the packet in a first memory at a packet address;
at least one transmit priority queue having order tracking system and an allocation unit interface, wherein the at least one transmit priority queue is configured to store the packet address in a shared memory;
a shared memory configured to store received packet addresses at memory locations in the shared memory; and
an allocation unit configured to interface with the at least one transmit priority queue to allocate memory addresses for the shared memory to the at least one transmit priority queue.
-
-
30. A method of transmitting information identified by a next-out item from a queue, the queue utilizing a shared memory comprising:
-
designating a queue with transmit priority;
requesting a next-out item from the designated queue, the next-out item identifying a memory address to a shared memory;
retrieving the data item stored in the shared memory at the memory address identified by the next-out item from the queue; and
transmitting information stored at a location identified by the data item. - View Dependent Claims (31, 32, 33, 34, 35)
-
Specification