View on GitHub

MIPT-MIPS / MIPT-V

Cycle-accurate pre-silicon CPU simulation

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

MIPT-MIPS / MIPT-V is a pre-silicon simulator of MIPS and RISC-V CPUs 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. Additionally, it is a supporting project to MIPT lectures on Computer Architecture and Software Development courses.

Computer Architecture 2020/2021

Lectures are given online each Monday, 10:45-12:10. A link to join the meeting: link.

Date Type Event
7 Sep Org. Course introduction
• Slides: download
7 Sep Lecture L1: Layers of Computer Architecture
• Slides: download
14 Sep Lecture L2: ISA and uArch
• Slides: download
14 Sep Lecture L3: Integrated Circuits
• Slides: download
21 Sep Lecture L4: CMOS
• Slides: download
21 Sep Lecture L5: Combinational Circuits
• Slides: download
28 Sep Lecture L6: Sequential Circuits
• Slides: download
5 Oct Practice P1: Combinational & Sequential Circuits
• Slides: download
12 Oct Lecture L7: RISC-V ISA
• Slides: download
• Video: watch
19 Oct Lecture L8: RISC-V Single-Cycle implementation
• Slides: download
• Video: watch
26 Oct Lecture L9: Pipelining
• Slides: download
2 Nov Lecture L10: Data hazards
• Slides: download
• Video: watch
9 Nov Lecture L11: Control Hazards. Branch Prediction
• Slides: download
• Video: watch
23 Nov Lecture L12: Advanced pipelining
• Slides: download
• Video: watch
8 Feb Lecture L13: Caches, part 1/3
• Slides: download
• Video: watch
15 Feb Lecture L14: Caches, part 2/3
• Slides: download
• Video: watch
22 Feb Lecture L15: Caches, part 3/3
• Slides: download
• Video: watch
1 Mar Lecture L16: Virtual memory
• Slides: download
• Video: watch
15 Mar Lecture L17: ILP. Superscalar. OOO - part 1
• Slides: download
• Video: watch
22 Mar Lecture L18: OOO - part 2
• Slides: download
• Video: watch
29 Mar Lecture L19: OOO - part 3, loads and stores
• Slides: download
• Video: watch
5 Apr Lecture L20: Introduction to Software Development
• Slides: download
• Video: watch
12 Apr Lecture L21: TLP (part 1)
• Slides: download
• Video: watch

You may find lectures from the previous year in our archive.

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

Software Development 2018/2019

Date Event name
13 Sep Promotion event
• Slides: russian version
26 Sep Version control system
Slides, YouTube
• Homework: read our our cheat sheet and contribute to members.md
• Further reading: Pro Git (Rus, Eng), Git Flight Rules (Rus, Eng)
10 Oct Build, Makefiles, and CMake
Slides, YouTube
• Homework: use Make or CMake to build your project, build MIPT-MIPS.
24 Oct Continuous Integration
Slides, YouTube
• Homework: install Travis CI for your project to run your Make or CMake builds.
07 Nov Code form
Slides, YouTube
21 Nov Unit testing
Slides, YouTube
05 Dec Test-driven development
Slides, YouTube

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

Students Contribution Score

Group Name Score Comments
MIPT-611 Denis Los 19 #98, #99, #77, #221, #225, #221, #70, #31, #20
MIPT-718 Andrey Agrachev 13 #563, #465, ¼#626, #830, #248, #879, #821
MIPT-714 Yauheni Sharamed 13 #599, #724, #649, #910, #925
MIPT-618 Alexander Misevich 13 #37, #216, #201, #246, #124, #18, #283, #277
MIPT-81? Eric Konks 12 #520, #1140, #1257
MIPT-512 George Korepanov 12 #28, #48, #49, #26, #60, #45, #73
MIPT-711 Vyacheslav Kompan 11 #354, #662, #122, ½#290
MIPT-715 Rustem Yunusov 10 #901, #760, #614
MIPT-712 Egor Bova 10 ½#530, #235, #461
MIPT-717 Vsevolod Pukhov 9 #589, ½#530, #602, #130
MIPT-711 Yan Logovskiy 9 #91, #92, ⅓#383, #506, ¼#613
MIPT-616 Kirill Nedostoev 9 #147, #87, #93, #215, #214
MIPT-91? Vladimir Graudt 6 #1410, #1409, #512
MIPT-616 Alexander Timofeev 5 #69, #132, #215, #214
MIPT-616 Konstantin Soshin 5 #165
BSUIR Alex Kulsha 5 #356
BSUIR Vladislav Zhuravski 4 1448
BSUIR Andrei Karpyza 4 #355
MIPT-616 Andrew Sultan 4 #282, #132
MIPT-518 Alexander Seppar 4 fc526cb8, #25, #52
MIPT-614 Alexey Steksov 3 #152, T#3

Minor contributors: Ivan Startsev (#525), Arsen Davtyan (#660, #643), Danil Yarovoy (T#4), Maxim Davydov (#1096), Ivan Korostelev (#32)

RISC-V B instructions are delivered by Kirill Chemrov, Yaroslav Okatev, Alexandr Vinogradov, Airat Nazmiev, Roman Zlobin, Igor Bulatov, Daniel Kofanov, Nikolay Zernov, Nikita Gorbachev, Vladimir Prokhorov, Eric Konks, Maxim Davydov, Ilya Burtakov, Alexey Shcherbakov, Anton Okley, Egor Titov, Eugene Naydanov, Mihail Fedorov, Vasilii Zaitsev, Ravil Zakiryanov, Ivan Burtakov, and Vladimir Graudt.

List of Upcoming contributions

About us

The project is mentored by Kirill Korolev, and Oleg Ladin under Pavel Kryukov’s supervising. For more information, check this wiki page and MIPT ILab site

Additional repositories: