5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria...

20
Arquitectura de Computadoras 5. Sistema de memoria Santiago E. Felipe/UTM-2019 1 5. Diseño del sistema de memoria Introducción La tecnología y organización de los procesadores modernos les permite alcanzar muy altas velocidades, pero para mantener un alto rendimiento es necesario que las instrucciones y datos estén disponibles cuando el procesador lo requiere. Por ello, a los programadores y usuarios de computadoras les gustaría disponer de una memoria de alta velocidad, una gran capacidad de almacenamiento y un bajo costo por bit. Estas tres características no son compatibles entre sí, las memorias rápidas tienen un alto costo y las memorias de bajo costo tienen tiempos de acceso altos. En la tabla 1 se muestran los tiempos de acceso y precios para las diferentes tecnológicas de memoria. De manera que la memoria ideal seria aquella que cuente con el tiempo de acceso de la tecnología SRAM y con el precio y capacidad de almacenamiento del disco magnético. Tabla 1. Tecnologías de memoria Tecnología Tiempo de acceso $(Dolares) por GB(2012) SRAM 0.5ns-2.5ns $500-$1000 DRAM 50ns-70ns $10-$20 FLASH 5us-50us $0.75-$1.00 MÁGNETICO 5ms-20ms $0.05-$0.1 5.1 Jerarquía de memoria La forma de aproximarse a la memoria ideal consiste en el uso de una estructura jerárquica que combine las diferentes tecnologías, como se puede ver en la figura 1, la memoria más rápida interacciona directamente con el procesador. Figura 1. Jerarquía de memorias Esta organización es posible porque el procesador no accede a todos los programas y datos de manera simultánea o con la misma frecuencia. Los programas en ejecución se mantienen

Transcript of 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria...

Page 1: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 1

5. Diseño del sistema de memoria

Introducción

La tecnología y organización de los procesadores modernos les permite alcanzar muy altasvelocidades, pero para mantener un alto rendimiento es necesario que las instrucciones ydatos estén disponibles cuando el procesador lo requiere.

Por ello, a los programadores y usuarios de computadoras les gustaría disponer de unamemoria de alta velocidad, una gran capacidad de almacenamiento y un bajo costo por bit.Estas tres características no son compatibles entre sí, las memorias rápidas tienen un altocosto y las memorias de bajo costo tienen tiempos de acceso altos.

En la tabla 1 se muestran los tiempos de acceso y precios para las diferentes tecnológicas dememoria. De manera que la memoria ideal seria aquella que cuente con el tiempo de accesode la tecnología SRAM y con el precio y capacidad de almacenamiento del disco magnético.

Tabla 1. Tecnologías de memoria

Tecnología Tiempo de acceso $(Dolares) por GB(2012)SRAM 0.5ns-2.5ns $500-$1000DRAM 50ns-70ns $10-$20FLASH 5us-50us $0.75-$1.00

MÁGNETICO 5ms-20ms $0.05-$0.1

5.1 Jerarquía de memoria

La forma de aproximarse a la memoria ideal consiste en el uso de una estructura jerárquicaque combine las diferentes tecnologías, como se puede ver en la figura 1, la memoria másrápida interacciona directamente con el procesador.

Figura 1. Jerarquía de memorias

Esta organización es posible porque el procesador no accede a todos los programas y datosde manera simultánea o con la misma frecuencia. Los programas en ejecución se mantienen

Page 2: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 2

en memoria principal junto con sus datos, de esta información, las instrucciones recientescon sus operandos serán transferidas a la memoria caché para estar a disposición delprocesador. En la figura 2 se muestra una pirámide con los diferentes tipos de memoriaencontrados en una computadora, a medida que se va de arriba hacia abajo, sucede losiguiente:

• Disminuye el costo por bit• Aumenta la capacidad• Aumenta el tiempo de acceso• Disminuye la frecuencia de acceso a la información desde la CPU

Figura 2. Tipos de memoria en la estructura jerárquica

Localidad de referencia

La jerarquía de memorias es posible porque los programas y datos manifiestan unapropiedad denominada localidad de referencia, esta propiedad es empleada en toda laestructura, aunque su impacto se ve mayormente reflejado en la memoria caché. Lalocalidad de referencia se manifiesta en una doble dimensión: temporal y espacial.

