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

Dynamic address mapping for conflict-free vector access

Assignee: The University of Texas System
•
Filing: 1988-08-01
•
Granted: 1990-04-17
•
Expires: 2008-08-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Conflict-free vector access of any constant stride is made by preselecting a storage scheme for each vector based on the accessing patterns to be used with that vector. A respective storage scheme for each vector, for example, is selected to provide conflict-free access for a predetermined stride S. The respective storage scheme involves a rotation or permutation of an addressed row of corresponding memory locations in N parallel modules in main memory. The amount of rotation or permutation is a predetermined function of the predetermined stride S and the row address. The rotation is performed by modulo-N addition, or the permutation is performed by a set of exclusive-OR gates. For a system in which N is a power of 2 such that n=log 2 N, the predetermined stride S is factored into an odd component and an even component that is a power of 2. The factorization is easily performed by a shift and count procedure, a shifter and counter, or a priority encoder. The amount of rotation or permutation is a predetermined function of the even component and the row address, and is preferably obtained by selecting a field of the row address in accordance with the maximum of s and n, and masking the selected field with a mask generated from the minimum of s and n.

Inventors

  • 👤 David T. Harper, III
  • 👤 Darel A. Linebarger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 23:18
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/06; G06F12/0607; G06F12/0207

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 196 words
A method of dynamic address mapping for conflict-free vector access in a vector processing system having a processor accessing a main memory having a multiplicity of N memory modules in which sequential memory addresses are mapped to different ones of the memory modules, said processor including means for referencing successive addresses differing by a constant access stride, said method comprising the steps of: (a) determining a stride S greater than 1 for which a vector is to be accessed; (b) accessing said main memory to load data for said vector in said main memory using a storage scheme that is preselected for said vector and is a predetermined function of said stride S and permits conflict-free sequential access and conflict-free access with said stride S; (c) accessing said main memory to access data for said vector by using the storage scheme preselected for said vector; and (d) repeating steps (a), (b) and (c) for a multiplicity of different vectors, wherein different respective strides S are determined for the vectors, and said main memory is accessed using different respective storage schemes for said vectors, so that the storage scheme is selected dynamically for said multiplicity of vectors.
Claim 2
Independent Claim 196 words
A method of dynamic address mapping for conflict-free vector access in a vector processing system having a processor accessing a main memory having a multiplicity of N memory modules in which sequential memory addresses are mapped to different ones of the memory modules, said processor including means for referencing successive addresses differing by a constant access stride, said method comprising the steps of: (a) determining a stride S greater than 1 for which a vector is to be accessed; (b) accessing said main memory to load data for said vector in said main memory using a storage scheme that is preselected for said vector and is a predetermined function of said stride S and permits conflict-free sequential access and conflict-free access with said stride S; (c) accessing said main memory to access data for said vector by using the storage scheme preselected for said vector; and (d) repeating steps (a), (b) and (c) for a multiplicity of different vectors, wherein different respective strides S are determined for the vectors, and said main memory is accessed using different respective storage schemes for said vectors, so that the storage scheme is selected dynamically for said multiplicity of vectors.
Claim 3
Dependent Claim 45 words
The method as claimed in claim 1, wherein said storage scheme is preselected by factoring said stride S into an odd component and an even component that is a power of 2, and preselecting said storage scheme as a predetermined function of said even component.
Claim 4
Dependent Claim 80 words
The method as claimed in claim 2, wherein said memory addresses include a module address field and a row address field, said row address field specifying a respective storage location in each memory module, and said preselected storage scheme is preselected by selecting a portion of said row address field as a predetermined function of said even component, and determining a module address as a predetermined function of said module address field and the selected portion said row address field.
Claim 5
Dependent Claim 17 words
The method as claimed in claim 3, wherein said module address is determined as an exclusive-OR function.
Claim 6
Dependent Claim 17 words
The method as claimed in claim 3, wherein said module address is determined as a modulo-N addition.
Claim 7
Dependent Claim 47 words
The method as claimed in claim 3, wherein said selecting of said portion of said row address field is performed by selecting a predetermined number of address bits and masking said predetermined number of bits with a mask generated as a predetermined function of said even component.
Claim 8
Dependent Claim 62 words
The method as claimed in claim 6, wherein said number N of modules is a power of 2 such that n=log 2 N, said selecting of a predetermined number of bits is controlled by the maximum of n and log 2 of said even component, and said mask is generated from the minimum of n and log 2 of said even component.
Claim 9
Dependent Claim 46 words
The method as claimed in claim 2, wherein said stride S is factored by loading a binary shift register, shifting said shift register, and counting how many times said shift register is shifted until a serial output of said shift register assumes a predetermined logic state.
Claim 10
Dependent Claim 81 words
The method as claimed in claim 1, wherein said memory addresses include a module address field and a row address field, said row address field specifying a respective storage location in each memory module, and said preselected storage scheme is preselected by selecting a portion of said row address field as a predetermined function of said stride S, and determining a module address as a predetermined function of said module address field and said selected portion of said row address field.
Claim 11
Independent Claim 120 words
A method of mapping addresses in a vector processing system of the kind having a processor and a main memory including a plurality of N memory modules; said processor supplying an address having a module address field, and a row address field selecting a respective storage location in each of said memory modules; said processor also supplying a parameter for selecting storage schemes providing predetermined mappings of said address to said storage locations in said modules, said method comprising the steps of: (a) selecting a portion of said row address field in response to said parameter, and (b) determining a module address as a predetermined function of said module address field and the preselected portion of said row address field.
Claim 12
Independent Claim 120 words
A method of mapping addresses in a vector processing system of the kind having a processor and a main memory including a plurality of N memory modules; said processor supplying an address having a module address field, and a row address field selecting a respective storage location in each of said memory modules; said processor also supplying a parameter for selecting storage schemes providing predetermined mappings of said address to said storage locations in said modules, said method comprising the steps of: (a) selecting a portion of said row address field in response to said parameter, and (b) determining a module address as a predetermined function of said module address field and the preselected portion of said row address field.
Claim 13
Dependent Claim 30 words
The method as claimed in claim 10, wherein said module address is determined by modulo-N addition of said module address field and the preselected portion of said row address field.
Claim 14
Dependent Claim 30 words
The method as claimed in claim 10, wherein said module address is determined by the exclusive-OR of said module address field and the preselected portion of said row address field.
Claim 15
Dependent Claim 56 words
The method as claimed in claim 10, wherein said step of selecting said portion of said row address field is performed by selecting a predetermined number of bits of said row address field in response to said parameter, and masking said predetermined number of bits by a mask generated as a predetermined function of said parameter.
Claim 16
Dependent Claim 56 words
The method as claimed in claim 13, wherein said predetermined number of bits of said row address field are selected in response to a maximum one of said parameter and a constant related to said number N of modules, and said mask is generated in response to a minimum one of said parameter and said constant.
Claim 17
Dependent Claim 119 words
An address mapping circuit for mapping an address from an address bus to physical storage locations in a plurality of N memory modules connected to said address mapping circuit, said address including a row address field specifying a respective address in each of said modules, and a module address field, said address mapping circuit including (a) selecting means, connected to said address bus, for selecting a portion of said row address field in response to a predetermined parameter, and (b) determining means, connected to said address bus, said selecting means and said plurality of N memory modules, for determining a module address as a predetermined function of said module address field and said portion of said row address field.
Claim 18
Dependent Claim 119 words
An address mapping circuit for mapping an address from an address bus to physical storage locations in a plurality of N memory modules connected to said address mapping circuit, said address including a row address field specifying a respective address in each of said modules, and a module address field, said address mapping circuit including (a) selecting means, connected to said address bus, for selecting a portion of said row address field in response to a predetermined parameter, and (b) determining means, connected to said address bus, said selecting means and said plurality of N memory modules, for determining a module address as a predetermined function of said module address field and said portion of said row address field.
Claim 19
Dependent Claim 54 words
The address mapping circuit as claimed in claim 15, wherein said determining means includes adding means, connected to said address bus, said selecting means and said plurality of N memory modules, for performing a modulo-N addition of said module address field and said portion of said row address field to determine said module address.
Claim 20
Dependent Claim 48 words
The address mapping circuit as claimed in claim 15, wherein said determining means includes exclusive-OR means, connected to said address bus, said selecting means and said plurality of N memory modules, for performing an exclusive-OR of said module address field and said portion of said row address field.
Claim 21
Dependent Claim 81 words
The address mapping circuit as claimed in claim 15, wherein said selecting means for selecting said portion of said row address field includes mask generating means for generating a mask in response to said parameter, and means, connected to said mask generating means, said address bus and said determining means, for selecting and masking a predetermined number of bits of said row address field in response to said parameter and said mask to obtain said portion of said row address field.
Claim 22
Dependent Claim 98 words
The address mapping circuit as claimed in claim 18, wherein said means for selecting and masking said predetermined number of bits of said row address field includes bit selecting means, connected to said determining means, for selecting said bits in response to a maximum one of said parameter and a constant related to said number N of modules to obtain said portion of said row address field, and said means for generating said mask includes means, connected to said bit selecting means, for generating said mask in response to a minimum one of said parameter and said constant.
Claim 23
Dependent Claim 54 words
The address mapping circuit as claimed in claim 15, further comprising factoring means, connected to said selecting means, for generating said parameter by factoring a specified value into an odd component and a component that is a power of 2, and determining the log 2 of the component that is a power of 2.

References Cited (Backward Citations)

US4400768A Cited
US4370732A Cited
US4435765A Cited
US4731724A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-04-16 1993-10-16 1994-04-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-04-16 1997-10-16 1998-04-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-04-16 2001-10-16 2002-04-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag