See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Dependencia de datos - Wikipedia, la enciclopedia libre

Dependencia de datos

De Wikipedia, la enciclopedia libre

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.

Tabla de contenidos

[editar] Tipos principales

Hay tres tipos de dependencias de datos:

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

[editar] RAW - Read Alter 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.

[editar] WAR - Write Alter 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.

[editar] WAW - Write Alter 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.

[editar] 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:

En otros idiomas


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -