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