¿Por qué aumentar el tamaño de los bloques en los cachés lleva a una tasa de fallos reducida?

1

Mi libro sobre organización de computadoras dijo que:

Si el tamaño de un bloque es 1 palabra (4 bytes), se encontrarán 10 errores al acceder a 10 enteros consecutivos en una matriz.

Si establecemos el tamaño de un bloque en 2 palabras, podemos lograr una reducción de 10 fallas a un máximo de 6 fallas al sondear esos 10 enteros consecutivos. (Supongamos que un entero toma 4 bytes).

No entiendo por qué son 6 fallos, pensé que sería más razonable tener 5.

    
pregunta Tjh Thon

1 respuesta

4

Si las diez palabras que desea obtener están alineadas con los límites de los bloques, solo necesitará obtener 5 bloques, como se muestra aquí:

           ___
               Word 1000
           ___ Word 1001 ___
           1   Word 1002
           ___ Word 1003
           2   Word 1004
Cache      ___ Word 1005     The ten
Block      3   Word 1006     words you
Boundaries ___ Word 1007     want to
           4   Word 1008     fetch.
           ___ Word 1009
           5   Word 100A
           ___ Word 100B ___
               Word 100C
           ___ Word 100D
               Word 100E
           ___ Word 100F

Sin embargo, si las diez palabras comienzan en medio de un bloque de caché, abarcan un total de seis bloques, como se muestra aquí:

           ___
               Word 1000
           ___ Word 1001
           1   Word 1002 ___
           ___ Word 1003
           2   Word 1004
Cache      ___ Word 1005     The ten
Block      3   Word 1006     words you
Boundaries ___ Word 1007     want to
           4   Word 1008     fetch.
           ___ Word 1009
           5   Word 100A
           ___ Word 100B
           6   Word 100C ___
           ___ Word 100D
               Word 100E
           ___ Word 100F
    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas