el paralelismo (ILP) del Instrucción-nivel del es una medida de cuántos de las operaciones en un programa de computadora se puede realizar simultáneamente. Considerar el programa siguiente:

1. g = e * f

La operación 3 depende de los resultados de las operaciones 1 y 2, así que no puede ser calculado hasta que se terminen ambos ellos. Sin embargo, las operaciones 1 y 2 no dependen de ninguna otra operación, así que pueden ser calculadas simultáneamente. (Véase también: dependencia de los datos) si asumimos que cada operación se puede terminar en una unidad de tiempo entonces que estas tres instrucciones se pueden terminar en un total de dos unidades de tiempo, dando un ILP de 3/2.

Una meta del recopilador y de los diseñadores del procesador es identificar y aprovecharse de tanto ILP como sea posible. Los programas ordinarios se escriben típicamente bajo modelo de la ejecución secuencial donde las instrucciones ejecutan uno después del otro y en la orden especificada por el programador. ILP permite que el recopilador y el procesador traslapen la ejecución de instrucciones múltiples o aún cambien la orden en la cual se ejecutan las instrucciones.

Cuánto ILP existe en programas es muy específico a la aplicación. En ciertos campos, tales como gráficos y científico la computación de la cantidad puede ser muy grande. Sin embargo, las cargas de trabajo tales como criptografía exhiben mucho menos paralelismo.

las técnicas Micro-arquitectónicas que se utilizan para explotar ILP incluyen:
Can¢ería de la instrucción donde la ejecución de instrucciones múltiples puede ser traslapada parcialmente.
Ejecución de Superscalar en la cual las unidades de ejecución múltiples se utilizan para ejecutar instrucciones múltiples paralelamente. En los procesadores superscalar típicos, las instrucciones ejecutando simultáneamente son adyacentes en la orden original del programa.
Ejecución fuera de servicio donde las instrucciones ejecutan en cualquier orden que no viole dependencias de los datos. Observar que esta técnica es independiente de la can¢ería y superscalar.
El registro que retitulaba que refiere a una técnica usada para evitar la serialización innecesaria de las operaciones del programa impuso por la reutilización de registros por esas operaciones, usada para permitir la ejecución fuera de servicio.
Ejecución especulativa que permiten la ejecución de instrucciones o de partes completas de instrucciones antes de estar segura si ocurra esta ejecución. Una forma de uso general de ejecución especulativa es la especulación del flujo de control donde las instrucciones más allá de una instrucción del flujo de control (e., una rama) se ejecutan antes de que la blanco de la instrucción del flujo de control sea resuelta. Varias otras formas de ejecución especulativa se han propuesto y son funcionando incluyendo la ejecución especulativa conducida por la predicción del valor, la predicción de la dependencia de la memoria y la predicción del estado latente del escondrijo.
Predicción de rama que se utiliza para evitar atascar para que las dependencias del control sean resueltas. La predicción de rama se utiliza con la ejecución especulativa.

Las puestas en práctica actuales de la ejecución fuera de servicio (es decir, mientras que el programa está ejecutando y sin ninguna ayuda del recopilador) extraen dinámicamente ILP de programas ordinarios. Una alternativa es extraer este paralelismo en de tiempo de compilación y transportar de alguna manera esta información al hardware. Debido a la complejidad de escalar la técnica fuera de servicio de la ejecución, la industria ha reexaminado los sistemas de instrucción que explícitamente codificar las operaciones independientes múltiples por la instrucción. Estos tipos del sistema de instrucción incluyen:
el VLIW del

y el estrechamente vinculado son paralelo a explícitamente la instrucción que computa conceptos de

VLIW es un ejemplo de una arquitectura de sistema de instrucción de la independencia donde el sistema de instrucción permite la especificación explícita de la independencia a través de instrucciones. VLIW y la ejecución fuera de servicio son técnicas ortogonales puesto que en principio pueden ser utilizados juntos.

Las arquitecturas del flujo de datos son otra clase de arquitecturas donde ILP se especifica explícitamente.

Estos últimos años, las técnicas de ILP se han utilizado para proporcionar mejoras del funcionamiento a pesar de la disparidad growing entre las frecuencias de funcionamiento del procesador y los tiempos de acceso de memoria (ILP temprano diseña por ejemplo IBM 360 técnicas usadas de ILP para superar las limitaciones impuestas por un archivo de registro relativamente pequeño). Actualmente, una pena de la falta de escondrijo a los costes de memoria principal que varios centenares de CPU completan un ciclo. Mientras que en principio es posible utilizar ILP para tolerar incluso tales estados latentes de la memoria los costes asociados de la disipación del recurso y de energía son desproporcionados. Por otra parte, la complejidad y el estado latente de las estructuras subyacentes del hardware da lugar a menudo a la frecuencia de funcionamiento reducida que reduce más lejos cualquier ventaja. Por lo tanto, las técnicas ya mencionadas demuestran inadecuado guardar la CPU del atasco para los datos fuera de chip. En lugar, la industria está dirigiendo hacia el aprovechamiento de niveles más altos de paralelismo que se puedan explotar con técnicas tales como multiprocesamiento y Multithreading.

Ver también

Dependencia de los datos
Paralelismo, MLP del nivel de memoria.
  • Zenithic
  • Santa Marta Sabrewing
    Random links:Provincias de Bélgica | Fox del mar de USS (SS-402) | Philipp von Hutten | Júpiter-Avia | Partido Comunista de Extremadura

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">