Intel Pentium 4

Arkkitehtuuri

Pentium 4n suunnitteluperiaatteissa keskityttiin erityisesti raa'an laskentatehon kasvattamiseen yksinkertaisella koodilla. Tätä tehtiin kahdella pääperiaatteella, mahdollisimman suurella kellotaajuudella sekä yksinkertaisten laskentakäskyjen mahdollisimman nopealla suorituksella, monimutkaisempien käskyjen kustannuksella.
Mahdollisimman suuren kellotaajuuden saavuttamiseksi piirin liukuhihna jaettiin 28 vaiheeseen, jolloin jokaisesta yksittäisestä liukuhihnan vaiheesta pystyttiin tekemään mahdollisimman lyhyt.
Lisäksi piirin yksinkertaisia operaatioita suorittavat laskentayksiköt kellotettiin kaksinkertaiselle kellotaajuudelle piirin muihin osiin nähden, mikä mahdollisti erittäin suuren suoritusnopeuden näille yksinkertaisille yksiköille. Haittapuolena tästä oli kuitenkin se, että datansiirrosta piirin hitaiden ja nopeiden osien välillä tuli ylimääräisiä viiveitä, ja pelkästään nopeita yksiköitä käyttävät koodipätkät olivat tosimaailman koodissa hyvin lyhyitä ja harvinaisia.
Nopeat laskentayksiköt oli toteutettu jakamalla 32-bittisten operaatioiden suoritus kahteen kuudentoista bitin palaseen ja suorittamalla operaatiot ensin alimmille biteille ja vasta seuraavalla kellojaksolla ylimmille biteille, kun alimpien bittien tuottama muistinumerobitti on jo valmistunut. Näin alimmat bitit pystyttiin välittämään seuraavan operaation laskettavaksi ennen kuin ylimpiä bittejä oli vielä ehditty laskea, eikä muistinumeron välittämisestä laskentayksikön sisällä tule pullonkaulaa kuten yleensä yhteen- ja vähennyslaskuyksiköissä.
Jotta piirin nopeista laskentayksiköistä saatiin täysi teho irti, piti koodi optimoida Pentium 4:lle eri tavalla kuin aiemmille suorittimelle; esimerkiksi neljällä kertominen sujui muilla suorittimilla nopeimmin siirtämällä bittejä kahden verran oikealle, mutta Pentium 4:lla tämä kannatti tehdä kahdella yhteenlaskulla, koska yhteenlaskut laskettiin nopeilla laskentayksiköillä, kun taas bittien siirto hitailla.
Pentium 4:n välimuistirakenne erosi myös selvästi edeltäjistään; L1-datavälimuisti suunniteltiin mahdollisimman nopeaksi, toimimaan vain kahden kellojakson viiveellä. Haittapuolena tästä oli se, että tällöin tästä välimuistista piti tehdä hyvin pieni, vain 8 KiB:n kokoinen. Niin kauan kuin käytettävä data mahtui L1-välimuistiin, prosessori pystyi toimimaan hyvin nopeasti, mutta tosimaailman ohjelmakoodien käyttämät datamäärät olivat yleensä paljon suurempia.
Prosessorin L2-välimuisti suunniteltiin suoriutumaan erittäin hyvin koodista, jossa datalla on paljon paikallisuutta, esimerkiksi koodista jossa käydään läpi suuria määriä peräkkäistä dataa. Tämän johdosta prosessorilla on verrattaen pitkä 128 tavun välimuistilinja, joka soveltuu hyvin ottamaan kaiken kaistanleveyden irti suuren kaistanleveyden omaavasta muistista, mutta epäsäännöllisemmin muistia käyttävillä ohjelmilla johtaa siihen, että muistista ladataan turhaan välimuistiin enemmän dataa kuin pienemmällä lohkokoolla ladattaisiin.
Prosessorin L1-käskyvälimuisti talletti alkuperäisten x86-käskyjen sijaan valmiiksi dekoodattuja mikrokäskyjä. Lisäksi käskyjä ei tallennettu välimuistiin osoitteidensa mukaan, vaan siihen järjestykseen missä käskyt oli suoritettu("trace cache"). Tämä mahdollisti paremman suorituskyvyn tiheissä loopeissa, mutta välimuistiin mahtui verrattaen pieni määrä käskyjä ja hidasti huonosti ennustettavia hyppyjä kauemmaksi ohjelmakoodissa.
Käskyvälimuistia ennen liukuhihnalla oli 8 dekoodausvaihetta, välimuistin jälkeen 20 vaihetta. Mikäli haarautumiskäskyn yhteydessä hypättiin koodissa kohtaan, jota ei löytynyt käskyvälimuistista, prosessori pysähtyi 28 kellojaksoksi. Jos hypättiin koodissa kohtaan joka löytyi välimuistista, mutta joka ennustettiin väärin, prosessori pysähtyi 20 kellojaksoksi. Jos hyppy osattiin ennustaa oikein, ja hypyn kohde löytyi välimuistista, hypyn suorittaminen ei vienyt yhtään kellojaksoa

Willamette

Ensimmäisen sukupolven Pentium 4 -suoritin, koodinimeltään Willamette, oli valmistettu 0,18 µm:n valmistustekniikalla, ja siinä oli 256 kilotavua L2-välimuistia. Se julkaistiin marraskuussa 2000. Willamettessa oli pitkä 28-vaiheinen liukuhihna; 8 liukuhihnavaihetta käskyjen purkamiseen ennen L1-käskyvälimuistia, joka tallensi valmiiksi purettuja käskyjä, ja 20 liukuhihnavaihetta L1-välimuistin jälkeen. Tyypillisissä prosessoreissa L1-käskyvälimuisti tallentaa alkuperäisessä muodossa olevia käskyjä ja on liukuhihnan alussa. Willamette oli ensimmäinen kokonaan uusiksi suunniteltu suoritinydin Pentium Pro:n jälkeen.
Arkkitehtuurin suunnittelu viivästyi useaan kertaan, mutta jo vuonna 1998 se koki päivänvalon, kun suorittimen suunnittelu aloitettiin. Tuohon aikaan Intelin uusin suoritinarkkitehtuuri perustui Pentium II -suorittimiin, ja silloin ajateltiin suorittimien tulevan toimimaan enimmillään vain gigahertsin kellotaajuudella. Suorittimen suunnittelun loppumetreillä koettiin jälleen useita viivästyksiä, ja koska suoritinarkkitehtuuri oli muuttunut Pentium 3:een verrattuna huomattavasti, Intel päätti siirtyä käyttämään uutta nimeä, Pentium 4:ä.
Marraskuussa 2000 suorittimia alettiin markkinoida 1,4–1,5 gigahertsin kellotaajuuksilla. Tietotekniikan asiantuntijat pitivät suorittimia hätäratkaisuna, joka oli otettu käyttöön keskeneräisenä. Olivathan AMD Athlon- ja Thunderbird-suorittimet Pentium 3:a paljon nopeampia, ja Pentium 3 -arkkitehtuuriin nähden merkittäviä parannuksia ei juurikaan ollut. Alun perin suorittimet laitettiin Socket 423 -kantaan, myöhemmin Intel siirtyi Socket 478 -kantaan.
Willamette-pohjaisia P4-suorittimia oli saatavilla 1,3–2 gigahertsin taajuuksilla, ja se kilpaili lähinnä AMD:n Athlonia ja Athlon XP:tä vastaan, häviten niille yleisessä suorituskyvyssä, mutta voittaen signaalinkäsittelynopeudessa.
Willamette-suorittimien kanssa käytettiin tyypillisesti kallista RDRAM-tyyppistä muistia, koska Intelin ensimmäinen Pentium 4 -piirisarja i850 tuki vain tätä muistia, ja ensimmäiset Intelin seuraavaa, SDRAM- ja DDR-muistia tukevaa i845-piirisarjaa käyttävät emolevyt eivät tukeneet DDR-muistia.
Käytännössä Willamette oli pienoinen pettymys, sillä se ei voittanut AMD Athlon ja Pentium 3 -suorittimia kaikissa käyttötilanteissa.
Willametteä myytiin kohtalaisen vähän, sillä se käytti kallista RAMBUS-muistia. Näin ollen Intel Pentium 3 ja AMD Athlon -suorittimet pysyivät suositumpina.
Tammikuussa 2001 intel lisäsi valikoimaan selvästi hitaamman 1,3 GHz:n mallin. Seuraavan vuoden aikana Intel vähitellen supisti AMD:n johtoasemaa nopeuskilpailussa. Huhtikuussa 2001 markkinoille tuotiin 1,7 GHz:n kellotaajuudella toimiva Pentium 4 -suoritin, joka tarjosi selvästi parempaa suorituskykyä, kuin vanha Pentium 3 -suoritin.
Elokuussa 2001 Intel siirtyi Rambusin muisteista tavalliseen DDR-SDRAM -muistiin samalla, kuin se julkaisi markkinoille 845-piirisarjan. Vaikka SDRAM-muisti rajoitti kaistannälkäisen Pentium 4 -suorittimen nopeutta jonkin verran, myynti kasvoi huomattavasti kaikkien valmistajien saatua yhteensopivuutta enemmän, ja Intel saattoi vetää Pentium 3 -suorittimensa pois markkinoilta.
Väylän kellotaajuus oli 100 MHz ja sen efektiivinen nopeus neloiskellotuksesta johtuen 400 MHz.

