Arquitecturas Avanzadas Curso 07/08 Coherence Decoupling: Making Use of Incoherence Jaehyuk Huh y otros ASPLOS’04
CoherenceDecoupling Resumen 2 Entorno: Multiprocesadores y coherencia de caches Idea: Read.Miss => Especular => Usar el dato inválido ¿Cómo?: 1. Speculative Cache Lookup “Especula” 2. Protocolo seguro => “Valida y corrige” ¿Predictor de saltos? Beneficios: Rebaja mucho la falsa compartición Reduce mucho latencia en la compartición real Resultados: Especula OK el 40..90% Mejora global del 3..16%
CoherenceDecoupling Contenido 3 INTRODUCCIÓN TRABAJOS PREVIOS COHERENCIA DESACOPLADA Introducción: Cambios arquitectura Parte relativa a Read Parte relativa a Update RESULTADOS CONCLUSIONES
CoherenceDecoupling Introducción (I) 4 ReadMiss t ValorOK Elevada Latencia ReadMiss t ValorOK Protocolo seguro (MESI) Deshacer especulación Valor Especulado Valor Verificado ? SCL Tasa éxitos Ahorro éxito Gasto fracaso
CoherenceDecoupling Introducción (II) 5 SCL: ¿Cómo especular? Primer valor encontrado en cache local (incluso Inválido) A B C D I 3FE E Tag Línea A B H D M 3FE E Tag Línea ¿OK? Mejora falsa compartición Lo anterior + variantes de protocolos Actualización: Escribir (actualizar) sólo en líneas inválidas No necesaria fiabilidad y coherencia (validación) ¡ Incrementar tasa OK !
CoherenceDecoupling Cambios arquitecturales 6 Similar a especulación de saltos y sobre todo (priorizar loads) Marcar load como especulativos Etiquetar instrucciones que dependen de un load especulativo Guardar en un buffer los datos especulados Mecanismo de recuperación load.s.20 +.s.20 *.s.20 reorderBuffer A especulado B valorOK
CoherenceDecoupling SCL: Componentes Read y Update 7 CD Básico. Toma el 1º que encuentra CD-F Filtrar con estimador de fiabilidad Falla mucho => No especular Update CD-IA El dato se propaga en el mensaje de invalidar CD-C Lo mismo, pero comprimido (0, 1, -1) CD-N Broadcast valor tras N writes mismo nodo CD-W Ideal. Propaga dato si existen shared invalidos
CoherenceDecoupling Resultados 8 FIN