Está en la página 1de 36

Departamento de Electrónica

Electrónica Digital

Mapas de memoria
Bioingeniería
Facultad de Ingeniería - UNER

31/05/2013 Electrónica DigitalElectrónica Digital 1


Direccionamiento de las memorias

31/05/2013 Electrónica DigitalElectrónica Digital 2


Espacio de direcciones
Es la capacidad de direccionamiento de la CPU y está definido por el
tamaño del bus de direcciones.

Bus de direcciones
(AB Address Bus)

Memoria
CPU

Bus de control

Bus de datos (DB Data Bus)

Ejemplo: AB de 16 líneas (A15,...,A0)  H0000 a HFFFF


 010 a 6553510 = 64K palabras

31/05/2013 Electrónica DigitalElectrónica Digital 3


16 Bus de direcciones

Memoria
CPU (64K) x 8

Bus de control
8

Bus de datos

31/05/2013 Electrónica DigitalElectrónica Digital 4


16 Bus de direcciones

Memoria Memoria
CPU (64K) x4 (64K) x4

Bus de control 4 4
8

Bus de datos

31/05/2013 Electrónica DigitalElectrónica Digital 5


16 Bus de direcciones
?
15 15
Memoria Memoria
CPU (32K) x8 (32K) x8

Bus de control 8
8 8

Bus de datos

31/05/2013 Electrónica DigitalElectrónica Digital 6


Bus de direcciones

A15

15

15 15
CS\ Memoria CS\ Memoria
CPU (32K) x8 (32K) x8

Bus de control 8
8 8

Bus de datos

31/05/2013 Electrónica DigitalElectrónica Digital 7


0 0000 0000 0000 0000 0000
.... ....

CI #1
MEM 32k

.... ....
32767 7FFF 0111 1111 1111 1111
32768 8000 1000 0000 0000 0000
.... ....

CI #2
Referencias MEM 32K
H03FF = 1K
H07FF = 2K
H0FFF= 4K .... ....
H1FFF = 8K 65535 FFFF 1111 1111 1111 1111
H3FFF = 16K
H7FFF= 32K
31/05/2013 Electrónica DigitalElectrónica Digital 8
16 Bus de direcciones

Memoria
CPU (64K)

Bus de control
8

Bus de datos Circuito decodificador


de selección de chip

16 Bus de direcciones

CC 14 CC 14 CC 13 CC 13 CC 12 CC 12 CC 12 CC 12

CI #1 CI #2 CI #3 CI #4 CI #5 CI #6 CI #7 CI #8
RWM RWM ROM ROM ROM ROM ROM ROM
16K 16K 8K 8K 4K 4K 4K 4K

líneas de dirección de
selección de chip palabra física
31/05/2013 Electrónica DigitalElectrónica Digital 9
0 0000
CI #1 Mapa de memoria
....
RWM 16K
16383 3FFF Es la distribución de cada chip de
16384 4000 memoria dentro del espacio de
.....
CI #2 direcciones y está determinado por el
RWM 16K rango de direcciones con el cual se
32767 7FFF
32768 8000
selecciona cada chip mediante el CC
CI #3
....
ROM 8K
40959 9FFF
40960 A000
Dirección CI #4
....
Dirección del Chip 4
ROM 8K
HA018 (13 bits)
mapa de ROM Dirección
49151 BFFF memoria 8K interna del CI
41152 C000
CI #5 HA000 H0000 0
.....
ROM 4K .....
53247 CFFF
HA018 XX H0018 24
53248 D000
CI #6 .....
.....
ROM 4K
57343 DFFF HBFFF H1FFF 8191
57344 E000
Referencias CI #7
H03FF = 1K .... 1010 0000 0001 1000
ROM 4K
H07FF = 2K 61439 EFFF
H0FFF= 4K 61440 F000
H1FFF = 8K CI #8 0000 0000 0001 1000
....
H3FFF = 16K
31/05/2013 ROMDigitalElectrónica
Electrónica 4K Digital 10
65535 FFFF
0 0000 0000 0000 0000 0000
CI #1
.... ....
RWM 16K
16383 3FFF 0011 1111 1111 1111
16384 4000 0100 0000 0000 0000
CI #2
..... .....
RWM 16K
32767 7FFF 0111 1111 1111 1111
32768 8000 1000 0000 0000 0000
CI #3
.... ....
ROM 8K
40959 9FFF 1001 1111 1111 1111
40960 A000 1010 0000 0000 0000
CI #4
.... ROM 8K ....
49151 BFFF (13 bits) 1011 1111 1111 1111
41152 C000 1100 0000 0000 0000
CI #5
..... .....
ROM 4K
53247 CFFF 1100 1111 1111 1111
53248 D000 1101 0000 0000 0000
CI #6
..... .....
ROM 4K
57343 DFFF 1101 1111 1111 1111
57344 E000 1110 0000 0000 0000
CI #7
.... ....
ROM 4K
61439 EFFF 1110 1111 1111 1111
61440 F000 1111 0000 0000 0000
CI #8
.... ....
31/05/2013 ROMDigitalElectrónica
Electrónica 4K Digital 11
65535 FFFF 1111 1111 1111 1111
Selección de cada CI dentro del mapa
16 Bus de direcciones

CC 14 CC 14 CC 13 CC 13 CC 12 CC 12 CC 12 CC 12

Chip 1 Chip 2 Chip 3 Chip 4 Chip 5 Chip 6 Chip 7 Chip 8


RWM RWM ROM ROM ROM ROM ROM ROM
16K 16K 8K 8K 4K 4K 4K 4K

La parte alta del AD se usa para seleccionar cada memoria por medio de un circuito
decodificador (combinacional); la parte baja se usa para direccionar.

A15 A14 A13 A12 Chip Bits para


direccionar CS1/ = A15 + A14
0 0 - - 1 (16K) 14 bits CS2/ = A15 + A14/
0 1 - - 2 (16K) A13…A0
CS3/ = A15/ + A14 + A13
0 - 3 (8K) 13 bits
1 0 CS4/ = A15/ + A14 + A13/
1 - 4 (8K) A12…A0
CS5/ = A15/ + A14/ + A13 + A12
0 0 5 (4K)
CS6/ = A15/ + A14/ + A13 + A12/
0 1 6 (4K) 12 bits
1 1 CS7/ = A15/ + A14/ + A13/ + A12
1 0 7 (4K) A11…A0
CS / = A15/ + A14/ + A13/ + A12 /
8
31/05/2013 1 1 8 (4K) Electrónica DigitalElectrónica Digital 12
Direcciones Bits de selección del AD Salidas del CC (decodificador)
mapa Chip
A15 A14 A13 A12 CS1 CS2 CS3 CS4 CS5 CS6 CS7 CS8
0000 1 (16K)
3FFF
0 0 - - 0 1 1 1 1 1 1 1 14 bits
4000
7FFF
0 1 - - 1 0 1 1 1 1 1 1 2 (16K)

8000 3 (8K)
9FFF
0 - 1 1 0 1 1 1 1 1 13 bits
1 0
A000
BFFF
1 - 1 1 1 0 1 1 1 1 4 (8K)

C000 5 (4K)
CFFF
0 0 1 1 1 1 0 1 1 1 12 bits
D000
DFFF
0 1 1 1 1 1 1 0 1 1 6 (4K)
1 1
E000
EFFF
1 0 1 1 1 1 1 1 0 1 7 (4K)

F000
FFFF
1 1 1 1 1 1 1 1 1 0 8 (4K)

31/05/2013 Electrónica DigitalElectrónica Digital 13


Bus de direcciones A0...A15

CS/ RWM 1
16K x 8

CS/ RWM 2
16K x 8

CS/
ROM 1
8K x 8

CS/
ROM 2
8K x 8

CS/ ROM 3
4K x 8

