Personal project
Given a simple instruction set (RISC-V like), this project was aiming to create a virtual machine able to:
- Translate provided assembly code to hexadecimal instructions;
- Execute these instructions through registers, data memory and cache memory;
- Extract performance indicators depending on cache memory architecture and different data management strategies;
- Unit test every function.
Output
This image shows how many instructions per second the user's machine can execute depending on the different cache configuration, highlighting trends and peaks during execution.
Tools
- Python3
- UnitTest python framworke
- Assembly code
- Object-oriented programming