Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX P6
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX P6
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX P6
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX Predizione del salto P6 Predizione del salto
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX P6
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium Verifica del salto (il prefetch è ancora nella subroutine) IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX … P6
Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX … P6
… Codice Subroutine A Subroutine B IF DEC1 DEC2 EX WB Pipeline Pentium IF1 IF2 IF3 DEC1 DEC2 RAT ROB DIS EX … E’ possibile caricare l’istruzione solo grazie al prefetch speculativo in quanto ancora non è arrivato in fase EX per il controllo (mancano 3 clock, ma in realtà ne possono mancare molti di più a seconda del numero di m-ops per ogni istruzione di alto lvl). Potrebbe verificarsi il caso che il prefetch debba prevedere anche il salto alla subroutine B mentre ancora non è stato verificato L’istruzione viene caricata dal prefecth perché il branch è già stato risolto (altrimenti si sarebbe piantato, ma è difficile visto l’esiguo numero di stati tra predizione e verifica) P6