Memorização e Reuso Dinâmico de Traços em Uma Arquitetura de Processador Java
Autores
4238 |
131,1885
|
|
4239 |
131,1885
|
Informações:
Publicações do PESC
Esta pesquisa realiza uma análise do comportamento do mecanismo DTM (Dynamic Trace Memoization) implementado em uma arquitetura de processador Java. Tal mecanismo se propõe à memorizar e reusar dinamicamente traços redundantes, i.e., sequências de instruções redundantes, buscando evitar a re-execução destes traços quando eles forem novamente alcançados com o mesmo conjunto de valores de entrada observados e registrados anteriormente durante a execução do programa. Para tanto, o mecanismo DTM foi modificado para se adaptar à arquitetura Java, dando origem ao mecanismo JDTM (Java Dynamic Trace Memoization). Foi avaliada a sua efetividade através de simulação dirigida à execução utilizando o simulador de um microprocessador pipeline escalar Java. De acordo com os resultados obtidos da execução de um conjunto de programas típicos de sistemas embarcados, alcançou-se a aceleração de 12% (média harmônica). Esta aceleração é justificada pela redução do número de instruções executadas e pela redução do número de bolhas inseridas no pipeline em vista das dependências de recursos, de dados e de controle.
This research make an analysis of the behavior of DTM (Dynamic Trace Memoization) mechanism implemented in a Java processor architecture. Such mechanism dynamically memorize and reuse redundant traces, i.e., sequences of redundant instructions to prevent the re-execution of them when they are reached again with the same set of input values observed previously during the execution of a program. The DTM mechanism was modified for the Java architecture, originating the JDTM (Java Dynamic Trace Memoization) mechanism. Using a Java scalar pipelined microprocessor simulator was employed to evaluate the effectiveness of the mechanism. According to the results of the execution of a typical programs set of embedded systems, it reached 12% speedup (harmonic average). This speedup is justified by the reduction in the number of executed instructions and by the reduction in the number of inserted bubbles in pipeline because of the resources, data and control dependencies.