RSTm: Reusando Especulativamente Acessos à Memória
Resumo
Técnicas de reuso e previsão de valores são alternativas para aumentar o desempenho em arquiteturas de processadores, já que permitem que instruções com dependências verdadeiras e de controle tenham seus resultados no mesmo ciclo. No entanto, arquiteturas que utilizam esses mecanismos não costumam incorporar os acessos à memória como parte das instruções que podem ser reusadas. Neste artigo, o RSTm é apresentado, uma versão da arquitetura RST (Reuse through Speculation on Traces) que permite o reuso (especulativo ou não) de acessos à memória. A verificação da reusabilidade de instruções de acesso à memória dá-se com o uso de uma tabela adicional, a Memo Table L, que armazena endereços e valores dos acessos reusáveis. Esta solução não limita o número de instruções de acesso à memória por traço e, também, armazena tanto o endereço como seu respectivo valor, com pequeno custo adicional no hardware. Os experimentos, realizados com benchmarks do SPEC2000int e SPEC2000fp mostram um speedup de até 1,0474 no desempenho do RSTm sobre o mecanismo original e de 1,2019 sobre a arquitetura base.
Referências
R. Bodik, R. Gupta e M. L. Soffa. Load-Reuse Analysis: design and evaluation. SIGPLAN Conf. on Programming Language Design and Implementation, 1999, p.64–76.
A. T. da Costa, F. M. G. França, e E. M. C. Filho. The dynamic trace memoization reuse technique. Proc. of the 9th Intl. Conf. on Parallel Architecture and Compiler Techniques, p.92–99, 2000.
F. Gabbay e A. Mendelson. Speculative execution based on value prediction. Technical Report EE Dept. #1080, Technion–Israel Inst. of Technology, Israel, 1996.
F. Gabbay e A. Mendelson. Using value prediction to increase the power of speculative execution hardware. ACM Transactions on Computer Systems, 16(3):234–270, 1998.
A. González, J. Tubella, e C. Molina. Trace-level reuse. International Conference on Parallel Processing, p.30–37, 1999.
J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San Francisco, 3rd ed. edition, 2003.
J. Huang e D. J. Lilja. Exploring sub-block value reuse for superscalar processors. 2000 International Conference on Parallel Architecture and Compiler Techniques(PACT), 2000.
L. Jin and S. Cho. A Characterization Study on Memory Value Reuse. Workshop on Memory Performance Issues – HPCA, 2006.
L. S. Laurino, T. S. G. dos Santos, P. O. A. Navaux e M. L. Pilla. Reuso de Traços com Loads em Arquiteturas Superescalares. VI Workshop em Sistemas Computacionais de Alto Desempenho, p.49–56, 2005.
M. Lipasti. Value Locality and Speculative Execution. PhD Thesis, Carnegie Mellon University, Apr. 1997.
M. H. Lipasti, C. B. Wilkerson, e J. P. Shen. Value locality and load value prediction. ACM SIGPLAN Notices, 31(9):138–147, 1996.
M. L. Pilla. RST: Reuse through Speculation on Traces. Phd thesis, II-UFRGS, June 2004.
M. L. Pilla, B. R. Childers, A. T. da Costa, F. M. G. França e P. O. A. Navaux. Limits for a Feasible Speculative Trace Reuse Implementation. Intl. Journal of High Performance Systems Architecture, 1(1):69-76, 2007.
Y. Sazeides e J. E. Smith. The predictability of data values. 30th International Symposium on Microarchitecture, pages 248–258, 1997.
A. Sodani e G. S. Sohi. Dynamic instruction reuse. 24th International Symposium on Computer Architecture(ISCA), p.194–205, 1997.
A. KleinOsowski, J. Flynn, N. Meares, e D. J. Lilja. Adapting the SPEC 2000 benchmark suite for simulation-base computer architecture research. Proc. of the Workshop for Workload Characterization – ICCD, p.83–100, Austin, USA, 2000.
J. E. Thornton. Parallel operation in the Control Data 6600. AFIPS Fall Joint Computer Conference, 26(2), 1964.
R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1), Jan. 1967.