1 Základná koncepcia číslicového počítača

Číslicový počítač je definovaný ako zložitý univerzálny číslicový systém (automat), určený na samočinné vykonávanie požadovanej postupnosti operácií (výpočtov)nad údajmi,zobrazenými číslicovým kódom, na základe vopred pripraveného a v pamäti uloženého programu .
Základný koncept počítača, ktorý vykonáva postupnosť operácií na dosiahnutie konečného výsledku, je známy viac ako 150 rokov. Bol použitý v mechanických dekadických počítacích strojoch, ktoré navrhol a čiastočne zostrojil Charles Babbagé. Jeho analytický stroj (Analytical Engine) z r. 1834 obsahuje centrálnu procesorovú jednotku (mechanickú, s dekadickou aritmetikou), pamäť (mechanickú) a vstupnú a výstupnú jednotku (pre dierne karty), t.j. všetky základné časti moderných počítačov. Program a údaje pre tento stroj sú na diernych kartách. Samozrejme, vtedajšia mechanická technológia nedovolila úspešnú realizáciu funkčných zariadení, takže jeho myšlienky zostali viac ako 100 rokov nevyužité. Až vytvorenie elektronických obvodov v 40. rokoch 20. storočia ich umožnilo zaviesť do praxe. V tomto čase John von Neumann predložil základný princíp počítača riadeného tokom inštrukcií, ktorý sa stal základom jednej triedy súčasných počítačov. Táto trieda počítačov býva tiež označovaná ako von Neumannovské počítače. Vyznačuje sa tým, že jednotlivé inštrukcie programu sa vykonávajú postupne za sebou, tak ako sú uložené v pamäti.
V súčasnosti existujú aj výpočtové systémy, v ktorých sa inštrukcie nevykonávajú v poradí, v akom sú uložené v pamäti (napr. počítače riadené tokom údajov, neurónové počítače a iné). V časti 1.2 je pre ilustráciu opísaný princíp počítača riadeného tokom údajov. V tomto počítači sa vykoná práve tá inštrukcia, ktorá má pripravené údaje, pričom nezáleží od jej poradia.

1.1 Počítače riadené tokom inštrukcií (von Neumannovské počítače)

Základné črty von Neumannovského počítača sú :
  1. Pamäť je použitá na uloženie inštrukcií aj údajov.
  2. Riadiaca jednotka j e použitá na výber inštrukcií z pamäte.
  3. Aritmetická jednotka je použitá na vykonávanie špecifikovaných operácií nad údajmi.
  4. Vstupná jednotka je použitá na vstup údajov, výstupná jednotka na výstup údajov.
obr1
OBR. 1.1. Bloková schéma von Neumannovského počítača
Pamäť je množina rovnakých buniek, z ktorých každá je samostatne identifikovateľná svojím poradovým číslom - adresou. Inštrukcie a údaje, uložené v pamäti, sú zakódované dvojkovým kódom.
Inštrukcia (príkaz pre riadiacu jednotku) určuje, aká operácia sa má vykonať a s ktorými údajmi. Inštrukcie sa vykonávajú postupne za sebou, tak ako sú uložené v pamäti. Výnimkou sú skokové inštrukcie. Implicitne sa predpokladá pripravenosť údajov, ktoré vykonávaná inštrukcia požaduje.
Dvojkovo zakódované inštrukcie sú označované ako strojové inštrukcie. Operácie, špecifikované v strojových inštrukciách, sú obyčajne iba jednoduché, napr. aritmetické a logické operácie, posuvy atď., čo poskytuje najväčšiu flexibilitu. Zložitejšie operácie potom vytvára používateľ ako postupnosť inštrukcií. Z danej množiny strojových inštrukcií (inštrukčný súbor procesora)používateľ vyberá inštrukcie na vykonanie požadovaného výpočtu. Táto postupnosť vybraných inštrukcií sa nazýva strojový program počítača.
Riadiaca jednotka a aritmetická jednotka sú zvyčajne realizované ako jeden funkčný blok, ktorý sa nazýva centrálna procesorová jednotka (CPU)alebo skrátene procesor. Ak je procesor integrovaný na jedinom polovodičovom čipe, nazýva sa mikroprocesor.
Procesor obsahuje niekoľko registrov, ktoré sú použité na uchovávanie špecifických operandov, použitých pri výpočte, adries a riadiacich informácií. Počet registrov a ich funkcia závisí od konkrétneho procesora, ale niektoré registre sú prítomné v každom procesore von Neumannovského počítača. Typickým registrom je programové počítadlo (register PC). Obsahuje adresu nasledujúcej inštrukcie, ktorá sa bude vykonávať.

