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

Hashing indexer for branch cache

Assignee: Computervision Corp
•
Filing: 1987-07-31
•
Granted: 1989-08-22
•
Expires: 2007-07-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A Hashing Indexer For a Branch Cache for use in a pipelined digital processor that employs macro-instructions utilizing interpretation by micro-instructions. Each of the macro-instructions has an associated address and each of the micro instructions has an associated address. The hashing indexer includes a look-ahead-fetch system including a branch cache memory coupled to the prefetch section. An indexed table of branch target addressess each of which correspond to the address of a previously fetched instruction is stored in the branch cache memory. A predetermined number of bits representing the address of the macro-instruction being fetched is hashed with a predetermined number of bits representing the address of the micro-instruction being invoked. The indexer is used to apply the hashing result as an address to the branch memory in order to read out a unique predicted branch target address that is predictive of a branch for the hashed macro-instruction bits and micro-instruction bits. The hashing indexer disperses branch cache entries throughout the branch cache memory. Therefore, by hashing macro-instruction bits with micro-instruction bits and by dispersing the branch cache entries throughout the branch cache memory, the prediction rate of the system is increased.

Inventors

  • 👤 Brian K. Langendorf
  • 👤 Robert F. Beckwith

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 04:42
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3806

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 233 words
In a pipelined digital processor employing macro-instructions utilizing interpretation by micro-instructions, each of said macro-instructions being identifiable by an assoicated address and each of said micro-instructions being identifiable by an associated addresss, a lookahead fetch system for transmitting predicted brach addresses to a prefetch section prior to decoding of respective brach instructions, comprising: branch cache means coupled to said prefetch section, said branch cache means receiving prefetch information from said prefetch section, and said branch cache means transmitting to said prefetch section predicted branch address information, said branch cache means including a plurality of indexed memory loations for storing an indexed table of branch target addresses, each of said branch target addresses corresponding to an addresss of a previously fetched instruction that resulted from a succeeding execution of said instruction, hashing means for simultaniously receiving and combining a predetermined number of bits representative of the address of a macro-instruction being fetched with a predetermined number of bits representative of the address of a micro-instruction invoked by said macro-instruction, and index means, in communication with said hashing means and said branch cache means, for applying an address, generated by combinations of bits produced by said hashing means, to said branch cache means, to read out a branch target address; whereby a branch target address that is predictive of a branch of a micro-instruction interpreting a macro-instruction is read out of the branch cache means.
Claim 2
Dependent Claim 233 words
In a pipelined digital processor employing macro-instructions utilizing interpretation by micro-instructions, each of said macro-instructions being identifiable by an assoicated address and each of said micro-instructions being identifiable by an associated addresss, a lookahead fetch system for transmitting predicted brach addresses to a prefetch section prior to decoding of respective brach instructions, comprising: branch cache means coupled to said prefetch section, said branch cache means receiving prefetch information from said prefetch section, and said branch cache means transmitting to said prefetch section predicted branch address information, said branch cache means including a plurality of indexed memory loations for storing an indexed table of branch target addresses, each of said branch target addresses corresponding to an addresss of a previously fetched instruction that resulted from a succeeding execution of said instruction, hashing means for simultaniously receiving and combining a predetermined number of bits representative of the address of a macro-instruction being fetched with a predetermined number of bits representative of the address of a micro-instruction invoked by said macro-instruction, and index means, in communication with said hashing means and said branch cache means, for applying an address, generated by combinations of bits produced by said hashing means, to said branch cache means, to read out a branch target address; whereby a branch target address that is predictive of a branch of a micro-instruction interpreting a macro-instruction is read out of the branch cache means.
Claim 3
Dependent Claim 22 words
A system according to claim 1, wherein said branch cache means includes a Random Access Memory having a plurality of memory locations.
Claim 4
Dependent Claim 59 words
A system according to claim 1, wherein said predetermined number of bits representative of the address of a macro-instruction being fetched includes the least significant bits of the address of said macro-instruction, and wherein said predetermined number of bits representative of the address of a micro-instruction being invoked includes the least significant bits of the address of said micro-instruction.
Claim 5
Dependent Claim 59 words
A system according to claim 2, wherein said predetermined number of bits representative of the address of a macro-instruction being fetched includes the least significant bits of the address of said macro-instruction, and wherein said predetermined number of bits representative of the address of a micro-instruction being invoked includes the least significant bits of the address of said micro-instruction.
Claim 6
Dependent Claim 41 words
A system according to claim 1, wherein said hashing means includes combinatorial logic gate means for performing a combinatorial logic operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 7
Dependent Claim 41 words
A system according to claim 2, wherein said hashing means includes combinatorial logic gate means for performing a combinatorial logic operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 8
Dependent Claim 41 words
A system according to claim 3, wherein said hashing means includes combinatorial logic gate means for performing a combinatorial logic operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 9
Dependent Claim 41 words
A system according to claim 4, wherein said hashing means includes combinatorial logic gate means for performing a combinatorial logic operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 10
Dependent Claim 42 words
A system according to claim 5, wherein said combinatorial logic gate means includes exclusive-or (XOR) gate means for performing an XOR operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 11
Dependent Claim 42 words
A system according to claim 6, wherein said combinatorial logic gate means includes exclusive-or (XOR) gate means for performing an XOR operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 12
Dependent Claim 42 words
A system according to claim 7, wherein said combinatorial logic gate means includes exclusive-or (XOR) gate means for performing an XOR operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 13
Dependent Claim 42 words
A system according to claim 8, wherein said combinatorial logic gate means includes exclusive-or (XOR) gate means for performing an XOR operation on said bits representative of the address of said macro-instruction and said bits representative of the address of said micro-instruction.
Claim 14
Independent Claim 113 words
A method for predicting branch target addresses for a pipelined digital processing system having a branch cache which holds the branch target addresses comprising the steps of: (a) executing a sequence of macro-instructions, each of which invokes the execution of a sequence of micro-instructions; (b) determining when a micro-instruction of the sequence of micro-instructions indicates a branch is to occur; (c) hashing a predetermined number of bits of the address of the micro-instruction indicating the occurrence of a branch with a predetermined number of bits of the address of the macro-instruction that invoked the micro-insturciton; and (d) using the hashing result to address the branch cache and read out a branch target address.
Claim 15
Independent Claim 113 words
A method for predicting branch target addresses for a pipelined digital processing system having a branch cache which holds the branch target addresses comprising the steps of: (a) executing a sequence of macro-instructions, each of which invokes the execution of a sequence of micro-instructions; (b) determining when a micro-instruction of the sequence of micro-instructions indicates a branch is to occur; (c) hashing a predetermined number of bits of the address of the micro-instruction indicating the occurrence of a branch with a predetermined number of bits of the address of the macro-instruction that invoked the micro-insturciton; and (d) using the hashing result to address the branch cache and read out a branch target address.
Claim 16
Dependent Claim 35 words
A method according to claim 13 further comprising the steps of: (a) creating a correspondence between a memory location and the branch target address; and (b) storing the branch target address at the memory location.
Claim 17
Dependent Claim 33 words
A method according to claim 14 further comprising the steps of: (a) using the hashing result to access the memory location; and (b) obtaining the branch target address from the accessed memory location.

References Cited (Backward Citations)

US3325785A Cited
US3559183A Cited
US4370711A Cited
US4430706A Cited
US4464713A Cited
US4477872A Cited
US4488224A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1992-08-21 1993-02-20 1993-08-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1996-08-21 1997-02-20 1997-08-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2000-08-21 2001-02-20 2001-08-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag