TAREA ARQUITECTURA

14
Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores TAREA 1 1.- Si la industria del transporte hubiera evolucionado al paso que la industria de la computación ¿Cuál sería el costo aproximado de un automóvil y cuál sería su velocidad máxima? Investigar el costo y velocidad aproximada del primer automóvil y de la primera computadora electrónica (en la computadora consideremos el número de instrucciones por segundo) y de acuerdo a las características de las nuevas computadoras estimar las características que debería tener el automóvil, asumiendo la misma evolución. Res// Si la industria del automóvil se hubiera desarrollado como lo hizo la de la computación, tomando como modelo lo que ya paso con dicha industria probablemente los automóviles serían más eficientes y aprovecharían mejor la energía que se les proporciona, la dependencia a los combustibles fósiles hubiera desaparecido o se requeriría un mínimo de dicha energía para mantener funcionando el automóvil un largo plazo de tiempo por lo que su uso se dispararía y su cantidad aumentaría haciendo que los costos bajaran por lo que tendríamos automóviles más baratos accesibles a un público más diverso y su velocidad( como maneja mejor los recursos del que dispone) sería muy superior a la actual y no solo llegaría a esa velocidad sino que podría mantenerla constante. 2.- Explica con tus propias palabras que es una abstracción, y en un par de objetos de la vida diaria (automóvil, casa, televisión, etc.), explica el uso de abstracciones. Res// Una abstracción es como una ignorancia selectiva, la abstracción permite escoger de un ambiente externo complejo los elementos relevantes o importantes que se necesitan para la implementación de un objetivo en específico. Si usáramos la abstracción en un objeto de la vida diaria como un televisor debemos enfocarnos en que es lo que queremos del

description

Ejercicios solucionados de arquitectura de computadores.

Transcript of TAREA ARQUITECTURA

Page 1: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

TAREA 1

1.- Si la industria del transporte hubiera evolucionado al paso que la industria de la computación ¿Cuál sería el costo aproximado de un automóvil y cuál sería su velocidad máxima?

Investigar el costo y velocidad aproximada del primer automóvil y de la primera computadora electrónica (en la computadora consideremos el número de instrucciones por segundo) y de acuerdo a las características de las nuevas computadoras estimar las características que debería tener el automóvil, asumiendo la misma evolución.

Res//

Si la industria del automóvil se hubiera desarrollado como lo hizo la de la computación, tomando como modelo lo que ya paso con dicha industria probablemente los automóviles serían más eficientes y aprovecharían mejor la energía que se les proporciona, la dependencia a los combustibles fósiles hubiera desaparecido o se requeriría un mínimo de dicha energía para mantener funcionando el automóvil un largo plazo de tiempo por lo que su uso se dispararía y su cantidad aumentaría haciendo que los costos bajaran por lo que tendríamos automóviles más baratos accesibles a un público más diverso y su velocidad( como maneja mejor los recursos del que dispone) sería muy superior a la actual y no solo llegaría a esa velocidad sino que podría mantenerla constante.

2.- Explica con tus propias palabras que es una abstracción, y en un par de objetos de la vida diaria (automóvil, casa, televisión, etc.), explica el uso de abstracciones.

Res//

Una abstracción es como una ignorancia selectiva, la abstracción permite escoger de un ambiente externo complejo los elementos relevantes o importantes que se necesitan para la implementación de un objetivo en específico.

Si usáramos la abstracción en un objeto de la vida diaria como un televisor debemos enfocarnos en que es lo que queremos del televisor, por ejemplo queremos entender su funcionamiento, para ello podemos enfocarnos y darle importancia en lo que hace funcionar el televisor, para que un televisor funcione necesita transmitir imágenes, para ello usa una pantalla, para funcionar necesita un puerto de alimentación con un enchufe y por último el conjunto de circuitos electrónicos que hacen posible la recepción de la señal y la transmisión de la imagen, este es un ejemplo del funcionamiento de un televisor en forma abstracta ya que no es de interés comprender el funcionamiento de los circuitos sino el funcionamiento del computador en general.

