ar quite ctur a deber
DESCRIPTION
sistema de debers ucuencaTRANSCRIPT
UNIVERSIDAD DE CUENCA
Nombre: Bryan Coronel
Asignatura: Organización y Arquitectura de Computadores
Tema: Ejercicios de aplicación
Docente: Ing. Magali Mejía
Ciclo: Marzo 2015- Agosto 2015
ARQUITECTURA Y ORGANIZACION DE COMPUTADORAS
Encontrar la palabra o frase en la lista debajo que mejor empate con la descripción en las siguientes preguntas. Use los números de la izquierda de las palabras in las respuestas. Cada respuesta debería ser usada por una.
1.1.1 Computador usado para ejecutar grandes problemas y por lo general se accede a través de una red. 3. supercomputadoras.
1.1.2 10 elevado (15) or 2 elevado(50) 7.Petabyte
1.1.3 Computadoras compuestas de cientos o miles de procesadores y terabytes de memoria. 5. Sservidores
1.1.4 Las aplicaciones de ciencia ficción que probablemente serán viables en un futuro cercano.
1. Virtual worlds
1.1.5 1.1.5 Un tipo de memoria llamada random Access memory. 12.RAM
1.1.6 Parte de una computadora llamada Central Procesor Unit 13.CPU
1.1.7 Miles de computadores formando un gran cluster8.Datacenter.
1.1.8 Un microprocesador 10. Multicore processors
1.1.9 Computadora de escritorio sin pantalla o teclado usualmente visitada vía un red4.Low-end-Servers
1.1.10 Actualmente la mayor clase de computadoras que corren una aplicación o un conjunto de aplicaciones relacionadas. 2.Desktop computer
1.1.11 Lenguaje especial usado para describir componentes de hardware. VHDL
1.1.12 Computadora personal entregando un buen rendimiento a un solo usuario a un costo bajo.9. Embedded computers
1.1.13 Programa que traduce oraciones en un alto nivel a lenguaje ensamblador.15.Compiler.
1.1.14 Programa que traduce instrucciones simbólicas a instrucciones binarias.
18.Assembly language
1.1.15 Lenguaje de alto nivel para procesamiento de datos de negocio.25.Cobol
1.1.16 Lenguaje binario que el procesador puede entender. 18.assembly language
1.1.17 Comandos que el procesador entiende.19.machine language
1.1.18 Lenguaje de alto nivel para las ciencias de la computación.26. Fortran
1.1.19 Representación simbólica de una máquina de instrucciones.18.ensamblador
1.1.20 Interface entre el usuario del programa y el hardware proporcionando un variedad de servicios y funciones de supervisión. 14.Operating system.
1.1.21 Software y programas desarrollados por los usuarios.24.aplication software.
1.1.22 Binario digit (value 1 or 1)16.Bit.
1.1.23 Capa de software entre la aplicación software y el hardware que incluye el sistema operativo y los compiladores.23.System software
1.1.24 Lenguaje de alto nivel usado para escribir aplicaciones y sistemas de programas.20.C
1.1.25 Lenguaje portable compuesto de palabras y expresiones algebraicas que deberían ser traducidas dentro del lenguaje ensamblador antes de correr en una computadora.17.Lenguaje de alto nivel
1.1.26 10 elevado (12) or 2 elevado(40)
6. terabyte
Ejercicio 1.3 Considere los tres diferentes procesadores p1, p2, p3 ejecutando la misma instrucción con la siguiente tabla:
1.3.1 Cual procesador tiene el más alto rendimiento
Nos proporcionan la frecuencia, y los ciclos por instrucción y sabemos que se ejecuta solo una instrucción podemos utilizar la siguiente formula:
T deCpu1=0.75s
T de Cpu2= 0.6666666667s
T de Cpu3= 0.8333333333s
Observamos que el procesador 2 es el que tiene más alto rendimiento.
1.3.2 Si cada procesador ejecuta un programa en 10 segundos, encontrar el número de ciclos y numero de instrucciones.
Utilizamos esta fórmula despejando el número de ciclos del programa sabiendo que la frecuencia se mantiene y el tiempo de 10 segundos:
N de ciclosdel programa=T deCPU x Frecuenciade Reloj
Ncp1=20 Gc
Ncp2=15 Gc
Ncp3=30 Gc
Ahora calculamos el número de instrucciones del programa con la formula
N de instruccioines=T deCPU x Frecuencia de RelojCPI
N instuc1=13.33333333
N instruc2=15
N instruc3=12
1.3.3 Estamos tratando de reducir el tiempo un 30% pero esto conduce un incremento del 20% del CPI, Que freecuencia deberian tener para conseguir la reduccion en el tiempo.
Datos conocidos:
Tiempo= 10 segundos -> Nuevo tiempo= (10 - 10*30%) = 7
CPI= CPIo+(CPIo*20%)
Y sabemos el número de instrucciones dado para cada uno: entonces despejando de la formula la frecuencia tenemos:
Frecuencia=N instrucciones x CPITiempoCpu
Las frecuencias son:
F1=3.42 Ghz
F2 = 2.57 GHZ
F3= 5.14 GHz
Para los siguientes problemas usar la siguiente información:
1.3.4 Encontrar la IPC para cada procesador)mal
Usamos la fórmula del Tiempo de CPU despejando el CPI:
CPI¿TiempoCPU x frecuencia
Nu instrucciones
CPI1= 7x10-7
CPI2=5x10-10
CPI3=3x10-10
1.3.5 Encontrar la frecuencia de p2 que reduzca el tiempo de ejecución al de p1
De la formula anterior despejamos la frecuencia y consideramos el nuevo tiempo de 7s:
Y obtenemos una frecuencia= 2.14GHz
1.3.6 Encontrar el número de instrucciones para p2 que reduzca su ejecución a la de P3.
De igual manera despejamos ahora el número de instrucciones y resolvemos:
Numinstrucciones=Tiempo CPU x frecuenciaCPI
Con Tiempo= 9 segundos tenemos:
Num instrucciones = 5.4 x1010
Ejercicio 1.4 Considerar las dos diferentes implementaciones del conjunto de instrucciones. Hay 4 clases de instrucciones A,B,C and D. se da la frecuencia y el CPI en la tabla.
1.4.1 Dado un programa con 106 instrucciones dividido en clases asi: 10% class A, 20% class B, 50% class C and 20% class D, cual implementación es la más rápida?
Podemos calcular el núm
ero de instrucciones por cada una de las calases con los porcentages:
Num instrucc A= 100000
Num instrucc B=200000
Num instrucc C=500000
Num instruc D= 200000
Entonces utilizamos la formula
T de CPU1=¿NuminstA∗CPIa+NuminstB∗CPIb+NuminstC∗CPIc+NuminstD∗CPId
Frecuenciade reloj
T de CPU1=1.866x10-3 s
T de CPU2¿NuminstA∗CPIa+NuminstB∗CPIb+NuminstC∗CPIc+NuminstD∗CPId
Frecuenciade reloj
T de CPU2=1x10-3 s
T de CPU2 es menor lo cual indica que la implementación P2 es más rápida.
1.4.2 Cual es el CPI total para cada implementación.
Conocemos el tiempo total de cada implementación, la frecuencia, y cada uno de los números de instrucciones ejecutadas.
Haciendo la media ponderada con los CPI que nos proporcionan debido a los diferentes pesos (porcentajes) que tienen cada uno en cuanto a las instrucciones.
CPI total1= 1x 0.1+2∗0.2+3 x 0.50+4 x0.2
0.1+0.2+0.5+0.2=2.8
CPI total1= 2x 0.1+2∗0.2+2x 0.50+2 x0.2
0.1+0.2+0.5+0.2=2
1.4.3 Encontrar los ciclos de reloj en ambos casos.
Poseemos los CPIS y los números de instrucciones utilizamos la fórmula:
Ciclos CPU1= (1x106)x2.8= 2800000
Ciclos CPU1= (1x106)x2= 2000000
La siguiente tabla muestra el número de instrucciones para un programa:
1.4.4 Asumiendo que las instrucciones de Arith toman 1 ciclo, load and store 5 ciclos y branch 3 ciclos. Cuál es el tiempo de ejecución de un programa en un procesador de 2GHz
Utilizando la fórmula :
T deCPU= NociclosFrecuencia dereloj
=1+5+5+22Ghz
T de CPU= 6.5s
1.4.5 Encontrar el CPI para el programa.
Ahora que conocemos el T de CPU , las instrucciones y la frecuencia de reloj es posible calcular CPI así:
CPI¿TiempoCPU x frecuencia
Nu instrucciones
CPI= 0.0185
1.4.6 Si el número de instrucciones de Load puede ser reducido una mitad que velocidad, Cual es la aceleración y el CPI?
Num instrucciones total 650.
Load= 50 instrucciones y toma 2.5 ciclos
Sacamos el nuevo tiempo:
T deCPU= NociclosFrecuencia dereloj
=1+5+2.5+22Ghz
T deCPU=5.25
Para calcular la aceleración encontramos n:
n= ¿deCPUT deCPU
= 6.55.25
=1.24
Decimos que con la variación es 1.24 veces más rápido.
1.6 Compiladores tienen un gran impacto en el rendimiento de las aplicaciones sobre un procesador dado. Este problema se explorara el impacto que los compiladores tienen en el tiempo de ejecución.
1.6.1 Para el mismo programa, dos diferentes compiladores fueron usados. La tabla nos muestra el tiempo de ejecución de los dos programas compilados. Encontrar CPI medio para cada programa dado que el procesador tiene un ciclo de reloj de 1 ns.
Periodo 1 ns = 1x10-9 segundos
Para obtener el CPI utilizamos la siguiente formula:
Despejamos el CPI:
CPI= T deCPUNo instrucciones x Periodo
CPIaA= 1
CPIbA=0.8
CPIaB=1.17
CPIbB=0.58
1.62 Asumir los cpi promedio encontrados en 1.6.1, pero que los programas compilados se ejecutan en dos procesadores de diferencia. Si los tiempos de ejecución en los dos procesadores son los mismos, cuánto más rápido es el reloj del procesador que ejecuta código de compilador de A versus el reloj del procesador que ejecuta código de compilador de B
Para realizar esta comparación sabemos que los tiempos son los mismos, además el número de instrucciones deben ser los mismos para que la comparación sea justa, también sabemos los CPIs que obtuvimos.
De la Ecuación del tiempo de ejecución igualamos los tiempos y obtenemos:
(num instrucciones)(CPI )(Perido1)=(numinstruccciones )(CPI)(Periodo 2)
(num instrucciones)(1.085)(Perido1)=(numinstruccciones )(0.69)(Periodo2)
Simplificando(Perido1)=(0.64)(Periodo 2)
Él tiempo en que se ejecuta el ciclo con el compilador A es 1.57 veces más lento que con el compilador B.
1.63 Un nuevo compilador es desarrollado que utiliza sólo 600 millones de instrucciones y el CPI promedio de 1.1. ¿Cuál es la aceleración de la utilización de este nuevo compilador frente a la utilización del compilador A o B en el procesador original de 1.6.1
Entonces encontramos los tiempos de CPU para el caso del ejercicio 1.6.1 y para este nuevo compilador y los comparamos.
T de Cpu(1.6.1)=(1E+9)(1.085)(1E-9)=1.085s
T de Cpu(comp C)=(600E+6)(1.1)(1E-9)=0.66s
Obteniendo n dividiento los tiempos =1.64
Decimos que el nuevo compilador es 1.64 más rápido que el anterior.
Considerar 2 diferentes implementaciones, P1 y P2, del mismo conjunto de instrucciones. Hay 5 clases de instrucciones (A, B, C, D y E) en el conjunto de instrucciones. P1 tiene una frecuencia de reloj 4GHz y P2 de 6GHz. La media del número de ciclos para cada clase de instrucción está en la siguiente tabla:
1.6.4 Supongamos que el rendimiento máximo se define como la tasa más rápida que una computadora puede ejecutar cualquier secuencia de instrucciones. ¿Cuáles son los rendimientos máximos de P1 y P2 expresan en instrucciones por segundo
Primero encontramos los tiempos de CPU para P1 y P2:
CPI1 medio= 3
CPI2 medio= 2.8
T de CPU p1= N de Instrucciones x3
4GHz
T de CPU p2= N de Instrucciones x2.8
6GHz=¿
Ahora encontramos los rendimientos:
Rendimiento1= 4 (1/seg )
3 x nintrucciones∗n instrucciones
nintrucciones =
1.333333333(n instrucciones )∗¿2
(ninstrucciones / seg)
Rendimiento2= 6(1 /seg)
2.8 x nintrucciones∗n instrucciones
nintrucciones =
2.14(n instrucciones )∗¿2
(ninstrucciones / seg)
1.6.5 si el número de instrucciones ejecutadas en un determinado programa se divide en partes iguales entre las clases de instrucciones en el problema 2.36.4 excepción de la clase A, Que se produce dos veces más que cada uno de los demás, cuánto más rápido es que p2 p1?
T deCPU 1=2∗ninstruc (1 )+n instruc (2 )+n instruc (3 )+n instruc (4 )+ninstruc (5)
4GHz
T deCPU 1=2∗ninstruc (2 )+n instruc (2 )+n instruc (2 )+n instruc ( 4 )+ninstruc (4)
6GHz
T de CPU1=16 n instruc/4 GHz =4 n instruc(s).
T de CPU2=16 n instruc / 6Ghz = 2.67 n instruc (s)
Ahora obtenemos n:
Se simplifica el número de instrucciones y tenemos que Pe es 1.49 veces más rápida que P1.
1.6..6 ¿A qué frecuencia P2 tiene el mismo rendimiento que P1 para la mezcla de instrucción dada en 1.6.5
Este cociente debe ser uno
Tendríamos: