(1) A Beginner’s Quick Start to SIMICS
(2) Disclaimer This is a quick start document to help users get set up quickly Does not replace the user guide – you will have to go through the user guide for many parts of this quick start
(3) Assumptions You have registered at Virtutech, downloaded SIMICS and set up the license Downloaded the user guide from for clarifications or doubts Familiarity in using Linux (e.g. you must know what “mounting” means
(4) Step 1 Download one of the existing disk images for the x86 ISA (this ISA is what we are targeting) from Pick one that has SimicsFS already installed. – for example: hippie3-r62.craff
(5) Step 2 Link or copy this file into the appropriate directory: [simics-workspace/targets/x86-440bx/] Your workspace directory structure should be as above if you installed SIMICS version 3.0 (the latest version). Replace "simics-workspace" with the path to your SIMICS workspace directory.
(6) Step 3 Run SIMICS on the appropriate simics- configuration file For example (from inside simics- workspace/), you will execute –./simics targets/x86-440bx/hippie- common.simics
(7) Step 4 Follow the instructions in the simics user's guide to –boot the system (takes a long time) –save a check-point (write-configuration command) after you have booted so that you don't have to wait for the system to boot again –try mounting /host and copying files from your Linux host computer to the simulated machine. –quit simics, restart simics with the after-boot checkpoint.
(8) Step 5 Try setting up a multi-processor machine: –copy hippie-common.simics to hippie-common- 2p.simics in your simics-workspace/targets/x86- 44bx directory –add the following line as the first line in hippie- common-2p.simics: $num_cpus = 2 Start simics as before using hippie-common- 2p.simics. You should now have a 2 processor machine. Boot up and save an after-boot checkpoint.
(9) Step 6 Brush up a little bit on the "pthreads" library. Write a very simple application with two threads that do completely independent work, and are therefore trivial to execute in parallel on a multi-processor machine. Compile this application on your host machine (Linux, using gcc) and try running this app under both the 1-processor and 2-processor hippie machines. Do you see any difference in run-times? The app should run much faster (2x) on the 2-processor machine.