Problemas Mapas SOL

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 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

FFFFF
F0000 RAM

9FFFF
RAM
80000

3FFFF
EPROM
00000

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 DIRECCIÓN DIRECCIÓN Nº DE ORGANIZACIÓN


SELECT COMIENZO FINAL DIRECCIONES DEL CIRCUITO
(hexadecimal) (hexadecimal)
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
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.

Tipo de Tamaño bus


Nombre Dirección inicial Dirección final
Memoria direcciones

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


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 DIRECCIÓN Nº DE


COMIENZO FINAL DIRECCIONES
(hexadecimal) (hexadecimal)

CS1 0x100000 0x13FFFF 256 K

CS2 0x140000 0x17FFFF 256 K


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.

D[7..0] D[7..0]
D[7..0] D[7..0]
A[16..0] A[16..0]
A[16..0] A[16..0]

EPROM EPROM
CSEPROM1 CSEPROM2
CS CS
/RD /RD
/OE /OE
ç

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 DIRECCIÓN Nº DE NÚMERO DE


COMIENZO FINAL DIRECCIONES IMAGENES
(hexadecimal) (hexadecimal)

CSEPROM1 0x1E0000 0x1FFFFF 128 K -

CSEPROM2 0x000000 0x07FFFF 512 K 4


Ejercicio 13

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


de memoria genérico:

0x3FFF FFFF

memorias
volátiles

0x1000 0000
0x0FFF FFFF
periféricos
0x0800 0000
0x07FF FFFF
memorias no
volátiles
0x0000 0000

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
1M 18

SDRAM0/1
8M 21

SRAM
256 K 16
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 + A 28 + 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.
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


Ejercicio 14

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


memoria genérico:

0xF FFFF
periféricos
0xF 8000
0xF 7FFF

memorias de
lectura
y escritura

0x4 0000
0x3 FFFF
memorias de
solo lectura
0x0 0000

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
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 + A 16

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.
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:
19

CSnTIMER = ∑ ̅𝐴̅̅𝑘̅
𝑘=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


Ejercicio 15

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

0xE00F FFFF
Bus perifericos
0xE000 0000
0xDFFF FFFF
Perifericos
externos
0xA000 0000 0x9FFF FFFF
Memoria externa
0x6000 0000
0x5FFF FFFF
Perifericos
internos
0x4000 0000
0x3FFF FFFF
SRAM
0x2000 0000 Memoria interna
0x1FFF FFFF
Flash
0x0000 0000 Memoria interna

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).


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:
17
̅̅̅̅̅
𝐶𝑆𝑋𝑆𝑅𝐴𝑀 = 𝐴31 + 𝐴 ̅̅̅̅̅
30 + 𝐴29 + ∑ 𝐴𝑖
𝑖=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
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


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 periferico (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 estan conectados directamente al core.

Apartado A. Indique, para cada una de estas memorias, su organizacion y las anchuras, en bits, de sus buses de
datos y direcciones. Indique tambien la anchura del bus de direcciones del periferico.

Memoria Organizacion Anchura de su bus de Anchura de su bus de


datos (bit) direcciones (bit)

MEM0 32 Kx32 32 15

MEM1 4 Kx32 32 12

Periferico ————— ————— 6

Apartado B. Para la decodificacion de MEM0 se emplea la OR logica de los 3 bit mas significativos del bus de
direcciones del procesador.
Indique (justificando las respuestas):
 Rango de direcciones (primera y ultima, en hexadecimal) ocupadas por MEM0 en el mapa de memoria
del procesador
 Numero total de direcciones ocupadas por MEM0 en el mapa
 Numero de imagenes de MEM0 en el mapa
 Tamano de cada imagen de MEM0 en el mapa
 Tipo de decodificacion (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.
Rango de direcciones
0x0000 0000 a 0x1FFF FFFF

Numero de direcciones
512 M

Numero de imagenes
4096

Tamano de cada imagen


128 K

Tipo de decodificacion
Incompleta

Apartado C. Para la decodificacion de MEM1 se emplea la funcion logica (A es el bus de direcciones del
procesador):
28

𝐴31 + 𝐴30 + ̅̅̅̅̅


𝐴29 + ∑ 𝐴𝑖
𝑖=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

Numero de direcciones
512 K

Numero de imagenes
32

Tamano de cada imagen


16 K

Tipo de decodificacion
Incompleta
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
volatil? En caso afirmativo indique cual (o cuales) deben ser forzosamente no volatiles. 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.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy