← Back to CS Projects
C · Systems Programming · Advanced Computer Organization · Georgia Tech

COMPUTER
ARCHITECTURE
SIMULATORS

3 Projects C Systems Programming Georgia Tech Complete

Three low-level systems projects from Advanced Computer Organization at Georgia Tech — simulating a multi-level cache hierarchy, an out-of-order processor using Tomasulo's algorithm, and cache coherency protocols across multi-core processors.

These three projects were built for CS Advanced Computer Organization at Georgia Tech — one of the most technically demanding systems courses in the program. Each project required implementing a core component of modern processor architecture entirely in C, with no starter framework beyond the problem specification.

The progression moves from single-core memory hierarchy simulation through out-of-order execution to multi-core cache coherency — covering the same architectural concepts found in real processor designs at Intel, AMD, and ARM. The projects are simulation-focused: given a trace of memory accesses or instructions, the simulator must produce exact outputs matching the behavior of the hardware being modelled.

01 Cache Hierarchy Simulator
C · L1/L2/L3 Cache · Replacement Policies · Hit/Miss Analysis

Built a configurable multi-level cache simulator in C that models the behaviour of a real processor's memory hierarchy. Given a trace of memory access addresses, the simulator processes each access through configurable L1, L2, and L3 cache levels, tracking hits, misses, and evictions at each level with exact fidelity to the hardware's behaviour.

The simulator supports multiple cache replacement protocols, selectable at runtime — making it possible to study how replacement policy affects hit rate across different access patterns and workloads.

02 Out-of-Order Processor Simulator
C · Tomasulo's Algorithm · Branch Prediction · Instruction-Level Parallelism

Implemented a simulation of an out-of-order processor using Tomasulo's algorithm — the technique used in virtually every modern high-performance processor (Intel Core, AMD Ryzen, Apple Silicon) to execute instructions out of program order while maintaining correct results.

Out-of-order execution is one of the most complex techniques in processor design: instructions must be tracked through issue, execution, and writeback while resolving data hazards dynamically at runtime. The simulation models this entire pipeline cycle-accurately, paired with a branch predictor to handle control flow.

03 Cache Coherency Protocol Simulator
C · Multi-Core · MOSI · MESI · MOESIF · Snooping Bus

Simulated cache coherency protocols across a multi-core processor system — the mechanism that keeps each core's private cache consistent with the other cores when multiple processors share memory. This is the fundamental problem that makes multi-core processor design hard: without coherency, two cores can hold contradictory values for the same memory address.

The simulator implements and compares three progressively more sophisticated coherency protocols, each adding new cache line states to reduce unnecessary bus traffic and improve performance.

MOSI

4-state protocol: Modified, Owned, Shared, Invalid. The Owned state allows a cache to supply data to other caches directly without writing back to memory first — reducing main memory traffic.

MESI

4-state protocol: Modified, Exclusive, Shared, Invalid. The Exclusive state allows a cache line to be promoted to Modified without a bus transaction if no other cache holds it — the standard protocol used in most modern processors.

MOESIF

6-state protocol combining both optimizations: Modified, Owned, Exclusive, Shared, Invalid, Forward. The Forward state designates one cache as the designated responder for a shared line, reducing bus contention in highly shared scenarios.