反依存
反依存
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/11/05 07:56 UTC 版)
反依存(anti-dependency)は、命令が後で更新される値を必要とする場合を指す。以下の例では、3番の命令は2番の命令に反依存している。これらの命令を順番を変えたり、同時に並行して実行すると、最終的な A の値が期待したものとは変わってしまう可能性があるため、逐次的にしか実行できない。 1. B = 32. A = B + 13. B = 7 反依存は「名前依存; name dependency」の一種でもある。すなわち、変数名を変えてやることで依存関係が解消される。以下に例を示す。 1. B = 3N. B2 = B2. A = B2 + 13. B = 7 新たな変数 B2 を導入して B を代入する命令 N を追加する。すると、2 と 3 の反依存は解消され、これらを並行して実行可能となる。しかし、この修正によって新たな依存関係が生じている。2番の命令は N に真の依存をしており、N は1番に真の依存をしている。真の依存であるため、これらは解消できない。
※この「反依存」の解説は、「命令レベルの並列性」の解説の一部です。
「反依存」を含む「命令レベルの並列性」の記事については、「命令レベルの並列性」の概要を参照ください。
- 反依存のページへのリンク