Function reuse on a multi core VLIW soft core processor
Fecha
2018Co-director
Nivel académico
Grado
Tipo
Otro título
Reuso de Funções em Processadores Soft-Cores VLIW Multi-Núcleo
Materia
Abstract
Modern processors contain several specific hardware modules and multiple cores to ensure performance on a wide range of applications. When a project needs a processor regarding time to market and architecture customization, FPGAs are often used as the implementation platform. However, for FPGA-based processors, those modules may not fit in the target device, because of FPGA’s resource constraints, so their functionalities must be mapped into the much slower software domain. In the same way, we ...
Modern processors contain several specific hardware modules and multiple cores to ensure performance on a wide range of applications. When a project needs a processor regarding time to market and architecture customization, FPGAs are often used as the implementation platform. However, for FPGA-based processors, those modules may not fit in the target device, because of FPGA’s resource constraints, so their functionalities must be mapped into the much slower software domain. In the same way, we exploit the fact that logic-driven designs usually underuse available BRAMs, memory blocks embedded in FPGAs. As an alternative, we propose a low-cost hardware-based function reuse mechanism, which can optimize software execution. This is accomplished by saving the inputs and outputs of the most recurring functions in a BRAM-based reuse table, so they can be reused in the next function calls, skipping actual execution, and improving performance. The technique was implemented in HDL and was coupled to a 4-issue VLIW processor. As a case study, we optimized six applications that use a soft-float library to emulate a floating-point unit in software, achieving 1.23x of geomean speedup. The analysis was extended to a multi-core environment, which was done with a simulator built for this work, where we observed the benefits of sharing the reuse table among similar applications running with different inputs. Sharing the reuse table proven promising, for example, leading one application to 1.9x speedup instead of 1.25x if the reuse table was not shared. Also, we present how the mechanism can be easily enhanced, so function reuse embraces the concept of approximate computing, increasing the scenarios where its use is beneficial and achieving 1.52x speedup in single-core image filter application at the cost of output quality. ...
Resumo
Processadores modernos contém vários módulos específicos e multiplos núcleos para garantir desempenho em uma variedade de aplicações. Quando um projeto de processador depende de time-to-market e customização de arquitetura, FPGAS são frequentemente utilizados como a plataforma para a implementação. Entretando, para processadores baseados em FPGAs, esses módulos podem exceder a capacidade do dispositivo alvo, dadas as limitações de recursos dos FPGAs, de maneira que algumas funcionalidades preci ...
Processadores modernos contém vários módulos específicos e multiplos núcleos para garantir desempenho em uma variedade de aplicações. Quando um projeto de processador depende de time-to-market e customização de arquitetura, FPGAS são frequentemente utilizados como a plataforma para a implementação. Entretando, para processadores baseados em FPGAs, esses módulos podem exceder a capacidade do dispositivo alvo, dadas as limitações de recursos dos FPGAs, de maneira que algumas funcionalidades precisam ser mapeadas para o domínio de software, mais lento. Da mesma forma, exploramos o fato de que projetos lógicos geralmente sub-utilizam a quantidade disponível de BRAMs, blocos de memória embarcados nos FPGAs. Como alternativa, propomos um mecanismo de reúso em hardware de baixo custo que pode otimizar a execução de programas. Isso é obtido ao salvarmos os parâmetros de entrada e valores de retorno de funções recorrentes, em uma tabela de reúso implementada em BRAM de maneira que as funções possam ser reutilizadas em chamadas futuras, evitando a sua reexecução, e acelerando a aplicação. A técnica foi implementada em linguagem de descrição de hardware e adicionada à um processador VLIW 4-issue. Como estudo de caso, otimizamos seis aplicações que usam uma biblioteca soft-float para simular uma unidade de ponto-flutuante em software, atingindo 1.23x de aceleração geométrica média. A análise foi estendida para um ambiente multinúcleo, o que foi feito com um simulador construído para este trabalho, onde observou-se os benefícios de compartilhar a tabela de reúso entre aplicações similares executando sobre dados diferentes. Compartilhar a tabela se mostrou promissor, por exemplo, levando uma das aplicações à ganhos de 1.9x em contra partida de 1.25x se a tabela não tivesse sido compartilhada. Além disso, apresentamos como o mecanismo pode ser facilmente melhorado, de maneira que o reúso de funções faça uso da computação aproximativa, aumentando o número de cenários onde o reúso de funções é benéfico e atingindo 1.52x de aceleração em uma aplicação de filtro de imagem, ao custo de qualidade. ...
Institución
Universidade Federal do Rio Grande do Sul. Instituto de Informática. Curso de Ciência da Computação: Ênfase em Engenharia da Computação: Bacharelado.
Colecciones
-
Tesinas de Curso de Grado (36636)
Este ítem está licenciado en la Creative Commons License
![](/themes/Mirage2Novo//images/lume/cc.png)