HyperBus interface for RISC-V processor cores

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Electrical Engineering | Master's thesis

Date

2024-12-31

Department

Major/Subject

Microelectronic Circuit Design

Mcode

Degree programme

Master's Programme in Electronics and Nanotechnology

Language

en

Pages

52

Series

Abstract

As processors become more complex and powerful, their demand for memory increases. Without adequate memory, a processor’s capabilities would be limited to performing only small and simple tasks. In 2020, Aalto University initiated the "A-core" processor project based on the relatively new, royalty-free, and open-source RISC-V instruction set. Over the years, this project has developed significantly and reached a point where the CPU’s small internal memory is no longer sufficient. For this reason, this thesis presents research and development of a new HyperBus memory controller designed for RISC-V processor cores, facilitating off-chip memory access. Additionally, only a few open-source HyperBus controllers are available, and none of these utilize the Chisel coding language, which would be preferable for the A-core processor project due to its existing code base in Chisel. In the early chapters, the thesis thoroughly evaluates various memory technologies to explain why HyperBus is the optimal choice while providing background information on different memory technologies. Following this evaluation, the focus shifts to a detailed examination of the HyperBus protocol, including its architecture, specifications, and the design goals defined for the project based on the conducted research. Once the research is complete, the thesis progresses to the implementation and results sections. The memory controller developed in this thesis aims to offer an effective solution for off-chip memory. This implementation of the HyperBus controller focuses on the core functionality and operation of HyperRAM chips, which are vital for CPU computing. While the basic read and write functions are fully operational, additional features such as power states, support for HyperFlash, and the capability to connect multiple chips simultaneously have not been included. This decision was made due to time constraints, the immediate need for these features, and the desire to maintain a simple controller design. The final implementation of the memory controller successfully achieved its objectives and was verified using simulation tools. It was developed using Chisel and Verilog hardware description languages. However, further verification with an FPGA is still needed to confirm the timing and other functionalities in a practical context. Consequently, a future thesis is being developed to address this, and the research and development on this topic will continue.

Nykypäivän prosessori kehityksessä ja tietotekniikassa muistin tärkeys on kasvanut merkittävään osaan. Etenkin lähiaikoina alkaneen tekoäly räjähdysmäisen kehittymisen myötä. Ilman riittävää muisti määrää prosessorin laskenta kyky ja funktionaalisuus voi jäädä rajoittuneeksi. Tästä syystä prosessorien muisti ja sen yhdistettävyys on tärkeä osa prosessori kokonaisuutta. Vuonna 2020 Aalto Yliopistossa aloitettiin avoimen lähdekoodin "A-core"niminen prosessori projekti, jonka tarkoituksena olisi kehittää uusi prosessori, joka perustuu 2010 julkaistuun avoimeen ja vapaaseen RISC-V arkkitehtuuriin. A-core projekti on kehittynyt vuosien aikana, mutta prosessorilla ei ole vielä laajempaa ulkoista muistia. Tästä syystä tämän diplomityön aiheena on kehittää uusi HyperBus muistiohjain RISC-V prosessori ytimille, mikä mahdollistaa ulkoisen HyperBus muistipiirien käyttämisen. Syy uuden muistiohjaimen tekemiseen oli myös se ettei avoimen lähdekoodin muistiohjaimia ollut juuri saatavilla tai olleet Chisel koodikieli pohjaisia, jolloin A-core projektin koodikieli pysyisi yhtenevänä. Työ alkaa tutkimuksella missä selvitetään erilaisia muistiteknologioita ja niiden ominaisuuksia. Tämän avulla perustellaan miksi HyperBus on yhteensopiva A-core projektiin. Työ jatkaa tästä tarkemmin tutkimaan HyperBus protokollaa, ohjainta ja sen ominaisuuksia, minkä avulla pystymme luomaan suunnitelman toteutettavalle muistiohjaimelle ja tavoitteille. Lopussa käydään itse toteuttaminen, tuloksia ja seuraavia askelia, joita tarvitsee mahdollisesti vielä toteuttaa. Työn tutkimuksessa selvisi, että HyperBus oli sopivin protokolla tässä vaiheessa A-core projektia. Tämä määräytyi HyperBussin yksinkertaisuuden ja nopeuden ansiosta, jotka olivat erityisen tärkeitä tässä vaiheessa A-coren kehitystä. Liian monimutkainen toteutus olisi liian raskas ja mahdollisesti liian kallis. Myös nopeus olisi tärkeää, koska ilman sitä yksinkertainen toteutuskin olisi turha eli hyötysuhde nopeuden ja monimutkaisuuden ja kustannusten välillä olisi huono. HyperBus on myös energia tehokas, joka mahdollistaa enemmän käyttötarkoituksia, kuten akku käyttöisyys. Diplomityön tuloksena saatiin luotua HyperBus muistiohjain HyperRAM muisteille. Muistiohjain ei kuitenkaan ole funktionaalisuudeltaan täydellinen, mutta tukee kuitenkin perus ominaisuuksia HyperBus protokollasta, joka mahdollistaa HyperRAM muistien kirjoittamisen ja lukemisen. Ylimääräiset ominaisuudet, jotka eivät vaikuta päätoiminallisuuteen kuten energian kulutukseen liittyvät on jätetty toteuttamatta.

Description

Supervisor

Kosunen, Marko

Thesis advisor

Simola, Otto

Keywords

HyperBus, DDR, A-core, RISC-V, HyperRAM, PSRAM

Other note

Citation