Localidad de referencia temporal: Se debe a la naturaleza repetitiva en el uso deprogramas y datos; significa que, es muy probable que las instrucciones y datos queacaban de ser empleados por la CPU vuelvan a ser requeridos en un futuro muypróximo. Por ejemplo, durante la ejecución de ciclos iterativos, por lo queinstrucciones y datos deben permanecer por un tiempo significativo en la memoriacaché.

Page 3: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 3

Localidad de referencia espacial: Significa que la información que se encuentra en laproximidad de la información recientemente accedida (en cuanto a sus direcciones enmemoria) también es muy probable que se requiera muy pronto, la informaciónconsiste en instrucciones y datos. Esto es muy común en el manejo de arreglos. Por lotanto, las transferencias de memoria principal a caché se realizan por bloques, no sólose lleva una instrucción o dato, sino también la información adyacente.

La computadora toma ventaja de la localidad de referencia, toda la información disponiblese encuentra en el disco duro, los programas que actualmente están en ejecución con susrespectivos datos son llevados a la memoria principal, de donde, en la medida en que laCPU va requiriendo de instrucciones o datos, éstos son llevados a la memoria caché, perono como instrucciones o datos independientes, sino por bloques de varios bytes. Estainformación permanece en caché por un tiempo considerable, hasta que el procesadorejecuta otras aplicaciones por lo que requiere del remplazo de la información disponible encaché.

5.2 Memoria Caché

La memoria caché trabaja a la misma velocidad del procesador y su objetivo esproporcionarle instrucciones o datos cuando son requeridos. La caché se organiza porbloques y cada bloque contiene varios datos de 32 bits (la cantidad debe ser una potencia de2). Cuando un programa va a leer un dato, la CPU le presenta la dirección a la memoriacaché y su hardware de control comprueba si tiene el dato que corresponde con esadirección, si es así ocurre un acierto (hit) y la caché proporciona el dato al procesador. Encaso contrario se produce una falla (miss) y el control de la caché debe tener acceso a lamemoria principal para leer el bloque que incluya el dato solicitado.

Los aciertos (hits) hacen que se tenga un flujo constante en la ejecución de un programa ylas fallas (misses) generan una penalización porque el procesador debe esperar para tener lainstrucción o dato y se pueden requerir cientos de ciclos de reloj, por ello, es deseable quelas memorias caché tengan una baja tasa de fallas (miss rate).

Es natural que el tamaño de la caché sea mucho menor que la memoria principal por lo quese deben establecer mecanismos de correspondencia para determinar en qué bloque de lacaché se va a situar un dato a partir de su dirección vinculada a la memoria principal.Existen 3 formas para manejar esta correspondencia: Un mapeo directo, un mapeoasociativo por conjuntos y un mapeo completamente asociativo.

El mapeo directo es el más simple de establecer por hardware. con los bits menossignificativos de dirección se determina a qué bloque pertenece un dato y su ubicación en

Page 4: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 4

el bloque. Para entender el concepto se considera una caché pequeña con sólo 8 bloques y 2palabras de 32 bits por bloque, su organización tiene la forma mostrada en la tabla 2.

Tabla 2. Caché de 8 bloques y 2 palabras

Índice Dato 1 Dato 001. . .67

Se requieren 3 bits para identificar un bloque, 1 bit para ubicar una palabra y 2 bits dedesplazamiento para un acceso por bytes. Con direcciones de 12 bits se tiene acceso a 4096bytes, es decir, 1024 palabras de 32 bits, de las cuales sólo 16 podrán estar en la caché. Suubicación en la caché se obtiene con la siguiente distribución de bits:

11 10 9 8 7 6 5 4 3 2 1 0Etiqueta Índice Dato Byte offset

En la tabla 3 se puede ver que un bloque es compartido por datos con diferentes direcciones,para determinar a qué dirección corresponde el dato situado en la caché se utilizan los bitsde la etiqueta, de manera que a la estructura mostrada en la tabla 2 se le debe agregar unacolumna con esos bits.

Tabla 3. Ubicación de datos en la caché

Dirección Etiqueta Indice Dato + offset Bloque0x008 0000 00 00 1 000 10x018 0000 00 01 1 000 30x028 0000 00 10 1 000 50x038 0000 00 11 1 000 70x048 0000 01 00 1 000 10x058 0000 01 01 1 000 30x068 0000 01 10 1 000 50x078 0000 01 11 1 000 70x088 0000 10 00 1 000 10x098 0000 10 01 1 000 3

También se debe agregar un bit de validez para indicar si la información del bloque estáactualizada. Agregando estas dos columnas, la caché queda con la forma de la tabla 4,después de un reset todos los bits de validez tienen 0, de manera que en las primeraslecturas de la memoria se obtendrán fallas. Ante una falla, el bloque correspondiente esllevado de la memoria principal a la caché, los bits de la etiqueta son copiados y el bit deválido es puesto en alto, esto hace que en los accesos posteriores se tengan aciertos (hits).

Page 5: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 5

Tabla 4. Estructura completa de una caché de 8 bloques y 2 palabras

Índice Válido Etiqueta Dato 1 Dato 001234567

Ejercicio: Suponiendo que un arreglo de enteros A[ ] inicia en la dirección 0x100, analiceel comportamiento de la caché mostrada en la tabla 4 ante las lecturas de los datos en elsiguiente orden: A[0], A[2], A[1], A[3], A[5], A[0], A[4], A[2]. Examine la ocurrencia defallas y aciertos.

En la figura 3 se muestra la organización de una caché de 1024 bloques, cada bloquecontiene 4 palabras de 32 bits, además de los bits de etiqueta y validez. El campo de laetiqueta ocupa 18 bits si se consideran direcciones de 32 bits. Un hit se presenta cuando enel bloque especificado coincide el campo de la etiqueta y el bit de validez se encuentra enalto, de lo contrario se trata de un miss. Ante una falla el bloque es copiado de la memoriade la principal, si el bloque no estaba vacío se reemplaza su contenido actual.

Figura 3. Organización de una caché de 1024 bloques con 4 palabras

Page 6: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 6

Para determinar en qué bloque se encuentra un dato, su dirección se divide entre el númerode bytes por bloque y si es necesario, al resultado se le aplica el operador módulo con elnúmero de bloques.

Ejemplo: Se tiene una caché de 64 bloques y 16 bytes por bloque, ¿en qué bloque seencuentra el dato con dirección 1200?

Dirección del bloque = 1200/16 = 75Número de bloque = 75 mod 64 = 11

Tamaño de los bloques

El tamaño de los bloques es un aspecto importante en el rendimiento de un sistema, conbloques grandes se reduce la tasa de fallas (miss rate), debido a la localidad espacial. Sinembargo, si el tamaño de la caché es fijo, con bloques grandes se tendrán pocos bloques ypor lo tanto se tendrá más competencia para uso, en programas que manejen cantidadesgrandes de datos se aumenta la tasa de fallas. Otros aspectos desfavorables son elincremento en la penalización por fallas y una contaminación por llevar datos queprobablemente no serán ocupados.

Se debe buscar un balance en el tamaño de los bloques de acuerdo con el tamaño de lacaché. La figura 4 muestra el comportamiento de cachés con diferentes dimensiones ybloques de diferentes tamaños, se puede ver que en cachés de 4K y 16K, la tasa de fallasaumenta cuando el tamaño de los bloques es grande.

Figura 4. Fallas en la caché vs el tamaño de los bloques

Page 7: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 7

Ante un hit la CPU procede de manera normal, pero ante un miss la segmentación sedetiene y el bloque es obtenido del siguiente nivel en la jerarquía. Si la falla fue en unacaché de instrucciones se reinicia la captura de la instrucción. Si la falla fue en una caché dedatos, con el dato disponible se termina el acceso.

Escritura de la caché

Dado que la CPU interacciona directamente con la caché, una escritura modificará sólo elcontenido de la caché y no habrá coherencia con el contenido de la memoria principal. Setienen dos protocolos para mantener esta coherencia: Write-Through yWrite-Back.

Con Write-Through se realiza una escritura continua, después de que la CPU modifica undato en la caché también se actualiza la memoria principal. Esto hace que las escriturastomen más tiempo afectando el rendimiento global del sistema, por ejemplo, si unprocesador tiene un CPI de 1.0, en un programa con un 10 % de almacenamientos y uncosto de 100 ciclos de reloj por escritura en memoria principal, se tiene:

CPI efectivo = 1 + 0.1 x 100 = 11

Para aminorar los tiempos de espera se utiliza un buffer de escritura en el que se mantienenlos datos antes de ser enviados a la memoria principal. Durante los almacenamientos laCPU escribe en el buffer y continúa con la ejecución normal del programa, sólo se detienecuando el buffer está lleno y su contenido debe ser escrito en memoria principal.

Con Write-Back el procesador sólo escribe en la caché y la memoria principal se actualizahasta que el bloque debe ser remplazado. En el bloque se debe señalizar que fue modificadoy para ello se agrega un bit de “sucio” (dirty) que indicará si hay inconsistencias con lamemoria principal.

Cuando un bloque “sucio” es reemplazado primero debe respaldarse en la memoriaprincipal, con el apoyo de un buffer de escritura se acelera el proceso de remplazo.

Una falla en la escritura ocurre si el bloque a modificar no se encuentra en la caché (la fallase presenta cuando no hay coincidencias entre etiquetas o el bit de válido está en bajo), anteuna falla primero se realiza la lectura del bloque para su posterior modificación en la caché,esto porque nada garantiza que el bloque se modificará completamente.

Puede hacerse una escritura directa en el bloque sin una previa lectura, pero esto dependede su tamaño y de la naturaleza de las aplicaciones, puesto que si no se modifican todos losbytes del bloque, habrá diferencias en el contenido de la caché y los datos de la memoriaprincipal.

Page 8: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 8

5.3 Ejemplo: Procesador FastMath de Intrinsity

FastMath es un procesador para aplicaciones embebidas basado en una arquitectura MIPS,está diseñado como una arquitectura SIMD (una instrucción-múltiples datos) capaz deoperar sobre arreglos de 4x4 enteros de 32 bits. Puede trabajar sobre matrices y vectores depunto fijo, con un archivo de registros local dedicado. Los arreglos de datos se capturandirectamente de una caché interna al procesador.

El procesador trabaja con una segmentación de 12 etapas y el acceso a instrucciones y datosse realiza en cada ciclo de reloj. Incluye dos memorias caché, una para instrucciones (I-caché) y otra para datos (D-caché), cada una de 16 KBytes, con una estructura de 256bloques y 16 palabras por bloque, en la figura 5 se muestra su organización.

Figura 5. Organización de la caché del procesador FastMath

La caché de datos utiliza cualquiera de las técnicas de escritura: write-through o write-back.El benchmark SPEC2000 proporciona las tasas de fallas siguiente:

I-cache: 0.4%D-cache: 11.4%

La caché de instrucciones siempre tendrá una tasa menor de fallas.

Page 9: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 9

5.4 Consideración de la caché en el rendimiento de un sistema

Para estimar el rendimiento de un sistema se ha considerado el tiempo de ejecución como:

T. Ejecución = IC x CPI x Duración del ciclo

Sin embargo, en esta expresión no se consideran las fallas en la caché, las cuales van amodificar significativamente el valor del CPI, porque ante una falla en caché el procesadordebe esperar a contar con la nueva instrucción o a disponer del nuevo dato.

Los ciclos de detención debidos a fallas por datos se obtienen con:

PenaltyMissRateMissprograma

MemoriaAccesosCachéDDetenciónCiclos _____

Mientras que para una caché de instrucciones, los ciclos de bloque son:

PenaltyMissRateMissCachéIDetenciónCiclos ____

La penalización por fallas (Miss Penalty) se debe a que el tiempo de acceso de la memoraprincipal (DRAM) es mucho mayor al de una caché (SRAM), de la tabla 1 se obtienen lostiempos de acceso promedio:

Tiempo de acceso promedio en caché (SRAM) = 1.5 nsTiempo de acceso promedio en memoria principal (DRAM) = 60 ns

Significa que se requieren 40 ciclos de reloj de la CPU para un acceso a la memoriaprincipal. La penalización real es mayor porque un bloque de caché puede incluir muchosdatos.

Ejemplo: El CPI ideal en un sistema para un programa de prueba es de 2.0, ¿Cuál es el CPIreal si se consideran qué el 36 % de las instrucciones son accesos a memoria, la tasa defallas en I-Caché es del 2 %, en D-Caché del 4 % y la penalización por fallas de 100 ciclosde reloj?

CPI_Real = CPI_Ideal + Detención por D-Caché + Detención por I-Caché

El tiempo de acceso promedio (AMAT, Average memory access time) también es unamétrica importante, se define como: AMAT = Hit Time + Miss Rate* Miss Penalty.

Page 10: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 10

Ejemplo: ¿Cuál es el tiempo de acceso promedio de una CPU con un reloj de 1 GHz, unatasa de fallas en I-caché del 5 % y una penalidad por fallas de 20 ciclos de reloj?

En resumen, puede observarse que si el rendimiento de la CPU se incrementa, la penalidadpor fallas llega a ser más significativa. El CPI real es mucho más grande por lasdetenciones debidas a las fallas en la memoria. Por lo tanto, cuando se está evaluando elrendimiento de un sistema, no se puede ignorar el comportamiento de la caché.

5.5 Mapeo de memoria caché

Como ya se mencionó, existen 3 formas para hacer corresponder los datos de la caché conla memoria principal: mapeo directo, mapeo asociativo por conjuntos y mapeocompletamente asociativo, en la figura 6 se esquematizan los diferentes tipos de mapeo.

Figura 6. Funciones de correspondencia o tipos de mapeo

En el mapeo directo los bloques siempre son ubicados en la misma posición. Esto haceque a una línea de la caché (en donde cabe un bloque) le correspondan muchos bloques dela memoria principal. Como consecuencia, se presentan colisiones cuando se leen dospalabras ubicadas en bloques diferentes pero que les corresponda la misma línea de la caché(mismo índice, diferente etiqueta), la segunda lectura obliga un reemplazo del bloque aúncuando la caché no esté completamente ocupada. Sólo se tiene un comparador para validarla etiqueta, ubicada en el índice especificado.

Con el mapeo completamente asociativo se permite que cada bloque de memoria puedaestar en cualquier línea de la caché, por lo que no se requiere de reemplazos mientras lamemoria caché no esté llena. Con esto se reducen las colisiones obtenidas en un mapeo

Page 11: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 11

directo y se aumenta la tasa de aciertos. El campo de índice desaparece de la dirección y elcampo de la etiqueta se incrementa, para una lectura se requiere de una búsqueda en todoslos bloques de la caché, el hardware es caro porque cada bloque debe incluir un comparador.

El mapeo asociativo por conjuntos combina la economía del mapeo directo con la tasa deaciertos del mapeo asociativo. Consiste en agrupar las líneas de la caché en conjuntos, detal forma que un bloque de la memoria principal puede ubicarse en cualquier línea de unconjunto concreto. Con esta política, la memoria caché se divide en C conjuntos con Llíneas cada uno. Así, el número M de líneas de la caché es M = C x L y sólo se tienen Ccomparadores, en lugar de M para un mapeo completamente asociativo.

Si el número de bloques es constante, la memoria se puede organizar de diferentes manerassegún el tipo de mapeo. En la figura 7 se muestra una caché con 8 bloques, con un mapeodirecto se tienen 8 líneas, si el mapeo es asociativo por conjuntos pueden ser 2 ó 4 líneas ypara un mapeo completamente asociativo sólo es una línea.

Figura 7. Posibles organizaciones para una caché con 8 bloques.

Ejercicio: Para una caché de 4 bloques, evalúe los accesos a memoria para un mapeodirecto, asociativo por conjuntos con 2 vías y un mapeo completamente asociativo.Considere la secuencia de acceso a los bloques: 0, 8, 0, 6, 8.

Al incrementar la asociatividad se reduce la tasa de fallas, pero con rendimientosdecrecientes.

Page 12: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 12

La simulación de una D-caché de 64 KBytes con bloques de 16 palabras, bajo losprogramas de SPEC2000, genera las tasas de fallas mostradas en la tabla 4.

Tabla 4. Estructura completa de una caché de 8 bloques y 2 palabras

No. de vías Tasa de fallas1 (mapeo directo) 10.3%

2 8.6%4 8.3%8 8.1%

En la figura 8 se muestra la organización de una caché asociativa por conjuntos con 4 vías,cada conjunto tiene 256 líneas y los bloques sólo contienen una palabra de 32 bits.

Figura 8. Caché asociativa por conjuntos de 4 vías.

Políticas de reemplazo

En un mapero directo no hay elección, durante el acceso a un bloque, si el bit de validezestá en alto pero no coincide la etiqueta, el bloque debe ser reemplazado. Si el bit de“sucio” está en alto, primero se debe realizar el respaldo del bloque en memoria principal.

Page 13: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 13

En un mapeo asociativo primero se buscan entradas en el conjunto que estén libres, si nohay se debe elegir una de las entradas del conjunto para su reemplazo, se tienen doscriterios:1. Reemplazar la entrada que fue menos usada recientemente (LRU, Least-recently used).

Este mecanismo es simple si la caché es de 2 vías, manejable para 4 y muy difícil deimplementar para más.

2. Reemplazo aleatorio, es conveniente cuando la asociatividad es alta y proporciona unrendimiento similar que LRU.

5.6 Cachés multinivel

Una computadora puede contar con más de un nivel de memoria caché, en la figura 9 semuestra un sistema con dos niveles, la caché primaria o de nivel L1 es la más cercano alprocesador, es una memoria pequeña pero rápida, muchas veces se sitúa dentro del mismochip del procesador. Una caché L1 es mucho más pequeña que la caché de un sistema concaché única.

Figura 9. Sistema con dos niveles de caché.

La caché L2 atiende las fallas de la caché primaria, con respecto a la caché L1 es másgrande y lenta, pero aún mucho más rápida que la memoria principal. La memoria principalatiende las fallas de la caché L2. Algunos sistemas de alto rendimiento incluyen un nivel L3en su memoria caché.

Con la caché primaria se da una respuesta rápida al procesador, es decir, está enfocada aminimizar el tiempo de un hit. La caché L2 está enfocada a reducir la tasa de fallas paraevitar el acceso a memoria, para este nivel, el tiempo de un hit tiene menos impacto. Paraello, el tamaño del bloque en el nivel L1 debe ser más pequeño que el del bloque en L2.

Ejercicio:a) Dada una CPU con un CPI base de 1.0, una frecuencia de reloj de 4 GHz, una tasa

fallas en la I-Caché del 2 % y un tiempo de acceso de 100 ns de la memoria principal,¿Cuál es el CPI efectivo?

Page 14: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 14

b) Ahora se agrega un nivel de caché L2 con un tiempo de acceso de 5 ns y una tasaglobal de fallas del 0.5 % a la memoria principal, ¿Cuál es el nuevo valor para el CPI?

c) ¿Por cuanto mejora el rendimiento del sistema?

Para minimizar los efectos debidos a fallas en la caché, los procesadores modernosterminan la ejecución de instrucciones fuera del orden de emisión y captura, ante una fallaen la caché los accesos a memoria se mantienen en unidades de carga/almacenamiento, lasinstrucciones dependientes esperan en estaciones de reserva y sólo avanzan lasinstrucciones independientes. Por ello, la evaluación del rendimiento es difícil de analizar yla alternativa es emplear benchmarks y simuladores.

Algunas aplicaciones organizan el acceso a memoria por bloques para maximizar el uso delos datos en la caché antes de que su contenido sea remplazado desde la memoria principal,la meta es minimizar el acceso a memoria principal.

5.7 Memoria Virtual

El tiempo de acceso para una memoria principal (DRAM) está entre 50 y 60 ns y escontrastante con el tiempo acceso de una memoria secundaria basada en un discomagnético, que está entre 5 y 20 ms. Los tiempos de acceso se reducen con los discos deestado sólido, que están entre 5 y 50 us, pero aún así las diferencias son significativas.

La memoria principal en promedio es 200, 000 veces más rápida que la memoriasecundaria basada en disco magnético y 500 veces más rápida que una memoria secundariabasada en un disco de estado sólido. En ambos casos es deseable que los procesadoresminimicen el número de accesos a memoria secundaria.

Por ello, dentro del sistema de memoria se dispone de la memoria virtual, consiste en unasección de la memoria principal que funciona como una “caché” para almacenamientosecundario. La memoria virtual es administrada de manera conjunta entre el procesador y elsistema operativo.

Los programas en ejecución comparten la memoria principal, cada uno obtiene un espaciode direcciones virtuales, protegido de otros programas, en donde mantiene su código einstrucciones usados con más frecuencia. La CPU y el SO trasladan las direccionesvirtuales a direcciones físicas. Una página es un “bloque” en la memoria virtual y ocurreuna falla de página si ésta no se encuentra en memoria virtual.

Page 15: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 15

Las direcciones virtuales ocupan más bits que las direcciones físicas, por lo que se debecontar con el mecanismo adecuado de traducción, como se muestra en la figura 10, conpáginas de 4 Kbytes.

Figura 10. Traducción de direcciones virtuales a direcciones físicas.

En la figura 11 se muestra como después de que una dirección virtual es traducida, sedetermina si hace referencia a un espacio de DRAM o a disco magnético. Si la informaciónestá en disco significa que hubo una falla de página, ante ello, la página debe ser llevada dememoria secundaria a principal, la penalización por la falla consume millones de ciclos dereloj y es manejada por el sistema operativo.

Figura 11. Acceso desde direcciones virtuales.

Page 16: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 16

Para reducir la tasa de fallas se utilizan mapeos completamente asociativas así comoalgoritmos de remplazo inteligentes.

Tablas de Páginas

Las tablas de páginas son una parte integral del Sistema de Memoria Virtual, son usadaspara realizar las traducciones de direcciones virtuales a direcciones reales. Por lo general, elsistema operativo mantiene una tabla por cada proceso que se está ejecutando en el sistema.

En la figura 12 se muestra una tabla de páginas, un registro de la CPU apunta a la tabla ylos bits del número de página virtual establecen un índice en la tabla. En cada entrada de latabla (PTE, Page Table Entry) existe un bit de validez, que está activado cuando la páginase encuentra en memoria principal. Otro bit que puede encontrarse es el de modificado, queadvierte que la página ha sido modificada desde que fue traída del disco, y por lo tanto debeguardarse si es elegida para abandonar la memoria principal; y el bit de accedido, usado enel algoritmo de reemplazo de páginas llamado Menos Usado Recientemente (LRU, leastrecently used). También podrían haber otros bits indicando los permisos que tiene elproceso sobre la página (leer, escribir, ejecutar).

Figura 12. Tabla de páginas.

Page 17: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 17

El bit de accedido es puesto en alto después de cualquier acceso a la página y el sistemaoperativo periódicamente los limpia colocando un 0, de manera que si el bit de accedido enla PTE tiene 0, significa que la página no ha sido usada recientemente y es candidata a serreemplazada.

La escritura en disco toma millones de ciclos de reloj porque no se hace por bytesindividuales sino por páginas, por ello, la escritura continua (write through) es impráctica yel mecanismo empleado es write-back.

La traducción de direcciones requiere de referencias adicionales de memoria, primero seaccede a la PTE y después a la memoria real. Para mejorar el tiempo acceso seríaconveniente que la tabla de páginas estuviera en la caché de la CPU pero esto no es posiblepor su tamaño, en lugar de ello se emplea un búfer de traducción anticipada (TLB,Translation Look-aside Buffer).

En la figura 13 se ilustra el concepto, el tamaño típico del TLB es de 16–512 PTE, con unduración de 0.5–1 ciclos por acierto, 10–100 ciclos por falla y una tasa de fallas de 0.01% –1%. Las fallas pueden ser manejadas por hardware o software.

Figura 13. Búfer de traducción anticipada.

Page 18: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 18

El TLB se utiliza para obtener la traducción rápida de direcciones. Si una entrada buscadano está en el TLB se revisa la tabla de páginas y se actualiza al TLB con la nueva PTE,acción que requiere de varios ciclos de reloj. Puede ocurrir que la dirección buscada no estéen memoria principal, en cuyo caso ocurre un fallo de página y la página deberá ser movida.

Estas acciones implican una estructura más compleja que es manejada con hardware ysoftware, la falla de página da lugar a una excepción que es detectada por el sistemaoperativo, éste se encarga de actualizar la tabla de páginas y reiniciar la instrucción queprovocó la falla.

Figura 14. Interacción entre el TLB y la caché.

Page 19: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 19

En la figura 14 se muestra la forma en que se relaciona el TLB con la caché, dado que lasetiquetas (Tag) en la caché contienen direcciones físicas, éstas deben ser traducidas antes deacceder a la caché. Una alternativa para evitar la traducción consiste en emplear etiquetascon direcciones virtuales, pero se pueden presentar problemas por los renombres, es decir,diferentes direcciones virtuales pueden hacer referencia a la misma dirección física.

En la figura 15 se muestra el mecanismo de acceso ante un acierto en la TLB, posterior aello se consideran las operaciones de escritura o lectura, pudiendo ocurrir aciertos o fallasal accesar a la caché.

Figura 15.Mecanismo de acceso ante un acierto en el TLB y posterior acceso a la caché.

Es importante la protección de la memoria porque diferentes tareas pueden compartir partede sus espacios de direcciones virtuales y deben evitarse accesos erróneos. Los permisos de

Page 20: 5.Diseñodelsistemadememoria Introducciónfsantiag/ArqElectronica/5a_Unidad_2020A.pdf · La memoria caché trabaja a la misma velocidad del procesador y su objetivo es proporcionarle

Arquitectura de Computadoras 5. Sistema de memoria

Santiago E. Felipe/UTM-2019 20

acceso generalmente son parte del sistema operativo, así, información relevante como lastablas de páginas sólo son accesibles en modo supervisor (también llamando modo kernel).

5.8 Resumen y conclusiones

Dentro de la jerarquía de memorias se aplican principios comunes en diferentes niveles, sinimportar el nivel, el comportamiento es similar al de una caché. En cada nivel jerárquico lainformación se organiza por bloques, cuando se requiere un dato se debe ubicar al bloque,en caso de una falla el bloque será llevado del siguiente nivel jerárquico. Se deben tomar encuenta las políticas de escritura cuando un bloque es modificado porque la información quecontiene ya no es consistente con la del nivel más bajo.

La ubicación de un bloque depende del mapeo o función de correspondencia, en un mapeodirecto la ubicación es única y desde la dirección se determina el índice del bloque, sólo serequiere un comparador para la etiqueta. En un mapeo asociativo por conjuntos de n-víasdesde la dirección se determina el índice del conjunto y son necesarios n comparadorespara la etiqueta. El mapeo completamente asociativo debe buscar en todas las entradas de lacaché, se requiere una tabla de búsqueda completa. La memoria virtual debe considerar unmapeo completamente asociativo para reducir la tasa de fallas porque la penalización porfallas involucra miles de ciclos de reloj.

Las fallas pueden tener diferentes causas, hay fallas obligatorias cuando el sistema seenciende (arranque en frio) y se realiza el primer acceso a los bloques. Las fallas porcapacidad son debidas al tamaño finito de la caché, un bloque puede ser remplazadocontinuamente con el acceso a diferentes direcciones. Las fallas por colisiones puedenocurrir en una caché que no es completamente asociativa debido a la competencia por lasentradas de un conjunto, esto no ocurre al incrementar la asociatividad.

En la tabla 5 se muestran de forma condensada los efectos de modificar diferentesparámetros con la finalidad de reducir las fallas.

Tabla 5. Efectos ante cambios en el diseño de una caché

Cambio en el diseño Efecto positivo Efecto negativoIncrementar el tamaño

de la cachéDecrementan las fallas

por capacidad Se incrementa el tiempo de acceso

Incrementar laasociatividad

Decrementan las fallaspor colisiones Se incrementa el tiempo de acceso

Incrementar el tamañode los bloques

Decrementan las fallasobligatorias

Se incrementa la penalización por fallas. Conbloques muy grandes se puede incrementar la

tasa de fallas por contaminación