La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

0 Desempeño: concepto Desde el punto de vista de la compra de una maquina: Dado un conjunto de máquinas, cual tiene un mejor desempeño? el menor costo?

Presentaciones similares


Presentación del tema: "0 Desempeño: concepto Desde el punto de vista de la compra de una maquina: Dado un conjunto de máquinas, cual tiene un mejor desempeño? el menor costo?"— Transcripción de la presentación:

1 0 Desempeño: concepto Desde el punto de vista de la compra de una maquina: Dado un conjunto de máquinas, cual tiene un mejor desempeño? el menor costo? la mejor relación desempeño/costo? Desde el punto de vista del diseño: Dadas varias decisiones de diseño, cual proporciona Mayor incremento de desempeño? Menor costo? Mejor desempeño/costo? Ambos necesitan de Una base para comparación Una métrica de avaluación Objetivo: entender la implicaciones en el desempeño de las decisiones en el diseño.

2 1 Contenido Desempeño Definición Fórmulas para el desempeño en una CPU Midiendo y evaluando el desempeño

3 2 Métricas para el Desempeño Compilador Linguaje de programaci ó n Aplicaci ó n Data path Control Transistores conexiones Pines ISA Unidades funcionales (millones) de instruciones por – MIPS (millones) de (F.P.) operaciones de PF por segundo – MFLOP/s Ciclos por segundo (clock rate) Megabytes por segundo Respuestas por mes Operaciones relevantes por segundo Cada m é trica tiene su lugar y un prop ó sito, y cada una puede ser medida

4 3 Cuál tiene el mejor desempeño? Tempo para transportar un pasajero? 400 pasajeros? Tempo para ejecutar un proceso: tempo de ejecución, tiempo de respuesta, latencia Tareas por día, hora, segundo, …: throughput, ancho de banda Plan Boeing 747 BAD/Sur Concor Speed 610 mph 1350 mph DC to Paris 6.5 hours 3 hours Passengers Throughput (pmph) 286, ,200 Dos nociones de desempeño

5 4 Cuál es mejor? Tiempo de el Concor vs. Boeing 747: Concor 1350 mph / 610 mph = 2.2 veces mas rápido = 6.5 horas / 3 horas Throughput de el Concor vs. Boeing 747: Boeing = 286,700 pmph / 178,200 pmph = 1.6 veces mejor Boeing es 1.6 veces (60%) más rápido en throughput Concor es 2.2 veces (120%) más rápido en términos de tiempo de vuelo (tiempo de respuesta) Nos vamos concentrar en el tiempo de respuesta para una única tarea.

6 5 Ejemplo en el caso de computadores Los cambios siguientes diminuyen el tiempo de respuesta, aumentan el throughput, o ámbos? 1.cambiar un procesador de un computador por otro más rápido; 2.Adición de más procesadores a un sistema multiprocesador, donde cada procesador corre un proceso en paralelo, a la misma velocidad.

7 6 Solución La caida en el tiempo de respuesta casi siempre mejora el throughput el primer caso tanto el tiempo de respuesta como el throughput mejoran En el segundo caso, ningúm proceso executará mas rapidamente (mejora solo en el throughput) Si la demanda antes de la modificación fuese mayor que el throughput, el sistema seria obligado a secuenciar los programas. En este caso la mejora de el througput (por la disposición de más procesadores) tambiém determina una mejoría en el tiempo de respuesta!!! Resumen:Cambios en el tiempo respuesta en general afectan el throughput y vice-versa

8 7 Como se mide el desempeño ? Se utilizará el tiempo de respuesta Cuando se consideran los sistemas de I/O se trabaja con los conceptos de throughput de el sistema

9 8 Qué es el tempo en computador? Definición mas intuitiva: Tiempo total para completar una tarea, incluyendo accesos al disco, accesos a la memoria, actividades de I/O, overhead del sistema operacional, … Puede incluir tiempo de ejecución de otros programas en un ambiente con multiprogramación tiempo real, tiempo de respuesta o tiempo transcurrido Hay un exceso de factores. Definición alternativa: es el tiempo en que o procesador (CPU) trabaja solamente en su programa (una vez que múltiplos procesos pueden estar siendo ejecutados al mismo tempo) tiempo de ejecución en la CPU o tiempo de CPU Normalmente dividido en tiempo de CPU utilizado por el sistema (en el sistema operacional) y tiempo de CPU utilizado por el usuario (en el programa de el usuario) desempeño de la CPU: tiempo de la CPU utilizado por el usuário

