Upload
goddaaaaa
View
242
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Un mapa de memoria (del inglés memory map) es una estructura de datos (tablas) que indica cómo está distribuida la memoria. Contiene información sobre el tamaño total de memoria y las relaciones que existen entre direcciones lógicas y físicas, además de poder proveer otros detalles específicos sobre la arquitectura del computador.Los mapas de memoria suelen ser creados usualmente por el firmware para dar información al núcleo del sistema operativo sobre cómo está distribuida la memoria.
Citation preview
31/05/2013 Electrnica DigitalElectrnica Digital 1
Departamento de ElectrnicaElectrnica Digital
BioingenieraFacultad de Ingeniera - UNER
Mapas de memoria
31/05/2013 Electrnica DigitalElectrnica Digital 2
Direccionamiento de las memorias
31/05/2013 Electrnica DigitalElectrnica Digital 3
MemoriaCPU
Bus de datos (DB Data Bus)Bus de datos (DB Data Bus)
Bus de controlBus de control
Bus de direcciones (AB Address Bus)Bus de direcciones (AB Address Bus)
Es la capacidad de direccionamiento de la CPU y est definido por el tamao del bus de direcciones.
Espacio de direcciones
Ejemplo: AB de 16 lneas (A15,...,A0) H0000 a HFFFF 010 a 6553510 = 64K palabras
31/05/2013 Electrnica DigitalElectrnica Digital 4
Bus de direcciones
Memoria(64K) x 8CPU
Bus de datos
Bus de control
16
8
31/05/2013 Electrnica DigitalElectrnica Digital 5
Bus de direcciones
Memoria(64K) x4CPU
Bus de datos
Bus de control
16
8
Memoria(64K) x4
4 4
31/05/2013 Electrnica DigitalElectrnica Digital 6
Bus de direcciones
Memoria(32K) x8CPU
Bus de datos
Bus de control
16
8
Memoria(32K) x8
8 8
15 15
?
31/05/2013 Electrnica DigitalElectrnica Digital 7
Bus de direcciones
CS\ Memoria(32K) x8CPU
Bus de datos
Bus de control
15
8
CS\ Memoria(32K) x8
8 8
15 15
A15
31/05/2013 Electrnica DigitalElectrnica Digital 8
ReferenciasH03FF = 1KH07FF = 2KH0FFF= 4KH1FFF = 8KH3FFF = 16KH7FFF= 32K
0 0000 0000 0000 0000 0000.... ....
CI #1MEM 32k
.... ....32767 7FFF 0111 1111 1111 111132768 8000 1000 0000 0000 0000
.... ....
CI #2MEM 32K
.... ....65535 FFFF 1111 1111 1111 1111
31/05/2013 Electrnica DigitalElectrnica Digital 9
Bus de direcciones
Memoria(64K)CPU
Bus de datos
Bus de control
16
8
CI #8ROM
4K
12CC
Bus de direcciones16
CI #1RWM16K
14CC
CI #2RWM16K
14CC
CI #3ROM
8K
13CC
CI #4ROM
8K
13CC
CI #5ROM
4K
12CC
CI #6ROM
4K
12CC
CI #7ROM
4K
12CC
lneas de seleccin de chip
direccin de palabra fsica
Circuito decodificador de seleccin de chip
31/05/2013 Electrnica DigitalElectrnica Digital 10
0 0000CI #1RWM 16K....
16383 3FFF
16384 4000CI #2RWM 16K.....
32767 7FFF
32768 8000CI #3ROM 8K....
40959 9FFF
40960 A000 CI #4ROM 8K (13 bits)
....
49151 BFFF
41152 C000CI #5ROM 4K.....
53247 CFFF
53248 D000CI #6ROM 4K.....
57343 DFFF
57344 E000CI #7ROM 4K....
61439 EFFF
61440 F000CI #8ROM 4K....
65535 FFFF
Direccin del mapa de memoria
Chip 4ROM 8K
Direccin interna del CI
HA000 H0000 0
.....
HA018 XX H0018 24.....
HBFFF H1FFF 8191
DireccinHA018
Mapa de memoriaEs la distribucin 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
ReferenciasH03FF = 1KH07FF = 2KH0FFF= 4KH1FFF = 8KH3FFF = 16K
0000 0000 0001 1000
1010 0000 0001 1000
31/05/2013 Electrnica DigitalElectrnica Digital 11
0 0000CI #1RWM 16K
0000 0000 0000 0000
.... ....
16383 3FFF 0011 1111 1111 1111
16384 4000CI #2RWM 16K
0100 0000 0000 0000
..... .....
32767 7FFF 0111 1111 1111 1111
32768 8000CI #3ROM 8K
1000 0000 0000 0000
.... ....
40959 9FFF 1001 1111 1111 1111
40960 A000 CI #4ROM 8K (13 bits)
1010 0000 0000 0000
.... ....
49151 BFFF 1011 1111 1111 1111
41152 C000CI #5ROM 4K
1100 0000 0000 0000
..... .....
53247 CFFF 1100 1111 1111 1111
53248 D000CI #6ROM 4K
1101 0000 0000 0000
..... .....
57343 DFFF 1101 1111 1111 1111
57344 E000CI #7ROM 4K
1110 0000 0000 0000
.... ....
61439 EFFF 1110 1111 1111 1111
61440 F000CI #8ROM 4K
1111 0000 0000 0000
.... ....
65535 FFFF 1111 1111 1111 1111
31/05/2013 Electrnica DigitalElectrnica Digital 12
Chip 8ROM4K
12CC
Bus de direcciones16
Chip 1RWM16K
14CC
Chip 2RWM16K
14CC
Chip 3ROM8K
13CC
Chip 4ROM8K
13CC
Chip 5ROM4K
12CC
Chip 6ROM4K
12CC
Chip 7ROM4K
12CC
A15 A14 A13 A12 Chip Bits para direccionar
0 0 - - 1 (16K) 14 bitsA13A00 1 - - 2 (16K)
1 00 - 3 (8K) 13 bits
A12A01 - 4 (8K)
1 1
0 0 5 (4K)
12 bitsA11A0
0 1 6 (4K)
1 0 7 (4K)
1 1 8 (4K)
CS1/ = A15 + A14CS2/ = A15 + A14/CS3/ = A15/ + A14 + A13CS4/ = A15/ + A14 + A13/CS5/ = A15/ + A14/ + A13 + A12CS6/ = A15/ + A14/ + A13 + A12/CS7/ = A15/ + A14/ + A13/ + A12CS8/ = A15/ + A14/ + A13/ + A12 /
Seleccin de cada CI dentro del mapa
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.
31/05/2013 Electrnica DigitalElectrnica Digital 13
Direcciones mapa
Bits de seleccin del AD Salidas del CC (decodificador)Chip
A15 A14 A13 A12 CS1 CS2 CS3 CS4 CS5 CS6 CS7 CS800003FFF 0 0 - - 0 1 1 1 1 1 1 1
1 (16K)14 bits
40007FFF 0 1 - - 1 0 1 1 1 1 1 1 2 (16K)
80009FFF
1 00 - 1 1 0 1 1 1 1 1 3 (8K)13 bits
A000BFFF 1 - 1 1 1 0 1 1 1 1 4 (8K)
C000CFFF
1 1
0 0 1 1 1 1 0 1 1 1 5 (4K)12 bitsD000DFFF 0 1 1 1 1 1 1 0 1 1 6 (4K)
E000EFFF 1 0 1 1 1 1 1 1 0 1 7 (4K)
F000FFFF 1 1 1 1 1 1 1 1 1 0 8 (4K)
31/05/2013 Electrnica DigitalElectrnica Digital 14
RWM 116K x 8
RWM 216K x 8
Bus de direcciones A0...A15
ROM 18K x 8
ROM 28K x 8
ROM 34K x 8
ROM 44K x 8
CS/
CS/
ROM 54K x 8
ROM 64K x 8
CS/
CS/
CS/
CS/
CS/
CS/
31/05/2013 Electrnica DigitalElectrnica Digital 15
Mtodos de seleccin de las memorias
Seleccin decodificadaSistemas grandes
Se basa en decodificar las lneas de direccin para la seleccin Reduce la cantidad de lneas de direccin del banco final Permite el aprovechamiento integral del bus de direcciones
Seleccin linealSistemas pequeos, cuando sobran lneas del bus de direcciones
Se necesitan tantas lneas de seleccin como chips de memoria contenga el banco
31/05/2013 Electrnica DigitalElectrnica Digital 16
Se requiere un banco de memoria de 5 ROMs de 1 K x 8 y 1 RWM de 512 x 8.
D0.
..D7
D0.
..D7
D0.
..D7
D0.
..D7
A0.
..A8
A0.
..A9
A0.
..A9
A0.
..A9
D0.
..D7
D0.
..D7
A0.
..A9
A0.
..A9
Ejemplo de seleccin lineal Diseo
Para direccionar la RWM se requieren 9 bits Para direccionar las ROM se requieren 10 bits Para seleccionar (mtodo lineal) se requieren 6 bits (1 por cada CI) Se requiere un total de 16 lneas de direccin (AB)
31/05/2013 Electrnica DigitalElectrnica Digital 17
Bits de seleccin Bits de direccin
A15 A14 A13 A12 A11 A10 A9 A8 A7 . A0 Rango Bytes CI
0 0 0 0 0 0 0 0 0 0 000003FF 1K
No usados0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 1 0 0 0 0 040007FF 1K ROM #50 0 0 0 0 1 1 1 1 1
0 0 0 0 1 0 0 0 0 0 08000BFF 1K ROM #40 0 0 0 1 0 1 1 1 1
0 0 0 0 1 1 0 0 0 0 0C000FFF 1K
No usados0 0 0 0 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 0 100013FF 1K ROM #30 0 0 1 0 0 1 1 1 1
0 0 0 1 0 1 0 0 0 0 14001FFF 3K
No usados0 0 0 1 1 1 1 1 1 1
0 0 1 0 0 0 0 0 0 0 200023FF 1K ROM #20 0 1 0 0 0 1 1 1 1
Mapa de memoriaDiseo
31/05/2013 Electrnica DigitalElectrnica Digital 18
Bits de seleccin Bits de direccin
A15 A14 A13 A12 A11 A10 A9 A8 A7 . A0 Rango Bytes CI
0 0 1 0 0 1 0 0 0 0 24003FFF 7K
No usados0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 400043FF 1K ROM#10 1 0 0 0 0 1 1 1 1
0 1 0 0 0 1 0 0 0 . 0 44007FFF 15K
No usados0 1 1 1 1 1 1 1 1 . 1
1 0 0 0 0 0 0 0 0 . 0 800081FF 512 RAM1 0 0 0 0 0 0 1 1 . 1
1 0 0 0 0 0 1 0 0 0 820083FF 512
RAM(espejo)1 0 0 0 0 0 1 1 1 1
1 0 0 0 0 1 0 0 0 0 8400FFFF 31K
No usados1 1 1 1 1 1 1 1 1 1
Mapa de memoria (cont.)Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 19
Caso similar al anterior con direccionamiento de 8 bloques de 1K x 8 usando un decoder
Seleccin decodificada
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 lneas de direccin (AB) Se puede agregar un bit extra (14) para habilitar el decoder
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 20
DECODER (activo por L)
EN A2 A1 A0
Bits de seleccin
Direcciones fsicas(10 bits)
A13 A12 A11 A10 A9 A8 A7 . A0 Decoder Direcciones CI
0
0 0 0 - - - - D0 0000 - 03FF ROM00 0 1 - - - - D1 0400 07FF ROM10 1 0 - - - - D2 0800 0BFF ROM20 1 1 - - - - D3 0CFF 0FFF ROM31 0 0 - - - - D4 1000 13FF ROM41 0 1 - - - - D5 1400 17FF ROM51 1 0 - - - - D6 1800 1BFF ROM61 1 1 - - - - D7 1C00 1FFF ROM7
Mapa de memoria
31/05/2013 Electrnica DigitalElectrnica Digital 21
Aumento de la capacidad: bancos de memoria
Expansin de la capacidad de almacenamiento
Ejemplo: banco de 2K x 4 con memorias de 1K x 4
Expansin de la longitud de la palabra dato
Ejemplo: banco de 1K x 8 con memorias de 1K x 4
Expansin de la capacidad y la longitud de la palabra
Ejemplo: banco de 2K x 8 con memorias de 1K x 4
31/05/2013 Electrnica DigitalElectrnica Digital 22
Expansin del tamao de la palabra dato
Chip de Memoria
Bus de datos D0 Dm-1
R/W
CS
A0 An-1
0 n-1Bus de direcciones A0 An-1
D0 Dy-1
m: nmero de bits de longitud del nuevo dato
y: nmero de bits de longitud del dato de cada memoria
m / y = X memorias necesarias
31/05/2013 Electrnica DigitalElectrnica Digital 23Nota: las lneas de control pueden variar segn cada tipo de memoria
Arquitectura genrica
Las lneas de direcciones entran en paralelo a todas las memoriasLas lneas de control CS y R/W estn conectadas en paralelo a cada memoria
0 m-1Bus de datos D0 Dm-1
R/W
CS
0 n-1Bus de direcciones A0 An-1
MEM #0
A0 An-1
D0 Dy-1
MEM #1
A0 An-1MEM #X-1
A0 An-1
D0 Dy-1D0 Dy-1
R/WR/W
31/05/2013 Electrnica DigitalElectrnica Digital 25
D0.
..D3
D4.
..D7
A0.
..A9
A0.
..A9
Ejemplo: banco de 1K x 8 con memorias de 1K x 4
#bits del AB de cada memoria?
#bits del DB de cada memoria?
#bits del DB del banco?
# de memorias de 1K x 4?
10
y = 4
m = 8
x = m/y = 8/4 = 2
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 26
Expansin de la capacidad de almacenamiento
nN 2 N es la capacidad inicial de la memoria (n es el nmero de bits del bus de direcciones)
M es la capacidad final de la memoria (banco)(z el nmero de bits del nuevo bus de direcciones)
Nmero de memorias necesariasXNM nz
n
z
222
zM 2
31/05/2013 Electrnica DigitalElectrnica Digital 27Nota: las lneas de control dependen del tipo de memoria
Las nuevas lneas de direccin permiten la operacin de cada una de las memorias actuando sobre el CS/
A0 ...A
n-1
R/W
CS
OE
D0 ...D
m-1
A0 ...A
n-1
R/W
CS
OE
D0 ...D
m-1
A0 ...A
n-1
R/W
CS
OE
D0 ...D
m-1
Arquitectura genrica
31/05/2013 Electrnica DigitalElectrnica Digital 28
Capacidad inicial N = 1K = 1024AB: n = 10 bits (A0A9)
Capacidad final M = 4K = 4096
Cantidad de memoriasX = M / N = 4 memorias
Nuevas lneas de direccin: 4 (A10, A11, A12, A13) (seleccin lineal)AB = 14 bits (A0A13)
Ejemplo
Banco RAM de 4K x 4 con memorias de 1K x 4 (seleccin lineal)
Seleccin lineal se necesitan tantas lneas de direccin adicionales como memorias contenga el banco
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 29Circuito del ejemplo
D0.
..D3
D0.
..D3
D0.
..D3
D0.
..D3
A0...
A9
A0...
A9
A0...
A9
A0.
..A9
Bus
de
dire
ccio
nes
A0.
..A13
R/W
R
/W
OE
O
E
CS CS
CS
CS
31/05/2013 Electrnica DigitalElectrnica Digital 30
Dir. hexa
Direccionamiento(Seleccin de chip)
Direccionamiento fsico(de cada chip) Chip
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0400 a07FF
0 0 0 1 0 0 0 0 0 0 0 0 0 0RAM0
0 0 0 1 1 1 1 1 1 1 1 1 1 1
0800 a0BFF
0 0 1 0 0 0 0 0 0 0 0 0 0 0RAM1
0 0 1 0 1 1 1 1 1 1 1 1 1 1
1000 a13FF
0 1 0 0 0 0 0 0 0 0 0 0 0 0RAM2
0 1 0 0 1 1 1 1 1 1 1 1 1 1
2000 a23FF
1 0 0 0 0 0 0 0 0 0 0 0 0 0RAM3
1 0 0 0 1 1 1 1 1 1 1 1 1 1
Mapa de memoria
Existen partes no usadas del espacio de direcciones:
0000 a 03FF0C00 a 0FFF1400 a 1FFF2400 a 3FFF
31/05/2013 Electrnica DigitalElectrnica Digital 33
Nuevas lneas de direccinm - n = 2 (A10, A11)
Ejemplo:Banco RAM de 4K x 4 con memorias de 1K x 4 (seleccin decodificada)
Memoria 01K x 4
Memoria 11K x 4
Memoria 21K x 4
Memoria 31K x 4
Bus de datos D0...D3
D0.
..D3
D0.
..D3
D0.
..D3
D0.
..D3
A0.
..A9
A0.
..A9
A0.
..A9
A0.
..A9
Bus de direcciones A0...A11
Bus
de
dire
ccio
nes
A0.
..A11
Decoder 2 a 4
E0 E1A10
A11
R/W
R
/W
OE
O
E
CS
D0 D1 D2 D3
CS
CS
CS
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 34
Direc. Hexa
Direc.Decimal
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 ChipSeleccin Direcciones para cada chip
000 a3FF
0 a 1023
0 0 0 0 0 0 0 0 0 0 0 0RAM0
0 0 1 1 1 1 1 1 1 1 1 1
400 a7FF
1024 a 2047
0 1 0 0 0 0 0 0 0 0 0 0RAM1
0 1 1 1 1 1 1 1 1 1 1 1
800 aBFF
2048 a 3071
1 0 0 0 0 0 0 0 0 0 0 0RAM2
1 0 1 1 1 1 1 1 1 1 1 1
C00 aFFF
3072 a 4095
1 1 0 0 0 0 0 0 0 0 0 0RAM3
1 1 1 1 1 1 1 1 1 1 1 1
Mapa de memoria
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
El mapa se aprovecha por completo en forma lineal
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 38
Ejemplo: banco RAM de 4K x 8 con memorias de 1K x 4
Capacidad inicial N = 1K = 1024n = 10 bits (A0A9)
Capacidad final M = 4K = 4096m = 12 bits (A0A11)
Cantidad de memoriasX = M / N = 4 memorias 8 memorias
Nuevas lneas de direccin (mnimo): 12 - 10 = 2 (A10, A11)
Expansin de longitud de dato y de la capacidad total
31/05/2013 Electrnica DigitalElectrnica Digital 39Circuito del ejemplo
D0.
..D3
D0.
..D3
A0.
..A9
A0.
..A9
A0.
..A9
A0.
..A9
Bus
de
dire
ccio
nes
A0...
A11
R/W
OE
/CS
00
D4.
..D7
D4.
..D7
D0.
..D3
D4.
..D7
D0.
..D3
D4.
..D7
/CS
10
/CS
20
/CS
30
/CS
01
/CS
11
/CS
21
/CS
31
31/05/2013 Electrnica DigitalElectrnica Digital 40
Direc. Hexa
Direc.Dec.
Seleccin DireccionamientoChip
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
000 a3FF
0 a 1023
0 0 0 0 0 0 0 0 0 0 0 0 RAM0LRAM0H0 0 1 1 1 1 1 1 1 1 1 1
400 a7FF
1024 a 2047
0 1 0 0 0 0 0 0 0 0 0 0 RAM1LRAM1H0 1 1 1 1 1 1 1 1 1 1 1
800 aBFF
2048 a 3071
1 0 0 0 0 0 0 0 0 0 0 0 RAM2LRAM2H1 0 1 1 1 1 1 1 1 1 1 1
C00 aFFF
3072 a 4095
1 1 0 0 0 0 0 0 0 0 0 0 RAM3LRAM3H1 1 1 1 1 1 1 1 1 1 1 1
Mapa de memoria
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
Diseo
31/05/2013 Electrnica DigitalElectrnica Digital 41
A15 A14 A13 Decoder Mem Posicin en el mapa Bytes
0
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
1 X X RAM2 H8000 - HFFFF 32K
Caso: Hallar el mapa de memoria del circuito indicando las posiciones de memoria ocupadas por cada CI RAM.
Espejos en el mapa de memoria
31/05/2013 Electrnica DigitalElectrnica Digital 42
0 0000
No usado....8191 1FFF
8192 2000
RAM #1.....16383 3FFF
16384 4000RAM #1 (espejo)
....
24575 5FFF
40960 6000
No usado....49151 7FFF
41152 8000
RAM #2
65535 FFFF
8000
RAM #2...
9FFF
A000RAM #2(espejo)....
BFFF
C000RAM #2(espejo)....
DFFF
E000RAM #2(espejo)
FFFF
A15 ...A12 A11 ................ A08000 1 0 0 0 0000 0000 0000
A000 1 0 1 0 0000 0000 0000
C000 1 1 0 0 0000 0000 0000
E000 1 1 1 0 0000 0000 0000
Por ejemplo, a la primer posicin de memoria de RAM #2 se accede indistintamente con las direcciones: