Cache index based system address bus

Electrical computers and digital processing systems: memory – Addressing combined with specific memory configuration or... – Addressing cache memories

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S117000, C711S122000, C711S137000

Reexamination Certificate

active

06477613

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention generally relates to system address transmission and in particular to address buses for transmitting system address to storage devices for data access operations. Still more particularly, the present invention relates to an index based system address bus transmitting data access addresses in a manner optimized for use by storage devices.
2. Description of the Related Art
High performance data processing systems typically include a number of levels of caching between the processor(s) and system memory to improve performance, reducing latency in data access operations. When utilized, multiple cache levels are typically employed in progressively larger sizes with a trade off to progressively longer access latencies. Smaller, faster caches are employed at levels within the storage hierarchy closer to the processor or processors, while larger, slower caches are employed at levels closer to system memory. Smaller amounts of data are maintained in upper cache levels, but may be accessed faster.
Within such systems, an indexed cache organization is commonly employed. Cache lines, the minimum unit of data which an associated coherency state describes, are stored within the cache in congruence classes. Congruence classes are sets of cache lines for which a portion of the corresponding system addresses—usually a group of higher order bits—are identical. The portion of the system address which identifies the congruence class to which a cache line belongs is the index field. Another field within the system address, the tag, is utilized to distinguish members of a congruence class.
FIGS. 6A and 6B
depict an addressing scheme and corresponding cache organization, respectively, which might be employed in accordance with the known art. In the example shown, bits
0
. . .
35
of a 56 bit cache line address are the tag, bits
36
. . .
46
are the index, and the remaining bits are an intra-cache line address. The index field of the address is employed by the cache directory
504
and the cache memory
506
to locate congruence classes. Cache directory
504
stores tags for cache lines contained within cache memory
506
within the congruence class, and compares the tag of a target address to the tags within the congruence class. If a match is identified, the corresponding cache line within cache memory
506
is the target data.
When a cache miss occurs in a higher level cache, the cache line address is transmitted on a bus such as a system bus to lower level caches and/or system memory to retrieve the corresponding cache line. Typically the entire address is transmitted in a single bus cycle if enough address lines are available in the bus. If not, the address is transmitted over multiple consecutive bus cycles with the lower order bits (i.e., the tag in the example shown) being transmitted first.
In contemporary data processing systems, caches and system memories generally operate at higher frequencies than the buses which couple the caches or system memories to other portions of the storage hierarchy. Usually these storage devices operate at internal frequencies which are some multiple of the bus operating frequency. The storage devices are also generally pipelined, allowing several accesses to be handled concurrently. Multiple accesses may be received by the storage device during a single bus cycle and staged to access the cache in a pipeline fashion.
Within the storage devices, the cache directory and memory lookup utilizing the index field is the first and greatest source of latency. Identifying and selecting the appropriate congruence class based on the index, and transmitting the tags and data from that congruence class, may take several internal clock cycles to complete. Once the tags from the directory are sent to the comparators, comparison with the address tag to determine a cache hit or miss should take only one clock cycle. The address tag is therefore not required until the end of the directory lookup.
In conventional designs, however, the address tag is transmitted on the system bus together with the associated index, or even before the associated index. This merely contributes to delay, and is not optimized for the manner in which the address is utilized. It would be desirable, therefore, to provide a system address bus for transmitting address for operations in a manner consistent with usage of the address in performing data access operations in a storage device.
SUMMARY OF THE INVENTION
It is therefore one object of the present invention to provide improved system address transmission.
It is another object of the present invention to provide an improved address buses for transmitting system address to storage devices for data access operations.
It is yet another object of the present invention to provide an index based system address bus transmitting data access addresses in a manner optimized for use by storage devices.
The foregoing objects are achieved as is now described. Following a cache miss by an operation, the address for the operation is transmitted on the bus coupling the cache to lower levels of the storage hierarchy. A portion of the address including the index field is transmitted during a first bus cycle, and may be employed to begin directory lookups in lower level storage devices before the address tag is received. The remainder of the address is transmitted during subsequent bus cycles, which should be in time for address tag comparisons with the congruence class elements. To allow multiple directory lookups to be occurring concurrently in a pipelined directory, a portion of multiple addresses for several data access operations, each portion including the index field for the respective address, may be transmitted during the first bus cycle or staged in consecutive bus cycles, with the remainders of each address—including the cache tags—transmitted during the subsequent bus cycles. This allows directory lookups utilizing the index fields to be processed concurrently within a lower level storage device for multiple operations, with the address tags being provided later, but still timely for tag comparisons at the end of the directory lookup. Where the lower level storage device operates at a higher frequency than the bus, overall latency is reduced and directory bandwidth is more efficiently utilized.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.


REFERENCES:
patent: 4783736 (1988-11-01), Ziegle et al.
patent: 5367660 (1994-11-01), Gat et al.
patent: 5379396 (1995-01-01), Gochman et al.
patent: 5644752 (1997-07-01), Cohen et al.
patent: 5835928 (1998-11-01), Auslander et al.
patent: 5893146 (1999-04-01), Pickett
patent: 5898849 (1999-04-01), Tran
patent: 6101577 (2000-08-01), Tran
patent: 6108745 (2000-08-01), Gupta et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Cache index based system address bus does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Cache index based system address bus, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Cache index based system address bus will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2944301

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.