Potrubie: architektúra, výhody a nevýhody

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Zvyšovanie rýchlosti vykonávania programu následne zvyšuje rýchlosť programu procesor. Existuje mnoho spôsobov, ako zvýšiť hardvérovú implementáciu, ako aj softvérovú architektúru, ako zvýšiť rýchlosť vykonania. Zistilo sa, že súčasným vykonávaním pokynov možno znížiť čas potrebný na vykonanie. Koncept paralelizmu v programovanie bolo navrhnuté. Podľa toho môže byť vykonaných viac ako jedna inštrukcia za taktovací cyklus. Tento koncept môže programátor praktizovať pomocou rôznych techník ako napr Pipeline, viac vykonávacích jednotiek a viac jadier . Spomedzi všetkých týchto paralelných metód sa najčastejšie praktizuje pipeline. Ako sa dá vykonať inštrukcia v metóde pipeline? Ako zvyšuje rýchlosť vykonávania?

Čo je to Pipelining?

Aby sme pochopili koncept pipeline, pozrime sa na koreňovú úroveň vykonávania programu. Inštrukcia je najmenší paket vykonania programu. Každá inštrukcia obsahuje jednu alebo viac operácií. Jednoduché skalárne procesory vykonávajú jednu alebo viac inštrukcií za taktovací cyklus, pričom každá inštrukcia obsahuje iba jednu operáciu. Pokyny sa vykonávajú ako postupnosť fáz, aby sa dosiahli očakávané výsledky. Táto postupnosť je uvedená nižšie




Postupnosť pokynov

Postupnosť pokynov

  • IF: Načíta inštrukciu do registra inštrukcií.
  • ID: Instruction Decode, dekóduje inštrukciu pre operačný kód.
  • AG: Generátor adries, generuje adresu.
  • DF: Data Fetch, načíta operandy do dátového registra.
  • EX: Execution, vykoná zadanú operáciu.
  • WB: Odpísať, zapíše výsledok späť na registra.

Nie všetky pokyny vyžadujú všetky vyššie uvedené kroky, ale väčšina to vyžaduje. Tieto kroky používajú rôzne hardvérové ​​funkcie. Pri pipeline sú tieto rôzne fázy vykonávané súčasne. V potrubí sú tieto fázy považované za nezávislé medzi rôznymi operáciami a môžu sa prekrývať. Môže byť teda vykonaných viac operácií súčasne, pričom každá operácia je vo svojej vlastnej nezávislej fáze.



Pokyny Pipelining

Pozrime sa, ako sa pokyny spracovávajú v pipeline. To je ľahko pochopiteľné na nasledujúcom diagrame.

Pokyny Pipelining

Pokyny Pipelining

Predpokladajme, že pokyny sú nezávislé. V jednoduchom pipeline procesore je v danom čase v každej fáze iba jedna operácia. Počiatočná fáza je fáza IF. Takže pri prvom hodinovom cykle sa získa jedna operácia. Keď príde ďalší hodinový impulz, prvá operácia prejde do fázy ID a fáza IF bude prázdna. Teraz je táto prázdna fáza pridelená ďalšej operácii. Takže počas druhého hodinového impulzu je prvá operácia vo fáze ID a druhá operácia je vo fáze IF.

Pre tretí cyklus bude prvá prevádzka vo fáze AG, druhá prevádzka bude vo fáze ID a tretia prevádzka bude vo fáze IF. Týmto spôsobom sa inštrukcie vykonávajú súčasne a po šiestich cykloch procesor vydá úplne vykonanú inštrukciu za taktovací cyklus.


Vykonala sa táto inštrukcia postupne, spočiatku musí prvá inštrukcia prejsť všetkými fázami, potom sa načíta ďalšia inštrukcia? Takže na vykonanie každej inštrukcie by procesor vyžadoval šesť taktovacích cyklov. Ale v zreťazenom procesore, keď sa vykonávanie inštrukcií uskutočňuje súčasne, vyžaduje iba počiatočná inštrukcia šesť cyklov a všetky zostávajúce pokyny sa vykonávajú ako jeden v každom cykle, čím sa skracuje čas vykonávania a zvyšuje rýchlosť procesora.

Potrubná architektúra

Paralelnosť je možné dosiahnuť technikami hardvéru, kompilátora a softvéru. Využiť koncepciu potrubných rozvodov v počítačová architektúra veľa procesorových jednotiek je vzájomne prepojených a súbežne fungujú. V architektúre zreťazeného procesora existujú samostatné spracovateľské jednotky poskytované pre celé čísla a pokyny s pohyblivou rádovou čiarkou. Zatiaľ čo v sekvenčnej architektúre je poskytnutá jedna funkčná jednotka.

Zreťazená procesorová jednotka

Zreťazená procesorová jednotka

Pri statickom pipeline by mal procesor prejsť inštrukciou cez všetky fázy potrubia bez ohľadu na požiadavku inštrukcie. V procesore dynamického potrubia môže inštrukcia obísť fázy v závislosti od svojej požiadavky, musí sa však pohybovať v postupnom poradí. V zložitom dynamickom procesore potrubia môže inštrukcia obísť fázy, ako aj zvoliť fázy mimo poradia.

Potrubovanie v procesoroch RISC

Najpopulárnejší Architektúra RISC Procesor ARM sleduje 3-stupňové a 5-stupňové pipeline. V trojstupňovom pipeline sú fázy: Fetch, Decode a Execute. Toto pipeline má latenciu 3 cyklov, pretože dokončenie individuálnej inštrukcie trvá 3 hodiny.

ARM 3 etapy potrubia

ARM 3 etapy potrubia

Pre správnu implementáciu pipeline by sa mala aktualizovať aj hardvérová architektúra. Hardvér pre trojstupňové potrubie obsahuje banku registrov, ALU, radenie valcov, generátor adries, inkrementér, dekodér inštrukcií a dátové registre.

ARM 3 Etapová pipeliningová dátová cesta

ARM 3 Etapová pipeliningová dátová cesta

V 5 etapách sú zreťazené fázy: Fetch, Decode, Execute, Buffer / data a Write back.

Nebezpečenstvo potrubia

V typickom počítačovom programe sú okrem jednoduchých pokynov aj inštrukcie vetvenia, operácie prerušenia, pokyny na čítanie a zápis. Potrubie nie je vhodné pre všetky druhy pokynov. Keď sa vykonajú niektoré pokyny v potrubí, môžu potrubie zastaviť alebo úplne prepláchnuť. Tento typ problémov spôsobených počas potrubia sa nazýva Pipelining Hazards.

Vo väčšine počítačových programov je výsledok jednej inštrukcie použitý ako operand druhou inštrukciou. Keď sa také inštrukcie vykonávajú v pipeline, dôjde k rozbitiu, pretože výsledok prvej inštrukcie nie je k dispozícii, keď druhá inštrukcia začne zhromažďovať operandy. Inštrukcia dva sa preto musí pozastaviť, kým sa nevykoná inštrukcia jedna a nevygeneruje sa výsledok. Tento typ nebezpečenstva sa nazýva Nebezpečenstvo pipeline potrubia Čítať - po zápise.

Čítať po zápise Nebezpečenstvo pipeline

Čítať po zápise Nebezpečenstvo pipeline

Vykonanie pokynov vetvy tiež spôsobuje nebezpečenstvo potrubia. Pokyny pobočky počas vykonávania v potrubí ovplyvňuje fázy načítania ďalších pokynov.

Pipeline potrubné správanie

Pipeline potrubné správanie

Výhody potrubia

  • Zvyšuje sa priepustnosť pokynov.
  • Zvýšenie počtu stupňov potrubia zvyšuje počet súčasne vykonaných pokynov.
  • Pri použití potrubia je možné navrhnúť rýchlejšiu ALU.
  • Prevedené procesory pracujú na vyšších taktovacích frekvenciách ako RAM.
  • Pipeline zvyšuje celkový výkon procesora.

Nevýhody potrubného vedenia

  • Návrh zreťazeného procesora je zložitý.
  • Zvyšuje sa latencia pokynov v zreťazených procesoroch.
  • Je ťažké predpovedať priepustnosť zreťazeného procesora.
  • Čím dlhšie je potrubie, tým horší je problém rizika pre pokyny pre odbočky.

Pipeline má výhody pre všetky pokyny, ktoré sa riadia podobnou postupnosťou krokov na vykonanie. Procesory, ktoré majú zložité pokyny, kde sa každá inštrukcia chová odlišne od ostatných, je ťažké pripraviť. Procesory majú primerané nástroje s 3 alebo 5 stupňami potrubia, pretože so zvyšujúcou sa hĺbkou potrubia sa zvyšujú aj riziká s ním spojené. Pomenujete niektoré zreťazené procesory s fázou ich prípravy?