CS/
ROM 4
4K x 8

CS/
ROM 5
4K x 8

CS/
ROM 6
4K x 8
31/05/2013 Electrónica DigitalElectrónica Digital 14
Métodos de selección de las memorias

Selección decodificada
Sistemas grandes
• Se basa en decodificar las líneas de dirección para la selección
• Reduce la cantidad de líneas de dirección del banco final
• Permite el aprovechamiento integral del bus de direcciones

Selección lineal
Sistemas pequeños, cuando sobran líneas del bus de direcciones
• Se necesitan tantas líneas de selección como chips de memoria
contenga el banco

31/05/2013 Electrónica DigitalElectrónica Digital 15


Diseño
Ejemplo de selección lineal
Se requiere un banco de memoria de 5 ROMs de 1 K x 8 y 1 RWM de 512 x 8.
• Para direccionar la RWM se requieren 9 bits
• Para direccionar las ROM se requieren 10 bits
• Para seleccionar (método lineal) se requieren 6 bits (1 por cada CI)
• Se requiere un total de 16 líneas de dirección (AB)

D0...D7

D0...D7

D0...D7
D0...D7

D0...D7

D0...D7

A0...A9
A0...A9

A0...A9

A0...A9
A0...A9
A0...A8

31/05/2013 Electrónica DigitalElectrónica Digital 16


Diseño
Mapa de memoria
Bits de selección Bits de dirección
A15 A14 A13 A12 A11 A10 A9 A8 A7 …. A0 Rango Bytes CI
0 0 0 0 0 0 0 0 0 … 0 0000 No
1K
0 0 0 0 0 0 1 1 1 … 1 03FF usados
0 0 0 0 0 1 0 0 0 … 0 0400
1K ROM #5
0 0 0 0 0 1 1 1 1 … 1 07FF
0 0 0 0 1 0 0 0 0 … 0 0800
1K ROM #4
0 0 0 0 1 0 1 1 1 … 1 0BFF
0 0 0 0 1 1 0 0 0 … 0 0C00 No
1K
0 0 0 0 1 1 1 1 1 … 1 0FFF usados
0 0 0 1 0 0 0 0 0 … 0 1000
1K ROM #3
0 0 0 1 0 0 1 1 1 … 1 13FF
0 0 0 1 0 1 0 0 0 0 1400 No
3K
0 0 0 1 1 1 1 1 1 … 1 1FFF usados
0 0 1 0 0 0 0 0 0 … 0 2000
1K ROM #2
0 0 1 0 0 0 1 1 1 … 1 23FF

31/05/2013 Electrónica DigitalElectrónica Digital 17


Diseño
Mapa de memoria (cont.)

Bits de selección Bits de dirección


A15 A14 A13 A12 A11 A10 A9 A8 A7 …. A0 Rango Bytes CI
0 0 1 0 0 1 0 0 0 … 0 2400 No
7K
0 0 1 1 1 1 1 1 1 … 1 3FFF usados
0 1 0 0 0 0 0 0 0 … 0 4000
1K ROM#1
0 1 0 0 0 0 1 1 1 … 1 43FF
0 1 0 0 0 1 0 0 0 …. 0 4400 No
15K
0 1 1 1 1 1 1 1 1 …. 1 7FFF usados
1 0 0 0 0 0 0 0 0 …. 0 8000
512 RAM
1 0 0 0 0 0 0 1 1 …. 1 81FF
1 0 0 0 0 0 1 0 0 … 0 8200 RAM
512
1 0 0 0 0 0 1 1 1 … 1 83FF (espejo)
1 0 0 0 0 1 0 0 0 … 0 8400 No
31K
1 1 1 1 1 1 1 1 1 … 1 FFFF usados

31/05/2013 Electrónica DigitalElectrónica Digital 18


Diseño

Selección decodificada

Caso similar al anterior con


direccionamiento de 8 bloques
de 1K x 8 usando un decoder

