6 grudnia 2024 14:17


Pandemia Covid-19 pokazała jak bardzo świat zależy od procesorów i jak bardzo ich dostawy są podatne na przerwanie łańcuchów logistycznych. Praca "Implementacja out-of-order rozszerzenia wektorowego RISC-V w procesorze Coreblocks" pokazuje wycinek projektu "Kuźnia Rdzeni", którego celem jest rozwój kompetencji w zakresie projektowania układów scalonych, w szczególności poprzez zaprojektowanie od podstaw własnego procesora Coreblocks w architekturze RISC-V o mikroarchitekturze out-of-order.

Mikroarchitektura out-of-order jest najbardziej skomplikowaną z aktualnie używanych, jednakże pozwala na osiągniecie najlepszej wydajności. Tym samym stanowi podstawę współczesnych projektów procesorów wysokowydajnych takich jak Zen5 firmy AMD, czy też Lion Cove firmy Intel. Natomiast architektura RISC-V jest otwartą definicją zbioru instrukcji procesora stworzoną na Uniwersytecie w Berkeley. W ostatnich latach rozwija się bardzo prężnie i pojawia się coraz więcej firm ją implementujących. Przykładowo Google stworzył procesor Titan M2 oparty na RISC-V, który jest używany w telefonach Pixel.

W nagrodzonej pracy magisterskiej, podjęto się implementacji opcjonalnego rozszerzenia RISC-V dodającego instrukcje wektorowe. Instrukcje tego typu mają za zadanie przyśpieszać operacje na wektorach i macierzach, poprzez operowanie na wielu elementach wektora w tym samym czasie, więc stanowią podstawę dla szkolenia sieci neuronowych. W ramach pracy dodano wsparcie dla instrukcji arytmetyczno-logicznych wraz z całą rozbudowaną infrastrukturą potrzebną do obsługi takich instrukcji (np. rejestry sterowania, dekodowanie, zarządzanie wykonaniem out-of-order), a także przetarto szlaki dla implementacji superskalarności (wykonywanie wielu instrukcji w tym samym czasie) w Coreblocksie, ze względu na to, że wiele koncepcji w tych dwóch problemach jest wspólnych.

Instytut Informatyki zapewnia duże możliwości rozwoju w kierunku projektowania układów scalonych, w szczególności w ofercie są przedmioty takie jak "Architektury Systemów Komputerowych" oraz "Logika Cyfrowa", które zapoznają studentów z podstawowymi ideami. Poprzez bardziej zaawansowane "Architektury Komputerów" (które wracają od najbliższego semestru do oferty po dłuższej przerwie) i "Programowanie układów FPGA", gdzie można nauczyć się o działaniu wewnętrznych struktur procesorów oraz o tym jak projektować układy scalone na FPGA. Aż po "Seminar: Advances in Computer Systems" i "Projekt: Kuźnia Rdzeni", będące wstępem do samodzielnych badań w tym kierunku, gdzie analizujemy najnowsze wyniki publikacji ze światowych konferencji i wybrane pomysły implementujemy w naszym procesorze. I oczywiście najlepsze w tym wszystkim jest to, że studenci mają dowolność wyboru przedmiotów i od razu mogą zacząć uczęszczać na bardziej zaawansowane (jeśli czują się na siłach).

Kuba Nowak