10 9 Desempeño de acuerdo con el tiempo: => más rápido es mejor Dadas dos máquinas X e Y si el desempeño de X fuera mejor que el de Y, tenemos: o: Tiempo ejecución(y) > Tiempo ejecución(x) Definición de Desempeño

11 10 Se estamos interesados en comparar dos sistemas: La proposición: X es n veces más rápido que Y significa: Comparando dos sistemas

12 11 Desempeño relativo Ejemplo: Sea una máquina A ejecutando un programa en 10 segundos y una máquina B ejecutando el mismo programa en 15 segundos, cuántas veces A es más rápida que B?? Solución: sabemos que A es n veces más rápida que B si:

13 12 Continuación ejemplo La razón entre los desempeños es: 15/10 = 1,5 Por lo tanto, A es 1,5 veces más rápida que B En el ejemplo anterior podemos tambiém decir que B es 1.5 vezes más lenta que A, ya que

14 13 Contenido Desempeño Definición Fórmulas para el desempeño en una CPU Midiendo y evaluando el desempeño

15 14 Unidades de tiempo En la perspectiva de el usuario: tiempo = segundos Tiempo de CPU: computadores son construidos utilizando un clock que cambia a una razón constante y determina cuando los eventos sucede en el hardware Intervalos discretos de tiempo son llamados ciclos de reloj (o informalmente clocks, ticks o ciclos) Período d el reloj : tiempo de un ciclo de reloj (por ejemplo, 2 nanosegundos o 2 ns) tasa de reloj o frecuencia (por ejemplo 500 megahertz, o 500 MHz), que es el inverso del período de reloj.

16 15 Tiempo de ejecución en la CPU de un programa = Ciclos de reloj de el programa x Tiempo del ciclo de reloj Ciclos de reloj para el programa = frecuencia de el reloj Ciclos de reloj del programa = Número de instrucciones del programa X promedio de ciclos de reloj por instrucción (CPI) CPI: es una forma de comparar dos máquinas con el mismo conjunto de instrucciones, una vez que el número de instrucciones es el mismo. Midiendo el tiempo utilizando ciclos de reloj

17 16 Medidas de Desempeño Es importante diferenciar entre el tiempo total de ejecución de un programa y el tiempo utilizado por el procesador trabajando en provecho de un programa El tempo utilizado por el procesador se denomina tiempo de procesador El tiempo de procesador es el tiempo utilizado en las instrucciones exclusivas de un programa El tiempo de un procesador no incluye el tiempo utilizado con (I/O), ni el tiempo utilizado con programas diferentes (no caso de sistemas compartidos) En general el tiempo total utilizado en un programa es mayor que el tiempo de procesador

18 17 Desempeño El tiempo de procesador puede ser dividido en: tiempo de usuario: (tempo utilizado en la ejecución de las instrucciones de um programa) tempo do sistema: tiempo utilizado por el sistema operacional trabajando en benefício de el programa En la práctica esta diferencia es difícil de cuantificar. El UNIX diferencia esos dos tiempos: Al ejecutar el comando time : 90.7u 12.9s 2:39 65% Lo que significa: El tiempo de usuario es de 90,7 segundos El tiempo de el sistema es de 12.9s El tiempo total es 2 minutos y 39 segundos(159s) El percentaje de el tiempo de procesador es: (90, )/159 = 0,65

19 18 Ejemplo Tenemos un programa que se ejecuta en 10s en el computador A, que tiene 400MHz de clock. Queremos ayudar a un diseñador de computadores a construir un computador B, que debe ejecutar el mismo programa en 6s. El puede aumentar bastante la tasa del clock, pero esto afectar el resto de el diseño de la CPU, haciendo que la máquina B necesite de 1.2 veces más clocks de el que la máquina A para ejecutar el programa. Quál debe ser la velocidad de clock de la máquina B?

