Operaciones de Carga Fuera de Orden y sin Especulación en TSO
Authors/Creators
- 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 load→load. 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 |