Free cross-platform educational MIPS64 CPU Simulator

edumips64-1.3.0.jar English manual View on GitHub

Welcome!

Welcome to the home page of EduMIPS64, a free (as in free speech) visual and cross-platform MIPS64 CPU Simulator.

The simulator was written in order to support Computer Architecture students with a free and cross-platform tool that allows them to run programs written in the MIPS64 assembly dialect and see how the CPU behaves during the execution, experimenting with various aspects of low-level programming that they learn throughout the course.

EduMIPS64 started as a GPL Java port of WinMIPS64, a Windows-only MIPS64 simulator, but independently evolved soon after into a stand-alone open source application.

News

: Release 1.3.0 (codename: Lourdes)

EduMIPS64 1.3.0 is out! This is a release introducing a backwards-incompatible change to `DMULU`, Simplified Chinese translation, a more modern look and feel and minor bug-fixes. Find it on GitHub.

: Release 1.2.10 (codename: FP - Freedom and Peace)

EduMIPS64 1.2.10 is out! This is a bug-fix release that addresses 3 bugs. Find it on GitHub.

: Release 1.2.9 (codename: Baby Shark)

EduMIPS64 1.2.9 is out! This is a bug-fix release that fixes a LUI bug and a help bug. Find it on GitHub.

: Release 1.2.8 (codename: NLMS)

EduMIPS64 1.2.8 is out! This release contains a new experimental CLI front-end, a native Windows installer and a few bug-fixes, including a major fix for the LUI instruction. Here is the link to the release on GitHub.

: Release 1.2.7.1 (codename: Hope)

EduMIPS64 1.2.7.1 is out! This is a minor bug-fix release that fixes a small issue in 1.2.7. Here is the link to the release on GitHub.

: Release 1.2.7 (codename: Hope)

EduMIPS64 1.2.7 is out! This release contains bug fixes for 2 issues, a correctness bug (an instruction was erroneously overwritten in the pipeline) and a UI bug (some FPU instructions were not represented correctly). Here is the link to the release on GitHub.

: Release 1.2.6 (codename: Phlegmatic)

EduMIPS64 1.2.6 is out! This release fixes some bugs related to memory handling (OOM), increases the amount of memory available to programs, adds a better way to report bugs and contains the usual miscellaneous bugfixes and improvements related to the dev side of EduMIPS64 (e.g., migrating back to Gradle, using Azure Pipelines for CI, etc)) Here is the link to the release on GitHub.

: Release 1.2.5 (codename: Eden)

EduMIPS64 1.2.5 is out! This release fixes a bunch of bugs that have been lying around for some time, both in the core and in the UI. Here is the link to the release on GitHub.

: Release 1.2.4 (codename: Nicolosi)

EduMIPS64 1.2.4 is out! This release further improves execution speed, adds the ability to scale fonts in the UI and adds some code quality improvements. Here is the link to the release on GitHub.

: Release 1.2.3 (codename: Angelo)

EduMIPS64 1.2.3 is out! This release improves dramatically the execution speed for large programs and fixes a bunch of outstanding bugs, in addition to adding code quality improvements. Here is the link to the release on GitHub.

: JavaScript port proof-of-concept

We just published a blog post about the recent work on a proof-of-concept for an EduMIPS64 port to JavaScript. The core was already ported and the prototype interface is available at www.edumips.org/edumips64.html.

: Release 1.2.2 (codename: Contrada Fumata)

EduMIPS64 1.2.2 is out! This release fixes Issue #68. Here is the link to the release on GitHub.

: Release 1.2.1 (codename: IFSC)

EduMIPS64 1.2.1 is out! Most of the changes are not user-visible, but a few bugs have been fixed. You can read about all the changes in the release page on GitHub.

: Website migrated to GitHub Pages

The VPS that hosted the web site is being turned down, so we migrated the web site to GitHub pages. The old contents have been backed up and might be added to this new site over time.

P.S. on 15 March, we deleted the project on Google Code, since the service is shutting down. All the development will continue, as usual on GitHub, and release will be uploaded on GitHub and SourceForge.

: Release 1.2 (codename: Ringsend)

EduMIPS64 1.2 is out! Lots of bugs have been fixed in this new version, mainly related to the Dinero Frontend. Changelog, release notes for 1.2. Downloadable files are available on GitHub and SourceForge.

: Release 1.1 (codename: Charleroi)

EduMIPS64 1.1 is out! This is mainly a bugfix release post-1.0. The main areas of improvement for this version are correctness, internal cleanliness and packageability: you can read about all the changes in the release notes for 1.1.

: Release 1.0

Wow. After only 6 years, we finally released version 1.0 of EduMIPS64 (codename: Philadelphia). The main new features since 0.5 are the Floating Point Unit (FPU) support and the in-application HTML help. There are of course a lot of small bug fixes and improvements, and you can read about that in the release notes for 1.0. The JAR file, source archive and PDF docs are available on SourceForge, while as usual the development happens on github.

: Code moved to github.org

All the source code has been moved to github, the SVN repository has been retired.

: Research paper published

A paper about EduMIPS64 has been published by the IEEE Transactions on Education; it is about the usage of the simulator in undergraduate computer architecture courses. You can find the pdf here.

History

The development of the simulator started in 2006, when a group of students from the University of Catania decided that they didn't want to be tied to the Windows operating system to complete their Computer Architecture assignments. Also, writing a CPU simulator from scratch sounded fun!

Most of the features were implemented in 2006, and after that only a handful of developers kept adding features in 2007 and 2008. From 2008 on, the simulator has been maintained by lupino3, one of the founders of the project.

The ChangeLog offers a bit of history, but unfortunately the bulk of the development (prior to 0.0.7) was not recorded as it happened via email using lupino3 as a human VCS.

Contributing

Please feel free to contribute to EduMIPS64, in the spirit of free software. The most basic form of contribution is filing bugs against the simulator, reporting any defects you find or suggesting improvements. We use GitHub issues to track bugs and feature requests, see the GitHub issues page for a list of existing issues and a way to open new ones

Please report any security vulnerabilities through the public GitHub issue tracker.

If you want to contribute by writing code, please contact the maintainers via GitHub, as they will be able to direct you to the code areas where your skills will be most useful. Please have a look first at the developer guide, which explains how to build EduMIPS64 from source and how the code is structured

Support

The development of EduMIPS64 is aided by two companies that provide tools for free for developers of free software. Those companies are:

  • YourKit, that supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.
  • JetBrains, who kindly provide IntelliJ Ultimate.