View on GitHub

MIPT-MIPS

Cycle-accurate pre-silicon simulator of MIPS CPU

Download this project as a .zip file Download this project as a tar.gz file

MIPT-MIPS is a pre-silicon simulator of MIPS CPU. It is able to measure performance of program running on CPU, thus taking best features of RTL and common functional simulation.

This project is a part of MIPT ILab activity at Moscow Institute of Physics and Technology (MIPT). The project is being developed by a group of students under the guidance of Intel employees.

Lectures on Computer Architecture

MIPT-MIPS is a supporting project to MIPT lectures on Computer Architecture.

Lectures are delivered every Friday at 18:30 in 304 RT building of MIPT.

Term 1: CS Basics and Components

Date Event Hometask
15
Sep
Promotion event
Rus text, no audio, 8 MB
Eng text, no audio, 8 MB
 
22
Sep
L1: Project intro.
Basics of Simulator Development

Rus/Eng text, no audio, 0.7 MB
• Add your name to members.txt. Follow this instruction.
• Start reading of 1st and 2nd chapters of „Teach Yourself C++“.
29
Sep
L2: Layers of Computer Science.
ISA and uArch

Eng text, no audio, 9 MB
• Read our README.md, build MIPT-MIPS, and run some traces.
• Take a look at MIPS ISA
06
Oct
L3: Combinational Circuits
Eng text, no audio, 0.9 MB
• Install Logisim, reproduce some schemes we discussed, look inside ALU example
13
Oct
L4: Integrated Circuits Basics
Eng text, no audio, 1.8 MB
• Watch YouTube videos about CPU production: 1, 2
• Look inside CMOS Logisim example
20
Oct
L5: Sequential Circuits
Eng text, no audio, 0.4 MB
• Look inside RS trigger, ALU + flip-flop, counter, and 2x4 array Logisim examples
• Get ready for the upcoming test!
27
Oct
Test 1
• Review L2−L5 material
(excluding semiconductors, n/p-doping and transistor structure)
• Review 1st and 2nd chapters of Schildt C++ manual
• Review main Git commands
• Continue reading „Teach Yourself C++“, chapters 3-6

Term 2: MIPS as pipeline-friendly ISA

Date Event Hometask
03
Nov
L6: Single-Cycle Implementation of MIPS CPU
Eng text, no audio, 0.5 MB
• Take a look at MIPS ISA
• Check simulator internals: MIPS disasm and Functional Simulator
• Assign yourself to MIPS ISA tasks and MIPS traces tasks
10
Nov
L7: Pipeline
Eng text, no audio, 0.8 MB
• Check simulator internals: Ports and Performance Simulator
• Assign yourself to PerfSim tasks
17
Nov
L8: Branch Prediction
Eng text, no audio, 0.6 MB
• Check branch prediction model manual
24
Nov
No lecture • Use the time slot to progress with your tasks
01
Dec
L9: Advanced Pipelining
— Traps
— Complex Pipeline
— Superscalar CPUs
Eng text, no audio, 0.3 MB
 
08
Dec
L10: Performance and Power
Eng text, no audio, 1.1 MB
• Get ready for the upcoming test!
15
Dec
Test 2
• Review L6−L10 material
(excluding performance/timing formulas)
• Review chapters 3-6 of Schildt C++ manual
 

Term 3: Breaking the Memory Wall

Date Event Hometask
February 2018 L11: Caches and Memory Hierarchy, Part I  

MSU Seminars

Date Event
24
Nov
Caches and Memory Hierarchy
Rus text, no audio, 0.6 MB
15
Dec
Out-of-Order Execution
Eng text, no audio, 0.3 MB

You may find previous lectures with audio narrations: the most complete set from 2015 and others: 2016, 2014, 2013, 2012.

Instructions to use downloaded material can be found on wiki page.

In addition, repository contains a lot of useful Wiki manuals about Git, MIPS, C++, Make utilites and so on.

Students Contribution Score

Year Name Score Comments
2016/2017 George Korepanov 12 #28, #48, #49, #26, #60, #45, #73
2017/2018 Denis Los 10 #98, #99, #77, #221, #225
2017/2018 Kirill Nedostoev 7 #147, #87, #93
2016/2017 Alexander Seppar 4 fc526cb8, #25, #52
2017/2018 Alexander Timofeev 3 #69, #132
2017/2018 Alexey Steksov 3 #152, T#3
2017/2018 Alexander Misevich 3 #37, #216
2017/2018 Yan Logovskiy 2 #92
2017/2018 Danil Yarovoy 2 T#4
2016/2017 Ivan Korostelev 1 #32

About us

The project is mentored by Pavel Kryukov and Igor Smirnov. For more information, check this wiki page and MIPT ILab site

Additional repositories: