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í.