WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Computer apparatus including a main memory prefetch cache and method of operation thereof    
United States Patent5566324   
Link to this pagehttp://www.wikipatents.com/5566324.html
Inventor(s)Kass; William J. (Easley, SC)
AbstractA computer system is provided including a main memory prefetch cache which enhances the retrieval of instructions (code and data) stored in the main memory of a computer. The computer system includes a processor and a processor cache coupled thereto. A memory controller is coupled to the processor and includes a main memory prefetch cache. The memory controller also includes control circuitry which determines if a current line requested by the processor is stored in the prefetch cache, and if so, the memory controller retrieves the current line from the prefetch cache and provides the current line to the processor. The next line is then retrieved from the main memory and is overwritten over the current line in the prefetch cache. Otherwise, if the memory controller determines that the prefetch cache does not contain the current line requested by the processor, then the current line is retrieved from the main memory and is provided to the processor. The next line is then retrieved from the main memory and is stored in the prefetch cache at a register location which was occupied by the least recently used line in the cache. The invention includes circuitry and methodology for determining the least recently used line stored within the prefetch cache.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Kass; William J. (Easley, SC)
Owner/Assignee     NCR Corporation (Dayton, OH)
Patent assignment
All assignments
Publication Date     October 15, 1996
Application Number     07/996,533
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 24, 1992
US Classification     711/160 711/122 711/137 711/204 711/213 712/207
Int'l Classification     G06F 012/08
Examiner     Kim; Matthew M.
Assistant Examiner    
Attorney/Law Firm     Beusse; James H.
Address
Parent Case     CROSS REFERENCE TO RELATED APPLICATIONS "Computer Memory System", U.S. patent application Ser. No. 07/563,216, filed Aug. 6, 1990, invented by Edward C. King and F. Vincentinus Vermeer. "Computer Memory Open Page Bias Method and System", U.S. patent application Ser. No. 07/563,221, filed Aug. 6, 1990, invented by Edward C. King and F. Vincentinus Vermeer. "Computer Memory System", U.S. patent application Ser. No. 08/132,421, filed Oct. 6, 1993, which is a continuation of U.S. patent application Ser. No. 07/563,214, filed Aug. 6, 1990, invented by Edward C. King, Forrest O. Arnold, Jackson L. Ellis, Robert B. Moussavi, Pirmin L. Weisser and F. Vincentinus Vermeer. "Data Prefetch Method and System", U.S. Pat. No. 6,530,941, invented by Pirmin L. Weisser, F. Vincentinus Vermeer and Edward C. King. "Method for Merging Data in A Computer Memory System", U.S. Pat. No. 5,420,994, invented by Edward C. King, Forrest O. Arnold, Jackson L. Ellis, Robert B. Moussavi, Pirmin L. Weisser and F. Vincentinus Vermeer. "Computer Memory System and Method for Cleaning Data Elements", U.S. Pat. No. 5,287,512, invented by Jackson L. Ellis. "Mapped Cache Structure and Method", U.S. Pat. No. 5,434,990, filed Aug. 6, 1990, invented by Robert B. Moussavi and Jackson L. Ellis. "Computer Memory System and Method for Enhancing Performance on Cache Overflows", U.S. patent application Ser. No. 08/609,957, filed Mar. 4, 1996, which is a continuation of U.S. patent application Ser. No. 08/415,789, filed Apr. 3, 1995, now abandoned, which is a continuation of U.S. patent application Ser. No. 07/563,220, filed Aug. 6, 1990, now abandoned, invented by Jackson L. Ellis, Robert B. Moussavi and Edward C. King.
Priority Data    
USPTO Field of Search     395/425 395/400 395/375 395/464 395/414 395/449 395/375 395/421.03 395/487 395/403 371/40.2 364/DIG. 1
Patent Tags     computer including main memory prefetch cache of operation
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5420994
King
711/144
May,1995

[0 after 0 votes]
5381539
Yanai
711/133
Jan,1995

[0 after 0 votes]
5283880
Marcias-Garza
711/118
Feb,1994

[0 after 0 votes]
5247642
Kadlec
711/3
Sep,1993

[0 after 0 votes]
4996641
Talgam
711/118
Feb,1991

[0 after 0 votes]
4972316
Dixon
711/113
Nov,1990

[0 after 0 votes]
4943908
Emma
712/240
Jul,1990

[0 after 0 votes]
4933837
Freidin
711/125
Jun,1990

[0 after 0 votes]
4918587
Pechter
711/218
Apr,1990

[0 after 0 votes]
4916605
Beardsley
711/162
Apr,1990

[0 after 0 votes]
4847758
Olson
711/133
Jul,1989

[0 after 0 votes]
4791642
Taylor
714/764
Dec,1988

[0 after 0 votes]
4669043
Kaplinsky
711/3
May,1987

[0 after 0 votes]
4631660
Woffinden
711/3
Dec,1986

[0 after 0 votes]
4603380
Easton
711/113
Jul,1986

[0 after 0 votes]
4583165
Rosenfeld
711/213
Apr,1986

[0 after 0 votes]
4490782
Dixon
711/136
Dec,1984

[0 after 0 votes]
4488222
Cochcroft, Jr.
714/53
Dec,1984

[0 after 0 votes]
4481573
Fukunaga
711/207
Nov,1984

[0 after 0 votes]
4439829
Tsiang
711/118
Mar,1984

[0 after 0 votes]
4439828
Martin
712/226
Mar,1984

[0 after 0 votes]
4371927
Wilhite
711/137
Feb,1983

[0 after 0 votes]
4317168
Messina
711/143
Feb,1982

[0 after 0 votes]
4214303
Joyce
711/118
Jul,1980

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A computer system comprising:

a processor;

a processor cache coupled to said processor;

a memory controller coupled to said processor;

a main memory coupled to said memory controller;

said memory controller including

a main memory prefetch cache, and

control means coupled to said prefetch cache for determining if a cache hit has occurred wherein a current line requested by said processor is stored in said prefetch cache, and if so, then retrieving said current line from said prefetch cache for use by said processor and overwriting said current line in said prefetch cache with a next line from said main memory, or otherwise when said prefetch cache does not contain said current line requested by said processor thus signifying a cache miss, then retrieving said current line from said main memory for use by said processor and substantially concurrently retrieving said next line from said main memory and storing said next line in said prefetch cache such that said next line is transferred to said prefetch cache prior to a request for said next line from said processor.

2. The computer system of claim 1 wherein said prefetch cache comprises x prefetch cache registers for storing instructions prefetched from said main memory, wherein x is a number.

3. The computer system of claim 2 further comprising x least recently used (LRU) counters, each LRU counter corresponding to a respective one of said prefetch cache registers, each counter containing a count value indicating how recently and instruction in corresponding prefetch cache register has been used.

4. The computer system of claim 3 further comprising clearing means for clearing a count value designated HIT COUNT in an LRU counter corresponding to a prefetch cache register in which a cache hit has occurred.

5. The computer system of claim 4 further comprising first incrementing means, coupled to said LRU counters, for incrementing all LRU counters whose count value is less than said HIT COUNT value when a cache hit occurs, the count value of the remaining LRU counters remaining unchanged when a cache hit occurs.

6. The computer system of claim 5 further comprising purging means, coupled to said prefetch cache, for purging said prefetch cache of a least recently used line when a cache miss occurs by writing said next line to the particular cache register corresponding to the LRU counter exhibiting a maximum count value.

7. The computer system of claim 6 further comprising second incrementing means, coupled to said LRU counters, for incrementing those LRU counters other than the LRU counter corresponding to said particular cache register into which said next line is written when a cache miss occurs.

8. The computer system of claim 1 wherein said processor cache comprises an internal processor cache integrated in said processor.

9. The computer system of claim 1 wherein said processor cache comprises an external processor cache externally coupled to said processor.

10. The computer system of claim 2 wherein said processor cache further comprises an external processor cache externally coupled to said processor.

11. A computer system comprising:

a processor;

a processor cache coupled to said processor;

a memory controller coupled to said processor;

a main memory coupled to said memory controller;

said memory controller including

a main memory prefetch cache, and

control means coupled to said prefetch cache for fetching from said prefetch cache a current line when requested by said processor if a cache hit occurs, and in that case substantially concurrently overwriting said current line in said prefetch cache with a next line sequentially following said current line in said main memory prior to receiving a request from said processor for said next line.

12. The computer system of claim 11 wherein said prefetch cache comprises x prefetch cache registers for storing instructions prefetched from said main memory, wherein x is a number.

13. The computer system of claim 12 further comprising x least recently used (LRU) counters, each LRU counter corresponding to a respective one of said prefetch cache registers, each counter containing a count value indicating how recently and instruction in corresponding prefetch cache register has been used.

14. The computer system of claim 13 further comprising clearing means for clearing a count value designated HIT COUNT in an LRU counter corresponding to a prefetch cache register in which a cache hit has occurred.

15. The computer system of claim 14 further comprising first incrementing means, coupled to said LRU counters, for incrementing all LRU counters whose count value is less than said HIT COUNT value when a cache hit occurs, the count value of the remaining LRU counters remaining unchanged when a cache hit occurs.

16. The computer system of claim 15 further comprising purging means, coupled to said prefetch cache, for purging said prefetch cache of a least recently used line when a cache miss occurs by writing said next line to the particular cache register corresponding to the LRU counter exhibiting a maximum count value.

17. The computer system of claim 16 further comprising second incrementing means, coupled to said LRU counters, for incrementing those LRU counters other than the LRU counter corresponding to said particular cache register into which said next line is written when a cache miss occurs.

18. The computer system of claim 11 wherein said processor cache comprises an internal processor cache integrated in said processor.

19. The computer system of claim 11 wherein said processor cache comprises an external processor cache externally coupled to said processor.

20. The computer system of claim 18 wherein said processor cache further comprises an external processor cache externally coupled to said processor.

21. A computer system comprising:

a processor;

a processor cache memory which is accessible to said processor;

a main memory for storing a sequence of instructions for execution by said processor;

a memory controller, coupled to said processor and said main memory, for controlling access by said processor to the instructions stored in said main memory, said memory controller including

a main memory prefetch cache for storing instructions prefetched from said main memory prior to a request therefor from said processor, and

cache control means, coupled to said prefetch cache, for determining if a current instruction N requested by said processor is contained in said prefetch cache and, if so, retrieving said current instruction N from said prefetch cache and providing said current instruction N to said processor and retrieving a next instruction N+1 from said main memory and overwriting said current instruction N with said next instruction N+1, or otherwise when said prefetch cache does not contain a current instruction N requested by said processor, then retrieving said current instruction N from said main memory and providing said current instruction N to said processor and substantially concurrently retrieving a next instruction N+1 from said main memory and storing said next instruction N+1 in said prefetch cache memory prior to receiving a request for said next instruction from said processor.

22. The computer system of claim 21 wherein said prefetch cache comprises x prefetch cache registers for storing instructions prefetched from said main memory, wherein x is a number.

23. The computer system of claim 22 further comprising x least recently used (LRU) counters, each LRU counter corresponding to a respective one of said prefetch cache registers, each counter containing a count value indicating how recently an instruction in the corresponding prefetch cache register has been used.

24. The computer system of claim 23 further comprising clearing means for clearing a count value designated HIT COUNT in an LRU counter corresponding to a prefetch cache register in which a cache hit has occurred.

25. The computer system of claim 24 further comprising first incrementing means, coupled to said LRU counters, for incrementing all LRU counters whose count value is less than said HIT COUNT value when a cache hit occurs, the count value of the remaining LRU counters remaining unchanged when a cache hit occurs.

26. The computer system of claim 25 further comprising purging means, coupled to said prefetch cache, for purging said prefetch cache of a least recently used instruction when a cache miss occurs by writing said next instruction N+1 to the particular cache register corresponding to the LRU counter exhibiting a maximum count value.

27. The computer system of claim 26 further comprising second incrementing means, coupled to said LRU counters, for incrementing those LRU counters other than the LRU counter corresponding to said particular cache register into which said next instruction N+1 is written when a cache miss occurs.

28. The computer system of claim 21 wherein said processor cache comprises an internal processor cache integrated in said processor.

29. The computer system of claim 21 wherein said processor cache comprises an external processor cache externally coupled to said processor.

30. The computer system of claim 28 wherein said processor cache further comprises an external processor cache externally coupled to said processor.

31. In a computer system including a processor employing a processor cache, a method of accessing a main memory comprising:

providing said main memory with a main memory prefetch cache including a plurality of prefetch registers for storing a plurality of lines from main memory;

initiating a memory cycle to said main memory to retrieve a current line;

determining if a cache hit occurs in said prefetch cache for said current line during said memory cycle;

prefetching, if a cache hit occurs, said current line from said prefetch cache and then overwriting said current line in said prefetch cache with a next line from said main memory during said memory cycle;

determining the least recently used line in said prefetch cache,

retrieving, if a cache miss occurs, said current line from said main memory, and

storing during said memory cycle, if a cache miss occurs, a next line from main memory subsequent to said current line in the particular prefetch register occupied by said least recently used line.

32. In a computer system including a processor employing a processor cache, a method of accessing a main memory comprising:

providing a main memory prefetch cache situated in a memory controller and coupled to said main memory;

initiating a main memory cycle to retrieve a current line from said main memory;

determining, by said memory controller, if said current line is stored in said prefetch cache, and

if said current line is determined to be stored in said prefetch cache, then retrieving said current line from said prefetch cache and providing said current line to said processor, and retrieving a next line form said main memory and overwriting said current line in said prefetch cache with said next line during said memory cycle, and

