@mastersthesis{10902/32339, year = {2024}, month = {2}, url = {https://hdl.handle.net/10902/32339}, abstract = {Este trabajo presenta el diseño, modelado, implementación y evaluación de una propuesta de memoria cache para un procesador vectorial que segrega las referencias escalares y vectoriales en dos particiones con distintas características. Esta cache, denominada Cache Bicameral, está específicamente orientada a mejorar el rendimiento de las aplicaciones vectorizadas, no sólo suprimiendo las posibles interferencias causadas por las instrucciones escalares sobre los datos vectoriales, sino también disponiendo los elementos de los vectores de forma consecutiva para garantizar su continuidad. Adicionalmente, se incluye una opción de prefetching o rellenado de datos, que permite poblar las líneas de la cache vectorial con el fin de optimizar el rendimiento aprovechando la localidad espacial en las referencias vectoriales. Para la implementación se ha utilizado el simulador Cavatools, que soporta la extensión vectorial de RISC-V. El estudio y la evaluación de la propuesta respecto a una cache convencional se ha realizado mediante la simulación de cinco benchmarks distintos con diferentes longitudes de vector arquitectural. Los resultados indican que la cache propuesta mejora el rendimiento siempre y cuando tanto el peso de las referencias vectoriales en la aplicación como el tamaño de los datos que estas manejan sean lo suficientemente elevados, lo cual son dos hipótesis razonables en aplicaciones vectoriales. Por su parte, el prefetching ha resultado ser siempre una ventaja añadida.}, abstract = {This paper presents the design, modelling, implementation, and evaluation of a proposed cache memory for a vector processor that separates scalar and vector references into two partitions with different characteristics. This cache, called Bicameral Cache, is specifically aimed at improving the performance of vectorised applications, not only by suppressing the possible interferences caused by scalar instructions on vector data, but also by arranging vector elements consecutively to guarantee their continuity. Furthermore, a prefetching, or data prefilling, option is included to populate the vector cache lines to optimise performance by exploiting the spatial locality in the vector references. The Cavatools simulator which supports the RISC-V vector extension was used for the implementation. To evaluate the proposal against a conventional cache, simulations of five benchmarks with a variety of architectural vector lengths have been conducted. The results indicate that the proposed cache is advantageous when the weight of vector references in the application and the size of the data they handle are sufficiently large both of which are reasonable assumptions for vector applications. Additionally, prefetching consistently provides an added value.}, title = {Análisis de rendimiento de una cache bicameral en arquitecturas vectoriales}, author = {Rebolledo Ruiz, Susana}, }