Sistemas de memoria Conceptos básicos Jerarquía de memoria Memoria caché }Transparencias de clase en campusvirtual.udc.es Memoria principal Memoria virtual
Memoria principal Antiguamente: Matriz de pequeños anillos ferromagnéticos Hoy en día: Tecnología de semiconductores
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 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 Más lentas que las estáticas
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
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
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 No posible Mediante máscaras PROM borrable (EPROM) Memoria FLASH PROM borrable eléctricamente (EEPROM) Memorias de sobre todo lectura Luz ultravioleta, chip completo Eléctricamente por bloques Eléctricamente por bytes Eléctricamente No-volátil
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 Selección Celda Detección Escritura Lectura
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
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
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
Lógica del chip de memoria Matriz de memoria estructura en 4 submatrices cuadradas de 2048x2048 elementos
Lógica del chip de memoria Matriz de memoria estructura en 4 submatrices cuadradas de 2048x2048 elementos
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 2 11 =2048)
Lógica del chip de memoria Multiplexado de líneas de dirección (A0-A10) => Ahorro de número de pines.
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
Lógica del chip de memoria La selección se realizan mediante 2 señales: RAS -> Row Address Selection CAS -> Column Address Selection
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
Encapsulado de los chips: EPROM DE 8 BITS Estructura de una palabra-por-chip 1M palabras -> 20 pines (2 10 =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
Encapsulado de los chips: DRAM de 16 Mbit Terminales de datos de E/S WE (write enable) -> operación de escritura OE (output enable) -> operación de lectura
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
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
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 Condición de eficiencia: las referencias a memoria se distribuyen equitativamente entre los módulos. La clave es la distribución Situación ideal: El ancho de banda de acceso a memoria se multiplica por el número de módulos
Esquemas de entrelazamiento Entrelazamiento de orden superior Entrelazamiento de orden inferior Memoria total = N = 2 n palabras Número de módulos = M = 2 m
Entr. de orden superior (consecutivo) Dirección física: n bits Al i-ésimo módulo le c o r r e s p o n d e n l a s direcciones consecutivas i2 n-m hasta (i+1)2 n-m -1 L o s m b i t s m á s significativos identifican el módulo y el resto un desplazamiento dentro del módulo 0 1 2 3 4 5 6 7
Entr. de orden inferior (cíclico) A l i - é s i m o m ó d u l o l e corresponden las direcciones de la forma k*m+i con k=0,1,2,...2 n-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 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
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
Entrelazamiento: Conflicto de memoria En sistemas multiprocesador es a veces mejor el entrelazamiento de orden superior c u a n d o l a s t a r e a s c o n 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
Diseño de un esquema de orden inferior Soluciones: Con latches a la salida Con latches a la entrada
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 Las palabras son leidas en el siguiente ciclo. Mecanismo de anticipación En el mejor caso el tiempo de acceso se reduce en M 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
Orden inferior. Latches a la salida
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
Orden inferior. Latches a la entrada