Struktura počítačů – z{kladní pojmy Cíl kapitoly: Úkolem této kapitoly je rozšíření znalostí o skladbě počítačů a procesorů a umožnit studentům pochopit činnost počítače a procesoru během z{kladních operací počítače. Nejdříve se sezn{míte s některými pojmy, nejen těmi, které jsou používané obchodníky, ale i takovými, s kterými se lze setkat v podrobných specifikacích.
Klíčové pojmy: Array, Flynnova klasifikace procesorů, pipelinning, preemptovní a nepreemptivní multitasking, proces, subprocesor
1. Struktura procesů Z{kladem činnosti procesoru a počítače je proces.
Definice procesu: Proces je posloupnost příkazů interpretovaným procesorem a odpovídající posloupnosti stavů. Tedy ke vzniku procesu potřebujeme jak program, tak i zařízení které ho aplikuje. Podmínkou vzniku procesu je aplikace programu v procesoru, který je schopen tento program provést. Proces musí být v procesoru vytvořen, a může Probíhat Být dosud nezah{jen (to je např. u rezidentních programů, které čekají na popud spuštění) Pozastaven (např. při přepín{ní úloh u multit{skingu)
Ukončen (opět rezidentní program, nebo při před{v{ní výsledků OS) Může tedy současně v procesoru existovat více procesů. Tyto procesy mohou být samostatné, nebo v určité interakci – spolupr{ci Procesor (jednovl{knový) může v jednom okamžiku zpracov{vat jen jeden proces. Pokud zpracov{v{ „současně“ více procesů, musí je přepínat. Přepínaní multitasking - je Preemptivní – OS v pravidelných intervalech stříd{ jednotlivé procesy (ř{dově po ms) Nepreemptivní – vyžaduje kooperaci spuštěných úloh, které ve vhodných okamžicích (obvykle při požadavku na přerušení) před{vají úlohu. Více procesů současně lze zpracov{vat zejména u víceprocesorových systémů (několik procesorů paraelně), u vícej{drových procesorů nebo u multi nebo hyperthreadingu (více vl{knových systémů) Spolupr{ci procesorů v těchto přídachech definoval p. Flynn. Organizace SI - Single instruction stream - jeden tok instrukcí odpovíd{ zejména klasické Von Neumanově strukuře – tj. jednoprocesorovým systémům, nebo z{lohovaným výpočtům MI – Multiply instruction stream – odpovíd{ více paralelně běžícím programům, a proto se aplikuje u multiprocesorových systémů a nebo u systému, kde lze vytvořit virtu{lní multiprocesorový systém SD – single data stream – jeden tok dat - zpracov{ní stejných dat jedním nebo více procesory MD – multiply data stream - každý procesor zpracov{v{ vlastní data. Složením těchto organizací dost{v{me tzv. Flynnovu klasifikaci procesorů SISD, SIMD, MISD a MIMD.
2. Propojov{ní procesorů, subprocesory Z{kladním nedostatkem jednoprocesorových systémů je jejich pomalost, podmíněn{ způsobem činnosti. Procesor postupněvypočít{v{ adresu instrukce, čte instrukční
kód, pak vypočít{v{ adresy operandů, čte operandy a nakonec vykon{v{ přečtenou instrukci a ukl{d{ výsledek opět na předem vypočtenou adresu. Odstranění těchto nedostatků se prov{dí zařazením dalších procesorů nebo rozčleněním procesorů na subprocesory. Subprocesor je relativně samostatn{ č{st procesoru vykon{vající samostatný úkol, ale koordinov{na s dalšími subprocesory. Řazení subprocesorů (resp. i procesorů) může být Sériové Paralelní nebo Pole Procesor při zpracov{ní instrukcí vykon{v{ celou řadu úkonů (v různých taktechrůzných f{zích zpracov{ní). Po vykon{ní této posloupnosti lze přejít na další instrukci. Předpokl{dejme, že každ{ instrukce je zpracovívína na 4 takty. Posloupnost instrukcí označme A, B, C, …. .
Schema tedy vypad{ takto
f{ze takt 1 2 3 4 5 6 7 8 9
1
2
3
4
hotovo
A A A A B
A B B B B
2.1 Sériové řazení - Pipelining U dnešních procesorů se pro zpracov{ní instrukcí použív{ sériové zapojení subprocesorů – pipelining. Při pipeliningu každý subprocesor pracuje na jiné instrukcia v jiné f{zi zpracov{ní. Schema pro 4 subprocesory vypad{ takto subproc takt 1 2 3 4 5 6 7 8 9
1
2
3
4
A B A C B A D C B A E D C B F E D C G F E D H G F E
hotovo
A B C D
Porovn{ním obou tabulek vidíme podstatné urychlení zpracov{ní instrukcí při stejné frekvenci procesoru. Zatím co u klasické struktury je pro n{š případ ukončena instrukce vždy po 4 taktech, kdežto u struktury s pipeliningem je ukončena instrukce každým taktem. M{li procesor 5 a více seriově řazených subprocesorů, mluvíme o superpipelingu. Obvykle je počet subprocesorů 7 až 10. Při větším počtu subprocesorů (okolo 20ti) se jedn{ o hyper pipelined technology.
2.2 Paralelní řazení Při paralelním řazení procesorů mluvíme o multiprocesorových systémech, při paralelním řazení subprocesorů uvnitř procesoru o superskal{rních procesorech. Nem{-li procesor paraleně ř azené subprocesory jedn{ se o skal{rní procesor.
2.3 Array – pole Jsou-li procesory propojeny jak seriově tak i paralelně a při tom první řada je zapojena na sběrnici svými vstupy a poslední řada svými výstupy mluvíme o poli procesorů. Další podmínkou je propojení mezi řadami jen jednosměrné (shora dolů) a v r{mci řad obousměrné. Vnitřní propojení jsou sériov{. Schematicky lze array (pole) vyj{dřit takto:
procesor sběrnice sériový spoj Pro procesorov{ pole, mající stovky procesorů se používají speci{lní procesory s e 4, 6 nebo 8 sériovými výstupy zvané transputery.
Kontrolní ot{zky: Kdy vznik{ proces? Co je preemptivní multitasking Jak{ je funkce subprocesoru Proč pipelining urychluje výpočty procesoru? Jak probíh{ komunikace uvnitř procesorového pole? Shrnutí: Proces je aplikovaný program na procesoru, může být v několika f{zích. Při spuštěných více procesech je možné prov{dět pomocí preemptivního (podle přesného pravidelného) multitaskingu nebo pomocí nepreemptivního multit{skingu, kdy je přepín{ní většinou z{vislé na přítomnosti přerušení. Podle pčístupu programů a dat rozdělil p. Flynn procesory na SISD, SIMD, MISD a MIMD. Seriové řazení subprocesorů je za určitých podmínek nazýv{no pipelining, superpipelining mebo hyperpipelining. Proccesory i subprocesory můýeme zapojovat i paralelně nebo do pole.