37
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).

Etc2 0304 memorias

Embed Size (px)

Citation preview

Page 1: Etc2 0304 memorias

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).

Page 2: Etc2 0304 memorias

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.

Page 3: Etc2 0304 memorias

Memorias: Jerarquías

Caché

Memoria principal

o primaria

Memoria secundaria o masiva

DISCO MAGNÉTICO

DISCO ÓPTICO

UNIDADES DE CINTA

OTROS

DRAM

ROM

FLASH

NVRAM

SRAM

REGISTROS

CAPACIDAD CRECIENTE

COSTE CRECIENTE

Microprocesador

Page 4: Etc2 0304 memorias

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

BUS DE DATOSM

Page 5: Etc2 0304 memorias

Memorias: Memorias semiconductoras:Organización(2)

• Decodificación por filas y columnas.:

DE

CO

DIF

ICA

DO

R

BU

S D

E D

IRE

CC

ION

ES

[N]

N/2N

BUFFERS

MUX (si lectura)/DEMUX (si escritura)N/2

CELDA BÁSICA

BUS DE DATOSM

MMM

M

Page 6: Etc2 0304 memorias

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.000-90.000 borrados).

Page 7: Etc2 0304 memorias

Memorias: Memorias semiconductoras: ROM (2)

• Ejemplo: Memoria EPROM

• Señales de control: #OE (habilitador salida), #CE (habilitador chip)

Page 8: Etc2 0304 memorias

Memorias: Memorias semiconductoras: ROM (3)

• Proceso de lectura:

- Establecer dirección

- Habilitar chip y salidas

Tiempo de acceso

Page 9: Etc2 0304 memorias

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

Page 10: Etc2 0304 memorias

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

Poner #WE a 1 lógico

Habilitar salidas y chip

Proceso de lectura

Page 11: Etc2 0304 memorias

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

Page 12: Etc2 0304 memorias

Memorias: Memorias semiconductoras: RAM (4)

Establecer la FILA (primera mitad de la dirección)

