Sistemas de memoria • Conceptos básicos • • • • Jerarquía de memoria Memoria caché } Transparencias de clase en campusvirtual.udc.es Memoria principal Memoria virtual Estructura de computadores 2 Memoria principal Antiguamente: Matriz de pequeños anillos ferromagnéticos Hoy en día: Tecnología de semiconductores Estructura de computadores 2 Memorias semiconductoras de acceso aleatorio • RAM (Random Access Memory): Lectura y escritura de datos rápida • RAM estática: almacenamiento de los valores binarios mediante biestables • RAM dinámica: almacenamiento a través de celdas que conservan la caga como condensadores: • • • Requieren circuitería de refresco • Más lentas que las estáticas Celda más simple => más densidad y más barata Utilizada para tamaños grandes => coste fijo de circuitería se compensa con el menor coste de las celdas Estructura de computadores 2 Memorias semiconductoras de acceso aleatorio • • ROM (Read Only Memory): • Aplicaciones: Microprogramación, subrutinas de biblioteca para funciones de uso frecuente, programas del sistemas, tablas de funciones • Inconveniente principal: Costes fijos de fabricación, relativamente grande PROM (ROM Programable): Alternativa más barata para aquellos casos en que el número de chips necesario es bajo. • Proceso de escritura: eléctricamente y en un proceso posterior al de fabricación (suministrador o cliente) • Mayor flexibilidad y comodidad Estructura de computadores 2 Memorias semiconductoras de acceso aleatorio • Memorias de sobre todo lectura: Útiles para aplicaciones en las que las lecturas son más frecuentes que las escrituras pero se requiere almacenamiento no volátil • EPROM (Erasable programmable read-only memor): Más caras que una PROM pero podemos actualizar su contenido múltiples veces. Hay que borrar todo su contenido anterior. • (EEPROM (Electrically EPROM): • • Puedes escribirse (un byte) en cualquier momento sin borrar su contenido anterior • • • No volátil y actualizable in situ Más caras y menos densas que las EPROM, Escritura más lenta que la lectura Memoria flash (Alta velocidad de programación) • • Mayor densidad que las EEPROM, del orden de las EPROM Borrado mucho más rápido que las EPROM Estructura de computadores 2 Resumen: tecnologías Tipo de memoria Clase Borrado Mecanismos de escritura Volatilidad Memoria de acceso aleatorio (RAM) Memoria de lectura/ escritura Eléctricamente por bytes Eléctricamente Volátil Memoria de solo lectura (ROM) ROM programable (PROM) Memorias de solo lectura Mediante máscaras No posible PROM borrable (EPROM) Luz ultravioleta, chip completo Memoria FLASH Eléctricamente por bloques PROM borrable eléctricamente (EEPROM) Memorias de sobre todo lectura No-volátil Eléctricamente Eléctricamente por bytes Estructura de computadores 2 Organización • La celda de memoria es el elemento básico de la memoria semiconductora • Normalmente tiene 3 terminales: • Terminal de selección: selecciona la celda para la operacion de lectura o escritura • • Terminal de control: Tipo de operación Tercer terminal: Introducción de la señal que fija el estado a 0 o 1 (en una escritura) o por el que se lee el estado (en una lectura) Control Control Selección Celda Entrada de datos Escritura Selección Celda Detección Lectura Estructura de computadores 2 Lógica del chip de memoria • Un chip contiene una matriz de celdas de memoria • Tamaños típicos encapsulados en un chip: 4M-bits, 16M-bits • Aspecto fundamental del diseño: número de bits de datos que pueden ser leidos/escritos a la vez • Dos vertientes: • Disposición física de las celdas coincide con la disposición lógica (la que percibe el procesador) de las palabras.La matriz se organiza en W palabras de B bits cada una. • Estructura de un-bit-por-chip: Los datos se leen o escriben por bits Estructura de computadores 2 Lógica del chip de memoria • • Se escriben o leen 4 bits a la vez Cuatro líneas (Dʼs) para E/S a/desde un buffer de datos Estructura de computadores 2 Lógica del chip de memoria • Para leer/escribir una palabra de datos en el bus, deben conectarse varias DRAMs como esta al controlador de memoria Estructura de computadores 2 Lógica del chip de memoria • Matriz de memoria estructura en 4 submatrices cuadradas de 2048x2048 elementos Estructura de computadores 2 Lógica del chip de memoria • Matriz de memoria estructura en 4 submatrices cuadradas de 2048x2048 elementos Estructura de computadores 2 Lógica del chip de memoria • Líneas de direcciones (Aʼs): suministran la dirección de la palabra a seleccionar. • Número de líneas requeridas -> log2 W (22 líneas 211=2048) Estructura de computadores 2 Lógica del chip de memoria • Multiplexado de líneas de dirección (A0-A10) => Ahorro de número de pines. Estructura de computadores 2 Lógica del chip de memoria • Primero se proporciona la dirección de la fila y después la dirección de la columna de la matriz Estructura de computadores 2 Lógica del chip de memoria • La selección se realizan mediante 2 señales: • RAS -> Row Address Selection • CAS -> Column Address Selection Estructura de computadores 2 Lógica del chip de memoria • Circuitería de refresco: se inhabilita el chip mientras se refrescan todas las celdas • • El contador de refresco recorre todos los valores de fila La salida del contador se conecta al decodificador de filas y se activa la línea RAS Estructura de computadores 2 Encapsulado de los chips: EPROM DE 8 BITS • Estructura de una palabra-por-chip • • • • • 1M palabras -> 20 pines (210=1M), A0-A19 8 líneas de lectura, D0-D7 Línea de alimentación, Vcc. Terminal de tierra, Vss Pin de habilitación de chip CE (chip enable): ante la posibilidad de varios chips de memoria todos conectados al mismo bus de direcciones, CE indica si la dirección es válida o no para el chip Tensión de programación (operaciones de Escritura), Vpp Estructura de computadores 2 Encapsulado de los chips: DRAM de 16 Mbit • • Terminales de datos de E/S • OE (output enable) -> operación de lectura WE (write enable) -> operación de escritura Estructura de computadores 2 Organización en módulos: memoria de 256 Kbytes • Si un chip de RAM contiene 1 bit por palabra -> se necesitan al menos un número de chips igual al número de bits por palabra • Funciona cuando el tamaño de memoria es igual al número de bits por chip (512*512=256K*8=256KB) • En caso contrario necesitamos un array de chips Estructura de computadores 2 Organización en módulos: memoria de 1Mbyte • Cuatro columnas (grupos) de chips donde cada columna tiene una diposición como la de la figura anterior • 1M palabras -> 20 líneas de direcciones • • 18 bits (menos significativos) -> conectados a los 32 módulos 2 bits (más significativos) -> selección de habilitación de chip a una de las 4 columnas de módulos Estructura de computadores 2 Memorias entrelazadas • Idea: dividir la memoria en módulos independientes • Objetivo: acceso simultáneo a varias palabras en diferentes módulos • • Denominación: ténica de entrelazamiento • Situación ideal: El ancho de banda de acceso a memoria se multiplica por el número de módulos Condición de eficiencia: las referencias a memoria se distribuyen equitativamente entre los módulos. La clave es la distribución Estructura de computadores 2 Esquemas de entrelazamiento • • Entrelazamiento de orden superior Entrelazamiento de orden inferior Memoria total = N = 2n palabras Número de módulos = M = 2m Estructura de computadores 2 Entr. de orden superior (consecutivo) • • Dirección física: n bits • Los m bits más significativos identifican el módulo y el resto un “desplazamiento” dentro del módulo 0 Al i-ésimo módulo le corresponden las direcciones consecutivas i2n-m hasta (i+1)2n-m-1 1 2 3 4 5 6 7 Estructura de computadores 2 Entr. de orden inferior (cíclico) • Al i-ésimo módulo le corresponden las direcciones de la forma k*M+i con k=0,1,2,...2n-m-1 (Espaciamiento M entre ellas • Los m bits menos significativos identifican el módulo y el resto un “desplazamiento” dentro del módulo 0 12 3 4 5 6 7 0 1 2 3 45 6 7 Estructura de computadores 2 Entrelazamiento: Conflicto de memoria • Con cualquier de ambos esquemas se pueden obtener M palabras en paralelo por cada acceso a memoria • Conflicto de memoria: Varias direcciones requieren simultáneamente el acceso a mismo módulo • Los conflictos de memoria son mayores en orden superior debido a la secuencialidad Estructura de computadores 2 Entrelazamiento: Conflicto de memoria • En sistemas multiprocesador es a veces mejor el entrelazamiento de orden superior cuando las tareas con disjuntas o interaccionan poco en tre sí (lo cual no siempre es cierto) • Se suele utilizar el entrelazamiento de orden inferior • Ventajas del superior: • • Expandibilidad Fiabilidad: un fallo se restringe a un área localizada del espacio de direcciones Estructura de computadores 2 Diseño de un esquema de orden inferior • Soluciones: • • Con latches a la salida Con latches a la entrada Estructura de computadores 2 Orden inferior. Latches a la salida • En cada acceso son leidas M palabras consecutivas: k-M+i i=0,1,…,M-1 • • Se almacenan en latches y son transferidas a un MUX • • • • En el mejor caso el tiempo de acceso se reduce en M Las palabras son leidas en el siguiente ciclo. Mecanismo de anticipación Es ideal para accesos a memoria secuenciales Baja su eficiencia en programas no secuenciales (saltos) Para solucionar este problema se pueden diseñar sistemas con latches a la entrada Estructura de computadores 2 Orden inferior. Latches a la salida Estructura de computadores 2 Orden inferior. Latches a la entrada • • • Cada módulo puede usar una dirección relativa particular Necesita un controlador de memoria para procesar las peticiones una a una, secuencialmente Si una petición encuentra el latch ocupado por otra previa, es retardado Estructura de computadores 2 Orden inferior. Latches a la entrada Estructura de computadores 2