Análisis de rendimiento de una cache bicameral en arquitecturas vectoriales

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 ori...

Descripción completa

Detalles Bibliográficos
Autor: Rebolledo Ruiz, Susana
Tipo de recurso: tesis de maestría
Fecha de publicación:2024
País:España
Institución:Universidad de Cantabria (UC)
Repositorio:UCrea Repositorio Abierto de la Universidad de Cantabria
Idioma:español
OAI Identifier:oai:repositorio.unican.es:10902/32339
Acceso en línea:https://hdl.handle.net/10902/32339
Access Level:acceso abierto
Palabra clave:Jerarquía de memoria
Procesador vectorial
Prefetching
Extensión vectorial RISC-V
Arquitectura de computadores
Memory hierarchy
Vector processor
RISC-V vector extension
Computer architecture
Descripción
Sumario: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.