Procesor

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Tento článek pojednává o základní součásti počítače. Další významy jsou uvedeny v článku Procesor (rozcestník).

Procesor je základní součástí počítače. V současné době máme pod tímto pojmem většinou na mysli mikroprocesor, nebo také CPU, anglicky Central Processing Unit),[1] tedy velmi složitý číslicový integrovaný obvod, provádějící strojové instrukce, ze kterých je složen počítačový program umístěný v operační paměti počítače. Obvykle jde o instrukce programů, které se nahrávají do operační paměti z harddisku, CD nebo DVD disku, flash disku, diskety atd.

V minulosti byl procesor realizován na jedné nebo spíše více deskách plošných spojů, které obsahovaly integrované obvody nízké nebo střední integrace. V současnosti se používají prakticky výlučně mikroprocesory, což jsou procesory realizované v jednom nebo v několika integrovaných obvodech s vysokou až extrémně vysokou integrací. Mikroprocesor může být také implementován jako firmware běžící v hradlovém poli. Jádro jednoduchých 8bitových mikroprocesorů se skládá z 5 až 10 tisíc hradel, současné procesory pro smartphony a PC mohou obsahovat desítky i stovky milionů hradel. První mikroprocesory byly vyvinuty okolo roku 1971.

V osobních počítačích a malých pracovních stanicích bývá procesor realizován jako integrovaný obvod umístěný na základní desce počítače. Procesory pro osobní počítače jsou rozsáhlé integrované obvody, které mohou zabírat několik centimetrů čtverečních, mít stovky pinů a obsahovat desítky nebo stovky milionů hradel.

Velké počítače mohou obsahovat celá procesorová pole. Používají se distribuované výpočty, které řeší simulace a matematické problémy propojením většího počtu procesorů. Některé superpočítače používají vektorové procesory, skládající se z většího počtu paralelních výpočetních prvků, z nichž žádný není považován za centrální či hlavní.

Naproti tomu v drobných zařízeních na baterie, jako jsou například kardiostimulátory, náramkové hodinky atd., se z důvodu delší výdrže a často také nižší ceny, používají méně složité procesory.

Charakteristika[editovat | editovat zdroj]

Srovnání lícových stran mikroprocesorů AM486 DX2-80 od AMD a i486 DX2-66 od Intelu

Procesor, který by vykonával program zapsaný ve vyšším programovacím jazyku by byl příliš složitý, a především omezený zaměřením daného jazyka. Proto se i při návrhu moderních procesorů stále zůstává u strojového kódu, tedy u nevelké sady instrukcí, které více odpovídají způsobu práce procesoru (např. přesun čísla z registru do registru) než způsobu práce programátora. Přesto každá architektura procesorů definuje svůj vlastní strojový jazyk. Například architektura Intelovská x86 používá jiný strojový kód než architektura ARM. Programy psané ve vyšších jazycích se obvykle překládají do strojového kódu dané architektury – ať už předem (pomoci tzv. překladače) nebo za běhu programu (pomoci tzv. JIT). Jiný možný přístup je vykonávání pomocí interpretu (který běží ve strojovém kódu)

Procesory prvních počítačů se skládaly z obvodů obsahujících množství tzv. diskrétních součástek – elektronek nebo tranzistorů, rezistorů a kondenzátorů. Takový procesor mohl zabírat i několik skříní. Počátkem 70. let 20. století započala miniaturizace procesorů. Nejprve byly složeny z několika desítek nebo stovek integrovaných obvodů. Když se pak podařilo umístit základní obvody procesoru do jediného integrovaného obvodu, vznikl mikroprocesor.

V obecnějším pojetí může být pojem „procesor“ použit pro jakoukoli funkční jednotku schopnou provádět operace s daty nebo signály, například „signálový procesor“, „obrazový procesor“, „přenosový procesor pro styk s periferiemi“, „audioprocesor“, atp.

