Documente Academic
Documente Profesional
Documente Cultură
i1
i2 (salt condiţionat la ik )
i3
:
ik (destinaţie)
ik +1
Cicluri → 1 2 3 4 5 6 7 8 9 10 11
i1 IF ID OF EX WB
i2 IF ID OF EX WB
i3 IF ID OF EX
i4 IF ID OF
i5 IF ID
ik IF ID OF EX WB
ik+1 IF ID OF EX WB
Fig. 7.11
Predicţie Predicţie
eronată corectă
Predicţie corectă
Predicţie Predicţie
cale secvenţială cale secvenţială
01 Predicţie eronată 00
Predicţie corectă
Fig. 7.12
Cicluri → 1 2 3 4 5 6 7 8 9 10 11
i1 IF ID OF EX WB
i2 IF ID OF EX WB
i3 IF
i4
i5
ik IF ID OF EX WB
ik+1 IF ID OF EX WB
a
c
Cicluri → 1 2 3 4 5 6 7 8 9 10 11
i1 IF ID OF EX WB
i2 IF ID OF EX WB
i3 IF ID OF EX
i4 IF ID OF
i5 IF ID
ik IF ID OF EX WB
ik+1 IF ID OF EX WB
b
Fig. 7.13
In acest caz în care se utilizează predicţia salturilor sistemul pipeline
funcţionează la 78% din viteza sa maximă.
Fig. 7.14
Faze corespunzătoare celor opt etaje ale sistemului pipeline sunt descrise
mai jos.
1. IF (Instruction Fetch, First Half): Sistemul de comandă selectează o
adresă de instrucţiune şi începe extragerea acestei instrucţiuni din memoria
cache de instrucţiuni. In aceeaşi fază, bufferul de translatare (TLB) pentru
instrucţiuni, începe translatarea adresei virtuale într-o adresă fizică.
2. IS (Instruction Fetch, Second Half): Extragerea instrucţiunii din memoria
cache de instrucţiuni şi translatarea adresei virtuale într-o adresă fizică sunt
terminate.
3. RF (Register Fetch): Instrucţiunea este decodificată şi marcajul
memoriei cache de instrucţiuni este comparat cu numărul cadrului de pagină
obţinut din bufferul de translatare pentru instrucţiuni. Operanzii necesari sunt
încărcaţi din setul de registre.
4. EX (Instruction Execution): UAL execută operaţia aritmetică sau logică
pentru instrucţiunile care operează cu registrele. Pentru instrucţiunile de
încărcare şi memorare, UAL calculează adresa virtuală a datelor. Pentru
instrucţiunile de salt, UAL determină dacă condiţia de salt este adevărată şi
calculează adresa virtuală a destinaţiei saltului.
5. DF (Data Fetch, First Half): Pentru instrucţiunile de încărcare şi
memorare, începe extragerea datelor din memoria cache de date şi translatarea
adresei virtuale într-o adresă fizică. Pentru instrucţiunile de salt, începe
translatarea adresei şi actualizarea TLB. Pentru instrucţiunile care
operează cu registrele, nu se execută nici o operaţie în timpul fazelor DF, DS şi
TC.
6. DS (Data Fetch, Second Half): Pentru instrucţiunile de încărcare şi
memorare, extragerea datelor din memoria cache de date şi translatarea
adresei virtuale într-o adresă fizică sunt terminate. Pentru instrucţiunile de salt,
translatarea adresei şi actualizarea TLB sunt terminate.
7. TC (Tag Check): Pentru instrucţiunile de încărcare şi memorare,
memoria cache execută testarea marcajului. Adresa fizică din TLB este
comparată cu marcajul memoriei cache pentru a determina dacă există un
succes sau un eşec la accesul memoriei cache.
8. WB (Write Back): Pentru instrucţiunile care operează cu registrele,
rezultatul instrucţiunii este scris în setul de registre. Pentru instrucţiunile de salt,
nu se execută nici o operaţie în timpul acestei faze.