Dependencia de datos

Dependencia de datos

Dependencia de datos

En informática, se conoce como dependencia de datos aquella situación en que las instrucciones de un programa se refieren a los resultados de otras anteriores que aún no han sido completadas. Si dichas dependencias no son resueltas provocarán riesgos de datos o incluso condiciones de carrera. El área de estudio de las dependencias de datos se conoce como análisis de dependencias.

Contenido

Tipos principales

Hay tres tipos de dependencias de datos:

  • RAW - Read After Write
  • WAR - Write After Read
  • WAW - Write After Write

RAW - Read After Write

Una dependencia RAW hace referencia a una situación donde se necesita un dato que aún no ha sido calculado, por ejemplo:

i1. R2 <- R1 + R3
i2. R4 <- R2 + R3

La primera instrucción calcula un valor que será guardado en el registro R2, mientras que la segunda necesita este valor para computarlo y almacenar el resultado en el registro R4. Sin embargo, en un procesador segmentado, cuando se capturan los operandos para realizar la segunda instrucción, los resultados de la primera aún no han sido guardados, de forma que aparece una dependencia de datos.

Se dice que existe una dependencia de datos en la instrucción 2, la cual depende de la finalización de la instrucción 1.

WAR - Write After Read

Una dependencia WAR representa un problema de ejecución concurrente, por ejemplo:

i1. r1 <- r2 + r3
i2. r3 <- r4 x r5

Si por alguna razón la instrucción 2 puede finalizar antes de que lo haga la 1 (por ejemplo, en ejecución concurrente), es necesario asegurarse de que no se almacenará el resultado en el registro R3 antes de que la instrucción 1 haya podido leer sus operandos.

WAW - Write After Write

Una dependencia WAW es otra de las posibles situaciones problemáticas en un entorno de ejecución concurrente, por ejemplo:

i1. r2 <- r1 + r3
i2. r2 <- r4 x r7

En este caso debe retrasarse la escritura (etapa WB) de la instrucción 2 hasta que la instrucción 1 haya finalizado.

Soluciones

Es posible delegar la tarea de la eliminación de dependencias de datos en el compilador, que rellenará el código con las instrucciones NOP necesarias para asegurar la corrección del resultado del programa, o bien reordenará las instrucciones en aquellos fragmentos de código donde sea posible.

Otros métodos, implementados de forma física en los chips son:

Obtenido de "Dependencia de datos"

Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Normalización de bases de datos — Para otros usos de este término, véase Normalización (desambiguación). El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad relación al modelo relacional …   Wikipedia Español

  • Ley de dependencia — La Ley de Promoción de la Autonomía Personal y Atención a las personas en situación de dependencia y a las familias de España, más conocida como «ley de dependencia», es una ley española que sienta las bases para construir el futuro Sistema… …   Wikipedia Español

  • Arquitectura de flujo de datos — Saltar a navegación, búsqueda La arquitectura de flujo de datos es una arquitectura de computadores que contrasta directamente con la tradicional Arquitectura de von Neumann o de estructuras de control. Las arquitecturas de flujo de datos no se… …   Wikipedia Español

  • Servicio Extremeño de Promoción de la Autonomía Personal y Atención a la Dependencia — Datos Fundación 2002 Precursores …   Wikipedia Español

  • Bases de datos distribuidas — Saltar a navegación, búsqueda Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones, los …   Wikipedia Español

  • Minería de datos — La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información que reside de manera implícita en los datos. Dicha información era previamente desconocida y podrá resultar útil para algún proceso. En otras palabras, la… …   Wikipedia Español

  • Análisis de dependencias — Saltar a navegación, búsqueda En teoría de compiladores, el análisis de dependencias genera restricciones en el orden de ejecución de las instrucciones. Grosso modo, se dice una instrucción S2 depende de S1 si S1 debe ser ejecutada antes que S2.… …   Wikipedia Español

  • Riesgo (informática) — Saltar a navegación, búsqueda En arquitectura de computadores, un riesgo es un problema potencial que puede ocurrir en un procesador segmentado. Típicamente los riesgos se clasifican en tres tipos: riesgos de datos, riesgos de salto o de control… …   Wikipedia Español

  • Superescalar — es el término utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar más de una instrucción por ciclo de reloj. El término se emplea por oposición a la microarquitectura escalar que sólo es capaz de ejecutar una… …   Wikipedia Español

  • Unidad central de procesamiento — Oblea de un microprocesador Intel 80486DX2 (tamaño: 12×6,75 mm) en su empaquetado. La unidad central de procesamiento, UCP o CPU (por el acrónimo en inglés de central processing unit), o simplemente el procesador o microprocesador, es el… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”