Northwood

Toisen sukupolven Pentium 4 -suoritin kulki koodinimellä Northwood. Se oli valmistettu 0,13 µm:n valmistustekniikalla, ja L2-välimuistin määrä oli nostettu 512 kilotavuun. Northwoodia pidetään yleisesti ottaen parhaana P4-pohjaisena suorittimena, ja Northwood pystyikin pitämään jonkinlaista suorituskykykaulaa AMD Athloniin ennen kuin AMD julkaisi Athlon64:n.
Northwoodin L1-datavälimuisti on 4-tie-joukkoassosiatiivinen ja sen koko on 8 kilotavua kuten Willamettessäkin, ja liukuhihnan rakenne on myös identtinen Willametten liukuhihnan rakenteen kanssa.
Ensimmäinen julkaistu Northwood-malli toimi 2,2 GHz taajuudella, mutta myöhemmin kellotaajuutta kasvatettiin 3,4 GHz taajuuteen asti.
Northwoodin kanssa käytettiin tyypillisesti DDR SDRAM -muistia, koska uudemmat DDR-muistia käyttävät i845- ja i865-pohjaiset emolevyt olivat saapuneet markkinoilla, tarjoten samaa luokkaa olevan suorituskyvyn kuin paljon kalliimpaa RDRAM-muistia käyttävä i850.
Northwoodia oli saatavilla sekä (4*)100, (4*)133 että (4*)200 MHz väylätaajuuksilla.
Northwoodista lähtien Pentium 4 :ssa on ollut myös Hyper-Threading-ominaisuus, joka tarkoittaa sitä, että suoritin näkyy käyttöjärjestelmälle kahtena suorittimena ja pystyy suorittamaan kahta säiettä yhtä aikaa. Koska suorittimen sisäiset laskentayksiköt on kuitenkin mitoitettu vain yhtä säiettä silmällä pitäen, saavutetaan kahden säikeen yhtäaikaisella ajamisella yhdellä Pentium 4 -suorittimessa keskimäärin vain noin 10 % tehohyöty, vaikka ohjelma pystyisikin ominaisuutta hyödyntämään.
Ensimmäisissä Northwood-suorittimissa HyperThreading oli kytketty pois päältä, todennäköisesti jotta sitä ehdittäisiin testata kunnolla ja varmistua sen toimivuudesta ennen sen julkaisua. Northwood toimi vakiona 1,45–1,55 voltin käyttöjännitteellä. Northwoodin ytimessä on noin 55 miljoonaa transistoria  ja sen pinta ala on 146 neliömillimetriä.

Prescott

