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 should run on any platform that has the Java runtime environment (JRE) version 1.8.0u66 or later installed on it. Version 3 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 4MB zip file containing version 4.0.5 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.
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 January 18, 2016.