|
SMPCache |
|
SMPCache has been selected by William Stallings as simulation
tool for the implementation of student projects in
the book "Computer
Organization & Architecture", 6th edition,
2003, Prentice-Hall.
For more details see Documentation section. |
Versión
Española |
Top
Processors in SMP 1, 2, 3, 4, 5, 6, 7 or 8 Cache coherence protocols MSI, MESI (Illinois) or Dragon Schemes for bus arbitration Random, LRU or LFU Word wide (bits) 8, 16, 32 or 64 Words by block 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 or 1024 Blocks in main memory 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152 or 4194304 Blocks in cache 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 or 2048 Mapping Direct, Set-Associative or Fully-Associative Cache sets (for set associative caches) 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 or 2048 Replacement policies Random, LRU, FIFO or LFU Writing strategies Write-Back (for cache coherence protocols used) Cache levels in the memory hierarchy 1 References To memory words Maximum block size 8 KB Maximum main memory size 32 GB Maximum cache size (excluded labels, block state bits, counts, etc.) 16 MB
SMPCache shows, using statistical data and several kinds of graphics, interesting measurements like:
Number of bus transactions (it depends on cache coherence protocol). Number of block transfers on the bus. Bus traffic taking into account the previous measurements. Number of state transitions (each block in a cache has a state associated with it). Number of state transitions from a particular state to other. Global number of memory accesses, and for types: instruction captures, data readings and data writings. Number of cache hits and misses, as well as hit and miss rate.
There are three kinds of simulation and it is possible to change from one to other without waiting the simulation end:Observing the complete multiprocessor and all the memory blocks. Observing a specific cache and all the memory blocks. Observing the complete multiprocessor, but focusing on a particular block. Observing a specific cache and a particular memory block.
It is also possible to abort the simulation at any time, for correcting any architectural detail.Step by step. The simulation is stopped after every memory access. With breakpoint. The simulation is stopped when a specific number of memory accesses is reached . Complete execution. The simulation is stopped when all the memory traces are finished.
Top
In order to obtain SMPCache the steps to follow are:
Get the SMPCache license. Fill, sign and seal it. Send the license via e-mail (mavega@unex.es, scanned version of the filled license form) or postal mail (please, see the address in the license form). In a few days, you will receive an e-mail with the requested version of SMPCache (it consists in one Windows executable file, the help files associated, and one collection of memory traces).
Top
Version 1.0: It is the Spanish version of the simulator. Version 2.0: It is the English version of the simulator.
Top
|
|
|
|
|
(double precision) |
|
Astrophysics: It uses hydrodynamical Navier Stokes equations to calculate galactical jets |
|
(double precision) |
|
A collection of 7 program kernels of operations used frequently in NASA applications, such as Fourier transforms and matrix manipulations. For each kernel, the program generates its own input data, performs the kernel and compares the result against an expected result |
|
|
|
Portion of a Gnu C compiler that exhibits strong random behaviour |
|
(double precision) |
|
It solves the equations of motion for a model of 500 atoms interacting through the idealized Lennard-Jones potential. It is a numerical program that exhibits mixed looping and random behaviour |
|
(single precision) |
|
It simulates the human
ear by converting a sound file to a cochleogram using
Fast Fourier Transforms and other math library functions |
|
|
|
It uses Lempel-Ziv coding for data compression. It compresses an 1 MB file 20 times |
|
(single precision) |
|
It solves Maxwell’s equations and electromagnetic particle equations of motion |
|
(single precision) |
|
It solves a system of shallow water equations using finite difference approximations on a 256*256 grid |
|
|
|
The uncompress version of Comp |
|
|
|
|
|
|
|
Parallel application that simulates the fluid dynamics with FFT |
|
|
|
Parallel version of the SIMPLE application |
|
|
|
Kirk Johnson and David Kranz (both at MIT) are responsible for this trace |
|
|
|
Parallel version of the WEATHER application, which is used for weather forecasting. The serial version is from NASA Space Flight Center, Greenbelt, Md. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Top
The memory trace files for SMPCache are ASCII data files (with the extension “.prg”), therefore, you can create and edit them using a common text editor. In this way, you can create, for example, memory trace files for teaching purposes (with some special feature). The simulator includes, in its installation directory, some small trace files created by an editor for studying several special cases of the MSI, MESI (Illinois) and Dragon protocols.
It is easy to create trace files for basic operations with vectors in C++. The following file is an example of C++ program for generating this type of memory traces: traces.cpp. This file was provided by Fernando Pardo at University of Valencia (Spain).
You can create memory traces by other tools or obtain memory traces from other web sites or trace databases, as NMSU PARL. This is the case for the traces in Memory traces section. Then, you can convert these traces to SMPCache format. Please, go to Utilities for SMPCache section in order to find an interesting trace format converter.
Top
Top
Top
More than 400 Universities and Research Centers already use SMPCache:
Top
Top
Top