Branch-aware FIFO for interprocessor data sharing
First Claim
Patent Images
1. A method, comprising:
- storing one or more prior pop pointer values of a pop pointer;
prior to processing one or more pop requests,storing data into a memory array of a FIFO memory, andincrementing a push pointer;
processing one or more pop requests to read data from the FIFO memory;
reading a pop pointer value of the pop pointer and a push pointer value of the push pointer;
determining a status of the memory array in response to the pop pointer value, the push pointer value, a high threshold level, and a low threshold level, where the high threshold level is responsive to the lesser of a maximum branch resolution latency and the low threshold level;
receiving information to indicate at least one of the one or more pop requests was speculative and to indicate that a state of the pop pointer of the FIFO memory should be restored; and
restoring one of the one or more prior pop pointer values to the pop pointer in response to the information.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
54 Citations
6 Claims
-
1. A method, comprising:
-
storing one or more prior pop pointer values of a pop pointer; prior to processing one or more pop requests, storing data into a memory array of a FIFO memory, and incrementing a push pointer; processing one or more pop requests to read data from the FIFO memory; reading a pop pointer value of the pop pointer and a push pointer value of the push pointer; determining a status of the memory array in response to the pop pointer value, the push pointer value, a high threshold level, and a low threshold level, where the high threshold level is responsive to the lesser of a maximum branch resolution latency and the low threshold level; receiving information to indicate at least one of the one or more pop requests was speculative and to indicate that a state of the pop pointer of the FIFO memory should be restored; and restoring one of the one or more prior pop pointer values to the pop pointer in response to the information. - View Dependent Claims (2, 3)
-
-
4. An apparatus, comprising:
-
a first storage unit to store one or more prior pop pointer values of a pop pointer; a FIFO memory; a push pointer; a pre-pop request logic that is to store data into a memory array of the FIFO memory and to increment the push pointer prior to processing one or more pop requests; a pop-request logic to process one or more pop requests to read data from the FIFO memory, to read a pop pointer value of the pop pointer and a push pointer value of the push pointer, to determine a status of the memory array in response to the pop pointer value, the push pointer value, a high threshold level, and a low threshold level, where the high threshold level is responsive to the lesser of a maximum branch resolution latency and the low threshold level; a receive logic to receive information to indicate at least one of the one or more pop requests was speculative and to indicate that a state of the pop pointer of the FIFO memory should be restored; and a restore logic to restore one of the one or more prior pop pointer values to the pop pointer in response to the information. - View Dependent Claims (5, 6)
-
Specification