Projekt: Kuźnia rdzeni

Język wykładowy Polski
Semestr Nieokreślony
Status Poddana pod głosowanie
Opiekun Marek Materzok
Liczba godzin 30 (prac.)
Rodzaj Projekt
ECTS 4
Polecany dla I roku Nie
Egzamin Nie
Tagi PZ (Praca zespołowa)

Opis przedmiotu:

Celem projektu jest praktyczna nauka architektur komputerów poprzez ich implementację w formie umożliwiającej syntezę na układy FPGA. W ramach projektu powstaje rdzeń o nazwie [Coreblocks](https://github.com/kuznia-rdzeni/coreblocks/), implementujący zestaw instrukcji [RISC-V](https://docs.riscv.org/reference/isa/unpriv/unpriv-index.html) (RV32I) w mikroarchitekturze out-of-order. Implementacja ma w założeniu modularny charakter "generatora rdzeni", umożliwiający dodawanie, rekonfigurację i wymianę elementów składowych rdzenia bez głębokich zmian w kodzie. Dalszymi celami projektu są, między innymi: * Implementacja [instrukcji uprzywilejowanych](https://docs.riscv.org/reference/isa/priv/priv-index.html) oraz port [OpenSBI](https://github.com/riscv-software-src/opensbi). * Implementacja efektywnej jednostki load/store działającej zgodnie z dostępnymi w RISC-V modelami pamięci (do wyboru RVWMO i TSO). * Implementacja jednostki obliczeń zmiennoprzecinkowych. * Implementacja i eksperymenty z różnymi rodzajami predyktorów skoków, pamięci cache, itp. * Implementacja wielordzeniowości, synchronizacji cache, itp. * Opracowanie metodyki automatycznego testowania umożliwiającej szybkie wychwytywanie niezgodności ze specyfikacją oraz regresji. * Refactoring istniejących implementacji celem zmniejszenia koncepcyjnej złożoności kodu. Długoterminowym celem projektu jest uruchomienie na zaimplementowanym rdzeniu systemu operacyjnego Linux w rozsądnie pełnej konfiguracji. Praca nad projektem będzie miała charakter zespołowy. Student, po przydzieleniu zadania, powinien zapoznać się z wybraną tematyką, ustalić koncepcję implementacji oraz zaprezentować i przedyskutować ją podczas spotkania projektowego. Opracowany kod oraz dokumentacja projektu będzie podlegać recenzji ze strony prowadzącego oraz innych studentów. Przedmiot zalicza wymaganie projektu zespołowego. Można uczestniczyć w nim wielokrotnie.