Touche: Towards ideal and efficient cache compression by mitigating tag area overheads
Compression is seen as a simple technique to increase the e?ective cache capacity. Unfortunately, compression techniques either incur tag area overheads or restrict cache block placement to only include neighboring addresses. Ideally, we should be able to place compressed cache blocks without any restrictions or overheads. This paper proposes Touche, a framework for storing multiple compressed blocks from arbitrary addresses within a cacheline without tag area overheads. The Touche framework consists of three components. The ?rst component, called the Signature (SIGN) engine, creates shortened signatures from the tag addresses of compressed blocks. Due to this, the SIGN engine can store multiple signatures in each tag entry. On a cache access, the physical cacheline is accessed only if there is a signature match (which has a negligible probability of false positive). The second component, called the Tag Appended Data (TADA) mechanism, stores the full tag addresses with data. TADA enables Touche to detect false positive signature matches by providing the full tag address. The third component, called the Superblock Marker (SMARK) mechanism, uses a unique marker in the tag entry to indicate compressed cache blocks from neighboring physical addresses in the same cacheline. Touche is hardware-based and achieves an average speedup of 12% (ideal 13%) when compared to an uncompressed baseline.