DMA prefetch
Granted 7 Mar 2006 · 1 office action
Current assignee: Intel Corporation · originally International Business Machines
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: James Allan Kahle · Examiner: Kim Huynh · AU 2182 · TC 2100
Life of the application
8 dated eventsAbstract
A method and an apparatus are provided for prefetching data from a system memory to a cache for a direct memory access (DMA) mechanism in a computer system. A DMA mechanism is set up for a processor. A load access pattern of the DMA mechanism is detected. At least one potential load of data is predicted based on the load access pattern. In response to the prediction, the data is prefetched from a system memory to a cache before a DMA command requests the data.
Description
5 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of, and claims the benefit of the filing date of, U.S. patent application Ser. No. 10/401,411 entitled “DMA PREFETCH” filed Mar., 27, 2003, now abandoned.
›BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates generally to memory management and, more particularly, to prefetching data to a cache in a direct memory access (DMA) mechanism.
2. Description of the Related Art
In a multiprocessor design, a DMA mechanism is to move information from one type of memory to another. The DMA mechanism such as a DMA engine or DMA controller also moves information from a system memory to a local store of a processor. When a DMA command tries to move information from the system memory to the local store of the processor, there is going to be some delay in fetching the information from the system memory to the local store of the processor.
Therefore, a need exists for a system and method for prefetching data from a system memory to a cache for a direct memory access (DMA) mechanism in a computer system.
›SUMMARY OF THE INVENTION
The present invention provides a method and an apparatus for prefetching data from a system memory to a cache for a direct memory access (DMA) mechanism in a computer system. A DMA mechanism is set up for a processor. A load access pattern of the DMA mechanism is detected. At least one potential load of data is predicted based on the load access pattern. In response to the prediction, the data is prefetched from a system memory to a cache before a DMA command requests the data.
›BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 shows a block diagram illustrating a single processor computer system adopting a cache along with a direct memory access (DMA) mechanism;
FIG. 2 shows a block diagram illustrating a multiprocessor computer system adopting a cache along with a DMA mechanism; and
FIG. 3 shows a flow diagram illustrating prefetching mechanism applicable to a DMA mechanism as shown in FIGS. 1 and 2 .
›DETAILED DESCRIPTION
In the following discussion, numerous specific details are set forth to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known elements have been illustrated in schematic or block diagram form in order not to obscure the present invention in unnecessary detail.
It is further noted that, unless indicated otherwise, all functions described herein may be performed in either hardware or software, or some combination thereof. In a preferred embodiment, however, the functions are performed by a processor such as a computer or an electronic data processor in accordance with code such as computer program code, software, and/or integrated circuits that are coded to perform such functions, unless indicated otherwise.
Referring to FIG. 1 of the drawings, the reference numeral 100 generally designates a single processor computer system adopting a cache in a direct memory access (DMA) mechanism. The single processor computer system 100 comprises a synergistic processor complex (SPC) 102 , which includes a synergistic processor unit (SPU) 104 , a local store 106 , and a memory flow controller (MFC) 108 . The single processor computer system also includes an SPU's L 1 cache (SL 1 cache) 109 and a system memory 110 . The SPC 102 is coupled to the SL 1 cache 109 via a connection 112 . The SL 1 cache 109 is coupled to the system memory 110 via a connection 114 . The MFC 108 functions as a DMA controller.
Once the MFC 108 is set up to perform data transfers between the system memory 110 and the local store 106 , a load access pattern of the MFC 108 is detected. The load access pattern generally contains information on the data being transferred. The load access pattern can be used to predict future data transfers and prefetch data to the SL 1 cache 109 before the MFC 108 actually requests the data. When the MFC 108 actually requests the data, the MFC 108 does not have to go all the way back to the system memory 110 to retrieve the data. Instead, the MFC 108 accesses the SL 1 cache 109 to retrieve the data and transfer the data to the local store 106 .
Preferably, the MFC 108 checks the SL 1 cache 109 first for any data. If there is a hit, the MFC 108 transfers the data from the SL 1 cache 109 to the local store 106 . If there is a miss, the MFC 108 transfers the data from the system memory 110 to the local store 106 .
FIG. 2 is a block diagram illustrating a multiprocessor computer system 200 adopting a cache in a DMA mechanism. The multiprocessor computer system 200 has one or more synergistic processor complexes (SPCs) 202 . The SPC 202 has a synergistic processor unit (SPU) 204 , a local store 206 , and a memory flow controller (MFC) 208 . The multiprocessor computer system 200 further comprises an SPU's L 1 cache (SL 1 cache) 210 and a system memory 212 . The SL 1 cache 210 is coupled between the SPC 202 and the system memory 212 via connections 216 and 218 . Note here that the single SL 1 cache 210 is used to interface with all the SPCs 202 . In different implementations, however, a plurality of caches may be used. Additionally, the multiprocessor computer system 200 comprises a processing unit (PU) 220 , which includes an L 1 cache 222 . The multiprocessor computer system 200 further comprises an L 2 cache 224 coupled between the PU 220 and the system memory 212 via connections 226 and 228 .
Once the MFC 208 is set up to perform data transfers between the system memory 212 and the local store 206 , a load access pattern of the MFC 208 is detected. The load access pattern generally contains information on the data being transferred. The load access pattern can be used to predict future data transfers and prefetch data to the SL 1 cache 210 before the MFC 208 actually requests the data. When the MFC 208 actually requests the data, the MFC 208 does not have to go all the way back to the system memory 212 to retrieve the data. Instead, the MFC 208 accesses the SL 1 cache 210 to retrieve the data and transfer the data to the local store 206 .
Now referring to FIG. 3 , shown is a flow diagram illustrating a prefetching mechanism 300 applicable to a DMA mechanism as shown in FIGS. 1 and 2 .
In step 302 , the DMA mechanism is set up for a processor. In FIG. 1 , for example, the MFC 108 is set up for the SPC 102 . In FIG. 2 , for example, the MFC 208 is set up for the SPC 202 . In step 304 , a load access pattern of the DMA mechanism is detected. In streaming data, for example, a load of a first piece of data leads to a subsequent load of a second piece of data stored adjacently to the first piece of data in a logical address space. Therefore, in this example, it is very likely that the second piece of data will be requested to be loaded soon after the load of the first piece.
In step 306 , at least one potential load of data is predicted based on the load access pattern. In the same example, the second piece of data is predicted to be loaded soon. In step 308 , in response to the prediction, the data is prefetched from the system memory to the cache before a DMA command requests the data. In step 310 , in response to a DMA load request of the data, the data is loaded from the cache.
It will be understood from the foregoing description that various modifications and changes may be made in the preferred embodiment of the present invention without departing from its true spirit. This description is intended for purposes of illustration only and should not be construed in a limiting sense. The scope of this invention should be limited only by the language of the following claims.
Claims as granted
21 claimsLog in to read the claims of this application.
Log in to unlockClassifications
8 codes- G06F13/28
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock