====== QtRVSim - výukový simulátor architektury RISC-V ====== [[https://github.com/cvut/qtrvsim|QtRVSim]] je simulátor a nástroj k vizualizaci zpracování instrukcí procesorem s architekturou [[https://en.wikipedia.org/wiki/RISC-V|RISC-V]]. Jedná se o architekturu, kterou navrhli studenti prof. Pattersona (především Krste Asanović z University of California, Berkeley) a je nyní vyvíjená v rámci organizace RISC-V Foundation ([[https://riscv.org/|https://riscv.org/]]). Výhodou je moderní a komunitou diskutovaný návrh kódování, zároveň specifikace není zatížená patenty a licenčními poplatky. Výukový simulátor [[https://github.com/cvut/qtrvsim|QtRVSim]] umožňuje zvolit mezi více možnými způsoby zpracování instrukcí od jednoduché jednocyklové architektury až po plně zřetězené (pipeline) zpracování v pěti stupních. Přitom je možné volit mezi řešením hazardů formou pozastavení nebo, kde je to možné, formou přeposílání výsledků. Pro demonstraci datových hazardů je k dispozici i konfigurace zřetězeného zpracování bez detekce a řešení hazardů. Program dále umožňuje konfigurovat vyrovnávací paměti (cache) jak pro čtení instrukcí tak pro čtení i zápis dat. Obsah a struktura vyrovnávacích pamětí je opět graficky znázorněna stejně jako jsou barevně zvýrazněné buňky paměti, jejich obsah se nachází v dané chvíli ve vyrovnávací paměti. Simulátor staví na diplomovém projektu Ing. Karla Kočího, který byl původně zaměřený na architekturu MIPS (projekt [[https://github.com/cvut/QtMips/|QtMisp]]). V jeho diplomové práci [[https://dspace.cvut.cz/bitstream/handle/10467/76764/F3-DP-2018-Koci-Karel-diploma.pdf|Graphical CPU Simulator with Cache Visualization]] lze nalézt analýzu alternativních simulátorů architektury MIPS, popis objektového návrhu simulátoru a návod jak simulátor [[https://github.com/cvut/QtMips|QtMips]] používat. Přestavbu simulátoru na zpracování instrukční sady RISC-V (specifikace viz [[https://riscv.org/technical/specifications/|https://riscv.org/technical/specifications/]]) měl za úkol pan Max Hollmann. Přestavbu paměťového modelu, grafické reprezentace, balíčkování a další úpravy provedl Jakub Dupák (dokumentované v rámci bakalářské práce [[https://dspace.cvut.cz/bitstream/handle/10467/94446/F3-BP-2021-Dupak-Jakub-thesis.pdf|Graphical RISC-V Architecture Simulator - Memory Model and Project Management]]). * Stránky projektu [[https://github.com/cvut/qtrvsim|https://github.com/cvut/qtrvsim]] * Online verze [[https://comparch.edu.cvut.cz/qtrvsim/app|https://comparch.edu.cvut.cz/qtrvsim/app]] * Binární balíčky [[https://github.com/cvut/qtrvsim/releases|https://github.com/cvut/qtrvsim/releases]] ===== QtRVSim - Instalace ===== ==== Ubuntu 18.4 a výše ==== Na adrese [[https://launchpad.net/~qtrvsimteam/+archive/ubuntu/ppa|https://launchpad.net/~qtrvsimteam/+archive/ubuntu/ppa]] jsou k dispozici binární balíčky. Rychlá instalace: sudo add-apt-repository ppa:qtrvsimteam/ppa sudo apt-get update sudo apt-get install qtrvsim ==== MAC OS a Windows ==== Binární archivy pro MAC OS a Windows jsou k dispozici na release stránce projektu [[https://github.com/cvut/qtrvsim/releases|https://github.com/cvut/qtrvsim/releases]] ==== Suse Linux, Debian a Další ==== Pro Suse Linux, Debian a další GNU/Linux distribuce jsou k dispozici balíčky [[https://software.opensuse.org/download.html?project=home%3Ajdupak&package=qtrvsim|https://software.opensuse.org/download.html?project=home%3Ajdupak&package=qtrvsim]]. ==== Online verze ==== Online [[https://comparch.edu.cvut.cz/qtrvsim/app|https://comparch.edu.cvut.cz/qtrvsim/app]]. Na stránce spoluautora [[https://dev.jakubdupak.com/qtrvsim|https://dev.jakubdupak.com/qtrvsim]].