procesor
51

Co je to procesor..


ZPĚT




1. Co je to procesor

Procesor je součástka s mnoha nožičkami. I tak se na to dá podívat, ale nic vám to o součástce neřekne. Procesor je vlastně nejsložitější součástka, kterou člověk vymyslel. Ale to je také zavádějící. Tak tedy představte si, že by procesor byl černá krabička a uvnitř by seděl malý človíček u stolu, s knihou, telefonem, papírem, tužkou, gumou, a zatím po tmě...
Už jste si představili? No, pomůžu vám trochu obrázkem..

CPU

CPU A najednou někdo zapne světlo, připojí procesor k napájení. V místnosti se rozsvítí, človíček se probudí, otevře knihu na straně 0 a začne číst.. A co přečte? Přečte první příkaz programu, který byl pro něj někým z lidí připraven. Ten program se skládá z jednoduchých příkazů a ten človíček v procesoru ví přesně, jak na ně reagovat.

CPU Pro človíčka v procesoru je důležité pamatovat si adresu, kde právě čte. A dále je pro něj důležité, aby okamžitě a správně reagoval na příkazy, které právě přečetl. Jelikož je ale človíček vytvořen jako soustava elektronických obvodů, nedělá chyby a reaguje pořád stejně rychle. Jediné chyby, které se může dopustit je, když musí reagovat na náš špatně napsaný program. Kniha, z které človíček čte také není papírová, je jí elektronická paměť, která se skládá s adresovatelných míst, a v jejích jednotlivých buňkách nejsou zapsaná slova, ale pouze čísla, která mohou být jen v rozsahu od 0 do 255. Procesor však ví, jakou instrukcí na jaké číslo reagovat, je to pro něj kód instrukce. Aby se program z paměti po každém vypnutí procesoru nevymazal, je pro uložení programu použita paměť, která nezapomíná ani po vypnutí. Myslím si, že přirovnání této paměti ke knize je velmi trefné. Pevná paměť s programem musí být připravena dávno předtím, než se procesor spustí. Některé procesory mají programovou paměť uvnitř svého pouzdra, knihu uvnitř své místnosti, ale někdy je tato paměť další součástkou, která je s procesorem spojená a človíček-procesor pak čte instrukce jakoby přes okno do druhé místnosti a na dálku si ovládá listovaní knihou.
Pokud procesor přečte příkaz skoč na adresu 50, procesor jen změní adresu pro čtení z paměti, tedy náš človíček nalistuje stranu 50 a přečte si příkaz.

CPU CPU
Teď jen abych něco nepřeskočil, človíček-procesor po přečtení instrukce automaticky otočí na další list, tedy k adrese přičte +1. Ale náš příkaz byl skoč na adresu 50, procesor náš příkaz vykoná a čte z adresy 50 další příkaz a to napiš na 2.papír číslo 44. Tak jak má procesor pevnou paměť, z které čte příkazy, má procesor pro své použití část paměti, která je pro něj jako blok papíru. I v tomto bloku papíru je pro něj důležitá adresa, kam má psát nebo odkud má číst, tedy určení, který list papíru použít. Opět se nejedná o nic jiného než o adresovatelné buňky paměti, z kterých procesor může číst, ale pozor, i do nich zapisovat. Tato paměť (paměť papíru) se tedy chová poněkud jinak, než paměť programová (paměť knihy). Tato paměť má ale jednu neřest, po vypnutí všechno zapsané zapomíná a může být po zapnutí popsána nesmysly.

CPU Teď se na to podíváme z nadhledu. PROCESOR si pamatuje adresu odkud čte program. Procesor má k dispozici KNIHU, tedy programovou paměť, z které pouze čte instrukce, aby se podle nich choval. Pro další činnost má část přepisovatelné paměti, PAPÍR, tuto paměť si procesor adresuje, a buď z ní data čte nebo do ní zapisuje. I zde platí, že na jeden list papíru, tedy do jedné paměťové buňky lze napsat jen číslo v rozsahu od 0 do 255.