• Para direccionar las RAM y ROM se requieren 10 bits


• Para seleccionar (decoder) se requieren 3 bits (8 CIs)
• Se requiere un total de 13 líneas de dirección (AB)
• Se puede agregar un bit extra (14) para habilitar el decoder
31/05/2013 Electrónica DigitalElectrónica Digital 19
Mapa de memoria

DECODER
(activo por L)
EN A2 A1 A0
Bits de Direcciones físicas
selección (10 bits)

A13 A12 A11 A10 A9 A8 A7 …. A0 Decoder Direcciones CI


0 0 0 - - - … - D0 0000 - 03FF ROM0
0 0 1 - - - … - D1 0400 – 07FF ROM1
0 1 0 - - - … - D2 0800 – 0BFF ROM2
0 1 1 - - - … - D3 0CFF – 0FFF ROM3
0
1 0 0 - - - … - D4 1000 – 13FF ROM4
1 0 1 - - - … - D5 1400 – 17FF ROM5
1 1 0 - - - … - D6 1800 – 1BFF ROM6
1 1 1 - - - … - D7 1C00 – 1FFF ROM7

31/05/2013 Electrónica DigitalElectrónica Digital 20


Aumento de la capacidad: bancos de memoria

 Expansión de la longitud de la palabra dato


• Ejemplo: banco de 1K x 8 con memorias de 1K x 4

 Expansión de la capacidad de almacenamiento


• Ejemplo: banco de 2K x 4 con memorias de 1K x 4

 Expansión de la capacidad y la longitud de la palabra


• Ejemplo: banco de 2K x 8 con memorias de 1K x 4

31/05/2013 Electrónica DigitalElectrónica Digital 21


Expansión del tamaño de la palabra dato

Bus de direcciones A0 – An-1

A0 – An-1

Chip de
R/W’ Memoria
D0 – Dy-1

CS’

Bus de datos D0 – Dm-1

m: número de bits de longitud del nuevo dato


y: número de bits de longitud del dato de cada memoria

31/05/2013
 m / y = X memorias necesarias
Electrónica DigitalElectrónica Digital 22
Arquitectura genérica

Las líneas de direcciones entran en paralelo a todas las memorias


Las líneas de control CS’ y R/W’ están conectadas en paralelo a cada memoria

Bus de direcciones A0 – An-1

A0 – An-1 A0 – An-1 A0 – An-1


MEM #0 MEM #1 MEM #X-1
R/W’ R/W’ R/W’

CS’
D0 – Dy-1
D0 – Dy-1 D0 – Dy-1

Bus de datos D0 – Dm-1

31/05/2013 Electrónica DigitalElectrónica Digital 23


Nota: las líneas de control pueden variar según cada tipo de memoria
Diseño
Ejemplo: banco de 1K x 8 con memorias de 1K x 4
• #bits del AB de cada memoria? 10
• #bits del DB de cada memoria? y=4
• #bits del DB del banco? m=8
• # de memorias de 1K x 4? x = m/y = 8/4 = 2

D4...D7
D0...D3
A0...A9

A0...A9

31/05/2013 Electrónica DigitalElectrónica Digital 25


Expansión de la capacidad de almacenamiento

N es la capacidad inicial de la memoria


N  2n (n es el número de bits del bus de direcciones)

z M es la capacidad final de la memoria (banco)


M 2 (z el número de bits del nuevo bus de direcciones)

M 2z
 n  2 z n  X Número de memorias necesarias
N 2

31/05/2013 Electrónica DigitalElectrónica Digital 26


Arquitectura genérica

Las nuevas líneas de dirección permiten la operación de cada una


de las memorias actuando sobre el CS/

A0...An-1

A0...An-1

R/W’
OE’

A0...An-1
R/W’

R/W’
OE’

OE’
CS’

CS’

CS’
D0...Dm-1

D0...Dm-1

D0...Dm-1
31/05/2013 Electrónica DigitalElectrónica
Nota: lasDigital 27
líneas de control dependen del tipo de memoria
Diseño
Ejemplo
Banco RAM de 4K x 4 con memorias de 1K x 4 (selección lineal)

Selección lineal  se necesitan tantas líneas de dirección


adicionales como memorias contenga el banco

Capacidad inicial N = 1K = 1024


AB: n = 10 bits (A0…A9)

Capacidad final M = 4K = 4096

Cantidad de memorias
X = M / N = 4 memorias

Nuevas líneas de dirección: 4 (A10, A11, A12, A13) (selección lineal)


AB = 14 bits (A0…A13)

31/05/2013 Electrónica DigitalElectrónica Digital 28


Bus de direcciones A0...A13

31/05/2013
A0...A9
R/W’ R/W’ D0...D3
OE’ OE’
CS’

A0...A9
D0...D3

CS’

A0...A9
D0...D3

Electrónica DigitalElectrónica Digital


CS’

A0...A9
D0...D3

CS’
29
Circuito del ejemplo
Mapa de memoria

Direccionamiento Direccionamiento físico


(Selección de chip) (de cada chip)
Dir. hexa Chip
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0400 a 0 0 0 1 0 0 0 0 0 0 0 0 0 0
RAM0
07FF 0 0 0 1 1 1 1 1 1 1 1 1 1 1
0800 a 0 0 1 0 0 0 0 0 0 0 0 0 0 0
RAM1
0BFF 0 0 1 0 1 1 1 1 1 1 1 1 1 1
1000 a 0 1 0 0 0 0 0 0 0 0 0 0 0 0
RAM2
13FF 0 1 0 0 1 1 1 1 1 1 1 1 1 1
2000 a 1 0 0 0 0 0 0 0 0 0 0 0 0 0
RAM3
23FF 1 0 0 0 1 1 1 1 1 1 1 1 1 1

Existen partes no usadas


del espacio de direcciones:
0000 a 03FF
0C00 a 0FFF
1400 a 1FFF
31/05/2013 Electrónica2400 a 3FFF Digital
DigitalElectrónica 30
Diseño
Ejemplo:
Banco RAM de 4K x 4 con memorias de 1K x 4 (selección decodificada)
• Nuevas líneas de dirección
m - n = 2 (A10, A11)

Bus de datos D0...D3

D0...D3

D0...D3

D0...D3
D0...D3

Memoria 0 Memoria 1 Memoria 2 Memoria 3


1K x 4 1K x 4 1K x 4 1K x 4
A0...A9

A0...A9

A0...A9

A0...A9
R/W’

CS’

CS’

CS’
OE’
CS’

Bus de direcciones A0...A11


Bus de direcciones A0...A11

D0 D1 D2 D3

Decoder 2 a 4
E0 E1
A10

A11
R/W’
OE’

31/05/2013 Electrónica DigitalElectrónica Digital 33


Diseño
Mapa de memoria

Direc. Direc. A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0


Hexa Decimal
Chip
Selección Direcciones para cada chip
000 a 0a 0 0 0 0 0 0 0 0 0 0 0 0
RAM0
3FF 1023 0 0 1 1 1 1 1 1 1 1 1 1
400 a 1024 a 0 1 0 0 0 0 0 0 0 0 0 0
7FF 2047 RAM1
0 1 1 1 1 1 1 1 1 1 1 1
800 a 2048 a 1 0 0 0 0 0 0 0 0 0 0 0
BFF 3071 RAM2
1 0 1 1 1 1 1 1 1 1 1 1
C00 a 3072 a 1 1 0 0 0 0 0 0 0 0 0 0
FFF 4095 RAM3
1 1 1 1 1 1 1 1 1 1 1 1

A11 A10 decoder Dir. Hex Dir. Decim. Memoria


0 0 D0 000 a 3FF 0 a 1023 RAM 0
0 1 D1 400 a 7FF 1024 a 2047 RAM 1
1 0 D2 800 a BFF 2048 a 3071 RAM 2 El mapa se aprovecha por
1 1 D3 C00 a FFF 3072 a 4095 RAM 3 completo en forma lineal

31/05/2013 Electrónica DigitalElectrónica Digital 34


Expansión de longitud de dato y de la capacidad total

Ejemplo: banco RAM de 4K x 8 con memorias de 1K x 4

• Capacidad inicial N = 1K = 1024


n = 10 bits (A0…A9)

• Capacidad final M = 4K = 4096


m = 12 bits (A0…A11)

• Cantidad de memorias
X = M / N = 4 memorias  8 memorias

• Nuevas líneas de dirección (mínimo): 12 - 10 = 2 (A10, A11)

31/05/2013 Electrónica DigitalElectrónica Digital 38


Bus de direcciones A0...A11
A0...A9

31/05/2013
D4...D7
/CS01

/CS00 D0...D3
R/W’

OE’

A0...A9
D4...D7
/CS11

/CS10
D0...D3

A0...A9
D4...D7
/CS21

Electrónica DigitalElectrónica Digital


/CS20
D0...D3

A0...A9
D4...D7
/CS31

/CS30
D0...D3
39
Circuito del ejemplo
Diseño
Mapa de memoria
Selección Direccionamiento
Direc. Direc.
Chip
Hexa Dec.
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

000 a 0a 0 0 0 0 0 0 0 0 0 0 0 0 RAM0L
3FF 1023 0 0 1 1 1 1 1 1 1 1 1 1 RAM0H

400 a 1024 a 0 1 0 0 0 0 0 0 0 0 0 0 RAM1L


7FF 2047 0 1 1 1 1 1 1 1 1 1 1 1 RAM1H

800 a 2048 a 1 0 0 0 0 0 0 0 0 0 0 0 RAM2L


BFF 3071 1 0 1 1 1 1 1 1 1 1 1 1 RAM2H

C00 a 3072 a 1 1 0 0 0 0 0 0 0 0 0 0 RAM3L


FFF 4095 1 1 1 1 1 1 1 1 1 1 1 1 RAM3H

Dir. Hex Dir. Decim. A11 A10 Memoria


000 a 3FF 0 a 1023 0 0 #0
400 a 7FF 1024 a 2047 0 1 #1
800 a BFF 2048 a 3071 1 0 #2
C00 a FFF 3072 a 4095 1 1 #3
31/05/2013 Electrónica DigitalElectrónica Digital 40
‘Espejos’ en el mapa
de memoria

Caso: Hallar el mapa de memoria del


circuito indicando las posiciones de
memoria ocupadas por cada CI RAM.

A15 A14 A13 Decoder Mem Posición en el mapa Bytes


0 0 d0 - H0000 – H1FFF 8K
0 1 d1 RAM1 H2000 – H3FFF 8K
0
1 0 d2 RAM1 H4000 – H5FFF 8K
1 1 d3 - H6000 – H7FFF 8K
1 X X RAM2 H8000 - HFFFF 32K
31/05/2013 Electrónica DigitalElectrónica Digital 41
0 0000
Por ejemplo, a la primer posición de memoria
.... No usado de RAM #2 se accede indistintamente con las
8191 1FFF
direcciones:
8192 2000
..... RAM #1
A15 ...A12 A11 ................ A0
16383 3FFF 8000 1000 0000 0000 0000
16384 4000 A000 1010 0000 0000 0000
RAM #1
....
(espejo) C000 1100 0000 0000 0000
24575 5FFF
E000 1110 0000 0000 0000
40960 6000
.... No usado
8000
49151 7FFF
... RAM #2
41152 8000
9FFF
A000
RAM #2
....
(espejo)
BFFF
C000
RAM #2 RAM #2
....
(espejo)
DFFF
E000
RAM #2

(espejo)
31/05/2013 FFFF
Electrónica DigitalElectrónica Digital 42
65535 FFFF

También podría gustarte