Paralelismo en las instrucciones

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Paralelismo en las instrucciones por Mind Map: Paralelismo en las instrucciones

1. Dependencia en los Datos

1.1. Al modificar el orden de ejecución de dos instrucciones que no posean variables en común, sus resultados nunca son afectados. Inclusive si se da lectura de la misma variable, la ejecución no se ve afectada. Los problemas se dan cuando se dan escrituras, ya que los resultados pueden ser alterados al modificar órdenes de ejecución. Existen tres tipos de dependencia de datos.

1.2. Dependencia verdadera.

1.2.1. Lectura después de escritura (RAW: read after write): la instrucción j lee antes de que i escriba con lo cual se da la lectura de un valor viejo. Es el tipo de conflicto de datos más común y se puede resolver mediante forwarding

1.2.2. .

1.3. Antidependencia.

1.3.1. Escritura después de lectura (WAR: write after read): si luego de una escritura se da una lectura. Se lee un valor incorrecto o dato sucio. Es posible eliminarla si se da el almacenamiento de valores en ubicaciones distintas. .

1.4. Dependencia de salida.

1.4.1. Escritura después de escritura (WAW: write after write): dos escrituras a la misma ubicación comparten una dependencia de salida. Al ocurrir el valor de la ubicación de memoria escrita tendrá un valor incorrecto ya que j escribe antes de que i lo haga con lo cual queda escrito un valor incorrecto.

2. Paralelismo en las Instrucciones

2.1. El paralelismo es una función que realiza el procesador para ejecutar varias tareas al mismos tiempo, es decir puede realizar varias cálculos simultáneamente, basados en principio de dividir los problemas grandes para obtener varios problemas pequeños.

2.2. Tipos de Paralelismo: Paralelismo a nivel de instrucciones. Paralelismo de tareas. Paralelismo a nivel de datos. Paralelismo a nivel de bits. Paralelismo interno o implícito. Paralelismo externo o explicito.

2.2.1. Paralelismo a nivel de instrucciones

2.2.1.1. Consiste en una 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 la velocidad y aprovechen al máximo las capacidades del hardware.

2.2.2. Paralelismo de tareas

2.2.2.1. Es la característica de un programa paralelo en la que cálculos completamente diferentes se pueden realizar en cualquier conjunto igual o diferente de datos. Esto contrasta con el paralelismo a nivel de datos, donde se realiza el mismo cálculo en distintos o mismos grupos de datos. El paralelismo de tareas por lo general no escala con el tamaño de un problema.

2.2.3. Paralelismo a nivel de datos

2.2.3.1. Es un paradigma de la programación concurrente que consiste en subdividir el conjunto de datos de entrada a un programa, de manera que a cada procesador le corresponda un subconjunto de esos datos.

2.2.4. Paralelismo a nivel de bits.

2.2.4.1. Es cuando se aumenta el tamaño de la palabra en la computadora, hacer esto reduce el número de instrucciones que son necesarias para ejecutar una instrucción en la cual sus operandos son más grandes que su tamaño de palabra.

2.2.5. Paralelismo interno o implícito

2.2.5.1. Se programa en lenguaje secuencial y el compilador se encarga de paralelizar y asignar recursos. Queda oculta la arquitectura del computadora, aumentando su velocidad sin modificar su funcionamiento. Bajo aprovechamiento, aprovecha código secuencial.

2.2.6. Paralelismo externo o explicito.

2.2.6.1. Se usan dialectos paralelos de programación. Queda visible al usuario. Mejor aprovechamiento a las posibilidades de la maquina, más trabajo para el programador, SIMD (computadores matriciales), MISD, MIMD.