Los siguientes cambios en un sistema de cómputo, incrementan la productividad, decrementan el tiempo de respuesta, o ambas?
|
|
- Julio Pereyra Giménez
- hace 7 años
- Vistas:
Transcripción
1 1.4 El papel del rendimiento Cuando se dice que una computadora es más rápida que otra, qué se quiere decir? El usuario de una computadora individual puede decir que ésta es más rápida cuando ejecuta un programa en menos tiempo, mientras que el director de un centro de cálculo puede decir que una computadora es más rápida cuando completa más tareas en una hora. El usuario de la computadora está interesado en reducir el tiempo de respuesta el tiempo transcurrido entre el comienzo y el final de un evento - denominado también tiempo de ejecución o latencia. El director del centro de cálculo está interesado en incrementar la productividad (throughput) - la cantidad total de trabajo realizado en un tiempo determinado. Ejemplo: Productividad y tiempo de respuesta. Los siguientes cambios en un sistema de cómputo, incrementan la productividad, decrementan el tiempo de respuesta, o ambas? 1. Reemplazar el procesador en una computadora con una versión más rápida. 2. Agregar un procesador a un sistema que utiliza múltiples procesadores para tareas separadas por ejemplo, el manejo de un sistema de reservaciones en una aerolínea. Respuesta: Decrementar el tiempo de respuesta casi siempre mejora la productividad. Por lo tanto, en el caso 1, tanto la productividad como el tiempo de respuesta son mejorados. En el caso 2, ninguna tarea se realizará de manera mas rápida, de manera que solo se incrementa la productividad. Sin embargo, si la demanda para el procesamiento en el segundo caso fue al menos tan grande como la productividad, el sistema debe necesariamente requerir de una cola de tareas. En este caso, al incrementar la productividad podría también mejorar el tiempo de respuesta, dado que reduciría el tiempo de espera en la cola. Así, en muchos sistemas de cómputo reales, cambiar el tiempo de ejecución afecta a la productividad y viceversa. Cuando se comparan alternativas de diseño, con frecuencia se quiere relacionar el rendimiento de dos máquinas diferentes, por ejemplo X e Y. La frase «X es más rápida que Y» se utiliza para indicar que el tiempo de respuesta o tiempo de ejecución es inferior en X con respecto a Y para una tarea dada. En particular, «X es en n veces más rápida que Y» significa Tiempo de ejecución Y Tiempo de ejecución X = n
2 El rendimiento mantiene una relación inversa al tiempo de ejecución, es decir, a un menor tiempo de ejecución se tiene un mayor rendimiento; y viceversa. Por lo que se mantiene la siguiente relación: n = 1 Tiempo de Ejecución Y Rendimiento Rendimiento X = Y = 1 Tiempo de Ejecución X Rendimiento Rendimiento Y X La frase «la productividad de X es en 1.4 veces superior que la de Y» significa que el número de tareas completadas por unidad de tiempo en la máquina X es 1.4 veces el número de tareas completadas en la máquina Y. Como rendimiento y tiempo de ejecución son recíprocos, incrementar el rendimiento hace decrecer el tiempo de ejecución. Para evitar confusiones entre los términos «incrementar» y «decrementar», habitualmente se dice «mejorar el rendimiento» o «mejorar el tiempo de ejecución» para hacer referencia a un incremento del rendimiento y una disminución del tiempo de ejecución. Ejemplo: Rendimiento relativo. Una máquina A ejecuta un programa en 10 segundos y una máquina B ejecuta el mismo programa en 15, Cuánto es mas rápida A que B? Respuesta: Si A es n veces más rápida que B significa que: o RENDIMIENTO RENDIMIENTO A = TIEMPO _ DE _ EJECUCIÓN TIEMPO _ DE _ EJECUCIÓN B n B = A n De manera que la razón de rendimiento es: 15/10 = 1.5, y A es por lo tanto, 1.5 veces más rápida que B. En resumen, el rendimiento permite la comparación de dos computadoras; aunque aparentemente este tema cae fuera de contexto en un curso de arquitectura de computadoras, mas adelante se demuestra que no es así. Por que para una misma arquitectura se analizaran tres diferentes tipos de implementaciones, y el objetivo en cada nueva implementación será alcanzar un aumento en el rendimiento.
3 De hecho, desde 1985 la industria de computadoras alcanzó un nuevo estilo de arquitectura, iniciando un período en el cual el rendimiento ha aumentado a una velocidad mucho más rápida. Al concentrar los avances en la tecnología de circuitos integrados, las mejoras en la tecnología de compiladores y las nuevas ideas arquitectónicas, los diseñadores pudieron crear una serie de máquinas que mejoraban el rendimiento, en un factor de casi 2, cada año. Estas ideas están ahora proporcionando una de las mejoras en rendimiento más significativas que las sostenidas en los últimos veinte años. Estas mejoras han sido posibles al tomar en cuenta una serie de importantes avances tecnológicos, junto a un mejor conocimiento empírico sobre la utilización de las computadoras. De esta fusión ha emergido un estilo de diseño de computadoras basado en datos empíricos, experimentación y simulación. 1.5 Métricas para determinar el rendimiento El tiempo de ejecución El tiempo es la medida del rendimiento de la computadora: la computadora que realiza la misma cantidad de trabajo en menos tiempo es la más rápida. El tiempo de ejecución de un programa se mide en segundos por programa. El tiempo se puede definir de formas distintas dependiendo de lo que se quiera contar. La definición más directa de tiempo se denomina tiempo de reloj (wall-clock time), tiempo de respuesta (response time), o tiempo transcurrido (elapsed time). Esta es la latencia para completar una tarea, incluyendo accesos a disco, accesos a memoria, actividades de entrada/salida, gastos del sistema operativo - todo. Actualmente las computadoras trabajan a tiempo compartido, de manera que un procesador puede trabajar sobre diferentes programas. En tal caso, los sistemas intentan mejorar la productividad en lugar de intentar disminuir el tiempo transcurrido para un programa individual. Por lo que es conveniente distinguir entre el tiempo transcurrido y el tiempo en que el procesador está trabajando al servicio de un programa. Con el tiempo de CPU debe reconocerse esta distinción, por lo que se debe medir el tiempo que el CPU está computando una tarea sin incluir el tiempo de espera para las E/S o para ejecutar otros programas. (Obviamente, el tiempo de respuesta visto por el usuario es el tiempo transcurrido del programa, no el tiempo de CPU). Además, el tiempo de CPU puede dividirse en: el tiempo empleado por el CPU en el programa tiempo de CPU del usuario, y el tiempo empleado por el sistema operativo realizando tareas requeridas por el programa tiempo de CPU del sistema. Estas distinciones las refleja el comando «time» de UNIX, que devuelve lo siguiente: 90,7u 12,9s 2:39 65% El tiempo de CPU del usuario es de 90,7 segundos, el tiempo de CPU del sistema es de 12,9 segundos, el tiempo transcurrido es de 2 minutos y 39 segundos (159 segundos), y el porcentaje de tiempo transcurrido que es el tiempo de CPU es
4 = 0.65 = 65% En este ejemplo, más de un tercio del tiempo transcurrido se gastó esperando las E/S o ejecutando otros programas, o ambas cosas. En ocasiones no se considera al tiempo de CPU del sistema debido a la poca precisión de los sistemas operativos para obtenerlo, por lo que resultará poco realista considerar el tiempo de CPU del sistema cuando se comparan rendimientos entre máquinas con sistemas operativos diferentes. Por otro lado, el código del sistema de algunas máquinas está incluido en el código del usuario, en otras; y ningún programa corre sin que se ejecute el sistema operativo sobre el hardware, lo que es un argumento a favor de utilizar la suma del tiempo de CPU del usuario y del tiempo de CPU del sistema como la medida del tiempo de ejecución de un programa Rendimiento del CPU La mayoría de las computadoras se construyen utilizando un reloj que funciona a una frecuencia constante. Estos eventos discretos de tiempo se denominan pulsos, pulsos de reloj, períodos de reloj, relojes, ciclos o ciclos de reloj. Los diseñadores de computadoras referencian el tiempo de un período de reloj por su duración (por ejemplo, 10 ns) o por su frecuencia (por ejemplo, 100 MHz). El tiempo de CPU para un programa puede expresarse entonces de dos formas: Tiempo de CPU = Ciclos de reloj de CPU para un programa x Duración del ciclo de reloj O Tiempo de CPU = Ciclos de reloj de CPU para un programa Frecuencia de reloj En esta última expresión queda claro que el diseñador de hardware puede mejorar el rendimiento disminuyendo la duración del ciclo de reloj o el número de ciclos de reloj requeridos por un programa. Ejemplo: Mejorando el Rendimiento. Un programa X se ejecuta en 10 segundos en una máquina A, la cual es de 400 MHz. Se intentará ayudarle al diseñador de hardware para que realice una máquina B, que ejecutará ese programa en 6 segundos. El diseñador ha determinado que es posible un incremento sustancial de la frecuencia de reloj, sin embargo, este incremento afectará al resto del CPU ocasionando que la máquina B requiera 1.2 veces la cantidad de ciclos de reloj que utilizaba la máquina A para este programa. Cuál sería la frecuencia de reloj de la máquina B?
5 Respuesta: El número de ciclos que utilizaría la máquina A para el programa X es: Tiempo de CPU A = Ciclos de Reloj de CPU A Frecuencia de Reloj A 10 segundos = Ciclos de Reloj de CPU A 400 x 10 6 ciclos/segundo Ciclos de Reloj de CPU A = 4000 x 10 6 ciclos Para la máquina B, utilizando la misma ecuación: Tiempo de CPU B = 1.2 x Ciclos de Reloj de CPU A Frecuencia de Reloj B 6 segundos = 1.2 x 4000x10 6 Ciclos Frecuencia de Reloj B De donde se obtiene: Frecuencia de Reloj B = 800 MHz, es decir, el doble de la Frecuencia de Reloj de la máquina A. El ejemplo anterior ilustra que al duplicar la frecuencia de reloj, por lo general, no reduce a la mitad el tiempo de ejecución, por que se afecta a otras etapas en el diseño del procesador, ocasionando que se requiera de una mayor cantidad de ciclos de reloj Ciclos por Instrucción (CPI) Además del número de ciclos de reloj para ejecutar un programa, también se puede contar el número de instrucciones ejecutadas - la longitud del camino de instrucciones o el recuento de instrucciones (IC, instruction count). Si se conoce el número de ciclos de reloj y el recuento de instrucciones, es posible calcular el número medio de ciclos de reloj por instrucción (CPI): Esta medida del rendimiento del CPU proporciona una nueva percepción en diferentes estilos de repertorios de instrucciones e implementaciones. Al transponer el IC en la
6 fórmula anterior, los ciclos de reloj pueden definirse como ICxCPI. Esto permite utilizar al CPI en la fórmula del tiempo de ejecución: O Tiempo de CPU = IC x CPI x Duración del ciclo de reloj IC x CPI Tiempo de CPU = Frecuencia de reloj Como demuestra esta fórmula, el rendimiento del CPU depende de tres características: ciclo de reloj (o frecuencia), ciclos de reloj por instrucción (CPI), y recuento de instrucciones (IC). No se puede cambiar ninguna de ellas sin tener en cuenta las demás, ya que las tecnologías básicas involucradas al cambiar una característica también son interdependientes: Frecuencia de reloj - Tecnología hardware y organización (Implementación); CPI - Organización y arquitectura a nivel lenguaje máquina; IC - Arquitectura al nivel lenguaje máquina y tecnología de compiladores. Ejemplo: Usando la ecuación del rendimiento. Suponga que se tienen dos implementaciones de la misma arquitectura. La máquina A tiene un tiempo de ciclo de 1 ns y un CPI de 2.0 para algún programa, y la máquina B tiene un tiempo de ciclo de 2 ns y un CPI de 1.2 para el mismo programa. Cuál máquina es más rápida para este programa y por cuanto? Respuesta: Puesto que ambas máquinas ejecutan la misma cantidad de instrucciones, sea I el recuento de Instrucciones. Por lo que se puede calcular el tiempo de CPU para cada máquina: Tiempo de CPU = IC x CPI x Duración del ciclo de reloj Tiempo de CPU A = I x 2.0 x 1 ns = 2 x I ns Tiempo de CPU B = I x 1.2 x 2 ns = 2.4 x I ns Puede verse que la máquina A es más rápida. La cantidad de rapidez se encuentra con la razón de tiempos de ejecución: RENDIMIENTO RENDIMIENTO A B TIEMPO _ DE _ EJECUCIÓN = TIEMPO _ DE _ EJECUCIÓN B A 2.4 I = 2 I = 1.2 Se concluye que la máquina A es 1.2 veces más rápida que la máquina B para este programa.
7 A veces es útil calcular el número total de ciclos de reloj de la CPU como: Ciclos de reloj de CPU = CPI i IC i Donde ICi representa el número de veces que se ejecuta alguna clase de instrucción i en un programa y CPI i representa el número medio de ciclos de reloj para la instrucción i. Esta forma puede utilizarse para expresar el tiempo de CPU como: n i= 1 n Tiempo de CPU = CPI i IC i i= 1 Duración del ciclo de reloj y el CPI global como: CPI = n i= 1 CPI i IC i Recuento de Instrucciones n = CPI i i= 1 ( IC i Recuento de instrucciones ) La última forma del cálculo de CPI multiplica cada CPI i individual por la fracción de ocurrencias en un programa. Para resultados mas reales, el CPIi debe medirse, y no obtenerse de la tabla del manual de referencia, ya que debe incluir fallos de caché y demás ineficiencias del sistema de memoria. Ejemplo: Comparando secuencias de código. Un diseñador de compiladores está tratando de decidir entre dos secuencias de código para una máquina particular. El diseñador de hardware le ha informado los siguientes hechos: La clase de Instrucción A requiere de un CPI de 1 La clase de Instrucción B requiere de un CPI de 2 La clase de Instrucción C requiere de un CPI de 3 Para una expresión de alto nivel, el escritor del compilador está considerando dos secuencias que requieren las siguientes instrucciones: Secuencia 1: 2 instrucciones de la Clase A, 1 de la clase B y 2 de la clase C. Secuencia 2: 4 instrucciones de la Clase A, 1 de la clase B y 1 de la clase C. Cuál secuencia ejecuta mas instrucciones? Cuál será más rápida? Cuál es el CPI para cada secuencia?
8 Respuesta: La secuencia 1 ejecuta = 5 instrucciones. La secuencia 2 ejecuta = 6 instrucciones. De manera que la secuencia 2 es la que ejecuta más instrucciones. La secuencia más rápida es la que requiere de una menor cantidad de ciclos de reloj, los ciclos de reloj son obtenidos con la expresión: Ciclos de reloj de CPU = CPI i IC i Ciclos de reloj de CPU 1 = (1 x 2) + (2 x 1) + (3 x 2) = 10 ciclos Ciclos de reloj de CPU 2 = (1 x 4) + (2 x 1) + (3 x 1) = 9 ciclos De manera que la secuencia 2 es más rápida. Finalmente, el CPI en cada caso se obtendrá dividiendo los ciclos requeridos por cada secuencia entre el número de instrucciones en cada secuencia: n i= 1 CPI 1 = 10/5 = 2 CPI 2 = 9/6 = MIPS y errores de utilización Hasta el momento se ha visto que la única medida fiable y consistente del rendimiento es el tiempo de ejecución de los programas reales, en esta sección se analizan otras alternativas al tiempo, propuestas como métricas para los programas reales, que presentándose como «items» medidos han conducido, eventualmente, a afirmaciones erróneas o incluso a errores en el diseño de las computadoras. Una de estas alternativas son los MIPS, o millones de instrucciones por segundo. Para un programa dado, los MIPS son sencillamente MIPS = Recuento de Instrucciones Tiempo de ejecución x 10 6 = Frecuencia de reloj CPI x 10 6 Algunos encuentran adecuada la fórmula de más a la derecha, ya que la frecuencia de reloj es fija para una máquina y el CPI, habitualmente, es un número pequeño, de forma distinta a la cuenta de instrucciones o al tiempo de ejecución. La relación de los MIPS con el tiempo es: Tiempo de ejecución = Recuento de instrucciones MIPS x 10 6
9 Como los MIPS son una frecuencia de operaciones por unidad de tiempo, el rendimiento puede especificarse como el inverso del tiempo de ejecución, de forma que máquinas más rápidas tendrán una mayor frecuencia de MIPS. La buena noticia sobre los MIPS es que son fáciles de comprender, especialmente por un cliente, y máquinas más rápidas significan un mayor número de MIPS, lo cual coincide con la intuición. El problema, cuando se utilizan los MIPS como medida para hacer comparaciones, es triple: Los MIPS son dependientes del repertorio de instrucciones, lo cual hace difícil la comparación de los MIPS de computadoras con diferentes repertorios de instrucciones; Los MIPS varían entre programas en la misma computadora; Los MIPS pueden variar inversamente al rendimiento. El ejemplo clásico, del último caso, es la variación de los MIPS en una máquina con hardware opcional de punto flotante. Como, generalmente, se emplean más ciclos de reloj por instrucción en punto flotante que por instrucción entera, los programas en punto flotante que utilizan el hardware opcional en lugar de las rutinas software de punto flotante emplean menos tiempo, pero tienen una menor frecuencia de MIPS. El software de punto flotante ejecuta instrucciones más simples, dando como resultado una mayor frecuencia de MIPS, pero se ejecuta tantas veces que el tiempo global de ejecución es mayor. Incluso es posible ver tales anomalías con compiladores optimizados. Ejemplo: Error en la aplicación de MIPS Para un programa X, un compilador generó la siguiente distribución de Instrucciones: Tipo de instrucción Frecuencia de una instrucción Ciclos de reloj por instrucción (CPI) Operaciones de ALU 43 % 1 Cargas 21 % 2 Almacenamientos 12 % 2 Saltos 24 % 2 Tabla 1.1 Distribución de Instrucciones para el programa X El compilador se optimiza de manera que para el mismo programa descarta el 50% de las instrucciones de la ALU aunque no pueda reducir cargas, almacenamientos, ni saltos. Ignorando las prestaciones del sistema y suponiendo una duración del ciclo de reloj de 2-ns (frecuencia de reloj 500-MHz) Cuál es la frecuencia en MIPS para el código optimizado frente al código sin optimizar? Están los resultados en MIPS de acuerdo con los del tiempo de ejecución?
10 Respuesta: Puesto que ya se conoce la frecuencia del reloj, para encontrar el valor de MIPS se requiere encontrar los CPIs del código sin optimizar y del código optimizado. Para ello es posible usar la expresión: CPI = n i= 1 CPI i IC i /Recuento de Instrucciones Aunque se desconoce el total de instrucciones, esto no importa por que este valor se eliminará. Por simplicidad, se asumirá que el programa sin optimizar está formado por 100 instrucciones, de manera que: entonces CPI sin optimizar = {(43x1) + (21x2) + (12x2) + (24x2)} / 100 = 1.57 MIPS sin optimizar = (500MHz)/(1.57x10 6 ) = Para el código optimizado: CPI optimizado = {((43/2)x1) + (21x2) + (12x2) + (24x2)} / (100-43/2) = 1.73 ya que la mitad de las instrucciones de la ALU están descartadas y el total de instrucciones se reduce por las instrucciones que faltan de la ALU. Entonces MIPS optimizado = 500MHz/(1.73x106) = Es evidente que el código optimizado requiere de un tiempo menor por que se ejecutan menos instrucciones (considerando al tiempo de ejecución, puede deducirse que el código optimizado es 1.5 veces más rápido que el código sin optimizar), sin embargo su frecuencia en MIPS es inferior: 289 contra Ejemplos como éste muestran que los MIPS pueden fallar al dar una visión verdadera del rendimiento, ya que no reflejan el tiempo de ejecución. Para compensar esta carencia, otra alternativa al tiempo de ejecución es utilizar una máquina particular, con una estimación convenida sobre los MIPS, como punto de referencia. Los MIPS Relativos para una máquina M se definen con base en una máquina de referencia como sigue: MIPS M = Tiempo referencia Tiempo M x MIPS referencia Donde:
11 Tiempo referencia - es el tiempo de ejecución de un programa en la máquina de referencia; Tiempo M - es el tiempo de ejecución del mismo programa en la máquina que se va a medir; MIPS referencia - es la estimación convenida sobre los MIPS de la máquina de referencia. En los años ochenta, la máquina de referencia dominante era la VAX-11/780, que se denominó máquina de 1-MIPS. Si una máquina era mas rápida que la máquina 1-MIPS en la ejecución una programa por 5 veces - esta máquina tenía 5 MIPS Relativos. La duda que surgió fue que si, en la máquina más antigua deberían ejecutarse las ediciones más modernas del compilador y sistema operativo, o si este software debe fijarse para que la máquina de referencia no sea más rápida a lo largo del tiempo. Existe también la tentación de generalizar de una estimación de los MIPS relativos utilizando un «benchmark» a tiempo de ejecución relativo (un «benchmark» es un programa de evaluación desarrollado para la comparación del rendimiento de computadoras, en relación con el tiempo que se requiere para su ejecución), aún cuando pueda haber amplias variaciones en el rendimiento relativo MFLOPS y errores de utilización Otra alternativa popular al tiempo de ejecución son los millones de operaciones en punto flotante por segundo, abreviadamente megaflops o MFLOPS, pero siempre pronunciado «megaflops». La fórmula de los MFLOPS es simplemente la definición del acrónimo: MFLOPS = Número de operaciones de punto flotante de un programa Tiempo de ejecución x 10 6 Evidentemente, una estimación en MFLOPS depende de la máquina y del programa. Como los MFLOPS se pensaron para medir el rendimiento en punto flotante, no son aplicables fuera de ese rango. Como ejemplo extremo, los compiladores, tienen una estimación de MFLOPS próxima a cero sin que importe lo rápida que sea la máquina, ya que raramente utilizan aritmética en punto flotante. El término MFLOPS está basado en las operaciones en lugar de las instrucciones, y se pensó para que fuera una comparación buena entre diferentes máquinas. La creencia es que el mismo programa corriendo en computadoras diferentes debe ejecutar un número diferente de instrucciones, pero el mismo número de operaciones en punto flotante. Desgraciadamente, los MFLOPS no son fiables, porque el conjunto de operaciones en punto flotante no es consistente con las máquinas. Por ejemplo, el CRAY C90 no tiene instrucción de dividir, mientras que Pentium de Intel tiene división, raíz cuadrada, seno y coseno. Otro problema observado es que la estimación en MFLOPS cambia no sólo en la mezcla de operaciones de enteros y punto flotante sino también en la mezcla de operaciones rápidas y lentas de punto flotante. Por ejemplo, un programa con el 100% de sumas en punto flotante tendrá una estimación mayor que un programa con el 100% de divisiones en punto flotante.
12 Además, como cualquier otra medida de rendimiento, la estimación en MFLOPS para un único programa no puede generalizarse para establecer una métrica única de rendimiento para una computadora. Como los MFLOPS normalizados representan realmente una constante dividida por el tiempo de ejecución para un programa específico y entrada específica, los MFLOPS son redundantes con el tiempo de ejecución, la principal medida de rendimiento. De manera distinta al tiempo de ejecución, es tentador caracterizar una máquina con una única estimación en MIPS o MFLOPS sin nombrar un programa, sin especificación la entrada/salida, sin descripción las versiones de los sistemas operativos y compiladores. Finalmente, los MFLOPS no son una medida útil para todos los programas. 1.6 Otros tópicos relacionados con el rendimiento Programas para evaluar el rendimiento Un usuario de computadoras que ejecuta los mismos programas día tras día sería el candidato perfecto para evaluar una nueva computadora. Para evaluar un nuevo sistema simplemente compararía el tiempo de ejecución de su carga de trabajo habitual (workload) - la mezcla de programas y órdenes del sistema operativo que los usuarios ejecutan en una máquina. Sin embargo, pocas veces ocurre esta feliz situación. La mayoría de veces se debe confiar en otros métodos para evaluar las máquinas, y con frecuencia, en otros evaluadores, esperando que estos métodos predigan el rendimiento de la nueva máquina. Hay cuatro niveles de programas utilizados en estas circunstancias, listados a continuación en orden decreciente de precisión. 1. Programas reales (Real programs). - Aunque el comprador puede no conocer qué fracción de tiempo se emplea en estos programas, sabe que algunos usuarios los ejecutarán para resolver problemas reales. Ejemplos son compiladores de C, software de tratamiento de textos como TeX, y herramientas CAD como Spice. Los programas reales tienen entradas, salidas y opciones que un usuario puede seleccionar cuando está ejecutando el programa. 2. «Núcleos» (Kernels). - Se han hecho algunos intentos para extraer pequeñas piezas claves de programas reales y utilizarlas para evaluar el rendimiento. «Livermore Loops» y «Linpack» son los ejemplos mejor conocidos. De forma distinta a los programas reales, ningún usuario puede correr los programas «núcleo»; únicamente se emplean para evaluar el rendimiento. Los «núcleos» son adecuados para aislar el rendimiento de las características individuales de una máquina para explicar las razones de las diferencias en los rendimientos de programas reales. 3. Benchmarks reducidos (Toy benchmarks). - Los benchmarks reducidos, normalmente, tienen entre 10 y 100 líneas de código y producen un resultado que el usuario conoce antes de ejecutarlos. Programas como la Criba de Eratóstenes, Puzzles, y Ordenamiento Rápido (Quicksort) son populares porque son pequeños, fáciles de introducir y de ejecutar casi en cualquier computadora.
13 4. Benchmarks Sintéticos.- Análogos en filosofía a los «núcleos», los «benchmarks sintéticos» intentan determinar la frecuencia media de operaciones y operandos de un gran conjunto de programas. Whetstone y Dhrystone son benchmarks sintéticos populares. Igual que ocurre con los «núeleos», ningún usuario ejecuta los benchmarks sintéticos porque no calculan nada que ningún usuario pueda utilizar. Los benchmarks sintéticos están, en efecto, aún más lejos de la realidad porque el código de los «núcleos» se extrae de programas reales, mientras que el código sintético se crea artificialmente para determinar un perfil medio de ejecución. Los benchmarks sintéticos no son parte de programas reales, mientras que los demás pueden serlo Conjuntos de benchmarks Recientemente ha llegado a ser popular juntar una colección de benchmarks para intentar comparar el rendimiento de computadoras con una variedad de aplicaciones. Por supuesto, tales conjuntos son tan buenos como los benchmarks individuales que los constituyen. No obstante, una ventaja dominante de tales conjuntos es que la debilidad de algún programa de prueba es disminuida por la presencia de otros benchmarks. El conjunto más popular y comprensivo de los benchmarks es la colección de SPEC (System Performance Evaluation Cooperative). La SPEC fue creada por un grupo de compañías de computadoras en 1989 para definir, crear y mantener un conjunto de programas que permitan evaluar el rendimiento de las computadoras modernas. En lo que refiere a CPUs, la colección más nueva de SPEC se denomina CPU2006. Es una colección diseñada para proporcionar medidas del rendimiento que puedan ser usadas para comparar cargas de trabajo de cómputo intensivo en diferentes sistemas de cómputo. SPEC CPU2006 contiene dos suites de benchmarks: CINT2006 para medir y comparar el rendimiento de cómputo intensivo con enteros, y CFP2006 para medir y comparar el rendimiento de cómputo intensivo con números en punto flotante. Existe otra colección denominada SPEC CPU2002, y aunque actualmente aún se dispone de los benchmarks con sus correspondientes resultados, SPEC plantea retirarla en el Colecciones que han sido retiradas son CPU95 y CPU92. Además de la evaluación del rendimiento de la CPU, SPEC organiza otras colecciones de benchmarks en función de las aplicaciones que se vayan a ejecutar en alguna máquina particular, así se tienen colecciones para: Aplicaciones con gráficos Cómputo de alto rendimiento Clientes/Servidor en Java Servidores de Correo Electrónico Sistemas de archivos en red Rendimiento en la potencia
14 Servidores WEB Mas información de la organización SPEC se encuentra en: Principio cuantitativo para aumentar el rendimiento: Acelerar el caso común Quizá el principio más importante y generalizado del diseño de computadoras sea acelerar el caso común: al realizar un diseño, favorecer el caso frecuente sobre el infrecuente. Este principio también se aplica cuando se determina cómo emplear recursos, ya que el impacto de hacer alguna ocurrencia más rápida es mucho mayor si la ocurrencia es frecuente. Mejorar el evento frecuente en lugar del evento raro, evidentemente, también ayudará a aumentar el rendimiento. Además, el caso frecuente es, a menudo, más simple y puede realizarse de forma más rápida que el caso infrecuente. Por ejemplo, cuando se suman dos números en la CPU, es natural esperar que el desbordamiento sea una circunstancia infrecuente y, por tanto, es factible mejorar el rendimiento optimizando el caso más común de ausencia de desbordamiento. Este hecho puede alentar la situación en la que se presente un desbordamiento, pero si este caso es infrecuente, el rendimiento global mejorará al optimizar el caso normal. Al aplicar este sencillo principio, se deberá evaluar que casos son frecuentes y cómo se puede mejorar el rendimiento haciéndolos más rápidos. Una ley fundamental, denominada Ley de Amdahl, puede utilizarse para cuantificar este principio Ley de Amdahl El aumento de rendimiento que puede obtenerse al mejorar alguna parte de una computadora puede calcularse utilizando la Ley de Amdahl. La Ley de Amdahl establece que la mejora obtenida en el rendimiento al utilizar algún modo de ejecución más rápido está limitada por la fracción de tiempo que se pueda utilizar ese modo más rápido. La Ley de Amdahl define la ganancia de rendimiento o aceleración (speedup) que puede lograrse al utilizar una característica particular. Si para una máquina es posible realizar una mejora que, cuando se utilice, aumente su rendimiento. La aceleración está dada por la relación: Aceleración de rendimiento = Rendimiento de la tarea completa utilizando la mejora cuando sea posible Rendimiento de la tarea completa sin utilizar la mejora
15 Alternativamente: Aceleración de rendimiento = Tiempo de ejecución de la tarea sin utilizar la mejora Tiempo de ejecución de la tarea completa utilizando la mejora cuando sea posible La aceleración indica la rapidez con que se realizará una tarea utilizando una máquina con la mejora con respecto a la máquina original. La Ley de Amdahl da una forma rápida de calcular la aceleración, que depende de dos factores: La fracción del tiempo que pueda utilizarse para aprovechar la mejora. Por el ejemplo, si en un programa que tarda 60 segundos, durante 20 segundos puede utilizarse la mejora, la fracción será 20 /60. Este valor, que se llama Fracción mejorada, es siempre menor o igual que 1. La optimización lograda por el modo de ejecución mejorado; es decir, cuánto más rápido se ejecutaría la tarea si solamente se utilizase el modo mejorado. Este valor es el tiempo del modo original con respecto al tiempo del modo mejorado. Si el modo mejorado toma 2 segundos para alguna porción de programa que puede usar el modo completamente mientras que el modo original tomaba 5 segundos para la misma porción de programa, la mejora es 5/2. Este valor es siempre mayor que 1 y se llama Aceleración mejorada. El tiempo de ejecución utilizando la máquina original con el modo mejorado será el tiempo empleado utilizando la parte no mejorada de la máquina más el tiempo empleado utilizando la parte mejorada. Tiempo de ejecución nuevo = Tiempo de ejecución antiguo x ( 1 Fracción ) mejorada + Fracción Aceleración mejorada mejorada La aceleración global es la relación de los tiempos de ejecución: Tiempo de ejecución antiguo 1 Aceleración global = Tiempo de ejecución nuevo = ( 1 Fracción ) mejorada + Fracción Aceleración mejorada mejorada
16 Ejemplo: Aplicación de la Ley de Amdahl Se tiene una máquina en la cual se hicieron arreglos en hardware para alcanzar una mejora que se ejecuta diez veces más rápida que la máquina original, pero sólo es utilizable el 40% del tiempo. Cuál es la aceleración global lograda al incorporar la mejora? Respuesta Fracción mejorada = 0.4 Aceleración mejorada = 10 Aceleración global = 1/( /10) = Un corolario importante de la Ley de Amdahl es que si una mejora sólo es utilizable por una fracción de una tarea, no es posible aumentar la velocidad de la tarea más que el recíproco de 1 menos esa fracción. Un error común al aplicar la Ley de Amdahl es confundir la «fracción de tiempo para utilizar una mejora» con la «fracción de tiempo después de que se utiliza la mejora». Si, en lugar de medir el tiempo que podría utilizar la mejora en un cálculo, midiésemos el tiempo después que se ha utilizado la mejora, los resultados serían incorrectos. La Ley de Amdahl puede servir como guía para ver cómo una mejora aumenta el rendimiento y cómo distribuir los recursos para mejorar la relación costo/rendimiento. El objetivo, claramente, es emplear recursos de forma proporcional al tiempo que se requiere en cada parte.
17 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: Programa Tiempo en S1 Tiempo en S segundos 5 segundos 2 3 segundos 4 segundos Se dice que una máquina es más efectiva en coste que otra si la razón de rendimiento dividida por el coste es mayor. a. Un usuario sólo se interesa por el rendimiento del programa 1. Qué máquina es más efectiva en coste para correr sólo el programa 1? En cuánto? b. Otro usuario está preocupado por la productividad de los sistemas, cuando se midieron 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 coste para esa carga de trabajo? En cuánto? 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? d. Considere que en los dos sistemas y programas se hicieron las siguientes medidas adicionales: Programa Instrucciones ejecutadas en S1 Instrucciones ejecutadas en S x x 10 6 Calcule la velocidad de ejecución de las instrucciones (instrucciones por segundo) para cada máquina cuando corre el programa 1. 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. 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).
18 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? 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. Instruction type Frequency Cycles Loads & Stores 30% 6 cycles Arithmetic instructions 50% 4 cycles All others 20% 3 cycles a. Calculate the CPI for Benchmark B. 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? 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)? 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? e. How many CPU seconds will the benchmark take if we double the number of registers (taking into account both changes described above)?
Notas de Teórico. Evaluación de Rendimiento
Departamento de Arquitectura Instituto de Computación Universidad de la República Montevideo - Uruguay Evaluación de Rendimiento Arquitectura de Computadoras (Versión 1.1-2014) Instituto de Computación
Más detallesTutorías con Grupos Reducidos (TGR) Parte 1: Evaluación de prestaciones
Tutorías con Grupos Reducidos (TGR) Parte 1: Evaluación de prestaciones ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Evaluación de Prestaciones Curso 2011/2012
Más detallesArquitectura de Computadores II Clase #9
Arquitectura de Computadores II Clase #9 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Rendimiento Rendimiento (Performance) Ver a través de la niebla del
Más detallesOrganización del Computador I Verano. Rendimiento (2 de 3) Basado en el capítulo 1 del libro de Patterson y Hennessy
Organización del Computador I Verano Rendimiento (2 de 3) Basado en el capítulo 1 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Hasta ahora T_ejec ciclos de reloj frecuencia del reloj
Más detallesMedición del Rendimiento de Computadores
Arquitectura 08/09 Medición l Rendimiento Motivación: Qué medidas tiempo se utilizan para evaluar el rendimiento? Cómo finimos el tiempo cpu y el rendimiento l procesador? Qué parámetros condicionan el
Más detallesRendimiento de computadores
+ Prof. José María Foces Morán Dept. IESA Universidad de León Rendimiento de computadores Tiempo de ejecución Tiempo de CPU Rendimiento comparativo Ley de Amdahl Ley de Gustaffson + Computador síncrono
Más detallesMedición del Rendimiento de Computadores
Arquitectura 09/10 Medición l Rendimiento Motivación: Qué medidas tiempo se utilizan para evaluar el rendimiento? Cómo finimos el tiempo cpu y el rendimiento l procesador? Qué parámetros condicionan el
Más detallesPráctica 1 - Rendimiento *
Práctica 1 - Rendimiento * Organización del Computador 1 Verano 2014 Subconjunto mínimo de ejercicios recomendado: 1 a 11 Ejercicio 1 Considere tres procesadores distintos P 1, P 2 y P 3 que ejecutan el
Más detallesMedición del rendimiento
Medición del rendimiento Medición del rendimiento El rendimiento de la CPU es el tiempo de ejecución. Ecuación del rendimiento de la CPU Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
Más detallesOrganización de Computadoras 66.20
Organización de 66.20 Dr. Ing. José Luis Hamkalo Facultad de Ingeniería Universidad de Buenos Aires Fundamentos de Diseño de Intel 4004: el primer microprocesador 2 Fundamentos de Diseño de Intel 4004:
Más detallesTema 1. Aspectos fundamentales en el diseño de computadores: Rendimiento, consumo y coste. Organización de Computadores I Rendimiento y Coste
Tema 1 Aspectos fundamentales en el diseño de computadores: Rendimiento, consumo y coste 1 Contenido Qué se entiende por arquitectura de computadores? Evolución del rendimiento de los computadores Tipos
Más detallesNY Paris Velocidad Througput Avión Pasajeros horas mph p/mph
Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad Unidad El papel del Dra. Ruth M. Aguilar Ponce Primavera 0 Midiendo el Métricas Relacionadas Escogiendo los
Más detallesRendimientos y costes
Rendimientos y costes Curso 2011-2012 Qué es el Rendimiento? El Rendimiento es un parámetro que indica el nivel de computación de la máquina y la velocidad a la que produce los resultados. El Rendimiento
Más detallesRendimiento y sus factores
Rendimiento y sus factores Rendimiento 1. m. Producto o utilidad que rinde o da alguien o algo. 2. m. Proporción entre el producto o el resultado obtenido y los medios utilizados. Real Academia Española
Más detallesRendimiento John Hennessy David Patterson,
Rendimiento John Hennessy David Patterson, Arquitectura de Computadores Un enfoque cuantitativo 1a Edición, Capítulos 1 y 2 (3a y 4a Edición, Capítulo 1) Rendimiento Introducción Cómo comparar la performance
Más detallesRendimiento John Hennessy David Patterson,
Rendimiento v.2013 John Hennessy David Patterson, Arquitectura de Computadores Un enfoque cuantitativo, 1ª edición, Capítulos 1 y 2 (4ª edición, Capítulo 1) Rendimiento Introducción Cómo comparar la performance
Más detallesUnidad I: Performance. Arquitectura de Computadoras Esteban Peláez Andrés Airabella Facundo Aguilera
Unidad I: Performance Arquitectura de Computadoras Esteban Peláez Andrés Airabella Facundo Aguilera Comprar una Computadora MAC PC Notebook 2010 Unidad I 2 Elegir mi Computadora Procesador Sistema Operativo
Más detallesINTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO BENCHMARK
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesArquitectura de Computadores II Clase #11
Arquitectura de Computadores II Clase #11 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2009 Veremos Rendimiento 1 Performance Medir, Reportar, y Sumarizar Tomar opciones
Más detallesINTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO MEDIDAS DE RENDIMIENTO
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesFacultad de Ciencias de la Computación. Medir, reportar, y analizar el rendimiento.
Benemérita Universidad AutónomA de Puebla Facultad de Ciencias de la Computación RENDIMIENTO Verano 2009 Juárez Rocha Carlos Moisés Lima Romero Carlos Daniel Méndez Romero Israel Reyes Aburto Marcos Ignacio
Más detallesARQUITECTURA DEL PROCESADOR II
DESEMPEÑO DE LOS PROCESADORES ARQUITECTURA DEL PROCESADOR II 1. Desempeño Evaluar el desempeño de las computadoras es bastante desafiante. 1 Debido a lo intrincado y el tamaño de los sistemas de software
Más detallesArquitectura de Computadores II Clase #9
Arquitectura de Computadores II Clase #9 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Rendimiento Rendimiento (Performance) Ver a través de la niebla del
Más detallesArquitectura de computadoras y rendimiento de sistemas
Arquitectura de computadoras y rendimiento de sistemas Arquitectura de Computadoras I Prof. Marcelo Tosini Prof. Elías Todorovich 207 Arqui-UNICEN Introducción Qué se entiende por arquitectura de un computador?
Más detallesMétricas de Rendimiento
Métricas de Rendimiento DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 6. RENDIMIENTO DE SISTEMAS COMPUTACIONALES (1 SEMANA) 6.1 Definición de rendimiento en términos computacionales 6.2 Medición
Más detallesArquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 1. La
Más detallesTendencias y Evaluación
Tendencias y Evaluación Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de
Más detallesTrabajo Práctico Número 1
Trabajo Práctico Número 1 Página 1 de 6 Arquitectura de Computadoras 18/03/2014 Instrucciones Los problemas de ejercitación propuestos en el presente trabajo práctico pueden ser resueltos en forma individual
Más detallesGRADO EN INGENIERÍA DE COMPUTADORES
GRADO EN INGENIERÍA DE COMPUTADORES Tema 1 Departamento Introducción al de paralelismo Automática Prof. Dr. José Antonio de Frutos Redondo Curso 2015-2016 Tema 1: Introducción Necesidad del procesamiento
Más detallesOrganización del Computador I. Introducción e Historia
Organización del Computador I Introducción e Historia Introducción Qué es una computadora? Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz de
Más detallesANALISIS COMPARATIVO DEL RENDIMIENTO. PUA: Vergara Bruno Benjamín 2011
ANALISIS COMPARATIVO DEL RENDIMIENTO PUA: Vergara Bruno Benjamín 2011 CONTENIDO Introducción Necesidad y Objetivos de la evaluación Técnicas de evaluación de un sistema informático Medidas del rendimiento
Más detallesARQUITECTURA DE VON NEUMANN Y HARVARD
ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA VON NEUMANN En esta arquitectura se observa que las computadoras utilizan el mismo dispositivo de almacenamiento para datos e instrucciones conectados
Más detallesTrabajo Práctico Número 6
Página 1 de 6 Trabajo Práctico Número 6 Arquitectura de Computadoras 24/05/2014 Instrucciones Los problemas de ejercitación propuestos en el presente trabajo práctico pueden ser resueltos en forma individual
Más detallesDefinición. Alternativamente. Speedup = Universidad de Sonora Arquitectura de Computadoras 2
Ley de Amdahl Definición Evalúa como cambia el rendimiento al r una parte de la computadora. Define el speedup (aceleración) que se puede alcanzar al usar cierta. Alternativamente Rendimiento al usar la
Más detallesDefiniendo desempeño
Desempeño El desempeño es un atributo importante al momento de elegir entre diferentes computadoras. Como se realiza la comparación? Pueden haber diferentes perspectivas! 1 Definiendo desempeño Airplane
Más detallesMaestría en Electrónica Arquitectura de Computadoras. Unidad 2 RENDIMIENTO. M. C. Felipe Santiago Espinosa
Maestría en Electrónica Arquitectura de Computadoras Unidad 2 RENDIMIENTO M. C. Felipe Santiago Espinosa Marzo/2017 Defining Performance Which airplane has the best performance? Boeing 777 Boeing 777 Boeing
Más detallesArquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 1. La
Más detallesArquitectura de Sistemas Paralelos 1
Arquitectura de Sistemas Paralelos 1 Tema 1 INTRODUCCIÓN A LA ARQUITECTURA DE COMPUTADORES Y ANÁLISIS DE PRESTACIONES Daniel Cascado Caballero Alejandro Linares Barranco Francisco Gómez Rodríguez Saturnino
Más detallesDefinición de Arquitectura
Definición de Arquitectura Arquitectura de los Computadores Personales Luis J. Saiz Adalid 1 Resumen Evolución del rendimiento de los computadores Concepto de arquitectura Tendencias Análisis de prestaciones
Más detallesINTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO LEY DE AMDAHL
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesMedición de Performance. Organización del Computador 1 Verano 2016
Medición de Performance Organización del Computador 1 Verano 2016 Qué es el rendimiento? Cuál de estos aviones tiene mejor rendimiento? El que tiene mayor autonomía, o el más rápido? El más rápido o el
Más detallesTema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento
Soluciones a los problemas impares Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento Arquitectura de Computadores I Curso 2009-2010 Tema 1: Hoja: 2 / 18 Tema 1: Hoja:
Más detallesTema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid
Tema 2: Conceptos básicos Ingeniería Informática Universidad Autónoma de Madrid 1 O B J E T I V O S Introducción a la Informática Adquirir una visión global sobre la Informática y sus aplicaciones. Conocer
Más detallesARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN
ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN De Diego Varona, Rubén Romay López, Oscar Manuel Vega Martínez, Jorge INTRODUCCIÓN La representación de la instrucción en la computadora se denomina formato.
Más detallesPruebas aplicaciones base (application based) las ejecuta y las cronometra.
Que es un benchmark? (Comparador de rendimiento) Un benchmark es un conjunto de procedimientos (programas de computación) para evaluar el rendimiento de un ordenador. Hay cuatro categorías generales de
Más detallesInstrucciones de máquina y tipos de software
(obsoletos) Instrucciones de máquina y tipos de software Software del sistema: Implementa sobre la máquina convencional («desnuda») una «máquina virtual»: la máquina operativa Software de aplicaciones:
Más detallesTema 1: PROCESADORES SEGMENTADOS
Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características
Más detallesTema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento
Enunciados de problemas Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento Arquitectura de Computadores I Curso 2009-2010 Tema 1: Hoja: 2 / 12 Tema 1: Hoja: 3 / 12 Base
Más detallesMedidas de rendimiento
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesSistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Más detallesCapitulo 1 Fundamentos de Computadores - I.T.Telecomunicación - Segundo cuatrimestre. INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES
INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES Hoja 1 PRIMERA APROXIMACION AL CONCEPTO DE COMPUTADOR Computador: máquina que procesa la información para obtener unos resultados. La información a procesar
Más detallesConceptos y Estructuras de Sistemas Operativos
Conceptos y Estructuras de Sistemas Operativos Contenido del Curso Evaluación I ex. Parcial 100% prueba escrita II ex. Parcial 100% proyecto Examen final= Nota del proyecto (50%) + prueba escrita (50%)
Más detallesAnálisis de algoritmos
Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional
Más detalles5. Procesador: camino de datos y control
Fundamentos de Computadores Ingeniería de Telecomunicación Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Contenidos 1 Control de operaciones elementales 2 3 4 5 Objetivos
Más detallesMemoria. Rendimiento del caché
Memoria Rendimiento del caché Medidas El tiempo de CPU se divide en: Ciclos de reloj usados en ejecutar el programa. Ciclos de reloj usados en detenciones (stalls) del sistema de memoria. La ecuación:
Más detalles1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.
1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. Arquitecturas Clásicas. Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos
Más detallesTAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.
1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;
Más detallesTema 3. Leyes sobre el aumento de prestaciones
Tema 3. Leyes sobre el aumento de prestaciones Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI
Más detallesGUIA 24: REPERTORIO DE INSTRUCCIONES
Prof Sandro Costantini GUIA 24: INSTRUCCIONES Las instrucciones maquinas son las acciones elementales que puede ejecutar un computador Una acción compleja deberá codificarse como una secuencia de instrucciones
Más detallesArquitectura de Computadoras
Arquitectura de Computadoras Clase 6 RISC Computadoras de repertorio reducido de instrucciones Historia de evolución (1) El concepto de familia: Introducido por IBM en su System/360 en 1964. DEC PDP-8.
Más detallesMEDIDAS DE DISPERSIÓN
MEDIDAS DE DISPERSIÓN Contenido: Población y muestra Amplitud o recorrido Desviación media. desviación estándard y varianza Coeficiente de variación Cálculo de la varianza en una tabla de frecuencias POBLACIÓN
Más detallesMICROPROCESADOR. Ing. Raúl Rojas Reátegui
MICROPROCESADOR Ing. Raúl Rojas Reátegui OBJETIVOS Al termino de la sesión el estudiante será capaz de: Describir las principales características de un Microprocesador. Describir las principales características
Más detallesControl y descripción de procesos
Control y descripción de procesos Capitulo3 hzberbesi@gmail.com Hzberbesi.wordpress.com 1 1 Requerimientos de un sistema operativo Intercalar la ejecución de múltiples procesos para maximizae la utilización
Más detallesTEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua
Más detallesTema: Microprocesadores
Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1
Más detallesDefiniciones. Para qué sirve la evaluación del desempeño? Tópicos Especiales en Evaluación de Desempeño. Mariela J. Curiel H. 1
Evaluación de de Sistemas Informáticos Introducción Prof. Mariela J. Curiel H. M. Curiel 1 - Definiciones - : Cuán bien hace un sistema informático el trabajo que se supone que tiene que hacer. - Análisis
Más detallesTema 12: El sistema operativo y los procesos
Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx
Más detallesPipelining. Introducción
Pipelining Introducción Definición Técnica de implementación. Consiste en ejecutar traslapadas varias instrucciones al mismo tiempo. Universidad de Sonora Arquitectura de Computadoras 2 Ejemplo Pasos para
Más detalles2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y su ejecución en la misma. Aunque el proceso de diseñar
Más detallesAIC: Enfoque del Curso
AIC: Enfoque del Curso Comprender técnicas de diseño, estructura de las máquinas, factores tecnológicos, métodos de evaluación que determinarán cómo serán los ordenadores del siglo XXI Tecnología Paralelismo
Más detallesSistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos
Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria
Más detallesArquitectura del Computador. Programación 1 er semestre 2013
Arquitectura del Computador Programación 1 er semestre 2013 Introducción Qué es una computadora? Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz
Más detallesSistemas Operativos. Gestión de E/S Discos. Dr. Wenceslao Palma
Sistemas Operativos Gestión de E/S Discos Dr. Wenceslao Palma M. Conceptos Considerando el almacenamiento se tiene la siguiente jerarquía: Memoria Caché, Memoria Principal, Discos
Más detallesMicroprocesador. Introducción. Instituto Sagrado Corazón de Jesús
Microprocesador Introducción El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de
Más detallesSistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
Más detallesSoluciones a ejercicios de Fundamentos
Soluciones a ejercicios de Fundamentos J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo ARCOS
Más detallesUNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011
1 UNIDAD I CONCEPTOS GENERALES Fall 2011 Conceptos Generales Microprocesadores Otoño 2011 Contenido 2 Introducción Arquitectura generalizada de una computadora Componentes de una computadora Conjunto de
Más detallesMemoria. Organización de memorias estáticas.
Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria
Más detallesSistemas con Microprocesadores I
Sistemas con Microprocesadores I 1 Microcontroladores Introducción Harvard vs. von-neumann Clasificación del procesador Segmentado o Pipeline Ortogonal vs. No ortogonal 2 Microcontroladores PIC Siglas
Más detallesProcesador. Daniel Rúa Madrid
Procesador Daniel Rúa Madrid Procesador Sus funciones principales incluyen, la ejecución de las aplicaciones y la coordinación de los diferentes dispositivos que componen un equipo. Unidad Aritmético Lógica(ALU)
Más detallesTema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas
Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas Arquitectura de Computadores Curso 2009-2010 Transparencia: 2 / 21 Índice Introducción Taxonomía de Flynn
Más detallesModelos de Programación Paralela Prof. Gilberto Díaz
Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Modelos de Programación Paralela Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería
Más detallesQuinta tarea: Existen varias versiones del 80486:
Quinta tarea: Los primeros procesadores utilizados en los PC fueron los procesadores 8088 y 8086. Sus principales diferencias con el 80286 es que el segundo permite multitarea, tenía una velocidad de reloj
Más detallesTema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento
Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento Arquitectura de Computadores Curso 2009-2010 Transparencia: 2 / 32 Índice Relación de asignaturas del plan de estudios
Más detallesCICLOS DEL PROCESADOR
UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del
Más detallesFundamentos de los Computadores Grado en Ingeniería Informática
7. Camino de datos y unidad de control o Fundamentos de los Computadores Grado en Ingeniería Informática Introducción La versatilidad es una característica deseable de los sistemas digitales Un sistema
Más detallesPROBLEMAS TEMA 1: Estructuras de interconexión de un computador
PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen 1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato
Más detalles2. Qué microprocesador de Intel utilizaría para las siguientes aplicaciones y por qué?
Cuarta parte TEHUACÁN SOMA 307 Y 308 INSTALACIÓN DE SISTEMAS MICROPROCESADOS Utilizando la tabla anterior procedemos a solucionar los siguientes planteamientos. Al final de los incisos existe información
Más detallesSistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores
Sistemas Operativos MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistema Operativo Un S.O. explota los recursos hardware de uno o mas procesadores para proporcionar un conjunto de servicios
Más detallesLa Unidad Aritmética
Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 4 5 En este capítulo profundizaremos la aritmética computacional
Más detallesDefinición de prestaciones
Definición de prestaciones En términos de velocidad. Diferentes puntos de vista: Tiempo de ejecución. Productividad (throughput) Medidas utilizadas En función de la duración del ciclo de reloj y del número
Más detallesMemoria. Otros temas sobre cachés
Memoria Otros temas sobre cachés Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias de reemplazo de bloque. 3. Cachés multinivel. Universidad de Sonora Arquitectura de Computadoras 2 Localizando
Más detallesEstructura de Computadores I
Estructura de Computadores I Profesores Patricia González Gómez (Coordinadora, Teoría) Despacho D 1.13 Extensión 1363 pglez@udc.es Margarita Amor López (Problemas, Prácticas) Despacho D 1.15 Extensión
Más detallesTema 1: Introducción a los Sistemas Operativos
Tema 1: Introducción a los Sistemas Operativos Yolanda Blanco Fernández yolanda@det.uvigo.es Qué es un Sistema Operativo (SO)? Un programa que actúa como intermediario entre el usuario y el hardware del
Más detalles