CPU provádí základní aritmetické, logické, a vstupně/výstupní operace systému. Procesor má v počítači podobné postavení jako motor v autě, případně jako mozek v těle. Termín procesor (CPU) je v počítačovém průmyslu užíván již od počátku raných šedesátých let. I když se technologie procesorů od jejich vzniku dramaticky změnila, jejich základní základní operace zůstávají téměř stejné. Některé typy operací přibyly (''pro pamětníky'' násobení, a operace v pohyblivé čárce), jiné zmizely (operace s dekadickými čísly).

Součásti procesoru[editovat | editovat zdroj]

  • Řadič nebo řídicí jednotka, která zajišťuje řízení součinnosti jednotlivých částí procesoru dle prováděných strojových instrukcí (jejich dekódování, načítání operandů instrukcí z operační paměti a ukládání výsledků zpracování instrukcí).
  • Sada registrů pro uchování operandů a mezivýsledků. Přístup k registrům je mnohem rychlejší než přístup do operační paměti připojené k procesoru pomocí sběrnice. Registry dělíme na obecné (pracovní, universální) a řídící (např. čítač instrukcí, stavové registry, registr vrcholu zásobníku, indexregistry). Bitová šířka pracovních registrů je jednou ze základních charakteristik procesoru.
  • Jedna nebo více aritmeticko-logických jednotek (ALU, anglicky Arithmetic-Logic Unit), které provádí nad daty aritmetické a logické operace.
  • Některé procesory obsahují jeden (nebo více) matematických koprocesorů (FPU, anglicky Floating Point Unit), které provádějí operace v plovoucí řádové čárce.

Procesory zpravidla obsahují mnoho dalších rozsáhlých funkčních bloků jako například paměť cache a různých periferií, které z ortodoxního hlediska nejsou součástí procesoru. Proto vznikl pojem „jádro procesoru“, aby bylo možné rozlišit mezi vlastním procesorem a integrovanými periferními obvody. Vzhledem k současné vysoké integraci tak mnohde dochází k rozmazávání hranice mezi pojmem mikroprocesor a mikropočítač. Příkladem jsou tzv. „systém na čipu“ (SoC – system on chip). Jde o integrované obvody, které obsahují kromě vlastního procesoru i další subsystémy, např. pro zpracování grafiky, zvuku či připojení periferií (ty jsou v osobních počítačích obvykle v tzv. chipsetech, nebo na samostatných kartách). „Systémy na čipu“ mohou být použity například v PDA, herních konzolích, tenkých klientech, domácí elektronice, nebo v mobilních telefonech.

Některé současné procesory obsahují více jader, takže v jednom pouzdru je obsaženo více samostatných procesorů.

Dělení procesorů[editovat | editovat zdroj]

Procesory lze podle jejich charakteristik rozdělit na různé skupiny.

Podle délky operandu v bitech[editovat | editovat zdroj]

Základní vlastností procesoru je délka slova (operandu). Délka slova vyjadřuje počet bitů, který je procesor schopen zpracovat v jednom kroku. Zjednodušeně se dá říci, že např. 8bitový procesor umí přímo počítat s čísly od 0 do 255, 16bitový s čísly od 0 do 65535 (tj. 0 až 216-1), atd. Operace s většími čísly musí být rozděleny do několika kroků. V současnosti se nejvíce využívají 32bitové a 64bitové procesory.

  • 4bitové procesory, jako byl první mikroprocesor Intel 4004, se dnes již používají jen výjimečně. Zpravidla jde o jednoduché bateriové aplikace (digitální teploměry, měřicí přístroje, hodinky, časovače, případně kalkulačky).
  • Pro speciální účely se dříve používaly 24bitové DSP (signálové procesory), např. z řady Motorola 56000. Důvodem k použití délky slova 24 bitů bylo jejich primární určení pro zpracování audio signálů.

Podle struktury procesoru[editovat | editovat zdroj]

