Data stream prefetching in a microprocessor
First Claim
1. A compiler comprising a set of computer executable instructions for generating object code from a source code file, the compiler being stored on a computer readable medium, comprising:
- computer code means for identifying a data stream associated with a program, wherein the data stream comprises a sequence of memory addresses that reference two or more contiguous cache lines;
computer code means for determining a depth associated with the data stream based upon prefetch factors including the number of concurrent data streams and data consumption rates associated with the concurrent data streams; and
computer code means for enabling prefetch hardware in the processor to allocate data prefetch requests associated with the data stream to reflect the determined depth of the data stream.
0 Assignments
0 Petitions
Accused Products
Abstract
A method of prefetching data in a microprocessor includes identifying a data stream associated with a process and determining a depth associated with the data stream based upon prefetch factors including the number of currently concurrent data streams and data consumption rates associated with the concurrent data streams. Data prefetch requests are allocated with the data stream to reflect the determined depth of the data stream. Allocating data prefetch requests may include allocating prefetch requests for a number of cache lines away from the cache line currently being referenced, wherein the number of cache lines is equal to the determined depth. The method may include, responsive to determining the depth associated with a data stream, configuring prefetch hardware to reflect the determined depth for the identified data stream. Prefetch control bits in an instruction executed by the processor control the prefetch hardware configuration.
-
Citations
13 Claims
-
1. A compiler comprising a set of computer executable instructions for generating object code from a source code file, the compiler being stored on a computer readable medium, comprising:
-
computer code means for identifying a data stream associated with a program, wherein the data stream comprises a sequence of memory addresses that reference two or more contiguous cache lines;
computer code means for determining a depth associated with the data stream based upon prefetch factors including the number of concurrent data streams and data consumption rates associated with the concurrent data streams; and
computer code means for enabling prefetch hardware in the processor to allocate data prefetch requests associated with the data stream to reflect the determined depth of the data stream. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A processor, comprising:
-
at least one execution unit for processing load and store instructions;
prefetch hardware coupled to the at least one execution unit and configured to receive addresses generated by the execution unit;
wherein the prefetch hardware is configured to allocate prefetch requests responsive to receiving the generated addresses;
wherein the prefetch hardware includes configurable bits that control the depth of prefetch requests to be allocated responsive to receiving a generated address; and
wherein the configurable bits that control the depth of the prefetch requests to be allocated are configured according to prefetch factors including a number of concurrent data streams and data consumption rates associated with the concurrent data streams. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification