Fundamentos de Computación. Memorias. Concepto de MEMORIA: En una computadora, la memoria es un chip (circuito integrado) o un conjunto de chips (puede ser mas de uno) que almacenan datos o instrucciones de programas, ya sea de forma temporal o permanente. Memorias. Dimensión de la MEMORIA: Se denomina capacidad de memoria a la cantidad de información que se puede almacenar en ella. La capacidad se puede expresar en bits, bytes o unidades que los agrupen. Memorias. ANCHO DE BANDA de la MEMORIA: El ancho de banda máximo de memoria es la velocidad máxima a la cual el procesador puede leer o almacenar datos en una memoria de semiconductor (en GB/s). Por ejemplo: Para DDR4 2933: 1466.67 X 2 X 8 (cantidad de bytes de ancho) X 4 (cantidad de canales) = ancho de banda de 93 866.88 MB/s, o 94 GB/s. Memorias. LATENCIA de la MEMORIA: Se denominan latencias de una memoria RAM a los diferentes retardos producidos en el acceso a los distintos componentes de esta. Estos retardos influyen en el tiempo de acceso a la memoria por parte de la CPU, el cual se mide en nanosegundos (10-9 s). Esquema básico de una MEMORIA. Desde un punto de vista conceptual y con independencia de la tecnología, consideraremos la celda básica de memoria como un bloque con tres líneas de entrada (entrada dato, selección y lectura/escritura) y una de salida (salida dato). La celda sólo opera (lectura ó escritura) cuando la selección está activa. Esquema básico de una MEMORIA. Esquema básico 2D. • Las celdas forman una matriz de 2n filas y m columnas, siendo 2n el número de palabras del chip y m el número de bits de cada palabra. Cada fila es seleccionada por la decodificación de una configuración diferente de los n bits de dirección. • Esta organización tiene el inconveniente que el selector (decodificador) de palabras crece exponencialmente con el tamaño de la memoria. Igual le ocurre al número de entradas (fan-in) de las puertas OR que generan la salida de datos. Esquema básico 2D. Esquema básico 3D. • En lugar de una única selección (decodificador) de 2n salidas en esta organización se utilizan dos decodificadores de 2n/2 operando en coincidencia. • Las líneas de dirección se reparten entre los dos decodificadores. • Para una configuración dada de las líneas de dirección se selecciona un único bit de la matriz. Por ello se la denomina también organización por bits. Esquema básico 3D. • En esta organización se necesitan varias matrices de celdas básicas, tantas como bits deba tener la palabra de memoria, actuando sobre ellas en paralelo los circuitos de decodificación. Tipos de memorias. Las memorias se pueden clasificar atendiendo a diferentes criterios. Método de acceso: Acceso aleatorio (RAM): acceso directo y tiempo de acceso constante e independiente de la posición de memoria. Acceso secuencial (SAM): tiempo de acceso dependiente de la posición de memoria. Acceso directo (DAM): acceso directo a un sector con tiempo de acceso dependiente de la posición, y acceso secuencial dentro del sector. Asociativas (CAM): acceso por contenido Soporte físico: Semiconductor. Magnéticas. Ópticas. Magneto-ópticas. Tipos de memorias. Las memorias se pueden clasificar atendiendo a diferentes criterios. Alterabilidad: RAM: lectura y escritura. ROM (Read 0nly Memory): Son memorias de sólo lectura. Volatilidad con la fuente de energía: Volátiles: necesitan la fuente de energía para mantener la información. No volátiles: mantienen la información sin aporte de energía. Duración de la información: Estáticas: el contenido permanece inalterable mientras están polarizadas. Dinámicas: el contenido sólo dura un corto período de tiempo, por lo que es necesario refrescarlo (reescribirlo) periódicamente. Proceso de lectura: Lectura destructiva: necesitan reescritura después de una lectura. Lectura no destructiva. Tipos de memorias. Las memorias se pueden clasificar atendiendo a diferentes criterios. Ubicación en el computador: Interna (CPU): registros, cache(L1), cache(L2), cache(L3), memoria principal. Externa (E/S): discos, cintas, etc. Parámetros de velocidad: Tiempo de acceso. Tiempo de ciclo. Ancho de banda(frecuencia de acceso). Unidades de transferencia: Palabras. Bloques. Tipos de memorias. Una PC cuenta con una memoria llamada MEMORIA CENTRAL (o PRINCIPAL) y unidades de almacenamiento (MEMORIA MASIVA, SECUNDARIA o AUXILIAR). • Las Unidades de almacenamiento mantienen los datos en forma permanente e inalterable. • La Memoria Principal difiere porque en ésta se mantienen los datos solo durante el tiempo necesario de uso. Tipos de memorias. Memorias volátiles. • Random Access Memory = Memoria de Acceso Aleatorio. Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder (acceso secuencial) a la información de la manera más rápida posible. • SRAM = Memoria RAM estática. • DRAM = Memoria RAM dinámica. Memorias volátiles. DRAM = Memoria RAM dinámica. • Son mas lentas que las memorias SRAM. • El costo por celda de memoria es mas bajo comparado con el costo de una celda SRAM. • Por la estructura de sus celdas, necesita refresco de datos. • Se pueden alcanzar grandes escalas de integración en los chips -> Capacidades grandes. DRAM = Memoria RAM dinámica. • Son mas lentas que las memorias SRAM. • El costo por celda de memoria es mas bajo comparado con el costo de una celda SRAM. • Por la estructura de sus celdas, necesita refresco de datos. • Se pueden alcanzar grandes escalas de integración en los chips -> Capacidades grandes. DRAM = Memoria RAM dinámica. Se necesita el refresco de datos porque las celdas están compuestas por un capacitor, que al no ser perfecto pierde su carga -> se pierden los datos. DRAM = Memoria RAM dinámica. DRAM 1T. Lectura. DRAM 1T. Escritura. DRAM 1T. Refresco. DRAM. Organización. DRAM = Memoria RAM dinámica. DRAM = Memoria RAM dinámica. DRAM = Memoria RAM dinámica. DRAM = Memoria RAM dinámica. DRAM = Memoria RAM dinámica. 2 CANALES: 1 CONTROLADOR POR CANAL. SRAM = Memoria RAM estática. • Utilizan el principio de biestabilidad que se consigue con dos puertas inversoras (NAND ó NOR) realimentadas. •Son mas rápidas que las memorias DRAM. • El costo por celda de memoria es mas alto comparado con el costo de una celda DRAM. • Por la estructura de sus celdas, no necesita refresco de datos. Memoria CACHE. Memoria CACHE. La memoria caché es una memoria pequeña y rápida que se interpone entre la CPU y la memoria principal para que el conjunto opere a mayor velocidad. Para ello es necesario mantener en la caché aquellas zonas de la memoria principal con mayor probabilidad de ser referenciadas. Esto es posible gracias a la propiedad de localidad de referencia de los programas. Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal. Memoria CACHE. Localidad. Los programas manifiestan una propiedad que se explota en el diseño del sistema de gestión de memoria de los computadores en general y de la memoria caché en particular, la localidad de referencias: los programas tienden a reutilizar los datos e instrucciones que utilizaron recientemente. Una regla empírica que se suele cumplir en la mayoría de los programas revela que gastan el 90% de su tiempo de ejecución sobre sólo el 10% de su código. Una consecuencia de la localidad de referencia es que se puede predecir con razonable precisión las instrucciones y datos que el programa utilizará en el futuro cercano a partir del conocimiento de los accesos a memoria realizados en el pasado reciente. La localidad de referencia se manifiesta en una doble dimensión: temporal y espacial. Memoria CACHE. Localidad. Localidad temporal: las palabras de memoria accedidas recientemente tienen una alta probabilidad de volver a ser accedidas en el futuro cercano. La localidad temporal de los programas viene motivada principalmente por la existencia de bucles. Localidad espacial: las palabras próximas en el espacio de memoria a las recientemente referenciadas tienen una alta probabilidad de ser también referenciadas en el futuro cercano. Es decir, que las palabras próximas en memoria tienden a ser referenciadas juntas en el tiempo. La localidad espacial viene motivada fundamentalmente por la linealidad de los programas (secuenciamiento lineal de las instrucciones) y el acceso a las estructuras de datos regulares. Memoria CACHE. Localidad. Memoria CACHE. Localidad. Memoria CACHE. Localidad. Memoria CACHE. Latencias. Memoria CACHE. Latencias. Memoria CACHE. Memoria CACHE. Memoria CACHE. Memoria CACHE. Jerarquía. Memoria CACHE. Memoria CACHE. Mapeo Directo. El mapeo directo asigna el bloque X de mem. Principal al bloque Y de mem. Cache. Por ejemplo, el bloque 0 de mem. Ppal. Es asignado al bloque 0 de mem. Cache, el bloque 1 de mem. Ppal. Al bloque 1 de la cache… El bloque 10 de mem. Ppal. Al bloque 0 de mem. cache… De este modo, los bloques 0, 10, 20, 30, etc. de mem. Ppal, compiten por el bloque 0 de la cache. Mapeo Directo. Al Bloque X (mp) MOD N corresponde Bloque Y (mc) Donde N = Nº de bloques de la cache Supongamos una cache de 10 bloques: Boque de MP Bloque de Cache BLK 0 BLK 1 BLK 2 … BLK 9 BLK 10 BLK 11 … MOD 10 MOD 10 MOD 10 0 1 2 MOD 10 MOD 10 MOD 10 9 0 1 BLK 20 … MOD 10 0 BKL 30 MOD 10 0 Ineficiencia de cache de mapeo directo. Imaginemos un programa que utiliza repetidamente el block 0, luego el block 10, luego el block 0, luego el 10, de memoria principal… Mapeo Directo. Mapeo Asociativo. Mapeo Asociativo. Mapeo Asociativo por Conjuntos. Memoria CACHE. A. Sustitución. Política de escritura. Coherencia de cachés Operación de escritura Fallo de caché en operación de escritura Coherencia de cachés. Múltiples dispositivos acceden a memoria principal … Coherencia de cachés. • Escritura inmediata (write through): – Todas las operaciones de escritura se hacen tanto en caché como en Mem. ppal. + No hay incoherencias - Mucho tráfico • Postescritura (escritura diferida, copy back o write back): – Actualizaciones solo en caché, hasta que el bloque deba ser removido (utiliza un bit ACTUALIZAR). + Rápida + Poco tráfico - Incoherencias, a menos que todos los accesos sean a través de la caché Coherencia de cachés: implementación. • Vigilancia del bus (con escritura inmediata): cada controlador de caché monitoriza el bus de direcciones para detectar operaciones de escritura a memoria. • Transparencia Hardware: por medio de hardware adicional, para asegurar que todas las actualizaciones a mem. ppal. se reflejan en todas las cachés. Si un procesador escribe en su caché, este cambio se escribe a mem. Ppal. • Memoria excluida de caché: solo una porción de la mem. ppal. se comparte entre los procesadores, y se diseña como NO transferible a caché. Fallo de caché en operación de escritura. Cuando el procesador intenta escribir en una dirección de memoria que no se encuentra en ningún bloque de la caché se produce un fallo de escritura 2 opciones Ubicar en escritura (write allocate) No ubicar en escritura (no write allocate) – Ubicar en escritura (write allocate) • Antes de realizar la escritura, se carga el bloque en la cache y luego se actúa como en un acierto de escritura. • Similar a un fallo de lectura. – No ubicar en escritura (no write allocate) • El bloque se modifica directamente en la memoria principal (nivel inferior) y no se carga en la cache. Evaluación del rendimiento: Tiempo de acceso medio Evaluación del rendimiento: Costo medio por bit. Cs = C1S1 + C2S2 S1 + S2 Donde: Cs = Costo medio por bit de la combinación de dos niveles de mem. C1 = Costo medio por bit de la mem. Caché M1. C2 = Costo medio por bit de la mem. Principal M2. S1 = tamaño de M1 (cache). S2 = tamaño de M2 (Mppal). Buscamos que Cs se aproxime a C2, entonces, dado que C1 >> C2 es necesario que S1 << S2. REGISTROS de la CPU. Los registros son unidades de memoria interna del micro de unos pocos bits (forman parte de micro) que alojan pequeños datos o instrucciones que están en uso en ese momento por el micro, o que lo van a estar en el próximo paso o ciclo de reloj. REGISTROS de la CPU 8086 -> REGISTROS INTERNOS Memorias no volátiles. ROM = Read Only Memory. • Sus celdas están compuestas por diodos. • Los datos guardados en ellas no se pierden cuando la memoria es apagada. • Existen varios tipos. ROM = Read Only Memory. Identifica a unidades de memoria en las que, una vez grabadas, no se pueden volver a modificar el contenido. Un caso típico en la PC es el de la BIOS. Si bien la idea original sigue siendo válida, con el avance de la tecnología se dispone de variantes, en este caso, memorias ROM que no son de “solo lectura” sino que permiten modificar los datos. Memoria VIRTUAL. El SO utiliza parte del propio disco duro como memoria virtual. En su instalación, el SO se reserva para sí parte del disco duro, para poder ampliar las necesidades del sistema y agilizar la resolución de algunas tareas. Jerarquía de MEMORIAS. Jerarquía de MEMORIAS. Jerarquía de MEMORIAS. Jerarquía de MEMORIAS. Jerarquía de MEMORIAS.