IP Library Granted Patent US 7,555,579
Granted Patent B2
US 7,555,579 · App. 10/850,886 · Granted Jun 30, 2009

Implementing FIFOs in shared memory using linked lists and interleaved linked lists

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,555,579
App. No.
10/850,886
Granted
Jun 30, 2009
Kind
B2
Abstract

FIFOs may be implemented in shared memory using linked lists and interleaved linked lists such that any individual FIFO can dynamically use any free memory location. The system may be implemented in hardware efficiently and does not pre-allocate memory to any FIFO, so that the whole shared memory may be used by any one of the FIFOs. The maximum physical size of a FIFO is then limited only by the size of the physical memory and not by the number of FIFOs sharing the same physical memory or by any mechanism for pre-allocating physical memory to the FIFOs. The linked lists contain data words, each data word containing a data field and a reference to a subsequent free memory location. A subsequent data word may be enqueued to the FIFO at the last referenced free memory location. A dequeue operation returns free memory locations to the free memory pool. Multiple linked lists may be interleaved to accelerate reading of data words from the FIFO.

Claims (15)

1. A First In First Out (FIFO) data structure in a physical memory, comprising:

at least first and second separate linked lists collectively forming the FIFO data structure, each of the linked lists having a plurality of memory locations, each memory location including a data field and a pointer field, wherein a pointer field of an earlier memory location in a given linked list points to a memory address of a subsequent memory location in that same linked list, and where the first and second separate linked lists are interleaved such that consecutive data words to be stored in the FIFO will be stored on different ones of the first and second separate linked lists, and such that data is read from the FIFO data structure by reading memory locations of the first and second separate linked lists in a selected order.

2. The FIFO data structure of claim 1 , further comprising a head_fifo register representing a dequeue memory location address, and a tail_fifo register representing an enqueue memory location address.

3. The FIFO data structure of claim 2 , wherein the enqueue memory location address is empty prior to an enqueue operation.

4. The FIFO data structure of claim 1 , wherein an enqueue operation on the FIFO data structure causes a data word to be written to one of the memory locations in the first linked list and then to a memory location in the second linked list.

5. The FIFO data structure of claim 1 , further comprising a free memory data structure configured to supply free memory locations to the first linked list to perform an enqueue operation at each clock cycle of the physical memory.

6. A method of sharing a pool of available memory between a plurality of first in first out (FIFO) memory structures, the method comprising the steps of:

establishing a plurality of FIFO memory structures in the pool of available memory, each FIFO memory structure including at least first and second separate linked lists, the at least first and second separate linked lists being interleaved and collectively forming the FIFO memory structure, each of the separate linked lists having a plurality of memory locations, each memory location including a data field and a pointer field, wherein a pointer field of an earlier memory location in a given linked list points to a memory address of a subsequent memory location in that same linked list, and wherein the first and second separate linked lists of a given FIFO are interleaved such that consecutive data words to be stored in the FIFO will be stored on different ones of the first and second separate linked lists; and

enqueuing data words into the interleaved linked lists to write the data words to the FIFO.

7. The method of claim 6 , further comprising the step of retrieving from a pool of available memory, free memory addresses for use with the step of enqueuing data words into the linked list memory structures.

8. The method of claim 7 , wherein the pool of available memory comprises the free memory addresses, and wherein any of the plurality of linked lists may use any of the free memory addresses.

9. The method of claim 6 , wherein successive enqueue operations iterate across the multiple interleaved linked lists.

10. The method of claim 9 , wherein the enqueue operations are controlled by a successive enqueue register for that plurality of linked lists.

11. The method of claim 9 , wherein successive dequeue operations iterate across the multiple interleaved linked lists in the same order as the successive enqueue operations.

12. The method of claim 11 , wherein the dequeue operations are controlled by a successive dequeue register for that plurality of linked lists.

Assignments (18)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: NORTEL NETWORKS LIMITED
To: AVAYA INC.
Reel/Frame 023998/0878 →
SECURITY AGREEMENT Recorded Feb 5, 2010
From: AVAYA INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 023905/0001 →
SECURITY AGREEMENT Recorded Feb 4, 2010
From: AVAYA INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 023892/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2004
From: FIGUERIA, NORIVAL R.
To: NORTEL NETWORKS LIMITED
Reel/Frame 015360/0479 →