5.4 Az utasítás-végrehajtás párhuzamosítása (pipelining)

iDevice ikon

A processzorok fejlesztésénél az egyik legfontosabb cél az utasítások feldolgozásának gyorsítása. Erre több megoldást is alkalmaznak.

Az egyik megoldás az ütemező (órajel) frekvenciájának növelése. Látjuk, hogy az újabb és újabb processzorok egyre nagyobb órajel frekvenciával működnek. Ennek azonban határt szab a belső áramkörök működési sebessége.

A másik megoldás az utasítások feldolgozásának átlapolása. Ezt a módszert „pipelining"-nak nevezzük. Az ötlet onnan jött, hogy az utasítások feldolgozásának egyes lépéseinél más-más erőforrásokra van szükség, akkor viszont azonos időpontban több utasítás feldolgozása is történhet.

Pl. ha egy processzor az utasításokat négy lépésben dolgozza fel, akkor felépíthető egy négyes pipeline.

Legyen a négy lépés a következő:

  • Utasítás lehívása (Fetch, F)
  • Utasítás feldolgozása (Decode, D)
  • Utasítás végrehajtása (Excess, E)
  • Eredmény tárolása (Store, S)

Ebben az esetben az utasítások párhuzamosított végrehajtása az 38. ábra szerint történhet.

 

Utasítás

Párhuzamos lépések

1.

F1

D1

E1

S1

 

 

 

2.

 

F2

D2

E2

S2

 

 

3.

 

 

F3

D3

E3

S3

 

4.

 

 

 

F4

D4

E4

S4

 

38. ábra
Utasítások párhuzamos végrehajtása

 

Látható, hogy az utasítások soros végrehajtáshoz képest ez jelentős gyorsítást eredményez, mert ideális esetben 4 utasítás végrehajtása 16 lépés helyett 7 lépés alatt megtörténik.

A pipelining működést egy külön erre a célra szolgáló áramkörnek meg kell szerveznie, le kell vezényelnie és problémák esetén be kell avatkoznia. Ez természetesen külön feladatot jelent. A ma használatos processzorok mindegyikében található párhuzamos utasítás feldolgozás.