Podle vnitřní architektury
Procesory RISC s menším počtem strojových instrukcí a CISC s velkým počtem instrukcí. Jako výhodnější se ukazují instrukční sady typu RISC, avšak některé architektury z důvodu zachování zpětné kompatibility pracují i se strojovým kódem typu CISC (Intel x86). Procesory RISC jsou velmi úspěšné např. v mobilních telefonech nebo v superpočítačích, protože jednodušší architektura se projevuje nižší spotřebou energie.[2]
Procesory podle schopnosti podpory skutečného operačního systému
Pro jednoduché aplikace nemusí procesor integrovat jednotku pro správu a ochranu paměti (MMU, anglicky memory management unit). Pro provoz plnohodnotných operačních systémů (například Windows NT a vyšší tj. XP, 7, 8 ..., Linux, Mac OS X atd) je jednotka správy a ochrany paměti nezbytná. Bez podpory v procesoru je nemožný preemptivní multitasking, současná práce více uživatelů na jednom počítači (např. počítač poskytující cloudové služby), nebo virtualizace.
Jednočipový mikropočítač nebo také mikrokontrolér (MCU)
Jednočipový počítač také obsahuje procesor, ale procesor není jeho jedinou částí. Kromě procesoru jsou totiž integrovány i další obvody, jako jsou časovače (timery a watchdog timery), nevolatilní paměť (EEPROM, FLASH nebo ROM) a volatilní paměť (typicky SRAM), dále vstupně výstupní 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)).
V současnosti v oblasti jednočipových mikropočítačů a mikrokontrolérů převažují obvody založené na architektuře ARM.
Digitální signálový procesor (DSP)
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. Můžeme rovněž pozorovat snahy o spojení výhod DSP a mikroprocesorů, ať už je to cestou rozšiřování DSP o periferie nebo rozšiřováním mikrokontrolérů o DSP jednotky.

Podle počtu jader[editovat | editovat zdroj]

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. Procesory se tedy dělí na jednojádrové a vícejádrové. Zvyšování počtu jader je v podstatě vynuceno fyzikálními omezeními (např. rychlostí světla). Integrací většího počtu jednodušších jader je teoreticky možné dosáhnout při stejné výrobní technologii na stejné ploše křemíku mnohem vyšší výpočetní výkon, než použitím jediného složitého jádra.

Základní parametry procesoru[editovat | editovat zdroj]

Díky složitosti procesorů není možné stanovit několik jednoduše srozumitelných obecných parametrů, které by umožnily objektivní srovnání různých procesorů. Následující parametrizace umožňuje zhruba srovnat rysy procesorů.

Parametr Popis Jednotka běžný rozsah
Rychlost jádra Počet operací provedených za jednu sekundu MIPS (milionů instrukcí za sekundu) 0 – 10000 MIPS (v budoucnu i více)
Řada Oficiální označení velikosti tranzistorů nm 10000 nm (roku 1971), 1500 nm (1982), 600 nm (1994), 90 nm (2004), 14 nm (2014)
Výrobní proces Skutečná velikost hradla tranzistorů nm 45 nm (2004), 25 nm (2014)
Šířka slova Maximální bitová šířka operandů instrukcí bit 4 – 64 (nebo FP vektory až 8x64bit)
Počet jader Počet a typ jader integrovaných v procesoru číslo běžně 1 – 16 jader
Efektivita strojového kódu Počet instrukcí potřebných pro provádění běžných operací např. počet Dhrystone na MIPS  ?
Výkon FPU Přítomnost FPU/počet základních operací v jednoduché nebo dvojnásobné přesnosti, které zvládne provést jednotka FPU MFLOPS (megaflops) až jednotky TFLOPS (teraflops), podle architektury a počtu FPU
Šířka externí datové sběrnice Maximální počet bitů, které je možné během jedné operace přenést z/do čipu bit 8 – 128
Frekvence externí datové sběrnice (FSB) Maximální frekvence přístupu do externí paměti RAM Hz stovky MHz
Interní paměť cache Kapacita rychlé interní vyrovnávací paměti integrované přímo na čipu procesoru Byte i několik MiB (většinou 4-12MiB)
Velikost adresovatelné paměti Velikost externí paměti, kterou je procesor schopen přímo používat Byte u 32bitových CPU řádově 4 GiB i více

