TAREA ACADEMICA Microprocesadores
-
Upload
raineiro-franco-infantas -
Category
Documents
-
view
226 -
download
0
Transcript of TAREA ACADEMICA Microprocesadores
-
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.