Procesor (CPU – Central Processing Unit) je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Pokud bychom přirovnali počítač např. k automobilu, postavení procesoru by odpovídalo motoru. Protože procesor, který by vykonával program zapsaný v nějakém vyšším programovacím jazyku by byl příliš složitý, má každý procesor svůj vlastní jazyk - tzv. strojový kód, který se podle typu procesoru skládá z jednodušších nebo složitějších instrukcí. Pod pojmem procesor se dnes téměř vždy skrývá elektronický integrovaný obvod, i když na samých počátcích počítačové éry byly realizovány procesory i elektromechanicky.
Původní procesory počítačů byly sestaveny z diskrétních součástek (elektronek, později tranzistorů, doplněné rezistory a kondenzátory). Velikost takového procesoru odpovídala obvykle jedné velké skříni. Teprve počátkem 70. let 20. století se s nástupem integrovaných obvodů začaly procesory miniaturizovat. Nejprve byly procesory stavěny z procesorových řezů, (procesor byl pak složen z několika desítek jednodušších integrovaných obvodů). Když došlo k integraci procesoru do jediného čipu, vzniknul mikroprocesor.
- řadič nebo řídicí jednotka, jejíž jádro zajišťuje řízení činnosti procesoru v návaznosti na povely programu, tj. načítání instrukcí, jejich dekódování (zjištění typu instrukce), načítání operandů instrukcí z operační paměti a ukládání výsledků zpracování instrukcí.
- sada registrů (v řadiči) k uchování operandů a mezivýsledků. Řadič obsahuje celou řadu rychlých pracovních pamětí malé kapacity, tzv. registrů, které slouží k jeho činnosti. Registry dělíme na obecné (pracovní, universální)a řídící (např. registr adres instrukcí, stavové registry, indexregistry). Velikost pracovních registrů je jednou ze základních charakteristik procesoru.
- jedna nebo více aritmeticko logických jednotek (ALU - Arithmetic-Logic Unit), které provádí s daty příslušné aritmetické a logické operace.
- některé procesory obsahují jednu nebo několik jednotek plovoucí čárky (FPU), které provádí operace v plovoucí řádové čárce
Je třeba poznamenat, že současné čipy zpravidla obsahují mnoho dalších rozsáhlých funkčních bloků jako třeba paměť cache a různých periferií, které z ortodoxního hlediska nejsou součástí procesoru. Proto vzniknul pojem „jádro procesoru“, aby bylo možné rozlišit mezi vlastním procesorem a integrovanými periferními obvody. Pro správnost je třeba dodat, že integrované periferie bývají většinou velmi dobře sladěny s jádrem, takže je z tohoto lze chápat jako „součást procesoru“. Vzhledem k současné vysoké integraci tak mnohde dochází k rozmazávání hranice mezi pojmem mikroprocesor a mikropočítač.
Některé současné procesory obsahují „více jader“. Vícejádrový procesor je tedy integrovaný obvod obsahující několik jader procesorů a logiku sloužící k jejich vzájemnému propojení (a další jednotky).
Dalším současným trendem je tzv. „systém na čipu“ (SoC - system on chip). Jde o integrované obvody, které obsahují kromě vlastního procesoru i další subsystémy pro zpracování grafiky, zvuku či připojení periférií (ty jsou v osobních počítačích obvykle v tzv. chipsetech nebo na samostatných kartách). Takovéto SoC se používají v PDA, herních konzolích, thin-clientech, domácí elektronice, ale i v mobilních telefonech.
Nejmodernějším trendem je kombinace procesorů s programovatelnými hradlovými poli, která vede k maximální pružnosti při přizpůsobení se dané aplikaci.
Rodina procesorů, která vychází ze stejného jádra nebo zpracovává stejný strojový kód, tvoří specifickou architekturu procesoru.
Dělení procesorů
Jak už jsme zmínili, když to velmi zjednodušíme procesor zastává v počítači podobnou úlohu jako motor v automobilu. Podobně jako se liší motor v motorce, miniautomobilu, automobilu vyšší třídy nebo v těžkém nákladním autě nebo v lodi se pro různé aplikace používají různé druhy procesorů.
Dělení podle délky operandu v bitech
Základním ukazatelem procesoru je počet bitů, tj. šířka operandu, který je procesor schopen zpracovat v jednom kroku. Zjednodušeně se dá říci, že např. osmibitový procesor umí počítat s čísly od 0 do 255, 16bitový s čísly od 0 do 65535 atd.
- Pro velmi jednoduché aplikace se používají čtyřbitové nebo osmibitové procesory. To platí například pro zabudované (embedded) systémy např. v mikrovlnných troubách, kalkulačkách, počítačových klávesnicích a infračervených dálkových ovládání.
- Pro středně složité aplikace, jako jsou programovatelné automaty, mobilní telefony, PDA nebo přenosné videohry se používají zpravidla osmibitové nebo šestnáctibitové procesory.
- Osobní počítače a laserové tiskárny obsahují 32bitové procesory, přičemž u osobních počítačů dnes dochází k přechodu na 64bitové procesory. Nyní jsme svědky rozmachu vícejádrových procesorů, protože zvyšování frekvence je spojeno s řadou problémů a další prostý přechod na vyšší počet bitů z hlediska aplikací není tak významný skok, jako tomu bylo u přechodu z 16 na 32 bitů.
Dělení podle struktury procesoru
- RISC a CISC procesory podle vnitřní architektury a počtu instrukcí, které procesor umí vykonávat. Současné procesory Intel a kompatibilní jsou vnitřně RISC, kde za pomoci mikroinstrukcí vykonávají složité CISC instrukce a umožňují aktualizaci řídícího mikrokódu. Původně lepší možnosti RISC procesorů byly překonány masivními investicemi firmy Intel získanými masivní výrobou procesorů do osobních počítačů, takže současné CISC procesory překonávají RISC
- jednoduché procesory (u osobních počítačů do 80286 s 16 bitovou instrukční sadou) a procesory, které zajišťují ochranu paměti, stránkování paměti, operačnímu systému plnou kontrolu nad počítačem a podporu víceúlohových a víceuživatelských operačních systémů (u osobních počítačů 32 bitové i386 a novější) a nejnovější s možností virtualizace (u osobních počítačů 64 bitové procesory)
- jednočipový mikropočítač nebo také mikrokontrolér (MCU) bývá procesor s univerzálním jádrem, s kterým jsou současně zaintegrovány základní periferní obvody, takže je schopen samostatné funkce. Za průkopníky v této kategorii můžeme považovat 8bitový procesor Intel i8051, který poprvé integroval všechny základní periferie (jádro procesoru, paměť RAM, EEPROM, čítače a časovače) na jediném čipu a 16bitový technologický procesor Siemens SAB 80C166, který poprvé integroval A/D převodníky, komunikační linky a masivní systém čítačů/časovačů/přerušení (následníky řady 80166 dnes vyrábí Infineon (řada C167 a C166 SV2) a SGS Thomson (řada ST10)).
- DSP neboli digitální signálový procesor je procesor zaměřený na zpracování signálu. DSP jsou optimalizovány na co nejrychlejší opakování jednoduchých matematických algoritmů zaměřených na zpracování signálu. Typickou aplikací DSP je filtrace signálu pomocí filtrů FIR a IIR nebo Fourierova analýza. DSP se dnes používají především ve spotřební elektronice a v telekomunikační technice. Současné DSP obsahují proti svým předchůdcům navíc také rychlé komunikační linky, aby bylo možné přenášet velký datový tok protékající těmito procesory. Často můžeme rovněž pozorovat snahu o spojení výhod DSP a jednočipových mikropočítačů ať už je to cestou rozšiřování DSP o periferie nebo rozšiřováním mikrokontrolérů o DSP jednotky.
Dělení podle počtu jader
V současnosti jde vývoj směrem k integraci více jader - tedy více procesorů - do jediného čipu. Tento trend můžeme pozorovat u procesorů pro osobní počítače i v oblasti DSP. Nově se tedy procesory začínají dělit na jednojádrové a vícejádrové. Zvyšování počtu jader je v podstatě vynuceno fyzikálními omezeními, jako jsou rychlost světla a omezení výkonu dané potřebou procesor uchladit. Ukazuje se, že integrací většího počtu jednodušších jader je možno dosáhnout při stejné výrobní technologii na stejné ploše křemíku mnohem větší výpočetní výkon, než použitím jediného složitého jádra.
Není dosud zcela jasné, kterým směrem se bude ubírat vývoj, systémy obsahující několik (např. 2 až 10) jader jsou v podstatě jen konzervativním rozšířením současných procesorů. Otevřenou otázkou je, jakým způsobem bude řešena struktura, sdílení paměti a vzájemné vnitřní propojení a prosíťování např. u stojádrových, nebo tisícijádrových procesorů, jakým způsobem a jakými nástroji budou takové čipy programovány. V neposlední řadě vyvstává otázka, jak budou takovéto systémy obsluhovány operačním systémem.
Něco naznačuje např. architektura zakázkového procesoru IBM, který je používán v Sony Playstation 3, kdy hlavní „složité“ jádro založené na architektuře PowerPC rozděluje práci šesti jednodušším DSP, vzájemně propojeným pomocí hradlového pole. Se zvětšováním počtu jader pravděpodobně dojde k jejich specializaci.
Rychlost procesoru
Zásadním parametrem, který je procesoru důležitý je frekvence práce jeho jádra. Zdánlivě jde o banální záležitost, protože stačí spočítat kolik milionů či miliard instrukcí je procesor schopen vykonat za sekundu, tj. počet MIPS. Ovšem z praktického hlediska je počet MIPS např. u osmibitového procesoru PIC a u procesoru Intel Pentium zcela nesrovnatelnou veličinou, protože instrukční sady těchto procesorů jsou zásadně odlišné a na výpočet v plovoucí čárce, který udělá Pentium v jediném taktu může PIC potřebovat několik tisíc operací, zatímco jednoduché bitové operace zvládnou oba procesory v několika taktech.
Zdálo by se, že tedy alespoň srovnání výkonu v rámci jedné řady procesorů je snadné, ale není tomu vždy tak. Moderní procesory jsou totiž podstatně rychlejší než externí operační paměť, takže reálný výkon značně závisí také na rychlosti a šířce externí paměti a na velikosti a uspořádání vyrovnávacích pamětí cache uvnitř procesoru.
V této souvislosti je vhodné rovněž připomenout že celkový výkon systému je určen výkonem procesoru pouze z jedné části. Rychlost je vždy určena úzkým místem v systému. Pokud je např. malá operační paměť, takže operační systém se ji pokusí nahradit odkládáním na řádově pomalejší pevný disk, tak bude prostě na některé nutné aplikace čekat. Je to asi jako když potřebujete něco převézt s malým kufrem v autě. Rovněž vhodně navržená struktura periferií může výrazně odlehčit zátěž procesoru.
Dnešní procesory osobních počítačů
Dnešní osobní počítače používají až na výjimky v řádu procent procesory architektury x86 výrobců AMD a Intel. Dlouhou dobu byly procesory obou značek v osobních počítačích záměnné (podobně i dalších značek, jako byl například Cyrix nebo IDT), protože se osazovaly do identických patic, označovaných též jako sockety. V roce 1997 ale společnost Intel začala vyvíjet novou patici nazvanou Slot 1 a vývoj procesorů obou nejvýznamnějších výrobců se od té doby ubíral odlišně. Dnešní procesory se proto obvykle dělí podle patic, přičemž doba trvání výroby těchto řad je stále kratší. Patice se označují často podle počtu pinů nebo kódovým označením, dnes jsou na trhu například:
- Socket 462 (Socket A, AMD Athlon, Duron, výběhový)
- Socket 478 (Intel Pentium III, Pentium 4 (Northwood), Celeron Pentium 4, výběhový)
- Socket 479 (Intel, původně pro mobily, výběhový)
- Socket 604 (Intel pro servery, výběhový)
- Socket 754 (AMD, výběhový)
- Socket 771 (Intel pro servery)
- Socket 775 (Intel)
- Socket 939 (AMD, výběhový)
- Socket 940 (AMD pro servery, výběhový)
- Socket AM2 (AMD)
- Socket F (MD pro servery)
Nové procesory AMD mají do vlastního procesoru integrován řadič operační paměti, proto mají větší počet pinů.
Nejvíce zákazníky sledovaným parametrem je frekvence procesoru, která je významným faktorem jeho výkonu. Vzhledem k odlišné konstrukci výpočetních jednotek procesorů a vnitřní paměti se obtížně porovnávají výkony konkurenčních procesorů AMD a Intel podle jejich frekvence. Navíc v současné době vyrábějí oba největší výrobci jedno- i dvoujádrové procesory s poměrně velkým rozpětím frekvence. Důležitým faktorem celkového výkonu procesoru je tedy nyní i velikost vyrovnávací paměti procesoru, která se označuje cache. Ta bývá několikaúrovňová, cache s nejrychlejším přístupem má nyní velikost 32-64 kB na jádro (Level 1 cache), další úroveň má nyní 256-2048 kB na jádro (Level 2 cache), u nejmodernějších procesorů je Level 2 cache pro obě jádra společná. Na výkon procesoru má vliv i frekvence sběrnice (Front Side Bus), kterou komunikuje procesor se zbytkem počítače prostřednictvím tak zvaného chipsetu. Výrobci nabízejí své prakticky identické procesory v různých typových řadách s různou dostupnou velikostí Level 2 cache a i různou frekvencí FSB.