Jediný instrukční proud |
Vícenásobné toky instrukcí | |
---|---|---|
Jeden datový tok (jediná data) |
SISD (OKOD) |
MISD (MISD) |
Více datových toků |
SIMD (JMD) |
MIMD (MKMD) |
Obecnou klasifikaci architektur počítačů založenou na přítomnosti paralelismu v příkazových a datových tocích navrhl Michael Flynn v roce 1966 [1] a rozšířil v roce 1972 [2] . Celá škála počítačových architektur v této taxonomii je redukována na čtyři třídy:
Typickými představiteli SIMD jsou vektorové architektury. Řada výzkumníků zařazuje dopravníkové počítače do třídy MISD , ale toto nenašlo konečné uznání, takže můžeme předpokládat, že skutečné systémy - zástupci této třídy neexistují. Třída MIMD zahrnuje víceprocesorové systémy, kde procesory zpracovávají více datových toků.
Poměr konkrétních strojů ke konkrétní třídě velmi závisí na úhlu pohledu výzkumníka. Dopravníkové stroje lze tedy přiřadit do třídy SISD (potrubí - jeden procesor) a do třídy SIMD (vektorový datový tok s potrubním procesorem) a do třídy MISD (mnoho potrubních procesorů zpracovává jeden datový tok postupně), a do třídy MIMD - jako provádění sekvence různých příkazů (operace stupňů potrubí) na vícenásobném skalárním datovém toku (vektoru).
Existují dva typy strojů (procesorů), které provádějí několik instrukcí v jednom strojovém cyklu:
Superskalární stroje mohou provádět proměnný počet instrukcí za cyklus hodin a jejich pipelines může být naplánováno buď staticky kompilátorem, nebo dynamickým optimalizačním hardwarem. Superskalární stroje využívají paralelismus na úrovni instrukcí odesíláním více instrukcí z normálního toku instrukcí do více funkčních jednotek.
K odstranění omezení sekvenčního provádění příkazů navíc tyto stroje využívají mechanismy vydávání příkazů mimo pořadí a dokončování příkazů mimo pořadí ( anglicky OoO, Out of Order provádění ), predikce větví ( anglicky. Branch forecast ) , cache cílových adres přechodů a podmíněných (předpokladem) prováděcích příkazů.
Na rozdíl od superskalárních strojů provádí stroj VLIW pevný počet instrukcí na strojový cyklus, které jsou buď formátovány jako jedna velká instrukce, nebo jako dávka instrukcí s pevným formátem. Plánování stroje VLIW vždy provádí kompilátor. V typickém superskalárním stroji může hardware vydat jednu až osm instrukcí za cyklus hodin. Typicky musí být tyto instrukce nezávislé a musí podléhat určitým omezením, jako je, že nelze vydat více než jednu instrukci pro přístup do paměti za cyklus hodin. Pokud je některý příkaz v proudu spustitelných příkazů logicky závislý nebo nesplňuje kritéria pro vydání, budou ke spuštění vydány pouze příkazy předcházející danému příkazu. Proto je rychlost vydávání instrukcí v superskalárních strojích proměnlivá. To je odlišuje od strojů VLIW, kde je kompilátor (a potažmo programátor kompilátoru) výhradně zodpovědný za generování dávky instrukcí, které lze vydávat současně, a hardware dynamicky nerozhoduje o vydávání více instrukcí.
Použití VLIW vede ve většině případů k rychlému zaplnění malého množství paměti na čipu příkazy NOP (no operation), které jsou určeny pro ta zařízení, která nebudou zapojena do aktuálního cyklu. Ve stávajících architekturách VLIW byla nalezena velká chyba, která byla eliminována rozdělením dlouhých slov na menší, která jsou odesílána do každého zařízení paralelně. Zpracování mnoha instrukcí nezávislými zařízeními současně je hlavním rysem architektury superskalárního procesoru.
Klasifikace strojů MIMD architektury:
Třída zřetězených architektur (podle Hockneyho) zahrnuje stroje s jednou zřetězenou procesorovou jednotkou pracující v režimu sdílení času pro samostatná vlákna. Stroje, ve kterých je každé vlákno zpracováváno vlastním zařízením, Hockney nazývá přepínatelné. Třída přepínaných strojů zahrnuje stroje, ve kterých může každý procesor komunikovat s každým, realizované pomocí přepínačů - strojů s distribuovanou pamětí. Pokud je paměť sdíleným zdrojem, stroj se nazývá sdílená paměť. Při zvažování strojů se síťovou strukturou Hockney věřil, že všechny mají distribuovanou paměť. Další klasifikaci provedl v souladu s topologií sítě.
V roce 1972 Feng (T. Feng) navrhl klasifikovat výpočetní systémy na základě dvou jednoduchých charakteristik. První je počet n bitů ve strojovém slově, které jsou zpracovávány paralelně při provádění strojových instrukcí. Téměř ve všech moderních počítačích je toto číslo stejné jako délka strojového slova . Druhá charakteristika je rovna počtu slov m zpracovaných současně tímto CS. S mírnou změnou terminologie lze fungování CS reprezentovat jako paralelní zpracování n bitových vrstev, na každé z nich je nezávisle převedeno m bitů. Každý výpočetní systém lze popsat dvojicí čísel (n, m). Součin P = nxm určuje integrální charakteristiku potenciálu paralelismu architektury, kterou Feng nazval maximální stupeň paralelismu CS.
Klasifikace je založena na výslovném popisu možností paralelního a zřetězového zpracování informací počítačovým systémem V. Hendlera. Navrhovaná klasifikace je založena na rozdílu mezi třemi úrovněmi zpracování dat během provádění programu:
Takové nivelační schéma předpokládá, že počítačový systém obsahuje určitý počet procesorů, z nichž každý má svou vlastní řídicí jednotku. Pokud nějakou dobu neuvažujeme o možnosti zřetězení, pak počet řídicích zařízení k, počet aritmetických logických jednotek d v každém řídicím zařízení a počet elementárních logických obvodů w v každé ALU budou tvořit trojici pro popis tento počítačový systém C: t(C) = (k, d, w).
V roce 1988 navrhl L. Snyder nový přístup k popisu architektur paralelních výpočetních systémů, které spadají do třídy SIMD Flynnovy systematiky. Hlavní myšlenkou je zdůraznit fáze vzorkování a přímého provádění v příkazech a datových tocích.
Klasifikace Skillicorn (1989) byla dalším rozšířením Flynnovy klasifikace. Architektura jakéhokoli počítače v klasifikaci Skillicorn je považována za kombinaci čtyř abstraktních komponent: instrukční procesory (Instruction Processor - příkazový interpret, nemusí být přítomen v systému), datové procesory (Data Processor - převodník dat), hierarchie paměti (Instruction Paměť, Datová paměť - programová paměť a data), přepínače (připojování procesorů a paměti). Přepínače jsou čtyř typů - "1-1" (připojuje pár zařízení), "nn" (propojuje každé zařízení z jedné sady zařízení s odpovídajícím zařízením z jiné sady, to znamená, že fixuje párové připojení), "1 -n" (přepínač spojuje jedno vyhrazené zařízení se všemi funkčními zařízeními z nějaké sady), "nxn" (spojení libovolného zařízení jedné sady s libovolným zařízením jiné sady). Klasifikace Skillicornu je založena na následujících osmi charakteristikách:
procesorů | Technologie digitálních|||||||||
---|---|---|---|---|---|---|---|---|---|
Architektura | |||||||||
Architektura instrukční sady | |||||||||
strojové slovo | |||||||||
Rovnoběžnost |
| ||||||||
Implementace | |||||||||
Komponenty | |||||||||
Řízení spotřeby |