Acelerando requisições de prováveis cache misses com requisições em paralelo cache/DRAM
Resumo
O uso de hierarquias de memória cache multi-níveis apresentam resultados interessantes quanto a exploração da localidade temporal e espacial no decorrer da execução de um programa. Ao manterem o conjunto de dados mais frequentemente acessados ou os prováveis dados a serem acessados próximos ao processador, as memórias cache proveem um acesso mais rápido ao dados, quando comparado ao acesso a memória principal. Entretanto, para programas com baixa localidade espacial e temporal, a hierarquia de memórias cache pode apresentar-se como uma barreira para a busca de dados na memória principal. Ou seja, para programas que não tiram proveito das memórias cache, essas acabam por adicionar um overhead no acesso aos dados, pois a busca de dados é feita inicialmente na hierarquia de cache antes de ser encaminhada para a memória principal. Por outro lado, os fabricantes de processadores evitam o envio paralelo de requisições de dados para a memória cache e a memória principal, a fim de evitar inundação de falsas requisições no controlador de memória. Com essa perspectiva, nesse artigo nós apresentamos o uso de um preditor simplificado de faltas de dados no LLC que, ao prever se uma requisição acabará por ser um LLC miss, induz o processador a efetuar uma requisição diretamente a memória principal, em paralelo a tradicional busca de dados percorrendo toda a hierarquia de cache. Em nossas simulações, o encaminhamento de requisições diretamente a memória principal, com base em nosso mecanismo apresentou um ganho de desempenho de até 40% quando single-core e até 14% quando multi-core.
Referências
D. A. Patterson and J. L. Hennessy, Computer Organization and Design, Fifth Edition: The Hardware/Software Interface, 5th ed. Morgan Kaufmann Publishers Inc., 2013.
R. C. Murphy and P. M. Kogge, “On the memory access patterns of supercomputer applications: Benchmark selection and its implications,” IEEE Transactions on Computers, vol. 56, no. 7, 2007.
P. C. Santos, M. A. Z. Alves, M. Diener, L. Carro, and P. O. A. Navaux, “Exploring cache size and core count tradeoffs in systems with reduced memory access latency,” in Euromicro Int. Conf. on Parallel, Distributed, and Network-Based Processing, 2016.
M. Kharbutli, M. Jarrah, and Y. Jararweh, “Scip: Selective cache insertion and bypassing to improve the performance of last-level caches,” in Jordan Conf. on Applied Elec. Eng. and Comp.Techn., Dec 2013, pp. 1–6.
W. Sritriratanarak, M. Ekpanyapong, and P. Chongstitvatana, “Applying svm to data bypass prediction in multi core last-level caches,” IEICE Electronics Express, vol. 12, no. 22, pp. 20 150 736–20 150 736, 2015.
M. Chaudhuri, J. Gaur, N. Bashyam, S. Subramoney, and J. Nuzman, “Introducing hierarchy-awareness in replacement and bypass algorithms for last-level caches,” in Int. Conf. on Par. Arch. and Comp. Tech., Sep. 2012, pp. 293–304.
A. Sembrant, E. Hagersten, and D. Black-Schaffer, “Data placement across the cache hierarchy: Minimizing data movement with reuse-aware placement,” in 2016 IEEE 34th International Conference on Computer Design (ICCD), Oct 2016, pp. 117–124.
S. Gupta and H. Zhou, “Spatial locality-aware cache partitioning for effective cache sharing,” in 2015 44th International Conference on Parallel Processing, Sep. 2015, pp. 150–159.
Y. Tian, S. Khan, and D. A. Jiménez, “Temporal-based multilevel correlating inclusive cache replacement,” Transactions on Architecture and Code Optimization, vol. 10, pp. 1–24, 12 2013.
I. Corporation, “Intel R 64 and ia-32 architectures software developers manual,” Online, sep 2016.
J. L. Hennessy and D. A. Patterson, Computer Architecture, Fourth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., 2006.
M. K. Qureshi and G. H. Loh, “Fundamental latency trade-off in architecting dram caches: Outperforming impractical sram-tags with a simple and practical design,” in Int. Symp. on Microarchitecture, 2012.
I. Corporation, “Intel R 64 and ia-32 architectures optimization reference manual,” Online, jun 2016.
M. A. Z. Alves, C. Villavieja, M. Diener, F. B. Moreira, and P. O. A. Navaux, “Sinuca: A validated micro-architecture simulator,” in Int. Conf. on High Perf. Comp. and Comm., Aug 2015, pp. 605–610.
J. L. Henning, “Spec cpu2006 benchmark descriptions,” SIGARCH Comput. Archit. News, vol. 34, no. 4, 2006.
H. Patil, R. Cohn, M. Charney, R. Kapoor, and A. Sun, “Pinpointing representative portions of large intel itanium programs with dynamic instrumentation,” in Int. Symp. on Microarchitecture, 2004.
D. A. Jimenez, “Piecewise linear branch prediction,” in Int. Symp. on Com. Arch., June 2005, pp. 382–393.
A. Snavely and D. M. Tullsen, “Symbiotic jobscheduling for a simultaneous multithreaded processor,” in Int. Conf. on Architectural Support for Prog. Lang. and Op. Sys., 2000.
S. Mittal, “A survey of cache bypassing techniques,” Journal of Low Power Electronics and Applications, vol. 6, 2016.
M. K. Kim, J. H. Choi, J. W. Kwak, S. T. Jhang, and C. S. Jhon, “Bypassing method for stt-ram based inclusive last-level cache,” in Conf. on Research in Adaptive and Convergent Systems, ser. RACS, 2015.
S. Gupta, H. Gao, and H. Zhou, “Adaptive cache bypassing for inclusive last level caches,” in Int. Symp. on Parallel and Distributed Processing, 2013.
K. Malkowski, G. Link, P. Raghavan, and M. J. Irwin, “Load miss prediction - exploiting power performance trade-offs,” in Int. Parallel and Distributed Processing Symp., 2007.
G. H. Loh and M. D. Hill, “Efficiently enabling conventional block sizes for very large die-stacked dram caches,” in Int. Symp. on Microarchitecture, 2011.