Documentation & Test files

Abstract

To understand modern computer architecture performances, everyone must know how a cache manipulate and hide the data stored in its. Develop a truly optimized software means to be able to keep the CPU at maximum speed and it means understand how a cache works and to keep its at maximum hit rate. The cache purpose is to hide a large and chiper but slow memory with a little but fast expensive memory. Nobody can't waste expensive cache silicon at any level (in or out CPU).

Motivation

Xmas is designed to learn and understand any kind of cache policy or replacement, all with an environment where the user can try the program and see the data flow accross memory hierarchy. With the Xmas statistics, cache and memories snapshot you can compare any kind of policy or replacement between them, moreover you can trace any cache changes.

Many others Xmas features are designed to simply the use and to speed up your work.

Description of Xmas

Xmas is a memory hierarchy access simulator, with focus on primary cache. It provide a complete integrated environment where you can work and understand the cache behaviour.

The basic idea is to provide a simple and useful tool to understand the cache behaviour in a hierarchy memory. It has an executor that understand (partial, not floating point unit) MIPS R2000/3000 assembly code, thus you can execute an assembly input file and monitor the cache behaviour with some statistics.

Inside Xmas is available a dinamic executor configuration when it is waiting command from you. This last release give you some usefull features like an enhanced editor, responsive incremental conditional breakpoint, program tracer, a calculator and much other tools to use Xmas quickly and easily.

Xmas allow you to monitor every kind of memory dinamically and change the behaviour at run time to compare the cache features, moreover Xmas give you some debugging utility like editor, program tracing and much other.

Thanks to Xmas run-time configuration you can make it more comfortable to your needs. For example you can convert any memory level to alfanumeric mode insted of numeric format.

Xmas store its status accross user session, so when you re-run it, you will have the same environment with the same data of the last time.

Cache & replacement

Xmas implements a lot of policies, replacements and write modes. The following is a briefly description of the semantics:

cache policies:

replacements: write modes:

Test files & supported istructions

If you want to know quickly how Xmas works try these test files, load ones with the editor and write it into memory, so you can press the Run button!

However you can only see all the istructions supported in the last release of Xmas.

Hardware/Software requirements

Verify that your system has this requirements to avoid problems during compiling or use:

Operating system
Linux, soon HP-UX
GUI
X Window System X11R5 or more recent
Memory
~350KB RAM for execution
Disk space1
1MB of disk space to compile
Compiler
gcc(egcs)
Libraries
Xaw Athena widget in /usr/X11R6/lib
X Toolkit Intrinsics (Xt)
X11R5 or most recent (X11)
Networking
email sender (mailx)
Printer
text (generic)
PostScript® interpreter

PS: the libraries are included in every Linux distribution. If you want to print in PostScript® mode you need to install LaTeX. To send an email you need the mailx package.
1: Xmas create a well defined personal directory in the home directory for every user that use it, all automagically, where it write user local information (about 22 KBytes).

Compiling information

These steps are need to get the Xmas executable, after you have downloaded the package from any of the sites around the world:

NB: Some Windows® systems when download Xmas, automatically decompress the file but with a wrong file name! be alert!

  1. to expand the archive type gunzip -cd xmas-X.Y.Z.tar.gz | tar xvf -
    or
    gunzip -cd xmas-X.Y.Z.tgz | tar xvf -
  2. jump into xmas-X.Y.Z/ directory
  3. type make to compile the sources
now you must have an executable file called xmas, run it!

If you want to compile a static binary version add the -static flag option when gcc link all the object files at the end of make process.

Installation and configuration

To install Xmas, simply copy the executable in your favourite binary directory.
Configuration? Very simple, there isn't configuration!!! Xmas doesn't need any kind of global configuration file, but it creates a well defined personal directory into home directory for every user that use it, all automagically.

Many of the Xmas options can be changed at run time with the preferences window and saved for the next times.

The future releases will be more user friendly and many other run time options will be added to meet your needs.

[UP]Xmas HOME PAGE 21:19:10
Tue 05-Dec-2000
http://punto.dov.it/~paolo/Xmas/docs/index.php3