Title: ??? ??
1 ??? ?????
4.1 ???????? 4.2 ??????? 4.3 ?????? 4.4 ?????
4.5 ???????????? 4.6 Intel Pentium 4 ????
24.1 ????????
????????
????????????????????????,?????????????????????
???????????? (ILPInstruction-Level Parallelism)
34.1.1 ?????
- 1??????????CPI
- ??????CPI????????????
- CPI??? CPI?? ?????? ?????? ??????
- ??CPI????????????????
- IPCInstructions Per Cycle
- (?????????????)
- 2??????
- ??????????????????????????????
- ?????57???????????
4- 3???????????????????????
- ????????????
- ???????
- ?????????????
- ??,??????
- for (i1 ilt500 ii1)
- aiais
- ????????????????????
- ?????????,??????????
5- 4???????????????
- ????(loop unrolling)??
- ?????????????
64.1.2 ????????????
?????????????
?????? ?????? ???????
???? ??????? 3
???? ???????(SD) 2
???????(LD) ???? 1
???????(LD) ???????(SD) 0
7- ?4-1
- ????????,
- for (i1 ilt1000 i)
- xi xi s
- (?)???DLX????,????????????????????,??????????????
- (?)????????,???????????
- ????????????????????
8? (?) (1) ???????
?????R1?????,????? ????????????
?????F2????S? ???????????8? (2)
DLX???????? Loop LD F0,0(R1)
ADDD F4,F0,F2 SD 0(R1),F4
SUBI R1,R1,8 BNEZ R1,Loop
9(3) ?????????
- ???????????,??????
- ??????
- Loop LD F0 , 0(R1) 1
- (??) 2
- ADDD F4 , F0 , F2 3
- (??) 4
- (??) 5
- SD 0(R1) , F4 6
- SUBI R1 , R1 , 8 7
- (??) 8
- BNEZ R1 , Loop 9
- (??) 10
- ?????????10?????,??5???????
10(4) ??????,???????
- SD?????????????
- ?????????????
- ??????
- Loop LD F0 , 0(R1) 1
- SUBI R1 , R1 , 8 2
- ADDD F4 , F0 , F2 3
- (??) 4
- BNEZ R1 , Loop 5
- SD 8(R1) , F4 6
- ??????????10????????6?
- 5??????????,1??????
11(?)
(1) ??,????4??????????,?????17??????????,????
Loop LD F0 , 0(R1) ADD.D
F4 , F0 , F2 SD 0(R1) ,
F4 SUBI R1 , R1 , 8 LD
F0 , 0(R1) ADD.D F4 , F0 , F2
SD 0(R1) , F4 SUBI
R1 , R1 , 8 LD
F0 , 0(R1) ADD.D F4 , F0 , F2
SD 0(R1) , F4
SUBI R1 , R1 , 8 LD
F0 , 0(R1) ADD.D F4 , F0 ,
F2 SD 0(R1) , F4 SUBI R1 , R1 ,
8 BNEZ R1 , Loop
12(2) ?????????????????????????,??3?SUBI?????,??????
??14??????????,???? Loop LD F0 ,
0(R1) ADD.D F4 , F0 , F2 SD
0(R1) , F4 LD F0 , -8(R1) ADD.D
F4 , F0 , F2 SD -8(R1) , F4
LD F0 , -16(R1) ADD.D F4 , F0 ,
F2 SD -16(R1) , F4 LD F0 ,
-24(R1) ADD.D F4 , F0 , F2 SD
-24(R1) , F4 SUBI R1 , R1 , 32
BNEZ R1 , Loop
13(3) ???????,???????????????,???? Loop LD
F0 , 0(R1) ADD.D F4 ,
F0 , F2 SD 0(R1) , F4 LD
F6 , -8(R1) ADD.D F8 , F6 , F2 SD
-8(R1) , F8 LD F10 , -16(R1)
ADD.D F12 , F10 , F2 SD
-16(R1) , F12 LD F14 , -24(R1)
ADD.D F16 , F14 , F2 SD -24(R1) ,
F16 SUBI R1 , R1 , 32 BNEZ R1 ,
Loop
14?????????????
????????if-then???
if p1 S1 S if p2 S2
P1????S1,P2????S2,???S1?
15?????????????
(1)??????????????????????????ifelse???,then??????
???if???? (2)?????????????????????????,?????????,?
?ifthen???,if????????then?????
16????4-1,???????,????????????,?????????
loop LD F0 , 0(R1)
ADD.D F4 , F0 , F2 SD 0(R1) , F4
SUBI R1 , R1 , 8 BEQZ R1 , Exit
LD F0 , 0(R1) DD F4 , F0 ,
F2 SD 0(R1) , F4 SUBI R1
, R1 , 8 BEQZ R1 , Exit
LD F0 , 0(R1)
ADD.D F4 , F0 , F2 SD
0(R1) , F4 SUBI R1 , R1 , 8
BEQZ R1 , Exit LD F0 , 0(R1)
ADD.D F4 , F0 , F2 SD 0(R1) ,
F4 SUBI R1 , R1 , 8 BNEZ R1 ,
Loop Exit
17????????BEQZ R1 , Exit,BEQZ R1 , Exit,BEQZ R1 ,
Exit?????????,??????,?????4???????????????,???????
??????????????????
184.1.3??????????????
1.??????????
2.??????
3.??????
191.??????????
??????????????????????????,???????????????????
????????
??????????????????????????????????????????????
???
20?????? for (i1000igt0ii1) xixis
????????,?????xi,???????????,?????????????????
????????i????,??????,???????????,?????????
21????????????????? for (i21lt100ii1) YiYi
-1Yi
????????????????????????,?????????????????
22 ???????????????????????????(??????)??????????
??????????????????????????????????
for (i61lt100ii1) YiYi-5Yi
??i????,??????i-5???,????????????5????????????
?,????????1???????,??????????????????
232.??????
??????????????????????????????????,??????????
????????? ???????????????????????
?4-2??4-1???????3???4????,??????????????????????,
????????
24???R1????32???,??????4???? ???????
(?????????????????)
F0?F4???????1???? F2????
F6?F8???????2???? F10?F12???3????
F14?F16???4?????
25(1) ??????????
???? ADDD F12,F10,F2 15 (??) 16
(??) 17 SD -16(R1),F12
18 LD F14,-24(R1) 19 (??)
20 ADDD F16,F14,F2 21 (??)
22 (??) 23 SD -24(R1),F16
24 SUBI R1,R1,32 25 (??)
26 BNEZ R1,Loop 27 (??) 28
???? Loop LD F0,0(R1) 1 (??)
2 ADDD F4,F0,F2 3 (??) 4 (??)
5 SD 0(R1),F4 6 LD F6,-8(R1) 7 (??)
8 ADDD F8,F6,F2 9 (??) 10 (??)
11 SD -8(R1),F8 12 LD F10,-16(R1)
13 (??) 14
26????
- ??????????28?????
- ?4????,??4??????
- ????????28/47?????
- ???????????10?????
- ???????????????????
- ??????????,??????14?,??13????????
- ?????
27(2) ???????????
?????? Loop LD F0,0(R1) 1
LD F6,-8(R1) 2 LD F10,-16(R1) 3
LD F14,-24(R1) 4 ADDD F4,F0,F2 5
ADDD F8,F6,F2 6 ADDD F12,F10,F2 7
ADDD F16,F14,F2 8 SD 0(R1),F4 9
SD -8(R1),F8 10 SUBI R1,R1,32 12
SD 16(R1),F12 11
BNEZ R1,Loop 13 SD 8(R1),F16 14
28????
- ?????????????
- ?????????14?????
- ???????????14/43.5?????
- ???????????????????????
- ????????????????????????????
- ??????????,???????????
29????????????????
(1) ????? (2) ????? (3) ???????? (4)
???????????????????? (5) ?????????????? (6)
???????
303.??????
??????????????????????????,??????????????
?????????????????????? ???????????????????
??????? ????????????????????????,?????????????
?????????????????? ?????????????????,?????????
,?????????????????????????
31???????
32 ????????B?C???????????? ?????4-6????????????
???? ??A?B?C???????R1?R2?R3?
LD R4, O(R1) LD R5, O(R2) DADDU R4,
R4,R4,R5 SD R4, O(R1) .. BNEZ
R4,elsepart .. SD , O(R2) . JUMP
join elsepart X join SD , O(R3)
33 ??????B?????BNEZ?????????if????????B??????i??
?B????????,??????j???????j,???B????????????????B??
???j?i???????j?B???????????????????????B?????????
??,??????B?????X?????????????????,?????????,??????
????????
34 ??C??????????????????????,???????then???,?????C
?????????,???else???????,????????????,???????????,
???????C??????????else??????,??C??????????then????
???????????,???then??????C?????if????,else????????
?????,?????
???????????????,???????????????????,??????????????
????????????,
354.2 ???????
- ????
- ??????????????,?????????
- ??????????????????????????????
- ???????????????????????
- ????
- ?????????,?????????????,????????????
364.2.1???????
- ????????????????????
- ????????
- ???????
- DIVD F0 , F2 , F4 S1
- ADDD F10 , F0 , F8 S2S2?S1????,
- S2???
- SUBD F12 , F8 ,F14 S3S3?S1?S2??
- ???,?????
37- ????????,?????????????
- ???????
- (1)??(Issue,IS)????,????? ??????
- (2)????(Read Operands,RO)????
??????????????? - ?????????????
- ????????
- (??????????????)
384.2.2?????????
?4-3??????(WAR)??????? ????
DIVD F0 , F2 , F4 ADDD F10
, F0 , F8 SUBD F8 , F8 , F14
??????????????????
- ???????? ??????,????????????
????,???????????????
39- ????????????,??????? ????????,???????????
??????????????? - ??????????????
- CDC 6600??16?????
- 4?????, 5????????
- 7???????
- ?DLX?,???2?????1?????1 ??????1??????
401.????????DLX?????????
??????????????,???????,???????????
412.?????????????????? (1) ??(Issue,??IS)
???????????????,? ???????????????????
??????,???????????? ??,??????????????
????????????????????
42(2) ????(Read Operand,??RO)?
?????????????????? ???,????????????????
?????????????????,?? ????????????????????
??????,????????????? ???,????????????????
???????? ??????????(RAW)???
??????,??????????? ??????????,?????????
43- (3) ??(Execution,??EX)?
- (4) ???(Write Result,??WR)?
- ????????????,????
- ?????,?????????????,
- ???????????????
- ??????(WAR)??
- ?????????,?????????
- ???????(?????)????????
- ????????????????????????
443. ??????????????? (1) ?????
???????????????? ??DLX???????????
(2) ??????? ??????????????????
??????????????? Busy ???????????
Op ??????????? Fi ???????
Fj,fk?????? Qj,Qk?Rj,Rk?????????
Rj,Rk??Fj,Fk????,???????
45(3)???????? ????????????,???????????????(??)
?????????????????????????,????????
?4-4??????????,???????????????????? LD F6
, 34(R2) LD F2 , 45(R3) MULT.D F0 , F2
, F4 SUB.D F8 , F6 , F2 DIV.D F10
, F0 , F6 ADD.D F6 , F8 , F2
46 DLX?????????????
????? IS RO EX WR
? ?
- LD F6 , 34(R2) v v
v v - LD F2 , 45(R3) v v
v - MULTD F0 , F2 , F4 v
- SUBD F8 , F6 , F2 v
- DIVD F10 , F0 , F6 v
- ADDD F6 , F8 , F2
-
47 ??????? Busy Op Fi Fj Fk
Qj Qk Rj Rk
????
?? yes LD F2 R3 no ??1
yes MULTD F0 F2 F4 ?? no yes ??2 no ??
yes SUBD F8 F6 F2 ?? yes no ??
yes DIVD F10 F0 F6 ??1 no yes
48?4-5 ??????????????? ???2?????
???10????? ???40?????
?????????????????4-3???????MULT.D?DIV.D???????????
???
? ??????????,????????????????,???????????????DLX?
???????
49(1) ???LD???MULD?SUBD?MULTD?DIVD
????SUBD?ADDD??????????? (2) DIVD?ADDD???????????
(3) ADDD?SUBD??????????????? ????
?4-4?4-5?4-6??4-7?4-8?4-9?????MULTD???DIVD????????
???????
50?4-4 MULT.D????????(?????)
????? IS RO EX WR
? ?
- LD F6 , 34(R2) v
v v v - LD F2 , 45(R3) v v
v v - MULTD F0 , F2 , F4 v v v
- SUBD F8 , F6 , F2 v v v
v - DIVD F10 , F0 , F6 v
- ADDD F6 , F8 , F2 v v v
-
51?4-5 MULT.D????????(???????)
??????? Busy Op Fi Fj Fk
Qj Qk Rj Rk
????
?? no ??1 yes MULTD F0 F2 F4
no no ??2 no ?? yes ADDD F6 F8 F2
no no ?? yes DIVD F10 F0 F6 ??1
no yes
52?4-6 MULT.D????????(????????)
53?4-7?4-8?4-9??????DIV.D????????????? ?4-7
DIV.D????????(?????)
????? IS RO EX WR
? ?
- LD F6 , 34(R2) v v
v v - LD F2 , 45(R3) v v
v v - MULTD F0 , F2 , F4 v v
v v - SUBD F8 , F6 , F2 v v
v v - DIVD F10 , F0 , F6 v v
v - ADDD F6 , F8 , F2 v v
v v -
54?4-8 DIV.D????????(???????)
??????? Busy Op Fi Fj Fk
Qj Qk Rj Rk
????
?? no ??1 no ??2 no ?? no ?? yes
DIVD F10 F0 F6 no no
55?4-9 DIV.D????????(????????)
564.???????????????? ?????????????,?????
??????????,??????? ?? Fj(FU)?S1
????S1?????Fj(FU) FU ????????? D
???????? S1?S2 ??????????, Op ?????
Fj(FU) ????FU?Fj? result(D)?????????????
??D???,??????D??????????
57- ??(IS)
- (1) ????
- not Busy(FU) and not result(D)
- //??????????
- (2) ???????
- Busy(FU)?yes
- OP(FU)?Op
- Fi(FU)?D
- Fj(FU)?S1
- Fk(FU)?S2
58- Qj?result(S1) //??S1?FU
- Qk?result(S2) //??S2?FU
- Rj?not Qj //Rj?????
- Rk?not Qk //Rk?????
- result(D)?FU //D?FU???????
- ????(RO)
- (1)????
- RjRk
- //??????,???????????
59- (2)???????
- Rj?no //??????????Rj
- Rk?no //??????????Rk
- Qj?0 //??????FU?????
- Qk?0
- ??(EX)
- (1)????
- ????????
60- ???(WR)
- (1)????
- ?f((Fj(f)?Fi(FU) or Rj(f)no)
- and (Fk(f)?Fi(FU) or Rk(f)no))
- //??????????
- (2)???????
- ?f(if Qj(f)FU then Rj(f)?yes)
- //???????,?????
- ?f(if Qk(f)FU then Rk(f)?yes)
- result(Fi(FU))?0
- //??FU?????Fi??????
- busy(FU)no //??FU
615. ??????????????? (1) ????????????,?????
?????????????? (2) ??????????????????
??????????????? ????????????????
??????? (3) ??????????????????
????????????? (4) ??????????????????
????????
624.2.3 Tomasulo??????
1.????
Tomasulo????????????????? ????????
- ???????,????????,?????????????????
- ????????????????????????
- ???????,????????????????????????????
63(1).??Tomasulo???DLX?????????
64- ????????????????????? ??(??)???????????????
- ???????????????????,????????,???????
- ????????????,???????????????????,??????????????
- ????????????/???????? ???
65- ????????????????????,????????????????,???????
- ?????????????????????????????,?????????????????,
??????????????? - ????????
- ??????????????
- ??????????????
66 (2).?????????? ??Tomasulo????????? (1)
??(Issue)?????????????? (2) ??(Execute)
(3) ???(Write Result)
67(3). ????????????
- ??(tags) ????????????(????)?
- ????????6?? Op?????S1?S2???????
- Qj,Qk????????????0??
????Vj?Vk????????? - Vj,Vk??????????????,V?
- Q??????????
- Busy????????????????? ??
68- ??????????1?Qi????????? ???????????
??Qi?,??????????????? ????????
???????,Qi???
- ??????????1?Busy??1?Address? Busy?????????
A???,?????????????? - ?????1?V?????????????
692.??
?4-6 ??????,??????
LD F6 , 34(R2) LD F2 ,
45(R3) MULTD F0 , F2 , F4 SUBD F8 , F2 ,
F6 DIVD F10 , F0 , F6 ADDD F6 , F8 , F2
70?4-10?4-11?4-12??????Tomasulo?????????????????????
????
? ? ????? ????? ?????
? ? ?? ?? ???
LD F6,34(R2) v v v
LD F2,45(F3) v v
MULTD F0,F2,F4 v
SUBD F8,F2,F6 v
DIVD F10,F0,F6 v
ADDD F6,F8,F2 v
?4-10
71? ? ??? ??? ??? ??? ??? ??? ???
? ? Busy Op Vj Vk Q Qk A
Load1 no
Load2 yes LD 45RegsR3
Add1 yes SUBD Mem34?RegsR2 Load2
Add2 yes ADDD Addl Load2
Add3 no
Multl yes MULTD RegsF4 Load2
Mult2 Yes DIVD Mem34RegsR2 Multl1
?4-11
72 ? ??? ??? ??? ??? ??? ??? ??? ???
? F0 F2 F4 F6 F8 F10 .... F30
Qi Multl Load2 Add2 Addl Mult2
?4-12
73Tomasulo??????????????? (1)???????????
(2)??????????????????? ???
74?4-7???????????????MUL.D???????,?????????
???4-13?4-14?4-15??,ADD.D?DIV.D??????????????????
,ADD.D????DIV.D?????????????F6?????????,?????????F
6?????????????,???????????
75?4-13
? ? ????? ????? ?????
? ? ?? ?? ???
LD F6,34(R2) v v v
LD F2,45(F3) v v v
MULTD F0,n,F4 v v
SUBD F8,F2,F6 v v v
DIVD F10,F0,F6 v
ADDD F6,F8,12 v v v
76?4-14
? ? ??? ??? ??? ??? ??? ??? ???
? ? Busy Op Vj Vk Qj Qk A
Loadl no
Load2 no
Addl no
Add2 no
Add3 no
Mult1 yes MULTD Mem45?RegsR3 RegsF4
Mult2 yes DIVD Mem34?RegsR2 Mult1
77?4-15
? ??? ??? ??? ??? ??? ??? ??? ???
? F0 F2 F4 F6 F8 F10 F30
Qi Multl Mult2
783.????
Tomasulo??????????????????
?? rd????? rs?rt???????
imm???????? r???????????????
RS???????,????????? ????result?
RegisterStat?????????? (??????Regs ??)
79(1) ???? ? ????????????r ?
???/????????r (2) ???? ? ?????? if
(RegisterStatrs.Qi ? 0) //?????
?RSr.Qj ? RegisterStatrs.Qi?
//??????rs???,??????? else ?RSr.Vj ?
Regrs //????rs??????????
RSr.Qj ? 0? //??Vj??
80if (RegisterStatrt.Qi ? 0) //????? ?RSr.Qj
? RegisterStatrt.Qi?
//??????rt???,??????? else ?RSr.Vk ?
Regrt //????rs??????????
RSr.Qk ? 0? //??Vk?? RSr.Busy ?
yes //????? RSr.Op ? Op //???????????
RegisterStatrd.Qi ? r
//???rd??????????
81? ???/???
if (RegisterStatrs.Qi ? 0) ?RSr.Qj ?
RegisterStatrs.Qi?
//??????rs???,??????? else ?RSr.Vj ?
Regrs //????rs??????????
RSr.Qj ? 0? //??Vj?? RSr.Busy ? yes
//????? RSr.A ? Imm //???????????
82? ????? RegisterStatrd.Qi ? r
//???rd?????????? ? ????? if
(RegisterStatrt.Qi ? 0) ?RSr.Qk ?
RegisterStatrt.Qi?
//??????rt???,??????? else ?RSr.Vk ?
Regrt //????rt??????????
RSr.Qk ? 0? //??Vk??
83(1) ???? ? ?????? (RSr.Qj 0) and
(RSr.Qk 0) //????????
? ???/????1? (RSr.Qj 0) and
(r???/????????) ? ??????2?
????1?????
84(2)???? ? ???????????? ? ???/????1?
RSr.A ? RSr.Vj RSr.A
//?????? ? ??????2?
????MemRSr.A
//?????????
85 (1)???? ? ??????????
???r????,??????? (CDB)??(??) ?
????? ???r????,?RSr.Rk 0
//???????? (2)???? ?
??????????
86- ?x (if(RegisterStatx.Qi r)
- ?fx ? result //?????????(???fx)
- RegisterStatx.Qi ? 0? //?????????????
- ?x (if(RSx.Qj r)
- ?RSx.Vj ? result //????????????????
- RSx.Qj ? 0?) //????????
87?x (if(RSx.Qk r) ?RSx.Vk ? result
//???????????????? RSx.Qk ? 0?)
//???????? RSr.Busy ? no //?????,
?????? ? ????? MemRSr.A ? RSr.Vk //??????
RSr.Busy ? no //?????, ??????
884.3??????
4.3.1??????
?????????????????????????????????,?????????????
????????
?????????????????????????,????????????,???????
????????????????????,?????????????????????????????
??????????????????????????????????????
89?4-8??????? LD R1,O(R2) DSUBU R1,R1,R3 BEQZ
R1,L OR R4,R5,R6 DADDU R10,R4,R3 L DADDU
R7,R8,R9
????????????
90?????????
?????????????????
?????????????????????????,????????????,???????????
???
??????????????????????????
914.3.2??????
????????????????????????????????????????????????
?????????????
??????????????????????????
????????????
????????????????????
92????????????????
1.??????
2.??????
3.?????????
931.??????
???Cache?????????,????????
????????,????????????????????????
????????????????
???????????????,????T???????????????,?N???????
??????????
94???????????????
TT???????NT????????,?????????TN?????????,????
????NN??????????t????????n?????????T??????
??N?????????
952.??????
??????????????????????????????????,???????????
?????????,????????????????,????,?????????????,???
?????,????????(?????)?????????????????????????????
????(Branch-TargetBuffer,BTB,??Branch-TargetCache,
BTC)?
96BTB???????
???????????????????????????? (1)?????????? (2)??
????????
97 ??BTB??????????????????,????????????BTB???????
??,????????????????????PC???,????????????
??????,????????????????????BTB???????,????????
?????????????????BTB???,???????????
98??BTB??????????????
???BTB?? ???? ????? ????
? ?? ?? 0
? ?? ??? 2
?? ?? 2
?? ??? 0
99 BTB?????????????????????????????????
????????????????,????????
?????3??????
(1)?????????????
(2)????????????????,???????????????
(3)????????????????????????????,?????????????????
1003.?????????
??????????????3???
(1)???????????????????? (2)???????????????? (3)???
????????
??????????
????????,????????????????????????,???????????
,?????????????????
101??Tomasulo??????????DLX???????
1024.4 ?????
4.4.1?????
- ???????????,????????????,???????????????????,?????
????????? - ????????????????????(???????)??,?????????????
- ??????????????????,??????????
1031.???????
??????????(???????)???????????? ????????????????
??????????,?????????? ????????????????????????????
???????
(b)???
(a) ???
?????????????
??
???
104(a)????????
105(b)????????
106 ???????????????????????????????????????????????
?????????
(1)?????????
(2)?????????
(3)???????
(4)??Tomasulo??????????????????
(5)????????,????????,??????????????????????????
(6)??????????????????????,????????????????????????
1074.4.2????????
???????,?????????????,???????????????,??,?????????
?????????????????
1.??????
2.????
1081.??????
????????????,?????????????????????????????
?????????????????????????,??????(in-order
issue),??,??????(outorder issue)?
?????????????????????????,??????(in-order
completion),??,??????(outorder completion)?
109????????????????????
I1 LOAD R1, A I2 FADD R2, R1 I3 FMUL
R3, R4 I4 FADD R4, R5 I5 FDEC R6 I6
FMUL R6, R7
110(1)????????
????????????????????,???????????????
??????????,?????????????,????????????,????????????
?,???????????,????????????,????????????
111 ?????????????????
????????????
112(2)????????
?????????????????????????
?????????????????????????,????????????????????????
?????????????
113????????????????
????????????
114(3)????????
????????????????
????????????
1152.????
??????4???????? FAD.D R0 FMUL R2 FAD.D
R4 FMUL R6
???????????????????????????????,????????????FADD??
??????????FMUL?
????????????3?????,??????????4??????
116????????????????????????????,?????????
?????????4-22???
?4-22??????????,??????????????
117?????????????????????,??????????????????????3????,
???????4???????????????????,4???????????4-23???
?4-23??????????,????????????
118???4-22??4-23????,???????????m???????????,????????
????????????,???????????,????????????????????????m
k,???????????
???????????????????,???????????????????????m?m
??,??????????
1194.4.3???????
??????(????VLIW)?????????????????????????,VLIW
?????????????????
VLIW?????????????4-25??
120VLIW??????????
(1)???????????
(2)???????
(3)?????????????????,???????????????
(4)????????,?????????????????????,????????????????
????,??????????????????
(5)????????????
(6)??????????
1214.5 ???????????
???????,??????????????????????,?????????????????
???
??????????????????????????????????????????????
??????
???????,????????
122???????,????????
(1)????????????????????,?????????WAW?WAR??,???????
?????????? (2)????????????????,??????????????? (3)
????????????,?????????????? (4)????Cache,?????????
1??????
??,????????????????????????,????????????,????????
123??,????????????????????????????????,?????????,????
?????????????????
??,????????????Tournament??????,????8K????????????
150KB???(????????4?),????,?????????????????????,??
???????????
??,???????????
??,???????????????????????????????????????????????
?????????????????????????????????
1244.5.1 ????????????????????
?????????????????????
????????????????????????
?4-26??4-27???????????????,????????????,??????????
??
125?4-27????????????????????
?4-26 ?????????
126?????????,???????????????????(???????????,????????
??????????)?
?????????,????????????????????????????????????
?????????????,??4-26??4-27?????????,??????????????
???????
1274.5.2?????????????????????
???????,???????????????,??????????????????????????
??,???????????
?4.28??4.29?????????????,?????????????????????????
?????????????????????????,????????????????????????
??????????????,??????????????,?????????????
128?4-28 ??????????????
??4-28???????????(????????????)????????,????????
???????,??????????????
129?4-29 ????????(???????)
130??4-29????5???????,????
(1).???????????????????????????
(2).??????????????????????????????????????????,?
??????????????????
(3).??512?????????????????,????????16???????????
????????
(4).?????????????????????????????
(5).????????????,??,?????????????????????
131??4-30????????????????????????,3???????????
?4-30 ??SPEC92??????????????
1324.5.3??????????
?4-31??4-32??????????????????????????????
?4-31 ????????????????
133??4-31??,????????????????x??????????????,??32?????
????32?????????????????????,???????????????????
134?4-32 ?????????????
135 ??4-32???????,?????????,??????????????????????64
????,??????????,??????,??64???????????,???????????
?????????
???????????????????,???????????????????
1364.5.4 ????????????
????????????????????????,????????????????,????
????????????,??????????????????
?4-33??4-34??,??????????????????????????????????
1.??/???????
2.???
3.???
137?4-33 ?????????????????
??4-33??,???????????????????????????,???/??????FOR
TRAN????????,???????
138?4-34 ??????????????
1394.6 Intel Pentium 4 ????
4.6.1 Pentium ??Pentium4???????
Pentium4?????????NetBurst,??Pentium??????(Pen
tium???????P6?????)??????????3?IA-32??,??????????
?????,???????????????????,????????????????3?????Pe
ntium??Pentium4???????????,??????NetBurst?????????
??????,?????????????????
140?????????????
1.NetBurst???????,????????20???????????,??????????
???????,P6??10?????,?NetBurst??20?????,????2??????
???????????
2.NetBurst??????????(??MIPsRl0K?Alpha21264),???P6?
???????????????????,???????????(???128?),?P6??????
40??
3.NetBurst??7???????,P6????5??????????ALU?????????
??
1414.?????ALU(????????)??????cache?ALU????(P6??1???,N
etBurst????)?????(P6??3?,NetBurst??2?)??????????,?
????????????????????????
5.NetBurst?????cache??????????????,?P6????????????
?cache?
6.NetBurst????????????,?P6??8?,??????????
7.NetBurst???8KB???cache,P6??16KB??NetBurst???????
????2?cache(256KB)????????
8.NetBurst??????SSE2????,??????????????,????????12
8??SIMD???????,??Pentium4?Pentium???????????????
1424.6.2Pentium ??Pentium4???????
????????SPECCINT2000???,1.7GHz?Pentium4?1GHz?P
entium???????1.26?,??SPECCFP2000??????1.8??
?????Pentium4???????Pentium??????????????????????
??????????????????????,???????????????????????????
???,Pentium4??????Pentium??1.7?1.8??????????85?9
0?
143 ???????????????????CPI????????????????????????
??????SPEC???????????????,1GHz?Pentium??1.7GHz?Pen
tium4?????1.26,??????SPEC???,Pentium4?CPI?Pentium?
?1.7/1.261.34?,?Pentium4????Pentium??1.26/1.774
???,????????????????,????????????
144 ????????????????????t.26?????????????????????
????????????????CPI???,??????????????????????????,
?????????1.5???????????????????????????????????,Pe
ntium4?????????????????????????????
145Pentium4?????????
1.???144???, ?????????????????????????????? 2.??2G
??, ???????????? 3.???????400M? 4.????????20?? 5.?
?????(Advanced Dynamic Execution)
6.?????? (Execution Trace Cache)
7. ?????? (Rapid Execution Engine)
8.????????(????? )(Hyper Pipelined Technology)
,???????20??