Téma týdne: Uvnitř procesoru - 64 bitů spasí vše?

V dalším díle pětidílného seriálu ze světa procesorů poodkryjeme tajemství 64bitového modelu. Dozvíte se například, k čemu vlastně slouží, v čem je lepší než 32bitové procesory, a zda je opravdu výkonnější.

Kolikabitový procesor existuje?

Stejně jako má silnice různý počet pruhů, může mít procesor různou datovou šířku. Ta se měří v bitech. Nejčastěji se používá mocnina dvou, typu 4 – 8 – 16 – 32 – 64. Existují ale také výjimky, kdy mají procesory šířku jinou. Například procesor Intersil 6100 pro DEC PDP-8  byl 12bitový, DSP procesor Motorola 56000 je 24bitový.

Příkladem 4bitových procesorů jsou Intel 4004 a Intel 4040. Ty se používaly a dosud používají pro nejmenší záležitosti. Mezi nejslavnější osmibitové procesory patří Intel 8080, MOS 6502, Motorola 6800 či Zilog Z80. Vedle použití v osmibitových domácích počítačích našly uplatnění pro drobné řízení hlavně v průmyslu. 16bitové procesory reprezentuje Intel 8086 a Intel286.

32bitové procesory se používají pro osobní počítače či výkonné průmyslové aplikace. Patří sem procesory od Intel386 po Intel Core Duo (hlavně rodina IA-32), Intel 960, Motorola MC68020 až 68060, rodina AMD 290x0, MIPS32, Hitachi H8, 32bitové verze PowerPC, ARM, SPARC V8 a spousta dalších.

64bitových procesorů se objevilo za patnáctiletou historii mnoho. Jmenujme rodiny Intel 860, MIPS64, DEC Alpha, IBM POWER, HP PA-RISC, Sun SPARC V9, Intel IA-64 (Itanium) atd. Ty se vyskytují v nejvýkonnějších průmyslových aplikacích, serverech či pracovních stanicích. Díky firmám AMD a Intelu se začínají 64bitové procesory objevovat i ve stolních počítačích.

64bitové adresování

Začněme hned tím těžším. 64bitová adresace znamená možnost přímo adresovat 264 B RAM paměti, což je 16 EB. Jakže? 1 EB = 1024 PB = 1 048 576 TB = 1 073 741 824 GB. Laicky řečeno,  je to daleko víc, než si dovedete představit i v podobě pevného disku, natož RAM paměti.

Tam se v běžných počítačích pohybujeme těsně pod, nebo těsně nad 1 GB (čili 1024 MB). Protože 16 EB je opravdu šíleně moc, ani typické 64bitové procesory nepodporují až tolik paměti. Spokojí se totiž se skrovným přídělem typu 1 TB či trochu víc.

32bitový procesor neznamená 32bitové adresování. Stejně tak 64bitový procesor neznamená 64bitovou adresaci.

Při použití 32bitové adresace můžeme mít 232 B RAM paměti, což je 4 GB. Pro běžné počítače tedy 32bitová adresace prozatím postačí. Od Pentia Pro se začala používat 36bitová adresace, což znamená obsáhnout až 64 GB RAM. Toho se typicky využívá v serverech či pracovních stanicích. Až poté je skutečně hlad po 64bitové adresaci, kterou ale v současné době vyžaduje jen malá část serverů.

64bitová celočíselná matematika

Právě na ní byl postaven jeden z pilířů výkonu prvních 64bitových procesorů. Postupně se toto privilegium ztratilo. Vznikla totiž samostatná výpočetní jednotka, specializovaná pro celočíselné výpočty.

V běžných procesorech se tato technologie nazývá MMX (MultiMedia Extension). V některých případech dosahuje výrazně vyššího výkonu než původní 64bitové procesory i přesto, že je MMX doplňkem „jen“ 32bitových procesorů. Jsou však situace, kdy je výhodnější použít jiný způsob než technologii MMX. Právě tam vítězí klasické 64bitové jádro procesoru.

64bitová sběrnice

Sběrnice opravdu není pracovnice sběrny druhotných surovin. 64bitová sběrnice se poprvé u procesorů IA-32 vyskytla u prvních Pentií na 60 a 66 MHz. Proto se také tyto procesory mylně označovaly jako 64bitové. Širší sběrnice má výhodu asi stejnou, jako když se na dálnici zvýší počet pruhů.

Velké množství dnešních 32bitových procesorů právě kvůli přenosové rychlosti do a z procesoru používá 64bitovou sběrnici. A co 64bitové procesory? Ty již přecházejí na 128bitovou sběrnici (viz Itanium 2).

Je důležité, jakou má procesor datovou šířku?

Tato hodnota byla kritická až do konce 80. let. Základ procesoru zvaný ALU vykonával veškeré výpočetní operace. Čím delší slovo je, tím větší číslo spočítal, a tudíž tím přesnější výpočty byly možné. Totéž bychom spočítali na procesoru s kratším slovem za daleko delší dobu.

Je lepší přelévat půllitrovou nebo dvoudecilitrovou sklenicí? Pokud máme k dispozici jen onu sklenici, potom je to opravdu kritická hodnota. Jestliže si ke dvoudecce pořídíme ještě ponorné čerpadlo, má tato dvojice velkou výhodu i před půllitrem. Ponorné čerpadlo je specializovaná jednotka. V procesoru je takovou jednotkou například matematický koprocesor či SSE. Ideální je mít ponorné čerpadlo a ještě půllitrovou sklenici, to je jednoznačné…

Čím je dán výpočetní výkon procesoru?

Je dán výkonem všech částí, které mohou zpracovávat data. To nemusí být jen klasické počítání, ale také jiné operace typu porovnávání, kopírování, řízení chodu programu atd.

Soustřeďme se nyní na výpočty. Počítač zná v základě počítání s celými čísly. Ostatní čísla se počítají obtížně a složitě pomocí programu. Aby se celočíselnému procesoru odlehčilo, přidal se matematický koprocesor. To je součástka, která naopak chroupe desetinná čísla jako brambůrky a dokáže zvýšit výkon počítače dokonce o stonásobky, někdy i více!

Zde si pomůžeme příkladem ze školy. Máme spočítat „sinus 30“. K dispozici máme jen tužku a papír. Jsme ve stejné situaci, jako když má procesor spočítat stejnou úlohu. Nevíme jak. Musí tedy přijít programátor a přesně krok po kroku popsat způsob, jak si má procesor poradit. Trvá to ale velmi dlouho.

Pomůžeme tedy procesoru matematickým koprocesorem. Je to totéž, jako když onomu ubožákovi s tužkou a papírem dáme kalkulačku. Student i procesor nepotřebují vědět, jak se to ve skutečnosti počítá, mají na to každý svou „kalkulačku“.

Potom se zjistilo, že některé příkazy se neustále opakují. Je tedy jednodušší vydat jen jeden povel pro více dat. Rozdíl je asi takový, jako když učitel řekne každému studentovi zvlášť, co má dělat, nebo vydá povel jen jednou, zato celé třídě. Výsledek je vždy stejný, ale při povelu celé třídě je to mnohem rychlejší.

Další analogií je nůž. To je jako celočíselné jádro procesoru. Je univerzální, můžeme s ním dělat vše, krájet chléb i vajíčko. Pokud si koupíme kráječ na vajíčka, může se zvýšit výkon krájení vajíček i desetkrát. Jde však o specializovaný nástroj, který nemůžeme použít pro krájení chleba. Stejně jako kráječ na vajíčka se začaly před zhruba deseti lety používat jednotky SIMD (jak se takovým „kráječům“ říká). Známe je spíš pod obchodními názvy typu HP MAX1 nebo Intel MMX.

Za velmi krátkou dobu se MAX1 a MMX dočkaly následníků. Byl stále větší hlad po výkonu v reálných číslech a matematický koprocesor nestačil. Proto se myšlenka SIMD zkombinovala s koprocesorem a vznikly jednotky MAX2, 3DNow!, SSE, SSE2 i celá řada dalších. Ty jsou nositeli výpočetního výkonu pro mnoho programů.

Typicky má 64bitový procesor vyšší výpočetní výkon než 32bitový. Někdy je to i naopak.

Který procesor je 32bitový a který 64bitový?

To je lehká otázka, ale odpověď je těžší. Už jsme si říkali, že existuje mnoho míst v procesoru, která můžeme nějak měřit. V průběhu času se způsob měnil podle toho, kdy se která část procesoru změnila. Dnes se považuje za nejlepší způsob měřit tuto informaci podle datové šířky celočíselné části aritmeticko-logické jednotky (tj. samotného srdce procesoru).

Postupem času se tato informace stávala méně a méně důležitou, podle toho, jak se k oné jednotce ALU přidávaly další a další výkonné jednotky. U běžných 32bitových procesorů se totiž vyskytují 64bitové, a dokonce i 128bitové části. Informace, jestli je procesor 32 či 64bitový, tedy není jasnou odpovědí na otázku, zda má procesor vyšší výkon nebo ne.

32bitové procesory čeká vyhlazení?

64bitové procesory bývají zpravidla výkonnější než 32bitové modely. Protože se výpočetní výkon do přídavných částí, není otázka datové šířky kritická. Výkon dnešních procesorů se tedy opírá o přídavné části pro výpočty (FPU, MMX, SSE, 3DNow!, AltiVec…), o výkonnou sběrnici a o velikost i účinnost rychlé vyrovnávací paměti cache.

Pokud mají 32 a 64bitový procesor stejně velkou cache a stejné výpočetní jednotky, lze předpokládat, že jejich výpočetní výkon bude téměř stejný. To si lze otestovat na 64bitových procesorech typu AMD Athlon 64 či Intel Pentium 4 s EM64T, které je možné provozovat i v 32bitovém režimu.

Přestože 64bitové procesory za čas ovládnou také svět běžných procesorů, neznamená to, že 32bitové procesory se mají vyhladit do posledního. Stále naleznou uplatnění, podobně jako stále existují 16bitové či 8bitové procesory.

Určitě si přečtěte

Články odjinud