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 .