Download Mapas de memoria

Document related concepts
no text concepts found
Transcript
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)
CPU
Memoria
Bus de control
Bus de datos (DB Data Bus)
Ejemplo: AB de 16 líneas (A15,...,A0)
31/05/2013
 H0000 a HFFFF
 010 a 6553510 = 64K palabras
Electrónica DigitalElectrónica Digital
3
16
CPU
Bus de direcciones
Memoria
(64K) x 8
Bus de control
8
Bus de datos
31/05/2013
Electrónica DigitalElectrónica Digital
4
16
CPU
Bus de direcciones
Memoria
(64K) x4
Bus de control
8
Memoria
(64K) x4
4
4
Bus de datos
31/05/2013
Electrónica DigitalElectrónica Digital
5
?
16
CPU
Bus de direcciones
15
15
Memoria
(32K) x8
Memoria
(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
CPU
15
CS\ Memoria
(32K) x8
Bus de control
8
CS\ Memoria
(32K) x8
8
8
Bus de datos
31/05/2013
Electrónica DigitalElectrónica Digital
7
0
0000
0000 0000 0000 0000
....
....
CI #1
MEM 32k
Referencias
H03FF = 1K
H07FF = 2K
H0FFF= 4K
H1FFF = 8K
H3FFF = 16K
H7FFF=
32K
31/05/2013
....
....
32767
7FFF
0111 1111 1111 1111
32768
8000
1000 0000 0000 0000
....
....
CI #2
MEM 32K
65535
....
....
FFFF
1111 1111 1111 1111
Electrónica DigitalElectrónica Digital
8
Bus de direcciones
16
Memoria
(64K)
CPU
Bus de control
8
Circuito decodificador
de selección de chip
Bus de datos
Bus de direcciones
16
CC
14
CC
14 CC
CI #1
CI #2
CI #3
RWM
16K
RWM
16K
ROM
8K
líneas de
selección de chip
31/05/2013
13 CC
13
CC
CI #4
ROM
8K
12 CC
12
CC
12 CC
12
CI #5
CI #6
CI #7
CI #8
ROM
4K
ROM
4K
ROM
4K
ROM
4K
dirección de
palabra física
Electrónica DigitalElectrónica Digital
9
0
0000
....
16383
3FFF
16384
4000
.....
32767
7FFF
32768
8000
....
Dirección
HA018
40959
9FFF
40960
A000
....
49151
BFFF
41152
C000
.....
53247
CFFF
53248
D000
.....
Referencias
H03FF = 1K
H07FF = 2K
H0FFF= 4K
H1FFF = 8K
H3FFF
= 16K
31/05/2013
57343
DFFF
57344
E000
....
61439
EFFF
61440
F000
....
65535
FFFF
CI #1
RWM 16K
CI #2
RWM 16K
Mapa de memoria
Es la distribución de cada chip de
memoria dentro del espacio de
direcciones y está determinado por el
rango de direcciones con el cual se
selecciona cada chip mediante el CC
CI #3
ROM 8K
CI #4
ROM 8K
(13 bits)
Dirección del
mapa de
memoria
Chip 4
ROM
8K
HA000
CI #5
ROM 4K
H0000
0
H0018
24
H1FFF
8191
.....
HA018
CI #6
ROM 4K
CI #7
ROM 4K
Dirección
interna del CI
XX
.....
HBFFF
1010 0000 0001 1000
CI #8
ROMDigitalElectrónica
4K
Electrónica
Digital
0000 0000 0001 1000
10
0
0000
....
....
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
....
40959
9FFF
40960
A000
....
49151
BFFF
41152
C000
.....
CI #3
ROM 8K
....
1001 1111 1111 1111
CI #4
ROM 8K
(13 bits)
1010 0000 0000 0000
....
1011 1111 1111 1111
1100 0000 0000 0000
CI #5
ROM 4K
.....
53247
CFFF
1100 1111 1111 1111
53248
D000
1101 0000 0000 0000
.....
57343
DFFF
57344
E000
....
31/05/2013
0000 0000 0000 0000
CI #1
RWM 16K
CI #6
ROM 4K
.....
1101 1111 1111 1111
1110 0000 0000 0000
CI #7
ROM 4K
....
61439
EFFF
1110 1111 1111 1111
61440
F000
1111 0000 0000 0000
65535
CI #8
....
ROMDigitalElectrónica
4K
Electrónica
Digital
FFFF
....
1111 1111 1111 1111
11
Selección de cada CI dentro del mapa
Bus de direcciones
16
CC
14
Chip 1
RWM
16K
CC
14
Chip 2
RWM
16K
CC
Chip 3
ROM
8K
13
CC
13
Chip 4
ROM
8K
CC
12 CC
Chip 5
ROM
4K
12
CC
Chip 6
ROM
4K
12
Chip 7
ROM
4K
CC
12
Chip 8
ROM
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)
0
1
-
-
2 (16K)
1
0
0
-
3 (8K)
1
-
4 (8K)
0
0
5 (4K)
0
1
6 (4K)
1
0
7 (4K)
1
1
8
8 (4K) Electrónica DigitalElectrónica Digital
1
31/05/2013
1
14 bits
A13…A0
CS2/ = A15 + A14/
13 bits
A12…A0
CS4/ = A15/ + A14 + A13/
12 bits
A11…A0
CS3/ = A15/ + A14 + A13
CS5/ = A15/ + A14/ + A13 + A12
CS6/ = A15/ + A14/ + A13 + A12/
CS7/ = A15/ + A14/ + A13/ + A12
CS / = A15/ + A14/ + A13/ + A12 /
12
Direcciones
mapa
Salidas del CC (decodificador)
Bits de selección del AD
Chip
A15
A14
A13
A12
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
0000
3FFF
0
0
-
-
0
1
1
1
1
1
1
1
1 (16K)
14 bits
4000
7FFF
0
1
-
-
1
0
1
1
1
1
1
1
2 (16K)
0
-
1
1
0
1
1
1
1
1
3 (8K)
13 bits
1
-
1
1
1
0
1
1
1
1
4 (8K)
C000
CFFF
0
0
1
1
1
1
0
1
1
1
5 (4K)
12 bits
D000
DFFF
0
1
1
1
1
1
1
0
1
1
6 (4K)
1
0
1
1
1
1
1
1
0
1
7 (4K)
1
1
1
1
1
1
1
1
1
0
8 (4K)
8000
9FFF
A000
BFFF
E000
EFFF
F000
FFFF
31/05/2013
1
1
0
1
Electrónica DigitalElectrónica Digital
13
Bus de direcciones A0...A15
CS/
CS/
CS/
CS/
CS/
CS/
CS/
CS/
31/05/2013
RWM 1
16K x 8
RWM 2
16K x 8
ROM 1
8K x 8
ROM 2
8K x 8
ROM 3
4K x 8
ROM 4
4K x 8
ROM 5
4K x 8
ROM 6
4K x 8
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.
31/05/2013
D0...D7
D0...D7
D0...D7
D0...D7
A0...A9
A0...A9
A0...A9
A0...A9
D0...D7
A0...A9
A0...A8
D0...D7
• 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)
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
0
0
0
0
0
0
1
1
1
…
1
0000
03FF
1K
No
usados
0
0
0
0
0
1
0
0
0
…
0
0
0
0
0
0
1
1
1
1
…
1
0400
07FF
1K
ROM #5
0
0
0
0
1
0
0
0
0
…
0
0
0
0
0
1
0
1
1
1
…
1
0800
0BFF
1K
ROM #4
0
0
0
0
1
1
0
0
0
…
0
0
0
0
0
1
1
1
1
1
…
1
0C00
0FFF
1K
No
usados
0
0
0
1
0
0
0
0
0
…
0
0
0
0
1
0
0
1
1
1
…
1
1000
13FF
1K
ROM #3
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
…
1
1400
1FFF
3K
No
usados
0
0
1
0
0
0
0
0
0
…
0
0
0
1
0
0
0
1
1
1
…
1
2000
23FF
1K
ROM #2
31/05/2013
0
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
0
0
1
1
1
1
1
1
1
…
1
2400
3FFF
7K
No
usados
0
1
0
0
0
0
0
0
0
…
0
0
1
0
0
0
0
1
1
1
…
1
4000
43FF
1K
ROM#1
0
1
0
0
0
1
0
0
0
….
0
0
1
1
1
1
1
1
1
1
….
1
4400
7FFF
15K
No
usados
1
0
0
0
0
0
0
0
0
….
0
1
0
0
0
0
0
0
1
1
….
1
8000
81FF
512
RAM
1
0
0
0
0
0
1
0
0
…
0
1
0
0
0
0
0
1
1
1
…
1
8200
83FF
512
RAM
(espejo)
1
0
0
0
0
1
0
0
0
…
0
1
1
1
1
1
1
1
1
1
…
1
8400
FFFF
31K
No
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
selección
Direcciones físicas
(10 bits)
A13 A12 A11 A10 A9
0
31/05/2013
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
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
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
R/W’
Chip de
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
R/W’
MEM #X-1
MEM #1
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
Nota: las líneas de control pueden variar según cada tipo de memoria
23
Diseño
Ejemplo: banco de 1K x 8 con memorias de 1K x 4
• #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
A0...A9
A0...A9
31/05/2013
D4...D7
10
D0...D3
• #bits del AB de cada memoria?
Electrónica DigitalElectrónica Digital
25
Expansión de la capacidad de almacenamiento
N  2n
M 2
z
N es la capacidad inicial de la memoria
(n es el número de bits del bus de direcciones)
M es la capacidad final de la memoria (banco)
(z el número de bits del nuevo bus de direcciones)
M 2z
 n  2 z n  X
