XMSIM: Extensible Memory Simulator for Early Memory Hierarchy Evaluation

  • Theodoros Lioris
  • Grigoris Dimitroulakos
  • Kostas Masselos
Conference paper
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 105)


This paper presents a memory hierarchy evaluation framework for multimedia applications. It takes as input a high level C code application description and a memory hierarchy specification and provides statistics characterizing the memory operation. Essentially the tool is a specialized C++ data type library which is used to replace the application’s data types with others that monitor memory access activity. XMSIM’s operation is event driven which means that every access to a specific data structure is converted to a message towards the memory model which subsequently emulates memory hierarchy operation. The memory model is highly parametric allowing a large number of alternatives to be modeled. XMSIM’s main advantage is its modularity allowing the designer to alter specific aspects of the memory operation beyond the predefined ones. The main features are the capability to: (1) simulate any subset of the application’s data types, (2) user defined mapping of data to memories, (3) simultaneously simulate multiple memory hierarchy scenarios, (4) immediate feedback to code transformations effect on memory hierarchy behavior, (5) verification utilities for the validation of code transformations.


Memory simulation Memory hierarchy evaluation tools Computer aided design Code transformations 



The presented research work was co-funded by the European Union in the frame of the ENOSYS project (FP7-ICT-248821) (


  1. 1.
    Catthoor F, Danckaert K, Kulkarni KK, Brockmeyer E, Kjeldsberg PG, Achteren T, Omnes T (2002) Data access and storage management for embedded programmable processors. SpringerGoogle Scholar
  2. 2.
  3. 3.
    Muralimanohar N, Balasubramonian R, Jouppi NP, CACTI 6.0: A tool to model large caches, technical Rep. HPL-2009-85 HP LaboratoriesGoogle Scholar
  4. 4.
  5. 5.
  6. 6.
    Leticia P, Alejandro T, Julio S, José F (2007) Understanding cache hierarchy interactions with a program-driven simulator. Proceedings of the 2007 workshop on computer architecture education, pp 30–35Google Scholar
  7. 7.
    Edward ST, Jude AR, Gary ST, Edward SD (eds) (1998) Mlcache: a flexible multi-lateral cache simulator. Proceedings of MASCOTS’98Google Scholar
  8. 8.
    Edler J, Hill M, Dinero IV (2010) Trace-driven uniprocessor cache simulator,
  9. 9.
  10. 10.
    Sahuquillo J, Tomas N, Petit S, Pont A (2007) Spim-cache: a pedagogical tool for teaching cache memories through code-based exercises. Education, IEEE Transactions on pp 244–250 Aug 2007Google Scholar
  11. 11.
    Stroustrup B (2008) The C++ programming language (special edn). Addison-WesleyGoogle Scholar
  12. 12.
    Rajeshwari B, Stefan S, Bo-Sik L, Balakrishnan M, Peter M (2002) Scratchpad memory : a design alternative for cache on-chip memory in embedded systems. 10th International Symposium on Hardware/Software Codesign pp 73–78Google Scholar
  13. 13.
    Danckaert K, Catthoor F, De Man H (1999) Platform independent data transfer and storage exploration illustrated on a parallel cavity detection algorithm. CSREA Conference on parallel and distributed processing techniques and applications. pp 1669–1675Google Scholar
  14. 14.
    Jacob B, Spencer N, Wang D (2007) Memory systems: cache, DRAM, disk. Morgan KaufmannGoogle Scholar

Copyright information

© Springer Science+Business Media B.V. 2011

Authors and Affiliations

  • Theodoros Lioris
    • 1
  • Grigoris Dimitroulakos
    • 1
  • Kostas Masselos
    • 1
  1. 1.Computer Science and Technology DepartmentUniversity of PeloponneseTripolisGreece

Personalised recommendations