Pohled dovnitř mikroprocesoru

DEFINICE Mikroprocesor je srdcem moderního počítače. Jde o čip složený z milionů tranzistorů a dalších součástek...


DEFINICE
Mikroprocesor je srdcem moderního počítače. Jde o čip složený z milionů
tranzistorů a dalších součástek uspořádaných do řady výkonných jednotek, které
plní nejrůznější funkce. Konkrétně jde např. o aritmetické jednotky,
vyrovnávací paměti, jednotky správy paměti nebo o prediktivní logiku skoků.

Za posledních deset let výrazně vzrostl výkon i komplexnost procesorů.
Mnohonásobně se zvýšil jejich taktovací kmitočet a zmenšila se jejich velikost.
Počet tranzistorů na jednom čipu stále roste a dosahuje skutečně závratné výše.
Procesor vyrobený v roce 1983 tvořilo pouhých 30 tisíc tranzistorů, zatímco
některé současné CPU (central processing unit, hlavní procesor počítače) jich
mají více než 40 milionů.
Každý počítačový program obsahuje mnoho příkazů pro práci s daty i těch, které
mají na starosti průběh vlastního programu. Procesor instrukce vykonává během
čtyř operačních fází: vyvolání dat a instrukcí, dekódování instrukcí, provedení
instrukcí a ukončení.
- Při vyvolání instrukcí a dat se do procesoru načítají instrukce programu a
další potřebná data.
- Dekódováním se odhalí smysl instrukcí a ty se pak předají příslušnému
hardwarovému prvku.
- Hardwarový prvek instrukce s příslušnými daty vykoná. Může provést např.
sčítání, posun bitů, násobení s pohyblivou řádovou čárkou nebo i vektorové
operace.
- Výsledky provedených operací jsou při ukončovací fázi umístěny do jiného
registru procesoru nebo do hlavní paměti počítače. Například výsledek sčítací
operace se může uložit do jednoho z registrů pro pozdější použití.
Důležitou součástí mikroprocesoru je jednotka zajišťující jeho časování. Ta
určuje maximální rychlost, při které mohou fungovat ostatní jednotky a pomáhá
sladit souběžné operace. Základní taktovací kmitočet dostává procesor z
oscilátoru na základní desce, následně je však třeba zajistit jeho úpravu pro
jednotlivé subsystémy např. pro taktování front side a back side sběrnic (viz
CW 32/2001).
Taktovací kmitočet se udává v megahertzech a stále častěji i v gigahertzech.
Nejrychlejší běžně nabízený procesor pracuje na kmitočtu 2 GHz čili na dvou
miliardách taktů za sekundu. Někteří počítačoví nadšenci taktovací frekvenci
procesoru kvůli dalšímu zlepšení výkonu ještě dále zvyšují. To však výrazně
posouvá vzhůru teplotu čipu, což může být příčinou jeho brzkého selhání. Proto
je v takových případech zpravidla nezbytné zajistit výkonnější chlazení.

