UNIDAD DE MEMORIA 1
Localización: Tres grandes grupos: Memoria interna del procesador: Pequeño conjunto de registros en los que CPU almacena temporalmente las instrucciones y datos. Memoria principal: Relativamente grande y rápida en la que se almacenan las instrucciones de los programas y sus datos. Memoria externa o secundaria: Dispositivos periféricos controlados por un controlador E/S. Suele ser mucho más grande que la principal y mucho más lenta que la misma. Capacidad: Se mide en palabras (1K=2 10, 1M=2 20,..) Unidad de transferencia: En memoria interna la unidad de transferencia es igual al número de líneas de entrada y salida al módulo de memoria. Suele coincidir con la longitud de palabra. Palabra: Unidad natural de organización de la memoria. Unidades direccionables: 2 n =N Unidad de transferencia: nº bits leídos/escritos en la memoria simultáneamente, no tiene por que se igual a una palabra, por ejemplo en elementos externos se transfieren bloques. 2
Método de acceso: Acceso aleatorio: tiempo de acceso independiente de la posición en que se encuentre el elemento accedido. La memoria principal siempre de acceso aleatorio (RAM) Acceso secuencial: tiempo de acceso depende de la posición en que está almacenada. Acceso directo: Primero un acceso aleatorio a la zona en la que se encuentra la información que deseamos acceder y luego acceso secuencial. Acceso asociativo: igual que el aleatorio pero no se accede por dirección, se pregunta si existe una posición de memoria que contiene una palabra determinada. Tipos físicos: semiconductor, magnéticas, ópticas, magneto-ópticas. 3
Características físicas: Alterabilidad: ROM, PROM, EPROM, RWM(RAM) Permanencia de la información: Velocidad: Lectura destructive. Volatilidad: memorias de semiconductor son volátiles. Almacenamiento estático/dinámico: estática si no varía en el tiempo. En caso contrario habrá que refrescarla. Tiempo de acceso (t A ): tiempo medio necesario para leer una cantidad de información (palabra, bits, ) Tiempo de ciclo de la memoria (t C ): Intervalo mínimo entre dos lecturas. Frecuencia de acceso: f A = 1/t C 4
Las tres características que caracterizan a un tipo de memoria: Capacidad, velocidad y coste. Existe un compromiso entre coste, capacidad y tiempo de acceso. A menor tiempo de acceso habrá mayor coste y a mayor capacidad menor coste y tiempo de acceso. Construimos una jerarquía de memorias con las mas grandes y lentas en la parte baja y las más rápidas en las superiores. 5
Los CIM (Circuitos integrados de memoria) tienen las siguientes características: Están organizados internamente como una matriz de Nxm celas (N palabras m bits cada una) A cada palabra se le asigna una dirección. Número de líneas del bus de direcciones tal que 2 n =N Bus de datos: m líneas. 6
Presentará dos estados (1 / 0) Se puede escribir para fijar su estado Se puede leer Para su construcción usamos un biestable RS En las memorias dinámicas para que los datos no se pierdan, la memoria deberá ser refrescada (volver a escribir el dato). 7
Organización más simple pero de coste elevado. No hay diferencia entre la palabra física y la palabra lógica (m bits) Es una organización muy rápida ya que el único retardo el del decodificador. Factores que limitan su uso: Complejidad del decodificador de direcciones (2 n puertas AND) Número de líneas de dirección y datos (n+m) 8
Los bits de una palabra están localizados en más de un circuito integrado. Caso mas extremo cuando cada bit en un circuito. Se usan 2 decodificadores de n/2 entradas y 2 n/2 salidas. Uno selecciona en el eje X y otro en el Y. Requiere menos puertas lógicas a pesar de que la celda básica de memoria es algo mas complicada. Solo se accede a un bit por cada módulo. Existe diferencia entre la palabra física (n bits) y la palabra lógica (1 bit) 9
Para ampliar el tamaño de las palabras en memoria basta con utilizar K módulos interconectados entre si a lo ancho. Para incrementar el número de palabras basta con interconectarlos entre si a lo alto 10
Ambas técnicas se pueden combinar fácilmente para construir bloques de memoria tan grandes como haga falta. 11
Conexión de la unidad de memoria al bus del sistema: Bus de dirección y bus de control: Son unidireccionales. De la CPU a la memoria. Bus de datos: más complejo, bidireccional. Dos casos según la entrada y salida compartan líneas del bus o no. Estructura y direccionamiento de la unidad de memoria: Se disponen los bloques sobre una placa de circuito impreso una detrás de otra. Se abaratan costes. Modularidad, posibilidad de ampliación insertando nuevas placas de memoria. Facilidad de mantenimiento y reparación. 12
Se desea construir un sistema de memoria con las siguientes características: Palabra de memoria de 16 bits. 512K palabras de espacio direccionable. 64K palabras de sólo lectura en las direcciones más bajas; el resto del espacio direccionable será de lectura/escritura. Para ello se dispone de los siguientes módulos en cantidad suficiente: RAM de 64K x 8 bits. RAM de 128K x 16 bits. ROM de 16K x 16 bits. Decodificadores varios. Cada uno de los módulos de memoria y los decodificadores cuentan con una entrada de selección SC, activa en alta (SC = 1), que permite habilitar su funcionamiento. Se pide lo siguiente: A) Diseñar el sistema de memoria requerido, indicando detalladamente la conexión de las líneas de datos, de dirección y de control. Justificar las decisiones de diseño adoptadas. B) Indicar en qué módulos de memoria se encuentra almacenada la palabra con la siguiente dirección en hexadecimal 186A0. 13
Para construir la memoria solicitada disponemos por tanto de los siguientes módulos: 14
El primer paso es pensar en la distribución de memoria necesaria. ROM 16K x 16 ROM 16K x 16 ROM 16K x 16 ROM 16K x 16 RAM 64K x 8 RAM 64K x 8 RAM 128K x 16 RAM 128K x 16 RAM 128K x 16 15
A continuación tenemos que pensar en que decodificadores necesitamos utilizar para seleccionar los distintos módulos: Decodificador 2 a 4: Nos permite seleccionar 1 de los tres módulos de 128K. La cuarta línea de selección activará el decodificador siguiente. Este decodificador hará uso de las línea de memoria A 18 y A 17. Decodificador 1 a 2: Este recibe la linea A 16 y seleccionará o bien el bloque de 64k o el decodificador superior. Decodificador 2 a 4: Recibe las líneas A 15 y A 15 y permite seleccionar uno de los cuatro módulos de ROM. 16
El siguiente diagrama muestra la estructura de conexiones necesaria. 17
Para responder a la segunda pregunta tendremos que convertir la dirección a binario y ver que decodificadores se activarán: 186A0 001 1000 0110 1010 0000 Puede verse que esta dirección habilita la salida 0 del decodificador inferior, con lo que se activa el decodificador intermedio. A su vez, la línea A 16 está a 1, por lo que se habilita la pareja de módulos RAM de 64K x8. En consecuencia, el dato está en estos módulos. Puede verse también que la dirección hexadecimal 186A0 es en decimal la dirección 100000, lo que se corresponde con el rango de direcciones almacenado en dicha pareja de módulos, que va desde 64K palabras a (128K palabras-1). 18
19
Descomponemos las 64K direcciones (2 16 ) en grupos de 8K, cada uno de los cuales está definido por uno de los posibles valores de A 15, A 14 y A 13. La siguiente tabla muestra la distribución de los módulos. 20
Para llegar a ver las líneas de dirección es interesante convertir las direcciones hexadecimales a binario y ver que líneas nos van a indicar un módulo u otro. 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 0 8191 0000 1FFF 0000 0000 0000 0000 0001 1111 1111 1111 8192 2000 0010 0000 0000 0000 16384 3FFF 0011 1111 1111 1111 16385 49151 49152 57344 57345 65535 4000 BFFF C000 DFFF E000 FFFF 0100 0000 0000 0000 1011 1111 1111 1111 1100 0000 0000 0000 1101 1111 1111 1111 1110 0000 0000 0000 1111 1111 1111 1111 21
Con esta información podemos deducir las funciones de selección correspondiente a cada módulo. Las señal de selección de cada módulo se activará en función de los valores en las tres primeras líneas de dirección. 22
Podemos implementar la selección de dos formas. La primera de ellas es utilizando un decodificador 3 a 8: 23
O podeos hacerlo por medio de puertas lógicas. 24
Las líneas de dirección de M 1 y M 2 se conectan directamente a las líneas A 12-0. Para M 3 se necesitan 15 líneas. 25
Para responder a la siguiente pregunta tendremos que estudiar los valores de A 15, A 14 y A 13 en cada caso para determinar que módulo se activa: 26