Compiladores e interpretes

Solo disponible en BuenasTareas
  • Páginas : 12 (2860 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de marzo de 2012
Leer documento completo
Vista previa del texto
http://www.di-mare.com/adolfo/cursos/2008-1/pp-InstParalel.pdf

Paralelismo a nivel de instrucción


El paralelismo a nivel de instrucción consiste en un técnica que busca que la combinación de instrucciones de bajo nivel que ejecuta un procesador puedan ser ordenadas de forma tal que al ser procesadas en simultáneo no afecten el resultado final del programa, y más bien incrementen lavelocidad y aprovechen al máximo las capacidades del hardware. Un pipeline (canalizador) de instrucciones es el que permite que por cada ciclo de reloj del procesador múltiples instrucciones se encuentren en distintas fases de ejecución.

Todo procesador moderno de alto rendimiento puede ejecutar varias operaciones en un solo ciclo de reloj. La "pregunta del millón de pesos" es: ¿qué tan rápido puedeejecutarse un programa en un procesador con paralelismo a nivel de instrucción? La respuesta depende de:

1. El paralelismo potencial en el programa.
2. El paralelismo disponible en el procesador.
3. Nuestra capacidad para extraer el paralelismo del programa secuencia) original.
4. Nuestra capacidad para encontrar la mejor programación en paralelo, dadas las restricciones de programación.Las aplicaciones numéricas, como los cálculos científicos y el procesamiento de señales, tienden a presentar más paralelismo. Estas aplicaciones manejan grandes estructuras de datos en conjun-to; a menudo, las operaciones sobre los distintos elementos de la estructura son independientes unas de otras y pueden ejecutarse en paralelo. Los recursos de hardware adicionales pueden apro-vechar dichoparalelismo, y se proporcionan en máquinas de propósito general y procesadores de señales digitales de alto rendimiento. Estos programas tienen, por lo regular, estructuras de control simples y patrones regulares de acceso a los datos; además se han desarrollado técnicas estáti-cas para extraer el paralelismo disponible de estos programas.

Tanto la extracción del paralelismo como la programaciónpara la ejecución en paralelo pue-den realizarse en forma estática en el software, o en forma dinámica en el hardware. De hecho, hasta las máquinas con programación de hardware se pueden ayudar mediante la programación basada en software.

Arquitecturas de procesadores
Al pensar en el paralelismo a nivel de instrucción, por lo general, imaginamos un procesador que emite varias operaciones en unsolo ciclo de reloj. De hecho, es posible para una máquina emitir sólo una operación por reloj' y aún así lograr el paralelismo a nivel de instrucción, mediante el concepto de las canalizaciones.

Prácticamente todos los procesadores, ya sean supercomputadoras de alto rendimiento o máquinas estándar, utilizan una canalización de instrucciones. Con una canalización de instrucciones, puedeobtenerse una nueva instrucción en cada ciclo del reloj mientras que las siguientes instrucciones siguen pasando a través de la canalización. En la figura 10.1 se muestra una canalización simple de instrucciones de 5 etapas:
IF: Instruction Fetch: obtiene la instrucción.
ID: Instruction Decode: decodifica la instrucción.
EX: Execute: ejecuta la operación.
MEM: Memory: accede la memoria (lecturas yescrituras)
WB: Write Back: escribe el resultado con lo que se finaliza la ejecución de instrucción.

La figura muestra cómo las instrucciones i, i + 1, i + 2, i + 3, i + 4 pueden ser ejecutadas al mismo tiempo. Si el resultado de una instrucción se encuentra disponible, y una instrucción siguiente necesita de ellos para ser ejecutada, el procesador será entonces capaz de emitir unainstrucción cada ciclo de reloj.

Ejecución canalizada

Algunas instrucciones requieren de varios ciclos de reloj para ser ejecutadas. Un ejemplo común es la operación de cargado de memoria (load). Aún cuando el procesador toma los datos de la memoria de más alta velocidad: memoria caché, al ser está de menor tamaño, puede no tener el dato solicitado, y entonces se origina un fallo de caché. El...
tracking img