ejercicio 10 - cartagena99.com

16
Ejercicio 10 Un sistema basado en el microprocesador de la figura 1 requiere un mapa de memoria como el indicado en la figura 2 Fig. 1 Fig. 2 Se cuenta con los siguientes circuitos de memoria: a) Rellene las siguiente tabla usando las filas precisas para caracterizar los circuitos que necesite CHIP SELECT DIRECCIÓN COMIENZO (hexadecimal) DIRECCIÓN FINAL (hexadecimal) Nº DE DIRECCIONES ORGANIZACIÓN DEL CIRCUITO CS1 00000 3FFFF 256 K 256K x 8 CS2 80000 8FFFF 64K 64K x 8 CS3 90000 9FFFF 64K 64K x 8 CS4 F0000 FFFFF 64K 64K x 8 CS5 b) Indique las ecuaciones de los «chip-selects» que gobiernen el funcionamiento de los distintos circuitos empleados si se desea que no haya imágenes. CS1 = A 19 + A 18 + /MEM CS2 = /A 19 + A 18 + A 17 + A 16 + /MEM CS3 = /A 19 + A 18 + A 17 + /A 16 + /MEM CS4 = /A 19 + /A 18 + /A 17 + /A 16 + /MEM F0000 9FFFF 3FFFF 80000 00000 FFFFF EPROM RAM RAM

Upload: others

Post on 20-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ejercicio 10 - cartagena99.com

Ejercicio 10

Un sistema basado en el microprocesador de la figura 1 requiere un mapa de memoria como el indicado en

la figura 2

Fig. 1 Fig. 2

Se cuenta con los siguientes circuitos de memoria:

a) Rellene las siguiente tabla usando las filas precisas para caracterizar los circuitos que necesite

CHIP

SELECT

DIRECCIÓN

COMIENZO

(hexadecimal)

DIRECCIÓN

FINAL

(hexadecimal)

Nº DE

DIRECCIONES

ORGANIZACIÓN

DEL CIRCUITO

CS1 00000 3FFFF 256 K 256K x 8

CS2 80000 8FFFF 64K 64K x 8

CS3 90000 9FFFF 64K 64K x 8

CS4 F0000 FFFFF 64K 64K x 8

CS5

b) Indique las ecuaciones de los «chip-selects» que gobiernen el funcionamiento de los distintos

circuitos empleados si se desea que no haya imágenes.

CS1 = A19 + A18 + /MEM

CS2 = /A19 + A18 + A17 + A16 + /MEM

CS3 = /A19 + A18 + A17 + /A16 + /MEM

CS4 = /A19 + /A18 + /A17 + /A16 + /MEM

F0000

9FFFF

3FFFF

80000

00000

FFFFF

EPROM

RAM

RAM

Page 2: Ejercicio 10 - cartagena99.com

Ejercicio 11

Se dispone de un procesador de 8 bits con capacidad para direccionar 1 M posiciones de memoria. El

procesador dispone de un único mapa en el que se pueden ubicar tanto memoria como periféricos.

El procesador arranca tras un reset ejecutando el código que se encuentra en su dirección más baja de

memoria. Por otro lado, el puntero de pila, un stack del tipo empty-descending, se encuentra inicialmente

apuntando a la dirección más alta del mapa de memoria.

Apartado A) Al procesador se debe conectar una memoria de 256 KB para almacenar el programa a partir de la dirección

del reset. El sistema también posee una zona de datos de otros 128 KB a continuación de la memoria de

programa. Adicionalmente, la pila ocupa 16 KB.

Para realizar el sistema dispone de todos aquellos circuitos de memoria que desee, del tamaño y

formato que considere más oportuno de forma que emplee el menor número de circuitos posible.

Rellene una fila de la siguiente tabla para cada una de las memorias que necesite.

Nombre Tipo de

Memoria

Tamaño bus

direcciones Dirección inicial Dirección final

Mem1 ROM 18 0x00000 0x3FFFF

Mem2 RAM 17 0x40000 0x5FFFF

Mem3 RAM 14 0xFC000 0xFFFFF

Mem4

Apartado B) Genere las ecuaciones de los Chip Select que permiten mapear las memorias usadas en el apartado anterior

suponiendo que todas ellas disponen de una señal CS activa a nivel alto. Utilice para ello una

decodificación completa.

CS1= /A19·/A18

CS2= /A19·A18·/A17

CS3= A19·A18·A17·A16·A15·A14

Apartado C) Se mapea un periférico que tiene 32 posiciones de 8 bits en el mapa de memoria a partir de la dirección

0xAF000. Para la generación de su CS se emplean las 8 líneas de mayor peso del bus de direcciones.

Indique el rango de direcciones que ocupa el periférico en la memoria, la ecuación del CS (activo a nivel

bajo) y el número de imágenes.

CSP = /A19 + A18 + /A17 + A16 + /A15 + /A14 + /A13 + /A12

Rango: 0xAF000 – 0xAFFFF (0x01000 = 4096 direcciones)

Imágenes: 4096 / 32 = 128 imágenes

Page 3: Ejercicio 10 - cartagena99.com

Ejercicio 12

a) Un sistema basado en el microprocesador de la figura requiere en su mapa de memoria 512 KB de RAM.

Dibuje y conecte todas las memorias que considere necesarias como la que aparece en la figura.

b) Indique las ecuaciones de los CS de todas las memoria RAM que haya dibujado anteriormente y

complete la siguiente tabla sabiendo que los 512 KB de memoria deben estar ubicados a partir de la

dirección 0x100000 del mapa de memoria del microprocesador. Debe realizar la decodificación

completa (sin imágenes) para todas las memorias que haya utilizado.

CS1= /A20 + A19 + A18

CS1= /A20 + A19 + /A18

CHIP SELECT DIRECCIÓN

COMIENZO

(hexadecimal)

DIRECCIÓN

FINAL

(hexadecimal)

Nº DE

DIRECCIONES

CS1 0x100000 0x13FFFF 256 K

CS2 0x140000 0x17FFFF 256 K

Page 4: Ejercicio 10 - cartagena99.com

c) Se añaden al sistema dos memorias EPROM cuyos CS son los que se muestran a continuación. Hay que

tener en cuenta que el CS de la memoria es activo a nivel alto.

ç

CS EPROM1= A20·A19·A18·A17

CS EPROM2= /A20·/A19

Rellene la siguiente tabla indicando cómo se han mapeado ambas memorias.

CHIP SELECT DIRECCIÓN

COMIENZO

(hexadecimal)

DIRECCIÓN

FINAL

(hexadecimal)

Nº DE

DIRECCIONES

NÚMERO DE

IMAGENES

CSEPROM1

0x1E0000

0x1FFFFF

128 K

-

CSEPROM2

0x000000

0x07FFFF

512 K

4

EPROM

D[7..0]

A[16..0]

CS

/OE

D[7..0]

A[16..0]

/RD

CSEPROM2

EPROM

D[7..0]

A[16..0]

CS

/OE

D[7..0]

A[16..0]

/RD

CSEPROM1

Page 5: Ejercicio 10 - cartagena99.com

Ejercicio 13

Un determinado microprocesador, cuya longitud de palabra es de 32 bits, presenta el siguiente mapa

de memoria genérico:

Las direcciones generadas por este procesador (y las indicadas en el mapa anterior) son direcciones

de palabra (no de byte).

En este mapa se desean ubicar las siguientes memorias:

Una memoria FLASH de 256 K x 32 en la dirección más baja posible del mapa

Un par de memorias SDRAM de 2 M x 32 formando un bloque de 4 M x 32, en la dirección

más baja posible del mapa

Una memoria SRAM de 64 K x 32 en la dirección más alta posible del mapa

Tenga en cuenta que todas las entradas de selección de chip (CSn) de estas memorias son activas a

nivel bajo.

En estas circunstancias, conteste a los siguientes apartados:

Apartado A. ¿Cuántos bits tiene el bus de direcciones, A, de este microprocesador? Justifique la respuesta.

30 bits (la dirección más alta, 0x3FFF FFFF, tiene 30 bits).

Apartado B. Indique, para cada chip de memoria, su capacidad en bytes y la anchura, en bits, de su bus de

direcciones.

Memoria Capacidad (bytes) Anchura de su bus de direcciones (bits)

FLASH

1 M

18

SDRAM0/1

8 M

21

SRAM

256 K

16

0x0000 0000

memorias novolátiles

0x07FF FFFF

