← Back to Patent Explorer
US5497476A Expired / Lapsed US ⏱️ 0.0 years remaining

Scatter-gather in data processing system

Assignee: International Business Machines Corp
•
Filing: 1993-09-21
•
Granted: 1996-03-05
•
Expires: 2013-09-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus that transfers data between system memory which is arranged in pages and an attached storage system. In such a paged memory, data which crosses pages having contiguous virtual addresses may map to data which crosses discontiguous physical pages. Scatter-gather is advantageously employed in such a system in order to achieve the transfer data directly between, memory and storage usually by Direct Memory Access (DMA). A secondary storage device which supports scatter-gather usually includes hardware which will perform the necessary calculations to transfer the data to and from the correct locations in physical memory. The technique of the present invention is useful with storage systems that do not support scatter-gather and comprises determining for each data transfer the identity of any requested sector which lies completely within a physical page and the identity of any sector which crosses boundaries between discontiguous physical pages; and for those sectors which lie within a physical page, transferring the sectors directly between secondary storage and memory by DMA; and for those sectors which cross said boundaries, transferring each sector to either the memory or secondary storage via an intermediate buffer.

Inventors

  • 👤 Clive S. Oldfield
  • 👤 Nicholas Shaylor

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 21:17
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F12/00; G06F12/02; G06F12/0223; G06F13/00; G06F13/14; G06F13/20; G06F13/28; G06F3/0602; G06F3/061; G06F3/0613; G06F3/0628; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 139 words
A method of transferring data between primary storage and secondary storage in a data processing system, said primary storage being divided into pages in both physical and virtual address spaces, comprising: requesting from a program running on a processor in the data processing system a data transfer comprising a plurality of sectors in the virtual address space; determining for the data transfer which requested sectors lie completely within a physical page and which requested sectors cross a boundary between first and second discontiguous physical pages; for those sectors that lie within a physical page, transferring the sectors directly between said secondary storage and said primary storage by DMA; and for those sectors that cross the boundary between said first and second discontiguous physical pages, transferring each sector between said primary storage and said secondary storage via an intermediate buffer.
Claim 2
Independent Claim 139 words
A method of transferring data between primary storage and secondary storage in a data processing system, said primary storage being divided into pages in both physical and virtual address spaces, comprising: requesting from a program running on a processor in the data processing system a data transfer comprising a plurality of sectors in the virtual address space; determining for the data transfer which requested sectors lie completely within a physical page and which requested sectors cross a boundary between first and second discontiguous physical pages; for those sectors that lie within a physical page, transferring the sectors directly between said secondary storage and said primary storage by DMA; and for those sectors that cross the boundary between said first and second discontiguous physical pages, transferring each sector between said primary storage and said secondary storage via an intermediate buffer.
Claim 3
Dependent Claim 95 words
The method of claim 1, wherein during a data transfer from said primary storage to said secondary storage and for each sector that has been determined as crossing the boundary between said first and second discontiguous physical pages, the method further comprising: copying, under the control of the processor, a portion of the sector from said first discontiguous physical page into the intermediate buffer and copying the remaining portion of the sector from said second discontiguous physical page into the intermediate buffer; and transferring the sector from the intermediate buffer to secondary storage by DMA.
Claim 4
Dependent Claim 94 words
The method of claim 1, wherein during a data transfer from said secondary storage to said primary storage and for each sector which crosses the boundary between said first and second discontiguous physical pages, the method further comprising: transferring the sector to the intermediate buffer by DMA and copying a portion of the sector from the intermediate buffer to a tail of said first discontiguous physical page and copying the remaining portion of the sector from the intermediate buffer to a head of said second discontiguous physical page under the control of the processor.
Claim 5
Independent Claim 147 words
An apparatus for transferring data between primary storage and secondary storage in a data processing system, said primary storage being divided into pages in both physical and virtual address spaces, comprising: means for requesting from a program running on a processor in the data processing system a data transfer comprising a plurality of sectors in the virtual address space; means for determining for the data transfer which requested sectors lie completely within a physical page and which requested sectors cross a boundary between first and second discontiguous physical pages; for those sectors that lie within a physical page, means for transferring the sectors directly between said secondary storage and said primary storage by DMA; and for those sectors that cross the boundary between said first and second discontiguous physical pages, means for transferring each sector between said primary storage and said secondary storage via an intermediate buffer.
Claim 6
Independent Claim 147 words
An apparatus for transferring data between primary storage and secondary storage in a data processing system, said primary storage being divided into pages in both physical and virtual address spaces, comprising: means for requesting from a program running on a processor in the data processing system a data transfer comprising a plurality of sectors in the virtual address space; means for determining for the data transfer which requested sectors lie completely within a physical page and which requested sectors cross a boundary between first and second discontiguous physical pages; for those sectors that lie within a physical page, means for transferring the sectors directly between said secondary storage and said primary storage by DMA; and for those sectors that cross the boundary between said first and second discontiguous physical pages, means for transferring each sector between said primary storage and said secondary storage via an intermediate buffer.
Claim 7
Dependent Claim 98 words
The apparatus of claim 4, wherein during a data transfer from said primary storage to said secondary storage and for each sector that has been determined as crossing the boundary between said first and second discontiguous physical pages, further comprising: means for copying, under the control of the processor, a portion of the sector from said first discontiguous physical page into the intermediate buffer and copying the remaining portion of the sector from said second discontiguous physical page into the intermediate buffer; and means for transferring the sector from the intermediate buffer to said secondary storage by DMA.
Claim 8
Dependent Claim 94 words
The apparatus of claim 4, wherein during a data transfer from said secondary storage to said primary storage and for each sector which crosses the boundary between said first and second discontiguous physical pages, further comprising: means for transferring the sector to the intermediate buffer by DMA and copying a portion of the sector from the intermediate buffer to a tail of said first discontiguous physical page and copying the remaining portion of the sector from the intermediate buffer to a head of said second discontiguous physical page under the control of the processor.

References Cited (Backward Citations)

US5179667A Cited
US5251303A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag