Home - MIPT-ILab/mipt-mips GitHub Wiki
Lectures
- 2021/2022 - in progress, published on the web site
- 2020/2021
- 2019/2020
- 2018/2019 + YouTube
- Assignments of 2012-2016
Simulation
Functional simulator internals
- Functional memory model
- MIPS disassembler
- Functional simulator
- List of supported instructions
- MARS system calls
Clock-precise simulator internals
- Performance simulator
- Communication between modules through ports.
- Cache model
- BPU model
- Branch prediction pipelines
- Data bypass and scoreboard
- Pipeline Visualization
Integration
Studies
Tools
Version control
- Git & GitHub cheat sheet: basic commands of Git, Git flow example and working with branches.
- Git Submodules: how to work with git submodules.
Prerequisites
- C compilers: how to install newer version of C++ compilers (G++, Clang++ etc.)
- MIPS binutils and RISC-V binutils installation guide: how to install specific GNU Binutils to your own Linux machine.
- Required libraries installation guide.
Testing and debugging
- How to work with GNU Debugger
- How to write unit tests with CATCH
Build and deployment
- C++ build: short introduction into C++ project build organization.
- Makefiles
- CMake
- Ninja
- C++ deployment using AppVeyor: best known methods to set up AppVeyor build for C++ project
Manuals
MIPS
- Instruction set: description instructions, including required in our project.
- Registers: description of registers, their names and purposes.
- Pseudo-instructions: description of common assembly macros used by MIPS compilers
C++
- C++ guidelines: what we use and what we do not use in C++
- Iterators: a guide to C++ iterators.
- Smart Pointers: a guide to C++11 smart pointers with some motivation examples.
Programming
Communication
- Code style guidelines: code style that we use in our project.
- How to write Wiki manuals
- Markdown: best know methods to work with Markdown Wiki