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

Result cache for complex arithmetic units

Assignee: Sun Microsystems Inc
•
Filing: 1992-03-13
•
Granted: 1993-11-09
•
Expires: 2012-03-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Individual multi-cycle statements or complex arithmetic units such as dividers, multipliers and adders are replaced with a fast, single-cycle cache lookup. This cache contains the results of a specific arithmetic operation using specified operands. These operands were previously utilized by the processor to perform an earlier, but duplicative, operation. Before performing a specific arithmetic operation, the cache is referenced to determine if the operation has been performed. If the operation has been performed, the result is output without the need to perform the multi-cycle arithmetic operation. Preferably, the operands of the arithmetic operation are hashed to form an index to perform a cache lookup. If the portion of the cache indicated by the index registers a "hit", the stored arithmetic result is output. When a cache miss occurs, the arithmetic operation is completed by the arithmetic unit. The result may then be stored in the cache indexed by the operands.

Inventors

  • 👤 Stephen Richardson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 09:30
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/57

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 232 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a result cache which operates in parallel with said arithmetic unit for minimizing the need to perform time consuming arithmetic operations, comprising: a cache memory for storing at least one result for at least one arithmetic operation performed on at least one operand, each of said results identified by a cache tag generated from the operand of the arithmetic operation; cache memory control means coupled to the cache memory and the arithmetic unit for receiving the operands of the arithmetic operation to be performed, generating a cache index from the operands received and accessing the cache according to the cache index generated, said means outputting the result stored and issuing a halt signal to the arithmetic unit when the cache tag is found to exist in the cache, said halt signal causing the arithmetic unit to stop processing of the arithmetic operation; whereby concurrent with the arithmetic unit processing the operands to generate the result, the result cache is accessed according to the cache index and, if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly output from the cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 2
Dependent Claim 232 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a result cache which operates in parallel with said arithmetic unit for minimizing the need to perform time consuming arithmetic operations, comprising: a cache memory for storing at least one result for at least one arithmetic operation performed on at least one operand, each of said results identified by a cache tag generated from the operand of the arithmetic operation; cache memory control means coupled to the cache memory and the arithmetic unit for receiving the operands of the arithmetic operation to be performed, generating a cache index from the operands received and accessing the cache according to the cache index generated, said means outputting the result stored and issuing a halt signal to the arithmetic unit when the cache tag is found to exist in the cache, said halt signal causing the arithmetic unit to stop processing of the arithmetic operation; whereby concurrent with the arithmetic unit processing the operands to generate the result, the result cache is accessed according to the cache index and, if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly output from the cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 3
Dependent Claim 57 words
The result cache as set forth in claim 1, further comprising a cache replacement means which receives the result generated by the arithmetic unit and places the result in the cache for subsequent access, whereby results not found in the cache and therefore generated by the arithmetic unit are placed in the cache for possible subsequent access.
Claim 4
Dependent Claim 24 words
The result cache as set forth in claim 1, wherein the result cache is packaged together with said complex arithmetic unit in one package.
Claim 5
Dependent Claim 21 words
The result cache as set forth in claim 1, wherein the result cache is packaged separately from said complex arithmetic unit.
Claim 6
Dependent Claim 22 words
The result cache as set forth in claim 1, wherein the result cache operates in parallel with a plurality of arithmetic units.
Claim 7
Dependent Claim 47 words
The result cache as set forth in claim 5, wherein said result cache further identifies each result by the type of arithmetic process performed to generate each result, said cache memory control means accessing the cache memory according to the cache index and type of arithmetic process.
Claim 8
Dependent Claim 46 words
The result cache as set forth in claim 1, wherein said cache memory is set associative whereby a result can be stored in a predetermined set of locations in the cache, said result further identified by a tag which identifies the result within a given set.
Claim 9
Dependent Claim 40 words
The result cache as set forth in claim 7, wherein if the index in the cache memory is full, the cache replacement means replaces the least recently accessed member of the set with the result generated by the arithmetic unit.
Claim 10
Dependent Claim 191 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a process for minimizing the need to perform said time consuming arithmetic operations, comprising the steps of: storing at least one result for at least one arithmetic operation performed on at least one operand in a cache memory, each of said results identified by a cache tag generated from the operands of the arithmetic operation and stored in a position denoted by an index generated from the operands of the arithmetic operation; generating a cache tag from the operands of the arithmetic operation to be performed; accessing the cache memory according to the cache index generated; if the cache tag is found to exist in the cache, outputting the result stored, and issuing a signal to halt processing by the arithmetic unit; whereby if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly generated by accessing the result cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 11
Dependent Claim 191 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a process for minimizing the need to perform said time consuming arithmetic operations, comprising the steps of: storing at least one result for at least one arithmetic operation performed on at least one operand in a cache memory, each of said results identified by a cache tag generated from the operands of the arithmetic operation and stored in a position denoted by an index generated from the operands of the arithmetic operation; generating a cache tag from the operands of the arithmetic operation to be performed; accessing the cache memory according to the cache index generated; if the cache tag is found to exist in the cache, outputting the result stored, and issuing a signal to halt processing by the arithmetic unit; whereby if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly generated by accessing the result cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 12
Dependent Claim 45 words
The process as set forth in claim 9, further comprising the step of placing the result in the cache for subsequent access, whereby results not found in the cache and therefore generated by the arithmetic unit are placed in the cache for possible subsequent access.
Claim 13
Dependent Claim 28 words
The process as set forth in claim 10, wherein if said cache is full, replacing the least recently accessed result with the result generated by the arithmetic unit.
Claim 14
Dependent Claim 31 words
The process as set forth in claim 9, wherein the step of storing includes the step of receiving said results from a plurality of arithmetic units coupled to said result cache.
Claim 15
Dependent Claim 52 words
The process as set forth in claim 12, further comprising the step of identifying each of said results by the type of arithmetic process performed to generate each result, said step of accessing the cache memory further comprises accessing the cache memory according to the cache index and type of arithmetic process.
Claim 16
Dependent Claim 271 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a result cache for minimizing the need to perform said time consuming arithmetic operations, said result cache comprising: a cache memory for storing at least one result for at least one arithmetic operation performed on at least one operand, each of said results identified by a cache tag generated from the operand of the arithmetic operation; means for receiving the operands of the arithmetic operation to be performed, said means receiving the operands concurrently with the arithmetic unit which performs the arithmetic operation; means for generating a cache tag from the operands received; means for generating a cache index from the operands received; result cache access means for accessing the cache according to the cache index generated, said means outputting the result stored if the tag is found to exist in the cache; arithmetic unit control means for issuing a halt signal to the arithmetic unit the cache tag is found to exist in the cache, said halt signal causing the arithmetic unit to stop processing of the arithmetic operation; cache replacement means for storing the cache tag and the result generated by the arithmetic unit in the cache memory if the cache tag is found not to exist in the cache; whereby if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly generated by accessing the result cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 17
Dependent Claim 271 words
In a complex arithmetic unit for performing time consuming arithmetic operations for one or more operands, a result cache for minimizing the need to perform said time consuming arithmetic operations, said result cache comprising: a cache memory for storing at least one result for at least one arithmetic operation performed on at least one operand, each of said results identified by a cache tag generated from the operand of the arithmetic operation; means for receiving the operands of the arithmetic operation to be performed, said means receiving the operands concurrently with the arithmetic unit which performs the arithmetic operation; means for generating a cache tag from the operands received; means for generating a cache index from the operands received; result cache access means for accessing the cache according to the cache index generated, said means outputting the result stored if the tag is found to exist in the cache; arithmetic unit control means for issuing a halt signal to the arithmetic unit the cache tag is found to exist in the cache, said halt signal causing the arithmetic unit to stop processing of the arithmetic operation; cache replacement means for storing the cache tag and the result generated by the arithmetic unit in the cache memory if the cache tag is found not to exist in the cache; whereby if the result for an arithmetic operation of specific operands exists in the cache, the result rapidly generated by accessing the result cache and the processing of the arithmetic unit is halted, and if the result is not located in the result cache, the arithmetic unit continues processing to generate the result.
Claim 18
Dependent Claim 24 words
The result cache as set forth in claim 14, wherein the result cache is packaged together with said complex arithmetic unit in one package.
Claim 19
Dependent Claim 21 words
The result cache as set forth in claim 14, wherein the result cache is packaged separately from said complex arithmetic unit.
Claim 20
Dependent Claim 23 words
The result cache as set forth in claim 14, wherein a single result cache operates in parallel with a plurality of arithmetic units.
Claim 21
Dependent Claim 47 words
The result cache as set forth in claim 17, wherein said result cache further identifies each result by the type of arithmetic process performed to generate each result, said cache memory control means accessing the cache memory according to the cache index and type of arithmetic process.
Claim 22
Dependent Claim 46 words
The result cache as set forth in claim 14, wherein said cache memory is set associative whereby a result can be stored in a predetermined set of locations in the cache, said result further identified by a tag which identifies the result within a given set.

References Cited (Backward Citations)

US4156906A Cited
US4314331A Cited
US4598365A Cited
US4831581A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-11-08 1997-05-10 1997-11-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-11-08 2001-05-10 2001-11-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-11-08 2005-05-10 2005-11-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag