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

Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination

Assignee: International Business Machines Corp
•
Filing: 1991-06-14
•
Granted: 1994-07-26
•
Expires: 2011-06-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A stride enhancer provides high memory bandwidth on strides greater than one and minimizes requests to memory. The basic memory module (BSM) design uses line fetches as the basic cache complex fetch mechanism and allows operation of the BSM to be stride independent. In the preferred implementation, the BSM has two fetch modes; a normal mode and a line fetch mode. In the normal mode, a quadword (QW) is fetched as in the conventional design. In the line fetch mode, all double words (DWs) within the referenced line are returned to the storage control element (SCE) at two DWs per cycle for strides one through eight (twice the conventional bandwidth) or at least one DW per cycle for all other strides (equal to the conventional bandwidth). This is accomplished with two DW busses rather than a single QW bus and by interleaving DW storage locations within the BSM. In line fetch mode for strides one through eight, DWs are read out according to the stride on the two DW busses.

Inventors

  • 👤 Warren W. Grunbok
  • 👤 Donald W. Price
  • 👤 De Tran

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 09:12
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0877; G06F12/0886; G06F12/0207; G06F12/06; G06F12/0607

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 224 words
A memory system for a data processing system having a line fetch mode of operation and a normal mode of operation, said memory system comprising: an array of storage element units for storing a plurality of data elements in a predetermined pattern; first, second, third, and fourth data element buses connected to said array of storage element units, each of said first and second buses for use in storing such data elements in the storage element units and each of said third and fourth buses for use in reading out such data elements stored in the storage element units; means for storing a base storage element unit address and a stride value for a request, and data identifying the request as one of said line fetch and normal modes of operation; and controller means responsive to said data identifying the request as one of said line fetch and normal modes of operation and said stride value for controlling said array in said line fetch mode of operation to read out data elements at storage element unit addresses separated by said stride value using said third and fourth data element buses and for controlling said array in said normal mode for reading out data elements using said third and fourth data element buses and storing data elements using said first and second data element buses.
Claim 2
Dependent Claim 224 words
A memory system for a data processing system having a line fetch mode of operation and a normal mode of operation, said memory system comprising: an array of storage element units for storing a plurality of data elements in a predetermined pattern; first, second, third, and fourth data element buses connected to said array of storage element units, each of said first and second buses for use in storing such data elements in the storage element units and each of said third and fourth buses for use in reading out such data elements stored in the storage element units; means for storing a base storage element unit address and a stride value for a request, and data identifying the request as one of said line fetch and normal modes of operation; and controller means responsive to said data identifying the request as one of said line fetch and normal modes of operation and said stride value for controlling said array in said line fetch mode of operation to read out data elements at storage element unit addresses separated by said stride value using said third and fourth data element buses and for controlling said array in said normal mode for reading out data elements using said third and fourth data element buses and storing data elements using said first and second data element buses.
Claim 3
Dependent Claim 95 words
The memory system recited in claim 1 wherein said means for storing further stores data identifying whether such data elements are to be fetched or stored in said normal mode, said controller means determining whether an addressed storage element in said array at said base address is available and, if available, determining whether the request is a fetch or store request, fetching a corresponding data element at said base address when the request is such a fetch request, and storing a data element at said base address when the request is such a store request.
Claim 4
Dependent Claim 71 words
The memory system recited in claim 2 wherein said means for storing further stores data identifying whether the request is for a single or double data element, said controller means fetching a next contiguous data element to said corresponding data element when the request is such a fetch request, and storing a data element at a next contiguous address to said base address when the request is such a store request.
Claim 5
Dependent Claim 87 words
The memory system recited in claim 1 further comprising: data in steering logic means interposed between said first and second buses and said array; and data out steering logic means interposed beween said array and said third and fourth buses, said data in and data out steering logic means each respectively controlled by said controller means for steering element in storage data element units into or out of said array; and delay means for delaying control signals from said controller means to said data out steering logic.
Claim 6
Independent Claim 206 words
A method of operating a memory system for a data processing system in a line fetch mode of operation and a normal mode of operation, said memory system including an array of storage element units for storing a plurality of data elements in a predetermined pattern and first and second data element buses connected to said array of storage element units, each of said buses including means for reading out such data elements in storage element units, said method comprising the steps of: storing a storage element unit base address and a stride value for a request and data identifying the request as one of said line fetch mode and said normal mode of operation; if the request is for such a line fetch mode of operation, determining whether storage elements in said array at said base address and said base address plus said stride value are available and, if so, fetching corresponding data elements and selecting a next base address; testing said next base address to determine if said next base address plus the stride value cross a boundary defined by a predetermined number of data elements and, if not, continuing to fetch data elements separated by said stride value until said boundary is crossed.
Claim 7
Independent Claim 206 words
A method of operating a memory system for a data processing system in a line fetch mode of operation and a normal mode of operation, said memory system including an array of storage element units for storing a plurality of data elements in a predetermined pattern and first and second data element buses connected to said array of storage element units, each of said buses including means for reading out such data elements in storage element units, said method comprising the steps of: storing a storage element unit base address and a stride value for a request and data identifying the request as one of said line fetch mode and said normal mode of operation; if the request is for such a line fetch mode of operation, determining whether storage elements in said array at said base address and said base address plus said stride value are available and, if so, fetching corresponding data elements and selecting a next base address; testing said next base address to determine if said next base address plus the stride value cross a boundary defined by a predetermined number of data elements and, if not, continuing to fetch data elements separated by said stride value until said boundary is crossed.
Claim 8
Dependent Claim 32 words
The method of operating said memory system recited in claim 5 wherein line fetch mode requests are performed as multi-cycle data bus operations fetching all such data elements within a predetermined boundary.
Claim 9
Dependent Claim 90 words
The method of operating said memory system receited in claim 5 wherein said normal mode of operation is identified, further comprising the steps of: storing data identifying a request as a fetch or a store request; determining whether an addressed storage element in said array at said base address is available and, if available, determining whether the request is a fetch or store request; fetching a corresponding data element at said base address for a fetch request; and storing a data element at said base address for a store request.
Claim 10
Dependent Claim 72 words
The method of operating said memory system receited in claim 7 further comprising the steps of: storing data identifying whether the request is for a single or double data element; fetching a next contiguous data element to said corresponding data element when the request is a fetch request; and storing a data element at a next contiguous address to the first mentioned base address for when the request is a store request.
Claim 11
Dependent Claim 45 words
The method of operating said memory system recited in claim 8 wherein in normal operation, fetches and stores are made in a single data bus cycle of one data element per request for a vector stride N, where N is greater than a preselected number.

References Cited (Backward Citations)

US4110822A Cited
US4873630A Cited
EP0282248A2 Cited
EP0288636A2 Cited
WO1989006397A2 Cited
US5179674A Cited
US5202972A Cited
US5197002A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-07-25 1998-01-24 1998-07-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-07-25 2002-01-24 2002-07-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-07-25 2006-01-24 2006-07-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag