Operácie

Čo je to počítač?

Z SensorWiki

Pod pojmom počítač rozumieme stroj určený na spracovanie dát číslicovým spôsobom. Medzi základné funkcie počítača možno zaradiť:

  • Spracovanie údajov
  • Zapamätanie údajov
  • Prenos údajov ( počítač prenáša údaje v rámci počítača a medzi počítačom a okolitým svetom - periférie)
  • Riadenie vyššie uvedeného.

Všetky typy počítačov pracujú na podobnom princípe – podľa tej istej architektúry:


Von Neumannova architektúra

Von Neumannov počítač (architektúra, niekedy sa tiež nazýva Princetonská) je vytvorený z piatich funkčných blokov:

  1. Riadiaca jednotka (CU) – slúži na výber inštrukcií z pamäte.
  2. Aritmeticko logická jednotka (ALU) - na základe inštrukcie vykoná operácie na údajmi.
  3. Pamäť – ukladajú sa do nej inštrukcie a údaje.
  4. Zariadenie pre vstup a výstup údajov.
  5. Napájací zdroj.

Činnosť týchto blokov je riadená tokom inštrukcií, ktoré sa vykonávajú v slučké: FETCH, EXECUTE, DECODE.


Riadiaca jednotka a aritmeticko logická jednotka sú zvyčajne realizované ako jeden funkčný blok, ktorý sa nazýva centrálna procesorová jednotka (CPU) alebo skrátene procesor. Aby mohli tieto bloky pracovať ako počítač, treba zvonku zaviesť a uložiť do pamäte návod na spracovanie – príkazy - program. Bez programu je počítač len „železo“. Program (-y) a dáta (údaje, výsledky ) sa ukladajú do tej istej pamäte - v tvare binárnych čísel. Ak by inštrukcia prikazovala vstup či výstup dát, potom sa táto operácia uskutoční pomocou vstupno-výstupných obvodov (I/O – input/output). Pamäť programu je rozdelená na rovnako veľké bunky, ktoré sú priebežne číslované. Pomocou tohto čísla (adresy) môžeme obsah bunky prečítať, resp. zmeniť. Po sebe nasledujúce príkazy ukladáme do pamäte za sebou. Prístup k nasledujúcej inštrukcii dosiahneme tak, že riadiaca jednotka zvýši – inkrementuje obsah čítača inštrukcií. Priebežné spracovávanie programu sa dá zmeniť pomocou inštrukcií skoku.

Riadiaca jednotka každú inštrukciu dekóduje a potom ju buď sama vykoná alebo vykonaním poverí aritmeticko-logickú jednotku (ALU = arithmetic-logic unit). Z hľadiska ďalšieho výkladu je nutné zmieniť sa o pamäti. Tá je v tejto schéme jediná a nerozlišuje sa ani z hľadiska uloženého obsahu (dáta či program) ani z hľadiska konštrukcie (RAM či ROM).

Von Neumannova architektúra

Ak sa pozeráme na počítač ako na zariadenie spracovávajúce údaje tak, že z pamäte procesor vyberá nielen údaje, ale aj to čo s nimi treba robiť, potom nám bude zrejmé, že všetky tieto informácie sa musia neustále presúvať medzi procesorom (rýchly) a pamäťou (veľká). Toto neustále presúvanie informácií sa v počítačovej literatúre nazýva „von Neumannov bottleneck“.* Prenos medzi procesorom a pamäťou je kritickým miestom von Neumannovej koncepcie. Pojem „von Neumann bottleneck“ zaviedol John Backus v roku 1977. Podľa tejto architektúry sú vyrábané procesory rodiny 80x86

Hardvardská architektúra

Hardvardská koncepcia na rozdiel od von Neumanovej predpokladá existenciu dvoch oddelených pamätí. V prvej sú uložené programy a v druhej sú uložené dáta. Programový kód a dáta sú uložené v oddelene adresovaných oblastiach pamäte. Z tohto dôvodu sa môže prekrývať čítanie a vykonávanie inštrukcii. Priechodnosť inštrukcii a dát možno zvýšiť:

  • minimalizovaním času potrebného na vykonanie inštrukcie;
  • rozdelením jednotlivých inštrukcii na menšie úseky, prekrývanie cyklov.
Hardvardská architektúra

Ako príklad procesora s touto architektúrou možno uviesť 8051, ATMEL AVR.

Rozdelenie počítačov podľa nositeľa informácie:

  • analógové počítače (spojité napätie). Informácia sa spracováva paralelne.
  • Číslicové počítače (binárne čísla). Sériové spracovanie informácie.

Klasifikácia počítačov podľa Flynna (1966 ) *

(V ruštine http://parallel.ru/computers/taxonomy/flynn.html ) http://en.wikipedia.org/wiki/SISD


Ľubovoľný počítač, sériový alebo paralelný vykonáva operácie nad dátami. Prúd inštrukcií (algoritmus)- hovorí počítaču čo má robiť. Prúd údajov (vstupy) je spracovávaný inštrukciami. V závislosti na počte prúdov máme štyri triedy počítačov.

  • Single Instruction Stream, Single Data Stream - SISD.
  • Multiple Instruction Stream, Single Data Stream - MISD.
  • Single Instruction Stream, Multiple Data Stream - SIMD.
  • Multiple Instruction Stream, Multiple Data Stream - MIMD.


SISD Computers

Architektrúra SISD.

Je to štandartný sériový počítač von Neumanovej architektúry. Jedna procesorová jednotka spracováva jeden prúd údajov jedným inštrukčným prúdom.

Príklad: Vypočítať sumu A čísel a1, a2, … aN. Procesor musí pristúpiť k pamäti postupne N-krát a vykonať N-1 súčtov.

Algoritmus pre počítač SISD neobsahuje v sebe žiadne paralelizmy. Takýto počítač má len jeden procesor.


MISD Computers

Architektrúra MISD.

N procesorov, každý s vlastnou riadiacou jednotkou, spoločná pamäť. N inštrukčných prúdov (algoritmus / program) a jeden prúd údajov. Paralelismus je dosiahnutý tak, že procesory v rovnakom čase vykonajú rôzne funkcie s tým istým údajom. MISD počítač je vhodný pre výpočty kde jeden vstup je spracovaný niekoľko krát rôznym spôsobom.

Príklad: Treba zistiť, či Z je prvočíslo. Jednoduché riešenie je také, že vyskúšame všetky možné delenia čísla Z. Predpokladajme, že máme k dispozícii N = Z/2 procesorov. Každý procesor bude mať priradené jedno číslo, ktorým podelí číslo Z. V takomto prípade môžeme na jeden krát zistiť, či je Z prirodzené číslo. Ak je N < Z/2 potom je každému procesoru priradená skupina čísiel a výsledok získame trochu neskôr. Priemyselne sa procesory s touto štruktúrou nevyrábajú.


SIMD Computers

Architektrúra SIMD.

N rovnakých procesorov je riadených tým istým prúdom inštrukcií. Cez každý procesor prechádza iný údajový prúd. T.j. máme N dátových prúdov. Procesory pracujú synchronne, tj. používajú spoločné hodinové signály. V každom kroku všetky procesory vykonajú rovnakú inštrukciu, ale každý s inými údajmi. Vhodné pre vektorové a maticové operácie.

Do tejto kategórie procesorov patria maticové procesory, napr.: ICL DAP (Distributed Array Processor) a vektorové procesory, napr.: CRAY 1 & 2 a CYBER 205. SIMD počítače sú obzvlášť vhodné na riešenie úloh, ktoré majú pravidelnú štruktúru. TJ. rovnaká inštrukcia sa vykoná so skupinou dát.

Príklad: Spočítajme dve matice C = A + B. Nech A a B sú druhého rádu. Majme štyri procesory. Každý nech vykoná tú istú operáciu súčasne – spočítanie dvoch čísiel. C_{11} = A_{11} + B_{11}, C_{12} = A_{12} + B_{12}, C_{21} = A_{21} + B_{21}, C_{22} = A_{22} + B_{22}.

TJ. počítaču so štruktúrou SIMD úloha trvá jeden takt a počítaču SISD štyri takty. Niekedy môžeme požadovať, aby len niektoré procesoru vykonali danú inštrukciu. Takáto informácia môže byť zakódovaná v samotnej inštrukcii a danému procesoru oznámi či má byť aktívny, resp. pasívny v danom okamžiku – čakať na príchod ďalšej inštrukcie.


MIMD Computers

(multiprocessors / multicomputers)

Architektrúra MIMD.

Takýto počítač má N procesorov, N inštrukčných prúdov a N dátových prúdov. Každý procesor je riadený vlastným inštrukčným prúdom a pracuje nad vlastnými údajmi. To znamená, že procesory pracujú asynchronne. Ináč povedané: v rovnakom čase môžu robiť rôzne veci nad rôznymi údajmi. Podobne ako pri SIMD počítačoch si aj MIMD počítače odovzdávajú údaje medzi procesormi pomocou zdielanej pamäte. MIMD počítače so zdielanou pamäťou sa nazývajú multiprocesory, napr.: ENCORE, MULTIMAX, SEQUENT & BALANCE.


Možnosti týchto štyroch štruktúr počítača.