Počítače s netradičním řízením
Netradiční způsoby řízení opouštějí model navržený von Neumannem, to je model řízení pomocí instrukcí. Je buď opuštěn požadavek řazení instrukcí za sebou či se řízení pomocí instrukcí opouští úplně. Přestože se na těchto systémech intenzivně pracuje na mnoha pracovištích, jsou výsledky jen ve fázi pokusů. Nejblíže komerčnímu využití jsou tyto systémy : neuronové počítače počítače řízené tokem dat počítače řízené tokem požadavků
Neuronové počítače Technologie VLSI umožnila konstruktérům napodobovat některé funkce mozku. Nejjednodušší část mozku je neuron, který tyto obvody svými vlastnostmi obvody napodobují. Jednotlivé obvody se sestavují do systémů nazývaných neuronové počítače.
Byla snaha napodobit skutečný neuron vstupními vodiči, které mají různou váhu působení na neuron jehož schéma je na obrázku. Na vstupy neuronu jsou přiváděny signály x 1 až x n, kde každému vstupu x i je přiřazena váha v i, která říká jakou silou je tento vodič schopen ovlivňovat stav neuronu.
Hodnoty vah mohou být jak kladné, tak i záporné. Záporné váhy potlačují činnost neuronu. Výstupem je hodnota signálu y. Pro neuron je dále definována prahová hodnota p určující, kdy je celkové působení všech vstupů signálů dostatečně silné, aby ovlivnilo stav neuronu. Toto ovlivňování působí jako prahová hodnota a neuron funguje jako prahový logický člen. Jen je-li prahová hodnota překročena, je stav neuronu ovlivněn. Neuron je schopen mimo zpracování vstupních hodnot si zapamatovat i výstupní hodnotu.
Neuronové počítače vznikají zapojením jednotlivých neuronů do sítě, což je vlastně určité množství neuronů propojené vodivými spoji. Spoje připojené ke vstupům neuronu pak dovolují ovlivňovat sousední neurony připojené k jeho výstupu. Neuronová síť ve výsledku pracuje jako paralelní dynamický systém.
Neurony lze rozdělit podle toho pro jakou činnost jsou určeny : neurony určené pro vstup neurony určené pro výstup neurony skryté (nejsou ani vstupní ani výstupní) Spoje mezi neurony mohou být : jednosměrné obousměrné
Podle spojů se rozlišují jednosměrné či obousměrné sítě. V jednosměrných sítích je tok signálu od vstupních neuronů k neuronům výstupním. Při propojení všech neuronů sítě se hovoří o úplné síti. V opačném případě o síti neúplné. Modely úplných sítí se dále dělí na : vrstvové sítě sítě s lokálním propojením
Vrstvové sítě Vrstvové sítě, které jsou realizovány do vzájemně uspořádaných vrstev (viz následující obrázek). Uspořádání může být takové, že neurony jsou : v obousměrných sítích propojeny v obou sousedních vrstvách v jednosměrných sítích propojeny jen s neurony v jedné sousední vrstvě a to buď se všemi neurony, nebo jen některými
Sítě s lokálním propojením Sítě s lokálním propojením, kde je každý neuron propojen jen s několika jeho sousedy U vícevrstvých neuronových sítí bývá prvá vrstva jako vrstva vstupní, poslední vrstva jako vrstva výstupní a všechny ostatní vrstvy jsou vrstvy skryté.
Vícevrstvá neuronová síť
Neuronové sítě mají řadu kladných a též některé záporné vlastnosti. Počítač realizovaný pomocí sítě není třeba programovat, protože je sám se schopen učit podle příkladů. Sítě jsou univerzální ale jejich velkou nevýhodou je nesmírné množství spojů. Nevýhoda je však kompenzována tím, že při výpadku neuronu pracuje dál. Má schopnost abstrakce a umožňuje tak reagovat na množinu vstupních dat a ne jen na jednotlivé prvky z této množiny.
Neuronové počítače umožňují řešit velmi obtížné problémy, které jsou těžce programovatelné na klasických počítačích. Jejich oblast použití je : schopnost samočinného učení místo programování schopnost rozpoznávání závislosti na množině dat vyhledávání shody nebo podobnosti dat v případě, že neexistuje shoda korekce a rekonstrukce dat vstupujících do počítače atd.
Neuronové počítače pracují ve 2 fázích. Ve fázi adaptivní se učí a ve fázi aktivní provádějí požadovanou naučenou funkci. Pracují tak, že na základě podnětů na vstupních neuronech vznikne nerovnovážný stav neuronové sítě. Hodnoty, které jsou v neuronech zapamatovány se pak mění díky vazbě na ostatní neurony a to tak dlouho, až nastane rovnovážný stav a na výstupech se objeví požadovaná odezva sítě na dané podněty.
Obvodové řešení může být jak analogové, tak i číslicové. V případě analogového řešení je na jednom čipu umístěno až několik set neuronů. V případě číslicového řešení je to o řád méně a obvody jsou pomalejší.
Počítače řízené tokem dat Tyto počítače vznikly ze snahy odstranit prostoje vznikající u paralelně pracujících procesorů, kde jejich činnost je určována pořadím zapsaných instrukcí v programu. Výhodou počítače řízeného tokem dat (Dataflow computer) se jeví myšlenka nezpracovávat data v pevně stanoveném pořadí, ale volba provedení instrukce bude v okamžiku, kdy jsou k dispozici všechny operandy potřebné pro její provedení. To je v nejvhodnějším okamžiku s ohledem na události nastávající při výpočtu. Tyto počítače nemají například čítač instrukcí, neb jsou tyto vybírány na rozdílném principu.
Rozdílný princip se projevuje pro uživatele hlavně při úplně odlišném programování. To si vysvětlíme na příkladu, kdy je třeba vypočítat hodnotu výrazu y = a / b + c * d V klasickém jednoprocesorovém počítači se provede nejprve součin a poté podíl (či naopak) a naposledy konečný součet výsledku. Pokud by počítač řízený tokem dat byl též jednoprocesorový, pracoval by obdobně. Při paralelním zpracování se provádí výpočet v tom pořadí jak přijdou operandy sčítání však až nakonec.
Pro tuto činnost lze vytvořit graf datových závislostí jednotlivých operací, ve kterém se vyznačí operace vytvářející hodnotu pro použití v další operaci. Jedná se o orientovaný graf, kde každý vrchol realizuje jednu operaci a každá orientovaná spojnice předání určité operace do druhé.
Graf datové závislosti ukazuje, jak musí být operace řazeny, to je které mohou být prováděny současně a které následně. Pokud by byl graf doplněn o dynamické vlastnosti (například index), pak je ho možno považovat za zápis programu pro takovýto počítač. Z výše uvedeného pak vyplývá, že schází synchronizace a operace pokud má operandy probíhá nezávisle na ostatních operacích. Protože zde není žádná synchronizace, je třeba zabezpečit pro každou operaci signalizaci,že jsou k dispozici potřebné operandy a že proběhla operace.
Systémy řízené tokem dat je možno použít také pro obecné výpočty s podmíněnými skoky, cykly, volání podprogramu a podobně. Pro tuto činnost byl vytvořen formální aparát obdobný symbolům používaným v běžných vývojových diagramech. Grafický zápis programu je přehledný a názorný, ale nedá se takto vložit do počítače. K tomu slouží vyšší speciální programovací jazyky. Nejznámější z nich jsou IDL (Irvine Dataflow Language) a VAL (Value Algorithmic Language). Svou strukturou jsou nesmírně odlišné od klasických programovacích jazyků.
Jejich vlastnosti lze obecně definovat : operace probíhají lokálně při neexistenci daleko sahající závislosti dat řazení instrukcí je jen v takové míře, jak to vyžaduje jejich datová závislost je splněna podmínka jen jediného přiřazení hodnoty každé proměnné iterativní výpočty jsou v paralelním tvaru volání procedur není závislé na historii Tyto počítače je možno rozdělit do 2 hlavních skupin : jednoúčelové univerzální
Jednoúčelové počítače jsou podobné funkcí a způsobem řízení počítačům analogovým a jsou jednodušší než počítače univerzální. Jsou určeny k provádění jednoho výpočtu, který nelze měnit - lze měnit jen vstupní data. Univerzální počítače řízené tokem dat jsou určeny pro řešení libovolných úloh, převážně však pro aritmetické úlohy. Tyto počítače se dále dělí na : statické dynamické
Statický počítač nerozlišuje příslušnost operandů k různým úlohám. V dynamickém počítači jsou operandy vybaveny příznakem, že náleží k určité úloze a lze v nich zpracovávat několik souborů bez nebezpečí promíchání operandů a tím i chyb. Problémem, který se musí sledovat je jeho úplné využití, protože jeho některé části mohou být přetíženy a bude u nich docházet k hromadění požadavků. Na druhé straně mohou být jiné části využity jen velmi málo.
Konstrukční řešení počítače řízeného tokem dat je složité. Je značně obtížné provádění operací I/O, ladění programů a problémy s provozem těchto počítačů. Dále tento počítač potřebuje velice rozsáhlou paměť programu pro daný způsob programování a proto není schopen zpracovávat velká pole dat.
Počítače řízené tokem požadavků Problémy s plným využitím jednotlivých procesorů a tím i ne zcela dostatečný nárůst výkonnosti počítačů řízené tokem dat přivedlo vývojové pracovníky na myšlenku vyvinout počítač, který bude řízen tokem požadavků. To znamená, že výpočet bude proveden v tom okamžiku, kdy je potřebný pro další zpracování.
Při tomto způsobu práce se jednotlivé části nahrazují jejich hodnotou - příkladně je-li zapsán výraz (3 + 4) je nahrazen nebo-li redukován číslem 7. Původní výrazy se redukují tak dlouho, až se na výstupu objeví konečný výsledek. Proto se tyto počítače nazývají redukční počítače.
Počítač je sestaven ve formě binárního stromu buněk. Jeho nejspodnější buňky se nazývají listy (značí se L), do kterých se umísťují buď symboly jazyka nebo numerické hodnoty. Další buňky použité pro sestavení stromu jsou označovány T (stromové uzly) a jsou realizovány jednoduchými procesory, které mají lokální paměť s malou kapacitou.
Na jeden čip se obvykle vejde jeden podstrom. Zpracování programu probíhá v cyklech. V každém cyklu se provádí redukce pole buněk za spolupráce se stromovými uzly. Pro výstup se používá speciálních procesorů. Výhodou počítačů řízených tokem požadavků je, že nepotřebují operace rozhodování, nevýhodou pak nižší rychlost daná vlivem šíření požadavků proti směru šíření dat. Vlastnosti takovéhoto počítače : má pravidelnou strukturu složenou z elementárních buněk má paralelní strukturu program je ve speciálním funkčním jazyce