Otro ejemplo de un objeto de la vida diaria sería un bombillo, ya que normalmente lo que le interesa a la gente es como prender un bombillo a través de un switch, podemos descartar el interés en cómo funciona el sistema eléctrico en la casa o el traspaso de la energía eléctrica a través de los cables ya que no necesitamos conocerla para saber que si oprimimos el switch, el bombillo se prendera o se apagara.

Page 2: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

3. Describe la diferencia entre Arquitectura y Organización, investigue cual sería un problema de arquitectura y como se reflejaría en un problema de organización.

Res//

La arquitectura establece los principios sobre los cuales se diseña una computadora: Su repertorio de instrucciones, el tamaño de los datos, el número de registros, etc. Comprende los aspectos que el programador debe conocer al momento de desarrollar aplicaciones.

A la forma en que se implementará una arquitectura se le conoce como Organización. Ante una misma Arquitectura se pueden tener diferentes estilos de organización, que pueden variar en costo y rendimiento. Con ellas se forma una familia de computadoras.

Un problema de arquitectura sería determinar si se incluye o no una instrucción de multiplicación. Un problema de organización sería determinar si una instrucción de multiplicación se realiza por hardware o con una rutina de software basada en sumas.

4. Indique a que término se refiere cada una de las siguientes descripciones:

_Procesador_: Parte activa de una computadora que sigue las instrucciones de un programa al pie de la letra: suma números, examina números, etc.

____Abstracciones ____________: Refiere a un sistema formado por capas jerárquicas, en las que cada capa de nivel inferior oculta detalles de la capa de nivel superior. Aplicable en HW y SW.

__Familia de computadoras Colección de implementaciones de la misma arquitectura del repertorio de instrucciones que están disponibles a la vez y varían en precio y rendimiento.

__DRAM ___: Localización de los programas cuando se están ejecutando, también contiene los datos que necesitan.

__Sistema operativo__: Programa que gestiona los recursos del computador en beneficio de los programas que corren en esa máquina.

_Ensamblador_: Programa que traduce una versión simbólica de una instrucción a la versión binaria.

_Compilador__: Programa que traduce una notación de más alto nivel al lenguaje ensamblador.

__Circuitos integrados_: Oculta todo un proceso de manufactura y son una de las principales abstracciones en Hardware.

5. Realice un resumen de características en las diferentes generaciones de computadoras haciendo referencia al hardware y software.

Page 3: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

Computadoras de primera generación 1954-1959

Estas computadoras estaban constituidas por válvulas de vacío, que disipaban gran cantidad de calor y ocupaban una superficie muy amplia. Las tareas se ejecutaban en forma secuencial, lo que implicaba que:

1. El programa, almacenado en tarjetas o cintas perforadas, era cargado en memoria principal por un programa llamado cargador, perteneciente al sistema operativo.

2. Se ejecutaba el programa instrucción por instrucción.

3. Se imprimían los resultados.

Las operaciones de entrada, procesamiento y salida de los datos se encontraban encadenadas en el tiempo, por lo que la duración del proceso era igual a la suma de todas las operaciones.

Computadoras de segunda generación 1959-1965

Las computadoras de segunda generación estaban constituidas por transistores y utilizaron circuitos impresos, lo que permitió reducir el tamaño con respecto a las anteriores. Posibilitaron la simultaneidad entre un cálculo y una operación de E/S. Este concepto en la práctica dio pocos resultados, debido, en gran medida, a la desproporción entre la velocidad de cálculo interno y las velocidades de E/S, que hacían que la CPU no se utilizara más que en un pequeño porcentaje de tiempo. El paliativo para este problema fue que las operaciones de E/S se realizaran utilizando como soporte de almacenamiento unidades de cinta magnética, mucho más rápidas que las lectoras de tarjetas y las impresoras.

Computadoras de tercera generación 1965-1971

