Patent US6012106A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6012106A Expired / Lapsed US ⏱️ 0.0 years remaining

Prefetch management for DMA read transactions depending upon past history of actual transfer lengths

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1997-11-03
•
Granted: 2000-01-04
•
Expires: 2017-11-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory controller for optimizing direct memory access (DMA) read transactions wherein a number of cache lines are prefetched from a main memory as specified in a prefetch length field stored in a page table. When all prefetch data has been fetched, the memory controller waits to determine whether the initiator of the DMA read transaction will request additional data. If additional data is needed, additional cache lines are fetched. Once the initiator terminates the DMA read transaction, the prefetch length field for a selected page other entry in the table is updated to reflect the actual DMA read transaction length. As a result, an optimum number of cache lines are always prefetched thereby reducing the number of wait states required.

Inventors

  • 👤 Reinhard C. Schumann
  • 👤 Yong S. Oh

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 14:38
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/20; G06F13/28; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0862; G06F2212/00; G06F2212/60; G06F2212/6024

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 161 words
A process for providing data from a memory to a peripheral device in a data processing system in response to a direct memory access (DMA) read transaction request, the process comprising the steps of: (a) determining a memory page number from a starting memory address specified in the DMA read transaction request; (b) determining a prefetch length value given a memory page number, by accessing a page table that stores a prefetch length value for each of a plurality of pages in the memory; (c) prefetching data from a number of storage locations in the memory equal to the prefetch length value; (d) providing data to the peripheral device as retrieved from the memory until the DMA read transaction request terminates; (e) counting the actual total number of storage locations retrieved during the DMA read transaction; and (f) updating the prefetch length value for the page as a function of the actual number of locations transferred during the DMA read transaction.
Claim 2
Dependent Claim 161 words
A process for providing data from a memory to a peripheral device in a data processing system in response to a direct memory access (DMA) read transaction request, the process comprising the steps of: (a) determining a memory page number from a starting memory address specified in the DMA read transaction request; (b) determining a prefetch length value given a memory page number, by accessing a page table that stores a prefetch length value for each of a plurality of pages in the memory; (c) prefetching data from a number of storage locations in the memory equal to the prefetch length value; (d) providing data to the peripheral device as retrieved from the memory until the DMA read transaction request terminates; (e) counting the actual total number of storage locations retrieved during the DMA read transaction; and (f) updating the prefetch length value for the page as a function of the actual number of locations transferred during the DMA read transaction.
Claim 3
Dependent Claim 32 words
A process as in claim 1 additionally comprising the steps of: (g) providing a plurality of storage locations for prefetch length values for each of a plurality of pages in the memory.
Claim 4
Dependent Claim 59 words
A process as in claim 2 additionally comprising the step of: (h) if step (d) of providing data to the peripheral device is terminated before all of the prefetched data from step (c) is provided to the peripheral device in step (d), storing the lesser actual number of locations read by the peripheral device as the prefetch length value.
Claim 5
Dependent Claim 22 words
A process as in claim 1 additionally comprising the step of: (i) assigning a memory page to each of several peripheral devices.
Claim 6
Dependent Claim 33 words
A process as in claim 1 additionally comprising the step of: (j) if the page table does not contain a prefetch length value for the page, prefetching a default number of storage locations.
Claim 7
Dependent Claim 303 words
A data processing system comprising: a central processing unit (CPU) for executing data processing program tasks; a memory, connected to the CPU, to store and retrieve data to be used by the data processing program tasks, the memory divided into a plurality of memory pages; at least one peripheral device connected to the data processing system via a peripheral device bus, such that the peripheral device issues direct memory access (DMA) read transaction requests over the peripheral device bus, the DMA read transaction requests specifying a memory address for a DMA read transaction, the memory address including a memory page field; a memory controller, connected to the peripheral device bus and the memory, such that in response to receiving a DMA read transaction request, the memory controller performs a DMA read transaction by reading data from the memory, causing the data to be provided to the peripheral device over the peripheral device bus; and a prefetch logic circuit, connected to the memory controller, such that, in response to the memory controller receiving a DMA read transaction request, a number of memory locations are prefetched from the memory prior to the data being provided to the peripheral device over the peripheral device bus, the prefetch logic circuit additionally comprising: a location counter, for counting an actual total number of memory locations read during a DMA read transaction; and a prefetch size register, connected to the counter and the memory controller, for storing the contents of the location counter as a prefetch length value, the prefetch size register also connected to control the number of memory locations prefetched during a DMA read transaction such that during a subsequent DMA read transaction request, the number of memory locations prefetched is equal to the actual total number of memory locations read during a prior DMA read transaction.
Claim 8
Dependent Claim 303 words
A data processing system comprising: a central processing unit (CPU) for executing data processing program tasks; a memory, connected to the CPU, to store and retrieve data to be used by the data processing program tasks, the memory divided into a plurality of memory pages; at least one peripheral device connected to the data processing system via a peripheral device bus, such that the peripheral device issues direct memory access (DMA) read transaction requests over the peripheral device bus, the DMA read transaction requests specifying a memory address for a DMA read transaction, the memory address including a memory page field; a memory controller, connected to the peripheral device bus and the memory, such that in response to receiving a DMA read transaction request, the memory controller performs a DMA read transaction by reading data from the memory, causing the data to be provided to the peripheral device over the peripheral device bus; and a prefetch logic circuit, connected to the memory controller, such that, in response to the memory controller receiving a DMA read transaction request, a number of memory locations are prefetched from the memory prior to the data being provided to the peripheral device over the peripheral device bus, the prefetch logic circuit additionally comprising: a location counter, for counting an actual total number of memory locations read during a DMA read transaction; and a prefetch size register, connected to the counter and the memory controller, for storing the contents of the location counter as a prefetch length value, the prefetch size register also connected to control the number of memory locations prefetched during a DMA read transaction such that during a subsequent DMA read transaction request, the number of memory locations prefetched is equal to the actual total number of memory locations read during a prior DMA read transaction.
Claim 9
Dependent Claim 56 words
A system as in claim 6 wherein the prefetch logic circuit is additionally connected to store a prefetch length value at the termination of a read transaction for a plurality of memory pages accessed thereby, and the prefetch length value depending upon a number of memory locations transferred during that read transaction for that particular page.
Claim 10
Dependent Claim 29 words
A system as in claim 6 wherein the memory is arranged for read access by cache line locations, and the prefetch length value specifies a number of cache lines.
Claim 11
Dependent Claim 71 words
A system as in claim 7 additionally comprising: a page table, connected to the prefetch logic circuit, the page table including a plurality of table entries, with a table entry for each of a number of pages in the memory, the page table storing a prefetch length value for each associated page indicating the amount of data transferred from the respective page on the last DMA read transaction with that page.
Claim 12
Dependent Claim 32 words
A system as in claim 9 wherein a page table entry is made for each of a plurality of data streams from a given peripheral device which initiated the DMA read transaction.

References Cited (Backward Citations)

US4788641A Cited
US5581718A Cited
US5507028A Cited
US5659713A Cited
US5448719A Cited
US5581714A Cited
US5822749A Cited
EP0712082A1 Cited
US5713003A Cited
US5761464A Cited
US5796971A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-03 2003-07-05 2004-01-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-03 2007-07-05 2008-01-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-03 2011-07-05 2012-01-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag