Un memoria es un dispositivo fsico capaz de almacenar informacin.
Existen una gran variedad de parmetros que permiten caracterizar o clasificar una memoria: - Naturaleza fsica del almacenamiento: * Semiconductor (Ej. RAM, ROM, FlashROM, StickMemory, ...) * Magntico (Ej. Unidades de cinta o disco) * ptico (Ej. Unidades DVD, CDROM) - Modo de Acceso a la Informacin: * Secuencial: Para acceder a un byte se requieren leer o escribir en las posiciones previas. (Ej. Unidad de cinta, FIFO) * Aleatorio: Se puede acceder a cualquier byte sin condicin de acceder a bytes previos (Ej. RAM, ROM, DVD, Discos magnticos). Memorias: Definiciones y caractersticas (2) - Mantenimiento de la informacin: * Voltiles: pierden la informacin almacenada transcurrido cierto tiempo o si se desconecta la alimentacin de la memoria. (Ej. DRAM, RAM) * No voltiles: la informacin almacenada perdura en el tiempo independientemente de la alimentacin del dispositivo y hasta que sta sea sustituida por una nueva. (Ej. NVRAM, FLASH, Magnticas, pticas. - Tiempo de acceso: Mide el intervalo de tiempo que transcurre desde que se solicita un dato a la memoria y sta lo devuelve. * Bajo. Ej. SRAM (cach), DRAM, ROM (en general las de tipo semiconductor) * Alto. Ej. Unidades magnticas y pticas. Memorias: Jerarquas Cach Memoria principal o primaria Memoria secundaria o masiva DISCO MAGNTICO DISCO PTICO UNIDADES DE CINTA OTROS DRAM ROM FLASH NVRAM SRAM REGISTROS CAPACIDAD CRECIENTE COSTE CRECIENTE Microprocesador Memorias: Memorias semiconductoras:Organizacin(1) La unidad mnima de almacenamiento es el bit y la estructura fsica que lo soporta se denomina celda bsica. La memoria organiza las celdas por filas y columnas (estructura matricial). Existen varias formas de acceder la celdas (o grupos de ellas): decodificacin por filas y decodificacin por filas y columnas. Decodificacin por filas: CELDA BSICA N BUS DE DIRECCIONES DECODIFICADOR BUFFERS BUS DE DATOS M Memorias: Memorias semiconductoras:Organizacin(2) Decodificacin por filas y columnas.: D E C O D I F I C A D O R B U S
D E
D I R E C C I O N E S [ N ] N/2 N BUFFERS MUX (si lectura)/DEMUX (si escritura) N/2 CELDA BSICA BUS DE DATOS M M M M M Memorias: Memorias semiconductoras: ROM (1) Son memorias de slo lectura. No pierden la informacin aunque se interrumpa la alimentacin. Tipos: ROM, PROM (OTP ROM), EPROM, EEPROM (FLASH) Las memorias ROM se programan en fbrica y no es posible modificar su contenido Las memorias PROM contienen una matriz de fusibles que es programable por el usuario una sola vez. Las EPROM permiten su reprogramacin despus de someter al chip a un proceso de borrado por radiacin ultravioleta. Las EEPROM permiten su reprogramacin elctrica. Las FLASH EEPROM son ms rpidas por permitir borrado y escritura por bloques aunque tienen el inconveniente del desgaste (10.000- 90.000 borrados). Memorias: Memorias semiconductoras: ROM (2) Ejemplo: Memoria EPROM Seales de control: #OE (habilitador salida), #CE (habilitador chip) Memorias: Memorias semiconductoras: ROM (3) Proceso de lectura: - Establecer direccin - Habilitar chip y salidas Tiempo de acceso Memorias: Memorias semiconductoras: RAM (1) Son memorias de lectura y escritura. Tipos: SRAM y DRAM. Caractersticas de la SRAM: - Celda bsica basada en un biestable (6 transistores) - Rpidas (-> Cach) - La informacin no se pierde mientras exista alimentacin Memorias: Memorias semiconductoras: RAM (2) Ejemplo de SRAM Seales de control (#CS, Habilitador de chip; #WE, Lectura/Escritura; #OE, Habilitador de salida) Establecer la direccin Poner #WE a 1 lgico Habilitar salidas y chip Proceso de lectura Memorias: Memorias semiconductoras: RAM (3) RAM DINMICA (DRAM) - celda bsica: 1 transistor + condensador - Necesita refresco. - Requiere lgica externa compleja. - Mayor densidad que SRAM -> mayor capacidad - Menor velocidad de acceso Memorias: Memorias semiconductoras: RAM (4) Establecer la FILA (primera mitad de la direccin) Validar FILA (#RAS) Establecer la COLUMNA (segunda mitad de la direccin) Validar COLUMNA (#CAS) Poner #WE a 1 lgico Habilitar salidas y chip Proceso de lectura (ver secuencia de pasos en el cronograma) TIEMPO DE LATENCIA Tiempo de pulso de la seal RAS Tiempo de mantenimiento de columna Tiempo de establecimiento de columna Ejemplo de DRAM: Seales de control: #RAS, (Habilitador de fila), #CAS, (Habilitador de columna), #CS, #WE y #OE. Memorias: Memorias semiconductoras: RAM (5) La reduccin del tiempo de latencia es imprescindible para mejorar la velocidad de las DRAM. - FPM (Fast Page Mode)/EDO (Extended Data Output) DRAM. Agiliza los accesos a los bits de una misma fila (pgina). Dentro de una pgina slo es necesario identificar la columna. - El tiempo de acceso a n datos de una pgina es Trac*n en DRAM y Trac+(n- 1)*Tpc en FPM/EDO RAM (Tpc = tiempo de ciclo en modo pagina). Tpc es menor en EDO DRAM que en FPM DRAM. - Ejemplo: Si n=8, Trac=60ns y Tpc=25ns -> Tacceso DRAM = 480ns, Tacceso FPM/EDO DRAM = 235ns Memorias: Memorias semiconductoras: RAM (6) Los microprocesadores tienden a buscar bytes en posiciones consecutivas de la memoria y, si disponen de cach, adems, en rfagas. (Ej. Cach L2 de un Pentium busca bloques de 32 bytes). Las SDRAM (DRAM sncronas) incorporan una seal de reloj que establece la base de tiempos para el modo paginado y un contador interno que genera las direcciones de columna para cada ciclo de reloj. El tiempo de acceso para n palabras (de m bits) es Trac+(n-1)Tclk. Ejemplo: Una SDRAM PC-100Mhz, tiene Tclk = 10ns, si Trac=60ns y n=8, entonces Tacceso SDRAM = 130ns. Tclk Trac Memorias: Memorias semiconductoras: RAM (7) Las DDR (Double Data Rate) RAM permiten duplicar la velocidad al utilizar, tanto los flancos de subida como los de bajada del reloj para transferir un bit. Tacceso de n palabras (de m bits) en DDR RAM = Trac + (n-1)*Tclk/2. (95ns si se usan los mismos datos de la SDRAM anterior) Futuro: QDR (Quad Data Rate) RAM (cuatro transferencias por ciclo de reloj) Las memorias para un ordenador personal vienen en mdulos: SIMM , DIMM Memorias: Mapas de memoria: Generalidades MICROPROCESADOR Todo microprocesador dispone de un bus de direcciones (AB), bus de datos (DB) y bus de control (CB) para gestionar el flujo de informacin entre la memoria y el propio procesador Desde el punto de vista del microprocesador, la memoria est organizada en una ristra de bytes en la que cada uno ocupa una direccin concreta dentro de la ristra. AB CB DB MEMORIA PRINCIPAL Dato (p) Dato (p-1) Dato (p+1) DIRECCIN P-1 P P+1 Memorias: Mapas de memoria: Organizacin El valor que el microprocesador sita en el AB en un momento determinado se denomina direccin fsica (DF). Cada byte almacenado en la memoria se distingue de cualquier otro porque ocupa o tiene asignado una direccin lgica (DL). El microprocesador trabaja con direcciones lgicas. El conjunto de todas las posibles direcciones lgicas determina el espacio de direccionamiento. El tamao del espacio de direccionamiento y su organizacin dependen del nmero de lneas de los buses AB y DB: - Un bus AB con n lneas identifica 2 n direcciones fsicas diferentes. - Un DB con mx8 lneas (m=1, 2, 4, 8...) asigna m direcciones lgicas a una direccin fsica. - Espacio de direccionamiento = 2 n x m Memorias: Mapas de memoria: Organizacin:Ejs: (1) Ejemplo 1: Microprocesador con 16 lneas en bus de direcciones y 8 lneas en el bus de datos (n=16 y m=1). - Existen 2 16 = 65536 direcciones fsicas. - Cada direccin fsica tiene asignada una lgica (m=1) y por cada direccin lgica existe un byte. - Espacio de direccionamiento es de 64Kbytes Direccin fsica (16bits) Byte 0 Memoria principal Microprocesador AB[15:0] DB[7:0] 110....11101 Byte 2 Byte 3 Byte 65534 Byte 65535 16 $0000 $0001 $0002 $0003 $FFFF $FFFE 2 16 =64K Direcciones Lgicas y fsicas Byte 1 110....11101 CB[..] Direccin lgica (16bits) AB 8 DB Memorias: Mapas de memoria: Organizacin:Ejs: (2) Ejemplo 2: Microprocesador con 15 lneas en bus de direcciones y 16 lneas en el bus de datos (n=15 y m=2). - Existen 2 15 =32768 direcciones fsicas. - Cada direccin fsica tiene asignada dos lgicas (m=2) y por cada direccin lgica existe un byte. - Espacio de direccionamiento es de 64Kbytes (fsicamente org. 32Kwords) Direccin fsica (15bits) Byte 0 Microprocesador AB[15:1] DB[15:0] 110....11101 Byte 4 Byte 6 Byte 65532 Byte 65534 16 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 110....1110 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE[1,0] CB[..] 2 Direccin lgica (16bits) AB 15 DB Memoria principal Memorias: Mapas de memoria: Organizacin:Ejs: (3) Ejemplo 1: Microprocesador con 14 lneas en bus de direcciones y 32 lneas en el bus de datos (n=14 y m=4). -Existen 2 14 =16384 direcciones fsicas. -Cada direccin fsica tiene asignada cuatro lgicas (m=4) y por cada direccin lgica existe un byte. -Espacio de direccionamiento es de 64Kbytes (fsicamente 16Klong words) Direccin fsica (14bits) Byte 0 AB[15:2] DB[31:0] 110....11101 14 $0000 $0001 $0002 $3FFF $3FFE 110....111 LWord 0 BE[3:0] 4 Byte 1 Byte 2 Byte 3 Byte 4 LWord 0 Byte 5 Byte 6 Byte 7 Byte 8 LWord 0 Byte 9 Byte 10 Byte 11 Byte 65528 LWord 16382 Byte 65529 Byte 65530 Byte 65531 Byte 65532 LWord 16383 Byte 65533 Byte 65534 Byte 65535 CB[..] Direccin lgica (16bits) 32 Microprocesador Memoria principal Memorias: Mapas de memoria: Conexin lectura Para LEER, el microprocesador activa la seal R/#W que posee el BUS de CONTROL. Esta seal llega hasta todos los chips de memoria. Si el tamao del bus de datos es de 8 bits, slo se podr leer un byte por cada acceso a memoria. Para el siguiente ejemplo: direccin fsica = direccin lgica. Microprocesador Memoria principal $01 AB[15:0] DB[7:0] $A0 $BC $15 $32 $10 $FF $45 $66 $0000 $0001 $1200 $1201 $1202 $1203 $1204 $FFFE $FFFF $BC CB[..] R/#W 1 $1202 Memorias: Mapas de memoria: Conexin lectura (2) Si el tamao del bus de datos es de 16 bits, se podr leer un byte o un word por cada acceso a memoria. El CB tiene dos lneas que regulan qu parte del DB se usa para accesos a bytes. Se controlan por el bit menos significativo de la direccin lgica y por el tamao del operando de la instruccin que realiza el acceso a memoria. Para la lectura de un byte situado en una direccin impar, se activa BE1. LECTURA DE BYTE EN DIRECCIN IMPAR Byte 0 DB[15:8] AB[15:1] DB[15:0] 00...00 0111 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0=1 BE1=1 DB[7:0] R/#W Byte 0 DB[15:8] AB[15:1] DB[15:0] 00...00 0111 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0 BE0=1 BE1=1 DB[7:0] Byte 0 DB[15:8] AB[15:1] DB[15:0] 00...00 0111 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE1 CB[..] BE0=1 BE1=1 DB[7:0] 1 0 Direccin lgica (16bits) Direccin fsica (15bits) Direccin fsica (15bits) Direccin fsica (15bits) Microprocesador Memoria principal Memoria principal Microprocesador Memoria principal Microprocesador Memorias: Mapas de memoria: Conexin lectura (3) En la lectura de un dato de tamao byte que se encuentra en una direccin par se activa BE0. LECTURA DE BYTE EN DIRECCIN PAR Byte 0 DB[15:8] AB[15:1] DB[15:0] 00...00 0110 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0=1 BE1=1 DB[7:0] R/#W Byte 0 DB[15:8] AB[15:1] DB[15:0] Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0 BE0=1 BE1=1 DB[7:0] Byte 0 DB[15:8] AB[15:1] DB[15:0] Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE1 CB[..] BE0=1 BE1=1 DB[7:0] 0 1 Direccin lgica (16bits) Direccin fsica (15bits) Direccin fsica (15bits) Direccin fsica (15bits) Microprocesador Memoria principal Memoria principal Microprocesador Memoria principal Microprocesador Memorias: Mapas de memoria: Conexin lectura (4) En la lectura de un dato de tamao word, se activan las lneas BE0 y BE1. En este caso se requiere que la direccin lgica sea siempre par. LECTURA DE PALABRA (siempre direcciones pares) Byte 0 DB[15:8] AB[15:1] DB[15:0] 00...00 0110 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0=1 BE1=1 DB[7:0] R/#W Byte 0 DB[15:8] AB[15:1] DB[15:0] Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0 BE0=1 BE1=1 DB[7:0] Byte 0 DB[15:8] AB[15:1] DB[15:0] Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0011 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE1 CB[..] BE0=1 BE1=1 DB[7:0] 1 1 Direccin lgica (16bits) Direccin fsica (15bits) Direccin fsica (15bits) Direccin fsica (15bits) Microprocesador Memoria principal Memoria principal Microprocesador Memoria principal Microprocesador Memorias: Mapas de memoria: Conexin escritura Para ESCRIBIR, el microprocesador desactiva la seal R/#W que posee el BUS de CONTROL. Si el tamao del bus de datos es de 8 bits, slo se podr escribir un byte por cada acceso a memoria. Microprocesador Memoria principal $01 AB[15:0] DB[7:0] $A0 $BC $15 $32 $10 $FF $45 $66 $0000 $0001 $1200 $1201 $1202 $1203 $1204 $FFFE $FFFF $BC CB[..] R/#W 0 $1202 Memorias: Mapas de memoria: Conexin escritura (2) Si el tamao del bus de datos es de 16 bits, se podr escribir un byte o un word por cada acceso a memoria. Direccin fsica (15bits) Byte 0 DB[15:8] [15:1] DB[15:0] 00...00 0101 Byte 4 Byte 6 Byte 65532 Byte 65534 15 $0000 $0001 $0002 $0003 $7FFF $7FFE Byte 2 00...0010 Byte 1 Byte 5 Byte 7 Byte 65533 Byte 65535 Byte 3 Word 0 Word 1 Word 2 Word 3 Word 32766 Word 32767 BE0=1 BE1=1 DB[7:0] R/#W BE0 BE1 CB[..] 1 0 $AB Direccin lgica (16bits) Microprocesador Memoria principal Memorias: Mapas de memoria (1) CHIP1 RAM CHIP2 RAM CHIP6 ROM CHIP3 ROM CHIP4 RAM CHIP5 RAM ESPACIO DE MEMORIA LIBRE El espacio de direccionamiento lgico identifica la mxima capacidad de memoria con la que puede trabajar un microprocesador (CM). La capacidad fsica (CF) o real de la memoria viene dada por la suma de las capacidades de todos los chips de memoria que la forman. (CF<CM). Cada chip de memoria tiene asignado un rango de direcciones lgicas. Dicho rango es igual a la capacidad del chip de memoria expresada en bytes. Cualquier direccin lgica (DL) que est incluida en dicho rango provocar el acceso a un chip del conjunto, mientras que los restantes chips estn inactivos. Ejemplos: -Direcciones Lgicas DL1 y DL2 acceden al chip1 de RAM, la DL3 y DL6 a los chips 2 y 3 de RAM respectivamente. La direccin DL5 no accede a ningn chip de memoria y la DL4 a un chip de ROM. Los mapas de memorias son representaciones grficas que representan los rangos de direcciones lgicas que tienen asignados cada uno de los chips que constituyen la memoria fsica. CAPACIDAD FSICA DL1 DL2 DL3 DL4 DL5 DL6 ESPACIO DE DIRECCIONAMIENTO Memorias: Mapas de memoria (2) Los microprocesadores necesitan de un sistema de decodificacin que permita habilitar las memorias segn la direccin fsica que aquel site en el bus de direcciones. ROM 4Kx8 RAM 8Kx8 AB[15:12] SISTEMA DE DECODIFICACIN $1 $02A CHIP1 ROM CHIP2 RAM ESPACIO DE MEMORIA LIBRE CS1 $0000 uP AB[15:0] DB[7:0] $102A 64K 12 13 CS2 $0FFF AB[11:0] $1000 Direccin lgica $102A $2FFF AB[12:0] $102A Memorias: Mapas de memoria (3) A15=0 A15=1 A14=0 $0000 $7FFF A14=1 $3FFF $4000 A14=0 $8000 $FFFF A14=1 $BFFF $C000 A13=0 A13=1 $0000 $1FFF $2000 $3FFF A13=0 A13=1 $4000 $5FFF $6000 $7FFF A13=0 A13=1 $8000 $9FFF $A000 $BFFF A13=0 A13=1 $C000 $DFFF $E000 $FFFF A13=0 A13=0 A13=0 A13=0 A13=0 A13=0 A13=0 A12=0 $0FFF $0000 A12=1 A12=0 $1000 $1FFF $2000 $2FFF A12=1 A12=0 A12=1 A12=0 A12=1 $0000 Los chips de memoria reciben los bits menos significativos del AB, en cambio, el sistema de decodificacin utiliza los ms significativos, en concreto, los bits del AB que no se llevan hasta los buses de direccin de los chips de memoria. Para determinar el sistema de decodificacin, se puede proceder dividiendo el espacio de direcciona- miento en diferentes regiones segn las lneas MSB del AB. Para la ROM de 4K y RAM de 8K, del ejemplo anterior se tiene: $7FFF $8000 CS1 = A15 A14 A13 A12 CS2 = A15 A14 A13 A12 + A15 A14 A13 A12 $FFFF 32K 16K ROM 4K RAM 8K 8K 4K Memorias: Mapas de memoria (4) El sistema de decodificacin estar formado por los subsistemas combinacionales y puertas lgicas necesarias que permitan la activacin de los CSx de los chips de memoria. Adems, para las ROMs, se deber prohibir el acceso a escritura de las mismas. uP AB[15:0] DB[7:0] CB[..] ROM 4Kx8 CS RAM 8Kx8 CS2 DEC 4:16 0 1 2 . . 15 & CS1 CS1 = A15 A14 A13 A12 (slo si el acceso es de lectura, ya que es una ROM) CS2 = A15 A14 A13 A12 + A15 A14 A13 A12 AB[11:0] AB[12:0] >1 R/#W AB[15:12] R/#W Memorias: Mapas de memoria: Ejemplo 1 (1) A15=0 $0000 $7FFF A15=1 $8000 $FFFF A14=0 $0000 $7FFF A14=1 $3FFF $4000 A14=0 $8000 $FFFF A14=1 $BFFF $C000 A13=0 A13=1 A13=0 A13=1 $C000 $DFFF $E000 $FFFF A13=0 A13=0 A13=0 A13=0 R0M 16K RAM1 8K RAM2 8K Se dispone de un microprocesador con 16 bits en su AB y 8 en su DB y de 2 chips de 8Kx8 de RAM y uno de 16Kx8 de ROM. Se desea que las posiciones de memoria ms bajas estn ocupadas por ROM y las ms altas por RAM. Disear el sistema de decodificacin. - El espacio de direccionamiento se subdivide, a partir de los bits MSB del AB, en regiones ms pequeas hasta que se alcancen las capacidades de los chips de memoria. -Se determinan las expresiones de los CSx de los dispositivos en funcin de los bits del AB que delimitan la regin del espacio de direccionamiento donde se sita el contenido del chip de memoria: CSrom = A15 A14 CSram1 = A15 A14 A13 ; CSram2 = A15 A14 A13 32K 16K 8K RAM 8K R0M 16K Memorias: Mapas de memoria: Ejemplo 1 (2) uP AB[15:0] DB[7:0] CB[..] ROM 16Kx8 CS CSrom RAM1 8Kx8 DEC 3:8 0 1 . . 6 7 AB[12:0] & - Se implementa el sistema de decodificacin usando los bits MSB del AB para activar los CSx - El bus de direcciones de los chips se conectan a los bits LSB del AB del microprocesador - El bus de datos de los chips se conectan al del microprocesador. AB[13:0] RAM 2 8Kx8 AB[12:0] R/#W CSram2 AB[15:13] R/#W R/#W CSram1 >1 Memorias: Mapas de memoria: Ejemplo 2 (1) A19=0 $00000 $7FFFF A19=1 $80000 $FFFFF A18=0 $00000 $7FFFF A14=1 $3FFFF $00000 A18=0 A18=1 A13=0 A17=1 A13=0 A17=0 R0M 128K RAM1 8K RAM1 64K $1FFFF $20000 $3FFFF RAM2 64K $20000 $2FFFF $30000 $3FFFF A16=0 A16=1 1M byte Espacio de direccionamiento Se dispone de un microprocesador con 20 bits en su AB y 8 en su DB y de 2 chips de 64kx8 de RAM y uno de 128kx8 de ROM. Se desea que las posiciones de memoria ms bajas estn ocupadas por ROM y, a continuacin, se sita la memoria RAM. Disear el sistema de decodificacin suponiendo que los CS de los chips son activos en bajo. - El espacio de direccionamiento es de 1M. -Las ecuaciones de los CS son: CSrom = A19+A18+A17 CSram1 = A19+A18+A17+A16 CSram2 = A19+A18+A17+A16 512K 256K 128K ROM 128K RAM 64K Memorias: Mapas de memoria: Ejemplo 2 (2) uP AB[19:0] DB[7:0] CB[..] ROM 128Kx8 CS CSrom RAM2 64Kx8 DEC 4:16 0 1 2 3 .. 15 AB[15:0] >1 - Se implementa el sistema de decodificacin usando los bits MSB del AB para activar los CSx - El bus de direcciones de los chips se conectan a los bits LSB del AB del microprocesador - El bus de datos de los chips se conectan al del microprocesador. AB[16:0] RAM1 64Kx8 CSram1 R/#W AB[19:16] R/#W AB[15:0] R/#W CSram2 & Memorias: Mapas de memoria: Ejemplo 3 (1) Se dispone de un microprocesador con 15 bits en su AB y 16 en su DB y de 4 chips de 4kx8 de RAM y dos de 8kx8 de ROM. Se desea que las posiciones de memoria ms bajas estn ocupadas por ROM y las ms altas por RAM. Disear el sistema de decodificacin. - El espacio de direccionamiento tiene 64Kbytes pero organizado, fsicamente, en 32Kwords. - El microprocesador puede acceder a un byte individual o a dos bytes consecutivos simultneamente. Esto exige decodificacin por direccin par o impar. - El uP dispone de las lneas BE1 y BE0, que identifican si el acceso es a direccin par o impar para bytes o, a ambas, para word. - Desde un punto de vista lgico, los chips de memoria se deben agrupar por parejas. La pareja ocupa una regin, dentro del espacio de direccionamiento, igual al doble de la capacidad de cada uno (ACCESO ROM). & uP AB[15:1] DB[15:0] CB DECODIFICACIN BE0 BE1 ROM 8Kx8 CSrom1 ROM 8Kx8 CSrom2 DB[7:0] DB[15:8] AB[13:1] AB[13:1] & ACCESO ROM (CS1) Memorias: Mapas de memoria: Ejemplo 3 (2) A15=0 A15=1 A14=0 $0000 $7FFF A14=1 $3FFF $4000 A14=0 $8000 $FFFF A14=1 $BFFF $C000 A13=0 A13=1 $C000 $DFFF $E000 $FFFF A13=0 A13=0 ROM 16K RAM 8K RAM 8K Se representa el espacio de direccionamiento Los dos chips de ROM de 8K se consideran como uno de 16K que se sita en la parte inferior del espacio de direccionamiento. Los 4 chips de RAM de 4K se agrupan de dos en dos para formar dos chips de 8K que ocupan las direcciones lgicas ms altas. Cada una de las regiones ocupadas se etiqueta con CSx (x=1,2,3). Se obtienen las expresiones lgicas de dichas etiquetas: CS1 = A15 A14 CS2 = A15 A14 A13 CS3 = A15 A14 A13 $0000 CS1 64K $7FFF $8000 CS2 CS3 $FFFF Memorias: Mapas de memoria: Ejemplo 3 (3) uP AB[15:1] DB[15:0] CB BE0 BE1 R/#W ROM 8Kx8 AB[13:1] CS ROM 8Kx8 CS DB[7:0] DB[15:8] AB[13:1] & & RAM 4Kx8 CS AB[12:1] & R/#W BE0 RAM 4Kx8 AB[12:1] & CS R/#W RAM 4Kx8 & CS R/#W DB[7:0] DB[15:8] AB[12:1] RAM 4Kx8 & CS R/#W DB[7:0] DB[15:8] AB[12:1] BE1 CS3 CS3 Las lneas MSB del AB se conectan al DEC 3:8 para generar CS1, CS2 y CS3. Atendiendo a BE0, BE1, y CSx, se obtienen los CS de los chips de memoria El bus de datos de los chips que se habilitan con BE0 se conecta a DB[7:0] y los que se habilitan con BE1 al DB[15:8]. BE0 BE1 CS2 CS2 BE0 CS1 R/#W BE1 CS1 R/#W DEC 3:8 0 1 . 6 7 >1 CS1 AB[15:13] CS2 CS3