Published September 18, 2017 | Version v1
Conference paper Open

Operaciones de Carga Fuera de Orden y sin Especulación en TSO

  • 1. Universidad de Murcia
  • 2. Uppsala University

Description

En el modelo de consistencia TSO (Total Store Order) implementado en la mayoría de los procesadores del mercado, no se permite la ejecución fuera de orden de las operaciones de carga (load) en un mismo hilo, sino que se debe garantizar el orden en que aparecen en el código. Se debe garantizar, por tanto, el llamado orden loadload. Con el fin de obtener un alto rendimiento, los procesadores actuales permiten ejecutar las operaciones de carga fuera de orden de forma especulativa. Si este reordenamiento es percibido por otros núcleos (cores), por ejemplo mediante una invalidación provocada por una escritura, las operaciones de carga son canceladas y ejecutadas de nuevo.

Este artículo muestra por primera vez que no es necesario cancelar y ejecutar de nuevo las operaciones de carga que son percibidas por otros cores mientras están fuera de orden. En cambio, el reordenamiento puede ocultarse a los otros cores mediante extensiones en el protocolo de coherencia de cachés, por ejemplo, retrasando la escritura que generó la invalidación. La principal consecuencia de ésto es que podemos dar por válido todo valor leído por una carga, aunque ésta no se haya ejecutado en orden. Nuestra evaluación muestra
que el coste de retrasar las escrituras cuando un reordenamiento va a ser percibido por otro core es mínimo. Además, aplicando este concepto a técnicas de retirada de instrucciones fuera de orden, se puede mejorar el tiempo de ejecución de las aplicaciones en un 10,2% comparado con una retirada fuera de orden que no use el protocolo propuesto.

Files

aros-js17.pdf

Files (527.1 kB)

Name Size Download all
md5:79dccbd0d93313c446f181286a5210bc
527.1 kB Preview Download