13. Tétel VLIW-architektúrák Flashcards
VLIW architektúra (Very Long Instruction World) jellemzői
1.) Térbeli és időbeli párhuzamosítás.
2.) Függőségek kezelése Compiler által szoftveresen.
3.) Új utasítás forma:
• több utasítást tartalmazó utasításszó (függőségektől mentes)
Előfeltételei:
• függőségek kezelése
• utasítások hatékony ütemezése
Utasításmező: 1-1 mező 1-1-VE-et vezérel
Utasításszó:
-256-1024 bit
-7-28 utasítás
kép45
VLIW architektúra fejlődése
- Korai vagy, széles VLIW
2. Keskeny VLIW
VLIW architektúra előnyei
- Ugyanolyan fokú párhuzamosság esetén jóval egyszerűbb felépítés.
- Ugyanolyan komplexitás esetén nagyobb feldolgozási sebesség.
VLIW architektúra hátrányai
- Compiler (statikus ütemezés):
Az ő felelőssége minden függőségtípus kezelése
Pontosan kell ismernie a fizikai architektúrát:
VE –egységek típusát és számát
VE ismétlési és késleltetési idejét
a gyorsító tárak betöltési idejét, késleltetését stb.
A compilertől elvárt, hogy agresszív párhuzamosítást hajtson végre, hogy ciklusonként
elegendő párhuzamosan végrehajtható utasítást találjon. - Forradalmian új architektúra
• Teljesen új utasításkészlet architektúra: ISA -> idő, és pénz
Széles VLIW: 10-20 VE Keskeny
VLIW: 4-8 VE
• utasításszó kb. 100 bit
• digitális jelfeldolgozás
• utasításszó: 4 -8 műveletet tartalmazott
VLIW alkalmazási területek
- Digitális jelfeldolgozás, multimédia
- Szerver rendszerek
- Notebook (Transmeta) – kevésbé energiaigényes
Keskeny VLIW-ek jellemzői
- Fordítási időben történő ütemezés szoftveresen
* A CPU egyszerűbb, viszont több hely van a regiszterek, VE-ek valamint a CACHE-nek számára
EPIC
(a VLIW -hez hasonlók, csak itt kifejezetten párhuzamos végrehajtás) (Intel-HP elnevezés a
VLIW-ekre)
o Cél: a lehető legtöbb utasítás fusson párhuzamosan, még ha ezek egy része feleslegesen is
fut le.
o CPU sebesség nőtt, a memóriáé kisebb mértékben.
o Fordítási időben történő ütemezés lehetőséget ad a spekulatív adatbetöltésre pld.: LOAD és USE
(adat megjelenése) közé más független utasításokat tud betölteni „optimalizáló compiler”
Esettanulmány IA-64 architektúra Intel Itanium (Merced, VLIW)
Mit határoz meg az ISA (utasításkészlet architektúra)
• utasításokat
• adatformátumokat (adattípus)
• regisztereket
• címzési módot
• memória modell (memória felépítés)
• megszakítást és a csapdakezelést
• I/O kapcsolatok kezelését
• kompatibilitás más ISA-kal
Ezt mind figyelembe kell venni ezért olyan bonyolult a dolog
Egy teljesen új rendszerben gondolkodtak, ami nem kompatibilis az x86-tal
Merced CPU
• 64 bites, regiszterekben gazdag architektúra. Szószélesség 64 bit és bájtonként címezhető.
• Mindent a Complier vezérel -> többletbitek segítségével (ahogy ez egy VLIW architektúránál
elvárható)
• Utasításszó 128 bit (két szó)
• 128 db általános célú regiszter 64 bitesek
• 128 db FP regiszter 82 bitesek
• 64 db predikátum regiszter 1 bites regiszterek
• 8 db ugrási/branch regiszter
• 4 féle végrehajtó egység típus:
o I: integer unit
o M: LOAD/STORE
műveletekhez
o B: branch műveletekhez
o F: lebegőpontos műveletekhez Logikai architektúrája az IA 64-nek
• Utasításszó 128 bit 3 utasításból és template mezőből áll (Template mező: mely utasítások hajthatók végre párhuzamosan?)
A lehívási ráta L1 Cache-ből 2 utasítás szó /ciklus.
• Template mező: értelmezése nem csak egyetlen utasításra vonatkozik.
• Az utasításszóba bekerülhetnek független és függő utasítások is.
Template mező
• Ez határozza meg, az utasításnak az adott VE-hez történő hozzárendelését. A mező jelzi a STOP-ok meglétét. A STOP előtti 1 v. több utasításnak erőforrás függése van a stop utáni 1 – vagy több utasítással.
Tulajdonságok (intel itanium)
Hardveresen támogatja:
• Előre jelzett végrehajtást
(predicted execution)
• Vezérlési előrejelzést (control speculation)
• Adat előrejelzést (data speculation)
• Szoftver futószalagot
• Egy feltételes elágazás mindkét végét végrehajtja (predikátum regiszter)
• A hivatkozás csak akkor érvényesíthető, ha a predikátum regiszter értéke 1
Vezérlési előrejelzés
Pld. elágazás esetén LOAD utasítás:
o A Compiler kihozza a LOAD utasítást az elágazás elé. o Az eredeti helyre egy ellenőrző (check) utasítást tesz. o => RAM késleltetés csökkentése!
Adat előrejelzés/spekuláció
LOAD lehet spekulatív jellegű => veszélyeztethetné a regiszter tartalmat
Kiküszöbölés: speciális táblázat segítségével követik az aktuális regiszter tartalom hovatartozását.
Szoftver futószalag
Olyan technika mellyel a ciklusmagot lehet párhuzamosan végrehajtani (cikluson belüli
párhuzamosság)
intel itanium összefoglalása
1) Előre jelzett végrehajtás (predicated execution)
2) Control speculation (LOAD)
3) DATA scepulation (speciális táblázat segítségével ellenőrzi a betöltött adatokat)
4) Szoftver futószalag – arra szolgál, hogy a COMPILER segítségével, ciklusmagot ki tudja bontani,
párhuzamosságát meg tudja oldani