reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Pentium 4 potřetí - 90nm Prescott

1.2.2004, Eagle , článek
Pentium 4 potřetí - 90nm Prescott
Dnes je uveden první procesor vyráběný 90nm technologií. Kódové označení následníka současného Pentia 4 zní Prescott a do vínku si přinesl vyšší frekvence, větší cache a různé úpravy v pipeline. Jde o největší úpravu architektury NetBurst od jejího uvedení.
Vylepšení architektury

Již jsem mluvil o tom, že Prescott má zvětšené paměti cache - zvětšenou datovou cache první úrovně a zvětšenou unifikovanou cache druhé úrovně. Větší cache jsou rozhodně přínosem, umožňují u aplikací využívajících větší datové bloky (typicky maticové výpočty, aplikace s velkým množstvím proměnných, s dynamickými proměnnými...) rapidně zvýšit výkon.

První dvě jádra procesorů Pentium 4 - Willamette a Northwood - stavěla na relativně malé L1 datové cache propojené s rychlou L2 cache. Malá cache L1 byla nutná kvůli požadavku na velmi nízké latence (ty činí u těchto čipů 2 hodinové cykly - pro srovnání Athlon má 4; při stejné frekvenci je výkon L1 cache Pentia 4 dvojnásobný). Požadavek nízkých latencí vznik z důvodu ALU jednotek pracujících na dvojnásobné frekvenci čipu. Tyto jednotky požadovaly velmi intenzivní přísun dat. L2 cache tak v podstatě kryla neschopnost L1 cache vypořádat se s většími bloky dat. Prescott díky dvojnásobné velikosti L1 datové cache je sice stále závislý na L2 cache, ale již ne tolik (mimochodem, Pentium 4 se nyní co se týče velikosti L1 cache dostává na úroveň Pentia MMX uvedeného v roce 1997). Možná i z toho důvodu je L2 cache u Prescottu pomalejší (!) než u Willamette a Northwood. Zatímco u prvních dvou čipů byla latence této cache 7 hodinových cyklů, podle testů nám vyšel špičkový výkon asi o 20 procent nižší (tj. latence odhadem 9 - 10 cyklů).

Další vylepšení jsou:



Lepší predikce větvení kódu - Umožňuje vykonávat kód i po podmínkových skocích ještě před vyhodnocením podmínky. Prescott má odhad stavu podmínky na vyšší úrovni než Northwood, což mu umožňuje plynulejší práci s podmínkami.

Celočíselný multiplikátor - U procesorů Willamette a Northwood jsou celá čísla násobena v FPU jednotce. Protože ta je od ALU jednotky fyzicky vzdálena, trvá přesun do FPU a zpět dlouho. Prescott provádí násobení celých čísel již v ALU jednotce, tedy mnohem rychleji.

Další WC buffery - Umožňuje zrychlit zápisy do paměti.

Podpora technologie La Grande



Na blokovém schématu se oproti předchozím generacím změnilo máloco. Co zde není a je velmi důležité - Prescott má delší pipeline! A to ne jen tak o maličko. Počet stupňů již není 20 jako tomu bylo u Willamette a Northwood, ale rovnou 31. Které přesně části byly prodlouženy, mi není známo, ale vzhledem k rozsahu změn se domnívám, že se změny dotkly celého procesoru. Toto bude ve výsledku znamenat o něco pomalejší práci na stejné frekvenci oproti starším generacím. Je to z toho důvodu, že v případě špatného odhadu větvení trvá déle obnova předchozího stavu a také spočtení jednoho výsledku trvá déle (více cyklů).

Ale protože Prescott má větší cache, má celočíselný multiplikátor, má lepší předpověď větvení kódu... v praxi nebude zpomalení tak drastické, spíše lze čekat opak. Dlouhá pipeline nemá sama o sobě tak extrémní dopady na výkon, jak se o ní traduje. Mnohem důležitější vlastností je, jakým způsobem jsou designovány výpočetní části procesoru a jak je celkově skloubeno dekódování, řazení instrukcí, čtení a zápisy do cache a výpočty. V tomto je Prescott na vyšší úrovni než předchozí čipy. A delší pipeline mu alespoň umožní dosahovat vyšších frekvencí.

Nové instrukce - Prescott New Instructions alias SSE3

Prescott je první procesor Intelu, který podporuje 13 nových instrukcí. Dlouho známé Prescott New Instruction (PNI) byly později přejmenovány na vcelku neoriginální název Streaming SIMD Extensions 3 (SSE3). Nové instrukce jsou:
  • Jedna instrukce pro rychlou konverzi desetinného čísla na celočíselný formát s oříznutím - FISTTP
  • Instrukce pro další SIMD operace - 10 instrukcí.
  • Synchronizaci threadů - Instrukce MONITOR a MWAIT.

V zásadě se nejedná o nějaké převratné změny. Nemyslím si, že by tyto instrukce našly velkého využití. Uvedení SSE2 znamenalo mnohem větší přínos.



Zastavím se ještě u posledních dvou jmenovaných instrukcí - MONITOR a MWAIT. Ty jsou určeny k synchronizaci threadů ve víceprocesorovém systému (tj. i při jednom procesoru se zapnutým HyperThreading). Po spuštění instrukce MONITOR procesor hlídá adresu předanou jako parametr instrukce a v případě změny hodnoty na této adrese nastaví monitor event pending vlajku. Instrukce MWAIT doporučuje procesoru pozastavit vykonávání instrukcí až do okamžiku, kdy bude nastavena monitor event pending vlajka (...jiným logickým / fyzickým procesorem). Toto by teoreticky mělo umožnit programátorovi ovlivňovat u programů s více thready pořadí vykonávání threadů, tj. zamezit poklesům výkonu v případech, kdy dochází k boji o výpočetní jednotky. V praxi se ale obávám, že to nebude tak jednoduché. Navíc to bude vyžadovat rekompilaci aplikací a důsledné promýšlení. Toto je zmíněné vylepšení technologie HyperThreading.
reklama