Browse Prior Art Database

Cache system having ability to store compressed and uncompressed data lines

IP.com Disclosure Number: IPCOM000015722D
Original Publication Date: 2002-Feb-17
Included in the Prior Art Database: 2003-Jun-21
Document File: 4 page(s) / 74K

Publishing Venue

IBM

Abstract

Disclosed is a system for storing both compressed and uncompressed lines of data. The basic architecture of a cache system in accordance with the present disclosure has a variable associativity, the associativity being determined by the number of lines which can be stored in a physical line. By storing data lines in a compressed format in a cache system, the application-perceived amount of data can be increased significantly, thereby leading to a reduction in cache miss rate and system bus traffic.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 37% of the total text.

Page 1 of 4

Cache system having ability to store compressed and uncompressed data lines

     Disclosed is a system for storing both compressed and uncompressed lines of data. The basic architecture of a cache system in accordance with the present disclosure has a variable associativity, the associativity being determined by the number of lines which can be stored in a physical line. By storing data lines in a compressed format in a cache system, the application-perceived amount of data can be increased significantly, thereby leading to a reduction in cache miss rate and system bus traffic.

     A cache system storing both compressed and uncompressed lines of data is shown in Fig. 1. The system is comprised of a memory array storing a number of data lines, two tags per line (including valid, dirty, and cache management information as necessary), and a compression indicator. Each physical memory line is divided into 2 sectors. A line can store either one uncompressed data line, or up to two compressed data lines, each data line having been compressed to require up to half a physical line of storage (sector).

     When a cache lookup is performed, the physical data line and both tags are retrieved simultaneously. The tags are compared under the control of the compression indicator. The tags are referred to as primary and secondary tag, the primary tag being used for all uncompressed data lines and for a first sector storing a compressed line, the secondary tag used for a second sector storing a compressed line.

     If an uncompressed line is being processed (as indicated by the compression indicator), and a tag match is found, the physical line can be supplied to the requester. If a compressed line is being processed, and one of the tags is found to match, then the compressed data is selected from the appropriate storage sector, (optionally) aligned, and (optionally) decompressed.

If no match is encountered, a cache reload is processed in accordance with Fig.
2.

     In step 2010, the cache reload logic reloads a line of data from the system memory, or a lower-level cache, or another cache in a multiprocessor system, or any other location from which a cache line can be requested from by a cache. Depending on the specifics of the implementation, this line can either be in a compressed or an uncompressed format.

     Step 2020 tests if the data can be stored in a single storage sector when in compressed format (such line shall henceforth be referred to as 'compressible line'). If this is the case, processing continues with step 2030. Otherwise, processing transfers to step 2090.

     Step 2030 tests if the target line currently is configured to store compressed or uncompressed data. If the line stores uncompressed data, processing continues with step 2040. Otherwise, processing continues with step 2070.

     In step 2040, an uncompressed line is evicted, possibly including a write back action to a lower-level cache, system memory, and any coherence protocol actions as required by the s...