Memory controller for processor having multiple multithreaded programmable units
First Claim
Patent Images
1. A processor chip, comprising:
- multiple programmable units integrated in the processor chip, wherein at least some of the multiple programmable units integrated in the processor chip comprise multi-threaded programmable units having multiple program counters corresponding to multiple threads of program execution;
a random access memory controller integrated in the processor chip to couple to an off-chip random access memory, the random access memory controller coupled to the multiple programmable units integrated in the processor chip, the random access memory controller comprising logic to enqueue entries for memory reference requests received from the multiple programmable units into one of multiple queues and select from the enqueued entries to initiate a memory access operation of the off-chip random access memory,wherein the random access memory controller logic to select from the enqueued entries comprises logic to select from the enqueued entries in an order that differs from the order in which the memory reference requests are received from the multiple programmable units.
1 Assignment
0 Petitions
Accused Products
Abstract
A parallel hardware-based multithreaded processor is described. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple hardware threads. The processor-also includes a memory control system that has a first memory controller that sorts memory references based on whether the memory references are directed to an even bank or an odd bank of memory and a second memory controller that optimizes memory references based upon whether the memory references are read references or write references.
403 Citations
8 Claims
-
1. A processor chip, comprising:
-
multiple programmable units integrated in the processor chip, wherein at least some of the multiple programmable units integrated in the processor chip comprise multi-threaded programmable units having multiple program counters corresponding to multiple threads of program execution; a random access memory controller integrated in the processor chip to couple to an off-chip random access memory, the random access memory controller coupled to the multiple programmable units integrated in the processor chip, the random access memory controller comprising logic to enqueue entries for memory reference requests received from the multiple programmable units into one of multiple queues and select from the enqueued entries to initiate a memory access operation of the off-chip random access memory, wherein the random access memory controller logic to select from the enqueued entries comprises logic to select from the enqueued entries in an order that differs from the order in which the memory reference requests are received from the multiple programmable units. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor chip, comprising:
-
multiple programmable units integrated in the processor chip, wherein at least some of the multiple programmable units integrated in the processor chip comprise multi-threaded programmable units having multiple program counters corresponding to multiple threads of program execution; a random access memory controller integrated in the processor chip to couple to an off-chip random access memory, the random access memory controller coupled to the multiple programmable units integrated in the processor chip, the random access memory controller comprising logic to enqueue entries for memory reference requests received from the multiple programmable units into one of multiple queues and select from the enqueued entries to initiate a memory access operation of the off-chip random access memory, wherein the multiple queues comprise; a queue for memory reference requests to be serviced by a first bank of the off-chip random access memory; a queue for memory reference request to be serviced by a second bank of the off-chip random access memory; a queue to store entries for memory reference requests that retains the relative order of memory reference requests received from the multiple programmable units.
-
Specification