Estudo e avaliação de arquiteturas de processadores quanto ao uso de memória em sistemas embarcados - Oliveira, Lizandro de Souza (2015)
Os sistemas embarcados possuem diversos requisitos e restrições. Além do custo significativo, estes sistemas devem atender restrições rígidas de desempenho e limitações no consumo energético. O sistema de memória é um dos principais fatores que contribuem para o desempenho e consumo de energia em software embarcado. Plataformas virtuais oferecem uma alternativa ao protótipo de hardware e também apresentam muitas vantagens, tais como um início de desenvolvimento mais cedo, desempenho e acessibilidade. Existem diversas plataformas virtuais e simuladores que fornecem vários modelos de arquiteturas de processadores. Este trabalho apresenta um estudo e avaliação quanto ao uso de memória em arquiteturas de processadores embarcados. O trabalho detalha diferentes técnicas de otimização de memória para sistemas embarcados. Foram avaliadas as arquiteturas ARM e x86 quanto ao acesso à memória e consumo energético. Para estas avaliações, foram utilizados os traces de instruções e de dados gerados por diferentes aplicações embarcadas do pacote MiBench. As ferramentas de avaliação das arquiteturas de processadores embarcados utilizadas foram o Simics e o CACTI. Os resultados mostram que 34,42% do total de instruções para a arquitetura ARM são instruções do tipo load e store. Além disso, 64,41% dos acessos, na média, à memória de instrução são ocasionados por apenas 8KB do programa, já para 64KB o percentual é de 93,40%. Em relação a memória de dados, 8KB dos dados para esta arquitetura são responsáveis por 70,66% dos acessos à memória. Na arquitetura x86 predominam as instruções do tipo move, as quais representam, em média, 88,06% do total de instruções executadas. Na arquitetura x86, 95,94% dos acessos a memória de instrução são ocasionados por apenas 256 bytes, enquanto que uma memória de dados de 8 KB é responsável por 73,62% dos acessos à memória. Resultados experimentais apontaram grande potencial de otimização do acesso à memória e grande possibilidade de exploração do espaço de projeto para a arquitetura ARM com utilização de uma memória SPM.