Ohjelmistopohjainen VHDL-simulointimenetelmä RISC-V-mikroprosessorien suorituskyvyn testaamiseen

31.05.2022

Integroitujen piirien suunnittelun korkeiden kustannusten ja monimutkaisuuden vuoksi tehokkaat testaus- ja validointimenetelmät ovat ensiarvoisen tärkeitä. Tämä pätee erityisesti mikroprosessorisuunnittelun alalla. Tähän osasyynä on Mooren laki, joka vielä vuonna 2022 jatkaa transistorien määrän lisäämistä integroiduissa piireissä (James 2022). Samana vuonna valmistuneessa opinnäytetyössä insinööriopiskelija Joonas Juntunen esittelee mikroprosessorisuunnittelun testaamista VHDL-pohjaisilla ohjelmistosimulaatioilla, osana suorituskyvyn optimoinnin testausmenetelmää.

Mikroprosessoreilla on ollut valtava vaikutus nykyajan elämään aina niiden käyttöönotosta 1970-luvulta lähtien. Lähes kaikki digitaaliset ja henkilökohtaiset tietokonelaitteet, joiden kanssa kuluttajat ovat vuorovaikutuksessa päivittäin, käyttävät mikroprosessoria ohjaamaan mainittujen laitteiden toimintaa. Yksi mikroprosessorin tärkeimmistä elementeistä on keskusyksikkö (CPU), joka hoitaa mikroprosessorin olennaisimmat tietojenkäsittelyominaisuudet. Koska mikroprosessoreille on nykymaailmassa olemassa lukuisia ​​käyttötapoja, tämä on johtanut monien erilaisten prosessoriarkkitehtuurien kehitykseen. Yksi uusimmista tämän jatkuvan kehityksen tuloksena syntyneistä CPU-arkkitehtuureista on RISC-V-käskysarja-arkkitehtuuri (ISA).

RISC-V-käskysarjan arkkitehtuuri

RISC-V-käskysarja-arkkitehtuuri (ISA) on suunniteltu avoimen standardin menetelmällä RISC-V-pohjaisten mikroprosessorien kehittämiseen. ISA määrittelee tietyn CPU-arkkitehtuurin ominaisuudet, joita kehittäjät voivat hyödyntää matalan tason ohjelmistojen kehittämisessä. RISC-V International Association, joka hallitsee RISC-V ISA:n kehitystä, tarjoaa käskysarjan rajoittamattoman käytön RISC-V CPU-toteutusten kehittämiseen (RISC-V International 2022). RISC-V ISA:ssa on useita valinnaisia ​​laajennuksia, jotka mahdollistavat prosessorin monipuolisen kustomoinnin.

VHDL-pohjaiset ohjelmistosimulaatiot

VHDL tai Very High-Speed ​​Integrated Circuit Hardware Description Language on laitteistokuvauskieli, jonka avulla voidaan kuvata digitaalisten piirien käyttäytymistä tekstipohjaisten mallien avulla. VHDL-kieliä ja muita laitteistokuvauskieliä käytetään laajalti teollisuuden laitteistosuunnittelussa ja ne ovat olennainen osa elektronisten järjestelmien kehityssyklin jokaista vaihetta. Elektronisten järjestelmien käyttäytymistä kuvattaessa ja mallintaessa, VHDL mahdollistaa mallin verifikaation simuloinnilla. Ohjelmistopohjaiset VHDL-simulaattorit mahdollistavat järjestelmän simuloinnin kehittämisen testaus- ja varmistusvaiheessa ilman, että rakennettavalle järjestelmälle tarvitaan varsinaista laitteistototeutusta. Jokainen järjestelmän eri elementti voidaan siten mallintaa ja todentaa järjestelmän toiminnan jokaisessa vaiheessa. (Zwoliński 2004; Rushton 2011)

Ohjelmistosimulaation käytännöt

Tässä opinnäytetyössä NEORV32 RISC-V -prosessoriprojektiin perustuvia kustomoituja RISC-V-prosessorimalleja testataan VHDL-pohjaisella ohjelmistosimulaattorilla, tarkoituksena varmistaa prosessissa saavutetut suorituskyvyn parannukset. Pääasiallinen mukautusten vertailuarvoksi on valittu näennäissatunnaislukugeneraattorin, xoroshiro64** PRNG:n, suorituskyvyn optimoimiseksi. PRNG:n ympärille on rakennettu sopivat vertailuarvot, joka vertailee prosessorissa ajettavan PRNG-algoritmin laskentaa.

