tarea academica microprocesadores

Upload: raineiro-franco-infantas

Post on 05-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    1/15

    Facultad de Ingeniera de Sistemas, Computacin y Telecomunicaciones

    Tcnicas de Optimizacin de la

    Performance de un

    Microprocesador

    Presentado por

    Franco Infantas Raineiro Patricio

    Tacna Per

    Junio 2012

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    2/15

    Elaborar un trabajo de investigacin cuyo ttulo es: Tcnicas de optimizacin de laperformance de un microprocesador.

    Partes del trabajo:a) Un marco terico, donde se expondrn las definiciones y caractersticas de varias

    tcnicas de mejora de la performance de un microprocesador en general, implementadasen su interior y, explicando cmo se relacionan stas con dicha mejora empleando unejemplo especfico.- Segmentacin (pipelining)

    - Prediccin del salto (branch prediction)- Ejecucin especulativa (speculative execution)- Anlisis del flujo de datos (data flow analysis)- Cache memory (memoria cach)- Alguna otra tcnica que usted haya investigado.

    b) Una parte prctica, la cual constar de la construccin de una tabla en la que semuestre la implementacin o no de tales tcnicas descritas en la parte terica, para almenos un micrprocesador de Intel, AMD y Motorola.

    Estructura:1) CartulaIncluir el ttulo de la investigacin y los datos personales del estudiante.2) IndiceOrdenar temas y pginas.3) IntroduccinEstablecer la idea principal del trabajo.4) Marco tericoDescribir las definiciones y caractersticas de las tcnicas mencionadas.

    - Segmentacin (pipelining)

    - Prediccin del salto (branch prediction)- Ejecucin especulativa (speculative execution)- Anlisis del flujo de datos (data flow analysis)- Cache memory (memoria cach)- Alguna otra tcnica que usted haya investigado

    5) Tabla resumenDescribir la tabla donde se muestra la utilizacin o no de tales tcnicas.6) ConclusionesDeducciones finales obtenidas de la investigacin.7) BibliografaDescribir la bibliografa utilizada.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    3/15

    INDICE

    1) Cartula

    2) Indice

    3) Introduccin

    4) Marco terico

    - Segmentacin (pipelining)

    - Prediccin del salto (branch prediction)

    - Ejecucin especulativa (speculative execution)

    - Anlisis del flujo de datos (data flow analysis)

    - Cache memory (memoria cach)

    - Alguna otra tcnica que usted haya investigado

    5) Tabla resumen

    6) Conclusiones

    7) Bibliografa

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    4/15

    INTRODUCCIN

    La unidad de procesamiento central (CPU) es donde se manipulan los datos. En una

    microcomputadora, el CPU completo est contenido en un chip muy pequeo llamado

    microprocesador. Todas las CPU tienen por lo menos dos partes bsicas, la unidad decontrol y la unidad aritmtico - lgica. Todos los recursos de la computadora son

    administrados desde la unidad de control, cuya funcin es coordinar todas las

    actividades de la computadora. La unidad de control contiene las instrucciones de la

    CPU para llevar a cabo comandos. El conjunto de instrucciones, que est incluido

    dentro de los circuitos de la unidad de control, es una lista de todas las operaciones

    que realiza la CPU.

    Cada instruccin en el conjunto de instrucciones es acompaado por un micro cdigo,que son instrucciones muy bsicas que le dicen a la CPU cmo ejecutar las

    instrucciones. Cuando la computadora corre un programa, busca los comandos del

    programa dentro del conjunto de instrucciones de la CPU y las ejecuta en orden. La

    unidad aritmtico-lgico (ALU) es cuando la unidad de control encuentra una

    instruccin que involucra aritmtica o lgica, le pasa el control al segundo componente

    de la CPU. La ALU incluye un grupo de registros, es decir, memoria construida

    directamente en la CPU que se usa para guardar datos que estn siendo procesados

    por la instruccin actual.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    5/15

    MARCO TERICO

    - Segmentacin (pipelining)

    Es una tcnica de implementacin de microprocesadores por la cual se solapa la ejecucin de

    mltiples instrucciones. Hoy da, la segmentacin es la tcnica de implementacin clave

    utilizada para hacer CPU rpidas.

    La segmentacin es como una lnea de ensamblaje cada etapa de la segmentacin

    completa una parte de la instruccin. Como en una lnea de ensamblaje de automviles, el

    trabajo que va a realizar una instruccin se descompone en partes ms pequeas, cada una de

    las cuales necesita una fraccin del tiempo necesario para completar la instruccin

    completa. Cada uno de estos pasos se define como etapa de la segmentacin o segmento lasetapas estn conectadas, cada una a la siguiente, para formar una especie de cauce las

    instrucciones entran por un extremo, son procesadas a travs de las etapas y salen por el

    otro extremo.

    Para implementar pipelining, los diseadores dividen el procesador en secciones, colocando

    latches entre ellas. Al inicio de cada ciclo, cada latch captura las salidas de la etapa anterior y

    mantiene la copia estable durante el resto del ciclo para la siguiente etapa.

    - Prediccin del salto (branch prediction)

    Los procesadores muchas veces deben ejecutar instrucciones condicionales, que lo

    pueden llevar a cambiar la secuencia de instrucciones en ejecucin.

    El pipelining ofrece una gran ventaja aumentando la velocidad del procesador, pero

    desafortunadamente, la presencia de instrucciones de saltos condicionales en el

    programa en ejecucin reduce fuertemente este aumento de la capacidad deprocesamiento.

    El Predictor de Salto es un bloque de hardware adicional, ubicado fuera de la lnea del

    pipeline, el cual le indica a la Unidad de Bsqueda de Instruccin la direccin de la

    prxima instruccin a ejecutar, empleando para ello una determinada estrategia de

    prediccin. Los predictores de salto no aparecieron en los microprocesadores hasta la

    dcada del 90. Algunos de los primeros microprocesadores en usar prediccindurante

    ejecucin (run-time) fueron MOTOROLA MC88110, DEC Alpha 21064 e INTEL

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    6/15

    Pentium. La exactitud en la prediccin del salto impacta fuertemente en el desempeo

    del procesador.

    - Ejecucin especulativa (speculative execution)

    La ejecucin especulativa es la ejecucin de cdigo por parte del procesador que no

    tiene por qu ser necesaria a prioridad. En la programacin funcional, suele usarse el

    trmino "evaluacin especulativa".

    La ejecucin especulativa no es ms que una optimizacin. Obviamente, slo es til

    cuando la ejecucin previa requiere menos tiempo y espacio que el que requerira la

    ejecucin posterior, siendo este ahorro lo suficientemente importante como para

    compensar el esfuerzo gastado en caso de que el resultado de la operacin nunca

    llegue a usarse.

    Todos esos datos desordenados generados por la prediccin de ramificaciones, se

    ordenan y se ensamblan esos paquetes de unidades de proceso para montar el orden

    lgico en la secuencia de ejecucin del programa

    Los procesadores modernos que hacen uso de un pipeline usan la ejecucin

    especulativa para, entre otras cosas, reducir el coste computacional de lasinstrucciones de salto condicional. Cuando el procesador se encuentra con una

    instruccin de salto condicional, el procesador intenta adivinar donde es ms probable

    que se salte (a esto se le llama prediccin de saltos) e inmediatamente comienza a

    ejecutar el cdigo que empieza en ese rea. Si a posterior se demuestra que la

    prediccin fue errnea, todo lo ejecutado despus del salto se descarta. Esta

    ejecucin prematura sale realmente rentable en trminos de uso de recursos puesto

    que si no el pipeline se parara hasta conocer cual sera la prxima instruccin.

    .

    - Anlisis del flujo de datos (data flow analysis)

    Analiza y ordena las instrucciones a ejecutar en una sucesin ptima, independiente

    del orden original en el programa: mediante el anlisis del flujo de datos, el procesador

    observa las instrucciones de software decodificadas y decide si estn listas para ser

    procesadas o si dependen de otras instrucciones. Entonces el procesador determina la

    sucesin ptima para el procesamiento y ejecuta las instrucciones en la forma ms

    eficiente.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    7/15

    - Cache memory (memoria cach)

    Las memorias convencionales son ms lentas que la CPU

    1 Ciclo de CPU ~ 1ns

    Tiempo Acceso Memoria ~ 10-60ns

    Se hace necesario mejorar el rendimiento de los accesos a memoria, a costo

    razonable.

    El principio de localidad es cuando un programa accede a memoria, es altamente

    probable el siguiente acceso a sea en una zona de memoria cercana.

    Son espacios de memoria de alto rendimiento, que se usan para acceder a los datos

    ms frecuentes.

    Si la CPU requiere buscar un dato en memoria:

    Se revisa si esta en el Cache

    Si esta en cache (Acierto): Se utiliza en forma inmediata

    Si no esta (Falla): Se traen los datos de memoria.

    Si un dato se referencia k veces

    1 vez se ira a memoria [m Ciclos]

    k-1 veces se ir al cache [c Ciclos]

    Se define:

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    8/15

    Tasa de Aciertos: h = (k-1)/k

    Tasa de Fallas: (1-h) = 1/k

    Tiempo medio de acceso: Ta/k = c + (1-h)m

    Los Cache Asociativos se divide la memoria real, en bloques, se crea una tabla (cache

    asociativo) que mantiene un conjunto de bloques en forma local:

    Bit Validez: Indica si linea esta ocupada

    Numero Bloque: Indica el bloque en cache

    Valor Bloque: Contiene los datos del bloque

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    9/15

    Los Caches de Mapeo Directo, en lugar de buscar el bloque requerido, en toda la

    tabla, se usan posiciones predeterminadas en el cach, para un conjunto de bloques.

    (Hashing)

    - Ejecucin Dinmica

    Fue utilizada por primera vez en el procesador Pentium Pro, la Ejecucin Dinmica es

    una innovadora combinacin de tres tcnicas de procesamiento diseada para ayudar

    al procesador a manipular los datos ms eficientemente. stas son la prediccin de

    ramificaciones mltiples, el anlisis del flujo de datos y la ejecucin especulativa. La

    ejecucin dinmica hace que el procesador sea ms eficiente manipulando datos en

    lugar de slo procesar una lista de instrucciones.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    10/15

    TABLA RESUMEN

    - Segmentacin (pipelining):

    Por ejemplo

    Una lavandera: Luis, Juan, Gabriela, Lucrecia cada uno tiene una carga de ropa para

    lavar, secar y doblar.

    Las lavadoras toman 30 minutos

    Las secadoras toman 30 minutos

    Doblarla toma 30 minutos

    Acomodarla toma 30 minutos

    La lavandera secuencial toma 8 horas en procesar cuatro cargas.

    Si lo realizamos con la tecnologa segmentada

    Cunto tardara?

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    11/15

    Tardara 3.5 horas en procesar las cuatro cargas.

    - Prediccin del salto (branch prediction)

    Por ejemplo

    Son las instrucciones de SaltoCondicional

    Eso provoca ineficiencias en el Pipelining

    El Pipeline debe esperar a la instruccin condicional, antes de ingresar ms

    instrucciones.

    Se producen tiempos muertos, a la espera de ejecutar la instruccin de condicional.

    - Ejecucin especulativa (speculative execution)

    Un ejemplo: Si el procesador tuviese que procesar una informacin de toma de

    decisiones como Si X > 0 entonces Y =30, sino Y =20, mientras la primera canaleta

    de procesador verificaba si X era mayor o menor que 0, la segunda canaleta, en vez

    de quedarse ociosa poda ejecutar una de las dos opciones siguientes (atribuir el valor

    30 o el valor 20 a variable Y).

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    12/15

    En el prximo ciclo del reloj cuando la primera canaleta hubiese terminado de procesar

    su instruccin, tendramos un 50% de oportunidades de que la segunda canaleta

    hubiese adivinado cual seria la instruccin siguiente y haberla ejecutado. El nombre de

    ejecucin especulativa fue dado porque la segunda canaleta escoga la instruccin a

    ejecutar de forma aleatoria entre las posibles acciones

    - Anlisis del flujo de datos (data flow analysis)

    Por ejemplo

    El anlisis del flujo de datos permite saber al microprocesador en qu orden ptimo

    puede o debe ejecutar las instrucciones del software, ya que sabe la dependencia de

    unas respecto a otras

    - Cache memory (memoria cach)

    Por ejemplo

    Linea_Cache = Numero_Bloque MOD Largo_Tabla

    Numero_Bloque = |_Direccin / 4 _|

    De igual forma, la posicin 40.965, tambin queda en la misma Lnea_Cache. Posicin

    40.965 de memoria (bloque 10241) Linea_Cache = 10241 mod 1024 = 1

    Se requiere el campo Etiqueta, para indicar el bloque exacto que se esta

    almacenando.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    13/15

    En forma ms directa, estas operaciones se realizan sobre los bits de la direccin de

    memoria

    Si se quiere dejar en el Cache el contenido de un bloque, y hay otro bloque en la

    misma posicin se escribir el nuevo bloque. Esto le quita ventajas al Cache (reduce

    Tasa xito)

    - Ejecucin dinmica

    Por ejemplo

    El desempeo del software ser afectado adversamente si con frecuencia se requieresuspender lo que se est haciendo y saltar o ramificarse a otra parte en el

    programa. Retardos tambin pueden ocurrir cuando el procesador no puede procesar

    una nueva instruccin hasta completar la instruccin. La ejecucin dinmica permite al

    procesador alterar y predecir el orden de las instrucciones.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    14/15

    CONCLUSIONES

    El presente trabajo nos a mostrado como ha ido evolucionando el microprocesador

    desde las primeras generaciones hasta las actuales.

    Lo que yo e entendido sobre los microprocesadoreses que es un pequeo cerebro

    que conecta y ordena las funciones a realizar de la computadora.

    Su funcin es ordenar y distribuir los procesos a realizar consta tres partes: memoria

    cache, coprocesador matemtico y encapsulado.

    Su velocidad de los microprocesadores pueden ser internas y externas, dependiendo

    estas pueden ser variables.

    Bueno lo principal que se debe saber de los microprocesadores es que para utilizar

    mi computador necesito hallar un microprocesador que sea factible a mis necesidades

    de trabajo; si yo tengo programas muy pesados necesito un microprocesador acorde

    con lo que voy a necesitar.

  • 7/31/2019 TAREA ACADEMICA Microprocesadores

    15/15

    7) Bibliografa

    Describir la bibliografa utilizada.