A branch aware first-in first-out (FIFO) memory may include a memory array
to store data; a push pointer to address memory locations therein to
write data; a pop pointer to address memory locations therein to read
data; a pointer memory; and control logic coupled to the pointer memory.
The pointer memory saves prior pop pointer values of the pop pointer. The
control logic may restore prior pop pointer values from the pointer
memory into the pop pointer in response to receiving program branching
information.