1 Memorias Cache Arq. de Computadores Santiago González Tortosa
2 Parte I Introducción a Memorias Cache
3 Introducción Para que sirve Reducción de tiempo en el acceso de información (no acceder a MP) Tiempo de acceso reducido Control de Información Política de lectura: Para un buen uso de Mca, se necesita tener actualizada la información en la misma (coherencia). ¿Cómo se lleva la info a MCa? Política de escritura: Cuando el user quiere modificar info,¿cómo se escribe? OJO: Reemplazo de Mca únicamente en asociativas y asociativas por conjuntos
4 Política de Lectura OOF Early Start CPU MPMCa 1234
5 Política de Lectura OOF Early Start CPU MPMCa 12343
6 Política de Lectura OOF Early Start CPU MPMCa 12343
7 Política de Lectura OOF Early Start CPU MPMCa 123413
8 Política de Lectura OOF Early Start CPU MPMCa 1234123
9 Política de Lectura OOF Early Start CPU MPMCa 12341234
10 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 1234
11 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 12341
12 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 123412
13 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 1234123
14 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 1234123
15 Política de Lectura OOF Early Start CPU MPMCa 12341234 CPU MPMCa 12341234
16 Política de escritura Copy(write)-Back MCa MP CPU 33
17 Política de escritura Copy(write)-Back MCa MP CPU 23
18 Política de escritura Copy(write)-Back MCa MP CPU 2 3
19 Política de escritura Copy(write)-Back MCa MP CPU 2 2
20 Política de escritura Copy(write)-Back MCa MP CPU 3 3
21 Política de escritura Copy(write)-Back MCa MP CPU 3 2
22 Política de escritura Copy(write)-Back MCa MP CPU 3 2 reemplazo
23 Política de escritura Copy(write)-Back MCa MP CPU 3 2 reemplazo y dato mod 3
24 Política de escritura Copy(write)-Back MCa MP CPU 2 23 Segun Politica Lectura
25 Política de escritura Copy(write)-Back MCa MP CPU 2 2 Segun Politica Lectura
26 Política de escritura Copy(write)-Back MCa MP CPU 2 2 Segun Politica Lectura
27 Política de escritura (II) Write-through MCa MP CPU 33
28 Política de escritura (II) Write-through MCa MP CPU 22
29 Operaciones MCa Lectura Acierto Fallo Escritura (Política de Escritura) Acierto Fallo Debemos tener en cuenta políticas
30 Lectura MCa Acierto Fallo MCa T = Tca MCa MP Segun Politica Lectura X reemplazo
31 Lectura MCa Acierto Fallo MCa T = Tca MCa MP reemplazo bloque
32 Lectura MCa Acierto Fallo MCa T = Tca MCa MP Tacc = Tca (+ N * Tmp) + X * Tmp Tocup = Tca ( + N * Tmp) + N * Tmp bloque Segun Politica Lectura X reemplazo
33 Posibles Derivaciones Tiempo medio de Acceso: probabilidades de Acierto/Fallo T = Hr * Tacierto + (1-Hr) * Tfallo Tiempo medio de Acceso con Probabilidades de Lectura/Escritura Plec * Tlec + Pesc * Tesc Tlec calculado con probabilidades acierto/fallo Tesc calculado con probabilidades acierto/fallo
34 Posibles Derivaciones (II) Tiempo máximo de acceso Igual que tiempo medio de acceso, pero sin tener en cuenta la posibilidad de acierto. Tiempo mínimo de acceso Igual que tiempo medio de acceso, pero sin tener en cuenta la posibilidad de fallo. Tiempo de ocupación Igual que el tiempo medio de acceso, pero teniendo en cuenta la lectura y escritura de TODAS las palabras del bloque (tiempo en que la CPU realiza otras operaciones)
35 Parte II Uso de Memoria Virtual
36 Fase de Traducción TLB MP Paginada 3 Niveles DV
37 Fase de Traducción TLB MP Paginada 3 Niveles DV DR T = Ttlb
38 Fase de Traducción TLB MP Paginada 3 Niveles DV
39 Fase de Traducción TLB MP Paginada 3 Niveles DV DF T = Ttlb + 3 * Tmp
40 Uso de Memoria Virtual Traducción y Acceso a la Info secuencial DV DFInformación Ttrad Tacc T = Ttrad + Tacc
41 Uso de Memoria Virtual (II) Traducción y Acceso a la Info Simultaneo TRAD ACC TLB MCa (acierto/fallo) DV Byte + Bloque DF Info
42 Uso de Memoria Virtual (II) Tiempo de Traducción T = Hrtlb * Ttlb + (1 - Hrtlb) * (Ttlb + N * Tmp) Tiempo de Acceso Acierto: T = Tca Fallo: T = Tca (+ …) Habiendo Simultaneidad T = max (Ttrad,Tacc) + (Si fallo MCa) …
43 Uso de Memoria Virtual (III) Diferencias entre secuencial y simultaneo Acierto en Cache Tsec = Ttrad (aciertos o fallos) + Tca Tsimul = max(Ttrad,Tca) Fallo en Cache Tsec = Ttrad (acierto o fallo) + Tacc Tsimul = max (Ttrad, Tca) + Tfallo
44 Uso de Memoria Virtual Posibilidades: Traducción Acierto TLB: Ttlb Fallo TLB: Ttlb + N * Tmp (N niveles de pagina) Acceso Información Acierto Mca: Tca Fallo Mca: Tca (+ Tfallo_cache) Mezclar posibilidades con derivaciones de tiempos OJO: Tiempo de Traducción es siempre el mismo en todos los casos (acceso, ocupación) Tpo maximo de acceso: Solo fallos de TLB (1 – Hr_tlb = 100%) Tpo minimo de acceso: Solo aciertos de TLB (Hr_tlb = 100%)
45 Parte III Inclusión de nuevas tecnologías
46 Nuevas Tecnologías Memoria Cache de 2º Nivel Stream Buffer Buffer de Escritura Victim Buffer Posibilidad de mezclar: Traducción + Acceso simple a MCa + Nuevas Tecnologías
47 Memoria Cache de 2º Nivel Cuando falla el MCa de Nivel 1, se accede al MCa de Nivel 2. Políticas de Nivel 1 y Políticas de Nivel 2 Si falla MCa de Nivel 2, se accede a MP. MCa1MCa2MP
48 Stream Buffer Anticipaciones MCaStream MP CPU
49 Stream Buffer Anticipaciones MCaStream MP CPU
50 Stream Buffer Anticipaciones MCaStream MP CPU 2
51 Stream Buffer Anticipaciones MCaStream MP CPU 2 NO politica lectura 2
52 Stream Buffer Anticipaciones MCaStream MP CPU 22
53 Stream Buffer Anticipaciones MCaStream MP CPU 2bloque i+1 Tacc = Tca + N * maximo(MCa,Stream) Tocup = Tca + N * maximo(Mca,Stream) + N * Tmp
54 Stream Buffer Anticipaciones MCaStream MP CPU
55 Stream Buffer Anticipaciones MCaStream MP CPU Según política lectura 2 2
56 Stream Buffer Anticipaciones MCaStream MP CPU 2 2
57 Stream Buffer Anticipaciones MCaStream MP CPU Según política lectura 2 2
58 Stream Buffer Anticipaciones MCaStream MP CPU 2 2 bloque i+1 Tacc = Tca + Tstr + X * Tmp Tocup = Tca + Tstr + N * Tmp + N * Tmp
59 Buffer de escritura Escrituras de MP NO en Tacc (Tocup) Se utiliza este mecanismo sii buffer no lleno Probabilidades llenado de Buffer Pb_vacio * Tb_vacio + (1-Pb_vacio) * Tacc_n Tb_vacio = Tacc usando buffer de escritura
60 Buffer de escritura (II) Casos de estudio Política Escritura: Copy-Back Op Lectura, fallo MCa con reemplazo Op Escritura, fallo MCa con reemplazo Política Escritura: Write-through Op Escritura, acierto o fallo
61 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU
62 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2
63 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 Reempazo bloque
64 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 Reempazo bloque
65 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 bloque2 según politica lectura X
66 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 bloque2
67 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 bloque2 según politica lectura
68 Buffer de escritura (III) CB, Op lectura y escritura MCaBuffer MP CPU 2 bloque2 Tacc = Tca + N * maximo (Tca,Buff) + X * Tmp Tocup = Tca + N * maximo (Tca,Buff) + N * Tmp + N * Tmp
69 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU
70 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 22
71 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 22
72 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 22 2 Tacc = maximo (Tca,Tbuf) Tocup = maximo (Tca,Tbuf) + Tmp
73 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 2
74 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 2
75 Buffer de escritura (III) WT, Op escritura MCaBuffer MP CPU 2 2 Tacc = Tbuf Tocup = Tbuf + Tmp
76 Victim Buffer Unicamente para Caches DIRECTAS Reducir el Tacc por fallos de conflicto (dos palabras en la misma dir)
77 Victim Buffer (II) MCaVB MP CPU
78 Victim Buffer (II) MCaVB MP bloque r CPU
79 Victim Buffer (II) MCaVB MP bloquebloque r CPU
80 Victim Buffer (II) MCaVB MP bloquebloque r CPU
81 Victim Buffer (II) MCaVB MP bloquebloque r Tacc = Tca + N * max(Mca,Tvb) + N * max (Mca,Tvb) Tocup = Tacc CPU
82 Victim Buffer (II) MCaVB MP CPU
83 Victim Buffer (II) MCaVB MP 2 CPU bloque r
84 Victim Buffer (II) MCaVB MP 2 CPU bloque r
85 Victim Buffer (II) MCaVB MP 2 CPU según política de lectura 2 bloque r X
86 Victim Buffer (II) MCaVB MP 2 CPU 2 bloque r
87 Victim Buffer (II) MCaVB MP 2 CPU según política de lectura 2 bloque r
88 Victim Buffer (II) MCaVB MP 2 CPU 2 bloque r Tacc = Tca + Tvb + N * maximo(Tca,Tvb) + X * Tmp Tocup = Tca + Tvb + N * maximo(Tca,Tvb) + N * Tmp
89 Memorias Cache Fin