Value Reuse Potential in ARM Architectures - Moura, Rodrigo C. De; Torres, Giovane O.; Pilla, Maurício L.; Pilla, Laércio L.; Costa, Amarildo T. Da; França, Felipe M. G. (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD); 2016: Anais do XXVIII International Symposium on Computer Architecture and High Performance Computing, 2016)
Code execution in modern superscalar processors is inherently redundant. Many instructions execute repeatedly with the same inputs, producing the same outputs, thus wasting resources in the process. Value reuse techniques memorize previous executions of instructions, blocks or traces which may be reused if they appear again with the same input contexts. Although trace reuse techniques show great potential for both performance and energy consumption improvement, they have not been studied yet in one of the most widely available computer architectures - the ARM architecture. In this paper, the main issues with reusing traces in instruction sets with conditional execution are revisited. Afterwards, the reuse potential in the benchmark suite MiBench is analyzed varying (i) how traces are generated, and (ii) the size of reuse tables. Our results show that a memoization table of 32 KiB allows to reuse 18.36% of the total instructions on average.