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/


CPU Sim is a Java application that I wrote that allows users to design simple computer CPU's at the microcode level and to run machine-language or assembly-language programs on those CPU's 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.

CPU Sim was written using the Swing package. It should run on any platform that has the Java runtime environment, JRE version 1.5 or later, installed on it. I have tested it on Windows, Linux, and Macintosh (OS X) platforms.


The CPU Sim application is a fully-integrated development environment that includes the following features. The User's Manual is available in PDF form and in the form of online help from the main menu and from buttons within the various dialog boxes of CPU Sim.

To get a better feeling for the user interface of CPU Sim, I have made available some pictures of the dialog boxes, windows, and menus.

Newest Version

The latest stable version of CPU Sim is 3.9.0. It runs under Java 1.5 or later.


CPU Sim is freeware. You can download a 5 MB zip file containing version 3.9.0 of the CPU Sim package. Here is what is new in version 3.9.0. The installation instructions explain what is in the zip file and how to install and start up the package. If you wish, you can view or download just the User's Manual (in PDF). NOTE: The User's Manual has not yet been updated to reflect the changes added since version 3.4.1, but the online help in CPU Sim has been updated.

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

I wrote versions 1 and 2 of CPU Sim 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 July 28, 2013.