Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako implementujete paralelizmus úrovne inštrukcií?

Paralelizmus na úrovni výučby (ILP) využíva skutočnosť, že viac pokynov v programe je možné vykonať súbežne, aj keď nie sú výslovne špecifikované ako paralelné. Implementuje sa prostredníctvom kombinácie techník hardvéru a kompilátora. Tu je porucha:

Hardvérové ​​techniky:

* Popappelining: Toto je najzákladnejšia technika. Pokyny sa rozdelia na fázy (načítať, dekódovať, vykonať, prístup, prístup k pamäti, zapisovanie) a viac pokynov môže byť súčasne v rôznych fázach potrubia. To zvyšuje priepustnosť inštrukcií, aj keď neznižuje latenciu individuálnych pokynov. Riziká (závislosti údajov, závislosti na kontrole) môžu obmedziť účinnosť potrubia, čo si vyžaduje techniky, ako je presmerovanie a predpoveď pobočky.

* SuperScalar Architecture: Je prítomných viac vykonávacích jednotiek, čo umožňuje vykonávanie viacerých pokynov súčasne v jednom hodinovom cykle. Procesor dynamicky naplánuje pokyny pre rôzne vykonávacie jednotky na základe ich závislosti a dostupnosti. Vyžaduje si to sofistikované hardvéry plánovania výučby.

* veľmi dlhé inštrukcie (vliw): Kompilátor vykonáva rozsiahle statické plánovanie a zabalí viac nezávislých pokynov do jediného, ​​veľmi dlhého inštruktážneho slova. Toto zjednodušuje hardvér v porovnaní so SuperScalar, pretože plánovanie inštrukcií sa vykonáva výlučne v čase kompilácie. Znižuje však flexibilitu a môže viesť k zaútočeniu kódu, ak nie je k dispozícii dostatok nezávislých pokynov.

* Out-of-Order Repation: Pokyny sa vykonávajú v objednávke odlišným od ich programu, pokiaľ sa rešpektujú závislosti na údajoch. Vyžaduje si to zložitý hardvér na sledovanie závislostí a riadenie premenovania registrov (aby sa predišlo konfliktom, keď sú pokyny upravené).

* predpoveď pobočky: Predpovedá výsledok vetiev (podmienečné skoky), aby sa zabránilo zastaveniu potrubia, keď sa vyskytne vetva. Nesprávne predpovede môžu viesť k splachovaniu potrubia, plytvajúcim cyklom. Pokročilé techniky predikcie vetiev používajú sofistikované algoritmy a tabuľky histórie vetiev.

* Špekulatívne vykonávanie: Vykonáva pokyny skôr, ako sú ich závislosti úplne vyriešené (napr. Pred vyriešením vetvy). Ak sú špekulácie nesprávne, výsledky sa vyradia. Táto technika výrazne zlepšuje výkon, ale zvyšuje zložitosť a riziko nesprávnych výsledkov, ak sa nebude opatrne riadiť.

* Analýza toku údajov: Hardvérová sleduje závislosti údajov medzi pokynmi, aby sa zabezpečilo správne objednávanie vykonávania aj pri vykonávaní mimo objednávky.

Techniky kompilátora:

* Plánovanie inštrukcií: Kompilátor zredukuje pokyny na maximalizáciu ILP, pričom zohľadňuje závislosti na údajoch a obmedzenia zdrojov. To je rozhodujúce pre architektúry SuperScalar aj VLIW.

* slučka rozvoj: Replikuje telo slučky viackrát, čím sa zvyšuje počet pokynov dostupných na paralelné vykonanie. To môže zlepšiť ILP, ale môže tiež zväčšiť veľkosť kódu.

* Softvérové ​​potrubie: Prekrýva vykonanie iterácií slučky, podobne ako pri potrubí na úrovni inštrukcií. Toto je obzvlášť účinné pre slučky s významnými závislosťami medzi iteráciami.

* Pridelenie registra: Efektívne priraďuje registre premenným na minimalizáciu útier registra (ukladanie premenných do pamäte) a zlepšenie plánovania výučby.

* predikátové vykonanie: Umožňuje podmienečne vykonávanie pokynov na základe booleovského predikátu. To môže zlepšiť ILP tým, že sa v niektorých prípadoch vyhýba vetvám.

Výzvy:

* Dátové závislosti: Pokyny, ktoré závisia od výsledkov predchádzajúcich pokynov, nie je možné vykonať súčasne. To obmedzuje množstvo ILP, ktoré je možné dosiahnuť.

* Ovládanie závislosti: Pokyny, ktoré sú podmienečne vykonávané (na základe pobočiek), sa nedajú vykonať, kým sa stav pobočky nevyrieši. Predpoveď pobočky to pomáha zmierňovať.

* obmedzenia zdrojov: Obmedzené vykonávacie jednotky a iné hardvérové ​​zdroje môžu obmedziť úroveň paralelizmu, ktorú je možné dosiahnuť.

* zložitosť: Implementácia techník ILP si vyžaduje významnú zložitosť hardvéru a softvéru, zvyšovanie nákladov na dizajn a spotrebu energie.

Stručne povedané, implementácia ILP zahŕňa synergickú súhru medzi sofistikovanými návrhmi hardvéru a pokročilými optimalizáciami kompilátorov. Použité špecifické techniky závisia od cieľovej architektúry a charakteristík vykonaného programu. Moderní procesori využívajú kombináciu týchto techník na dosiahnutie vysokej úrovne paralelizmu na úrovni výučby.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené