Distributed placement, variable-size cache architecture

5778424
Add to folder: View Folders  
Keywords to Highlight:

full-text

print

pdf

permalink

Inventors

Guy, Charles B.

Application #

056366

Filed

Apr-30-1993

Published

Jul-7-1998

Current US Class

711/117
711/118
711/128
711/154

International Classes

G06F 012/00

Field of Search

395/446 395/447 395/444 395/445 364/DIG. 711/117 711/118 711/119 711/128 711/154

Assignee

AVSYS Corporation (Hillsboro, OR)

Examiners

Swann; Tod R.

Attorney, Agent or Firm

Varitz; Robert D.

US Patent References

5008813   Multi-cache data st...
5014195   Configurable set as...
5019971   High availability c...
5056002   Cache memory for...
5117350   Memory address m...
5133061   Mechanism for im...
5168560   Microprocessor syst...
5210843   Pseudo set-associati...
5226141   Variable capacity c...
5276832   Computer system h...
5345584   System for managi...
5353425   Methods and appar...
5367653   Reconfigurable m...
5410653   Asynchronous read...
5414828   Apparatus for confi...
5432918   Method and appar...
5479655   Method and system...
5522067   Working storage m...
5535416   Method for allowin...
5537568   System for dynami...
5586303   Structure and meth...
 

Referenced by:

View Backward References

Other References

Smith, Alan Jay; Cache Memories, UC Berkeley; Computing Surveys, vol. 14, No. 3, Sep. 1982, pp. 474-530.

Citation

Cite This Patent

More From Subclass 118

5704056   Cache-data transfer...
6438658   Fast invalidation sc...
5787467   Cache control app...
5860093   Reduced instructio...
6606682   Cluster-based cach...
4805098   Write buffer
5737752   Cache replacement...
5226141   Variable capacity c...
6868484   Replacement data...
6836816   Flash memory low-...
6690380   Graphics geometry...
6370617   Non-stalling pipeli...
5471415   Cache tag memory
6470428   Sequential memory...
6785769   Multi-version data...
6757787   Adaptive cache co...
6880144   High speed low po...
6154815   Non-blocking hiera...
5829047   Backup memory for...
5963972   Memory architectur...
6907600   Virtual translation l...
6779084   Enqueue operation...
6651139   Multiprocessor system
6260112   Register memory li...
5751990   Abridged virtual a...
6021469   Hardware virtual...
6560674   Data cache system
6212602   Cache tag caching
5584002   Cache remapping...
6732236   Cache retry request...
6209057   Storage device hav...
4916605   Fast write operations
3984818   Paging in hierarch...
4442488   Instruction cache m...
5875466   Active cache for a...
6389509   Memory cache dev...
6128623   High performance...
6996669   Cluster-based cach...
6754772   Distributed cache
6823427   Sectored least-rece...
6978349   Adaptive cache me...
6944713   Low power set asso...
6694358   Performance comp...
6883067   Evaluation and opt...
6564286   Non-volatile memor...
4725945   Distributed cache i...
6202126   Victimization of cle...
5764945   CD-ROM average...
6442651   Shared cache pars...
6292880   Alias-free content-i...
5590307   Dual-port data cac...
6948035   Data pend mechan...
6950902   Cache memory syst...
7012612   Context dependent i...
6237060   Cache manageme...
6574708   Source controlled c...
4354232   Cache memory co...
6924810   Hierarchical textur...
6378055   Memory accessing...
6526481   Adaptive cache co...
6807618   Address translation
6000011   Multi-entry fully ass...
6499086   Processor with deco...
7000082   Cache victim sector...
7000072   Cache memory all...
6947052   Visual program m...
6629156   Fibre Channel serv...
6925534   Distributed memory...
4494190   FIFO buffer to cach...
 

More From Class 711

6553461   Client controlled pr...
6668306   Non-vital loads
5875466   Active cache for a...
6785794   Differentiated stora...
6785769   Multi-version data...
5907693   Autonomously cycli...
6000011   Multi-entry fully ass...
6757839   Storage unit subsyst...
6970985   Statically speculativ...
6948043   Management of a...
6332176   Autohost controller
6389559   Controller fail-over...
 
Abstract
A distributed variable-size cache placement architecture includes plural cache storage units (CSUs), each of which includes a CSU control logic, an address director, a data director, a placement array, placement logic (i.e., distribution controller), and a set associative memory for caching data. All CSUs in the architecture are connected over a communication network to a single processor interface and mainstore and which provides information to all CSUs about the status of each of the other CSUs. Any number of CSUs may be connected in parallel to provide a variable size cache. All CSUs sharing a processor interface utilize the same placement block size, contain the same number of sets of cache elements and use the same CSU placement mechanism.
 
Claims
What I claim is:

1. A distributed placement architecture associated with a single processor interface for distributing and retrieving information comprising:

a variable-size, singular cache having plural cache storage units (CSUs) therein, wherein each CSU includes a set associative memory having at least one memory element for storing information, wherein the number of elements within each set of the set associative memory is variable, thereby providing said variable size cache, and which further includes a distribution controller, said distribution controller being configured to collectively distribute within and receive information from the cache by selecting an individual CSU for placement and/or retrieval of information and for controlling placement of data among the plural CSUs and within individual CSUs, wherein said distribution controller includes a placement mechanism which distributes data within said set associative memory to individual memory elements depending on the placement of said memory element within said set associative memory, wherein the number of CSUs is variable, and wherein said CSU is insertable into said variable-size cache without re-configuring the connectivity or settings of said variable-size cache;



Description
BACKGROUND OF THE INVENTION

This invention relates to caches for use in computer systems and specifically to a distributed cache placement architecture which provides multiple cache storage units (CSUs) and a placement mechanism for caching data in any of a number of provided set associative memory locations.

Caching, as used herein, refers to a fast local storage which provides a temporary storage of a subset of a larger mainstorage, or backing storage.

Data is transferred between the cache and mainstorage in blocks, referred to as either cache blocks or as cache lines. Each cache line or block in the mainstore is "mapped" by the hardware into a set, consisting of one or more elements, in the cache storage. A particular mainstorage cache line address is only present in the cache in one of these elements at any given time, i.e., no duplicate cache line addresses are present in the cache.

A commonly used mapping algorithm is a SET ASSOCIATIVE mapping, which is the algorithm used for purposes of illustration herein. The mapping algorithm is implemented in hardware, and its operation is transparent to the software.