sol_ex_est_jun_2005_..

Anuncio
Examen de Estructura de Computadores.
Convocatoria ordinaria ( 23de Junio de 2005)
Nombre y apellidos : ..........................................................................................................................
UNIVERSIDAD DE VALLADOLID
2. (2 puntos) Un computador tiene una memoria principal de 64Kpalabras de 16 bits. También
tiene una memoria caché totalmente asociativa de 2Kpalabras y 256 palabras por bloque.
Suponemos que la caché está inicialmente vacía y que el algoritmo de reemplazo es MRU (Most
Recently Used, más recientemente usado).
Suponemos que la CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la
dirección 0 a la 2300. Si la caché es 7 veces más rápida que la memoria principal, se pide:
a) Formato de direcciones de memoria.
b) Calcular el tiempo que se tarda en realizar estos accesos a memoria principal si el
computador no tuviera memoria caché.
c) Evolución de la memoria caché al ejecutar los bucles.
d) Calcular cuántos fallos de caché se producen y sus causas
e) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria
principal a memoria caché y luego se lee el dato de la caché, calcular el tiempo que tarda
la CPU en realizar estos accesos a memoria.
a) Las direcciones son de 16 bits al tener 64 Kpalabras. El campo de palabra es de 8 bits porque
cada bloque tiene 256 palabras. La memoria principal tiene 256 bloques, por tanto el campo de
etiqueta es de 8 bits.
Etiqueta (8 bits)
Palabra (8 bits)
b) Si el tiempo de acceso a caché tc , a memoria principal será de 7 tc . Por lo que el tiempo total
será : 2301x7 tc x5
c) Vamos a construir una tabla auxiliar para ver los bloques que intervienen en el bucle.
Direcciones en decimal
0-255
256-511
512-767
768-1023
1024-1279
1280-1535
1536-1791
1780-2047
2048-2303
Direccional en hexadecimal
0000-00FF
0100-01FF
0200-02FF
0300-03FF
0400-04FF
0500-05FF
0600-06FF
0700-07FF
0800-08FF
Etiqueta de bloque
00
01
02
03
04
05
06
07
08
La caché tiene 8 bloques (2Kpalabras/256 palabras/bloque). Su evolución es la siguiente:
Bloque caché
0
1
Bucle 1
0
1
Bucle 2
0
1
Bucle 3
0
1
Bucle 4
0
1
Bucle 5
0
1
2
3
4
5
6
7
2
3
4
5
6
7/8
2
3
4
5
6/7
8
2
3
4
5/6
7
8
2
3
4/5
6
7
8
2
¾
5
6
7
8
En el bucle 1 al llegar el bloque 8 desaloja al último que se ha usado que es el 7. En los demás
bucles el problema es similar.
d) Según la tabla anterior se producen 8 fallos en frío y 5 fallos por capacidad.
e) En cada acceso fallido se tiene que cargar la caché con el bloque en cuestión y luego se vuelve a
acceder a la caché para leer la palabra. Tendremos pues dos componentes en el tiempo total:
 Tiempo de lectura de las 2301x5 palabras en caché = 2301x5xt c
 Tiempo de carga de los bloques en cache = 13x256x7t c
Tiempo total = (2301x5 + 13x256)xtc
3.- (1 punto) En un microprocesador de 8 bits se utiliza el siguiente formato para números en
punto flotante:
Bit de signo S (1
bit)
Exponente en exceso a 4 (3
bits)
Mantisa normalizada entre 1 y
2 con bit oculto (4 bits)
Dados los números: 0x26 y 0xDC
a) ¿A qué números decimales representan?
b) Realizar los pasos necesarios para realizar la resta y la multiplicación de dichos números
explicando detalladamente los algoritmos utilizados.
a)
A = 0x26 = 0 010 0110 = (-1)0 1.375 22-4 = + 1.375 2-2 = + 0.34375
B = 0xDC = 1 101 1100 = (-1)1 1.75 25-4 = - 1.75 21 = - 3.50
b)
A-B Para efectuar la operación seguimos los siguientes pasos:

Elegir el exponente menor ( es el de A que vale 2)

Calcular el número de desplazamientos |A-B| = 3

Desplazar a la derecha la mantisa completa de A 3 posiciones 1.0110  0.0010110
Examen de Estructura de Computadores.
Convocatoria ordinaria ( 23de Junio de 2005)
Nombre y apellidos : ..........................................................................................................................
UNIVERSIDAD DE VALLADOLID

Restar las mantisas ( como la segunda es negativa en realidad sumamos las
mantisas
0.0010110 + 1.1100000 = 1.1110110

Para redondear la mantisa usamos truncamiento ya que no se indica el modo en que
lo realiza. 1.1110

El resultado está normalizado
A-B = 0 101 1110
A*B Para efectuar esta operación seguimos los siguientes pasos

Signo es el resultado de efectuar la operación signoA exor signoB = 1

Exponente = expA +expB = -2 +1 +4 = 3

Mantisa : vamos a usar el algoritmo de booth B = 011100
Registro A
000000
000000
100100
110010
111001
010101
001010
101110
110111
010011
001001
Registro MQ
010110
001011
001011
000101
000010
000010
100001
100001
010000
010000
101000
C
0
0
0
0
1
0
0
1
0
0
Reg. A
00000
00000
11100
01110
01010
10101
01010
00110
10011
01001
Reg. MQ
10110
01011
01011
00101
00101
00010
10001
10001
01000
10100
MQ-1
0
0
0
1
1
1
0
0
1
1
0
MQ0
0
1
1
1
1
0
1
1
0
Acción
desplaza
resta
Desplaza
desplaza
suma
Desplaza
resta
Desplaza
suma
Desplaza
1 0010 0011
Contador I
6
5
4
3
2
1
0
Acción
Desplazar
Sumar
Desplazar
sumar
Desplazar
desplazar
Sumar
desplazar
desplazar
final
El resultado es A*B = (-1)1 0.10011 21 y normalizando nos queda
A*B = (-1)1 1.0011 20
-B = 100100
I
5
4
3
2
1
0
4.- (2 puntos) Responder brevemente a las siguientes preguntas:
1.- Define tiempo de acceso efectivo de un sistema de memorias
2.- ¿Para qué sirve un circuito DMA? Describe detalladamente su funcionamiento
3.- Dispositivos RAID
4.- Algoritmo de Robertson. Aplícalo a la operación 23x-7
5.- .Haz un esquema de un circuito que implemente un sumador condicional de 4 bits.
5.- (1 punto). Sobre un sistema con bus de datos de 16 bits y bus de direcciones de 20 bits, se
desea implementar una memoria central con 256 Kpalabras de memoria ROM y 512 Kpalabras de
memoria RAM.
Para ello se dispone de módulos de memoria ROM de 128Kx1, 64Kx8 y 128Kx8 y módulos RAM de
128kx1 y 256 Kx8. Diseñar la memoria usando el menor número de circuitos de memoria y
ocupando la RAM las posiciones mas bajas de memoria y la ROM las siguientes.
RAM 512Kx16 necesitamos 4 circuitos de 256Kx8
ROM 256Kx16 necesitamos 4 circuitos de 128Kx8
6.- ( 1 punto) Multiplicadores binarios hardware en complemento a dos.
Descargar