CPU Sim

(New version 4 now available)

An Interactive Java-based CPU Simulator for use in Introductory Computer Organization Classes

Written and maintained by Dale Skrien
Department of Computer Science
Colby College
Waterville ME 04901
Email: djskrien@colby.edu
Author's home page: http://www.cs.colby.edu/djskrien/

Summary

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.0u40 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.

Features of Both Versions 3 and 4

The CPU Sim application is a fully-integrated development environment that includes the following features.

New Features of Version 4

More information about Version 3

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.

Downloads

CPU Sim is freeware.

You can download a 8MB zip file containing version 4.0.0 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.0u40 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 djskrien@colby.edu if you are interested in these supplementary materials.

Previous Versions

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 djskrien@colby.edu if you are interested in these earlier versions.

Articles about CPU Sim and its precursor

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 April 6, 2015.