U-cache: A cost-effective solution to the virtual cache synonym problem

Abstract This paper proposes a cost-effective solution to the virtual cache synonym problem. In the proposed solution, a minimal hardware addition guarantees correct handling of the synonym problem whereas a simple modification to the virtual-to-physical address mapping in the operating system optimizes the performance. The key to the proposed solution is a small, physically-indexed cache called a U-cache . The U-cache maintains the reverse translation information of cache blocks that belong to unaligned virtual pages, where unaligned means that the lower bits of the virtual page number that are used to index the virtual cache do not match those of the corresponding physical page number. The biggest advantage of the U-cache approach is that it leaves room for software optimization in the form of mapping alignment. Performance evaluation based on memory reference traces from a real system shows that the U-cache, with only a few entries, performs almost as well as (in some cases outperforms) a fully-configured hardware-based solution when more than 95% of mappings are aligned.

[1]  S. G. Tucker,et al.  The IBM 3090 System: An Overview , 1986, IBM Syst. J..

[2]  Verna Elizabeth Knapp Virtually addressed caches for multiprogramming and multiprocessing environments , 1985 .

[3]  Michel Dubois,et al.  VIRTUAL-ADDRESS CACHES , 1997 .

[4]  James R. Goodman Using cache memory to reduce processor-memory traffic , 1998, ISCA '98.

[5]  David R. Cheriton,et al.  Software-Controlled Caches in the VMP Multiprocessor , 1986, ISCA.

[6]  Hideo Aiso,et al.  Proceedings of the 16th annual international symposium on Computer architecture , 1986 .

[7]  Michael J. Flynn,et al.  Page allocation to reduce access time of physical caches , 1990 .

[8]  Mark Horowitz,et al.  ATUM: a new technique for capturing address traces using microcode , 1986, ISCA '86.

[9]  Richard L. Wexelblat,et al.  Proceedings of the fifth international conference on Architectural support for programming languages and operating systems , 1992, ASPLOS 1992.

[10]  Randy H. Katz,et al.  Eliminating the address translation bottleneck for physical address cache , 1992, ASPLOS V.

[11]  Wen-Hann Wang,et al.  On the inclusion properties for multi-level cache hierarchies , 1988, ISCA '88.

[12]  Brian N. Bershad,et al.  Consistency management for virtually indexed caches , 1992, ASPLOS V.

[13]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, ASPLOS 1987.

[14]  Peter Davies,et al.  The TLB slice-a low-cost high-speed address translation mechanism , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[15]  Tilak Agerwala,et al.  Proceedings of the 42nd Annual International Symposium on Computer Architecture , 1985, ISCA 1985.

[16]  James R. Goodman Coherency for multiprocessor virtual address caches , 1987, ASPLOS 1987.

[17]  Milon Mackey,et al.  Mach on a Virtually Addressed Cache Architecture , 1990, USENIX MACH Symposium.

[18]  Randy H. Katz,et al.  Implementing a cache consistency protocol , 1985, ISCA 1985.

[19]  James R. Larus,et al.  Design Decisions in SPUR , 1986, Computer.

[20]  W. H. Wang,et al.  Organization and performance of a two-level virtual-real cache hierarchy , 1989, ISCA '89.

[21]  Jeff Yetter,et al.  Performance features of the PA7100 microprocessor , 1993, IEEE Micro.

[22]  Paul Feautrier,et al.  A New Solution to Coherence Problems in Multicache Systems , 1978, IEEE Transactions on Computers.

[23]  共立出版株式会社 コンピュータ・サイエンス : ACM computing surveys , 1978 .

[24]  Veljko Milutinovic,et al.  The Cache Coherence Problem in Shared-Memory Multiprocessors: Software Solutions , 1996 .

[25]  Sang Lyul Min,et al.  V-P cache: a storage efficient virtual cache organization , 1993, Microprocess. Microsystems.

[26]  Alan Jay Smith,et al.  Cache Memories , 1982, CSUR.

[27]  Yarsun Hsu,et al.  A Quantitative Evaluation of Cache Types for High-Performance Computer Systems , 1993, IEEE Trans. Computers.

[28]  Richard E. Kessler,et al.  Page placement algorithms for large real-indexed caches , 1992, TOCS.

[29]  Jean-Loup Baer,et al.  Proceedings of the 39th Annual International Symposium on Computer Architecture , 1983, International Symposium on Computer Architecture.