Xmas information corner

General informations

In this section you find general information about the Xmas project.

Xmas is distributed under GPL license. Read the GPL included in this software package for the license.

The primordial idea to build a cache engine was born in September 1995, but Xmas is born in November of 1995 as simple engine with a primitive text interface, to study more deeply how to work a cache. Now its has a GUI with a lot of dialogs!

Everyone want to learn quickly how to choose a cache, may try Xmas and compare the policies, replacements and write-mode implemented.

The cache requestes are generated by a virtual CPU that simulates a MIPS R2000/3000 core, but not the floating point unit. When it executes a program, you may see in real time how the data stream goes through the memory hierarchy.

The virtual CPU word is the same of your machine (32 bit for my Linux box) to obtain a simple architecture to implement memory, cache and vCPU, thus the range is up to 232. The most important vCPU features are:

The cache allow to hiding and storing memory request to masquerade a more fastest memory. With Xmas you may change a lot of cache proprieties like:

For each entry is available a shell to see and/or modify every datum and the relative flags, counter and additional informations. Moreover the cache is wievable as bare numbers or as numbers+istructions.

The Xmas central memory simulates the semantic of a real computer, where data and istructions are stored as number, in any case you may choose to see istructions in alfanumeric mode too. The main memory features are:

Xmas provide a complete integrated environment where you can write and test your programs.

The built-in editor features are:

You can debug your program very fast and simply, or trace the source. To trace a source program you may use a simply step by step execution, a temporized free run execution or a more beatiful path execution tracer. To catch a infinite loop you may turn on the time limit and/or istructions limit check, after t second of execution and/or k istructions the vCPU stops to signal a strange execution.

To understand where your programs fails, Xmas help you with responsive incremental conditional breakpoint, you can stop the vCPU on a program counter value plus an optional condition on a generic vCPU register like $1<0xf or hi>0x0 or $3=0x1a.

The first public release was announced in 1997. Long life to Xmas!

References & Bibliography

For cache policy, replacements and other:

To build Xmas software:

To buid Xmas WEB site:

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