Dissertação

{en_GB=Development Environment for a RISC-V Processor: Cache} {} EVALUATED

{pt=Apesar do recente advento do hardware de código aberto, as caches disponiveís em código aberto têm baixa configurabilidade, falta de suporte para ciclo único acessos de memória em pipeline e usam interfaces e Linguagens de Descrição de Hardware não-padrão. Neste trabalho IOb-Cache, uma cache configurável de alto desempenho em Verilog de código aberto é proposta e desenvolvida. A cache tem design modular e é composto por 3 módulos. O módulo Cache-Memory contém as memórias e o controlador principal. Os módulos Front-End e Back-End isolam o design do cache do processador e da memória interfaces, respectivamente, o que permite a adoção rápida para novos processadores ou controladores de memória. Atualmente o módulo Front-End suporta a interface nativa e o módulo Back-end oferece suporte às interfaces nativa e AXI. A cache pode ser configurado para definir o número de vias, o número de linhas e palavras por linha, a política de substituição, etc. A política de escrita é atualmente a política Write-Through Not Allocate com um buffer interno, limitando ao tamanho da palavra durante acessos de escrita. O back-end pode ser configurado para ler de várias palavras por transferência para aproveitar a memória disponível largura de banda. Tanto quanto é do nosso conhecimento, IOb-Cache é a única cache Verilog configurável que suporta interfaces de CPU em pipeline e a popular interface de barramento de memória AXI4. IOb-Cache está integrado no repositório IOb-SoC Github, que tem 16 estrelas, e está sendo usado em 38 projetos (bifurcações). , en=Despite the recent advent of open-source hardware, the available open-source caches have low configurability, limited lack of support for single-cycle pipelined memory accesses, and use non-standard hardware interfaces and Hardware Description Languages. In this work IOb-Cache, a high-performance configurable open-source Verilog cache is proposed and developed. The cache is designed modular and composed of 3 modules. The Cache-Memory module contains the memories and the cache's main controller. The Front-End and Back-End modules isolate the cache design from the processor and memory interfaces, respectively, which enables fast adoption of new processors or memory controllers. Currently, the Front-End module supports the native interface and the Back-End module supports the native and the standard AXI interfaces. The cache can be configured to define the number of ways, the number of lines and words per line, the replacement policy, etc. The write-policy is currently fixed to Write-Through Not Allocate policy with an internal buffer, limiting the write accesses to word-sized data. The back-end can be configured to read bursts of multiple words per transfer to take advantage of the available memory bandwidth. To the best of our knowledge, IOb-Cache is currently the only configurable Verilog cache that supports pipelined CPU interfaces, and the popular AXI memory bus interface. IOb-Cache is integrated into the IOb-SoC Github repository, which has 16 stars and is being used in 38 projects (forks).}
{pt=Código aberto, cache, altamente configurável, pipeline, AXI Nativa., en=Open-source, Cache, Highly Configurable, Pipeline, AXI, Native.}

Janeiro 15, 2021, 15:0

Orientação

ORIENTADOR

José João Henriques Teixeira de Sousa

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

Professor Auxiliar