20 19 Solución Vamos calcular el número de ciclos de clock necesarios para ejecutar el programa en la máquina A

21 20 Solución Tiempo utilizado por el procesador B:

22 21 Interfaz Hardware/Software El tiempo de ejecución también depende de el número de instrucciones de el programa Esto sucede, considerando que el compilador genera instrucciones a ser ejecutadas y que la máquina debe ejecutarlas una a una Ciclos de clocks de el programa = Número de instrucciones de el programa x promedio de ciclos de clock por instrucción (CPI)

23 22 Ejemplo 2 Suponga que tenemos dos implementaciones para el mismo conjunto de instrucciones. La máquina A tiene un ciclo de reloj de 1ns y un CPI de 2.0 para un programa, en tanto que la máquina B tiene un ciclo de reloj de 2ns y una CPI de 1.2 para el mismo programa. Cuál máquina es más rápida, y por cuanto.

24 23 Solución Sabemos que ambas máquinas ejecutan el mismo número de instrucciones (estonces ejecutando el mismo programa y posen el mismo conjunto de instrucciones) Vamos llamar I a el número de instrucciones ejecutadas por cada máquina El número de ciclos de reloj puede ser obtenido de la siguiente forma:

25 24 Continuación Ahora podemos calcular el tiempo de el procesador para la Máquina A: De manera similar para la máquina B:

26 25 Continuación Se puede concluir que la máquina A es más rápida. El factor es calculado de la siguiente forma: Se puede concluir que la máquina A es 1,2 veces más rápida que la máquina B, se estuvieran ejecutando e mismo programa

27 26 Tiempo de el procesador usando CPI Se puede escribir la ecuación básica de desempeño en terminos de la cantidad de instrucciones de un programa, del CPI y de el ciclo de reloj Estas fórmulas son muy útiles para calcular el desempeño (performance) de un procesador La última fórmula relaciona los tres factores principales que afectan el desempeño

28 27 Fórmula de Desempeño La fórmula anterior puede ser re-escrita de la siguiente forma:

29 28 Cálculo de el Desempeño (Resumen) Tiempo de CPU para un programa = # de Ciclos de clock para el programa x tiempo de un ciclo de clock Substituyendo por ciclos de clock: Tiempo de CPU para un programa = Número de instrucciones x CPI x Tiempo de el ciclo de clock

30 29 Tiempo de ciclo de clock: en la especificación de el computador (frecuencia de clock en las propagandas) Número de instrucciones: Usar un simulador para contar las instrucciones Utilización de un programa depurador/profiler Contador en hardware – registrador especial (Pentium II) CPI: Afectado por las aplicaciones (diferentes mix de instrucciones), y implementación de la máquina (por ejemplo, sistema de memoria). Cálculo: Tiempo de CPU N. de instrucciones x t. de el ciclo de clock Contador en hardware – registrador especial (PII) Cómo calcular lo 3 componentes de la eq?

31 30 Otra forma de calcular el CPI Primero se calcula el CPI para cada una de las n instrucciones específicas (add, sub, and, etc.) Se calcula la frecuencia de cada instrucción individual no conjunto de programas. Multiplique estos valores para cada instrucción y sume estos resultados, para obtener el CPI final. = frecuencia de instrucciones

32 31 Si la operación de desvio fuera dos veces más rápida? Y si dos instrucciones lógicas/aritméticas pudieran ser ejecutadas al mismo tiempo? requerimos saber los limites de la mejoras de la arquitectura OpFrec i CPI i Prod(% Tiempo) ALU50%1.5(23%) Lectura20%5 1.0(45%) Escritura10%3.3(14%) Salto20%2.4(18%) 2.2 Mix de Instrucciones (Consumo de tiempo) Ejemplo de un procesador RISC

33 32 Suponga que un programa utiliza 100 s. para ser ejecutado en una máquina, siendo las operaciones de multiplicación responsables por 80s. Cuál debe ser a aceleración de estas instrucciones para que el programa ejecute 5 veces más rápido? Mejorías en elementos de la arquitectura

34 33 Problemas de Desempeño En sistemas de computación podemos tener varios procesadores trabajando simultaneamente Esto es denominado, en general como paralelismo Un sistema puede poser dos elementos, con modalidades de operación caracterizadas por diferentes velocidades En este caso, el desempeño global e determinado por la componente de más baja velocidad Esto es conocido como la ley de Amdahl

35 34 Ley de Amdahl Los efectos de esta ley puden ser entendidos por un ejemplo bien simple Considerese una correra de relevos cuya equipo está compuesto por una tortuga y un conejo

36 35 Ejemplo da ley de Amdahl Ley de Amdahl

37 36 Ley de Amdahl L tortuga cubre el recorrido inicial de 100 metros en T minutos Con la intención de mejorar el desempeño de el equipo, el conejo entra en la segunda parte de la carrera Consideremos el conejo tan rápido que el segundo trecho es recorrido en un tiempo despreciable, o sea, equivalente a zero La tortuga gasto T/2 minutos para recorrer su trecho La pergunta es: cuál es el progreso de el equipo con la entrada de el conejo ultra-rápido?

38 37 Ley de Amdahl Como se pode ver, el tiempo total de la correra paso a ser: Tiempo total = T/2 + 0 = T/2 minutos No obstante la inmensa velocidad de el conejo, el tiempo total de el equipo fue solamente dos veces menor Si reducimos la participación de la lenta tortuga para solamente 1/4 del recorrido, el tiempo total pasa a ser de 1/4* T queda evidente, que la fracción de participación de la tortuga (o sea, de la parte más lenta) determina el desempeño global de el sistema

39 38 El incremento de velocidad (Speedup) debido a una mejora E, es Suponga que la mejora E acelere una fracción F de una tarea por un factor S y que lo restante de la tarea no sea afectado, entonces Ley de Amdahl

40 39 Como puede ser aplicada la Ley de Amdahl??? Vamos suponer que un programa es ejecutado en un computador que tiene un solo procesador En este caso el programa gasta T minutos para ejecutarse Ahora vamos suponer que el mismo programa es ejecutado en un sistema que tiene 10 procesadores Cuanto será o grado de la mejora en el tiempo de ejecución de el programa???

41 40 Speedup por el aumento de procesadores Debemos tener en cuenta que solo una fracción F de el programa podrá ser ejecutado en paralelo Esta fracción puede ser dada en % de el programa total (por ejemplo 80% de el programa, o 0,80 de el programa) O sea, solo en esta fracción F l os 10 procesadores podrán trabajar simultáneamente En la otra fracción del programa ( 1 - F ) o el 0,20 de el programa, solo un procesador podrá trabajar (el programa deberá ser ejecutado secuencialmente) Los otros procesadores quedarán parados

42 41 Ejemplo Resumiendo: En este ejemplo, el tiempo de ejecución de la fracción F = 0.80 (o sea 80%) podrá ser disminuido para 1/10 de el tiempo anterior 20% de el programa (el 0,20) solo puede ser ejecutado por un solo procesador o sea: El tiempo de ejecución de el resto de el programa (1- F) = 0.20 (o sea 20%) no será afectado Aplicado la fórmula tenemos:

43 42 Ejemplo (continuación) Esto muestra que 10 procesadores serán capaces de ejecutar el programa 3.5 veces más rápido que un solo procesador Si consideramos 100 el número de procesadores en paralelo, tenemos: En este caso, el factor aumentará solo a 4,80!!!

44 43 Conclusión sobre el problema Queda claro que el desempeño de un sistema con múltiples procesadores (multiprocesador) está limitado por la fracción del programa que debe ser ejecutada de modo secuencial (sin usar paralelismo)

45 44 Una mejora en un aspecto es limitada por el tiempo que consume ese aspecto Colorario de la Lei: Haga que el caso más común sea ejecutado de la manera más rápida posíble. Pequeñas mejorias en el caso común pueden ser más efectivas de que grandes mejoras en los casos raros Lei de Amdahl (enseñanzas para el diseñador de Sistemas de Computación)

46 45 Resumen: Fórmula de Tiempo de CPU