periféricos0x0800 0000

0x0FFF FFFF0x1000 0000

memoriasvolátiles

0x3FFF FFFF

Page 6: Ejercicio 10 - cartagena99.com

Apartado C. Obtenga la expresión booleana de la señal de selección de chip para la memoria FLASH,

CSnFLASH. Recuerde que dicha memoria desea ubicarse en la posición más baja posible del mapa. Debe

emplearse decodificación completa.

Puesto que la memoria FLASH es no volátil deberá ubicarse en la zona más baja del mapa, es decir, a

partir de la dirección 0x0000 0000. De los 30 bits A[29..0] del bus de direcciones del microprocesador,

los 18 de menor peso A[17..0] se conectarán directamente al bus de direcciones de la FLASH.

La FLASH ocupará, por tanto, las direcciones desde 0x0000 0000 hasta 0x0003 FFFF. Para todas ellas

los bits restantes del bus de direcciones A[29..18] valen todos 0, con lo que:

CSnFLASH = A29 + A28 + A27 + A26 + A25 + A24 + A23 + A22 + A21 + A20 + A19 + A18

Apartado D. Obtenga las expresiones booleanas de las señales de selección de chip para las memorias

SDRAM0 y SDRAM1, CSnSDRAM0 y CSnSDRAM1. Recuerde que dichas memorias desean ubicarse en las

posiciones más bajas posibles del mapa, formando un bloque de 4 M x 32 (2 M + 2 M). Debe emplearse

decodificación incompleta para minimizar la complejidad de esta lógica.

Puesto que las memorias SDRAM son volátiles deberán ubicarse en la zona del mapa reservada para tal

fin y, dentro de ella, en las posiciones más bajas, es decir, a partir de la dirección 0x1000 0000. De los 30

bits A[29..0] del bus de direcciones del microprocesador, los 21 de menor peso A[20..0] se conectarán

directamente al bus de direcciones de las SDRAM. El siguiente bit, A21, se empleará para direccionar SDRAM0

(A21 = 0) o SDRAM1 (A21 = 1).

Los restantes bits del bus de direcciones A[29..22] valen, en este rango, desde 0100 0000B (para la

dirección 0x1000 0000) hasta 1111 1111B (para la dirección 0x3FFF FFFF). La decodificación más simple,

dentro de este rango y para este caso, es que las memorias SDRAM ocupen el rango en que estos bits valen

desde 0100 0000B hasta 0111 1111B, (en este rango A[29..28] = 01B) es decir, desde la

dirección 0x1000 0000 hasta 0x1FFF FFFF. Con todo ello:

CSnSDRAM0 = A29 + A28 + A21

CSnSDRAM1 = A29 + A28 + A21

Apartado E. Con la decodificación anterior ¿cuántas imágenes hay de cada chip de SDRAM en el mapa del

microprocesador? Indique el rango de direcciones y el número de ellas ocupado por las memorias SDRAM en

el mapa de memoria del microprocesador.

Los bits A[27..22] (6 en total) del bus de direcciones del microprocesador no se emplean en la

decodificación, con lo que el número de imágenes será 26 = 64.

Las memorias SDRAM ocupan, según la decodificación anterior, todas las direcciones que tienen sus

dos MSBs a 01B, es decir, desde 0x1000 0000 hasta 0x1FFF FFFF, en total 0x1000 000 = 256 M direcciones.

Por otro lado, 256 M ocupados/4 M por imagen = 64 imágenes, confirmando el cálculo anterior.

Page 7: Ejercicio 10 - cartagena99.com

Apartado F. Indique, para cada una de las siguientes direcciones, el chip (FLASH, SDRAM0, SDRAM1 o

SRAM) al que corresponde.

Dirección Chip

0x15E3 748B

SDRAM1

0x3FFF BAAD

SRAM

0x0002 3CEF

FLASH

0x1FC0 0034

SDRAM0

Page 8: Ejercicio 10 - cartagena99.com

Ejercicio 14

Un determinado microprocesador, cuya longitud de palabra es de 16 bits, presenta el siguiente mapa de

memoria genérico:

Las direcciones generadas por este procesador (y las indicadas en el mapa anterior) son direcciones

de palabra (no de byte). Periféricos y memoria comparten el mismo mapa.

En este mapa se desean ubicar los siguientes recursos:

Una memoria PROM de 32 K x 16 en la dirección más baja posible del mapa

Un par de memorias SRAM de 64 K x 16 formando un bloque de 128 K x 16, en la dirección

más baja posible del mapa

Un timer que ocupa 8 direcciones consecutivas, en la dirección más alta posible del mapa

Tenga en cuenta que todas las entradas de selección de chip (CSn) de estos recursos son activas a

nivel bajo.

En estas circunstancias, conteste a los siguientes apartados:

Apartado A. ¿Cuántos bits tiene el bus de direcciones, A, de este microprocesador? Justifique la respuesta.

20 bits (la dirección más alta, 0xF FFFF, tiene 20 bits).

Apartado B. Indique, para cada chip de memoria, su capacidad en bytes y la anchura, en bits, de su bus de

direcciones.

Memoria Capacidad (bytes) Anchura de su bus de direcciones (bits)

PROM

64 K

15

SRAM0/1

128 K

16

0x0 0000

memorias desolo lectura

0x3 FFFF

periféricos

0x4 0000

0xF 7FFF0xF 8000

memorias delectura

y escritura

0xF FFFF

Page 9: Ejercicio 10 - cartagena99.com

Apartado C. Obtenga la expresión booleana de la señal de selección de chip para la memoria PROM,

CSnPROM. Recuerde que dicha memoria desea ubicarse en la posición más baja posible del mapa. Debe

emplearse decodificación completa.

Puesto que la memoria PROM es de solo lectura deberá ubicarse en la zona más baja del mapa, es decir,

a partir de la dirección 0x0 0000. De los 20 bits A[19..0] del bus de direcciones del microprocesador, los 15

de menor peso A[14..0] se conectarán directamente al bus de direcciones de la PROM.

La PROM ocupará, por tanto, las direcciones desde 0x0 0000 hasta 0x0 7FFF. Para todas ellas los bits

restantes del bus de direcciones A[19..15] valen todos 0, con lo que:

CSnPROM = A19 + A18 + A17 + A16 + A15

Apartado D. Obtenga las expresiones booleanas de las señales de selección de chip para las memorias

SRAM0 y SRAM1, CSnSRAM0 y CSnSRAM1. Recuerde que dichas memorias desean ubicarse en las posiciones más

bajas posibles del mapa, formando un bloque de 128 K x 16 (64 K + 64 K). Debe emplearse decodificación

incompleta, recordando que, a la vista del mapa de memoria genérico de este procesador, no puede haber

ninguna imagen de las memorias SRAM fuera de la zona asignada a memorias de su tipo.

Puesto que las memorias SRAM son de lectura y escritura deberán ubicarse en la zona del mapa

reservada para tal fin y, dentro de ella, en las posiciones más bajas, es decir, a partir de la

dirección 0x4 0000. De los 20 bits A[19..0] del bus de direcciones del microprocesador, los 16 de menor

peso A[15..0] se conectarán directamente al bus de direcciones de las SRAM. El siguiente bit, A16, se

empleará para direccionar SRAM0 (A16 = 0) o SRAM1 (A16 = 1).

Por otro lado, el bloque SRAM no podrá ubicarse a partir de direcciones iguales o superiores a

0xD 8000 = 0xF 8000 (límite de los periféricos) – 128 K (tamaño del bloque) puesto que, en caso contrario,

direcciones pertenecientes al bloque SRAM se solaparían con la zona reservada a periféricos.

Los restantes bits del bus de direcciones A[19..17] valen, en este rango (0x4 000~0xD 7FFF),

desde 010B (para la dirección 0x4 0000) hasta 110B (para la dirección 0xD 7FFF). La decodificación más

simple, dentro de este rango y para este caso, es que las memorias SRAM ocupen el rango en que estos bits

valen desde 010B hasta 011B, (en este rango A19 = 0 y A18 = 1) es decir, desde la dirección 0x4 0000

hasta 0x7 FFFF. Con todo ello:

CSnSRAM0 = A19 + A18 + A16

CSnSRAM1 = A19 + A18 + A16

Apartado E. Con la decodificación anterior ¿cuántas imágenes hay de cada chip de SRAM en el mapa del

microprocesador? Indique el rango de direcciones y el número de ellas ocupado por las memorias SRAM en