if said current line is determined not to be stored in said prefetch cache, then retrieving said current line from said main memory and providing said current line to said processor, and retrieving said next line from said main memory and storing said next line in said prefetch cache during said memory cycle.

33. The method of claim 32 wherein said determining step further comprises modifying said main memory cycle to retrieve the next line from said main memory rather than said current line when in said determining step it is determined that the current line is stored in said prefetch cache.

34. The method of claim 32 wherein said prefetch cache includes X registers wherein X is a number, said method further comprising the steps of:

providing a respective least recently used (LRU) counter corresponding to each of the registers in said prefetch cache;

initializing each of said LRU counters at a unique predetermined count value between 0 and X inclusive;

if in said determining step said current line is determined to be stored in said prefetch cache as per a cache hit, then

clearing a count value stored in the particular LRU counter corresponding to a register in said prefetch cache for which said cache hit occurred;

incrementing said LRU counters whose count values are less than the count value of said particular LRU counter prior to said clearing step;

if in said determining step said current line is determined not to be stored in said prefetch cache as per a cache miss, then

storing said next line in a register in said prefetch cache corresponding to an LRU counter having a maximum count X, and

incrementing the remaining counters.

35. A method for enhancing the processing of instructions stored in a main memory of a computer system, said computer system including a processor with a processor cache memory coupled thereto, a sequence of instructions being stored in said main memory which is controlled by a memory controller, said method comprising:

providing said main memory with a prefetch cache memory situated in said memory controller;

issuing a request, by said processor to said memory controller, for a current instruction N in said sequence of instructions stored in said main memory;

determining, by said memory controller, if said current instruction N is stored in said prefetch cache memory, and

if said prefetch cache memory is determined to be storing said current instruction N, then

retrieving said current instruction N from said prefetch cache memory and providing said current instruction N to said processor,

and, during a same memory cycle, retrieving a next instruction N+1 from said main memory and overwriting said current instruction N in said prefetch cache memory with said next instruction N+1, or

if said prefetch cache memory is determined not to contain said current instruction N, then

retrieving said current instruction N from said main memory and providing said current instruction N to said processor

and

substantially concurrently retrieving a next instruction N+1 from said main memory and storing said next instruction N+1 in said prefetch cache memory.

36. The method of claim 35 wherein said determining step further comprises modifying said main memory cycle to retrieve the next instruction N+1 from said main memory rather than said current instruction N when in said determining step it is determined that the current instruction N is stored in said prefetch cache.

37. The method of claim 35 wherein said prefetch cache includes X registers wherein X is a number, said method further comprising the steps of:

providing a respective least recently used (LRU) counter corresponding to each of the registers in said prefetch cache;

initializing each of said LRU counters at a unique predetermined count value between 0 and X-1 inclusive;

if in said determining step said current instruction N is determined to be stored in said prefetch cache as per a cache hit, then

clearing a count value stored in the particular LRU counter corresponding to a register in said prefetch cache for which said cache hit occurred;

incrementing said LRU counters whose count values are less than the count value of said particular LRU counter prior to said clearing step;

if in said determining step said current instruction N is determined not to be stored in said prefetch cache as per a cache miss, then

storing said next instruction N+1 in a register in said prefetch cache corresponding to an LRU counter having a maximum count X, and

incrementing the remaining counters.

38. A method for enhancing the processing of instructions stored in a main memory of a computer system, said computer system including a processor with a processor cache memory coupled thereto, a sequence of lines of code and data stored in said main memory which is controlled by a memory controller, said method comprising:

providing said main memory with a prefetch cache memory integrated within said memory controller and coupled to said main memory;

issuing a request, by said processor to said memory controller, for a particular line in said sequence of lines stored in said main memory, said particular line being designated a current line;

initiating a main memory cycle by said memory controller to retrieve said current line;

determining, by said memory controller, if said current line is stored in said prefetch cache memory, and

if said prefetch cache memory is determined to be storing said current line, then

retrieving said current line from said prefetch cache memory and providing said current line to said processor and said processor cache,

and

modifying the main memory request begun in said initiating step to retrieve a current line+1 from said main memory and overwriting said current line in said prefetch cache memory with said current line+1 during said main memory cycle, and

if said prefetch cache memory is determined not to contain said current line, then

continuing said main memory cycle to retrieve said current line from said main memory and providing said current line to said processor,

and

further continuing said main memory cycle to retrieve said current line+1 from said main memory and storing said current line+1 in said prefetch cache memory.

39. The method of claim 38 wherein said prefetch cache includes X registers wherein X is a number, said method further comprising the steps of:

providing a respective least recently used (LRU) counter corresponding to each of the registers in said prefetch cache;

initializing each of said LRU counters at a unique predetermined count value between 0 and X-1 inclusive;

if in said determining step said current line is determined to be stored in said prefetch cache thus signifying a cache hit, then

clearing the count value stored in the particular LRU counter corresponding to the register in said prefetch cache for which said cache hit occurred;

incrementing said LRU counters whose count values are less than the count value of said particular LRU counter prior to said clearing step;

if in said determining step said current line is determined not to be stored in said prefetch cache as per a cache miss, then

storing said current line+1 in the register in said prefetch cache corresponding to the LRU counter having a maximum count X, and

incrementing the remaining counters.
 Description Submit all comments and votes
 


CROSS REFERENCE TO RELATED APPLICATIONS

"Computer Memory System", U.S. patent application Ser. No. 07/563,216, filed Aug. 6, 1990, invented by Edward C. King and F. Vincentinus Vermeer.

"Computer Memory Open Page Bias Method and System", U.S. patent application Ser. No. 07/563,221, filed Aug. 6, 1990, invented by Edward C. King and F. Vincentinus Vermeer.

"Computer Memory System", U.S. patent application Ser. No. 08/132,421, filed Oct. 6, 1993, which is a continuation of U.S. patent application Ser. No. 07/563,214, filed Aug. 6, 1990, invented by Edward C. King, Forrest O. Arnold, Jackson L. Ellis, Robert B. Moussavi, Pirmin L. Weisser and F. Vincentinus Vermeer.

"Data Prefetch Method and System", U.S. Pat. No. 6,530,941, invented by Pirmin L. Weisser, F. Vincentinus Vermeer and Edward C. King.

"Method for Merging Data in A Computer Memory System", U.S. Pat. No. 5,420,994, invented by Edward C. King, Forrest O. Arnold, Jackson L. Ellis, Robert B. Moussavi, Pirmin L. Weisser and F. Vincentinus Vermeer.

"Computer Memory System and Method for Cleaning Data Elements", U.S. Pat. No. 5,287,512, invented by Jackson L. Ellis.

"Mapped Cache Structure and Method", U.S. Pat. No. 5,434,990, filed Aug. 6, 1990, invented by Robert B. Moussavi and Jackson L. Ellis.

"Computer Memory System and Method for Enhancing Performance on Cache Overflows", U.S. patent application Ser. No. 08/609,957, filed Mar. 4, 1996, which is a continuation of U.S. patent application Ser. No. 08/415,789, filed Apr. 3, 1995, now abandoned, which is a continuation of U.S. patent application Ser. No. 07/563,220, filed Aug. 6, 1990, now abandoned, invented by Jackson L. Ellis, Robert B. Moussavi and Edward C. King.

BACKGROUND OF THE INVENTION

This invention relates in general to digital computers and, more particularly, to cache memories for such computers.

Modern computers typically include one or more processors for performing the calculations and logical operations generally associated with such machines. Instructions which are to be executed by the processor are stored in a main memory. When a program is run or executed on a computer, its instructions are called out of the main memory and sent to the processor where they are executed. This process takes valuable time.

It is known that providing a processor cache memory for use by such processors is one way to effectively accelerate the pace at which instructions are executed by the processor. Such a cache memory is a relatively small memory when compared with the size of the main memory. However, this cache memory exhibits a much faster access time than the access time associated with the main memory. The cache memory thus provides relatively quick access to instructions and data which are the most frequently used.

For example, in a typical personal computer application, the main memory may consist of 1-64 Mbytes or more of relatively slow (80 nsec access time) dynamic random access memory (DRAM). However, the cache memory associated with a microprocessor may consist of typically 8 Kbytes to 256 Kbytes or more of fast (20 nsec access time) static random access memory (SRAM). Computers are not designed with a main memory consisting entirely of fast SRAM because SRAM is extremely expensive when compared with DRAM. When instructions and data are called up from the main memory by the microprocessor for execution, they are also stored in the relatively small high speed cache. Thus, the microprocessor has ready access to the most recently executed instructions and data should these instructions and data be needed again by the microprocessor. When the microprocessor needs to use an instruction or data a second time, rather than initiating a relatively slow memory cycle to the slow main memory to retrieve that information, instead the microprocessor quickly accesses the information from the high speed processor cache.

Some microprocessors such as the Intel 80386 are designed to use a local processor cache closely coupled to the local bus of the 80386 microprocessor by a cache controller such as the Intel 82385 cache controller. Other microprocessors such as the Intel 80486 employ a small 8K cache integrated within the microprocessor chip itself. Still other microprocessors such as the Motorola 68040 include dual caches within the microprocessor, one cache being used for code