27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
|
|
#### Классификация конфликтов данных (RAW/WAW/WAR/RAR).
|
||
|
|
|
||
|
|
Пусть А стоит раньше В в потоке инструкций.
|
||
|
|
|
||
|
|
- **RAW (Read After Write)** - истинная зависимость по данным.
|
||
|
|

|
||
|
|
|
||
|
|
В пытается читать операнд-источник данных прежде, чем А туда пишет, поэтому В получает неправильное значение (старое).
|
||
|
|
A (Write)
|
||
|
|
Data
|
||
|
|
B (Read) $\star$
|
||
|
|
|
||
|
|
- **WAW (Write After Write)** - зависимость по именам регистров.
|
||
|
|
|
||
|
|
В пытается записать операнд прежде, чем он записан A, т.е запись происходит в неправильном порядке.
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
- **WAR (Write After Read)** - зависимость по именам регистров.
|
||
|
|

|
||
|
|
|
||
|
|
В пытается записать результат в приемник прежде, чем он считывается A, поэтому А получает неправильное значение (новое).
|
||
|
|
A (Read) $\qquad$
|
||
|
|
B (Write) $\qquad$ Data
|
||
|
|
|
||
|
|
- **RAR (Read After Read)** - нет конфликта.
|