From the user’s perspective, a First-In First-Out (FIFO) is an ideal memory subsystem because it is simple and easy to use. A well-designed FIFO memory never becomes full, and it only becomes empty when the last word is read from the buffer. From the system designer’s perspective, FIFO implementation can be complex and demanding. This paper explores some of these problems and their solutions.