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 1 2 3 4 hotovo takt 1 A 2 B A 3 C B A 4 D C B A 5 E D C B A 6 F E D C B 7 G F E D C 8 H G F E D 9 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
p p
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.