Coherencia de cache y DMA: análisis de casos

Anuncio
DMA y coherencia de cache:
análisis de casos
Š Caso cache write-through
9 Lecturas mediante DMA
9 Escrituras mediante DMA
Š Caso cache write-back
9 Lecturas mediante DMA
9 Escrituras mediante DMA
Universidad de Oviedo
Dpto. de Informática
Ingeniería de Computadores
Caso cache write-through:
lecturas mediante DMA
Š No se generan problemas de
coherencia, ya que la M. P.
siempre contiene datos
actualizados
Universidad de Oviedo
Dpto. de Informática
Ingeniería de Computadores
Caso cache write-through:
escrituras mediante DMA
Š Problema
Si el periférico escribe en un bloque de M. P. que se encuentra cacheado,
el correspondiente bloque de la cache se convierte en obsoleto
Š Solución
Espionaje de bus (bus snooping): el controlador de cache detecta dicha
situación espiando el bus y marca el bloque como inválido
Š Ejemplo
Situación Inicial
Bloque de cache
M. P.
Nº de bloque
bit de validez
11000000
11000001
11000010
11000011
Un periférico
escribe el dato AA
en la dirección
11000000
11000011
11000001
Periférico
El controlador de
cache detecta que
la dirección escrita
está cacheada,
por lo que invalida
el bloque de la
cache
FF
B3
19
CD
11000010
11000011
FF
B3
19
AA
11000000
11000001
11000010
11000011
FF
B3
19
AA
Universidad de Oviedo
Dpto. de Informática
0
0
1
1
etiqueta
3
2
1
0
110
CD
19
B3
FF
etiqueta
3
2
1
0
110
CD
19
B3
FF
OFFSETS
OFFSETS
Incoherencia
0
0
etiqueta
3
2
1
0
xxx
XX
XX
XX
XX
OFFSETS
Invalidar
bloque
Ingeniería de Computadores
Caso cache write-back:
lecturas mediante DMA
Š Problema
Los datos leídos pueden pertenecer a un bloque de M. P. Obsoleto, es
decir, no coherente con el correspondiente bloque de la cache
Š Solución
El controlador de cache detecta dicha situación mediante espionaje de
Bus. Detiene al periférico, actualiza el bloque accedido en la M. P. y
da permiso al periférico para que comience de nuevo la lectura
Š Ejemplo
Situación Inicial:
Bloque de cache
“sucio”,
incoherente con la
M. P.
Bloque de cache
M. P.
Nº de bloque
bit de validez
bit “derty”
11000000
11000001
11000010
11000011
FF
B3
19
CD
0 1
1
etiqueta
3
2
1
0
110
77
19
11
FF
OFFSETS
Datos
incoherentes
Un periférico solicita lectura de la dirección 11000011. El controlador de cache detecta mediante
espionaje de bus que esta dirección pertenece a un bloque “sucio” y detiene al periférico
Solicita lectura
Se deniega
Periférico
11000000
11000011
FF
B3
19
CD
0 1
1
etiqueta
3
2
1
0
110
77
19
11
FF
OFFSETS
El controlador de cache actualiza el bloque de memoria principal, después la lectura puede
llevarse a cabo
Actualización
Lectura del
dato
Periférico
11000000
11000011
FF
11
19
77
Universidad de Oviedo
Dpto. de Informática
0 1
0
etiqueta
3
2
1
0
110
77
19
11
FF
OFFSETS
Ingeniería de Computadores
Descargar