Arquitecturas AvanzadasCurso 07/08 Coherence Decoupling: Making Use of Incoherence Jaehyuk Huh y otros ASPLOS’04
CoherenceDecouplingResumen2 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” Beneficios:Rebaja mucho la falsa compartición Reduce mucho latencia en la compartición real Resultados:Especula OK el % Mejora global del 3..16% ¿Predictor de saltos?
CoherenceDecoupling Contenido3 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 Valor Especulado SCL ValorOK Protocolo seguro (MESI) Valor Verificado Deshacer especulación ? Tasa éxitos Ahorro éxito Gasto fracaso
CoherenceDecoupling Introducción (II)5 1.Primer valor encontrado en cache local (incluso Inválido) SCL: ¿Cómo especular? ABHDM3FE E Tag Línea ABCDI3FE E Tag Línea ¿OK? Mejora falsa compartición 2.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 arquitecturales6 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 Update7 Read 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 Resultados8 FIN