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ú :
- Pamäť je použitá na uloženie inštrukcií aj údajov.
- Riadiaca jednotka j e použitá na výber inštrukcií z pamäte.
- Aritmetická jednotka je použitá na vykonávanie špecifikovaných operácií nad údajmi.
- Vstupná jednotka je použitá na vstup údajov, výstupná jednotka na výstup údajov.

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

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ú.

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.

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.