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...
| Autor: | |
|---|---|
| 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 |
| 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. |
|---|