Csővezeték: építészet, előnyök és hátrányok

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





A program végrehajtásának sebességének növelése ennek következtében növeli a a processzor. Számos módszert találtak ki, mind a hardveres megvalósítást, mind a szoftver architektúrát a végrehajtás sebességének növelésére. Megfigyelték, hogy az utasítások egyidejű végrehajtásával csökkenthető a végrehajtáshoz szükséges idő. A párhuzamosság fogalma programozás javaslatot tettek. Eszerint órajel-ciklusonként több utasítás is végrehajtható. Ezt a koncepciót egy programozó gyakorolhatja különféle technikákon keresztül, mint pl Csővezeték, Több végrehajtási egység és több mag . Mindezen párhuzamossági módszerek közül a pipeline-et szokták gyakorolni. Tehát hogyan lehet végrehajtani egy utasítást a pipelining módszerben? Hogyan növeli a végrehajtás sebességét?

Mi az a csővezeték?

A pipelining koncepciójának megértéséhez nézzük meg a program végrehajtásának gyökérszintjét. Az utasítás az egyik program legkisebb végrehajtási csomagja. Minden utasítás egy vagy több műveletet tartalmaz. Az egyszerű skalárprocesszorok órajelciklusonként egy vagy több utasítást hajtanak végre, mindegyik utasítás csak egy műveletet tartalmaz. Az utasításokat fázisok sorozataként hajtják végre a várt eredmények elérése érdekében. Ezt a sorrendet az alábbiakban adjuk meg




Utasítás végrehajtási sorrend

Utasítás végrehajtási sorrend

  • IF: Behozza az utasítást az utasításregiszterbe.
  • ID: Instruction Decode, dekódolja az opcode utasításait.
  • AG: Címgenerátor, generálja a címet.
  • DF: Data Fetch, lekéri az operandusokat az adatregiszterbe.
  • EX: Végrehajtás, végrehajtja a megadott műveletet.
  • WB: Írjon vissza, írja vissza az eredményt a A regisztráció.

Nem minden utasítás igényli a fenti lépéseket, de a legtöbbnek igen. Ezek a lépések különböző hardverfunkciókat használnak. A csővezeték-előállítás során ezeket a különböző fázisokat egyidejűleg hajtják végre. A csővezeték gyártásakor ezeket a szakaszokat függetlennek tekintik a különböző műveletek között, és átfedhetők. Így egyszerre több művelet hajtható végre, mindegyik művelet a maga független szakaszában van.



Utasítás csővezeték

Nézzük meg az utasítások feldolgozásának módját a csővezetékben. Ezt az alábbi ábra könnyen megértheti.

Utasítás csővezeték

Utasítás csővezeték

Tegyük fel, hogy az utasítások függetlenek. Az egyszerű csővezeték-feldolgozóban egy adott időpontban minden szakaszban csak egy művelet van. A kezdeti fázis az IF fázis. Tehát az első óraciklusban egy művelet érkezik. Amikor megérkezik a következő óraimpulzus, az első művelet az ID fázisba megy, az IF fázist üresen hagyva. Ez az üres fázis a következő művelethez van rendelve. Tehát a második óra impulzus alatt az első művelet az ID fázisban van, a második művelet pedig az IF fázisban van.

A harmadik ciklusra az első művelet AG fázisban, a második művelet az ID fázisban lesz, a harmadik művelet pedig az IF fázisban. Ily módon az utasításokat egyidejűleg hajtják végre, és hat ciklus után a processzor egy teljesen végrehajtott utasítást ad ki ciklusonként.


Végrehajtották-e ezt az utasítást egymás után, kezdetben az első utasításnak át kell haladnia az összes fázist, majd a következő utasítás beolvasásra kerül? Tehát az egyes utasítások végrehajtásához a processzornak hat órajelre van szüksége. De egy csővezetékes processzorban, mivel az utasítások végrehajtása egyidejűleg zajlik, csak a kezdeti utasításhoz van szükség hat ciklusra, és az összes többi utasítást egy ciklusonként hajtják végre, ezáltal csökkentve a végrehajtás idejét és növelve a processzor sebességét.

Csővezeték építészet

Párhuzamosság érhető el hardveres, fordítói és szoftveres technikákkal. A csővezeték fogalmának kiaknázása számítógép architektúra sok processzor egység összekapcsolódik és egyidejűleg működik. A csővezetékes processzorarchitektúrában külön feldolgozó egységek vannak megadva egész számokhoz és lebegőpontos utasításokhoz. Míg a szekvenciális architektúrában egyetlen funkcionális egység biztosított.

Csővezetékes processzor

Csővezetékes processzor

A statikus csővezetékkezelés során a processzornak át kell vezetnie az utasítást a csővezeték minden fázisán, függetlenül az utasítás követelményétől. Dinamikus csővezeték-processzorban az utasítás a követelményektől függően megkerülheti a fázisokat, de sorrendben kell haladnia. Egy komplex dinamikus csővezeték-processzorban az utasítás megkerülheti a fázisokat, valamint a fázisokat soron kívül választhatja ki.

Csővezeték a RISC processzorokban

A legnépszerűbb RISC architektúra Az ARM processzor 3 és 5 fokozatú csővezetéket követ. A háromlépcsős folyamatban a szakaszok a következők: Fetch, Decode és Execute. Ez a csővezeték 3 ciklus késleltetéssel rendelkezik, mivel egy egyedi utasítás elvégzése 3 óra ciklust vesz igénybe.

ARM 3 fokozatú csővezeték

ARM 3 fokozatú csővezeték

A csővezeték megfelelő megvalósításához a hardver architektúrát is frissíteni kell. A háromlépcsős vezetékhöz szükséges hardver tartalmaz egy regiszterbankot, ALU-t, hordóváltót, címgenerátort, inkrementert, utasításdekódert és adatregisztereket.

ARM 3 szakaszos csővezeték-adatútvonal

ARM 3 szakaszos csővezeték-adatútvonal

5 lépésben a szakaszok a következők: Fetch, Decode, Execute, Buffer / data és Write back.

Csővezeték veszélyei

Egy tipikus számítógépes programban az egyszerű utasítások mellett vannak ágazati utasítások, a műveletek megszakítása, az utasítások olvasása és írása. A csővezeték nem alkalmas mindenféle utasításra. Amikor néhány utasítást végrehajtanak a csővezetékben, leállíthatják vagy teljesen átöblíthetik a csővezetéket. Az ilyen típusú problémákat csővezetékek gyártása során csővezeték-veszélyeknek nevezzük.

A legtöbb számítógépes programban az egyik utasítás eredményét operandusként használja a másik utasítás. Amikor az ilyen utasításokat a csővezetékben hajtják végre, meghibásodás következik be, mivel az első utasítás eredménye nem áll rendelkezésre, amikor a második utasítás elkezd operandusokat gyűjteni. Tehát a második utasításnak le kell állnia, amíg az egyik utasítást végrehajtják, és az eredmény létrejön. Ezt a fajta veszélyt Read-after-write pipelining veszélynek hívják.

Olvassa el a csővezeték-veszély írása után

Olvassa el a csővezeték-veszély írása után

Az elágazási utasítások végrehajtása szintén csővezetékveszélyt okoz. Fiók utasítások végrehajtás közben a csővezetékben hatással van a következő utasítások letöltési szakaszaira.

Csővezetékes ágmagatartás

Csővezetékes ágmagatartás

A csővezetékek előnyei

  • Az utasítások áteresztőképessége nő.
  • A csővezeték szakaszainak számának növekedése növeli az egyidejűleg végrehajtott utasítások számát.
  • Gyorsabb ALU tervezhető csővezeték használatakor.
  • A csővezetékes CPU-k magasabb órajel-frekvencián működnek, mint a RAM.
  • A csővezetékek növelik a CPU általános teljesítményét.

A csővezetékek hátrányai

  • A csővezetékes processzor tervezése összetett.
  • Az utasítás késleltetése nő a csővezetékes processzorokban.
  • A csővezetékes processzor teljesítményét nehéz megjósolni.
  • Minél hosszabb a csővezeték, annál rosszabb a fióktelep utasításainak veszélye.

A csővezeték előnyös minden olyan utasítás számára, amely a végrehajtáshoz hasonló lépéseket követ. Azokat a processzorokat, amelyek összetett utasításokkal rendelkeznek, ahol minden utasítás másként viselkedik, nehezen lehet továbbvezetni. A processzoroknak ésszerű munkagépeik vannak a csővezeték 3 vagy 5 szakaszával, mivel a csővezeték mélységének növekedésével növekszenek a vele kapcsolatos veszélyek. Nevezzen meg néhány csővezetékes processzort a csővezeték szakaszával?