CPU Prozradím vám jednu věc, z paměti programu, KNIHY, i z paměti dat, PAPÍRU, nelze číst (zapisovat) libovolnou rychlostí. Každá paměť potřebuje určitý čas na to, aby po přijetí adresy od procesoru byla předána správná data ke zpracování. Asi jako když vy rychle listujete knihou na stránku 127 a máte přečíst první slovo nahoře. Samozřejmě, že u pamětí to je mnohem rychlejší, ale přece. I samotný procesor by mohl svoji rychlost měnit s velikostí napájecího napětí či teplotou okolo něho. Pro vyřešení tohoto problému a také pro jednoznačný chod akcí v procesoru, potřebuje celý systém taktovací hodiny.
Hodiny jsou ve většině případech vytvořeny z kmitajícího krystalu, který je někde mimo procesor. Počítáním kmitů krystalu se vytvoří vhodná frekvence pro taktování procesoru a zároveň se tyto hodiny mohou použít i pro další časování akcí ve vašem programu.
Něco pro příklad využití taktování: V prvním taktu pošle například procesor adresu 50 do knihy, a teprve v druhém taktu čte data z knihy a reaguje na přečtenou instrukci, ve třetím taktu posílá třeba data 44 na adresu 2 pro vyhledání správného listu papíru a ve čvrtém taktu spouští samotný zápis do paměti papíru, a tak to může běhat do kola..


CPU Po vykonání příkazu z adresy 50 se zvětší adresa na 51 a načte se další instrukce. Touto instrukcí je pro nás načtení čísla 1 a jeho odeslání na výstup 0.
A co je to výstup? Je to vlastně adresovatelná paměť jejíž obsah je rozdělen na jednotlivé výstupní piny, které mohou nabývat jen dvou hodnot a to buď 1 nebo 0. A tyto jednotlivé piny jsou tak posíleny, aby mohly spínat nějakou zátěž. Třeba svítivou diodu, spínací tranzistor nebo jen další elektronické obvody. Je to vlastně možnost, jak může človíček z procesorovny dát o své práci navenek vědět. Některe procesory mají výstupně/vstupní brány přímo v sobě, jiné na to potřebují speciální součástky.
Samozřejmě existuje i obrácený postup. Tím jsou vstupy a ty naopak pomocí událostí z venku (třeba stisknuté tlačítko) převádějí stav do jedniček a nul, a lze je procesorem načíst k dalšímu zpracování. A tak se naopak človíček z procesorovny dozvídá, co se děje venku. CPU Z předchozího obrázku si můžete uvědomit i další. Modré šipky ukazují, že procesor diktuje s kým bude mluvit, jedině pán z procesorovny posílá adresy a ostatní je jen poslouchají. Naopak data (červené šipky) posílá jak procesor, tak dotazovaná místa (periférie). Nezdá se vám v tom podobnost z lidským jednáním, no, vždyť procesor vymýšlel člověk :o))

CPU Teď už jenom na závěr. Samozřejmě, že človíček v procesorovně může dostat příkaz, kdy má něco sečíst, odečíst a podobně, a proto má někde schovanou kalkulačku, která mu při těchto příkazech pomáhá. Potom zde mohou být vstupy, které vytvoří přerušení jeho činnosti. Třeba zazvoní telefon.. :o) V tom okamžiku dá človíček do knihy záložku, a knihu programu otevře na stránce, kterou má někde poznamenanou, pro činnost v případě zazvonění telefonu. Pak vykoná právě tento program a na jeho konci se opět vrátí k záložce a pokračuje dál v přerušené činnosti. Takovýchto žádostí o přerušení programu může v jeden okamžik přijít víc. Pak se buď čeká, až se dodělá první přerušení, nebo se do knihy programu vetne záložka 2 a spustí se další program, který řeší neodbytnou situaci.. Přerušení může přicházet i od načítání času.. Ale to až příště, myslím si, že jsem vám na začátek dobře zamotal hlavu.. :o))

-b-