N 2
31/05/2013
Número de memorias necesarias
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
R/W’
CS’
OE’
A0...An-1
R/W’
CS’
OE’
A0...An-1
R/W’
CS’
OE’
D0...Dm-1
D0...Dm-1
D0...Dm-1
31/05/2013
Electrónica DigitalElectrónica
27
Nota: lasDigital
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
31/05/2013
Electrónica DigitalElectrónica Digital
Circuito del ejemplo
29
R/W’
OE’
Bus de direcciones A0...A13
CS’
A0...A9
CS’
A0...A9
CS’
A0...A9
R/W’
OE’
CS’
A0...A9
D0...D3
D0...D3
D0...D3
D0...D3
Mapa de memoria
Direccionamiento físico
(de cada chip)
Direccionamiento
(Selección de chip)
Dir. hexa
Chip
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0400 a
07FF
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0800 a
0BFF
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1000 a
13FF
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
2000 a
23FF
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
31/05/2013
Existen partes no usadas
del espacio de direcciones:
0000 a 03FF
0C00 a 0FFF
1400 a 1FFF
a 3FFF Digital
Electrónica2400
DigitalElectrónica
RAM0
RAM1
RAM2
RAM3
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)
CS’
D0...D3
A0...A9
CS’
CS’
D0...D3
Memoria 3
1K x 4
A0...A9
D0...D3
Memoria 2
1K x 4
A0...A9
Memoria 1
1K x 4
R/W’
OE’
CS’
Memoria 0
1K x 4
A0...A9
D0...D3
Bus de datos D0...D3
D0 D1 D2 D3
Decoder 2 a 4
E0
E1
A10
A11
R/W’
OE’
31/05/2013
Bus de direcciones A0...A11
Bus de direcciones A0...A11
Electrónica DigitalElectrónica Digital
33
Diseño
Mapa de memoria
A11
A10
A9
A8
A7
A6
A5
A4
A2
A1
A0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
Direc.
Hexa
Direc.
Decimal
000 a
3FF
0a
1023
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
400 a
7FF
1024 a
2047
0
1
0
0
0
0
0
1
1
1
1
800 a
BFF
2048 a
3071
1
0
0
0
1
0
1
C00 a
FFF
3072 a
4095
1
1
1
1
Selección
Chip
Direcciones para cada chip
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
1
1
D3
C00 a FFF
3072 a 4095
RAM 3
31/05/2013
A3
Electrónica DigitalElectrónica Digital
RAM0
RAM1
RAM2
RAM3
El mapa se aprovecha por
completo en forma lineal
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
31/05/2013
Electrónica DigitalElectrónica Digital
OE’
R/W’
Bus de direcciones A0...A11
Circuito del ejemplo
39
/CS30
/CS31
A0...A9
/CS20
/CS21
A0...A9
/CS10
/CS11
A0...A9
/CS00
/CS01
A0...A9
D0...D3
D4...D7
D0...D3
D4...D7
D0...D3
D4...D7
D0...D3
D4...D7
Diseño
Mapa de memoria
Direc.
Hexa
Direc.
Dec.
000 a
3FF
Direccionamiento
Selección
Chip
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0a
1023
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
400 a
7FF
1024 a
2047
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
800 a
BFF
2048 a
3071
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
C00 a
FFF
3072 a
4095
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
31/05/2013
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
Electrónica DigitalElectrónica Digital
RAM0L
RAM0H
RAM1L
RAM1H
RAM2L
RAM2H
RAM3L
RAM3H
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
0
1
A14
A13 Decoder
Mem
Posición en el mapa
Bytes
0
0
d0
-
H0000 – H1FFF
8K
0
1
d1
RAM1
H2000 – H3FFF
8K
1
0
d2
RAM1
H4000 – H5FFF
8K
1
1
d3
-
H6000 – H7FFF
8K
X
X
RAM2
H8000 - HFFFF
32K
31/05/2013
Electrónica DigitalElectrónica Digital
41
0
0000
....
8191
1FFF
8192
2000
.....
16383
3FFF
16384
4000
....
24575
5FFF
40960
6000
....
49151
7FFF
41152
8000
No usado
Por ejemplo, a la primer posición de memoria
de RAM #2 se accede indistintamente con las
direcciones:
A15 ...A12
A11 ................ A0
8000
1000
0000 0000 0000
A000
1010
0000 0000 0000
C000
1100
0000 0000 0000
E000
1110
0000 0000 0000
RAM #1
RAM #1
(espejo)
No usado
8000
...
RAM #2
9FFF
A000
....
RAM #2
(espejo)
BFFF
RAM #2
C000
....
RAM #2
(espejo)
DFFF
E000
…
31/05/2013
65535
FFFF
Electrónica DigitalElectrónica
Digital
FFFF
RAM #2
(espejo)
42