Cykly podle instrukce - Cycles per instruction
V počítačové architektuře jsou cykly na instrukci (aka hodinové cykly na instrukci , hodiny na instrukci nebo CPI ) jedním z aspektů výkonu procesoru : průměrný počet hodinových cyklů na instrukci pro program nebo fragment programu. To je multiplikativní inverzní of instrukcí za cyklus .
Definice
Průměr cyklů na instrukci v daném procesu je definován následujícím:
Kde je počet instrukcí pro daný typ instrukce , jsou hodinové cykly pro daný typ instrukce a je celkový počet instrukcí. Souhrnné součty za všechny typy instrukcí pro daný srovnávací proces.
Vysvětlení
Předpokládejme klasický kanál RISC s následujícími pěti fázemi:
- Cyklus načítání instrukcí (IF).
- Instrukční dekódování/Registrace cyklu načítání (ID).
- Provedení/efektivní adresní cyklus (EX).
- Přístup do paměti (MEM).
- Cyklus zpětného zápisu (WB).
Každá fáze vyžaduje jeden hodinový cyklus a instrukce prochází fázemi postupně. Bez pipeliningu ve vícecyklovém procesoru je nová instrukce načtena ve fázi 1 až poté, co předchozí instrukce skončí ve fázi 5, proto je počet hodinových cyklů potřebných k provedení instrukce pět (CPI = 5> 1). V tomto případě je procesor údajně podkalární . S pipeliningem se nová instrukce získává každý hodinový cyklus využíváním paralelismu na úrovni instrukcí , a protože teoreticky lze mít pět instrukcí v pěti fázích potrubí najednou (jedna instrukce na fázi), každá instrukce by dokončila fázi 5 v každé hodinový cyklus a v průměru je počet hodinových cyklů potřebných k provedení instrukce 1 (CPI = 1). V tomto případě je procesor údajně skalární .
S procesorem s jednou prováděcí jednotkou je nejlepší dosažitelný CPI 1. S procesorem s více výkonnými jednotkami však lze dosáhnout ještě lepších hodnot CPI (CPI <1). V tomto případě je procesor údajně superskalární . Abyste získali lepší hodnoty CPI bez pipeline, musí být počet prováděcích jednotek větší než počet fází. Například se šesti prováděcími jednotkami je šest nových instrukcí načteno ve fázi 1 až poté, co šest předchozích instrukcí skončí ve fázi 5, proto je v průměru počet hodinových cyklů potřebných k provedení instrukce 5/6 (CPI = 5/ 6 <1). Abyste dosáhli lepších hodnot CPI pomocí potrubí, musí existovat alespoň dvě prováděcí jednotky. Například se dvěma prováděcími jednotkami jsou v každém hodinovém cyklu načteny dvě nové instrukce využíváním paralelismu na úrovni instrukcí, takže dvě různé instrukce by dokončily fázi 5 v každém hodinovém cyklu a průměrně počet hodinových cyklů potřebných k provedení instrukce je 1/2 (CPI = 1/2 <1).
Příklady
Příklad 1
Pro vícecyklové MIPS existuje pět typů pokynů:
Pokud program má:
- Pokyny pro 50% zatížení
- 25% návod k uložení
- Pokyny typu 15% R.
- 8% pokyny k pobočce
- 2% pokyny ke skoku
pak CPI je:
Příklad 2
400 MHz procesor byl použit ke spuštění programu referenční s tímto návodem k mixu a taktu počtu:
Pokyn TYP | Počet instrukcí | Počet hodinového cyklu |
---|---|---|
Celočíselná aritmetika | 45 000 | 1 |
Přenos dat | 32 000 | 2 |
Plovoucí bod | 15 000 | 2 |
Ovládací přenos | 8000 | 2 |
Určete efektivní CPI, MIPS (miliony instrukcí za sekundu) a dobu provádění tohoto programu.
od: a
Proto:
Viz také
- Cyklus za sekundu ( Hz )
- Pokyny za cyklus (IPC)
- Pokyny za sekundu (IPS)
- Megahertzský mýtus
- MIPS
- Benchmark článek poskytuje užitečný úvod do měření výkonu počítače pro ty čtenáře, kteří mají zájem o danou problematiku.