Con tecnología de circuitos integrados (varios componentes electrónicos incluidos en un solo bloque de silicio). Estos circuitos eran del tipo SSI o Small Scale Integration (pequeña escala de integración) y MSI o Medium Scale Integration (mediana escala de integración) y permitieron el incremento de la velocidad interna de la computadora y la reducción de la energía que utilizaban. En esta etapa se pudo explotar la multiprogramación, método que consiste en que varios programas residan en forma simultánea en la memoria en estado de ejecución. En un instante dado solo uno de ellos utiliza la CPU, pero los otros pueden efectuar operaciones de entrada/salida en forma simultánea. Cuando el programa que ejecuta la CPU se detiene en espera de una operación de entrada/salida, otro programa toma su lugar, deja al primero suspendido y evita, así, que se produzcan tiempos inactivos en la CPU.

Page 4: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

Computadoras de cuarta generación 1971-1987

La tecnología aplicada en la fabricación de circuitos pertenece a la clasificación LSI o Large Scale Integration -escala de integración grande-, que permitió incluir una CPU completa en una sola pastilla, que se denomina microprocesador. En esta etapa el procesamiento se realiza en mayor medida en tiempo real Considerando los sistemas interactivos, se hace posible la consulta y la actualización de datos, así como el acceso a grandes bancos de datos que utilizan, incluso, unidades inteligentes distribuidas en redes, como los sistemas de cajeros automáticos bancarios. Se desarrollan nuevas utilidades a partir de la sencilla comunicación usuario-maquina: enseñanza asistida por computadora, consultas telefónicas que entregan una respuesta oral al usuario, regulación automática de semáforos, control automático de procesos relativos a una línea de producción manufacturera, diseño de proyecto asistido por computadora, hojas de cálculo y poderosos procesadores de texto que automatizan prácticamente el total de las tareas de oficina.

Computadoras de quinta generación 1987-2010

En la década de 1980 se llevó a cabo una revolución en la concepción de diseño de una computadora (arquitecturas RISC, pipelines, superescalaridad, niveles de cache, etc.) y se desarrollaron los primeros avances considerados como el ingreso en una nueva etapa, la 5a generación de computadoras. En ella, las súper computadoras desarrollaron funciones inteligentes, basadas en experiencias sobre inteligencia artificial. Las cuatro generaciones anteriores se definieron con precisión, pero para la mayoría de los autores la quinta todavía está en proceso, debido al actual desarrollo de programas de investigación, cuyo paradigma propone que es necesario diseñar funciones inteligentes capaces de adaptarse a aplicaciones que así lo requieran. En la mayoría de las arquitecturas propuestas hasta el presente se hace claramente visible la distancia entre el hardware y el software.

Page 5: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

TAREA 2

1. Se plantea comparar dos sistemas diferentes: S1 y S2. El sistema S1 cuesta 10, 000 dólares y el sistema S2 15, 000. Se han realizado las siguientes medidas sobre estos sistemas:

Se dice que una máquina es más efectiva en costo que otra si la razón rendimiento/costo es mayor.

a. Un usuario sólo se interesa por el rendimiento del programa 1. ¿Qué máquina es más efectiva en costo para correr sólo el programa 1? ¿En cuánto?

Res//

Para calcular la rapidez con que el programa corre en los dos sistemas se puede concluir que en S2 se demora la mitad del tiempo que el mismo programa en el s1 o que la razón de rendimiento es 0.5 mayor en s2 que en s1, además la razón rendimiento costo es mayor en s2 que en s1 por lo que la maquina con el sistema s2 es más efectiva en costo.

b. Otro usuario está preocupado por la productividad de los sistemas con una carga de trabajo igual de los programas 1 y 2. ¿Qué sistema tiene mejor rendimiento para esa carga de trabajo? ¿En cuánto? ¿Qué sistema es más efectivo en costo para esa carga de trabajo? ¿En cuánto?

Res//

Depende de la carga de trabajo, por ejemplo si el usuario trabaja con pocos datos el rendimiento ideal lo proporciona el s2 ya que ejecuta las tareas más rápido y aunque el costo es mayor la productividad se dispararía, sin embargo si la carga de trabajo es grande el sistema s1 es la más efectiva en costo porque aunque se demore más es más fácil trabajar con grandes volúmenes de datos de forma más económica casi el doble de rendimiento.

c. Sin embargo, otro usuario tiene los siguientes requerimientos para los sistemas: el programa 1 debe ejecutarse 200 veces cada hora. El tiempo restante puede utilizarse para correr el programa 2. Si el sistema tiene suficientes prestaciones para correr el programa 1 el número de veces requerido por hora, el rendimiento se mide por la productividad del programa 2. ¿Qué sistema es más rápido para esta carga de trabajo? ¿Qué sistema es más efectivo en coste?

Page 6: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

Res//

Si el programa s1 se debe ejecutar 200 veces cada hora, entonces en el sistema s1 se demorara 33 minutos con 20 segundos, o 2000 segundos por lo que el programa 2 correrá en los siguientes 1600 segundos por lo que se ejecutara 533 veces.

En cambio en el sistema s2 se demorara 16 minutos y 40 segundos en ejecutar 200 veces el programa 1 0 1000 segundos por lo que el programa 2 se ejecutara en 2600 segundos y se ejecutara 650 veces.

En base a esto podemos concluir en base al rendimiento del programa 2 que el sistema s2 es el más rápido para esta carga de trabajo ya que ejecuta más veces el programa 2 en el mismo intervalo de tiempo poniendo como requisito que el programa 1 se ejecute 200 veces en ambos sistemas además de ser más efectivo en costo ya que ejecuta el mismo trabajo más rápido.

d. Considere que en los dos sistemas y programas se hicieron las siguientes medidas adicionales:

Calcule la velocidad de ejecución de las instrucciones (instrucciones por segundo) para cada máquina cuando corre el programa 1.

Res//

Para el sistema s1:

10 s = Ciclo de reloj de CPU/20 x 10^6

Ciclo de reloj de CPU = 200 x 10^6 ciclos

Para el sistema s2:

5 s = Ciclo de reloj de CPU/16 x 10^6

Ciclo de reloj de CPU = 80 x 10 ^6

Page 7: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

e. Si la frecuencia de reloj del sistema S1 es 20 MHz y la del reloj del sistema S2 es 30 MHz, encuentre los ciclos de reloj por instrucción (CPI) para el programa 1 en ambos sistemas, utilizando los datos de las dos tablas.

Res//

Para hallar el CPI en cada caso se debe estar dividiendo los ciclos requeridos por cada secuencia entre el número de instrucciones en cada secuencia

Para el sistema s1:

10 s = 20 x 10^6 x CPI/ 20 MHz

CPI= 10

Para el sistema s2:

5 s = 16 x 10^6 x CPI/30 MHz

CPI = 9.3

f. Suponiendo que el CPI para el programa 2 en cada máquina es igual al CPI del programa 1 (calculado en el inciso e), encontrar el recuento de instrucciones para correr el programa 2 en cada máquina (utilice los tiempos de la tabla 1).

Para el sistema s1:

CPI =10

3 s = IC X 10 X 200x10^6

IC= 10 x 10^8

Para el sistema s2:

CPI=9.3

4 s = IC X 9.3 X 80 x 10 ^6 IC =225 X 10 ^ 7

Page 8: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

2. Suppose that when Program A is running, the user CPU time is 3 seconds, the elapsed wallclock time is 4 seconds, and the system performance is 10 MFLOP/sec. Assume that there are no other processes taking any significant amount of time, and the computer is either doing calculations in the CPU or doing I/O, but it can't do both at the same time. We now replace the processor with one that runs six times faster, but doesn't affect the I/O speed. What will the user CPU time, the wallclock time, and the MFLOP/sec performance be now?

Res//

Rendimiento CPU B/ Rendimiento CPU A= Tiempo CPU A /Tiempo CPU B

6 = 3/ Tiempo CPU B

Tiempo CPU B = 0.5 segundos

Desde el tiempo de la ejecución E / S, este no se ve afectado por el aumento de rendimiento, todavía tarda 1 segundo para hacer la ejecución de E / S. Por lo tanto se necesita 1 + 0,5 = 1,5 segundos para ejecutar el programa A en la CPU más rápida

Tiempo de reloj = 1.5 segundos.

Rendimiento del Sistema en MFLOPS = Número de operaciones de punto flotante * 10^6/ Tiempo de reloj

Rendimiento del Sistema antiguo (10)= Número de operaciones de punto FLOP * 10^6/4

Número de operaciones de punto FLOP = 40 * 10^6

