Branch-aware FIFO for interprocessor data sharing
First Claim
1. A memory comprising:
- a memory array to store data;
a first pointer coupled to the memory array to address memory locations therein;
a pointer memory coupled to the first pointer, the pointer memory to save one or more prior first pointer values of the first pointer; and
control logic coupled to the pointer memory, the control logic to restore one of the one or more prior first pointer values to the first pointer in response to branch information.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a branch aware first-in first-out memory is disclosed. The branch aware first-in first-out memory includes a memory array to store data; a push pointer coupled to the memory array to address memory locations therein in order to write data; a pop pointer coupled to the memory array to address memory locations therein in order to read data; and a pointer memory coupled to the pop pointer; and control logic coupled to the pointer memory. The pointer memory saves one or more prior pop pointer values of the pop pointer. The control logic may restore one of the one or more prior pop pointer values from the pointer memory into the pop pointer in response to receiving branch information.
32 Citations
49 Claims
-
1. A memory comprising:
-
a memory array to store data;
a first pointer coupled to the memory array to address memory locations therein;
a pointer memory coupled to the first pointer, the pointer memory to save one or more prior first pointer values of the first pointer; and
control logic coupled to the pointer memory, the control logic to restore one of the one or more prior first pointer values to the first pointer in response to branch information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for a first-in first-out (FIFO) memory, the method comprising:
-
storing one or more prior pop pointer values of a pop pointer;
processing one or more pop requests to read data from the FIFO memory;
receiving information to indicate at least one of the one or more pop requests was speculative and 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 (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A data signal flow coupled into a first-in first out (FIFO) memory, the data signal flow comprising:
-
branch resolution latency to determine which one of one or more prior pointer values to restore into a state of a pop pointer; and
a branch indicator to indicate that a conditional branch instruction was resolved to take the branch. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A processing unit including:
-
a plurality of processors, each of the processors including an instruction pipeline to speculatively execute instructions before a conditional branch is resolved;
a first plurality of branch-aware first-in first-out (FIFO) memories to pass data from one processor to the next in a first direction, each branch-aware FIFO memory of the first plurality of branch-aware FIFO memories interleaved between a pair of processors of the plurality of processors;
a first input branch-aware FIFO memory coupled to a first processor of the plurality of processors to receive input data in the processing unit; and
a first output FIFO memory coupled to a last processor of the plurality of processors to drive output data from the processing unit. - View Dependent Claims (33, 34, 35)
-
-
36. A computer system including:
-
an input/output device;
dynamic random access memory; and
a multi-processor coupled to the dynamic random access memory and the input/output device, the multi-processor including, a plurality of processors, each of the processors including an instruction pipeline to speculatively execute instructions before a conditional branch is resolved;
a first plurality of branch-aware first-in first-out (FIFO) memories to pass data from one processor to the next in a first direction, each branch-aware FIFO memory of the first plurality of branch-aware FIFO memories interleaved between a pair of processors of the plurality of processors;
a first input branch-aware FIFO memory coupled to a first processor of the plurality of processors to receive input data in the processing unit;
a first output FIFO memory coupled to a last processor of the plurality of processors to drive output data from the processing unit; and
wherein each branch-aware FIFO memory includes, a memory array to store data, a push pointer coupled to the memory array to address memory locations therein to write data, a pop pointer coupled to the memory array to address memory locations therein to read data, a pointer memory coupled to the pop pointer, the pointer memory to save one or more prior pop pointer values of the pop pointer, and control logic coupled to the pointer memory, the control logic to restore one of the one or more prior pop pointer values to the pop pointer in response to branch information received from a processor. - View Dependent Claims (37)
-
-
38. A processor comprising:
-
an instruction pipeline to speculatively execute instructions before a conditional branch is resolved; and
a first branch-aware first-in first-out (FIFO) memory to pass data from the processor to another processor, the first branch-aware FIFO memory to receive branch information responsive to the conditional branch, the first branch-aware FIFO memory including a memory array to store data, a push pointer coupled to the memory array to address memory locations therein to write data, a pop pointer coupled to the memory array to address memory locations therein to read data, a pointer memory coupled to the pop pointer, the pointer memory to save one or more prior pop pointer values of the pop pointer, and control logic coupled to the pointer memory, the control logic to restore one of the one or more prior pop pointer values to the pop pointer in response to the branch information. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
Specification