Validar FILA (#RAS)

Establecer la COLUMNA (segunda mitad de la dirección)

Validar COLUMNA (#CAS)

Poner #WE a 1 lógico

Habilitar salidas y chip

Proceso de lectura

(ver secuencia de pasos

en el cronograma)

TIEMPO DE LATENCIA

Tiempo de pulso de la señal RAS Tiempo de mantenimiento de columnaTiempo de establecimiento de columna

• Ejemplo de DRAM:

• Señales de control: #RAS, (Habilitador de fila), #CAS, (Habilitador de columna), #CS, #WE y #OE.

Page 13: Etc2 0304 memorias

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+(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, TaccesoFPM/EDO DRAM = 235ns

Page 14: Etc2 0304 memorias

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

Page 15: Etc2 0304 memorias

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

Page 16: Etc2 0304 memorias

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 información entre la memoria y el propio procesador

• Desde el punto de vista del microprocesador, la memoria está organizada en una “ristra” de bytesen la que cada uno ocupa una dirección concreta dentro de la “ristra”.

AB

CB

DB

MEMORIA PRINCIPAL

Dato (p)

Dato (p-1)

Dato (p+1)

DIRECCIÓN

P-1

P

P+1

Page 17: Etc2 0304 memorias

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

Page 18: Etc2 0304 memorias

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)

Byte 0

Memoria principalMicroprocesador

AB[15:0]

DB[7:0]

110....11101

Byte 2Byte 3

Byte 65534Byte 65535

16

$0000$0001$0002$0003

$FFFF$FFFE

216=64K

Direcciones

Lógicas y físicas

Byte 1110....11101

CB[..]

Dirección lógica (16bits)

AB

8

DB

Page 19: Etc2 0304 memorias

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)

Byte 0

Microprocesador

AB[15:1]

DB[15:0]

110....11101

Byte 4Byte 6

Byte 65532Byte 65534

16

$0000$0001$0002$0003

$7FFF$7FFE

Byte 2110....1110Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE[1,0]CB[..]

2

Dirección lógica (16bits)

AB 15

DB

Memoria principal

Page 20: Etc2 0304 memorias

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 física (14bits)

Byte 0

AB[15:2]

DB[31:0]

110....11101

14

$0000

$0001

$0002

$3FFF

$3FFE

110....111LWord 0

BE[3:0]

4

Byte 1 Byte 2 Byte 3

Byte 4 LWord 0Byte 5 Byte 6 Byte 7

Byte 8 LWord 0Byte 9 Byte 10 Byte 11

Byte 65528 LWord 16382Byte 65529 Byte 65530 Byte 65531

Byte 65532 LWord 16383Byte 65533 Byte 65534 Byte 65535

CB[..]

Dirección lógica (16bits)

32

Microprocesador Memoria principal

Page 21: Etc2 0304 memorias

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 Memoria principal

$01AB[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

Page 22: Etc2 0304 memorias

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.

LECTURA DE BYTE EN DIRECCIÓN IMPAR

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

00...00 0111

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 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 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0

BE0=1 BE1=1

DB[7:0]

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

00...00 0111

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE1CB[..]

BE0=1 BE1=1

DB[7:0]

10

Dirección lógica (16bits)Dirección física (15bits)Dirección física (15bits)Dirección física (15bits)

Microprocesador Memoria principalMemoria principalMicroprocesador Memoria principalMicroprocesador

Page 23: Etc2 0304 memorias

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.

LECTURA DE BYTE EN DIRECCIÓN PAR

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

00...00 0110

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0=1 BE1=1

DB[7:0]

R/#W

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0

BE0=1 BE1=1

DB[7:0]

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE1CB[..]

BE0=1 BE1=1

DB[7:0]

01

Dirección lógica (16bits)Dirección física (15bits)Dirección física (15bits)Dirección física (15bits)

Microprocesador Memoria principalMemoria principalMicroprocesador Memoria principalMicroprocesador

Page 24: Etc2 0304 memorias

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.

LECTURA DE PALABRA (siempre direcciones pares)

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

00...00 0110

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0=1 BE1=1

DB[7:0]

R/#W

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0

BE0=1 BE1=1

DB[7:0]

Byte 0

DB[15:8]

AB[15:1]

DB[15:0]

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0011Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE1CB[..]

BE0=1 BE1=1

DB[7:0]

11

Dirección lógica (16bits)Dirección física (15bits)Dirección física (15bits)Dirección física (15bits)

Microprocesador Memoria principalMemoria principalMicroprocesador Memoria principalMicroprocesador

Page 25: Etc2 0304 memorias

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 Memoria principal

$01AB[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

Page 26: Etc2 0304 memorias

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 física (15bits)

Byte 0

DB[15:8]

[15:1]

DB[15:0]

00...00 0101

Byte 4Byte 6

Byte 65532Byte 65534

15

$0000$0001$0002$0003

$7FFF$7FFE

Byte 200...0010Byte 1

Byte 5Byte 7

Byte 65533Byte 65535

Byte 3Word 0Word 1Word 2Word 3

Word 32766Word 32767

BE0=1 BE1=1

DB[7:0]

R/#W

BE0BE1

CB[..]10

$AB

Dirección lógica (16bits)

Microprocesador Memoria principal

Page 27: Etc2 0304 memorias

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 lógico identifica la máxima capacidad de memoria con la que puede trabajar un microprocesador (CM).

• La capacidad física (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 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.

CAPACIDAD FÍSICA

DL1DL2

DL3

DL4

DL5

DL6

ESPACIO DE DIRECCIONAMIENTO

Page 28: Etc2 0304 memorias

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.

ROM

4Kx8

RAM

8Kx8

AB[15:12]

SISTEMA

DE

DECODIFICACIÓN

$1

$02ACHIP1 ROM

CHIP2 RAM

ESPACIO

DE MEMORIA

LIBRE

CS1 $0000

uP

AB[15:0]

DB[7:0]

$102A64K

12

13

CS2

$0FFFAB[11:0]$1000

Dirección lógica $102A

$2FFF

AB[12:0]

$102A

Page 29: Etc2 0304 memorias

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=0A13=0

A13=0A13=0

A13=0A13=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 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 direcciona-miento en diferentes regiones según las líneas 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’

$FFFF32K 16K ROM 4K RAM 8K8K 4K

Page 30: Etc2 0304 memorias

Memorias: Mapas de memoria (4)

• El sistema de decodificación estará formado por los subsistemascombinacionales 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.

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’ (sólo 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

Page 31: Etc2 0304 memorias

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=0A13=0

A13=0A13=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 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.

-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:CSrom = A15’ A14’

CSram1 = A15 A14 A13 ; CSram2 = A15 A14 A13’

32K 16K 8K RAM 8K R0M 16K

Page 32: Etc2 0304 memorias

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 decodificación 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/#WCSram2

AB[15:13]

R/#W

R/#WCSram1

>1

Page 33: Etc2 0304 memorias

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=0A17=0R0M 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 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.- 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

Page 34: Etc2 0304 memorias

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 decodificación 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/#WCSram2

&

Page 35: Etc2 0304 memorias

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).

&

uP

AB[15:1]

DB[15:0]

CB

DECODIFICACIÓN

BE0BE1

ROM

8Kx8

CSrom1

ROM

8Kx8

CSrom2

DB[7:0] DB[15:8]

AB[13:1] AB[13:1]

&ACCESO ROM (CS1)

Page 36: Etc2 0304 memorias

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=0A13=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 sitúa 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 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:

CS1 = A15’ A14’

CS2 = A15 A14 A13’

CS3 = A15 A14 A13

$0000

CS1

64K$7FFF

$8000

CS2

CS3

$FFFF

Page 37: Etc2 0304 memorias

Memorias: Mapas de memoria: Ejemplo 3 (3)

uP

AB[15:1]

DB[15:0]

CB BE0BE1

R/#WROM

8Kx8

AB[13:1]CS

ROM

8Kx8

CS

DB[7:0] DB[15:8]

AB[13:1]

& &

RAM

4Kx8

CSAB[12:1]

&R/#WBE0

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 líneas 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

CS2CS2

BE0CS1

R/#WBE1CS1

R/#WDEC

3:8

0

1

.

6

7

>1

CS1

AB[15:13]

CS2CS3