Skip to content

YasinSaberi/memory-hierarchy-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Memory Hierarchy Simulator 🧠

Final Project for Computer Architecture Course Isfahan University of Technology (IUT)

A comprehensive simulation of the computer memory hierarchy was designed and implemented as the final project for the Computer Architecture course. This tool visualizes how data moves between CPU, Caches (L1, L2, L3), Main Memory (RAM), and Secondary Storage (Disk).

πŸš€ Features

...

  • Multi-Level Cache Simulation: Simulates L1, L2, and L3 caches with configurable sizes and latencies.
  • Replacement Policies: Includes 5 algorithms:
    • LRU (Least Recently Used)
    • LFU (Least Frequently Used)
    • FIFO (First-In, First-Out)
    • MRU (Most Recently Used)
    • Random
  • Interactive GUI: Built with tkinter for easy configuration and real-time visualization.
  • Performance Analysis: Calculates AMAT (Average Memory Access Time), Hit/Miss rates, and generates graphical charts using matplotlib.
  • Workload Generation: Simulates real-world access patterns (Locality of Reference) using Gaussian distribution.

πŸ› οΈ Built With

  • Python 3.x - Core Logic
  • Tkinter - Graphical User Interface
  • Matplotlib - Data Visualization

πŸ“¦ How to Run

  1. Clone the repository:
    git clone [https://github.com/YOUR_USERNAME/memory-hierarchy-simulator.git](https://github.com/YOUR_USERNAME/memory-hierarchy-simulator.git)
  2. Install dependencies:
    pip install matplotlib
  3. Run the application:
    python main.py

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Computer Architecture Course Project: A Python-based simulation of memory hierarchy (L1/L2/L3, RAM, Disk) with OOP principles, GUI, and performance analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages