PowerPC 755 simulator - August 2007 snapshot

Description

This snapshot correspond to the TLM-level simulators of the Mac G3 platform. This platform currently includes a MPC755 microprocessor, memories, the MPC107 chipset, a Programmable Interrupt Controller and a PIIX4 IDE controller. The simulator also includes a few devices such as some IDE disks and a Framebuffer Display.

Two different version of the simulator are available:

Both simulators are written using the TLM methodology presented in this article. Some additional information are also available on the TLM-Modules and the Capabilities composing the simulator.

Building the Snapshot

The snapshot is available from the following tar.gz file:

The tar.gz includes a readme.txt describing the requirements, and the compilation process.

Requirements

This snapshot requires that the following development tools are installed:

Those development tools are available for most linux distribution as binary packages.

It also requires to have SystemC 2.2 installed on your system. It is available from http://www.systemc.org. Follow the README file carefully, running configure from objdir and be sure that the destination folder exists prior to starting the compilation.

Compilation steps

The installation steps are the following:

$ ./configure --prefix=/opt/FullSystem \
             --with-systemc=path-to-systemc-2.2
$ make
$ make install

You should provide the target installation folder (/opt/FullSystem in the example above) and where SystemC 2.2 has been installed.

Running the simulators

The simulators are bundled with the gzip benchmark from Spec2000 compiled for the PowerPC architecture. A PowerPC linux kernel is also provided for the full-system simulator.
The benchmarks are available from the benchmarks/fullsystem and benchamrks/userlevel folders.

Using the User-level simulator

To run the user-level simulator (ppcemu), simply provide the powerpc binary you want to simulates followed by the arguments of the tested benchmark. For instance to run the gzip benchmark from benchmarks/userlevel folder:

ppcemu ./benchmarks/userlevel/gzip_peak.ppc32_linux ./benchmarks/userlevel/input.source 60

By running this simulation, you should obtain the following output:

...
Starting simulation at user privilege level (Linux system calls translation enabled)
spec_init
Loading Input Data
Duplicating 17949 bytes
Duplicating 35898 bytes
Duplicating 71796 bytes
Duplicating 143592 bytes
Duplicating 287184 bytes
Duplicating 574368 bytes
Duplicating 948416 bytes
Input data 2097152 bytes in length
Compressing Input Data, level 1
Compressed data 302663 bytes in length
Uncompressing Data
Uncompressed data 2097152 bytes in length
Uncompressed data compared correctly
Compressing Input Data, level 3
Compressed data 277717 bytes in length
Uncompressing Data
Uncompressed data 2097152 bytes in length
Uncompressed data compared correctly
Compressing Input Data, level 5
Compressed data 28032 bytes in length
Uncompressing Data
Uncompressed data 2097152 bytes in length
Uncompressed data compared correctly
Compressing Input Data, level 7
Compressed data 22975 bytes in length
Uncompressing Data
Uncompressed data 2097152 bytes in length
Uncompressed data compared correctly
Compressing Input Data, level 9
Compressed data 22790 bytes in length
Uncompressing Data
Uncompressed data 2097152 bytes in length
Uncompressed data compared correctly
Tested 2MB buffer: OK!
SystemC: simulation stopped by user.
Simulation finished
Simulation statistics:
simulation time: 67.6 seconds
simulated time : 2.39704 seconds (exactly 2397041099141 ps)
simulated instructions : 709134970 instructions
host simulation speed: 10.4902 MIPS
time dilatation: 28.2014 times slower than target machine

Using the Full-system Simulator

As a fullsystem simulator will boot up on OS, it requires more parameters such as a file describing the device tree, the kernel to be loaded and the kernel parameters such as the booting drive and init script name.

For instance, the benchmarks/fullsystem folder contains a PowerPC linux kernel (vmlinuz) and an initial ramdrive (initrd). To simulate such a configuration, you should enter:

ppcemu-system \
 -t TLM-PowerPC/src/processors/powerpc/device_tree_pmac_g4.xml \
 -a TLM-PowerPC/src/processors/powerpc/gdb_powerpc.xml \
 -r ./benchmarks/fullsystem/164.gzip.img.gz \
 ./benchmarks/fullsystem/vmlinux-2.6.19.2pmac \
 root=/dev/ram0 init=/linuxrc

The previous commend line will start simulating a PowerPC booting linux, and running the gzip benchmark loaded into the initrd ramdrive. The following output is produced on the framebuffer display:

Initializing the simulated bios Loading kernel and probing
peripherals
Running bzip benchmark from
the initrd ramdrive

You can click on any of he above pictures to have a more detailed view of the framebuffer console.