Hardware pro trochu znalé – díl VII. – více procesorů v jednom počítači

Série článků s titulem Hardware pro trochu znalé je určena všem, kteří se hardwarové problematice nevěnují naplno, nebo těm, kterým něco uniklo či některé věci zapomněli. Sedmý díl je věnován srdci počítačů, procesorům, resp. procesorům, které mohou spolupracovat mezi sebou.
Série článků s titulem Hardware pro trochu znalé je určena všem, kteří se hardwarové problematice nevěnují naplno, nebo těm, kterým něco uniklo či některé věci zapomněli. Sedmý díl je věnován srdci počítačů, procesorům, resp. procesorům, které mohou spolupracovat mezi sebou.

Velmi brzo se přišlo na to, že jsou chvíle, kdy svým výkonem nestačí ani nejrychlejší procesor řady x86. Proto se mnoho let hledal způsob, jak tuto situaci vyřešit. Jedním ze způsobů byly koprocesory, o kterých jsme minule hovořili. Ty sice urychlují, ale díky své specializaci pouze určité úlohy. Díky šikovnosti výrobců počítačů vznikly první počítače se dvěma shodnými procesory (to bylo v kategorii 386 a posléze 486). Tyto procesory totiž nejsou pro víceprocesorový režim konstruovány.

Toho si firma Intel byla vědoma, proto prvním procesorem přímo podporujícím víceprocesorový (přesněji dvouprocesorový) režim byl Intel Pentium. Jedná se o tzv. symetrický multiprocessing (SMP).

Pojem symetrický multiprocessing znamená spolupráci dvou (či více) naprosto shodných (tedy včetně taktu) procesorů v rámci jednoho počítače. Procesory musí být naprosto shodné a shodně nastavené, nelze tudíž provozovat dvouprocesorový počítač s jedním Pentiem 100 a jedním Pentiem MMX 200 MHz (i když oba používají stejnou 66 MHz externí sběrnici). Procesory jsou připojeny přes společnou procesorovou sběrnici. Všechny součásti procesu jsou oběma procesory využívány stejně, mají tudíž jednu společnou RAM paměť, pevné disky atd.

Poměrně rozšířeným mýtem je naprostá symetrie procesorů neboli oba (všechny) jsou si rovny. Musí tam být jeden, který to vše řídí (i když je to shodný procesor s ostatními). Proto se svého času prodávaly kromě normálních procesorů i procesory sekundární pro dvouprocesorový režim.

S pojmem nesymetrický multiprocessing jsme se již setkali – vzpomeňte si na povídání o koprocesorech a dvojici i486 + i860. Vedle 32bitového procesoru rodiny x86 pracuje naprosto odlišný 64bitový procesor (naprostá nekompatibilita – instrukční sada, procesorová sběrnice, význam vývodů, patice). Tato sestava je však velmi náročná na programování a proto se nesymetrický multiprocesing prakticky nepoužívá.

Kteří výrobci procesorů podporují víceprocesorové uspořádání?

Upřímně řečeno mnoho jich není, resp. v této době je to už (a zároveň ještě) jediná firma, Intel. První procesory s nativní podporou SMP režimu jsou procesory Intel Pentium. Tato možnost je jen jako přídavná, primárně jsou určeny pro jednoprocesorový provoz. Prvním procesorem, určeným hlavně pro víceprocesorové stroje, byl Intel Pentium Pro. Ten poprvé umožňoval v x86 kategorii až čtyři procesory. Jeho pokračováním je řada procesorů Xeon, která vychází z procesorů Intel Pentium II a III. Řada Xeon používá stejnou procesorovou sběrnici jako standardní řada procesorů (AGTL+), ovšem nepoužívá Slot 1, ale speciální Slot 2.

Všechny procesory, umožňující až čtyřprocesorové stroje, mají cache L2 velikosti 0,5 až 2 MB. Výjimkou jsou některé verze procesoru Intel Pentium III Xeon, které podporují jen dva procesory a přesto mají takto velkou cache.

procesor počet pocesorů (SMP)
Intel Pentium 1 až 2
Intel Pentium MMX 1 až 2
Intel Pentium Pro 1 až 4
Intel Pentium II 1 až 2
Intel Pentium II Xeon 1 až 4
Intel Pentium III 1 až 2
Intel Pentium III Xeon 500 a 550 MHz 1 až 4
Intel Pentium III Xeon 600 MHz a více 1 až 2

A co konkurence? Bohužel musím konstatovat, že u procesorů x86 nemá Intel konkurenci, protože nikdo jiný do procesorů této kategorie podporu víceprocesorového režimu neimplementoval. Nestalo se tak ani i procesorů, jejichž vzory tuto podporu měly (například pro Cyrix 6x86 byl jako vzor procesor Intel Pentium).

Jaký je nárůst výkonu?

Toto je velmi těžká otázka, protože záleží na konkrétní aplikaci. Velmi zhruba při čtyřprocesorovém stroji bude celkový procesorový výkon trojnásobný ve srovnání s jedním procesorem. Ta čtvrtina výkonu se ztrácí při řízení spolupráce.

Jsou však i případy, kdy nárůst výkonu je dokonce vyšší, než je teoretické maximum. To nastane v případech, že je úloha rozdělena na stejný počet samostatných úloh, kolik je procesorů. Potom každý procesor pracuje naplno jen na té své úloze a není nutné celek řídit. To je ovšem v běžné praxi nedosažitelný stav.

Jsou potřebné úpravy programů?

Případnou podporu více procesorů je třeba programovat již dopředu. Nejedná se o použití specializovaných programovacích nástrojů, spíš o využití stávajících metod programování. Typické je použití tzv. vláken, kde je pro každou úlohu definována samostatná větev, které se říká vlákno. Tato metoda se nachází například v programovacích jazycích typu C, ze kterých vychází i jazyk Java.

Musí být podpora operačního systému?

Ano. Mezi klasické jednoprocesorové operační systémy patří MS DOS (a klony). Ty sice je možné spustit na víceprocesorových počítačích, ale využitý bude jen první procesor. Mezi víceprocesorové operační systémy dnes patří některé verze Linuxu, různé klony Unixu, operační systémy typu NT firmy Microsoft (MS Windows NT, MS Windows 2000), IBM OS/2, Novell Netware a další. V dnešní době jsou podporovány ve většině operačních systémů až čtyři procesory v SMP režimu. Vyšší počet procesorů bývá v operačních systémech, určených pro nejnáročnější použití (například databázové servery).

Kolik procesorů podporuje který operační systém?

operační systém výrobce počet CPU
BeOS 5 Personal Edition Be, Inc. 1 až 8
Linux kernel 2.4.x - 1 až 32
OS/2 Warp Server IBM 1 až 4
OS/2 Warp Server for e-business IBM 1 až 64
MS Windows 2000 Professional Microsoft 1 až 2
MS Windows 2000 Advanced Server Microsoft 1 až 8
MS Windows 2000 Datacenter Server Microsoft 1 až 32
Novell Netware 5.1 Novell 1 až 32

Proč podporují operační systémy tolik procesorů, když například Intel Pentium III Xeon podporuje jen 4 procesory?

Prvním důvodem je připravenost na budoucí procesory, které mohou podporovat i více procesorů. Druhým důvodem jsou speciální systémy, kde je díky zvláštnímu uspořádání umožněno více procesorů, než samotné procesory dovolují. Ten se nazývá buňkový multiprocessing (Cellular MultiProcessing neboli CMP). Příkladem je server Intel OCPRF100 Rack Mount Server s až osmi procesory nebo Unisys Enterprise Server ES7000 umožňující až 32 procesorů (oba používají procesory Intel Pentium III Xeon). Procesory mohou umístěny po buňkách, kde v každé buňce může být maximální počet procesorů mínus jedna. Například pro Xeony s maximálně čtyřmi procesory může být v jedné buňce až tři procesory. Místo čtvrtého procesoru je umístěna právě brána k dalším procesorům. Není to ovšem pravidlo, buňka může mít i maximální počet procesorů, jaký jednotlivé procesory umožňují. Tato řešení nejsou nijak standardizována, jsou to jedinečná řešení jednotlivých firem.

V příštím díle zakončíme povídání o procesorech částí o budoucích procesorech x86 kategorie se zaměřením na nové technologie a 64bitové varianty. Díky právě začínající výstavě Invex bude další díl až za týden.

Diskuze (12) Další článek: Hackeři nás umí ovládnout

Témata článku: , , , , , , , , , , , , , , , , , , , , , , ,