47 46 Contenido Desempeño Definición Fórmulas para el desempeño en una CPU Midiendo y evaluando el desempeño Programas benchmarks Resumiendo el desempeño Informando el desempeño

48 47 Cuáles programas utilizar para hacer una comparación de desempeño? Idealmente se debe ejecutar programas típicos, con entradas típicas antes de comprar o antes de construir una máquina Llamado workload; Por exemplo: Ingeniero utiliza un compilador, planilla Un escritor utiliza procesador de textos, programas de diseño, programas de compresión En algunas situaciones, esto es difícil porque: No tenemos acceso a la máquina para hacer la medida de desempeño (benchmark) antes de la compra No está bien definido el tipo de programa y/o el tipo de entrada a que va ser utilizada en el futuro

49 48 Escogiendo Programas para la evaluación Workload basado en objetivos reales Benchmarks com apli- cacioes completas Benchmarks de pequeños núcleos Micro-benchmarks Pros representativo portable Ampliamente usado Mejorías realmente útiles Fácil de ejecutar, aún en el inicio de diseño Descubrir cuellos de botella en potencia/ capacidad pico Contras No es portable Difícil de medir, de descubrir la causa Menos representativo Fácil de manipular Pico no muestra el desempeño de las aplicaciones

50 49 Benchmarks Obviamente, velocidad aparente del procesador depende del código usado para probarlo Necesidad de estándares de la industria para que procesadores diferentes puedan ser comparados de forma justa => programas benchmark Existen compañías que crean estos benchmarks: código típico usado para avaluar sistemas Trucos en el benchmarking: Configuraciones diferentes de sistemas Compilador y bibliotecas optimizadas (talvez manualmente) para los benchmarks Especificación de pruebas direccionadas para una máquina Uso de benchmarks muy pequeños. Necesitan ser cambiados cada 2 o 3 años una vez que diseñador se puede guiar para obtener buenos resultados en estos benchmarks estandard.

51 50 Exemplo de benchmarks con workloads patronizados: SPEC Conjunto de benchmarks para CPUs: Standard Performance Evaluation Cooperative (SPEC) SPEC95: benchmark com 18 aplicaciones de naturaleza técnica, con las respectivas entradas 8 aplicaciones basadas en números enteros: go, m88ksim, gcc, compress, li, ijpeg, perl, vortex 10 aplicaciones basadas en punto flotante: tomcatv, swim, su2cor, hydro2d, mgrid, applu, turb3d, apsi, fppp, wave5 Medidas individualizadas para enteros (CINT95) y puntos flotantes (CFP95), relativas a una máquina base Benchmarks distribuidos como código fuente Diseñadores de compiladores y de hardware hacen optimizaciones con base en los benchmarks, por lo deben ser cambiados cada 3 años aproximadamente.

52 51 Intel Pentium Pro Compaq/DEC AlphaHP PA Desempeño SPECint95base (Out. 1997)

53 52 Intel Pentium Pro Compaq/DEC AlphaHP PA Desempeño SPECfp95base (Out. 1997)

54 53 Primeras lecciones del SPEC Fig. 2.3

55 54 SPEC2000 (CINT) BenchmarkLanguageCategoría 164.gzip CCompresión 175.vpr CPosicionamiento/rutas FPGA 176.gcc CCompilador C 181.mcf COptimización Combinatoria 186.crafty CAjedrez 197.parser CProcesamiento de textos 252.eon C++Visualización 253.perlbmk CPERL 254.gap CTeoría de Grupos, Interpretador 255.vortex CBanco de Datos OO 256.bzip2 CComprensión 300.twolf CSimulador de rutas/posicionamiento (http://www.spec.org/cpu2000)

56 55 SPEC2000 (CFP) BenchmarkLeng.Categoróa 168.wupwise F77Cromodinámica Cuántica 171.swim F77Modelado de águas 172.mgrid F77 Solver Multi-grid 173.applu F77EDP Parabólicas/Elípticas 177.mesa CBiblioteca gráfica 3-D 178.galgel F90Dinámica de fluidos computacional 179.art CReco. de imágenes/Redes neuronales 183.equake CPropagación de ondas sísmicas 187.facerec F90Procesamiento de imágeness 188.ammp CQuímica computacional 189.lucas F90Teoría de números 191.fma3d F90Simulación de choques a través del método de elementos finitos 200.sixtrack F77Diseño de aceleradores nucleares 301.apsi F77Distribución de poluentes

57 56 Ejemplo de benchmark para PCs PCs: Benchmark WinStone 99, de Ziff Davis Benchmark en nivel de sistema, basado en aplicaciones, que mide el desempeño global de un PC cuando ejecutaba los aplicativos Windows más vendidos en la época. Trabaja a través de una serie de scripts, y utiliza el tiempo que el PC lleva para completar éstas actividades para cuantificar el desempeño Las pruebas del Winstone no emulan lo que estos programas hacen, ellos ejecutan los aplicativos reales. www1.zdnet.com/zdbop/winstone/winstone.html

58 57 Note: 2 Máquinas Compaq usando K6-2 y K6-3: Frecuencia del clock del K6-2 es veces más rápida, pero el valor Winstone 99 del K6-3 es 1.25 veces más rápido! Resultados Winstone 99 (W99)

59 58 Uso del parámetro MIPS como métrica de Desempeño MIPS significa: millones de instrucciones por segundo

60 59 Problema de la métrica MIPS MIPS solo especifica la razón de ejecución de instrucciones MIPS no tienen en cuenta el hecho que determinada instrucción ses más compleja que otra Esto es, una instrucción I A puede demorar más tiempo en ser ejecutada que una instrucción I B porque I A es más compleja que I B Por lo tanto, no se puede comparar dos máquinas M 1 e M 2 con diferentes conjuntos de instrucciones. Conjuntos de instrucciones diferentes implican diferentes cantidades de instrucciones a ser ejecutadas en la máquinas M 1 y M 2

61 60 Concepto de MFLOPS MFLOPS significa: millones de operaciones de punto flotante por segundo

62 61 Consideraciones sobre punto flotante Una operación en ponto flotante es una operación de adición, sustracción, multiplicación o división aplicada sobre números expresados en precisión simple o doble. Esta representación de datos es muy usada en cálculos científicos La representación en punto flotante es especificada en los lenguajes de programación como un tipo El tipo es especificado usando palabras reservadas del lenguajes como float, real, double o double precision

63 62 Consideraciones sobre MFLOPS MFLOPS depende del programa, pues programas diferentes requieren la ejecución de cantidades diferentes de operaciones de punto flotante MFLOPS fue creado para medir operaciones de punto flotante y no debe ser aplicado fuera de este campo MFLOPS es basado en operaciones y no en instrucciones de un programa Por esto tiene un aceptación mucho mas fuerte que MIPS para comparar dos máquinas M 1 y M 2 Esto sucede porque el mismo programa ejecutado en M 1 y M 2 podrá ejecutar un número diferente de instrucciones, pero siempre ejecutará (teóricamente) la misma cantidad de operaciones en punto flotante

64 63 Problemas con MFLOS MFLOPS no es una medida segura pues el conjunto de operaciones de punto flotante no tiene una consistencia segura entre máquinas diferentes En realidad, el número real de operaciones en punto flotante puede variar en M 1 y M 2 Por ejemplo: el CRAY-2 no tiene instrucción de división, entre tanto que el Motorola tiene división, raíz cuadrada, seno y coseno Por lo tanto, en el CRAY-2 son necesarias varias operaciones en punto flotante para la realización de una única división, en cuanto que en el Motorola es necesaria una sola operación

65 64 Arquitectura del Conjunto de Instrucciones Adaptado a partir de la presentación del Prof. D. Pattersons, 2000 UCB

66 65 Conjunto de Instrucciones Sirve para comandar el hardware del computador, es necesario que manejemos su estructura: Las palabras del lenguaje de máquina son llamadas instrucciones; El vocabulario forma el conjunto de instrucciones, que determina la interfaz hardware/software. Veremos el conjunto de instrucciones orientado a los programadores (lenguaje assembly) y a las máquina (lenguaje de máquina) Se mostrará también las relaciones entre un lenguaje de alto nivel (como C) y el assembly.

67 66 Conjunto de Instrucciones Los lenguajes de máquina son bastante parecidos entre si. Aprendiendo bien uno queda fácil aprender otro. Esto ocurre porque: Todos son basados en los mismos principios (arquitectura de Von Neumann); Existe un conjunto de operaciones básicas que todas las máquinas deben suministrar; Los diseñadores tiene el mismo objetivo: encontrar un lenguaje que torne fácil la construcción del hardware y de los compiladores, maximizando el desempeño y minimizando los costos SIMPLICIDAD

68 67 Implementación de Programas Un Programa de Computador es, básicamente, una secuencia de comandos o instrucciones representando un algoritmo que debe ser ejecutado por la máquina. Normalmente los programadores usan Lenguajes de Programación de Alto Nível ( LAN ), como Pascal e C, C++, JAVA, etc. Estos lenguajes corresponden a un nivel de abstracción elevado. Los lenguajes de los procesadores como el WNEANDER o el MIPS corresponden a un nivel de abstracción bajo, y son denominados Linguajes de Bajo Nível ( LBN ) Por esta razón es necesario un proceso de traducción.

69 68 El problema de Traducir un programa Los lenguajes LBNs son definidos por una serie de Mnemónicos, que son, básicamente, símbolos alfabéticos que representan un código binario Por ejemplo, en le caso del WNEANDER la instrucción de adicción es representada por ADD Sabemos que esta instrucción va sumar al acumulador el valor almacenado en una dirección especificada en el segundo byte da instrucción. Esto muestra que la instrucción ADD sigue un formato: el primer byte es el código correspondiente al Mnemónico de la instrucción El segundo byte corresponde a la dirección del segundo operando de la instrucción. El primer operando ya se encuentra en el acumulador

70 69 Linguaje de Montaje del Linguaje de Máquina Entretanto, para que un programa sea entendido por la máquina, es necesario que sus instrucciones estén codificadas en la forma binaria, en la forma de 0s y 1s. En el WNEANDER esto queda claro, pues para usar la instrucción ADD debemos primero digitar su código de operación ( OP-CODE ) Esto es: ADD corresponde a 30H o sea El conjunto de instrucciones de una arquitectura (en la forma de Mnemónicos) corresponde al Lenguajes de Montaje de la arquitectura ( Lenguaje ASSEMBLY ) El conjunto de instrucciones de una arquitectura (en la forma binaria) corresponde al Lenguaje de Máquina

71 70 El problema de traducir un programa Diferentes Niveles de Abstracción procesador Lenguaje de máquina Lenguaje de bajo nivel (asembler) Lenguaje de alto nivel (C++) Lenguaje natural

72 71 Traductores queda claro que tanto los programas implementados en LANs como en LBN requieren ser traducidos a lenguaje de máquina del procesador El proceso de traducción de un lenguaje de alto nivel (LAN) a lenguaje de máquina es realizado por compiladores o interpretadores El proceso de traducción de un lenguaje de montaje para lenguaje de máquina es realizado por traductores, denominados Montadores (o Assemblers).

73 72 Compiladores e Interpretadores Compiladores son traductores que después de varias fases (análisis léxico, análisis sintáctico, análisis semántico, generación de código intermediario, optimización de código y generación de código de montaje) generan un programa ejecutable. En la verdad, este programa ejecutable deberá ser cargado en la memoria para ser ejecutado. Quine realiza esta tarea es un programa del sistema operacional (programa cargador o loader) Los Interpretadores no generan código ejecutable. Los interpretadores traducen cada instrucción del programa (en LAN o Assembly) y la ejecutan

74 73 Maneras como se realiza una traducción Tenemos tres tipos de traductores: Montadores, Compiladores e Interpretadores montador ejecución Código fuente (leng. Montaje) Código Objeto compilador ejecución Código fuente (LAN) Código Objeto Interpretador ejecución Código fuente (LAN o Assembly)


Descargar ppt "0 Desempeño: concepto Desde el punto de vista de la compra de una maquina: Dado un conjunto de máquinas, cual tiene un mejor desempeño? el menor costo?"

Presentaciones similares


Anuncios Google