kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
Az utasítások idöben párhuzamos feldolgozásának alapvetö lehetöségei (prefetching, átlapolt utasítás végrehajtás, futószalag elvü feldolgozás, ebböl adódó szük keresztmetszetek (memória sávszélesség és elágazások) feloldása)
Futószalagos feldolgozás:
- &n 313f53d bsp; Elöfeltételei (két fokozatot figyelembe véve):
o &n 313f53d bsp; Két egymástól teljesen független hardver egységet kell kialakítani
o &n 313f53d bsp; Mindkét egység feldolgozási ideje megegyezik
o &n 313f53d bsp;
Idöbeli
párhuzamosság (átlapolás)
Az egyik egység kimenete lesz a másik bemenete
Következtetés: Kellöen nagy számú utasítás esetén, két hardveregység használva, elvben megduplázódik a feldolgozás sebessége
- &n 313f53d bsp; El Bontsuk négy részre az utasítás-feldolgozási ciklust:
F Fetch
D-S/O Decoding - Source Operand
E Execution
W/B Write Back
Ekkor elvben megnégyszerezödik az utasítás-feldolgozás sebessége, de a teljesítmény növekedését a függöségek mérséklik!
- &n 313f53d bsp; Elölehívás: Az elözö utasítás visszaírási fázisát és az aktuális utasítás lehívási fázisát párhuzamosítjuk
o &n 313f53d bsp; maximum egy óraciklus nyerhetünk, amit a függöségek mérsékelnek
o &n 313f53d bsp; Példa:
§ &n 313f53d bsp; A hatvanas évek nagyszámítógépeinek egy része
§ &n 313f53d bsp; A 8086-os mikroprocesszor
- &n 313f53d bsp; Csak a végrehajtás fázisban (futószalag-elvü kialakítás):
o Példa:
§ &n 313f53d bsp; Nagyszámítógépek: a 60-as évek vektorprocesszoros gépei
§ &n 313f53d bsp; Mikroszámítógépek: ez a fázis kimaradt
- &n 313f53d bsp; A teljes utasítás-feldolgozási fázisban
o Maximum óraciklusonként tudunk feldolgozni egy utasítás, amit a függöségek mérsékelnek
o Példa:
§ &n 313f53d bsp; Nagyszámítógépek (1960)
§ &n 313f53d bsp; Mikroszámítógépek: 80286
A futószalagos feldolgozás következményei
- &n 313f53d bsp; Memóriakezelés:
o &n 313f53d bsp;
A memória lassabb, mint a
processzor.
Hagyományos, szekvenciális elvü 4 ciklusú utasítás:
Négyfokozatú futószalag esetén:
Míg a hagyományos szekvenciális feldolgozásnál - a példánk esetében - csak minden negyedik óraciklusban kell utasítást lehívni, addig 4 fokozatú futószalagnál már maximum óraciklusonként, amit a függöségek csökkenthetnek.
o &n 313f53d bsp; A memória-alrendszert gyorsításokkal egészítették ki
o &n 313f53d bsp; A gyorsítótárak a 80-as évek második felében terjedtek el robbanásszerüen, a futószalagos feldolgozás terjedésével párhuzamosan
- &n 313f53d bsp; Vezérlés-függöségek:
o &n 313f53d bsp; Az okozott teljesítmény-redukció mértéke:
§ &n 313f53d bsp; Feltétlen vezérlésátadás esetén az ugrási rés (buborék) mérete N-1, ahol N a futószalag fokozatainak száma
§ &n 313f53d bsp; Feltételes vezérlésátadás esetén ehhez hozzájön a feltétel kiértékelés, az ugrási cím számítása és a bonyolultabb dekódolás is
o &n 313f53d bsp; A teljesítmény-csökkenés mérséklése:
§ &n 313f53d bsp; A korai gépekben hardver-kiegészítéssel lehetövé tették, hogy a dekódolás végére elöálljon az ugrási cím
§ &n 313f53d bsp; A korai RISC gépekben késleltetett ugrást alkalmaztak
§ &n 313f53d bsp; A CISC gépek esetén megjelent:
ˇ &n 313f53d bsp; A fix elörejelzés: A következö végrehajtandó utasítás mindig az ugrási címen helyezkedik el
ˇ &n 313f53d bsp; Az ugrási cím elöáll a dekódolási szakasz végére, majd folytatják az utasítások lehívását az ugrási címet követöen
ˇ &n 313f53d bsp; A feltételes vezérlés-átadásokban a feltételek kiértékelése az execution szakasz végén következett be:
o &n 313f53d bsp; Az elörejelzés helyes volt s folytatódott az utasítások feldolgozása az elkezdett irányba
o &n 313f53d bsp; Hibás volt, ekkor az elkezdett utasításokat eldobták és elkezdték a feldolgozást a helyes irányba. Pl.: 80486.
ˇ &n 313f53d bsp; Feloldatlan feltételes vezérlési függöség: amikor a feltétel nagy késleltetésü (látenciájú) (szorzás, osztás) utasításra vonatkozik, ami nem hajtódik végre a feltételes vezérlésátadási utasítás execution szakaszának végére → ezért blokkolódik a feldolgozás.
Pl.:
a=x/y
if a=1 (várnia kell az
elözöre)
Találat: 597