Dissertação

{en_GB=Bootloader for a RISC-V processor that uses Flash memory} {} EVALUATED

{pt=Este trabalho propõe um novo subsistema IP de controlador de memória flash SPI que pode ser integrado num Sistema-num-Chip (SnC) para executar programas diretamente na flash, e servir como um meio de armazenamento permanente de dados de uso geral. O novo controlador apresenta parâmetros flexíveis de síntese e de tempo de execução, e suporta o protocolo QSPI e o modo Executar-no-Sítio. O subsistema faz interface ao barramento de instruções do CPU e pode ser acessado como um periférico por programas firmware. Um driver de software escrito em C também foi desenvolvido. ´ O subsistema foi desenvolvido e integrado na plataforma IOb-SoC, um template de SnC RISC-V de código aberto disponibilizado pela empresa de IP, IObundle, sediada em Lisboa. IOb-SoC facilita o design de SnCs automatizando o processo de inclusão de subsistemas IP adicionais e software. O programa bootloader do IOb-SoC foi melhorado para fazer uso do novo driver de software; o programa configura o controlador, carrega o programa firmware nele e reinicia o CPU para executar o programa. O bootloader suporta funcionalidades adicionais tais como apagar sectores de memória flash e inspecionar localizações de memória flash. Os resultados de implementação em FPGA e ASIC são comparados com um muito conhecido sub-sistema IP comercial e são mostrados serem competitivos dado que os recursos de hardware são muito similares. Em termos de performance, o subsistema é quatro vezes mais lento mas, em compensação, dispensa o recurso a dois domínios de clocks, o que reduz a sua complexidade e traz benefícios de integração., en=This work proposes a new SPI flash memory controller IP core that can be integrated into a Systemon-Chip (SoC) for running programs directly on the flash, and serving as a general-purpose permanent data storage available to firmware programs. The new controller features flexible synthesis and run-time parameters and supports the QSPI protocol and the Execute-In-Place mode. The core interfaces the CPU instruction bus and can be accessed as peripheral by firmware programs. A software driver written in C has also been developed. The core has been developed and integrated into the IOb-SoC platform, an open-source RISC-V SoC template made available by the Lisbon-based IP company IObundle, Lda. IOb-SoC facilitates the design of SoCs by automating the process of adding additional IP cores and software. The IOb-SoC bootloader program has been upgraded to make use of the new software driver; it configures the controller, loads the firmware program onto it and restarts the CPU to run the program. The bootloader supports additional functionalities such as erasing flash memory sectors and inspecting flash memory locations. The FPGA and ASIC implementation results are compared to a well-known commercial IP core and are shown to be competitive as the hardware resources are quite similar. In terms of performance, the developed IP core is four times slower but, in compensation, it dispenses with the use of two clock domains, which reduces its complexity and brings integration benefits.}
{pt=Bootloader, Controlador de memória flash SPI, Barramento de Instruções do CPU, Executar programas diretamente na flash, Armazenamento permanente de dados, en=Bootloader, SPI Flash memory controller, CPU Instructions bus, Running programs directly on the flash, Permanent data storage}

setembro 21, 2021, 14:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José João Henriques Teixeira de Sousa

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Professor Auxiliar