Written and maintained by Dale Skrien
Department of Computer Science
Waterville ME 04901
Author's home page: http://www.cs.colby.edu/djskrien/
CPU Sim is a Java application that allows users to design simple computer CPUs at the microcode level and to run machine-language or assembly-language programs on those CPUs through simulation. It can be used to simulate a variety of architectures, including accumulator-based, RISC-like, or stack-based (such as the JVM) architectures. It is a useful tool for instructors who want their students to get hands-on exposure to a variety of architectures and to get a chance to design and implement their own architectures and write programs in machine language and assembly language for their architectures.
The newest version 4 of CPU Sim is written using the JavaFX package. (Version 3, which is still available, was written using the Swing package.) Version 4 of CPU Sim should run on any platform that has the Java runtime environment (JRE) version 1.8.0u66 or a later version of Java 1.8 installed on it, but not Java 9 or Java 10. Version 3 of CPU Sim should run on any platform that has JRE version 1.5 or later installed on it. Version 4 is backwards compatible with version 3 in that all machines created in version 3 can be loaded and run in version 4.
Here are some pictures of the dialog boxes, windows, and menus of version 3. Version 3 has a Chinese language version that Version 4 does not yet have.
CPU Sim is freeware.
You can download a 5MB zip file containing version 4.0.11 of the CPU Sim package. The Version 4 installation instructions explain what is in the zip file and how to install and start up the package. The user manual is available through the Help menu of CPU Sim. Note: You will need to install the Java Runtime Environment (JRE) version 1.8.0u66 or later on your computer.
You can still download a 5MB zip file containing version 3.9.0 of the CPU Sim package. The Version 3 installation instructions explain what is in the zip file and how to install and start up the package. The user manual is available through the Help menu of CPU Sim. Note: You will need to install the Java Runtime Environment (JRE) version 1.5 or later on your computer.
An instructor's manual including sample programming projects and their solutions is also available. Please contact me at firstname.lastname@example.org if you are interested in these supplementary materials.
If you are interested in looking at the source code, CPU Sim is open source and is available for download on GitHub.
In addition, there is a YouTube
playlist, created by Anshuman Bhardwaj, showing how to
install and run CPU Sim and how to create a new CPU to simulate.
Versions 1 and 2 of CPU Sim were written in the early 1990's using Macintosh Common Lisp and, as a result, they ran only on the Macintosh platform. Version 2.2 of this software won the 1993 EDUCOM Higher Education Software and Curriculum Innovation Award for Best Engineering Software (Computer Science). It was one of only 10 winners out of over 140 entries. A Macintosh Common Lisp-based version (2.6.5) is still available in both MC680x0-native and PowerPC-native forms. These are the only versions of CPU Sim that run on MacOS 9 and earlier.
Please contact me at email@example.com if you are interested in these earlier versions.
KERRIDGE, J., AND WILLIS, N. 1980. A Simulator for
Teaching Computer Architecture. SIGCSE Bulletin, 12(2), 65-71.
This simulator is the precursor to CPU Sim.
SKRIEN, D., AND HOSACK, J. 1991. A multilevel
simulator at the register transfer level for use in an
introductory machine organization class. SIGCSE Bulletin (Papers
of the 22nd ACM/SIGCSE Technical Symposium on Computer Science
Education), 23(1), 347-351.
This article describes version 1.0.13 of CPU Sim.
SKRIEN, D. 1994. CPU Sim: A Computer Simulator for Use in an
Introductory Computer Organization Class. Journal of Computing in
Higher Education, 6(1), 3-13.
This article describes version 2.2 of CPU Sim.
SKRIEN, D. 2001. CPU Sim 3.1: A tool for simulating computer architectures for computer organization classes. ACM Journal of Educational Resources in Computing (JERIC) 1(4), 46-59. This issue of JERIC is a special one devoted to computer architecture simulators.
I also presented a faculty poster at SIGCSE 2002 about CPU Sim 3.1.
This page was last updated on August 7, 2017.