Operácie

Čo je to počítač?: Rozdiel medzi revíziami

Z SensorWiki

(Nová stránka: 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ätan...)
 
(Von Neumannova architektúra)
 
(5 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
 
 
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ť:  
 
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
 
* Spracovanie údajov
Riadok 8: Riadok 7:
 
Všetky typy počítačov pracujú na podobnom princípe – podľa tej istej architektúry:   
 
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:
 
'''Von Neumannov počítač'''  (architektúra, niekedy sa tiež nazýva Princetonská) je vytvorený z piatich funkčných blokov:
Riadok 18: Riadok 20:
  
 
Činnosť týchto blokov je riadená tokom inštrukcií, ktoré sa vykonávajú v slučké: FETCH, EXECUTE, DECODE.
 
Č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.  
 
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“.  
+
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.
 
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).
 
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).
  
 +
[[Obrázok:AP_ArchitekturaVonNeumann.png|thumb|center|250px|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“.[http://www.answers.com/topic/von-neumann-architecture#wp-Von_Neumann_bottlen *] Prenos medzi procesorom a pamäťou  je kritickým miestom von Neumannovej koncepcie. Pojem  „von Neumann bottleneck“ zaviedol John Backus v roku 1977.
 
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“.[http://www.answers.com/topic/von-neumann-architecture#wp-Von_Neumann_bottlen *] 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
 
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  
+
[[Obrázok:AP_ArchitekturaHarvard.png|thumb|center|250px|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.
 
  
 +
Ako príklad procesora s touto architektúrou možno uviesť 8051, ATMEL AVR.
  
ko 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 ) [http://www.cs.cf.ac.uk/Parallel/Year2/section2.html *] ===
  
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 )
 
(V ruštine http://parallel.ru/computers/taxonomy/flynn.html )
 
http://en.wikipedia.org/wiki/SISD
 
http://en.wikipedia.org/wiki/SISD
Riadok 49: Riadok 55:
 
Ľ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.
 
Ľ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.  
+
* Single Instruction Stream, Single Data Stream - SISD.  
Multiple Instruction Stream, Single Data Stream : MISD.  
+
* Multiple Instruction Stream, Single Data Stream - MISD.  
Single Instruction Stream, Multiple Data Stream : SIMD.  
+
* Single Instruction Stream, Multiple Data Stream - SIMD.  
Multiple Instruction Stream, Multiple Data Stream : MIMD.  
+
* Multiple Instruction Stream, Multiple Data Stream - MIMD.  
 +
 
  
  
SISD Computers  
+
==== SISD Computers ====
 +
 +
[[Obrázok:AP_ComputerSISD.png|150px|thumb|right|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.
 
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
 
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  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  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
 
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.  TJ. 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 . Nech a  sú druhého rádu. Majme štyri procesory. Každý nech vykoná tú istú operáciu súčasne – spočítanie dvoch čísiel.
 
,  ,  ,    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)
 
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 sú zrejmé z obr. 15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dôležité slová – pojmy
 
Mnohé programy, návody k programom, “README.TXT“ obsahujú okrem iného text:
 
 
 
  
 +
'''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 ====
Mnohí poznáte slovo „Debugger“. Kto z Vás  si to slovo zapísal takto: De BUG ger.
 
Význam slova debugger: Program na vyhľadávanie chýb, na ladenie programov.  Prvý krát sme sa so slovom BUG, v spojitosti s počítačom, stretli 9-teho Septembra v oku 1947. Aiken-ov releový počítač Mark II  mal chybu. Zistilo sa, že medzi kontaktmi relé bola mola. Operátor (ka), Grace Murray Hopper, molu odstránil, napísal správu a pripojil k nej text. ( Viď obr. ) Na lístku je napísané: "First actual case of bug being found."
 
Tento pojem sa objavil oveľa skorej: Používal sa už v časoch Thomas-a Edison-a. Vyjadroval nechcenú činnosť konštruovaného zariadenia. Ak sa na radare  počas II. svetovej vojny objavilo rušenie (náhla zmena napätia), nazvali to „bugs“. Rovnako bol pomenovaný aj problém pri prenose informácie po „drátoch“.
 
 
   
 
   
Základné počítačové chyby sú:
+
[[Obrázok:AP_ComputerMISD.png|150px|thumb|right|Architektrúra MISD.]]
Delenie nulou
+
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.
Pretečenie a podtečenie aritmetických operácií, samozrejme aj ostatné typy pretečenia, napr. pretečenie zásobníka
+
MISD počítač je vhodný pre výpočty kde jeden vstup je spracovaný niekoľko krát rôznym spôsobom.  
Nekonečné slučky
 
Strata presnosti pri konverzii typov
 
...
 
Vážna chyba bez katastrofy sa udiala v roku 1969 pri pristávaní Apollo 11 na Mesiaci. Počítač hlásil chybu „1202 error“, pri pristávani modulu EAGLE. Počítač nestíhal spracovať všetky úlohy v reálnom čase. Armstrong prevzal riadenie a za pomoci informácií z radaru pristál. Niektoré chyby v programoch boli „katastrofou“ a stáli veľa peňazí. Napr. raketa ARIANE 5. Niektoré chyby neboli vecou programu, ale programátorov. Napr. Výpočty neboli v rovnakých jednotkách (metre - palce). Niekedy programátori pozabudli nato, že desať krát nula celá jedna je jedna v dekadickej sústave, ale nie v binárnej sústave (rakety PATRIOT – akumulovaná chyba spôsobila, že raketa Patriot si “myslela”, že to čo treba zostreliť je niekde a ono to bolo o stovky metrov ďalej – výsledkom bola nezmyselná smrť vojakov). Pentia mali problémy s delením v FPP.  Vrcholom bol tzv. Y2K problém. Hodiny RTC počítali nanajvýš roky v rámci storočia. Stačilo pridať bit a vedeli by sme v ktorom sme tisícročí. Dnešné obvody RTC už tento problém nemajú, ale „my“ túto výhodu zrejme nevyužijeme. atď.  Tento problém sa môže teoreticky ešte raz objaviť v roku 2038 v UNIX-ových sytémoch. Unix počítača čas v sekundách. Začiatok je „položený“ na deň 1.január 1970. Čas sa ukladá ako 32 bitové signed integer. T.j. maximálne zapisané číslo je 231 -1 = 2147483647, čo je približne 68 rokov.
 
  
First actual case of bug being found."
+
'''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  
 
+
<math>N = Z/2 </math> 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 <math>N < Z/2 </math>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ú.
 
 
Obr. 17
 
 
 
Elektrónka
 
 
 
Na základe poznámok Thomasa Edisona (objaviteľ žiarovky)  John Ambrose Fleming, vedecký poradca spoločnosti Marconi objavil v roku 1904 diódu. Lee DeForest pridal do diódy elektródu – Mriežku, ktorá umožnila zmenou potenciálu meniť prúd tečúci medzi katódou a anódou. Zrodom elektrónky je rok 1907. Elektrónky sa používajú dodnes. Napr.: kvalitné zosilňovače. Armáda dáva niekedy prednosť elektrónkam pred tranzistormi. Elektrónky, na rozdiel od tranzistorov sú odolné voči elektromagnetickým impulzom vyvolanými výbuchom rádioaktívnych bômb. Tieto tzv. vákuové elektrónky  sa  dnes používajú napr. v mikrovlnných trúbach a po objave tzv. studenej emisie sa zrejme dočkáme času, kedy si zopakujeme pojmy typu: trióda (jedna riadiaca elektróda), tetróda (dve riadiace elektródy) , pentóda (tri riadiace elektródy), ....
 
 
 
Zrod integrovaného obvodu
 
 
 
V roku 1958 sa Jack St. Clair KILBY nastúpil do firmy Texas Instrument do oddelenia „mikromodulov“. Mikromodul bol obvod s diskrétnych prvkov. Montáž celku sa robila s týchto mikromodulov. Táto koncepcia neriešila základný problém: Prepoje medzi súčiastkami,  mikromodulmi, ... . Kilby  ako mladý zamestnanec nedostal dovolenku a na viac nevedel, že sa nepatrí nabúrať koncepciu šefov. TI bola fy vyrábajúca polovodičové diódy a tranzistory, v tej dobe sa odpory a kondenzátory s polovodičových materiálov nevyrábali.  Kilby dostal nápad, všetko toto postaviť na jednom polovodičovom materiáli. Keď si tento nápad osvojili aj šéfovia, použili germánium a postavili prvý Integrated Circuit (IC) . (Rozmery boli na dnešnú dobu uctihodné: cca 1cm2. Na prvých vzorkách boli ešte prepoje robené navarenými vodičmi). Funkciou to bol oscilátor. Fy podala v roku 1959 prihlášku patentu.
 
Než jej bol patent udelený, udialo sa nasledovné. Niekedy sa tomu hovorí objektívne príčiny. Všetko už bolo pre daný objav známe, tak to bolo treba len „urobiť“. V tom istom čase rovnaký nápad dostal aj Robert N. NOYCE zamestnanec fy Fairchild Semiconductor. Použil tzv. planárnu technológiu na výrobu IC. Výhodou planárnej technológie bola hlavne nízka cena pri hromadnej výrobe IC. Patent na IC, ale už bol podaný. Z tohto dôvodu museli zapracovať iní odborníci, ktorí vymysleli takú prihlášku, že neboli dotknuté práva prihlášky fy TI. V roku 1961 bol udelený Noyce-mu patent. T.j. oficiálne vznikol IC. Kilby dostal patent až v roku 1964. Nakoniec sa fy dohodli. Kilby dostal v roku 2000  za objav IC Nobelovú cenu za fyziku (Noice zomrel skorej).      
 
  
  
  
 +
==== SIMD Computers ====
 
   
 
   
 +
[[Obrázok:AP_ComputerSIMD.png|150px|thumb|right|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.
  
V roku 1951  Jay W, Forrester objavil prvú pamäť typu RAM (Random Access Memory) postavenú s magnetických jadierok.
+
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 <math>C = A + B</math>. 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.
 +
<math>C_{11} = A_{11} + B_{11}</math>, 
 +
<math>C_{12} = A_{12} + B_{12}</math>, 
 +
<math>C_{21} = A_{21} + B_{21}</math>, 
 +
<math>C_{22} = A_{22} + B_{22}</math>.
  
 +
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)
  
 +
[[Obrázok:AP_ComputerMIMD.png|150px|thumb|right|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.
  
  
  
 +
[[Obrázok:AP_ComputersSMISMD.png|250px|thumb|center|Možnosti týchto štyroch štruktúr počítača.]]
  
  
Literatúra:
 
  
1)Milan Jelšina. Architektúry počítačových systémov, ELFA Košice 2002
+
** Predošlá kapitola: [[Elektronické počítače‎]]
2)William Stalling. Computer organization and Architecture, Principles of Structure and Function, New York: Macmillan
+
** Ďalšia kapitola: [[Dôležité pojmy]]
 +
** [[Architektúra počítačov|Obsah]]

Aktuálna revízia z 13:20, 13. február 2009

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.