Multicore OoO Simulator¶
A multi-core, out-of-order, cache-coherent CMP simulator written in modern C++20. Each core models a Tomasulo-style out-of-order pipeline with a real branch predictor and a private L1/L2 cache hierarchy. Cores are connected through a ring interconnect with a directory-based coherence protocol.
+-----------------------------+
| Coherent Network | (RING)
| (directory + interconnect) |
+--+-------+-------+-------+--+
| | | |
Core 0 Core 1 Core 2 Core N-1
+----+ +----+ +----+ +----+
|OoO | |OoO | |OoO | |OoO |
| L1 | | L1 | | L1 | | L1 |
| L2 | | L2 | | L2 | | L2 |
+----+ +----+ +----+ +----+
|
DRAM
This is a personal project, continuously evolving. The core engine (OoO + cache + coherence + multi-thread sync) is complete and tested against published baselines on real SPEC2017 traces.
Where to go next¶
-
:material-sitemap: Architecture
The system block diagram, per-module breakdown, and what's modeled vs. abstracted.
-
:material-play: Running the simulator
Build, configure, point it at a trace, and read the output.
-
:material-book-open-page-variant: Phase reports
A development journal documenting every phase — design, implementation, bugs, validation.
-
:material-school: Study material
Concept-first explanations: Tomasulo, ROB, branch prediction, cache coherence (MSI → MOESIF), memory consistency, interconnect.
At a glance¶
| Aspect | What this sim has |
|---|---|
| Cores | Configurable N. Tomasulo-style OoO. ROB + reservation stations + LSU. |
| Branch predictor | Pluggable: always-taken, Yeh-Patt, perceptron, hybrid, tournament. |
| Caches | Private L1 + L2 per core. Non-blocking, MSHR-backed. LRU/LIP/MIP. |
| Prefetcher | Pluggable: next-line (+1), Markov, hybrid. |
| Coherence | Directory-based. Five protocols: MI, MSI, MESI, MOSI, MOESIF. |
| Interconnect | Ring. Request / response / snoop message classes. |
| Memory | Single-channel DRAM with fixed latency (a known simplification). |
| Traces | ChampSim v1 binary + CasimV2 multi-thread extension. |
| Validation | Bit-for-bit regression against three Georgia Tech course projects. |
| Tests | 187 Catch2 tests, CI on Linux x86_64 and macOS arm64. |
See Status for the honest current state — what works, what's known-limited, what's deferred.