An execution-driven simulation tool for teaching cache memories in introductory computer organization courses

Cache memories are the most ubiquitous mechanisms devoted to hide memory latencies in current microprocessors. Due to this importance, they are a core topic in computer architecture curricula, both in graduate and undergraduate courses. As a consequence, traditional literature and current educational proposals devote important efforts to this topic. In this context, exercises dealing with simple algorithms, also known as code-based exercises, have a good acceptance among instructors because they permit students to realize how the accesses generated by the programs affect the cache's state. From about one decade ago, simulators have been extensively employed as a valuable pedagogical tool as they enable students to visualize how computer units work and interact each other. Unfortunately, there is no simple simulator allowing to perform code-based exercises for cache memories. Hence, students perform these exercises by means of the classic "paper and pencil" methodology. In this paper we introduce Spim-cache, a simple execution-driven cache simulator to carry out such experiments, intended to use in undergraduate courses. The tool allows, in an intuitive and easy way, to select a given cache organization and run step-by-step the code proposed while visualizing dynamic changes in the cache's state.

[1]  天野 英晴 J. L. Hennessy and D. A. Patterson: Computer Architecture: A Quantitative Approach, Morgan Kaufmann (1990)(20世紀の名著名論) , 2003 .

[2]  Ronald Smith,et al.  Computer Organization , 1965, SIGCPR '65.

[3]  David A. Patterson,et al.  Computer Organization & Design: The Hardware/Software Interface , 1993 .

[4]  David J. Sager,et al.  The microarchitecture of the Pentium 4 processor , 2001 .

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Antonio Robles,et al.  A lab course of computer organization , 2002, WCAE '02.

[7]  Jason Xin Zheng,et al.  Design of the HP PA 7200 CPU , 1996 .

[8]  C.A.P.S. Martins,et al.  DCMSIM: didactic cache memory simulator , 2003, 33rd Annual Frontiers in Education, 2003. FIE 2003..

[9]  Maurice V. Wilkes,et al.  Slave Memories and Dynamic Storage Allocation , 1965, IEEE Trans. Electron. Comput..

[10]  Cameron McNairy,et al.  Itanium 2 Processor Microarchitecture , 2003, IEEE Micro.

[11]  Gary S. Tyson,et al.  mlcache: a flexible multi-lateral cache simulator , 1998, Proceedings. Sixth International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (Cat. No.98TB100247).

[12]  Norman P. Jouppi,et al.  Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[13]  Todd M. Austin,et al.  The SimpleScalar tool set, version 2.0 , 1997, CARN.

[14]  Ana Pont,et al.  Splitting the data cache: a survey , 2000, IEEE Concurr..

[15]  Donald J. Patterson,et al.  Computer organization and design: the hardware-software interface (appendix a , 1993 .