Viimeisen sukupolven Pentium 4, koodinimeltään Prescott erosi merkittävästi edeltäjistään. Prescott julkaistiin 2. helmikuuta 2004 pahojen viivästysten jälkeen. Prescottin liukuhihnaa oli pidennetty, käskyvälimuistin jälkeen oli aiemman 20 vaiheen sijasta 31 vaihetta, ja kokonaisuudessaan liukuhihnavaiheita oli noin 40. Lämpöongelmien takia piiri ei silti kellottunut merkittävästi Northwood-ydintä korkeammalle.
Piirille oli lisätty myös tuki 64-bittiselle tilalle, ja se pystyy suorittamaan X86-64-käskykannan käskyjä. Ensimmäisissä malleissa tämä x86-64-tuki oli tosin kytketty pois päältä, todennäköisesti markkinapoliittisista syistä. Prescott tuki myös silloin uusia SSE3-käskyjä. 
Vaikka piirissä oli korjattu joitain aikaisempien P4-suorittimien heikkouksia, kuten hidas kokonaislukukertolasku, liian pieni L1-datavälimuisti ja hidas bittien shiftaus, piirin L1-datavälimuistin viive oli jouduttu hidastamaan kahdesta kellojaksosta neljään, minkä seurauksena kellojaksoa kohden tehtävä työ ei kasvanut edeltäjäänsä nähden, ja lopputuloksena oli piiri, joka tarjosi vain hyvin pienen suorituskykylisän edeltäjäänsä nähden, mutta kulutti selvästi enemmän tehoa ja siten tuotti selvästi enemmän lämpöä.
Prescottin L1-datavälimuistin koko on 16 KiB ja se on 8-tie-joukkoassosiatiivinen.
Prescottissa on EIST-virransäästöominaisuus, jonka avulla se voi muuttaa jännitettään ja kellotaajuuttaan suorituskykytarpeen mukaan, tai rajoittaa kellotaajuutta ja jännitettä jos prosessorin lämpötila meinaa nousta liian korkeaksi.
Socket 478 Prescott valmistettiin 0,09 µm:n (90 nanometrin) valmistustekniikalla, ja sen suurin virallinen kellotaajuus oli 3,2 gigahertsiä. Myöhemmin kuitenkin LGA775-kannan myötä Prescott-ytimelliset suorittimet olivat saatavilla peräti 3,8 GHz:n kellotaajuudella.
Prescottia valmistettiin sekä yhden että kahden mebitavun L2-välimuistilla.
Prescottin HyperThreading toimi hiukan paremmalla suorituskyvyllä kuin Northwoodin HyperThreading. Suurimmat syyt tähän olivat todennäköisesti suuremmat välimuistit.
Prescottista valmistettiin myös versiota, joissa kaksi Prescott-piilastua oli paketoitu saman kuoren sisään, jolloin niistä saatiin tehtyä tuplaydinprosessoreita. Näitä markkinoitiin nimellä Pentium D sekä Pentium Extreme Edition
Prescottit valmistettiin 300 millimetrin piikiekolla. Valmistusprosessissa käytettiin strained siliconiksi kutsuttua tekniikkaa jossa piitä venytetään ja elektronit virtaavat vapaammin. Prescott ytimessä on 125 miljoonaa transistoria. Prescott ytimen pinta ala on 112 neliömillimetriä. Prescottissa on vakiona 1,25–1,4 voltin käyttöjännite.
Prescottin järjestelmäväylä toimi 200 MHz kellotaajuudella eli 800 MHz:n datansiirtotaajuudella.

Cedar Mill

Viimeinen uudistus Pentium 4 -suorittimista oli Cedar Mill, joka julkaistiin vuonna 2006. Nämä suorittimet valmistettiin 65 nanometrin prosessilla. Cedar Millin tehonkulutus oli alhaisempi kuin Prescottin, vain 65 W. Suorittimissa oli 31-vaiheinen liukuhihna. Suorittimet tukivat Hyper Threading ja virtualisointiteknologioita. Cedar millissä oli 2 Mt:n L2-välimuisti. Suorittimissa oli paljon ylikellotuspotentiaalia. Italialainen ylikellottaja oli puristanut prosessorista n. 8 GHz kellotaajuuden.

Pentium 4 Extreme Edition

Pentium 4 Extreme Edition on Intel Xeon -suoritin laitettuna Pentium 4:lle sopivaan kantaan. Se siis eroaa tavallisesta Pentium 4:stä siten, että siinä on suurempi L2-välimuisti ja joissain malleissa on myös nopeampi väyläkellotaajuus. Pentium 4 Extreme Edition -malleja tehtiin sekä Northwoodia että Prescottia vastaavien Xeonien pohjalta.
Pentium 4 Extreme Edition julkistettiin vastareaktiona AMD:n Athlon64-suorittimelle; Intel halusi markkinoille Athlon64:n nopeimpia malleja vastaan Pentium 4 -mallin, jolla saadaan mahdollisimman suuri suorituskyky piittaamatta valmistuskustannuksista. Tästä syystä Editionia kutsuttiin sarkastisesti myös nimellä Emergency Edition.

Pentium 4:n loppu

Alun perin Intelillä oli suunnitelmissa tehdä myös Prescottista edelleen kehitetty P4-pohjainen prosessori, koodinimeltään Tejas, mutta Prescottin ongelmien myötä Tejasista luovuttiin ja Intel päättikin alkaa kehittää seuraavan sukupolven prosessoriaan palaten takaisin P6-tyyppiseen suunnittelufilosofiaan eli keskipitkään liukuhihnaan ja mahdollisimman usean käskyn rinnakkaiseen suorittamiseen.