Arch: chore
This commit is contained in:
@ -7,10 +7,11 @@
|
||||
- $j$ зависит по данным от $k$ и $k$ зависит по данным от $i$ (цепочка конфликтов RAW).
|
||||
|
||||
**Пример зависимости по данным:**
|
||||
```assembly
|
||||
Loop: LD [R1], F0
|
||||
```armasm
|
||||
Loop:
|
||||
LD [R1], F0
|
||||
DADD F2, F0, F4
|
||||
ST F4, [R1]
|
||||
ST F4, [R1]
|
||||
```
|
||||
|
||||
**Зависимость по именам** возникает, когда 2 инструкции используют один и тот же регистр или место в памяти, т.е. общее имя места.
|
||||
@ -32,13 +33,13 @@ $i$, $j$ пишут по одинаковому имени. Тогда $j$ за
|
||||
Изменение относительного порядка исполнения $i$, $j$ нарушает эту зависимость по именам и приводит к конфликту WAW и некорректному исполнению.
|
||||
|
||||
**Пример:**
|
||||
```assembly
|
||||
1 LD F0, [R1]
|
||||
2 DADD F2, F0, F4
|
||||
3 ST F4, [R1]
|
||||
4 LD F0, [R1-8]
|
||||
5 DADD F2, F0, F4
|
||||
6 ST F4, [R1-8]
|
||||
```armasm
|
||||
LD F0, [R1] ; 1
|
||||
DADD F2, F0, F4 ; 2
|
||||
ST F4, [R1] ; 3
|
||||
LD F0, [R1-8] ; 4
|
||||
DADD F2, F0, F4 ; 5
|
||||
ST F4, [R1-8] ; 6
|
||||
```
|
||||
|
||||
В графе можем переупорядочивать инструкции только если сохраняется порядок стрелок.
|
||||
|
Reference in New Issue
Block a user