VHDL-ohjelmistosimulaattorin ensimmäinen askel on koota simuloitava malli VHDL-tiedostoista, jotka kuvaavat simuloitavaa järjestelmää. Mallin laatimisen jälkeen on kehitetty sopiva testipenkki testausärsykkeiden soveltamiseksi mallin elementteihin. Opinnäytetyön tapauksessa testipenkki sisältää suoritettavan PRNG-vertailuarvon, jonka RISC-V-prosessori suorittaa koko simulaatioajon ajan. Tämän jälkeen voidaan suorittaa varsinainen järjestelmän simulointi. VHDL-mallin simulaatiossa seurataan tapahtumalähtöistä toimintatapaa, mikä tarkoittaa, että järjestelmän tila päivittyy aikana, jolloin järjestelmässä tapahtuu muutoksia (Rushton 2011, 22). Mikroprosessoria simuloitaessa tarkkaillaan prosessorin sisällä olevien tietojen laskentaa ja muutosta, joita voidaan tarkastella simuloinnin jälkeen generoidusta aaltomuotokaaviosta.

Opinnäytetyö räätälöi useita erilaisia NEORV32-ytimiä joko valinnaisen ISA-laajennuksen tai tietyn laitteistolaajennuksen avulla, jotka arvioitiin potentiaalisena suorituskyvyn optimointiin PRNG-vertailuarvolle. Näihin sisältyi tuen lisääminen laitteistossa suoritettaviin kerto- ja jakolaskuihin, laitteistossa suoritettavat bittitoiminnot, sekä molempien suorituskyvyn parannukset käyttämällä NEORV32-ytimeen sisältyviä erikoistuneita laitteistolohkoja.

Opinnäytetyön metodologiassa käytettiin VHDL-ohjelmiston simulaatioita seuraavalla tavalla:

  1. Testattavan NEORV32-ytimen vertailuarvon kokoaminen.
  2. Vertailuarvon simulointi VHDL-ohjelmiston simulaattorin kautta.
  3. Suorituskyvyn parannusten tarkistaminen koodatun ohjelman assembly-kielimuodon avulla.
  4. Suorituskyvyn parannusten tarkistaminen luodun VHDL-aaltomuotokaavion avulla.

Menetelmän mukaisesti ensin PRNG-vertailuarvo kootaan RISC-V-työkaluketjujen GCC-kääntäjäpaketin kautta, jotta saadaan versio, joka voidaan suorittaa mukautetuilla RISC-V-ytimillä. Seuraavaksi jokainen ydin on simuloitu GHDL-ohjelmistosimulaattorin kautta tarvittavien suorituskykytulosten saamiseksi. Lopuksi, nämä suorituskyvyn parannukset tarkistettiin GCC-kääntäjäpaketin assembly-kielen ja luotujen VHDL-aaltomuotokaavioiden avulla.

Päätelmät

Opinnäytetyö pystyy osoittamaan työn aikana saadut suorituskyvyn optimoinnit ja miten jokainen niistä todennettiin. VHDL-ohjelmiston simulaatiot osoittavat, kuinka suorituskyvyn optimointeja voidaan mitata ilman ulkoista laitteistototeutusta. Nämä tulokset tarkistettiin edelleen todellisessa laitteistototeutuksessa, joka siirrettiin FPGA-alustalle. Kaikkien vertailuarvojen on todettu toimivan täsmälleen ohjelmistosimulaation ja todellisen laitteiston toteutuksen välillä.

Juntunen, Joonas 2022: RISC-V-ytimien suorituskyvyn testaus VHDL-ohjelmistosimulaatiolla, Tieto- ja viestintätekniikka, Turun ammattikorkeakoulu

Lähteet

James, L. (2022) Moore’s Law in 2022: What’s the status quo?, power-and-beyond.com. Haettu 25.5.2022 osoitteesta https://www.power-and-beyond.com/moores-law-in-2022-whats-the-status-quo-a-1098607/

RISC-V International (2022) History. riscv.org. Haettu 13.5.2022 osoitteesta https://riscv.org/about/history/

Rushton, A. (2011) VHDL for Logic Synthesis. John Wiley & Sons, Incorporated. New York, United Kingdom.

Zwoliński, M. (2004) Digital system design with VHDL. 2nd ed. Prentice Hall.

Photo by Umberto on Unsplash