Design and implementation of a RISC-V extension for accelerating functional programming workloads

dc.contributor
Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors
dc.contributor
Kosmidis, Leonidas
dc.contributor.author
Trujillo Viedma, Daniel
dc.date.accessioned
2025-11-08T08:11:22Z
dc.date.available
2025-11-08T08:11:22Z
dc.date.issued
2025-10-22
dc.identifier
https://hdl.handle.net/2117/445112
dc.identifier
198113
dc.identifier.uri
https://hdl.handle.net/2117/445112
dc.description.abstract
In this Master's Thesis a novel custom instructions for accelerating Haskell programs has been discovered, studied and implemented as an extension of the RISC-V Instruction Set Architecture (ISA) in the Rocket core by using a completely open source stack for program compilation as well as FPGA bitstream synthesis and engineering support tools (editors, virtualization, etc.). This Thesis is part of a research topic on high-performance computing that leverages custom, specialized functional units to accelerate computation- intensive workloads. RISC-V is a royalty-free, extensible and actively developed ISA based on the principles of the Reduced Instruction Set Computers (RISC) by which performance is enabled by simple, easy to decode and process instructions. Rocket is an open source design of a microprocessor logic developed by the University of California, Berkeley. It consist both of a computation core design and a System-on-Chip (SoC) generator to produce Linux-capable, synthesizable system designs. Haskell is a pure, lazy and functional programming language with a strong, static typing discipline. It is an appropriate platform for cutting-edge programming languages research and very high-level, which often makes performance unpredictable.
dc.description.abstract
La contribució d'aquest Treball de Fi de Màster és el descobriment, estudi i anàlisi d'una nova instrucció, com a extensió del joc d'instruccions RISC-V, per accelerar programes en haskell. La nova instrucció ha estat implementada en la CPU Rocket i l'estudi s'ha dut a terme usant programari de codi obert tant per a compilar programes com per sintetitzar dissenys hardware per a la placa FPGA usada, així com les eines auxiliars (editors, virtualització, etc.). Aquest Treball s'emmarca dins d'una línia de recerca en computació d'altes prestacions que utilitza unitats funcionals especialitzades per a accelerar càrregues de treball intensives en computació aritmètico-lògica. RISC-V és un joc d'instruccions extensible, amb una llicència permissiva i en constant desenvolupament basat en els principis RISC de conjunt reduït de instruccions, pels quals el rendiment s'obté a través d'instruccions simples, senzilles de processar per una CPU. Rocket és un disseny d'un microprocessador de codi obert desenvolupat per la Universitat de California, Berkeley. Consisteix en un nucli de computació i un generador de sistemes que produeix dissenys capaços d'executar Linux i que es poden sintetitzar en bitstreams per xips FPGA. Haskell és un llenguatge de programació funcional, pur, i d'avaluació tardana amb un sistema de tipus fortament tipat estàtic. És una plataforma apropiada per a realitzar recerca en llenguatges de programació i és de molt alt nivell, la qual cosa fa que a vegades el seu rendiment resulti difícil de predir.
dc.description.abstract
En este Trabajo Fin de Máster una nueva instrucción para acelerar programas en Haskell es descubierta, estudiada e implementada como una extensión del juego de instrucciones RISC-V en la CPU Rocket usando herramientas software totalmente de código abierto tanto para compilar programas como para sintetizar diseños hardware para la placa FPGA usada, así como las herramientas auxiliares (editores, virtualización, etc.). Este Trabajo se enmarca dentro de una línea de investigación en computación de altas prestaciones que utiliza unidades funcionales especializadas para acelerar cargas de trabajo intensivas en computación aritmético/lógica. RISC-V es un juego de instrucciones extensible, con una licencia permisiva y en desarrollo basado en los principios RISC de juegos con un conjunto reducido de instrucciones, por los cuales el rendimiento se obtiene a través de instrucciones simples, sencillas de procesar por una CPU. Rocket es un diseño de un microprocesador de código abierto desarrollado por la Universidad de california, Berkeley. Consiste en un núcleo de computación y un generador de sistemas que produce diseños capaces de ejecutar Linux y que se pueden sintetizar para chips FPGA. Haskell es un lenguaje de programación funcional, puro, y perezosamente evaluado con un sistema de tipos fuerte y estático. Es una plataforma apropiada para realizar investigación en lenguajes de programación y es de muy alto nivel, lo que hace que en ocasiones su rendimiento resulte difícil de predecir.
dc.format
application/pdf
dc.language
eng
dc.publisher
Universitat Politècnica de Catalunya
dc.rights
Open Access
dc.subject
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
dc.subject
Computer architecture
dc.subject
Programming languages (Electronic computers)
dc.subject
Computació d'altes prestacions
dc.subject
RISC-V
dc.subject
instruccions personalitzades
dc.subject
Haskell
dc.subject
Rocket Chip
dc.subject
High-performance computing
dc.subject
Haskell
dc.subject
Arquitectura d'ordinadors
dc.subject
Llenguatges de programació
dc.title
Design and implementation of a RISC-V extension for accelerating functional programming workloads
dc.type
Master thesis


Ficheros en el ítem

FicherosTamañoFormatoVer

No hay ficheros asociados a este ítem.

Este ítem aparece en la(s) siguiente(s) colección(ones)