Departamento de Electrónica Electrónica Digital. Mapas de memoria. Bioingeniería Facultad de Ingeniería - UNER

Departamento de Electrónica Electrónica Digital Mapas de memoria Bioingeniería Facultad de Ingeniería - UNER 31/05/2013 Electrónica DigitalElectró
Author:  Sara Prado Duarte

0 downloads 35 Views 651KB Size

Story 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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.