Articles

GeeksforGeeks

zlepšit výkon CPU máme dvě možnosti:
1) Zlepšit hardware zavedením rychlejší okruhy.
2) Uspořádejte hardware tak, aby bylo možné provést více než jednu operaci současně.

protože existuje omezení rychlosti hardwaru a náklady na rychlejší obvody jsou poměrně vysoké, musíme přijmout 2.možnost.

Pipelining : Pipelining je proces uspořádání hardwarových prvků CPU tak, aby se zvýšil jeho celkový výkon. Současné provádění více než jedné instrukce probíhá v pipelinovaném procesoru.

podívejme se na příklad skutečného života, který pracuje na konceptu pipelinovaného provozu. Zvažte zařízení na balení lahví s vodou. Nechte 3 stupně, kterými by měla láhev projít, vložte láhev (I), naplňte vodu do láhve(F) a utěsněte láhev(y). Uvažujme tyto fáze jako fázi 1, stupeň 2 a stupeň 3. Nechte každou fázi trvat 1 minutu, než dokončíte její provoz.
nyní, při netypickém provozu, se do rostliny nejprve vloží láhev, po 1 minutě se přesune do stupně 2, kde se naplní voda. Nyní se ve fázi 1 nic neděje. Podobně, když se láhev přesune do stupně 3, Jak stupeň 1, tak stupeň 2 jsou nečinné. Ale v pipelinovaném provozu, když je láhev ve stupni 2, může být ve stupni 1 naplněna další láhev. Podobně, když je láhev ve stupni 3, může být každá jedna láhev ve stupni 1 a stupni 2. Takže po každé minutě dostaneme novou láhev na konci fáze 3. Proto, průměrná doba potřebná na výrobu 1 láhev je :

Bez pipelining = 9/3 minut = 3m

I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)

S pipelining = 5/3 minut = 1.67 m

I F S | || I F S || | I F S (5 minutes)

Tak, pipelined operace zvyšuje účinnost systému.

návrh základního potrubí

  • v pipelinovaném procesoru má potrubí dva konce, vstupní a výstupní konec. Mezi těmito konci existuje více stupňů / segmentů tak, že výstup jednoho stupně je připojen ke vstupu dalšího stupně a každý stupeň provádí specifickou operaci.registry rozhraní
  • slouží k udržení mezilehlého výstupu mezi dvěma stupni. Tyto registry rozhraní se také nazývají latch nebo buffer.
  • všechny stupně v potrubí spolu s registry rozhraní jsou řízeny společnými hodinami.

Provedení v pipeline procesor
Provedení sekvence instrukcí v pipeline procesoru mohou být zobrazeny pomocí space-time diagram. Zvažte například procesor, který má 4 fáze a nechte provést 2 Pokyny. Sekvenci provádění můžeme vizualizovat pomocí následujících časoprostorových diagramů:

nepřekrývající se provedení:

Stage / Cycle 1 2 3 4 5 6 7 8
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 8 Cycle

Overlapped execution:

Stage / Cycle 1 2 3 4 5
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 5 Cyklus

Fáze potrubí

procesor RISC má 5 stupňové instrukční potrubí pro provedení všech pokynů v instrukční sadě RISC. Níže jsou 5 stupňů RISC pipeline s jejich operace:

  • Fáze 1 (Instruction Fetch)
    V této fázi PROCESOR čte instrukce z adresy v paměti, jehož hodnota je přítomen v programu počitadla.
  • 2. Fáze (Instruction Decode)
    V této fázi, instrukce je dekódována a zaregistrovat soubor je přístupný získat hodnoty z registrů použitých v návodu.
  • stupeň 3 (provedení instrukce)
    V této fázi se provádějí operace ALU.
  • stupeň 4 (Přístup do Paměti)
    V této fázi, paměťové operandy jsou číst a zapisovat z/do paměti, která je přítomna v návodu.
  • Stage 5 (Write Back)
    V této fázi je vypočtená / načtená hodnota zapsána zpět do registru přítomného v pokynech.

výkon pipelinovaného procesoru
považujte za “ TP „segment“ k “ s časem hodinového cyklu. Nechte v pipelinovaném procesoru dokončit úkoly „n“. Nyní, první instrukce bude trvat ‚ k ‚cykly vyjít z potrubí, ale ostatní‘ n – 1 ‚instrukce bude trvat pouze‘ 1 ‚ cyklus každý, tj. celkem ‚n – 1‘ cykly. Takže, čas potřebný k provedení “ n “ instrukce v pipeline procesoru:

 ETpipeline = k + n – 1 cycles = (k + n – 1) Tp

V případě, non-pipeline procesoru, čas provedení n instrukcí, bude:

 ETnon-pipeline = n * k * Tp

Takže zrychlení (S) pipeline procesoru přes non-pipeline procesor, když “ n “ úkoly jsou prováděny na stejném procesoru je:

 S = Performance of pipelined processor / Performance of Non-pipelined processor

Jako výkon procesoru je nepřímo úměrná doba realizace, které máme,

 S = ETnon-pipeline / ETpipeline => S = / S = / 

Když počet úkolů “ n “ jsou podstatně větší než k, je, n >> k

 S = n * k / n S = k

kde “ k “ je počet fází v potrubí.

Také, Účinnost = Vzhledem k rychlosti up / Max. rychlost up = S / Smax
víme, že, Smax = k

Takže, Účinnost = S / k

Propustnost = Počet instrukcí / Celkový čas na dokončení instrukce

Tak, Propustnost = n / (k + n – 1) * Tp

Poznámka: Cyklů na instrukci (CPI) hodnota ideální pipeline procesoru je 1,

Prosím, viz Nastavení 2 pro Závislosti a Data Nebezpečí a Nastavit 3 Typy potrubí a Zdržování.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *