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

Method for transforming a hash bucket number to a control interval to identify the physical location of information in a mass memory

Assignee: Bull HN Information Systems Inc
•
Filing: 1994-11-30
•
Granted: 1996-11-26
•
Expires: 2014-11-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for addressing mass memory in which information is stored in control intervals of physically contiguous disk segments subject to irregularities in the mapping is disclosed. Such irregularities may include discontinuities at some regular interval, which may or may not be 2'', and/or offset from zero with respect to a virtual address employed by a user. Within the method, a unique hashing algorithm is employed to convert a virtual address to a physical address taking into account such irregularities in the mapping. This algorithm is particularly characterized by its use of integer binary arithmetic which results in high speed and complete accuracy. For the special and common condition in which discontinuities appearing at some regular interval of 2'', a similar disclosed algorithm may be employed to achieve even greater speed of address transformation.

Inventors

  • 👤 Arnold S. Lipton
  • 👤 Mariam P. Sanford
  • 👤 David A. Egolf
  • 👤 David W. Wagner
  • 👤 Todd B. Kneisel
  • 👤 Michael L. Giroux

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 09:16
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 330 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval, a process for communicating between the user interface and the mass memory comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include at least: 1) the regular interval at which discontinuities appear, the "INTERVAL"; and 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; B) employing the user interface to specify a virtual identification for the physical location to be accessed in the mass memory; C) relating the virtual identification to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) obtaining a value "M1N" by employing the equation: MIN=BUCKET#/(INTERVAL-1); 2) obtaining a value "CLOSE" by employing the equation: CLOSE=(MIN * INTERVAL)+START.sub.-- CI; 3) obtaining a value "DIST" by employing the equation: DIST=INTERVAL-(CLOSE MOD INTERVAL) in which the term "CLOSE MOD INTERVAL" means the remainder of CLOSE divided by INTERVAL; 4) making a YES/NO decision by making the determination: (BUCKET#-(MIN * (INTERVAL-1)))<DIST?; 5) if the decision in sub-step 4) is YES, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN; 6) if the decision in sub-step 4) is NO, obtaining the CI# by employing the equation: CI#=START.sup.-- CI+BUCKET#+MIN+1; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 2
Dependent Claim 330 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval, a process for communicating between the user interface and the mass memory comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include at least: 1) the regular interval at which discontinuities appear, the "INTERVAL"; and 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; B) employing the user interface to specify a virtual identification for the physical location to be accessed in the mass memory; C) relating the virtual identification to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) obtaining a value "M1N" by employing the equation: MIN=BUCKET#/(INTERVAL-1); 2) obtaining a value "CLOSE" by employing the equation: CLOSE=(MIN * INTERVAL)+START.sub.-- CI; 3) obtaining a value "DIST" by employing the equation: DIST=INTERVAL-(CLOSE MOD INTERVAL) in which the term "CLOSE MOD INTERVAL" means the remainder of CLOSE divided by INTERVAL; 4) making a YES/NO decision by making the determination: (BUCKET#-(MIN * (INTERVAL-1)))<DIST?; 5) if the decision in sub-step 4) is YES, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN; 6) if the decision in sub-step 4) is NO, obtaining the CI# by employing the equation: CI#=START.sup.-- CI+BUCKET#+MIN+1; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 3
Dependent Claim 13 words
The process of claim 1 in which the virtual identification is the BUCKET#.
Claim 4
Dependent Claim 514 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval, a process for communicating between the user interface and the mass memory by specifying a virtual identification value comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include: 1) the regular interval at which discontinuities appear, the "INTERVAL"; 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; and 3) a "PER -- IND" value determined as follows: a) if a virtual identification value has a single counterpart segment in the mass memory, set the PER -- IND value to a first number; b) if a plurality of virtual identification values map to a single counterpart segment in the mass memory, set the PER -- IND value to a second number; and c) if a virtual identification value has a plurality of counterpart segments in the mass memory, set the PER -- IND value to a third number; B) employing the user interface to specify a virtual identification value for the physical location to be accessed in the mass memory; C) relating the virtual identification value to a hash bucket number, the "original BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) examining the PER -- IND value; 2) if the PER -- IND value is the first number, go to sub-step 5); 3) if the PER -- IND value is the second number, obtain a revised BUCKET# to be used following this sub-step by dividing the original BUCKET# by the second number and then going to sub-step 5; 4) if the PER -- IND value is the third number, obtain a revised BUCKET# to be used following this sub-step by multiplying the original BUCKET# by the third number; 5) obtaining a value "MIN" by employing the equation: MIN=BUCKET#/(INTERVAL-1); 6) obtaining a value "CLOSE" by employing the equation: CLOSE=(MIN * INTERVAL)+START.sub.-- CI; 7) obtaining a value "DIST" by employing the equation: DIST=INTERVAL-(CLOSE MOD INTERVAL) in which the term "CLOSE MOD INTERVAL" means the remainder of CLOSE divided by INTERVAL; 8) making a YES/NO decision by making the determination: (BUCKET#-(MIN * (INTERVAL-1)))<DIST?; 9) if the decision in sub-step 8) is YES, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN; 10) if the decision in sub-step 8) is NO, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN+1; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 5
Dependent Claim 514 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval, a process for communicating between the user interface and the mass memory by specifying a virtual identification value comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include: 1) the regular interval at which discontinuities appear, the "INTERVAL"; 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; and 3) a "PER -- IND" value determined as follows: a) if a virtual identification value has a single counterpart segment in the mass memory, set the PER -- IND value to a first number; b) if a plurality of virtual identification values map to a single counterpart segment in the mass memory, set the PER -- IND value to a second number; and c) if a virtual identification value has a plurality of counterpart segments in the mass memory, set the PER -- IND value to a third number; B) employing the user interface to specify a virtual identification value for the physical location to be accessed in the mass memory; C) relating the virtual identification value to a hash bucket number, the "original BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) examining the PER -- IND value; 2) if the PER -- IND value is the first number, go to sub-step 5); 3) if the PER -- IND value is the second number, obtain a revised BUCKET# to be used following this sub-step by dividing the original BUCKET# by the second number and then going to sub-step 5; 4) if the PER -- IND value is the third number, obtain a revised BUCKET# to be used following this sub-step by multiplying the original BUCKET# by the third number; 5) obtaining a value "MIN" by employing the equation: MIN=BUCKET#/(INTERVAL-1); 6) obtaining a value "CLOSE" by employing the equation: CLOSE=(MIN * INTERVAL)+START.sub.-- CI; 7) obtaining a value "DIST" by employing the equation: DIST=INTERVAL-(CLOSE MOD INTERVAL) in which the term "CLOSE MOD INTERVAL" means the remainder of CLOSE divided by INTERVAL; 8) making a YES/NO decision by making the determination: (BUCKET#-(MIN * (INTERVAL-1)))<DIST?; 9) if the decision in sub-step 8) is YES, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN; 10) if the decision in sub-step 8) is NO, obtaining the CI# by employing the equation: CI#=START.sub.-- CI+BUCKET#+MIN+1; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 6
Dependent Claim 14 words
The process of claim 2 in which the virtual identification is the original BUCKET#.
Claim 7
Dependent Claim 351 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval of 2 n , a process for communicating between the user interface and the mass memory comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include at least: 1) the regular interval of 2 n at which discontinuities appear, the "INTERVAL"; and 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; B) employing the user interface to specify a virtual identification for the physical location to be accessed in the mass memory; C) relating the virtual identification to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) obtaining a value "BCI#" by employing the equation: BCI#=BUCKET#; 2) obtaining a trial value "CI#" by employing the equation: CI#=BCI#+START.sub.-- CI; 3) obtaining a revised interval value "INTERVAL" by employing the equation: INTERVAL=INTERVAL-1; 4) obtaining a revised value "BCI#" by employing the equation: BCI#=BCI#-((START.sub.-- CI+INTERVAL) & ˜INTERVAL)-START.sub.-- CI where the operator "&" is a logical AND and the operator "˜" is a logical NOT; 5) making a YES/NO decision by making the determination: BCI#>=0?; 6) if the decision in sub-step 5) is YES, obtaining the CI# by employing the equation: CI#=CI#+(BCI#/INTERVAL)+1; 7) if the decision in sub-step 5) is NO, accepting the CI# obtained in substep 2) as the final CI#; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 8
Dependent Claim 351 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval of 2 n , a process for communicating between the user interface and the mass memory comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include at least: 1) the regular interval of 2 n at which discontinuities appear, the "INTERVAL"; and 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; B) employing the user interface to specify a virtual identification for the physical location to be accessed in the mass memory; C) relating the virtual identification to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) obtaining a value "BCI#" by employing the equation: BCI#=BUCKET#; 2) obtaining a trial value "CI#" by employing the equation: CI#=BCI#+START.sub.-- CI; 3) obtaining a revised interval value "INTERVAL" by employing the equation: INTERVAL=INTERVAL-1; 4) obtaining a revised value "BCI#" by employing the equation: BCI#=BCI#-((START.sub.-- CI+INTERVAL) & ˜INTERVAL)-START.sub.-- CI where the operator "&" is a logical AND and the operator "˜" is a logical NOT; 5) making a YES/NO decision by making the determination: BCI#>=0?; 6) if the decision in sub-step 5) is YES, obtaining the CI# by employing the equation: CI#=CI#+(BCI#/INTERVAL)+1; 7) if the decision in sub-step 5) is NO, accepting the CI# obtained in substep 2) as the final CI#; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 9
Dependent Claim 13 words
The process of claim 5 in which the virtual identification is the BUCKET#.
Claim 10
Dependent Claim 502 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval of 2 n , a process for communicating between the user interface and the mass memory by specifying a virtual identification value comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include: 1) the regular interval of 2 n at which discontinuities appear, the "INTERVAL"; 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; and 3) a "PER -- IND" value determined as follows: a) if a virtual identification value has a single counterpart segment in the mass memory, set the PER -- IND value to a first number; b) if a plurality of virtual identification values map to a single counterpart segment in the mass memory, set the PER -- IND value to a second number; and c) if a virtual identification value has a plurality of counterpart number; B) employing the user interface to specify a virtual identification value for the physical location to be accessed in the mass memory; C) relating the virtual identification value to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) examining the PER -- IND value; 2) if the PER -- IND value is the first number, obtaining a value "BCI#" by employing the equation: BCI#=BUCKET# and then going to sub-step 5); 3) if the PER -- IND value is the second number, obtaining a value "BCI" by employing the equation: BCI#=BUCKET#/PER; and then going to sub-step 5; 4) if the PER -- IND value is the third number, obtaining a value "BCI#" by employing the equation: BCI#=BUCKET#* PER; 5) obtaining a trial value "CI#" by employing the equation: CI#=BCI#+START.sub.-- CI; 6) obtaining a revised interval value "INTERVAL" by employing the equation: INTERVAL=INTERVAL-1; 7) obtaining a revised value "BCI#" by employing the equation: BCI#=BCI#-((START.sub.-- CI+INTERVAL) & ˜INTERVAL)-START.sub.-- CI where the operator "&" is a logical AND and the operator "˜" is a logical NOT; 8) making a YES/NO decision by making the determination: BCI#>=0?; 9) if the decision in sub-step 8) is YES, obtaining the CI# by employing the equation: CI#=CI#+(BCI#/INTERVAL;)+1; 10) if the decision in sub-step 8) is NO, accepting the CI# obtained in sub-step 2) as the final CI#; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 11
Dependent Claim 502 words
In a computer system including a user interface, a processor and a mass memory, which mass memory stores information in physically contiguous memory location segments which are interrupted by discontinuities at a regular interval of 2 n , a process for communicating between the user interface and the mass memory by specifying a virtual identification value comprising the steps of: A) establishing, for each set of information to be stored in the mass memory with which the process will be used, a set of characteristics which include: 1) the regular interval of 2 n at which discontinuities appear, the "INTERVAL"; 2) any offset from a first physical location in a relevant subdivision of the mass memory at which the first record of an information set is to be stored, the "START -- CI"; and 3) a "PER -- IND" value determined as follows: a) if a virtual identification value has a single counterpart segment in the mass memory, set the PER -- IND value to a first number; b) if a plurality of virtual identification values map to a single counterpart segment in the mass memory, set the PER -- IND value to a second number; and c) if a virtual identification value has a plurality of counterpart number; B) employing the user interface to specify a virtual identification value for the physical location to be accessed in the mass memory; C) relating the virtual identification value to a hash bucket number, the "BUCKET#", in a series of sequentially contiguous hash bucket numbers; E) in the processor, transforming the hash bucket number into a physical location "CI#" in the mass memory employing an integer arithmetic hashing process comprising the following sub-steps: 1) examining the PER -- IND value; 2) if the PER -- IND value is the first number, obtaining a value "BCI#" by employing the equation: BCI#=BUCKET# and then going to sub-step 5); 3) if the PER -- IND value is the second number, obtaining a value "BCI" by employing the equation: BCI#=BUCKET#/PER; and then going to sub-step 5; 4) if the PER -- IND value is the third number, obtaining a value "BCI#" by employing the equation: BCI#=BUCKET#* PER; 5) obtaining a trial value "CI#" by employing the equation: CI#=BCI#+START.sub.-- CI; 6) obtaining a revised interval value "INTERVAL" by employing the equation: INTERVAL=INTERVAL-1; 7) obtaining a revised value "BCI#" by employing the equation: BCI#=BCI#-((START.sub.-- CI+INTERVAL) & ˜INTERVAL)-START.sub.-- CI where the operator "&" is a logical AND and the operator "˜" is a logical NOT; 8) making a YES/NO decision by making the determination: BCI#>=0?; 9) if the decision in sub-step 8) is YES, obtaining the CI# by employing the equation: CI#=CI#+(BCI#/INTERVAL;)+1; 10) if the decision in sub-step 8) is NO, accepting the CI# obtained in sub-step 2) as the final CI#; and F) using the CI# to identify the physical location to be accessed in the mass memory to thereby facilitate the establishment of a communications path between the user interface and the identified physical location in the mass memory.
Claim 12
Dependent Claim 13 words
The process of claim 6 in which the virtual identification is the BUCKET#.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag