- , . . . .
- , .
, .
, i j.
. 9.2. RAW
:
1. RAW (Read After Write - ):
j , i . j .
, . 9.2.
:
i) ADD R1,R0; R1=R1+R0i+1=j) SUB R2,R1; R2=R2-R1i R1 5. i+1 R1 4. , R1 , i.
RAW . .
RAW , (data forwardINg), (data bypassINg), (short-circuitINg).
, , (. 9.3).
. 9.3. RAW
, , , , .
, , ( ).
2. WAR (Write After Read - ):
j , i. i :
|
|
, j , i R0.
3. WAW (Write After Write - ):
j , i, , , i:
i) ADD R1,R0; R1=R1+R0...j) SUB R1,R2; R1=R1-R2WAR WAW , .
. . , . , , - , . (pIPelINe schedulINg) (INsTRuction schedulINg).
, = B + , , :
- Rb = B.
- >Rc = C.
- Ra = Rb + Rc.
- A = Ra.
, (3) , C.
, , .
, , :
= B + ;D = E - F., :
- Rb = B.
- Rc = C.
- Re = E.
- Ra = Rb + Rc.
- Rf = F.
- A = Ra.
- Rd = Re - Rf.
- D = Rd.
, . , e , b c, . .
, , .
- : ( ) - . , - .
, , (register renamINg). . , , , 86 IA32. - , () . , . , .
|
|
, , , . ( ) ( ). , : , , (. 9.5).
9.5. | ||
i | R0 | R0 PHY0 |
i+1 | R0 | PHY0 |
i+2 | R0 | R0 PHY1 |
i+3 | R0 | PHY1 |
, . .
, i, R0, , R0, , i. - i , , .
. 9.5 , . , R0, , "" PHY0 PHY1 .
, ( ). , , .
, , . , Itanium 128 .
, . . , ( 30 Pentium 4). , , , . , . . , Itanium 10 . 1 .
. . . , , .