Obsah    Kapitoly: 12345678,  |  X.1X.2X.3X.4,  |  Y1 Y2 

Y2) V hlubinách procesoru

Y2.1) Historie

Každý z vás už asi slyšel, jak funguje procesor. Je to vcelku jednoduché, jsou v něm takový hrozně malý věcičky z křemíku a hliníku, těm se říká tranzistory, pak jsou tam nějaké diody, obvody a ty se spolu tak nějak domluví a máme tady malou destičku, která umí nevídané věci. To ale asi není to nejpřesnější vyjádření, takže jak je to doopravdy?

Začněme pěkně od začátku. Abakus. Neboli 5000 let stará destička, do které se vkládali kamínky, které usnadňovali starověkým Řekům a Římanům počítání. Ony kamínky se jmenovaly "calculi" a od té doby máme i název kalkulačka. Poté se dlouho nic nedělo. Názory na to, co je první počítač se různí. Co je jasné, že už v roce 1801 řídí Francouz Maria Jacquard tkalcovský stav pomocí děrné pásky a Angličan Charles Babage objevil tajemství děrných štítků a "strkal" je do tzv."Analytical Engine". Objevují se i logaritmické tabulky, poté i pravítka a v roce 1938 sestavuje německý stavební inženýr Konrád Zuse první mechanický počítač Z1.

Pozdější verze Z3 se už dá i programovat. Bohužel, tento stroj nevzbudí u armády pozornost a upadne v zapomnění. Roku 1943 vzkřísí k životu Howard Aiken svůj reléový počítač Mark 1. Tento počítač byl pravděpodobně použit k výpočtům první atomové bomby. V roce 1944 je na univerzitě v Pensylvánii uveden do provozu první elektronkový počítač ENIAC (Electronic Numerical Integrator And Computer). Eniac byl tak velký, že se všude udávají jiná čísla, ale víceméně měl:
18 000 elektronek,
10 000 kondenzátorů,
7 000 odporů,
1 300 relé,
byl chlazen dvěma leteckými motory, zabíral plochu asi 150 m2 a vážil okolo 40 tun. A v rychlosti se rozhodně nepředvedl.

Roku 1945 nastává přelom, když pan John von Neumann publikuje svou vizi principu řízení počítače programem. Sestaví i počítač zvaný MANIAC (Mathematical Analyser Numerical Iintegrator And Computer). Ten se podílí na vývoji jiné ničivé bomby, a to vodíkové.

Takto vypadá von Neumannovo schéma:
- dvojitá šipka znázorňuje tok dat
- jednoduchá šipka znázorňuje tok řídících signálů

Řadič řídí všechny části a sám může být řízen pouze aritmetickou jednotkou. A právě řadič a aritmetickologická jednotka (ALU), jak se správně jmenuje, tvoří procesor. Další součástí je operační paměť, ve které je všechno s čím se pracuje uloženo. Tyto tři části tvoří vlastní počítač. Všechno ostatní jsou jen vstupní nebo výstupní zařízení.

Od té doby začíná skutečná počítačová revoluce. Na počítač už nepotřebujeme budovu, nýbrž pouhopouhou místnost. Roku 1951 spatří světlo světa první sériově vyráběný počítač, neboli elektronkový Univac firmy Remington. Poté se objevují tranzistory, které se začali čím dál tím více miniaturizovat a shlukovat v čím dál tím větších počtech do čipů. Pokud čipu přiděláme nožičky, vyrobíme jako zázrakem integrovaný obvod. Tento objev datujeme do roku 1952. No a konečně, jestli jste schopni tento obvod naprogramovat, vyrobili jste si mikroprocesor. A jsme tam, kde chceme být.

Trochu historie máme za sebou. Nicméně, ještě si uděláme průřez generacemi počítačů:
  Generace     Rok     Použité součástky  
0
1940
Relé
1
1950
Elektronky
2
1958
Tranzistory
3
1964
Integrované obvody
3, 5
1972
LSI
4
1981
VLSI
LSI - Large scale integration, neboli něco ve stylu "hodně transistorů na čip"
VSLI - Very Large scale integration, neboli "velmi hodně transistorů na čip"

Y2.2) Booleova algebra

Už jsme u procesoru, ale abychom si objasnili jeho princip, musíme se podívat ještě na pár věcí. Takže….víme už, že procesor je z tranzistorů, prozatím bychom měli aspoň vědět, že tranzistor je součástka, kterou protéká, či neprotéká elektrický proud. Proto se začneme zajímat Booleovou algebrou. GEORGE BOOLE (1815 - 1864) byl irský matematik, jež v roce 1854 vytvořil zvláštní druh algebry.

Boolova algebra je nauka o operacích na množině {0,1}, tedy něco co se k našemu tranzistoru náramně hodí.

Způsoby popisů: Základní operace, jež jsou v Booleově algebře jsou tyto:
Kde platí následující pravidla:
Argumenty
AND
OR
NOT (a)
a
b
Výsledek
Výsledek
Výsledek
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
To vše už byste měli vědět, pokud jste se prokousali kapitolou Logické instrukce.

Pro nadšence si si můžeme ještě ukázat Vennovy diagramy:
ANDORNOT
A proč že to do vás takhle hustím? No, jistě jste si všimli, že pokud je někdo v matematice opravdu nadaný, dokáže s funkcemi Booleovy algebry úplné zázraky a díky 1 a 0 si vcelku v pohodě vypočítá co chce. Ovšem i ten nejnadanější matematik si všimne, že je booleova algebra poněkud náročnější, pokud chcete vypočítat něco trochu složitějšího. Pokud mi nevěříte, tak se dívejte:
Minimalizace počtu operací: 1) Matematické úpravy
2) Využití jednotkvé krychle
3) Karnaughova mapa normalizací Vennova diagramu
A pokud to nechápete, mě se neptejte, já taky ne...
Jisté východiskem z této situace nabídli tito pánové:

Y2.3) Shefferova algebra

Je vybudována na jedné logické funkci a tou je negace logického součinu, NAND
Pro libovolný počet proměmmých platí: .Tabulka funkce NAND pro dva argumenty:
a
b
Výsledek
0
0
1
0
1
1
1
0
1
1
1
0

Y2.4) Pierceova algebra

Je opět vybudována na negaci, teď ovšem na negaci logického součtu, NOR

Je obdobná s S-Algebrou. Tabulka funkce NOR vypadá takto:
a
b
Výsledek
0
0
1
0
1
0
1
0
0
1
1
0


Převod Booleovy algebry na S a P algebru se dělá za pomocí de Morganových pravidel, ale to spíše pro zajímavost.

Díky S a P algebře se dá logický obvod mnohem lépe realizovat, protože tyto funkce platí pro libovolný počet proměnných a pravidla jsou jednodušší. A opět, ti chytřejší z nás dokázali s této algebry vytřískat co se dalo a díky ní opět mohli počítat.

Teď už nám zbývá jen jediná věc. Naučit počítat procesor.

Y2.5) Procesor

Jak už jistě víte, procesor se skládá z miliónů tranzistorů. Jedny z nich mají za úkol si pamatovat.:
  1. Paměťové obvody.Na jakém principu pracují již doufám chápete, neboť jsem se to snažil vysvětlit, již v dřívějších kapitolách. Pokud vám ale pomůže malá nápověda, tak proč ne: Data jsou uložena ve dvojkové soustavě prostě jen jako čísla. Změť 0 a 1 dává dohromady spousty čísel. Tato čísla by nám byla ovšem na nic bez něčeho, co by s nimi umělo pracovat.

  2. Logické obvody se skládají z tranzistorů, diod odporů a podobně. Co víc, pracují dle pravidel Booleovy, Shefferovy a Piercovy algebry. To nám umožňuje procovat s daty, uloženými v paměti.
My si zde ukážeme jen nejjednodušší obvody. Jistě chápete, že ty nejjednodušší se sdružují do složitějších, složitější do ještě složitějších, ještě složitější do neuvěřitelně složitých o a pokud máte krapek soudnosti, jistě si rádi přiznáte, že takové obvody necháte na jiných. A pokud si to nepřiznáte, mě z toho prosím vás vynechte.

Logický součet OR

Začněme tím jednodušším. Doufám, že víte, co je to dioda a máte alespoň základní znalost elektrických obvodů. Potom elektrický obvod, zajišťující fci OR, vypadá takto:
Logický obvod OR

Jen připomínám, že dioda propouští elektrický proud v jednom směru, a to ve směru šipky. x1 a x2 představují hodnoty x1 a x2 z tabulky uvedené níže. Pokud chceme přiřadit x1 hodnotu 1, zapojíme baterii připojenou k x1 a s x2 je to to obdobné. Y je potom výstup, neboli výsledek v tabulce. Tu žárovička je tam pro to, že kdybyste si to chtěli sestavit, a žárovička svítila, znamená, to, že Y je 1. Pokud je Y=0 tak žárovka svítit nebude.

A teď, pokud nezapojíme ani jednu baterii, v obvodu nebude žádný proud a žárovka nebude svítit, tedy Y=0. Zapojíme-li alespoň jednu baterii, nebo i obě, tak si všimněte, že si proud po těch černých cestičkách najde cestu až k žárovce a ta se rozsvítí. To znamená, že výsledek je 1. Podle následující tabulky:
x1
x2
OR
0
0
0
0
1
1
1
0
1
1
1
1

Negace NOT

K realizaci takového obvodu se používá technologie zvaná TTL. (Transistor Transistor Logic)

Základní stavebí prvek této technologie je transitor typu NPN. Bohužel už není dost místa ani trpělivosti vysvětlovat princip tranzistoru, takže ti co to moc dobře nechápou: Vězte, že to tak funguje!
NOT


Je-li na vstupu x1 logická 1, tedy baterie je zapojena, je tranzistor otevřen, mezi kolektorem a emitorem je vodivé spojení. Napětí na kolektoru, a tedy i výstupní napětí Y vzhledem k emitoru je prakticky nulové. Téměř celé napětí baterie je na horním rezistoru. Žárovka nesvítí a logická úroveň výstupu je 0.

Je-li na vstupu x1 logická 0 (není připojena baterie), je tranzistor uzavřen, jeho odpor mezi kolektorem a emitorem je podstatně větší než odpor horního rezistoru a napětí kolektoru proti emitoru je dosti vysoké. Na výstupu Y je napětí nenulové, a žárovka svítí.
x1
NOT
0
1
1
0

Negace logického součtu NOR

Opět technologií TTL.
NOR


Je-li k některému z obou vstupů připojena baterie, je jeho logická úroveň 1, příslušný tranzistor je otevřen a jeho kolektorovým obvodem prochází proud. Kolektor tohoto tranzistoru má pak vzhledem ke společnému emitoru napětí téměř nulové. Y=0.

Není-li k tomu či onomu vstupu připojena baterie, je jeho logická úroveň nulová, přislušný tranzistor je uzavřen a proud z kolektoru do emitoru neprozhází. Potenciál kolektoru vzhledem k emitoru by byl nenulový. Situace je bohužel ve skutešnosti složitější, protože kolektory obou tranzistorů jsou spolu spojeny. Společný vývod kolektorů představuje výstup Y.

Jestliže jsou na obou vstupech logické nuly, jsou oba tranzistory uzavřeny a jejich kolektorové proudy jsou nulové. Potencionál společného kolektorového vodíče (spoje) je nenulový, téměř rovný napětí zdroje. Na výstupu se objeví nenulové napětí, které rozsvítí žárovku, tudíž Y=1.

Je-li alespoň na jednom vstupu logická 1, je alespoň jeden tranzistor otevřen a prochází jím (od kolektoru k emitoru) značný elektrický proud, čímž se potencionál kolektorového spoje výrazně zmenší. Na výstupu se objeví téměř nulové napětí a žárovka nesvítí. Y=0.
a
b
NOR
0
0
1
0
1
0
1
0
0
1
1
0


Dobrý, ne? Asi si to budete muset několikrát přelouskat, než něco z toho pochopíte, ale prostě...už je to tak.

Negace logického součinu NAND

Opět technologií TTL.


Připjíme-li k oběma vstupům x1 a x2 baterie, jsou na obou vstupech logické jedničky, oba tranzistory jsou otevřeny, takže jejich kolektorové proudy jsou velké. Výstupní svorka Y má téměř nulové napětí, a žárovka vpravo nesvítí. Y=0.

Když je alespoň na jednom vstupu logická nula, je alespoň jeden tranzistor uzavřen a jeho kolektorový proud je nulový, potenciál svorky Y je nenulový. Elektrický odpor tranzistorů zapojených do série (Pokud jde o kolektorový proud), z nichž alespoň jeden je uzavřen, je podstaně větší než odpor rezistoru v horní části schématu. Žárovka svítí a tím nám prozradila tu novinky, že Y=1.
a
b
NAND
0
0
1
0
1
1
1
0
1
1
1
0


Tak to by byl ten nejnižší princip procesoru, který jsem si dal za úkol v této kapitole objasnit. Pokud by vás zajímalo něco víc, musíte si počkat asi až na další kapitolu, kde se dozvíme něco vychytávkách, které mají za úkol zlepšit výkon procesoru.

Předchozí kapitola Nahoru Následující kapitola