La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Contenido Desempeño Definición Fórmulas para el desempeño en una CPU

Presentaciones similares


Presentación del tema: "Contenido Desempeño Definición Fórmulas para el desempeño en una CPU"— Transcripción de la presentación:

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.

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

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

3 Dos nociones de desempeño
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 DC to Paris 6.5 hours 3 hours Speed 610 mph 1350 mph Passengers 470 132 Throughput (pmph) 286,700 178,200 Boeing 747 BAD/Sur Concor

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.

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

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

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

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

9 Definición de Desempeño
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)

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

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:

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

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

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.

15 Midiendo el tiempo utilizando ciclos de reloj
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.

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

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 s 2: % 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

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?

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

20 Solución Tiempo utilizado por el procesador B:

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”)

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.

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:

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

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

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

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

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

29 Cómo calcular lo 3 componentes de la eq?
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)

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

31 Ejemplo de un procesador RISC
Op Freci CPIi Prod (% Tiempo) ALU 50% (23%) Lectura 20% (45%) Escritura 10% (14%) Salto 20% (18%) 2.2 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 Mix de Instrucciones 2.2/2.0= 1.1 times faster (Consumo de tiempo)

32 Mejorías en elementos de la arquitectura
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?

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

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

35 Ejemplo da ley de Amdahl

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?

37 Ley de Amdahl Como se pode ver, el tiempo total de la correra paso a ser: Tiempo total = T/ = 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

38 Ley de Amdahl 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

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???

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 los 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

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:

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!!!

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)

44 Lei de Amdahl (enseñanzas para el diseñador de Sistemas de Computación)
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

45 Resumen: Fórmula de Tiempo de CPU

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

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

48 Escogiendo Programas para la evaluación
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 Workload basado en objetivos reales Benchmarks com apli- cacioes completas Benchmarks de pequeños núcleos Micro-benchmarks

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.

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.

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

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

53 Primeras lecciones del SPEC
Fig. 2.3

54 SPEC2000 (CINT) Benchmark Language Categoría 164.gzip C Compresión
175.vpr C Posicionamiento/rutas FPGA 176.gcc C Compilador C 181.mcf C Optimización Combinatoria 186.crafty C Ajedrez 197.parser C Procesamiento de textos 252.eon C++ Visualización 253.perlbmk C PERL 254.gap C Teoría de Grupos, Interpretador 255.vortex C Banco de Datos OO 256.bzip2 C Comprensión 300.twolf C Simulador de rutas/posicionamiento (

55 SPEC2000 (CFP) Benchmark Leng. Categoróa
168.wupwise F77 Cromodinámica Cuántica 171.swim F77 Modelado de águas 172.mgrid F77 Solver Multi-grid 173.applu F77 EDP Parabólicas/Elípticas 177.mesa C Biblioteca gráfica 3-D 178.galgel F90 Dinámica de fluidos computacional 179.art C Reco. de imágenes/Redes neuronales 183.equake C Propagación de ondas sísmicas 187.facerec F90 Procesamiento de imágeness 188.ammp C Química computacional 189.lucas F90 Teoría de números 191.fma3d F90 Simulación de choques a través del método de elementos finitos 200.sixtrack F77 Diseño de aceleradores nucleares 301.apsi F77 Distribución de poluentes

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

57 Resultados Winstone 99 (W99)
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!

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

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 IA puede demorar más tiempo en ser ejecutada que una instrucción IB porque IA es más compleja que IB Por lo tanto, no se puede comparar dos máquinas M1 e M2 con diferentes conjuntos de instrucciones. Conjuntos de instrucciones diferentes implican diferentes cantidades de instrucciones a ser ejecutadas en la máquinas M1 y M2

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

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

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 M1 y M2 Esto sucede porque el mismo programa ejecutado en M1 y M2 podrá ejecutar un número diferente de instrucciones, pero siempre ejecutará (teóricamente) la misma cantidad de operaciones en punto flotante

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 M1 y M2 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

64 Arquitectura del Conjunto de Instrucciones
Adaptado a partir de la presentación del Prof. D. Patterson’s, 2000 UCB

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.

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

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.

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

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

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

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).

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

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) Objeto compilador ejecución Código fuente (LAN) Objeto Interpretador ejecución Código fuente (LAN o Assembly)


Descargar ppt "Contenido Desempeño Definición Fórmulas para el desempeño en una CPU"

Presentaciones similares


Anuncios Google