Součásti procesoru
Soustava obvodů v procesoru je uspořádaná do samostatných logických částí,
jichž je nejméně tucet a nazývají se prováděcí jednotky. Ty pracují ve
vzájemném souladu tak, aby mohly být vykonávány výše uvedené čtyři operační
fáze programu. Schopnosti prováděcích jednotek se v rámci jednotlivých fází
často překrývají.
Toto jsou některé z prováděcích jednotek běžného procesoru:
- Aritmeticko-logická jednotka (ALU, arithmetic logic unit): Vykonává všechny
aritmetické operace. Někdy je tato jednotka rozdělena do podjednotek, z nichž
jedna zpracovává instrukce celočíselného sčítání a odčítání a druhá instrukce
výpočetně složitějšího násobení a dělení.
- Jednotka pro výpočty s pohyblivou řádovou čárkou (FPU, floating-point unit):
Obstarává všechny operace s pohyblivou řádovou čárkou (neceločíselné operace).
V minulosti šlo o externí součást procesoru, dnes však tvoří kvůli urychlení
operací (a díky schopnosti výrobců umístit na čip podstatně větší množství
tranzistorů) součást čipu.
- Zaváděcí a ukládací jednotka (load/store unit): Zajišťuje tok instrukcí a
dat, které se mají číst nebo zapisovat do paměti.
- Jednotka správy paměti (MMU, memory-management unit): Překládá adresy
aplikací na fyzické adresy paměti. To umožňuje operačnímu systému mapovat kód
aplikace a její data do různých virtuálních adresových prostorů. Díky tomu může
jednotka správy paměti poskytovat služby související s ochranou paměti.
- Jednotka pro předpovídání větvení (BPU, branch processing/prediction unit):
Předpovídá výsledek instrukce větvení, aby pokud možno co nejvíce redukovala
prostoje v toku instrukcí a dat do procesoru. Ty nastávají během vykonávání
programu, když je v důsledku skoku nutné přejít na novou adresu, nejčastěji
jako výsledek porovnávací operace nebo na konci smyčky.
- Jednotka pro zpracování vektorových operací (VPU, vector processing unit):
Pracuje s instrukcemi založenými na vektorech, s hardwarovou architekturou SIMD
(single-instruction multiple data) a primárně slouží k urychlení
multimediálních operací. Takové instrukce jsou obsaženy například v
multimediálních rozšířeních procesorů od Intelu (technologie SSI, Streaming
SIMD), v procesorech společnosti Advanced Micro Devices (AMD, technologie
3DNow!) nebo v technologii AltiVec od Motoroly. V některých případech není
jednotka VPU samostatná; společnosti Intel a AMD zabudovaly její funkce do FPU
jednotky Pentia 4 a Athlonu.

Nejen instrukce
Ne všechny součásti CPU vykonávají instrukce. Značné úsilí je věnováno také
tomu, aby procesor obdržel příslušné instrukce a data co nejrychleji. Přenosová
operace, která přistupuje do hlavní paměti (tj. mimo vlastní procesor), bude ke
svému provedení potřebovat mnoho taktovacích cyklů, zatímco zbylé části
procesoru budou v té chvíli zahálet. Jednotka pro předpověď větvení se snaží
takové situaci pokud možno zabránit ne vždy se jí to však může povést. Jako
účelné se v takové situaci ukazuje načíst najednou větší množství dat, což je
efektivnější, než přistupovat do paměti po částech.
Dalším způsobem minimalizace prostojů procesoru je uchovávání často
požadovaných částí kódu a dat ve vyrovnávací paměti umístěné přímo na čipu. Ke
kódu nebo datům v této paměti má procesor přístup během jednoho taktovacího
cyklu. Primární vyrovnávací paměť (cache, označovaná jako Level 1, L1) má
nejčastěji pouze 32 KB, a může tedy uchovávat pouze malou část programu nebo
dat. Při navrhování paměti je proto nezbytné vymyslet takový postup, díky
kterému se v L1 cache objeví potřebné informace v pravou chvíli. To je pro
výkon procesoru tak důležité, že je často více než polovina tranzistorů
procesoru využita právě pro realizaci L1 cache.
Multitaskingové operační systémy a nespočetné množství současně běžících
aplikací však dokáže přesytit i nejlépe navrhnutou L1 cache. Aby se tento
problém vyřešil, vymysleli výrobci před několika lety vysokorychlostní
sběrnicové rozhraní, které může procesor používat k přístupu do vyrovnávací
paměti druhého stupně (L2). Tento proces probíhá vysokými rychlostmi, obyčejně
při práci na polovině až třetině základní taktovací frekvence procesoru.
Dnešní nejnovější procesory, Pentium 4 a PowerPC 7450, jdou ještě dále a
umisťují L2 cache přímo na samotný procesorový čip. Navíc poskytují
vysokorychlostní podporu pro externí terciální vyrovnávací paměť (L3). V
budoucnosti by mohli výrobci dokonce do procesoru integrovat i další speciální
subsystémy pro správu paměti, čímž by uvedené operace ještě urychlili.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.