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:

  1. Cyklus načítání instrukcí (IF).
  2. Instrukční dekódování/Registrace cyklu načítání (ID).
  3. Provedení/efektivní adresní cyklus (EX).
  4. Přístup do paměti (MEM).
  5. 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ů:

  • Zatížení (5 cyklů)
  • Store (4 cykly)
  • Typ R (4 cykly)
  • Pobočka (3 cykly)
  • Skok (3 cykly)

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é

Reference