el mapa de memoria del microprocesador.

El bit A17 del bus de direcciones del microprocesador no se emplea en la decodificación, con lo que

el número de imágenes será 21 = 2.

Las memorias SRAM ocupan, según la decodificación anterior, todas las direcciones que tienen sus

dos MSBs a 01B, es decir, desde 0x4 0000 hasta 0x7 FFFF, en total 0x4 0000 = 256 K direcciones.

Por otro lado, 256 K ocupados/128 K por imagen = 2 imágenes, confirmando el cálculo anterior.

Page 10: Ejercicio 10 - cartagena99.com

Apartado F. Obtenga la expresión booleana de la señal de selección para el timer, CSnTIMER. Recuerde que

dicho recurso desea ubicarse en la posición más alta posible del mapa. Debe emplearse decodificación

completa.

Puesto que un timer es un periférico (que ocupa 8 direcciones) deberá ubicarse en la zona del mapa

reservada para tal fin y, dentro de ella, en las posiciones más altas, es decir, a partir de la

dirección 0xF FFFF – 7 = 0xF FFF8). Los 3 bits de menor peso del bus de direcciones A[2..0] son

empleados por el periférico, y los 17 bits restantes A[19..3] se emplean en la decodificación. En el rango

ocupado por el periférico todos estos bits están a 1, con lo que:

CSnTIMER = ∑𝐴𝑘

19

𝑘=3

Apartado G. Indique, para cada una de las siguientes direcciones, el recurso (PROM, SRAM0, SRAM1, timer o

«ninguno») al que corresponde.

Dirección Chip

0x6 FE05

SRAM0

0xF FFFC

Timer

0x0 5A5A

PROM

0x5 4054

SRAM1

0xB 0FA2

Ninguno

Page 11: Ejercicio 10 - cartagena99.com

Ejercicio 15

Un microcontrolador basado en un núcleo de 32 bits usa el siguiente mapa de memoria:

En el que todas las direcciones son direcciones de palabra. En este mapa se desean ubicar las

siguientes memorias, todas ellas de longitud de palabra igual a 32 bits: Una memoria ROM en el rango de direcciones de 0xE00F F000 a 0xE00F FFFF (esta memoria

será accedida como si fuese un periférico, las demás lo serán como memorias). Una memoria SRAM externa con una capacidad de 512 KByte en la dirección más baja posible del

mapa. Un par de memorias EEPROM externas formando un bloque de 4 M direcciones, en la posición

más alta posible del mapa

Estas memorias son tales que las entradas de selección de chip de las memorias volátiles son activas a

nivel bajo, y las del resto de memorias lo son a nivel alto.

En estas circunstancias conteste a los siguientes apartados:

Apartado A. ¿Cuántos bits tiene el bus de direcciones de este sistema? Justifique la respuesta.

32 bits (la dirección más alta, 0xE00F FFFF, usa A31).

0x0000 0000

Flash

Memoria interna

0x1FFF FFFF

SRAM Memoria interna 0x2000 0000

0x3FFF FFFF

0x4000 0000

Bus perife ricos 0xE00F FFFF

0xE000 0000

Perife ricos internos

Memoria externa

Perife ricos externos

0x6000 0000

0xA000 0000

0x5FFF FFFF

0x9FFF FFFF

0xDFFF FFFF

Page 12: Ejercicio 10 - cartagena99.com

Apartado B. Indique, para cada chip de memoria, su organización y su anchura del bus de direcciones.

Chip Organización Anchura de su bus de direcciones (bits)

ROM

4 K x 32

12

SRAM

128 K x 32

17

EEPROM0/1

2 M x 32

21

Apartado C. Obtenga la expresión booleana de la señal de selección de chip para la memoria SRAM, CSXSRAM. Recuerde que dicha memoria desea ubicarse en la posición más baja posible del mapa. Debe emplearse decodificación completa.

Puesto que la memoria SRAM es externa y debe ubicarse en las posición más baja posible del mapa, debe situarse a partir de la dirección 0x6000 0000. De los 32 bits A[31..0] del bus de direcciones del procesador, los 17 de menor peso A[16..0] se conectarán directamente al bus de direcciones de la SRAM. La SRAM ocupará, por tanto, las direcciones desde 0x6000 0000 hasta 0x6001 FFFF. Además es una memoria volátil, por lo que según el enunciado su entrada de selección de chip es activa a nivel bajo, por todo ello:

𝐶𝑆𝑋𝑆𝑅𝐴𝑀 = 𝐴31 + 𝐴30 + 𝐴29 + ∑ 𝐴𝑖

17

𝑖=28

Apartado D. Obtenga las expresiones booleanas de las señales de selección de chip para las memorias EEPROM0 y EEPROM1, CSXEEPROM0 y CSXEEPROM1. Recuerde que dichas memorias desean ubicarse en la posición más alta posible del mapa, formando un bloque de 4 M direcciones. Debe emplearse decodificación incompleta para minimizar la complejidad de esta lógica.

Puesto que las memorias EEPROM son externas, deberán ubicarse en la zona del mapa reservada para tal fin y, dentro de ella, en las posiciones más altas, es decir, justo debajo de la dirección 0x9FFF FFFF. De los 32 bits A[31..0] del bus de direcciones del microprocesador, los 21 de menor peso A[20..0] se conectarán directamente al bus de direcciones de las EEPROM. El siguiente bit, A21, se empleará para direccionar EEPROM0 (A21 = 0) o EEPROM1 (A21 = 1).

Los diez restantes bits del bus de direcciones A[31..22] valen, desde la dirección siguiente a la SRAM (0x6002 0000) hasta la última dirección que pueden ocupar las memorias EEPROM (0x9FFF FFFF): desde 0110 0000 00B hasta 1001 1111 11B. La decodificación más simple, dentro de este rango, es fijar A[31..22] = 100X XXXX XXB, que no se solapa con la SRAM y que alcanza la dirección más alta, 0x9FFF FFFF.

Puesto que las memorias EEPROM son no volátiles sus señales de selección de chip serán, de acuerdo al

enunciado, activas a nivel alto, con lo que:

𝐶𝑆𝑋𝐸𝐸𝑃𝑅𝑂𝑀0 = 𝐴31 ⋅ 𝐴30 ⋅𝐴29 ⋅A21

𝐶𝑆𝑋𝐸𝐸𝑃𝑅𝑂𝑀1 = 𝐴31 ⋅ 𝐴30 ⋅𝐴29 ⋅𝐴21

Page 13: Ejercicio 10 - cartagena99.com

Apartado E. Con la decodificación anterior ¿cuántas imágenes hay de cada chip de EEPROM en el mapa del procesador? Indique el rango de direcciones y el número de ellas ocupado por las memorias EEPROM en el mapa de memoria del microprocesador.

Los bits A[28..22] (7 en total) del bus de direcciones del procesador no se emplean en la decodificación, con lo que el número de imágenes de cada chip será 27 = 128. Las memorias EEPROM ocupan, según la decodificación anterior, todas las direcciones que van desde la 0x8000 0000 hasta 0x9FFF FFFF, es decir, 512 M direcciones. Puesto que cada imagen de las dos memorias EEPROM ocupa 4 M direcciones, el número total de imágenes debe ser 512 M/4 M = 128 imágenes, en concordancia con el resultado anterior.

Apartado F. Indique, para cada una de las siguientes direcciones, el chip (ROM, EEPROM0, EEPROM1 o SRAM) al que corresponde.

Dirección Chip

0x15E3 748B

Ninguno

0x6000 BAAD

SRAM

0x9F11 3CEF

EEPROM0

0x80A7 0034

EEPROM1

Page 14: Ejercicio 10 - cartagena99.com

Ejercicio 16

En un determinado microcontrolador basado en un procesador ARM Cortex-M0 (little-endian) se ubican: una memoria (MEM0) de capacidad 128 KB; una memoria (MEM1) de capacidad 16 KB; un perife rico (PER0) con 64 direcciones internas.

Todos estos elementos tienen su correspondiente entrada de chip select activa a nivel bajo y sus buses de direcciones y datos esta n conectados directamente al core.

Apartado A. Indique, para cada una de estas memorias, su organizacio n y las anchuras, en bits, de sus buses de datos y direcciones. Indique tambie n la anchura del bus de direcciones del perife rico.

Apartado B. Para la decodificacio n de MEM0 se emplea la OR lo gica de los 3 bit ma s significativos del bus de direcciones del procesador.

Indique (justificando las respuestas): Rango de direcciones (primera y u ltima, en hexadecimal) ocupadas por MEM0 en el mapa de memoria

del procesador Nu mero total de direcciones ocupadas por MEM0 en el mapa Nu mero de ima genes de MEM0 en el mapa Taman o de cada imagen de MEM0 en el mapa Tipo de decodificacio n (completa o incompleta) empleada para MEM0 Rellena la tabla adjunta con los resultados pedidos.

Al emplearse la OR de los 3 bit más significativos y ser el chip select de MEM0 activo a nivel bajo, MEM0 ocupa todas las direcciones del mapa que comienzan, en binario, por 000. Puesto que el procesador Cortex-M0 tiene un bus de direcciones de 32 bit, las direcciones ocupadas por MEM0 van desde 0x0000 0000 hasta 0x1FFF FFFF. Esto son 0x2000 0000 direcciones, es decir 512 M (direcciones de byte). Dado que MEM0 alberga 128 KB, existen 512 M/128 K = 4096 imágenes de MEM0. Por otro lado, de los 32 bit del bus de direcciones del procesador, 3 se emplean en la decodificación de MEM0, 2 (los de menor peso) se descartan al hacer la conversión de direcciones de byte (del procesador) a direcciones de palabra (de la memoria) y 15 van a MEM0, de manera que quedan 32–3–2–15 = 12 sin usar, por lo que debe haber 212 = 4096 imágenes, como ya se había calculado y la decodificación es incompleta.

Memoria Organizacio n Anchura de su bus de datos (bit)

Anchura de su bus de direcciones (bit)

MEM0

32 Kx32

32

15

MEM1

4 Kx32

32

12

Perife rico

— — — — —

— — — — —

6

Page 15: Ejercicio 10 - cartagena99.com

Rango de direcciones

0x0000 0000 a 0x1FFF FFFF

Nu mero de direcciones

512 M

Nu mero de ima genes

4096

Taman o de cada imagen

128 K

Tipo de decodificacio n

Incompleta

Apartado C. Para la decodificacio n de MEM1 se emplea la funcio n lo gica (A es el bus de direcciones del procesador):

𝐴31 + 𝐴30 + 𝐴29 + ∑ 𝐴𝑖

28

𝑖=19

Responda a las mismas preguntas que en el apartado anterior (en este caso referidas a MEM1). No olvide justificar sus respuestas.

MEM1 ocupa todas las direcciones del mapa que comienzan, en binario, por 0010 0000 0000 0, es decir desde 0x2000 0000 hasta 0x2007 FFFF. Esto son 0x8 0000 direcciones, es decir 512 K (direcciones de byte). Dado que MEM1 alberga 16 KB, existen 512 K/16 K = 32 imágenes de MEM1. Por otro lado, de los 32 bit del bus de direcciones del procesador, 13 se emplean en la decodificación de MEM1, 2 (los de menor peso) se descartan al hacer la conversión de direcciones de byte (del procesador) a direcciones de palabra (de la memoria) y 12 van a MEM1, de manera que quedan 32–13–2–12 = 5 sin usar, por lo que debe haber 25 = 32 imágenes, como ya se había calculado y la decodificación es incompleta.

Rango de direcciones

0x2000 0000 a 0x2007 FFFF

Nu mero de direcciones

512 K

Nu mero de ima genes

32

Taman o de cada imagen

16 K

Tipo de decodificacio n

Incompleta

Page 16: Ejercicio 10 - cartagena99.com

Apartado D. A la vista de todo lo anterior y conociendo las particularidades de la arquitectura del procesador ARM Cortex-M0 ¿puede asegurarse que alguna de entre MEM0 y MEM1 deba ser forzosamente una memoria no vola til? En caso afirmativo indique cua l (o cua les) deben ser forzosamente no vola tiles. Justifique sus respuestas. En las direcciones 0x0000 0000 y 0x0000 0004 del mapa de memoria de un procesador ARM Cortex-M0 deben ubicarse el valor inicial de SP y PC respectivamente, lo que obliga a que esas direcciones estén ubicadas en alguna memoria no volátil. Puesto que esas direcciones se corresponden con MEM0, esta debe ser, forzosamente, no volátil.