Publication

RISC-V advanced interrupt architecture: implementation and enhancements

View document

Bibliographic Details
Summary:No domínio das arquiteturas de computadores, as interrupções e respetivos controladores de hardware assumem um papel preponderante na garantia da eficiência das operações e na gestão dos recursos. As interrupções são sinais desencadeados por diversos componentes do System-on-Chip (SoC), que requerem atenção da unidade central de processamento (CPU). A responsabilidade dos controladores de interrupção é gerir essas interrupções e atribuí-las a um CPU. Como resultado, tarefas específicas podem ser entregues a módulos especializados, libertando o processador para executar outras operações. Os sistemas de computação modernos integram controladores de interrupções de hardware sofisticados, como o controlador de interrupções genérico da Arm e o controlador de interrupção programável da Intel. Esses controladores estão em constante atualização para satisfazer o número crescente de funcionalidades e requisitos, como Message-Signaled Interrupt (MSI) e suporte para virtualização. Em sistemas RISC-V, o Platform-Level Interrupt Controller (PLIC) foi o primeiro controlador de interrupções padrão. No entanto, a sua especificação apresenta limitações em termos de escalabilidade e funcionalidades, destacando-se a falta de suporte para MSI e virtualização. Esta dissertação descreve a primeira implementação pública e pesquisa sobre a especificação RISC-V Advanced Interrupt Architecture (AIA) versão 1.0 recentemente ratificada. Primeiramente, desenvolvemos de forma parametrizável o Advanced PLIC (APLIC) e o Incoming MSI Controller (IMSIC), que juntos formam o IP AIA. Esses IPs foram integrados num SoC baseado no CVA6 com suporte para virtualização. Posteriormente, exploramos desenhos alternativos e melhorias microarquiteturais para atender aos requisitos de sistemas de criticidade mista (MCS), como tempo real e previsibilidade, resultando na implementação de três novos desenhos: (i) APLIC Minimal, (ii) IMSIC Island, e (iii) AIA Black Box. Por fim, realizamos uma avaliação empírica (recursos de hardware e latência de interrupção) de diferentes configurações de hardware e microarquiteturas AIA, com foco nos requisitos de sistemas embebidos modernos. Todos os artefactos descritos nesta dissertação são de código aberto para promover a colaboração e a exploração de configurações de desenhos adicionais.
Main Authors:Costa, Francisco Marques da
Subject:Arquitetura de Interrupções Avançada RISC-V Virtualização Controlador de Interrupções FPGA Advanced Interrupt Architecture Virtualization Interrupt Controller Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
Year:2024
Country:Portugal
Document type:master thesis
Access type:open access
Associated institution:Universidade do Minho
Language:English
Origin:RepositóriUM - Universidade do Minho
Description
Summary:No domínio das arquiteturas de computadores, as interrupções e respetivos controladores de hardware assumem um papel preponderante na garantia da eficiência das operações e na gestão dos recursos. As interrupções são sinais desencadeados por diversos componentes do System-on-Chip (SoC), que requerem atenção da unidade central de processamento (CPU). A responsabilidade dos controladores de interrupção é gerir essas interrupções e atribuí-las a um CPU. Como resultado, tarefas específicas podem ser entregues a módulos especializados, libertando o processador para executar outras operações. Os sistemas de computação modernos integram controladores de interrupções de hardware sofisticados, como o controlador de interrupções genérico da Arm e o controlador de interrupção programável da Intel. Esses controladores estão em constante atualização para satisfazer o número crescente de funcionalidades e requisitos, como Message-Signaled Interrupt (MSI) e suporte para virtualização. Em sistemas RISC-V, o Platform-Level Interrupt Controller (PLIC) foi o primeiro controlador de interrupções padrão. No entanto, a sua especificação apresenta limitações em termos de escalabilidade e funcionalidades, destacando-se a falta de suporte para MSI e virtualização. Esta dissertação descreve a primeira implementação pública e pesquisa sobre a especificação RISC-V Advanced Interrupt Architecture (AIA) versão 1.0 recentemente ratificada. Primeiramente, desenvolvemos de forma parametrizável o Advanced PLIC (APLIC) e o Incoming MSI Controller (IMSIC), que juntos formam o IP AIA. Esses IPs foram integrados num SoC baseado no CVA6 com suporte para virtualização. Posteriormente, exploramos desenhos alternativos e melhorias microarquiteturais para atender aos requisitos de sistemas de criticidade mista (MCS), como tempo real e previsibilidade, resultando na implementação de três novos desenhos: (i) APLIC Minimal, (ii) IMSIC Island, e (iii) AIA Black Box. Por fim, realizamos uma avaliação empírica (recursos de hardware e latência de interrupção) de diferentes configurações de hardware e microarquiteturas AIA, com foco nos requisitos de sistemas embebidos modernos. Todos os artefactos descritos nesta dissertação são de código aberto para promover a colaboração e a exploração de configurações de desenhos adicionais.

Funded activities

No funded projects found.