Information Technology Reference
In-Depth Information
8 32-bit words in the uncomprtessed cache line
Frequent
Enc oding
0
1234
0
5 6 78
1
9abc
def0
-1
Value
0
00
01
10
1
-1
Incompressible words go in the data array
Frequent Values
encoded as indices
go in the tag array
Cache fr a me
1
00
0
00
1
00
0
01
1
01
0
10
0
11
1
10
1234
5678
9abc
def0
Map of Compressed line 1 in the tag array
Compressed line 1
Compressed line 2
describe individual words:
Map fields
z
xy
{
0 : uncompressed, xy is the position of the word in the data array
1: compressed, xy is the index to the frequent value dictionary
z: compression bit =
FIGURE 4.10: Frequent value compression for fixed packing. Adapted from [ 237 ].
Compression cache : The compression cache (CC) is a fixed packing technique (see “Sidebar:
Packing Techniques”) proposed by Yang, Zhang and Gupta [ 237 ]. Like FVC it uses frequent
value compression. 4 Unlike FVC which does not attempt to pack cache lines into frames, in
CC each cache frame holds either an uncompressed line or two compressed lines. Two tags per
cache frame are provided to handle the latter case. Two lines in the space of one implies that
each would have to compress at least to half its size—a difficult feat in most cases. Instead, a
little extra space in the tag array is provided to facilitate compression.
Here is how it works. Compression is carried out by separating a line's frequent-value
words from its incompressible words. The latter are concatenated and stored in the data array,
occupying up to one-half of the cache frame (Figure 4.10). Obviously, for this to work, no
more that half of the line's words can remain uncompressed but, ultimately, this limits the
opportunities for compression. Frequent values are moved to the tag array along with the line's
tag. There, they are replaced by their corresponding dictionary indices and stored in a “map” of
the uncompressed cache line. The map provides the means to reconstruct the positions of all
the words in the compressed line.
Despite CC's performance orientation, it still provides power savings by reducing activity
in lower levels of the memory hierarchy. Yang, Zhang, and Gupta show that CC provides energy
savings over a direct mapped cache, ranging from 1% to 26% depending on configuration [ 237 ].
4 FVC was actually proposed later by two of the same authors.
Search WWH ::




Custom Search