Memorias: Definiciones y características (1)

Anuncio
Memorias: Definiciones y características (1)
• Un memoria es un dispositivo físico capaz de almacenar información.
• Existen una gran variedad de parámetros que permiten caracterizar o
clasificar una memoria:
- Naturaleza física del almacenamiento:
* Semiconductor (Ej. RAM, ROM, FlashROM, StickMemory, ...)
* Magnético (Ej. Unidades de cinta o disco)
* Óptico (Ej. Unidades DVD, CDROM)
- Modo de Acceso a la Información:
* 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 condición de
acceder a bytes previos (Ej. RAM, ROM, DVD, Discos
magnéticos).
Memorias: Definiciones y características (2)
- Mantenimiento de la información:
* Volátiles: pierden la información almacenada transcurrido cierto
tiempo o si se desconecta la alimentación de la memoria. (Ej. DRAM,
RAM)
* No volátiles: la información almacenada perdura en el tiempo
independientemente de la alimentación del dispositivo y hasta que
ésta sea sustituida por una nueva. (Ej. NVRAM, FLASH, Magnéticas,
Ó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 magnéticas y ópticas.
Memorias: Jerarquías
CAPACIDAD CRECIENTE
DISCO MAGNÉTICO
DRAM
Caché
DISCO ÓPTICO
SRAM
ROM
REGISTROS
FLASH
UNIDADES DE CINTA
Microprocesador
NVRAM
Memoria principal
o primaria
COSTE CRECIENTE
OTROS
Memoria secundaria o masiva
Memorias: Memorias semiconductoras:Organización(1)
• La unidad mínima de almacenamiento es el bit y la estructura física que lo
soporta se denomina celda básica.
• La memoria organiza las celdas por filas y columnas (estructura matricial).
• Existen varias formas de acceder la celdas (o grupos de ellas): decodificación
por filas y decodificación por filas y columnas.
• Decodificación por filas:
CELDA BÁSICA
N
BUS DE DIRECCIONES
DECODIFICADOR
BUFFERS
M
BUS DE DATOS
Memorias: Memorias semiconductoras:Organización(2)
N
N/2
DECODIFICADOR
BUS DE DIRECCIONES[N]
• Decodificación por filas y columnas.:
M
M
M
N/2
MUX (si lectura)/DEMUX (si escritura)
CELDA BÁSICA
M
BUFFERS
M
BUS DE DATOS
Memorias: Memorias semiconductoras: ROM (1)
• Son memorias de sólo lectura.
• No pierden la información aunque se interrumpa la alimentación.
• Tipos: ROM, PROM (OTP ROM), EPROM, EEPROM (FLASH)
• Las memorias ROM se programan en fábrica 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 reprogramación después de someter al
chip a un proceso de borrado por radiación ultravioleta.
• Las EEPROM permiten su reprogramación eléctrica. Las FLASH
EEPROM son más rápidas por permitir borrado y escritura por
bloques aunque tienen el inconveniente del desgaste (10.00090.000 borrados).
Memorias: Memorias semiconductoras: ROM (2)
• Ejemplo: Memoria EPROM
• Señales de control: #OE (habilitador salida), #CE (habilitador chip)
Memorias: Memorias semiconductoras: ROM (3)
• Proceso de lectura:
- Establecer dirección
- Habilitar chip y salidas
Tiempo de acceso
Memorias: Memorias semiconductoras: RAM (1)
• Son memorias de lectura y escritura.
• Tipos: SRAM y DRAM.
• Características de la SRAM:
- Celda básica basada en un biestable (6 transistores)
- Rápidas (-> Caché)
- La información no se pierde mientras exista alimentación
Memorias: Memorias semiconductoras: RAM (2)
• Ejemplo de SRAM
• Señales de control (#CS, Habilitador de chip; #WE, Lectura/Escritura;
#OE, Habilitador de salida)
Establecer la dirección
Proceso de lectura
Poner #WE a 1 lógico
Habilitar salidas y chip
Memorias: Memorias semiconductoras: RAM (3)
• RAM DINÁMICA (DRAM)
- celda básica: 1 transistor + condensador
- Necesita refresco.
- Requiere lógica externa compleja.
- Mayor densidad que SRAM -> mayor capacidad
- Menor velocidad de acceso
Memorias: Memorias semiconductoras: RAM (4)
• Ejemplo de DRAM:
• Señales de control: #RAS, (Habilitador de fila), #CAS,
(Habilitador de columna), #CS, #WE y #OE.
Establecer la FILA (primera mitad de la dirección)
Validar FILA (#RAS)
Proceso de lectura
(ver secuencia de pasos
en el cronograma)
Establecer la COLUMNA (segunda mitad de la dirección)
Validar COLUMNA (#CAS)
Poner #WE a 1 lógico
Habilitar salidas y chip
Tiempo de pulso de la señal RAS
Tiempo de establecimiento de columna
Tiempo de mantenimiento de columna
TIEMPO DE LATENCIA
Memorias: Memorias semiconductoras: RAM (5)
• La reducción 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 (página). Dentro de una página sólo es
necesario identificar la columna.
- El tiempo de acceso a n datos de una página es Trac*n en DRAM y Trac+(n1)*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é, además, en ráfagas. (Ej. Caché L2 de un Pentium
busca bloques de 32 bytes).
• Las SDRAM (DRAM síncronas) incorporan una señal 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 módulos: SIMM , DIMM
Memorias: Mapas de memoria: Generalidades
• Todo microprocesador dispone de
AB
un bus de direcciones (AB), bus de
datos (DB) y bus de control (CB) para
gestionar el flujo de información
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
dirección concreta dentro de la
“ristra”.
CB
DB
MICROPROCESADOR
DIRECCIÓN
P-1
Dato (p-1)
P
Dato (p)
P+1
Dato (p+1)
MEMORIA PRINCIPAL
Memorias: Mapas de memoria: Organización
• El valor que el microprocesador sitúa en el AB en un momento
determinado se denomina dirección física (DF).
• Cada byte almacenado en la memoria se distingue de cualquier
otro porque ocupa o tiene asignado una dirección lógica (DL). El
microprocesador trabaja con direcciones lógicas.
• El conjunto de todas las posibles direcciones lógicas determina
el espacio de direccionamiento.
• El tamaño del espacio de direccionamiento y su organización
dependen del número de líneas de los buses AB y DB:
- Un bus AB con n líneas identifica 2n direcciones físicas
diferentes.
- Un DB con mx8 líneas (m=1, 2, 4, 8...) asigna m direcciones
lógicas a una dirección física.
- Espacio de direccionamiento = 2n x m
Memorias: Mapas de memoria: Organización:Ejs: (1)
• Ejemplo 1: Microprocesador con 16 líneas en bus de direcciones y 8
líneas en el bus de datos (n=16 y m=1).
- Existen 216 = 65536 direcciones físicas.
- Cada dirección física tiene asignada una lógica (m=1) y por cada
dirección lógica existe un byte.
- Espacio de direccionamiento es de 64Kbytes
Dirección física (16bits)
Dirección lógica (16bits)
110....11101
AB[15:0]
110....11101
AB
16
$0000
$0001
$0002
$0003
Byte 0
Byte 1
Byte 2
Byte 3
CB[..]
DB[7:0]
Microprocesador
216=64K
Direcciones
8
DB
Lógicas y físicas
$FFFE
$FFFF
Byte 65534
Byte 65535
Memoria principal
Memorias: Mapas de memoria: Organización:Ejs: (2)
• Ejemplo 2: Microprocesador con 15 líneas en bus de direcciones y 16
líneas en el bus de datos (n=15 y m=2).
- Existen 215 =32768 direcciones físicas.
- Cada dirección física tiene asignada dos lógicas (m=2) y por cada
dirección lógica existe un byte.
- Espacio de direccionamiento es de 64Kbytes (físicamente org. 32Kwords)
Dirección física (15bits)
Dirección lógica (16bits)
110....11101
$0000
110....1110 $0001
$0002
AB[15:1]
AB 15 $0003
CB[..]
Word 0
Word 1
Word 2
Word 3
16
DB
Microprocesador
Byte 1
Byte 3
Byte 5
Byte 7
BE[1,0]
2
DB[15:0]
Byte 0
Byte 2
Byte 4
Byte 6
$7FFE Byte 65532
$7FFF Byte 65534
Byte 65533
Byte 65535
Memoria principal
Word 32766
Word 32767
Memorias: Mapas de memoria: Organización:Ejs: (3)
• Ejemplo 1: Microprocesador con 14 líneas en bus de direcciones y 32
líneas en el bus de datos (n=14 y m=4).
-Existen 214 =16384 direcciones físicas.
-Cada dirección física tiene asignada cuatro lógicas (m=4) y por cada
dirección lógica existe un byte.
-Espacio de direccionamiento es de 64Kbytes (físicamente 16Klong words)
Dirección lógica (16bits)
110....11101
AB[15:2]
CB[..]
110....111
14
Dirección física (14bits)
$0000
Byte 0
Byte 1
Byte 2
Byte 3
LWord 0
$0001
Byte 4
Byte 5
Byte 6
Byte 7
LWord 0
$0002
Byte 8
Byte 9
Byte 10
Byte 11
LWord 0
$3FFE
Byte 65528
Byte 65529
Byte 65530
Byte 65531
LWord 16382
$3FFF
Byte 65532
Byte 65533
Byte 65534
Byte 65535
LWord 16383
BE[3:0]
4
DB[31:0]
Microprocesador
32
Memoria principal
Memorias: Mapas de memoria: Conexión lectura
• Para LEER, el microprocesador activa la señal R/#W que posee el BUS de
CONTROL. Esta señal llega hasta todos los chips de memoria.
• Si el tamaño del bus de datos es de 8 bits, sólo se podrá leer un byte por cada
acceso a memoria.
• Para el siguiente ejemplo: dirección física = dirección lógica.
Microprocesador
CB[..]
AB[15:0]
R/#W
1
$10
$FF
$0000
$0001
$01
$A0
$BC
$15
$32
$1200
$1201
$1202
$1203
$1204
$45
$66
$FFFE
$FFFF
$1202
$BC
DB[7:0]
Memoria principal
Memorias: Mapas de memoria: Conexión lectura (2)
• Si el tamaño 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 líneas que regulan qué parte del DB se usa para accesos a bytes.
Se controlan por el bit menos significativo de la dirección lógica y por el tamaño
del operando de la instrucción que realiza el acceso a memoria. Para la lectura de
un byte situado en una dirección impar, se activa BE1.
Dirección lógica (16bits)
LECTURA DE BYTE EN DIRECCIÓN IMPAR
Dirección física (15bits)
00...00 0111
AB[15:1]
CB[..]
BE0
BE1
R/#W
DB[15:0]
Microprocesador
$0000
00...0011 $0001
$0002
15 $0003
0
1
DB[7:0]
DB[15:8]
BE0=1
BE1=1
Byte 0
Byte 2
Byte 4
Byte 6
Byte 1
Byte 3
Byte 5
Byte 7
Word 0
Word 1
Word 2
Word 3
$7FFE Byte 65532 Byte 65533 Word 32766
$7FFF Byte 65534 Byte 65535 Word 32767
Memoria principal
Memorias: Mapas de memoria: Conexión lectura (3)
• En la lectura de un dato de tamaño byte que se encuentra en una dirección par se
activa BE0.
Dirección lógica (16bits)
LECTURA DE BYTE EN DIRECCIÓN PAR
Dirección física (15bits)
00...00 0110
AB[15:1]
CB[..]
BE0
BE1
R/#W
DB[15:0]
Microprocesador
$0000
00...0011 $0001
$0002
15 $0003
1
0
DB[7:0]
DB[15:8]
BE0=1
BE1=1
Byte 0
Byte 2
Byte 4
Byte 6
Byte 1
Byte 3
Byte 5
Byte 7
Word 0
Word 1
Word 2
Word 3
$7FFE Byte 65532 Byte 65533 Word 32766
$7FFF Byte 65534 Byte 65535 Word 32767
Memoria principal
Memorias: Mapas de memoria: Conexión lectura (4)
• En la lectura de un dato de tamaño word, se activan las líneas BE0 y BE1.
• En este caso se requiere que la dirección lógica sea siempre par.
Dirección lógica (16bits)
LECTURA DE PALABRA (siempre direcciones pares)
Dirección física (15bits)
00...00 0110
AB[15:1]
CB[..]
BE0
BE1
R/#W
DB[15:0]
Microprocesador
$0000
00...0011 $0001
$0002
15 $0003
1
1
DB[7:0]
DB[15:8]
BE0=1
BE1=1
Byte 0
Byte 2
Byte 4
Byte 6
Byte 1
Byte 3
Byte 5
Byte 7
Word 0
Word 1
Word 2
Word 3
$7FFE Byte 65532 Byte 65533 Word 32766
$7FFF Byte 65534 Byte 65535 Word 32767
Memoria principal
Memorias: Mapas de memoria: Conexión escritura
• Para ESCRIBIR, el microprocesador desactiva la señal R/#W que posee el BUS
de CONTROL.
• Si el tamaño del bus de datos es de 8 bits, sólo se podrá escribir un byte por
cada acceso a memoria.
Microprocesador
CB[..]
AB[15:0]
R/#W
0
$10
$FF
$0000
$0001
$01
$A0
$BC
$15
$32
$1200
$1201
$1202
$1203
$1204
$45
$66
$FFFE
$FFFF
$1202
$BC
DB[7:0]
Memoria principal
Memorias: Mapas de memoria: Conexión escritura (2)
• Si el tamaño del bus de datos es de 16 bits, se podrá escribir un byte o un word por
cada acceso a memoria.
Dirección lógica (16bits)
00...00 0101
[15:1]
CB[..]
$AB
BE0
BE1
R/#W
DB[15:0]
Microprocesador
Dirección física (15bits)
$0000
00...0010 $0001
$0002
15 $0003
0
1
DB[7:0]
DB[15:8]
BE0=1
BE1=1
Byte 0
Byte 2
Byte 4
Byte 6
Byte 1
Byte 3
Byte 5
Byte 7
Word 0
Word 1
Word 2
Word 3
$7FFE Byte 65532 Byte 65533 Word 32766
$7FFF Byte 65534 Byte 65535 Word 32767
Memoria principal
Memorias: Mapas de memoria (1)
• El espacio de direccionamiento lógico identifica la
DL1
DL2
máxima capacidad de memoria con la que puede trabajar
un microprocesador (CM).
CHIP1 RAM
• La capacidad física (CF) o real de la memoria viene
dada por la suma de las capacidades de todos los chips CAPACIDAD FÍSICA
de memoria que la forman. (CF<CM).
CHIP2 RAM
DL3
CHIP3 ROM
DL4
• Cada chip de memoria tiene asignado un rango de
direcciones lógicas. Dicho rango es igual a la capacidad
del chip de memoria expresada en bytes. Cualquier
dirección lógica (DL) que esté incluida en dicho rango
provocará el acceso a un chip del conjunto, mientras que
los restantes chips están inactivos. Ejemplos:
-Direcciones Lógicas DL1 y DL2 acceden al chip1 de RAM, la DL3 y
DL6 a los chips 2 y 3 de RAM respectivamente. La dirección DL5 no
accede a ningún chip de memoria y la DL4 a un chip de ROM.
• Los mapas de memorias son representaciones gráficas
que representan los rangos de direcciones lógicas que
tienen asignados cada uno de los chips que constituyen
la memoria física.
CHIP4 RAM
ESPACIO
DL5
DE MEMORIA
LIBRE
CHIP5 RAM
DL6
CHIP6 ROM
ESPACIO DE DIRECCIONAMIENTO
Memorias: Mapas de memoria (2)
• Los microprocesadores necesitan de un sistema de decodificación que
permita habilitar las memorias según la dirección física que aquel sitúe
en el bus de direcciones.
CS1
$0000
CHIP1 ROM
$02A
AB[11:0]
Dirección lógica
12
$0FFF
ROM
4Kx8
$1000
$102A
CHIP2 RAM
SISTEMA
DE
$102A
AB[15:0]
$2FFF
DECODIFICACIÓN
$1
CS2
AB[15:12]
$102A
DB[7:0]
ESPACIO
DE MEMORIA
AB[12:0]
uP
64K
13
LIBRE
RAM
8Kx8
Memorias: Mapas de memoria (3)
• Los chips de memoria reciben los
bits menos significativos del AB, en
cambio, el sistema de decodificación
utiliza los más significativos, en
concreto, los bits del AB que no se
llevan hasta los buses de dirección
de los chips de memoria.
• Para determinar el sistema de
decodificación, se puede proceder
dividiendo el espacio de direccionamiento en diferentes regiones según
las líneas MSB del AB.
$0000
$0000
$0000
A13=0
A14=0
$1FFF
$2000
A13=1
A15=0
$3FFF
$3FFF
$4000
$4000
A14=1
A12=0
A12=1
A13=1
$7FFF
$7FFF
$7FFF
$8000
$8000
$8000
A13=0
A14=0
$9FFF
$A000
A13=1
A15=1
$BFFF
$BFFF
$C000
$C000
A13=0
A14=1
$DFFF
A13=1
ROM 4K
RAM 8K
$FFFF
$FFFF
$FFFF
A12=0
A12=1
$E000
4K
A12=0
$6000
CS2 = A15’ A14’ A13’ A12 + A15’ A14’ A13 A12’
8K
A12=1
A12=1
$5FFF
CS1 = A15’ A14’ A13’ A12’
16K
A12=0
A13=0
• Para la ROM de 4K y RAM de 8K,
del ejemplo anterior se tiene:
32K
$0000
$0FFF
$1000
$1FFF
$2000
$2FFF
Memorias: Mapas de memoria (4)
• El sistema de decodificación estará formado por los subsistemas
combinacionales y puertas lógicas necesarias que permitan la activación
de los CSx de los chips de memoria. Además, para las ROMs, se deberá
prohibir el acceso a escritura de las mismas.
CS1 = A15’ A14’ A13’ A12’ (sólo si el acceso es de lectura,
ya que es una ROM)
CS
CS2 = A15’ A14’ A13’ A12 + A15’ A14’ A13 A12’
AB[11:0]
ROM
4Kx8
R/#W
0
CB[..]
AB[15:12]
DEC
1
4:16
.
2
CS1
&
>1
CS2
.
15
uP
RAM
AB[15:0]
DB[7:0]
8Kx8
AB[12:0]
R/#W
Memorias: Mapas de memoria: Ejemplo 1 (1)
• 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 más bajas
estén ocupadas por ROM y las más
altas por RAM. Diseñar el sistema de
decodificación.
- El espacio de direccionamiento se
subdivide, a partir de los bits MSB del AB, en
regiones más pequeñas hasta que se
alcancen las capacidades de los chips de
memoria.
$0000
$0000
A14=0
R0M 16K
A15=0
$3FFF
$4000
A14=1
$7FFF
$7FFF
$8000
$8000
A13=0
A14=0
-Se determinan las expresiones de los CSx
de los dispositivos en función de los bits del
AB que delimitan la región del espacio de
direccionamiento donde se sitúa el
contenido del chip de memoria:
A13=1
A15=1
$BFFF
$C000
CSrom = A15’ A14’
$C000
A14=1
CSram1 = A15 A14 A13 ; CSram2 = A15 A14 A13’
$DFFF
A13=0
RAM2 8K
$E000
A13=1
RAM1 8K
32K
16K
8K
RAM 8K
R0M 16K
$FFFF
$FFFF
$FFFF
Memorias: Mapas de memoria: Ejemplo 1 (2)
- Se implementa el sistema de decodificación
usando los bits MSB del AB para activar los CSx
CS
- El bus de direcciones de los chips se conectan a
los bits LSB del AB del microprocesador
AB[13:0]
ROM
16Kx8
- El bus de datos de los chips se conectan al del
microprocesador.
R/#W
CSram2
CB[..]
R/#W
&
0
AB[15:13]
DEC
1
3:8
.
.
6
RAM 2
>1
8Kx8
CSrom
AB[12:0]
R/#W
CSram1
7
uP
AB[15:0]
RAM1
AB[12:0]
DB[7:0]
8Kx8
Memorias: Mapas de memoria: Ejemplo 2 (1)
• 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 más bajas
estén ocupadas por ROM y, a
continuación, se sitúa la memoria
RAM. Diseñar el sistema de
decodificación suponiendo que los CS
de los chips son activos en bajo.
$00000
- El espacio de direccionamiento es de 1M.
$7FFFF
$00000
$00000
A18=0
A19=0
$3FFFF
$7FFFF
Espacio de
A19=1
CSram1 = A19+A18+A17’+A16
CSram2 = A19+A18+A17’+A16’
A18=1
ROM 128K
RAM1 64K
8K
RAM2
A16=1
1M byte
A18=0
CSrom = A19+A18+A17
128K
A16=0
RAM1 64K
A14=1
-Las ecuaciones de los CS son:
256K
$20000
A17=1 $2FFFF
$30000
$3FFFF
$3FFFF
$80000
512K
$1FFFF
$20000
R0M 128K
A17=0
A13=0
RAM 64K
$FFFFF
direccionamiento
Memorias: Mapas de memoria: Ejemplo 2 (2)
- Se implementa el sistema de decodificación
usando los bits MSB del AB para activar los CSx
CS
- El bus de direcciones de los chips se conectan a
los bits LSB del AB del microprocesador
AB[16:0]
ROM
128Kx8
- El bus de datos de los chips se conectan al del
microprocesador.
R/#W
CSram1
CB[..]
R/#W
>1
0
AB[19:16]
DEC
1
4:16
3
&
AB[15:0]
RAM1
64Kx8
CSrom
2
..
15
uP
AB[19:0]
DB[7:0]
R/#W
CSram2
RAM2
AB[15:0]
64Kx8
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 más bajas estén ocupadas
por ROM y las más altas por RAM. Diseñar el sistema de decodificación.
- El espacio de direccionamiento tiene 64Kbytes pero organizado, físicamente, en 32Kwords.
- El microprocesador puede acceder a un byte individual o a dos bytes consecutivos simultáneamente. Esto
exige decodificación por dirección par o impar.
- El uP dispone de las líneas BE1 y BE0, que identifican si el acceso es a dirección par o impar para bytes o, a
ambas, para word.
- Desde un punto de vista lógico, los chips de memoria se deben agrupar por parejas. La pareja ocupa una
región, dentro del espacio de direccionamiento, igual al doble de la capacidad de cada uno (ACCESO ROM).
&
ACCESO ROM (CS1)
AB[15:1]
&
CSrom1
DECODIFICACIÓN
AB[13:1]
uP
CB
DB[15:0]
BE0
BE1
CSrom2
ROM
ROM
8Kx8
8Kx8
AB[13:1]
DB[7:0]
DB[15:8]
Memorias: Mapas de memoria: Ejemplo 3 (2)
• Se representa el espacio de
direccionamiento
$0000
$0000
A14=0
• Los dos chips de ROM de 8K se
consideran como uno de 16K que se sitúa
en la parte inferior del espacio de
direccionamiento.
CS1
ROM 16K
A15=0
$4000
• Los 4 chips de RAM de 4K se agrupan de
dos en dos para formar dos chips de 8K
que ocupan las direcciones lógicas más
altas.
• Cada una de las regiones ocupadas se
etiqueta con CSx (x=1,2,3).
• Se obtienen las expresiones lógicas de
dichas etiquetas:
$3FFF
A14=1
64K
$7FFF
$7FFF
$8000
$8000
A14=0
CS1 = A15’ A14’
A15=1
CS2 = A15 A14 A13’
$BFFF
$C000
$C000
A13=0
CS3 = A15 A14 A13
A14=1
$DFFF
CS2
RAM 8K
$E000
A13=1
CS3
$FFFF
$FFFF
$FFFF
RAM 8K
Memorias: Mapas de memoria: Ejemplo 3 (3)
BE0
CS3
• Las líneas MSB del AB se conectan al
DEC 3:8 para generar CS1, CS2 y CS3.
R/#W
&
AB[12:1]
CS3
CS
RAM
• Atendiendo a BE0, BE1, y CSx, se
obtienen los CS de los chips de memoria
BE1
AB[12:1]
BE0
DB[15:8]
R/#W
&
AB[12:1]
CS
RAM
BE1
CS2
AB[15:13]
AB[15:1]
3:8
1
AB[12:1]
.
6
7
uP
CB
DB[15:0]
R/#W
BE0
BE1
CS2
CS3
CS
RAM
4Kx8
DB[7:0]
CS1
>1
R/#W
&
4Kx8
DEC
RAM
DB[7:0]
CS2
0
CS
4Kx8
4Kx8
• 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].
R/#W
&
R/#W
BE0
CS1
R/#W
BE1
CS1
&
AB[13:1]
DB[15:8]
CS
ROM
8Kx8
DB[7:0]
&
AB[13:1]
CS
ROM
8Kx8
DB[15:8]
Descargar