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