Uma unidade de gestão de memória de entrada/saída RISC-V de código aberto

Manuel Alejandro Cedeño Rodríguez · Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT) · 2024

A constante procura por melhor desempenho e funcionalidades no software levou ao desenvolvimento de arquiteturas de hardware e plataformas mais complexas. Estes sistemas integram vários dispositivos com capacidade de acesso direto à memória (DMA), usados para libertar o processador da gestão destes acessos. No entanto, estes mecanismos podem introduzir problemas de segurança, criando a possibilidade de ataques por meio de periféricos maliciosos. Para lidar com estes problemas, os computadores modernos integram hardware adicional ao nível do sistema, nomeadamente, a Unidade de Gestão de Memória de Entrada/Saída (IOMMU). Uma IOMMU atua como intermediária na gestão dos acessos dos dispositivos à memória, aplicando verificação de permissões e tradução de endereços. Atividades de investigação e desenvolvimento na academia deram origem a RISC-V, uma arquitetura de conjunto de instruções que segue uma filosofia completamente aberta. Recentemente, a comunidade RISC-V desenvolveu a especificação RISC-V IOMMU v1.0, e, até ao momento, não foi implementada nenhuma Propriedade Intelectual (IP) RISC-V IOMMU de código aberto. Além disso, no contexto da IOMMU RISC-V, nenhum trabalho anterior realizou (i) um estudo exploratório relativamente às características arquiteturais e configurações microarquiteturais da IOMMU, e (ii) uma avaliação empírica sobre os custos de hardware e as latências de tradução. Esta dissertação de mestrado descreve a implementação do primeiro IP IOMMU de código aberto compatível com a especificação RISC-V IOMMU v1.0. O IP foi integrado num System-on-Chip com suporte para virtualização, baseado no processador CVA6. Após a validação do IP, analisámos o impacto funcional e no uso de recursos de várias configurações de hardware, com base em diferentes combinações de funcionalidades arquiteturais e propriedades microarquiteturais da IOMMU. No processo de avaliação, usámos várias configurações de software para avaliar o IP em termos de custos de hardware e latências de tradução. Por fim, discutimos designs alternativos e modificações arquiteturais/microarquiteturais para melhorar o IP e a especificação RISC-V IOMMU. Todos os artefactos relacionados com este trabalho foram disponibilizados em código aberto para promover a colaboração na comunidade RISC-V.

Read the paper · More papers on PaperTik