Data dependency: Difference between revisions

Content deleted Content added
Strimo (talk | contribs)
Cleaned article
Strimo (talk | contribs)
Added section about relevance in computing
Line 78:
 
However, dependencies among statements or instructions may hinder parallelism — parallel execution of multiple instructions, either by a parallelizing compiler or by a processor exploiting [[instruction-level parallelism]]. Recklessly executing multiple instructions without considering related dependences may cause danger of getting wrong results, namely [[Hazard (computer architecture)|hazards]].
 
==Relevance in Computing==
 
Data dependencies are relevant in various areas of computing, particularly in processor design, compiler construction, parallel computing, and concurrent programming.
 
=== Processor design ===
 
* [[Instruction pipelining]]: In pipelined processors, multiple instruction are executed in parallel in multiple pipeline stages. Thereby, data dependencies between [[Processor register|registers]] must be respected and handled in the processor pipeline. Most relevant are true dependencies that are resolved e.g. by [[Pipeline stall|stalling the pipeline]] or [[operand forwarding]].
* [[Out-of-order execution]]: Modern processors often execute instructions out of their original order to improve performance. Thereby, name dependencies must be respected (in addition to data dependencies) and are resolved e.g. by [[register renaming]] or [[scoreboarding]].
 
==See also==