<?xml version="1.0" encoding="UTF-8"?>
<xml>
<records>
<record>
  <contributors>
    <authors>
      <author>Alastruey Benedé, Jesús</author>
      <author>Ibáñez Marín, Pablo Enrique</author>
    </authors>
  </contributors>
  <titles>
    <title/>
    <secondary-title/>
  </titles>
  <doi/>
  <pages/>
  <volume/>
  <number/>
  <keywords>
    <keyword>Arquitectura de computadores</keyword>
    <keyword>Jerarquía de memoria</keyword>
  </keywords>
  <dates>
    <year>2023</year>
    <pub-dates>
      <date>2023</date>
    </pub-dates>
  </dates>
  <abstract>El aumento del número de núcleos e hilos por procesador en los últimos 15 años ha permitido mantener mejoras continuas en el rendimiento de los sistemas.&lt;br /&gt;Esta tendencia de diseño ha implicado importantes cambios en la jerarquía de memoria. Esta tesis explora nuevos enfoques para mejorar el rendimiento de la jerarquía de memoria de un procesador multinúcleo. En concreto, analizamos la utilización de sus recursos compartidos y proponemos mecanismos para mejorar la gestión de estos recursos en distintos niveles que van desde el hardware hasta la aplicación.&lt;br /&gt;En primer lugar, se ha evaluado el rendimiento de la jerarquía de memoria para dos suites de SPEC, CPU2006 y CPU2017, en un Intel Xeon Skylake-SP.&lt;br /&gt;Esta caracterización nos ha proporcionado hallazgos interesantes, como, por ejemplo, el uso desigual del espacio de cache por parte de distintas aplicaciones o la eficacia de la prebúsqueda hardware para reducir los fallos de cache y mejorar el rendimiento del sistema. Esta información sirvió de base para definir nuevos objetivos concretos.&lt;br /&gt;A continuación, caracterizamos la relación entre la ocupación de la cache, la prebúsqueda hardware y el consumo de ancho de banda con memoria para comprender sus interacciones. A partir de este trabajo de caracterización, hemos propuesto Balancer, un mecanismo que impone dinámicamente límites en el uso del espacio de la LLC y el tráfico con memoria a aplicaciones específicas. Estas restricciones mejoran el rendimiento y/o la equidad en la ejecución de cargas&lt;br /&gt;de trabajo multiprogramadas en comparación con un sistema no controlado. Balancer no requiere modificaciones en el hardware ni en el sistema operativo.&lt;br /&gt;Como se ha observado en las caracterizaciones anteriores, la prebúsqueda de datos es una técnica crucial, ya que permite ocultar los accesos a memoria de larga latencia y mejorar el rendimiento en los procesadores modernos de alto rendimiento. Sin embargo, estos prebuscadores cargan un gran número de bloques inútiles. Esto se traduce en un aumento innecesario del consumo de recursos compartidos y escasos, como el espacio de cache y el ancho de banda con memoria. Proponemos Berti, un prebuscador hardware ligero, muy preciso, eficiente energéticamente y de alto rendimiento basado en deltas locales que supera a los prebuscadores que conforman el estado del arte actual. Berti es un prebuscador de L1D que organiza sus peticiones a lo largo de toda la jerarquía de caches. Gracias a su gran precisión, Berti no contamina las caches ni desperdicia ancho de banda de la jerarquía con memoria.&lt;br /&gt;La sincronización entre hilos de una misma aplicación es otro contexto en el que también puede haber una gran demanda de recursos compartidos en la jerarquía de memoria a medida que aumenta el número de núcleos por procesador. Esta tesis presenta un estudio exhaustivo sobre la escalabilidad de las diferentes estrategias que se han utilizado para implementar soluciones&lt;br /&gt;de sincronización. Las principales conclusiones que se pueden extraer son: 1) la memoria transaccional hardware escala mejor que los fine-grain locks y algoritmos lock-free a medida que aumenta el número de hilos; 2) la adopción de la memoria transaccional hardware es fácil en aplicaciones científicas y obtiene un rendimiento comparable al de un esquema de fine-grain locks altamente optimizado; y 3) habilitar el multihilo simultáneo para aplicaciones que acceden&lt;br /&gt;a grandes bloques de memoria dentro de sus secciones críticas afecta significativamente a la tasa de retiro de la memoria transaccional hardware. En este contexto, proponemos un novedoso algoritmo de reemplazo de cache que pretende mitigar los efectos negativos del multithreading simultáneo sobre la tasa de abortos por capacidad.&lt;br /&gt;</abstract>
</record>

</records>
</xml>