Rádi byste si pořídili Pentium 4, ale nevíte jaké? Vyplatí se investovat více peněž do rychlejšího modelu nebo raději ušetřené peníze investovat do např. grafické karty nebo pamětí? Otestovali jsem pro vás Pentium 4 na frekvencích 1,5 až 2GHz a zhodnotili, jak moc je výhodné či nevýhodné mít procesor s vyšší frekvencí, zda více opravdu znamená za všech okolností více. Možná že některá zjištění budou šokující, ale tak už to chodí...
Kapitoly článku:
Nechci spekulovat o tom, zda je lepší pořídit si vlajkovou loď Intelu nebo AMD. Domnívám se, že každý procesor má své klady i zápory a že si určitě najde své příznivce i odpůrce. Jestliže chcete vést flamewar na téma AMD vs. Intel, tak prosím ne zde, o tom tento článek není.
Architektura NetBurst
O radikální změně, kterou NetBurst přinesl, jsme mluvili již několikrát. Přesto si ale neodpustím některé skutečnosti znovu okomentovat a poukázat na výhody i nevýhody, které jí provázejí.
Pentium 4 tvoří dvacetistupňová pipeline, dvakrát delší než je tomu v případě předchozí generace P6 (Pentium II a Pentium III) a čtyřikrát delší než u původního Pentia.


Tato pipeline umožňuje dosahovat výrazně vyšších frekvencí, ale zároveň znamená delší časovou penalizaci v případě chybného naplnění instrukcemi.
Pipeline je seskupení plně specializovaných jednotek mikroprocesoru, kdy každá jednotka se stará o jiný typ operace (např. čtení, dekódování, přejmenování registrů, vykonání atd.). Čím delší pipeline, tím více specializované jsou jednotlivé jednotky a tím vyšší frekvence mohou dosahovat.
Aby se tomu dalo lépe porozumět... programy sestávají z instrukcí, tyto instrukce jsou v moderním mikroprocesoru prováděny v mimo programem stanoveném pořadí (tzv. out-of-order), což znamená, že procesor provádí výpočty podle vzájemných závislostí a případně předpovídá výsledky některých instrukcí a předem naplňuje pipeline. V případě, že se předpověď podaří (cca 94 procent případů), pak výpočet probíhá přesně podle plánu, ideálním tempem. Pokud se však nepodaří, musí se celá pipeline vyprázdnit a pak znovu naplnit. Čím delší pipeline, tím více instrukcí je potřeba a tím déle celá operace trvá. U NetBurst proto trvá celá operace dvakrát tolik hodinových cyklů než je tomu u Pentia III.
Dalším negativním faktorem architektury NetBurst je fakt, že vykonání jedné instrukce trvá déle než je tomu u Pentia III. Pipeline sice "pohltí" dvakrát tolik instrukcí, ale jedna instrukce musí projít více stupni, což jí trvá déle. V praxi tak může nastat častěji situace zvaná stall, kdy provedení jedné instrukce je závislé na výsledku jiné instrukce.
Dalo by se spekulovat, zda tak radikální navýšení počtu stupňů pipeline bylo dobré řešení či nikoli. Pentium 4 více trpí na podmínkových operacích a na závislosti kódu než kterýkoliv předchozí mikroprocesor, ale zároveň dosáhlo fantastické frekvence - o 80 procent vyšší než Pentium III při stejné výrobní technologii - což z velké části nevýhody dlouhé pipeline eliminuje. Pravdou je, že pro dnešní generaci programů není NetBurst právě to ideální řešení, do budoucna ale určitě představuje větší perspektivu díky snažšímu dosahování vysokých frekvencí. Nenechal bych se ale zmást reklamními slogany, procesor kupujeme dnes, kvůli dnešním programům a ne kvůli tomu, co bude za pět let.
Nové technologie
Je pravdou, že Pentium 4 je především určeno pro novou generaci software, pro plně optimalizované aplikace, ne pro neoptimalizované programy. Vývoj procesoru se řídil faktem, že pro běžné aplikace není vyšší výkon potřeba a že naopak je nutné urychlit výpočty jako komprese audia a videa. K tomuto účelu Intel implementoval novou instrukční sadu Streaming SIMD Extensions 2 (zkráceně SSE2), kterou rozšířil možnosti stávající sady SSE o celočíselné operace nebo o práci s 64bit desetinými čísly.
Běžné operace probíhají tak, že procesor načte do paměti (registru) data a pak vykoná instrukci, která s těmito daty operuje. SIMD operace naproti tomu načtou do jednoho registru dvoje nebo čtvery data (tzv. packet data) a pomocí jedné instrukce zpracují všechny najednou. Tím se výpočet urychlí minimálně dvakrát. Tento postup byl do PC poprvé zaveden s uvedením instrukční sady MMX.
Mezi další vylepšení patří fantasticky zvládnutý data prefetch, který načítá data z paměti ještě před tím, než jsou skutečně potřeba. Tímto se eliminuje "pomalost" systémové paměti.

Jednou z důležitých vylepšení je Trace Cache, která nahradila instrukční cache první úrovně. Instrukční dekodér se "přesunul" před tuto cache a díky tomu je Pentium 4 velmi výkonné při opakování kódu (typicky programové cykly), kdy se veškeré instrukce výpočetní části dodají z Trace Cache a mezitím si procesor dekóduje další instrukce.
Nevýhody
Kromě nevýhod plynoucích z dlouhé pipeline trpí Pentium 4 především organizací a počtem výpočetních jednotek. Celý design vychází z předpokladu, že přednost mají jednoduché, často se vyskytující instrukce. Ty dokáže Pentium 4 vykonat velmi rychle, avšak na úkor ostatních instrukcí. V některých případech je proto výkon velmi slabý.
Problém spočívá ve špatné volbě výpočetních jednotek. Pentium 4 mělo původně vypadat úplně jinak, mělo mít např. cache třetí úrovně, mělo mít víc instrukčních jednotek. Bohužel (nebo bohudík) silná konkurence ze strany konkurenčního Athlonu donutila Intel urychlit vývoj a některé části "proškrtat", aby se snížila výrobní cena (která je ale i tak poměrně vysoká). Zde je nutné říct, že zatímco na Athlonu nebo Pentiu III je vidět, že se jedná o dotaženou architekturu, tak NetBurst je překombinovaný, někdy velmi rychlý, ale někdy velmi neohrabaný. Naštěstí pro Intel byl původně zamýšlený design natolik dobrý, že i po těchto škrtancích kvůli ceně je konečný produkt dostatečně výkonný na to, aby byl silnou konkurencí.
Mám-li být konkrétní, tak Pentium 4 má jen jeden dekodér instrukcí, což značně snižuje výkon v programech, kde jsou použity nepříliš obvyklé instrukce. Dalším problémem je relativně malá propustnost Trace Cache - zatímco jenom dvě dvojnásobně taktované ALU jsou schopné vykonat čtyři procesorové instrukce (mikro-Ops) za hodinový cyklus, Trace Cache je jim schopná dodat pouze tři mikro-Ops... a to nemluvím o ostatních výpočetních jednotkách. Dále pak malá velikost datové cache první úrovně - 8kB. Obecně platí, že čím menší cache, tím rychleji z ní lze získat data. Zde při návrhu pravděpodobně sehrála značnou roli délka pipeline a nutnost jí co nejrychleji naplnit při špatném odhadu větvení kódu, takže tato cache musí být velmi rychlá, i na úkor velikosti. V praxi tak práce na jakémkoliv datovém bloku větším než 8kB (což není prakticky nic) vyžaduje přístupy k cache druhé úrovně, což dělá prodlení časově delší a degraduje výkon.
Tyto téměř katastrofální chyby se ale ukázaly nebýt díky vysokým frekvencím natolik kritické, aby zabránily Pentiu 4 stát se alespoň na chvíli výkonnostním leaderem.