Nueva Rendimiento del Sistema = 40 * 10^6/1.5

MFLOP/sec = 26.667

Page 9: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

3. You are on the design team for a new processor. The clock of the processor runs at 200 MHz. The following table gives instruction frequencies for Benchmark B, as well as how many cycles the instructions take, for the different classes of instructions. For this problem, we assume that (unlike many of today's computers) the processor only executes one instruction at a time.

a. Calculate the CPI for Benchmark B.

Res//

Si decimos que hay 100 instrucciones, entonces:

30 de ellos serán las bodegas y las tiendas.

50 de ellos serán instrucciones aritméticas.

20 de ellos serán todos los demás.

(30 * 6) + (50 * 4) + (20 * 3) = 440 ciclos / 100 instrucciones

Por lo tanto, hay 4,4 ciclos por instrucción.

b. The CPU execution time on the benchmark is exactly 11 seconds. What is the “native MIPS” processor speed for the benchmark in millions of instructions per second?

Res//

La fórmula para el cálculo de MIPS es:

MIPS = Frecuencia de reloj / (IPC * 10^6)

La velocidad de reloj es de 200 MHz por lo que

MIPS = (200 * 10^6) / (4.4 * 106) = 45,454545

Page 10: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

c. The hardware expert says that if you double the number of registers, the cycle time must be increased by 20%. What would the new clock speed be (in MHz)?

Res//

La hora del reloj = 1 / tiempo de ciclo

Tiempo de ciclo = 1 / Hora

Tiempo de ciclo = 1 / (200 * 10^6) = 5 * 10^-9

El tiempo de ciclo se aumenta luego por 20%:

(5 * 10^-9) * 1,2 = 6 * 10 ^-9

La nueva frecuencia de reloj es por lo tanto:

1 / (6 * 10^-9) = 166.667 * 10^6 o 166,667 MHz

d. The compiler expert says that if you double the number of registers, then the compiler will generate code that requires only half the number of Loads & Stores. What would the new CPI be on the benchmark?

Res//

Había 100 instrucciones en la parte b, por lo que se reducirá el número de cargas y tiendas por medio, y esto reducirá el número total de instrucciones. Así que la nueva mezcla de instrucción será:

15 Bodegas y Tiendas

50 Instrucciones aritméticas

20 Otros

El número total de instrucciones es ahora el 85, así que la respuesta es:

((15 * 6) + (50 * 4) + (20 * 3)) / 85 = 350 ciclos / 85 = 4.12 instrucciones CPI

e. How many CPU seconds will the benchmark take if we double the number of registers (taking into account both changes described above)?

Res//

Segundos de CPU = (Número de instrucciones * Número de ciclos por reloj por instrucciones) / Velocidad de reloj

Lo primero que tenemos que hacer, es calcular el número de instrucciones que se ejecutan en 11 segundos en el nuevo punto de referencia - el que tiene la mitad del número de cargas y tiendas.

Page 11: TAREA ARQUITECTURA

Andrés Felipe Molina Cruz Cód.: 11161211110 Arquitectura de computadores

Para ello, tendremos que averiguar cómo muchas instrucciones se ejecutan en el punto de referencia inicial en 11 segundos. Ya que sabemos que los MIPS o cuántos millones de instrucciones por segundo para la referencia original, decimos:

(45.45 * 10^6) * 11 = 500 * 10^6 instrucciones en 11 segundos

Ahora tenemos que averiguar cuántos de esos son bodegas y tiendas así:

(500 * 10^6) * 0,3 = 150 * 10^6 son cargar y almacenar instrucciones porque la carta dice que el 30% de todas las instrucciones son bodegas y tiendas. Ahora tenemos que reducir este número a la mitad, debido a que el nuevo punto de referencia dice que tenemos la mitad del número de cargas y de las tiendas, pero el tiempo del ciclo aumenta en un 20%. Por lo tanto sólo hay 75 * 10^6 bodegas y tiendas. Esto también significa que ahora hay menos instrucciones en total, 425 * 10^6 instrucciones totales.

La solución final es:

((425 * 10^6) * 4,12) / (166,667 * 10^6) = 10,548 segundos