pentium-4-prescott-obsahuje-jednotky-pro-64-bit-vypocty
Hardware Článek Pentium 4 Prescott: obsahuje jednotky pro 64 bit výpočty?

Pentium 4 Prescott: obsahuje jednotky pro 64 bit výpočty?

Eagle

Eagle

9. 5. 2003 00:00 44

Seznam kapitol

1. Yamhill žije - ALU jednotka navíc 2. 40 bit adresování

Technologie Yamhill zůstala zapomenuta. Ještě před asi rokem se o ní mluvilo jako o velké věci, pak ale Intel vše popřel, žádný Yamhill neexistuje. Letos nás čeká uvedení procesoru s jádrem Prescott - výrazně vylepšeného Pentia 4. Na serveru Chip Architect objevili několik "maličkostí" přítomných v novém Pentiu. Že by Yamhill ožil?

Reklama

Ještě než se začnu rozepisovat o nových zjištěních v Prescottu, doporučím přečíst první článek na toto téma - Jaký bude Intel Prescott. Pokud se příliš nevyznáte v architektuře procesorů, doporučuji článek HyperThreading detailně, kde jsou jednotlivé části probrány. Pro porozumění to bude potřeba.

Yamhill existuje

Pokud si nevzpomínáte, co že to vlastně Yamhill je, jen připomenu, že je to oblast jihozápadně od Portlandu a jižním směrem od Hillsboro.

Pentium 4 Prescott: obsahuje jednotky pro 64 bit výpočty?
i Zdroj: PCTuning.cz

Pro počítačový průmysl samozřejmě Yamhill znamená 64 bit rozšíření instrukční sady x86, nikoliv však to od AMD, ale přímo od Intelu. Je však otázkou, nakolik jsou tyto instrukční sady (AMD64 a Yamhill) kompatibilní - navíc Yamhill oficiálně vůbec neexistuje.

Druhá ALU - "lehce" oříznutá

Již v původním článku jsem nastínil možnost, že Intel integruje další ALU výpočetní část - konkrétně zdvojí obě ALU pro jednoduché operace (ty běží na dvojnásobné frekvenci jádra). Tímto krokem by mohl výrazně zvýšit výpočetní výkon v nejčastěji prováděných ALU operacích, což by v případě HyperThreadingu značně zvýšilo efektivitu procesoru (už by to nebyl "HypeTrading", ale použitelná technologie).

Toto se ale neukázalo jako pravda.

Pentium 4 Prescott: obsahuje jednotky pro 64 bit výpočty?
i Zdroj: PCTuning.cz

Celý "vtip" je totiž v tom, že zatímco horní jednotka obsahuje vše potřebné, ta dolní postrádá AGU (má jen ALU) a její část s rotujícími registry je o něco menší. Co to znamená? V praxi zhruba tolik, že druhá jednotka není schopná samostatné existence! Bez AGU (Adress Generation Unit) není možné dodávat data pro výpočetní část. Jednotka by tak stála a nic nedělala - a to by asi nebylo příliš účelné.

A co menší část s rotujícími registry? Zde je domněnka, že pole u horní jednotky obsahuje jednak hodnoty a jednak stavové bity (což musí, aby procesor při rotování registrů věděl, který registr je který), nicméně to dolní stavové bity postrádá.

Celkově tyto dvě informace nasvědčují tomu, že dolní jednotka jen dodatek pro výpočet 64bit čísel. Zatímco v běžném dnešním procesoru by se vyskytovala jen ona horní část (ALU + AGU + pole se statovými bity), v Prescottu je tomu jinak - dolní část je jakoby přebytečná na určování bitů 63 - 32. Jinými slovy:

Pentium 4 Prescott: obsahuje jednotky pro 64 bit výpočty?
i Zdroj: PCTuning.cz

V normálním procesoru se nahrají data do registru, tento registry se zarotuje v poli a vše pak spočte jedna ALU jednotka. Takto to probíhá v x86 procesorech, ale i v plnohodnotných 64bit procesorech - např. v Opteronu.

Prescott se drží trochu jiného směru. Pro Intel by bylo jistě velice obtížné změnit celou ALU tak, aby počítala s 64bit čísly - ALU je jedna z nejdůležitějších částí, musí být velmi rychlá, takže nějaké komplexní zásady do ní by znamenaly spoustu práce navíc. Když se vymýšlelo, jak na to, inžinýři se asi inspirovali současným principem počítání 64 bit čísel. Přestože dnešní procesory neumí uložit do registru víc jak 32 bitů (a tím pádem ani spočítat víc jak 32 bitů), dá se použít emulace, kdy se z pohledu programátora spojí dva 32 bit registry. Do jednoho se uloží horních 32 bitů čísla a do druhého dolních 32 bitů. Je vcelku pochopitelné, že takováto emulace trvá výrazně déle než při zpracování přímo v jednom registru - zkoušel jsem si pomalost výsledného kódu a ta je i při velmi dobrém vytížení jednotek asi dvojnásobná oproti počítání v jedné ALU.

Někoho chytrého tudíž napadlo, že bude úplně stačit okopírovat do procesoru další ALU jednotku a té přidělit horních 32 bitů. Procesor se pak bude navenek tvářit, že umí počítat s 64 bit čísly, přitom ale tyto čísla bude rozkládat na horních a dolních 32 bitů a každou část přidělí jiné ALU jednotce. Patrně to nebude tak rychlé jako při plnohodnotné 64 bit práci, ale určitě to bude mnohem rychlejší než přes emulaci (navíc můžete světu říct, že váš produkt umí 64 bitů... a odpadá práce s designem nové ALU jednotky).

Vrátím-li se k onomu registrovému poli bez stavových bitů - stav bude určen v horní jednotce (ta počítá bity 0 až 31) a dolní jednotka bude mít k hornímu registrovému poli ony bity 32 až 63. Stavy nepotřebuje, rotace bude probíhat synchronně v obou polích - jakmile se přejmenuje nějaký registr v horním poli, okamžitě se přejmenuje i v dolním.

První
Poslední
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama