Transactional Wavecache – Execução Especulativa Fora-de-Ordem de Operações de Memória em Uma Máquina Dataflow
Autores
4446 |
1994,131,1993
|
|
4447 |
1994,131,1993
|
|
4448 |
1994,131,1993
|
Informações:
Publicações do PESC
Esta pesquisa realiza uma análise comportamental de um mecanismo de ordenação de operações de memória implementado em uma arquitetura dataflow. O mecanismo permite um relaxamento no modelo existente, com execução especulativa e fora-de-ordem de operações de memória de diferentes ondas, baseado em pricípios de Memória Transacional. O mecanismo de ordenação existente foi modificado, originando à Transactional WaveCache, cuja corretude e impacto de desempenho foram avaliados através de simulação dirigida à execução utilizando o simulador arquitetural do WaveScalar. Em resultados obtidos da execução de um conjunto de programas, alcançou-se acelerações entre 1,52, e 1,91, para aplicações com baixo grau de concorrência no uso da memória. Em aplicações com grau de concorrência alto, houve desaceleração de 1,05 a 1,16. Para aplicações com grau de concorrência intemediário, foram obtidas desacelerações de 1,01 a acelerações de 1,33. As acelerações são justificadas pela extração de concorrência no uso da memória, resultando em maior paralelismo no sistema de execução.
This research performs an analysis of the behavior of a memory operations ordering mechanism implemented in a dataflow architecture. Such mechanism introduces run-time memory disambiguation, concerning memory operations belonging to different waves, based on Transactional Memories concepts. In order to do so, the original memory ordering mechanism was modified, originating the Transactional WaveCache. The use of the WaveScalar architectural simulator was employed to evaluate the correctness and performance of the mechanism. According to the results of the execution of a set of artificial applications, speedups from 1,52, to 1,91 were reached for applications with low concurrency in terms of memory accesses, considering the ideal degree of speculation. For applications with high concurrency there were slowdowns from 1,05 to 1,16. Application with intermediary concurrency presented a slowdown of 1,01 for an application and speedups up to 1,33 for the others. This speedup is achieved through extraction of concurrency in the memory system, resulting in more paralelism in the execution system.