1.1.1 Princetonská a Harvardská architektúra

Von Neumannov počítač je predstaviteľom tzv. Princetonskej architektúry počítačov, ktorá sa vyznačuje spoločnou pamäťou pre inštrukcie i údaje. Z tohto vyplýva, že je potrebné zabezpečiť, aby procesor neinterpretoval údaj ako inštrukciu a naopak. Prístup procesora k pamäti je totiž rovnaký, či sprístupňuje inštrukciu alebo údaj - používajú sa tie isté adresové, údajové i riadiace signály. Takéto usporiadanie pamäte potom umožňuje používať aj samomodifikujúce sa programy. Program počas svojho behu môže meniť sám seba. Treba si však uvedomiť, že takáto situácia môže nastať aj neželane, či už nesprávnym programom, alebo vplyvom poruchy. Niektoré súčasné typy procesorov už vykonávajú kontrolu správnosti prístupu k pamäti vlastnými technickými prostriedkami. V prípade, že sa niektorý prístup k pamäti vyhodnotí ako nesprávny (napr. procesor sa pokúša zapisovať do oblasti pamäte, ktorá je vyhradená na uloženie inštrukcií), automaticky sa generuje výnimka (pozri Správa a ochrana pamäte). Túto situáciu potom rieši operačný systém počítača.
Príkladom počítačov s Princetonskou architektúrou sú napr. počítače s procesormi rodiny 80x86.
Počítače s Harvardskou architektúrou majú oddelený adresový priestor pre program a pre údaje, takže situácia, aby program prepísal sám seba, nemôže nastať. Táto architektúra sa v súčasnosti používa najmä pri niektorých jednočipových mikropočítačoch.
Jednočipový mikropočítač sa vyznačuje rým, že všetky štruktúrne prvky počítača (t.j. procesor, pamäť a vstupné a výstupné obvody) sú integrované na jedinom polovodičovom čipe. Procesor používa na adresáciu obidvoch pamätí a na prenos údajov a inštrukcií obyčajne spoločné adresové a údajové vodiče, rozlišovanie medzi prístupom k pamäti programu a k pamäti údajov vykoná aktiváciou odlišných riadiacich signálov. Príkladom počítača s Harvardskou architektúrou je jednočipový mikropočítač 8051

obr2
OBR. 1.2. Organizácia pamäte počítačov s Princetonskou a Harvardskou architektúrou

1.2 Počítače riadené tokom údajov (data-flow systémy)

Tieto počítače nevykonávajú inštrukcie postupne za sebou, tak ako sú uložené v pamäti, ale vykoná sa práve tá inštrukcia, ktorá má pripravené údaje. Ak má viac inštrukcií pripravené svoje údaje, tieto inštrukcie sa vykonajú paralelne. Treba poznamenať, že je potrebné vždy vytvoriť toľko kópií vstupných údajov, koľko je inštrukcií, ktoré ich budú potrebovať.
Počítače riadené tokom údajov predstavujú osobitnú triedu paralelných počítačov. Sú to počítače novej generácie s vysokou výkonnosťou. Ďalšou významnou vlastnosťou je, že programu sa prispôsobuje štruktúra technických výpočtových prostriedkov. Na obr. 1.3 je principiálna bloková schéma počítača, riadeného tokom údajov.
V pamäti inštrukcií sa nachádzajú všetky inštrukcie programu.
Arbitračná sieť zisťuje, ktorá inštrukcia (inštrukcie) je pripravená na vykonanie (t.j. ktorá má pripravené všetky svoje vstupné údaje). Túto inštrukciu potom vyberie a pridelí ju na vykonanie niektorému voľnému procesoru z poľa procesorov. Keď procesor vykoná príslušnú inštrukciu, pošle výsledok do distribučnej siete.
Distribučná sieť pridelí výsledok všetkým inštrukciám, ktoré v pamäti inštrukcií na tento údaj čakajú.

obr4
OBR. 1.3. Bloková schéma počítača riadeného tokom údajov

Program pre počítač riadený tokom údajov sa obyčajne zobrazuje ako orientovaný graf, v ktorom uzly reprezentujú asynchrónne aktívne členy (operátory, inštrukcie, úlohy) a hrany reprezentujú komunikačné cesty na, prenos a smerovanie správ(údajových balíkov, operandov), generovaných uzlami počas ich aktivácie alebo prijímaných z externého prostredia počas výpočtu. Tento graf sa nazýva graf programu.
Na obr. 1.4 je graf programu na realizáciu výpočtu x := (a/b + c*d) - (a*c - d).

1.3 Klasifikácia počítačov

1.3.1 Rozdelenie podľa aplikačného určenia

1. Univerzálne počítače predstavujú prevažnú väčšinu systémov, určených na riešenie vedecko-výskumných, inžinierskych, administratívnych a iných úloh. Niektoré triedy úloh riešia s väčšou, iné triedy úloh s menšou efektívnosťou. Tieto počítače používajú štandardné univerzálne procesory s inštrukčným súborom, ktorý je z hľadiska spracovania informácie úplný a štandardné prostriedky na komunikáciu s hlavnou pamäťou a vstupno/výstupným podsystémom.
2. Problémovo orientované počítače sú určené na riešenie problémov z danej triedy, napr. na spracovanie signálov. Používajú procesory s prispôsobeným alebo špeciálne navrhnutým súborom inštrukcií a špecializované periférne zariadenia na efektívne riešenie úloh danej triedy.
3. Aplikačne špecifické počítače sú svojou architektúrou orientované na riešenie jedného problému (napr. riadenie nejakého technologického procesu). Z danej úlohy vyplýva špecifikácia architektúry systému a jeho implementácia. Neznamená to, že počítače tejto triedy nevyužívajú štandardné procesory. Obyčajne však obsahujú špeciálne, na mieru vytvorené technické prostriedky a programové vybavenie. Do tejto triedy sa zaraďujú aj tzv. vnorené (embedded) systémy, v ktorých je počítač neoddeliteľnou súčasťou riadeného zariadenia.

obr4
OBR. 1.4. Graf programu pre výpočet x := (a/b + c*d) - (a*c - d)

1.3.2 Rozdelenie podľa architektonickej koncepcie

Podľa architektonickej koncepcie existuje viacero klasifikácií počítačov. Flynnova klasifikácia vychádza z počtu súčasne spracúvaných tokov inštrukcií a tokov údajov v počítači. Na základe tohto kritéria Flynn klasifikuje 4 triedy počítačov:
1. SISD (Single Insíruction stream Single Data stream). Jeden tok inštrukcií, jeden tok, údajov. Táto architektúra predstavuje architektúru Voji Neumannovho počítača, kde jeden procesor interpretuje jeden prúd inštrukcií (strojový program) a v zodpovedajúcom procese sa spracúva jeden prúd údajov.
2. SIMD (Single Instruction stream Multiple Data stream). Jeden tok inštrukcií, viac tokov údajov. Táto architektúra má významné použitie pri tvorbe paralelných počítačov. Uplatňuje sa najmä pri tvorbe systémov, ktoré vykonávajú vektorové a maticové operácie, t.j. súčasne sa vykonáva jedna operácia s viacerými údajovými štruktúrami rovnakého typu. Jeden program sa vykonáva súčasne s viacerými prúdmi údajov vo viacerých procesných elementoch (v tzv. pasívnych procesoroch, ktoré dostanú inštrukciu z riadiacej jednotky a vykonajú ju). Tieto systémy dosahujú podstatne lepšie výsledky ako architektúra SISD pri riešení úloh uvedenej triedy.
3. MISD (Multiple Instruction stream Single Dala stream). Niekoľko tokov inštrukcií, jeden tok údajov. Táto trieda predstavuje určitú teoretickú koncepciu, ktorá sa v počítačoch ako v celkoch neaplikuje a zatiaľ sa neobjavil ani jej praktický význam.
4. MIMD (Multiple Instruction stream Multiple Data stream). Viacnásobný tok inštrukcií, viacnásobný tok údajov. Architektúra MIMD predstavuje veľmi širokú triedu paralelných systémov, do ktorej zaraďujeme multiprocesorové a multipočítačové systémy s paralelným spracovaním. Ide o paralelné spracovanie s oddelene prebiehajúcimi paralelnými procesmi, riadenými samostatnými procesormi. Multiprocesorový systém je paralelný počítač, obsahujúci niekoľko procesorov, ktoré majú vlastnú alebo zdieľanú pamäť a na komunikáciu s okolím používajú spoločné vstupné a výstupné zariadenia. Multipočítačový (distribuovaný) systém sa skladá z niekoľkých počítačov s možnosťou vzájomnej komunikácie, ktoré sú schopné aj samostatnej činnosti. Patria sem aj počítačové siete.