Rychlost procesoru[editovat | editovat zdroj]

Procesor Intel Celeron D taktovaný na 2,53 GHz.

Nejčastěji používaným vyjádřením rychlosti procesoru je takt procesoru (taktovací frekvence). V jednom taktu jsou uvnitř procesoru provedeny přesně definované operace. Kvůli různým technikám zvýšení výkonu však již dnes není frekvence rozhodujícím faktorem a nelze ji využít jako srovnání ani mezi kompatibilními procesory.

Skutečnou rychlost procesu je kombinace taktovací frekvence a dalších jeho vlastností. V procesorech typu RISC trvala každá strojová instrukce právě jeden takt, zatímco v procesorech typu CISC trvala každá strojová instrukce různý počet taktů (jeden až řádově desítky taktů), a proto nelze tyto dvě různé rodiny procesorů přímo porovnávat na základě taktovací frekvence.

Dnes se však rozdíly mezi oběma architekturami stírají, takže i CISC procesor může za takt vykonat několik instrukcí. RISC procesory v současné době vykonávají až kolem dvanácti jednoduchých instrukcí za takt. Takové procesory se nazývají superskalární.

Pokud je v procesoru implementován pipelining (pro zvýšení taktu) a/nebo superskalární provádění (pro zvýšení počtu vykonaných instrukcí za takt), je v procesoru více strojových instrukcí v různém stupni rozpracování. V takovém případě má smysl tzv.: Out-of-order execution neboli provádění mimo pořadí kdy pořadí strojových instrukcí je změněno (při zachování správnosti výsledků) pro omezení závislostí mezi zpracovávanými instrukcemi a tedy pro zvýšení výkonu.

Pipelining a superskalární provádění se v současnosti často kombinují, takže například procesory stolních počítačů již běžně mají implementován superskalární pipelining.

Rychlost procesoru ovlivňuje též přítomnost cache, která urychluje přístupy do operační paměti typu RAM. Pokud cache není přítomna, musí procesor při čtení nebo zápisu do paměti čekat na dokončení této operace, což je typicky několik taktů sběrnice, která paměť spojuje s procesorem. Rychlost této sběrnice je typicky nižší, než takt procesoru (ve většině současných procesorů je dokonce interní takt procesoru násobkem této frekvence), a proto je toto zdržení velmi významné. Vřazení rychlé cache mezi procesor a paměť může tyto čekací stavy omezit nebo dokonce úplně eliminovat, což závisí na úspěšnosti cache v predikci následujících operací s pamětí a také na celkové velikosti cache. Proto mají současné procesory integrovánu cache ve velikosti řádově jednotek MiB (mebibajtů). Cache může být několikastupňová (L1, L2, L3 – čím nižší číslo, tím blíže k procesoru) a může být umístěna i na základní desce počítače. Na výkonnost cache má též vliv optimalizace programu.

Rychlost procesoru je jen jedním z faktorů, které ovlivňují celkovou rychlost počítače. Mezi další faktory patří velikost dostupné operační paměti RAM, rychlost pevného disku, propustnost propojujících sběrnic, ale i rychlost dalších vstupně/výstupních součástí počítače (pro hraní her například grafická karta) a v neposlední řadě operační systém.

Architektury procesorů[editovat | editovat zdroj]

Podrobnější informace naleznete v článku Architektury procesorů.

První procesor obsahoval počítač ENIAC. První Mikroprocesor vzniknul u firmy Intel, nejprve šlo o 4bitový 4004, velkého rozšíření došel 8bitový 8080 a od něj odvozený čip firmy ZilogZ80. V oblasti desktopových počítače je dodnes nejúspěšnější architektura x86 odvozená od procesoru Intel 8086. Prudce rozvíjející se oblast miniaturních přenosných bateriových zařízení v současnosti ovládly architektury ARM.

Reference[editovat | editovat zdroj]

  1. Weik, Martin H.(1961).  "A Third Survey of Domestic Electronic Digital Computing Systems". Ballistic Research Laboratories. 
  2. SPEC CPU2006 Results

Literatura[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]