Pentium IV cunoscut şi sub numele de cod Willamette, este cel mai nou model al familiei de microprocesoare Intel pe 32 de biţi, care lucrează la frecvenţe mai mari şi înregistrează performanţe superioare faţă de modelele precedente.
Noua microarhitectură a acestor procesoare a fost denumită de către Intel, NetBurst, în spatele acestei tehnologii aflându-se următoarele noi facilităţi:
• busul sistemului la 400MHz – utilizând noua tehnologie ‚quad pumped’ cu o lăţime a magistralei de 64 biţi şi ceas de 100MHz, se ajunge la o rată de transfer între procesor şi memorie de 3200 MB/s, de 3 ori mai mare ca cea a procesoarelor Pentium III. Pentium III putea transfera doar 1.06G la o frecvenţă de 133MHz. Pentium IV lucrează prin intermediul a două canale de transmisie cu RDRAM, la o viteză de 3.2G/s.
• Advanced Transfer Cache – se concretizează în mărirea ratei de transfer a datelor între memoria cache L2 şi nucleul procesorului. Dimensiunea memoriei cache L2 este de 256KB. La schimbul de date cu sistemul (memorie, AGP, PCI) se folosesc blocuri de 64 bytes, ceea ce asigură o performanţă mare pentru transferurile în rafală, iar conexiunea cu nucleul se face prin intermediul unei interfeţe de 256 biţi, care poate transfera date la frecvenţa procesorului. Se obţine o lărgime de bandă de 44.8GB/s pentru un Pentium IV la1.4GHz, aproximativ de 3 ori mai mult ca un Pentium III la1GHz.
• Advanced Dynamic Execution – optimizări ale arhitecturii de prelucrare şi stocare temporară a instrucţiunilor – mod speculativ şi arbitrar de execuţie care împiedică procesorul să aibă stări de stagnare când instrucţiunile aşteaptă rezolvarea dependentelor, cum ar fi de exemplu încărcarea de date în memorie. Pot fi rulate astfel până la126 de instrucţiuni în curs de rulare, faţă de 42 în cazul microarhitecturii Pentium III. Execution Trace Cache – în cazul procesorului Pentium IV nivelul 1 de cache pentru instrucţiuni este poziţionat după unitatea de decodare. În acest caz nu mai este necesară redecodarea instrucţiunilor repetitive odată ce ele se află în acest cache, în plus sunt mai uşor de dedus dependentele în procesul de predicţie. Poate conţine până la 12000 de microinstrucţiuni (comparativ este de 6 ori mai mare ca nivelul L1 de cache al unui PentiumIII ) şi oferă spre execuţie 3 microinstrucţiuni la frecvenţa microprocesorului. Trace Cache-ul este un cache de instrucţiuni care încearcă să înregistreze instrucţiunile în ordinea lor de execuţie, ceea ce simplifică procesarea, asigurându-se că instrucţiunile sunt în ordinea corectă.
Un nou algoritm de predicţie a instrucţiunilor, Enhancced Branch Prediction, cu un buffer în care se pot stoca 4096 de alternative, de 8 ori mai multe ca la un Pentium III, eliminându-se astfel 33% din predicţiile greşite în cazul procesorului menţionat anterior.
Unitatea de execuţie rapidă asigură un nr mai mare de instrucţiuni –126, dintre sare unităţile de execuţie pot alege; acest lucru permite microprocesorului să evite aşteptările care apar atunci când o instrucţiune foloseşte datele furnizate de o altă instrucţiune. Unitatea aduce şi o mai mare acurateţe în predicţia salturilor (ranch prediction), rata de predicţie greşită fiind cu 33% mai mică. Acurateţea este posibilă datorită implementării unui buffer de 4K ce stochează mai multe detalii despre ramurile accesate anterior, dar şi datorită unui nou algoritm de predicţie.
• Hiper Pipelined Technology – dublarea faţă de arhitectura PentiumIII a numărului de stadii pe care le parcurge o instrucţiune între momentul intrării în execuţie şi obţinerea rezultatelor. Se obţine o creştere de performanţă, dar avantajul principal este scalabilitatea în frecvenţă, procesoarele PentiumIV putând funcţiona la frecvenţe mult mai mari decât cele ale procesoarelor cu arhitecturi curente. Astfel, cu introducerea unei linii de asamblare în 20 de etape, Intel a reuşit să facă procesorul să meargă la viteze foarte mari. În cazul unei instrucţiuni plasată pe o linie de asamblare în 10 etape, în timpul fiecărui impuls de ceas, o zecime este prelucrată şi este nevoie de 10 cicluri de ceas pentru a termina. Deci, unei benzi de asamblare de la PentiumIV îi trebuie 20 de cicluri de ceas pt a termina o instrucţiune, în fiecare etapă prelucrarea fiind destul de redusă ceea ce diminuează durata dintre 2 impulsuri de tact. Numărul total de cicluri necesare procesării unei instrucţiuni se numeşte timp de latenţă. O linie de asamblare mai lungă înseamnă timp de latenţă mai mare.
• Rapid Execution Engine – combinând inovaţii ale arhitecturii interne şi proiectării fizice ale circuitelor, s-a reuşit ca cele 4 unităţi logice aritmetice simple (ALU) care execută microinstrucţiunile simple, să ruleze la de 2 ori frecvenţa procesorului. Se încarcă astfel 2 microinstrucţiuni la fiecare ceas procesor rezultând o durată totală de execuţie a unei instrucţiuni mult mai mică. Operaţiile cu întregi sunt procesate de către unităţile de execuţie pt întregi. În mod normal, o unitate procesează o instrucţiune numai în partea crescătoare a impulsului de tact, dar Pentium IV poate procesa şi în partea descrescătoare a acestui impuls, reuşind astfel să dubleze viteza de lucru pentru anumite operaţii cu întregi.