EduMIPS641.4.0 · MIPS64 CPU SIMULATOR

1. General description · free software · GPL · est. 2006

A MIPS64 CPU
on your screen.

EduMIPS64 is a visual MIPS64 processor simulator for Computer Architecture courses. Write assembly, execute it cycle by cycle, and inspect the pipeline, registers, memory and caches while it runs.

Desktop app for Windows, macOS & Linux · single JAR · CLI ·
manual (PDF)

The EduMIPS64 web version running a program: source code with the pipeline stages of each instruction highlighted, execution statistics, and the CPU pipeline diagramThe EduMIPS64 web version running a program in dark mode: source code, execution statistics, and the CPU pipeline diagram
The EduMIPS64 Swing desktop version showing cycles, registers, statistics, pipeline diagram, memory data and source code panelsThe EduMIPS64 Swing desktop version in dark mode showing cycles, registers, statistics, pipeline diagram, memory data and source code panels
Fig. 1 — The web version at web.edumips.org, mid-execution: pipeline stages highlighted in the source, live statistics and the CPU diagram.
Enlarged screenshot view
2

Features

3

Typical application

  1. Write MIPS64 assembly

    Or open one of the bundled examples. The parser tells you exactly what's wrong, and where, before anything runs.

  2. Run it cycle by cycle

    Single step, multi-step, or run to completion. The pipeline view and cycle diagram show where every instruction is, every cycle.

  3. Inspect everything, then experiment

    Registers, memory, stalls, CPI, cache hits and misses. Turn forwarding on, resize the cache, run it again and compare.

        .data
vec:    .word64  1, 2, 3, 4

        .code
main:   daddi    r1, r0, 4
loop:   daddi    r1, r1, -1
        bne      r1, r0, loop
        syscall  0
Listing 1 — loop.s
4

The project

History

Development started in 2006, when a group of students at the University of Catania decided they didn't want to be tied to Windows to complete their Computer Architecture assignments — and writing a CPU simulator from scratch sounded fun. It began as a GPL Java port of WinMIPS64 and quickly became a stand-alone project.

Since 2008 the simulator has been maintained bylupino3, one of the founders. TheChangeLogtells part of the story; the earliest development happened over email, using lupino3 as a human VCS.

Contributing

Contributions are welcome, in the spirit of free software. The simplest one:file a bug or suggest an improvement. Security issues go through the public issue tracker too.

Want to write code? Start with thedeveloper guide, then reach out to the maintainers on GitHub — they'll point you to where your skills help most.

5

Revision history

all 16 releases →
DateRevCodenameNotes
1.4.0WalkOfLife

EduMIPS64 1.4.0 is out, marking the 20th anniversary of the project! Highlights include a packaged Electron desktop app for Linux, macOS and Windows, expanded MIPS64 Release 6 support (three-operand DMUL, DMOD, DDIV and the modern DMULU syntax), an embedded cache simulator that replaces DineroIV, better parser diagnostics, CLI quality-of-life improvements, a dark mode toggle, and a number of correctness fixes in the simulator core. Find it on GitHub.

1.3.0Lourdes

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.

1.2.10FP - Freedom and Peace

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

1.2.9Baby 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.

1.2.8NLMS

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.

6

Application notes

all 14 notes →

Announcements and articles from the project's twenty years.

Towards a JavaScript port of EduMIPS64

Ten years after choosing Java to make EduMIPS64 cross-platform, the team cross-compiled the simulator core to JavaScript with GWT/JsInterop, publishing a crude proof-of-concept web UI for the project's 10th anniversary. Read more →

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.