Download MEMORIA

Document related concepts
no text concepts found
Transcript
MEMORIA
EJERCICIO 1
Determinar el mapa de memoria de un procesador con 16 señales de bus de direcciones,
una señal de asentimiento de bus de direcciones AS*, una señal de lectura R* , otra de
escritura W* y 8 señales de bus de datos. Siendo las señales de control activas a nivel
bajo y las funciones de selección de 4 pastillas:
CS1* = AS * + A15 + A14
CS 2 * = AS * + R * + A15 + A14
CS 3* = AS * + A15 + A14 + A13 + A12 + A11 + A10 + A9 + A8 + A7 + A6
CS 4 * = AS * + W * + A15 + A14 + A13 + A12 + A11 + A10 + A9 + A8 + A7 + A6
Se deberá presentar el mapa de memoria y comentar cualquier condición específica que
deba cumplirse para acceder a cada uno de los espacios de direccionamiento.
EJERCICIO 2
En un procesador con un bus de direcciones de 16 bits (A0...A15) y un bus de datos de 8
bits (D0...D7) queremos disponer del mapa de memoria de la siguiente figura, donde las
memorias son de 2Kx8 y tienen la pata de selección a nivel bajo.
$0000
M1
$1800
M2
$7000
M3
$A000
M4
$FFFF
Se pide dibujar el circuito de decodificación parcial, utilizando exclusivamente puertas OR
y NOT.
1
EJERCICIO 3
Los chips de memoria 27S40 tienen la siguiente interfaz: A0...A11 (bus de direccciones),
D0...D3 (bus de datos) y CS (chip select). ¿Cuántas pastillas necesitamos para dotar a un
MC68000 de 32 Kbytes de memoria?. Razona la respuesta.
EJERCICIO 4
Tenemos una CPU con un bus de direcciones de 16 bits y un bus de datos de 8 bits.
Queremos conectarle el siguiente mapa de memoria, donde cada dirección representa un
byte:
$2000
$2080
E/S
$3000
ROM
$3FFF
Para ello disponemos únicamente de pastillas ROM de 1K palabras de 2 bits. Indica
cuántas pastillas de memoria nos harán falta. Razona la respuesta.
EJERCICIO 5
Tenemos un ordenador con 4 dispositivos (memorias o controladores) que se conectan a
un procesador MC68000, mediante las siguientes funciones de selección:
CS1* = AS * + LDS * + UDS * + A23 + A22 + A21 + A20
CS 2 * = AS * + UDS * + A23 + A22 + A21 + A20
CS 3* = AS * + A23 + A22 + A21 + A20
CS 4 * = AS * + LDS * + UDS * + A23 + A22 + A21 + A20
En la dirección $800000 tenemos cargadas las instrucciones siguientes:
MOVE.B $0, $100000
MOVE.L $200000, $300000
Determinar la secuencia de selección de los 4 dispositivos a lo largo de la ejecución de las
dos instrucciones.
2
EJERCICIO 6
Tenemos un sistema con el siguiente mapa de memoria:
1K de EPROM a partir de la dirección $00000
1K de RAM a partir de la dirección $20000
1 controlador de teclado con 32 registros a partir de la dirección $28000
1 controlador de línea serie con 32 registros desde la dire cción $88000
El sistema está controlado por un microprocesador con un bus de direcciones de 20 bits
(A0...A19) y un bus de datos de 8 bits (D0...D7). Queremos hacer una decodificación
parcial utilizando únicamente un decodificador de 2x4. Indica qué pines del bus de
direcciones conectarías a las dos entradas del decodificador. Razona la respuesta.
EJERCICIO 7
Tenemos un ordenador con un procesador MC68000, conectado a 6 pastillas de memoria
RAM (RAM1...RAM6) de 8K palabras de 8 bits cada una, cuyas funciones de selección se
indican a continuación:
*
*
*
CS RAM
1 = AS + UDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
*
*
*
CS RAM
2 = AS + LDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
*
*
*
CS RAM
3 = AS + UDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
*
*
*
CS RAM
4 = AS + LDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
*
*
*
CS RAM
5 = AS + UDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
*
*
*
CS RAM
6 = AS + LDS + A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14
Se pide:
a) Dibujar el mapa de memoria de este ordenador.
b) En este ordenador se ejecuta el programa siguiente, almacenado a partir de la
dirección $020354.
$020354
$020358
$02035E
$020360
$020366
MOVE.B
MOVE.B
ADD.W
MOVE.W
#02, D0
$702, D1
D0, D1
D1, $102FF0
Indica a cuáles de estas pastillas de memoria se accede al ejecutar cada una de
las instrucciones del programa.
EJERCICIO 8
Se tiene un procesador con un bus de direcciones de 16 bits (A0...A15) y un bus de datos
de 8 bits (D0...D7) al que se desea conectar dos pastillas de memoria RAM. Una de las
pastillas, RAM1 es de 4Kx8 y estará situada a partir de la dirección 0000; la RAM2 es de
8Kx8 y estará situada a partir de la dirección E000. Ambas pastillas tienen entrada de
selección activa a nivel bajo. Escribe la función de selección de las pastillas en los
siguientes casos (no se consideran las señales de lectura y escritura).
a) Lógica de decodificación total.
b) Lógica de decodificación parcial.
3
EJERCICIO 9
Se desea dotar a un microprocesador MC68000 de 4 Kbytes de memoria ROM en las
direcciones más bajas y de 8 Kbytes de memoria RAM a continuación de la memoria
ROM. Además se desea conectar un controlador de E/S que dispone de 32 registros
internos y que trabaja con interrupciones vectorizadas. Se dispone de pastillas de
memoria ROM de 2K palabras de 8 bits cada una y de pastillas de memoria RAM de 4K
palabras de 4 bits cada una. Indicar la función de selección de cada una de las pastillas y
del controlador de E/S utilizando para ello decodificación parcial (todas las patas de
función de selección son activas a nivel bajo).
EJERCICIO 10
Indicar el formato (disposición y longitud de campos) de una dirección de memoria de un
sistema basado en una CPU que es capaz de direccionar 1 Mbyte y que dispone de una
memoria caché con correspondencia directa con bloques de 16 bytes, sabiendo que una
línea de caché puede estar compartida por 1024 bloques.
EJERCICIO 11
Se dispone de un sistema en el que el procesador ve un espacio de direccionamiento de 1
Mbyte, pudiendo acceder al contenido de la memoria con una resolución a nivel de byte. A
este sistema se le incorpora una memoria caché de 256 Kbytes con líneas de 8 bytes,
cuya política de ubicación se basa en una correspondencia asociativa de conjuntos de 16
vías (de 16 bloques). Indicar el formato (disposición y longitud de campos) de una
dirección proveniente de la CPU, para poder acceder a la información solicitada por ésta.
EJERCICIO 12
En un sistema de control industrial se pretende ejecutar el siguiente bucle un millón de
veces:
0021FC
MOVE.B
$3002FA, D0
? Instrucción 1 (I1)
002200
ADD.L
$1141FC, D2
? Instrucción 2 (I2) (traspaso hacia D2)
002204
JMP
$0021FC
? Instrucción 3 (I3)
002208
Nota: las direcciones hexadecimales expresan bytes (no palabras de 16 bits)
Disponemos de los siguientes elementos hardware para configurar la arquitectura:
CPU ? tiempo del ciclo de ejecución de cada instrucción (una vez extraida la instrucción
y los operandos): 20 ns.
bus de datos: 16 bits. funcionamiento “tipo” 68000
Memoria principal ? tiempo de lectura o escritura de una palabra (16 bits): 90 ns.
tamaño de la memoria principal: 2 24 bytes
Memoria caché ? tiempo de lectura o escritura de una palabra (16 bits): 30 ns.
tamaño de la memoria caché: 2 13 bytes
tamaño de la línea: 256 bytes.
tiempo de traspaso de un bloque en lectura o escritura (con ayuda de
hardware especializado para realizar este cometido): 270 ns.
4
APARTADO A
Tiempo necesario para ejecutar el bucle un millón de veces empleando una arquitectura
basada en CPU y memoria principal.
SOLUCIÓN
t. extracción
instrucción
t. extracción
operando
t. ejecución
Tiempo necesario
para I1:
Tiempo necesario
para I2:
Tiempo necesario
para I3:
Tiempo total (1 bucle)
Tiempo total (1 vuelta con extracciones
y ejecución):
Tiempo total del bucle (106 vueltas) en
segundos:
APARTADO B
Tiempo necesario para ejecutar el bucle un millón de veces empleando una arquitectura
basada en CPU, memoria principal y memoria caché de correspondencia directa.
Para resolver este apartado se debe
precisar cual es el estado de la memoria
caché tras la ejecución de cada
instrucción. Para ello basta con rellenar
los campos definidos en los gráficos que
se aportan, tal y como se indica en el
dibujo de la derecha. Emplear notación
hexadecimal.
Línea de la
memoria
caché
Nº de bloque
cargado en la
memoria caché Etiqueta
Inicialmente la memoria caché se considera vacía.
Tiempos y estado de la memoria caché después de ejecutar la instrucción 1 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
5
Tiempos y estado de la memoria caché después de ejecutar la instrucción 2 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Tiempos y estado de la memoria caché después de ejecutar la instrucción 3 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Tiempos y estado de la memoria caché después de ejecutar la instrucción 1 en la
segunda iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Resultado final
Tiempo para completar una iteración
Tiempo para completar 106 iteraciones
(en segundos)
6
APARTADO C
Tiempo necesario para ejecutar el bucle un millón de veces empleando una arquitectura
basada en CPU, memoria principal y memoria caché de correspondencia asociativa por
conjuntos de 2 vías. Inicialmente la memoria caché se considera vacía.
Para resolver este apartado se debe
precisar cual es el estado de la memoria
caché tras la ejecución de cada
instrucción. Para ello basta con rellenar
los campos definidos en los gráficos que
se aportan, tal y como se indica en el
dibujo de la derecha. Emplear notación
hexadecimal.
Conjunto de Bloque/s cargado/s
la memoria
en la memoria Etiqueta/s
caché
caché
Tiempos y estado de la memoria caché después de ejecutar la instrucción 1 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Tiempos y estado de la memoria caché después de ejecutar la instrucción 2 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
7
Tiempos y estado de la memoria caché después de ejecutar la instrucción 3 en
la primera iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Tiempos y estado de la memoria caché después de ejecutar la instrucción 1 en la
segunda iteración del bucle
Tiempo de carga de bloque/s
Tiempo de extracción de
instrucción
Tiempo de extracción de
operando
Tiempo de ejecución
Tiempo total en ejecutar la
instrucción
Resultado final
Tiempo para completar la primera iteración
Tiempo para completar la segunda iteración
Tiempo para completar 106 iteraciones
despreciando el tiempo de inicialización de la
primera vuelta del bucle (en segundos)
EJERCICIO 13
Un ordenador tiene un bus de datos de 16 bits y un bus de direcciones también de 16 bits.
La pastilla de microprocesador se conecta a una o varias pastillas de memoria de 2Kx4.
Indica el número máximo de pastillas que se pueden conectar al microprocesador de esta
máquina teniendo en cuenta que la capacidad de las pastillas se aprovecha al máximo.
8
EJERCICIO 14
La memoria principal de un ordenador está organizada en 64 bloques, con un tamaño de
bloque de 8 palabras. La caché tiene 8 líneas. En los apartados a) a c) muestra la
correspondencia entre los bloques numerados en memoria principal y las líneas en la
caché. Dibuja todas las líneas mostrando la correspondencia tan claramente como sea
posible.
a) Muestra la correspondencia directa y los bits de dirección que identifican el campo
de etiqueta, línea y desplazamiento.
b) Muestra la correspondencia asociativa completa y los bits de dirección que
identifican el campo de etiqueta y el desplazamiento.
c) Muestra la correspondencia asociativa de conjuntos de dos vías y los bits de
dirección que identifican el campo de etiqueta, el número de conjunto y el
desplazamiento.
EJERCICIO 15
Considera una caché (M1) y una memoria (M2) con las siguientes características:
M1: 16 K palabras con un tiempo de acceso de 50 ns.
M2: 1M palabras con un tiempo de acceso de 400 ns.
Supongamos que las líneas de caché son de 8 palabras y el tamaño de conjunto de 256
palabras con correspondencia asociativa de conjunto.
a) Muestra la correspondencia entre M2 y M1.
b) Calcula el tiempo efectivo de acceso a memoria con una caché con probabilidad de
acierto de 0,95.
EJERCICIO 16
Un ordenador tiene una caché de 128 bytes. Utiliza una correspondencia asociativa de
conjunto de 4 vías con 8 bytes en cada bloque. El tamaño de una dirección física es 32
bits y la unidad direccionable más pequeña es 1 byte.
a) Dibuja un diagrama mostrando la organización de la caché e indicando cómo las
direcciones físicas se corresponden con las direcciones de caché.
b) ¿A que líneas de la caché puede asignarse la dirección 000010AF?
c) Si las direcciones 000010AF y FFFF7Axy pueden ser asignadas simultáneamente
al mismo conjunto de caché, ¿qué valores pueden tener los dígitos x e y?
9