SzA35. VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek) Működési elvük: Jellemzőik: -függőségek kezelése statikusan, compiler által -hátránya: a compiler erősen technológiafüggő, azaz ismernie kell a fizikai architektúrát pl.: -a végrehajtó egységek számát -a végrehajtó egységek késleltetését -a gyorsítótár késleltetését -előnye: ugyanolyan fokú párhuzamosítás mellett a VLIW sokkal egyszerűbben megvalósítható, mint a szuperskalárhoz képest, ennek köszönhetően jelenhetett meg csaknem 10 évvel korábban, mint a szuperskalár processzorok - teljesen új logikai architektúra (új jóval hosszabb utasítások (hosszú utasításszó)) Fajtái, fejlődése a) Széles vagy korai VLIW-ek -80 as években jelentek meg, pl.: TRACE processzor: -igen hamar leállították a forgalmazásukat, ennek oka a compiler nagyfokú technológiai függősége b) Keskeny VLIW-ek -90 es évek 2. felében jelentek meg, közben sokat fejlődtek a compilerek Fajtái: 1) Digitális jelfeldolgozás, multimédia Az ok ugyanaz, mint SIMD esetén: nincs benne feltételes elágazás 2) Általános célú feldolgozás o Szerverpiac: Intel Itanium (IA64, Intel-HP 2001) (2004 után visszatértek a szuperskalár formához, több maggal) o Hordozható gépek: Transmeta Crusoe (Változó tápfeszültség-szint; a VLIW alacsonyabb fogyasztású) a 90-es évek közepétől ezek már EPIC (Explicitly Parallel Instruction Computing) architektúrák Kereskedelmi rendszerek: Multiflow TRACE: -a Multiflow Computer, Inc VLIW processzorcsaládja (1984-1990-ig működött a cég) -a TRACE 14/300-as lett a legismertebb processzoruk - 256-1024 bit hosszú utasításszavak
-7-28 utasítást tartalmaztak az utasításszavak -számításigényes Fortran és C alkalmazásokhoz készültek -a belépőszintű modell 6 MFLOPS teljesítményre volt képes (Linpack Benchmark alapján) Cydra-5 -a Cydrome cég heterogén processzor rendszere (1984-1988-ig működött a cég) -a processzor két részből áll (numerikus és általános célú processzor) -256 bit széles utasításhossz, 7 mezővel -a compiler megkereste a párhuzamosan futtatható utasításokat az utasításszóban és egy közös szóba tette -csak utasítás-gyorsítótárral rendelkezett, azért mert úgy gondolták, hogy az adat-gyorsítótár hátrányos lenne a ritkamátrixos számításoknál (ritkamátrix: a legtöbb eleme azonos pl: 0) A VLIW továbbfejlesztése -> EPIC architektúrák Transmeta Crusoe: -a Transmeta első processzora -kisebb fogyasztású, mint az Intel és AMD processzorai (hosszabb akkumulátor élettartam a mobil eszközökben) -a Code Morphing Software (CMS) segítségével x86 utasításokat is képes volt végrehajtani (de nem volt teljesen kompatibilis az x86 architektúrával) -általános célú alkalmazásokban gyengébb teljesítményt mutatott -a déli híd sávszélessége bekorlátozta az erőteljesebb grafikai és I/O utasítások gyors feldolgozását Intel Itanium -Intel-HP közös processzora -2001-ben jelent meg, de az akkori processzorok teljesítménye alatt maradt -regiszter-regiszter típusú architektúra -128 bites szóhossz -128db integer, 128db 82 bites lebegőpontos, 64db egybites predikátumregiszter és 8 db ugrási regiszter -2010-ben megjelent az új Tukwilla magos Itanium 9300, 2 és 4 magos változatokban, 24MB osztott cache-el, integrált memóriavezérlővel, és a magok közt Quick Path Interconnect kapcsolattal -2010-től a Microsoft nem támogatja az IA-64 architektúrát az operációs rendszereiben
SzA36. Szuperskalár processzorok (Megjelenésük oka, bevezetésük, első generációs szuperskalárok jellemzői, és a jellemzők indokolása, a kiváltott feldolgozási szűk keresztmetszet és feloldása, 2. generációs szuperskalárok jellemzői, a kibocsájtási párhuzamosság kimerülése általános célú alkalmazásokban) a) megjelenésük oka: az időbeli párhuzamosítás elérte a technológia határát a spekulatív elágazbecsléssel és a cache-k bevezetésével a futószalag processzoroknál b) I.generációs szuperskalárok jellemzői: - direkt kibocsájtás (nem pufferelt) => párhuzamos kibocsátás, ezért szuperskalár - egyportos, blokkoló L1, buszra csatolt L2 - statikus elágazásbecslés - a függőségek miatt 2 CISC utasítás/ciklus a max. kibocsátás => kiváltott feldolgozási/kibocsátási szűk keresztmetszet => feloldása a 2. generációs szuperskalárokkal - Pentium I hasznos magszélesség: 2 utasítás/ciklus szükséges adat-cache portok száma: 0.4*2=0.8, tehát 1 szükséges végrehajtó egységek száma: FX=0.8*2=1.6, tehát 2 L/S=0.4*2=0,8 tehát 1 1 elág, 1 FP c) II. gen. sz.s - pufferelt kibocsájtás (az utasítások várakoztató állomásokba shelving buffer kerülnek, és sorrenden kívül történik a kiküldés a végrehajtó egységeknek, amint felszabadultak a függőségből) - kétportos nem blokkoló L1, közvetlen on-chip L2 - dinamikus elágazásbecslés - elődekódolás (a változó hosszúságú CISC-ek miatt kell, L2 > elődekódoló > L1) - regiszter átnevezés és re-order buffer (adatfüggőségek és pontos megszakítás-kezelés) - Pentium Pro kibocsájtási ráta 4 CISC utasítás/ciklus => ezzel az általános célú programokban kimerült a funkcionális párhuzamosítás lehetősége, mivel itt az alapblokk mérete (két ugróutasítás közti adatmanipuláló utasítások száma) 4 hasznos magszélesség: 4 utasítás/ciklus szükséges adat-cache portok száma: 0.4*4=1,6 tehát 2 szükséges végrehajtó egységek száma: FX=0.8*4=3.2, tehát 3-4 L/S=0.4*4=1,6 tehát 2 1 elág, 1 FP Dinamikus utasításelosztás -> végrehajtott utasítások gyakorisága. általános alkalmazások: minden 5. utasítás jellemzően elágazás!
SzA37. Az adatpárhuzamos végrehajtás (főbb alternatívái, a SIMD utasítások, a 2.5 és a 3. generációs szuperskalárok főbb jellemzői, a kiváltott szűk keresztmetszetek és feloldásuk) a) főbb alternatívái adatpárhuzamosság alternatívái dual-műveletes utasítások SIMD utasítások FX-SIMD (MM-support) FP-SIMD (3D support) -duál-műveletes utasítások: 90-es évek elején jelent meg egy utasításon belül két művelet végrehajtása (3operandus) pl: y=a*b+c LOAD/OP: utasítás betöltés és végrehajtás SHIFT-ADD kicsi a hatékonysága, jelemzően lebegőpontos műveletek voltak -SIMD (Single Instruction Multiple Data): egy utasításon belül ugyanazt a műveletet egyszerre több adaton végezzük el 3-ik generációs szuperskalároknál jelent meg ez a processzorszintű logikai architektúra kiterjesztése (itt jelent meg az AGP a videokártya számára) ezek kizárólag a multimedia adatok feldolgozását gyorsítják (mivel ezek egyidejűleg rendelkezésre állnak, a feldolgozás során nincs elágazás) fixpontos multimedia => hang és pixels képfeldolgozás lebegőpontos multimedia => vektoros képfeldolgozás és 3D b) 2.5 és a 3. generációs szuperskalárok főbb jellemzői - Intel MMX (csak FX, meglévő regiszterekkel) (2,5. generáció) - AMD 3DNow! (FX+FP, új regiszterekkel) (3. generáció) - Intel SSE (FX+FP, új regiszterekkel) (3. generáció) - RISC processzorok egyszerűek, de gyorsak, a CISC-ek pedig lassabbak, de hatékonyabbak (pl. Alpha: 300 MHz, Pentium: 166 MHz) - CISC elhúzott teljesítményben (a magas órajelen járó RISC et nehéz továbbgyorsítani észlelhető mértékben). 5 év alatt a RISC kiszorult ( 95-2000) - Intel és HP 1997ben bejelentik a Merced-et. Azt jósolták, az IA-32(CISC) t felváltja az IA-64(EPIC). 2001-ben bemutatták, bukás. - AMD: bevezette a korábbi fejlesztésekkel kompatibilis, x86-64 et:2000: 64 bites ISAbejelentés2003: Opteron - Athlon 64 megjelenése. Direkt csatolt: a CPU tartalmazza a memóriavezérlőt, és vannak soros linkjei: hypertransport bus, 3 db van belőle, és I/O vagy CPU köthető mindegyikre => akár 4 CPU is összeköthető, MP rendszer kialakítható belőle. c) kiváltott szűk keresztmetszet és feloldása Rendszerarchitektúra : a) Lehet káros a cache, ha egy adatra egyszer van szükség, pl.: videó lejátszás, streaming adatfeldolgozás. Ilyenkor ki-be kell mozgatni az adatokat. Megoldás: ki kell kapcsolni a multimédia műveleteknél a cache-t b) a videokártya és a videovezérlő közötti sávszélesség kicsi. Megoldás: AGP busz bevezetése c) a futószalag hosszának növekedése, igény a job becslésre, mert egyre több utasítást kell eldobni, ráadásul csökken a kihasználtsága a SIMD bevezetésével az ILP feldolgozás speciális célú alkalmazásokban is kimerült
SzA38. A processzorok fejlődésének áttekintése (lehetséges fejlődési szcenáriók, a fejlődés fővonulata és a kiváltott technológiai innovációk, a fejlődés főbb jellemzői) Lehetséges fejlődési szcenáriók: A továbbfejlesztési lehetőségek az adatpárhuzamosságban rejlenek: két irány: a) Szisztematikus fejlődés (szuperskalár bővítés) ez lesz a fejlődés fővonala -szuperskalár processzorok (több futószalag párhuzamosan) 1) kibocsájtási párhuzamosság 2) az adat-párhuzamosság bevezetése és növelése b) Radikális fejlődés (VLIW/EPIC bővítés) -új utasításszintű architektúra, nem lett sikeres 1) VLIW 2) Az adatpárhuzamosság bevezetése (EPIC architektúrák) A fejlődés fő vonulata: A fejlődés a soros feldolgozás/végrehajtástól folyamatos bővüléssel jutott el az adatpárhuzamosságig a 2000-es évek közepéig.. A szuperskalár processzorokkal elérték
az általános célú programoknál a gyorsítás határait. További gyorsítás csak a speciális (grafika stb) alkalmazásoknál lehetséges. A 2000-es évek közepétől a többmagos processzorok megjelenésével egy újfajta szemlélet alakult ki, ami szerint a jövő a többmagos processzoroké, és a magok számának növelését tűzte ki célul. A fejlődés három ciklusból állt, mindegyik ciklusban az alábbi fejlesztések mentek végbe: 1) a párhuzamosság egy-egy dimenziójának bevezetése 2) ennek megvalósítása szűk keresztmetszet(ek)hez vezet 3) a kialakuló szűk keresztmetszet(ek) feloldása 4) ekkor az adott dimenzióban rendelkezésre álló párhuzamosítási lehetőségek érdemben kimerülnek, a teljesítmény további növeléséhez a párhuzamosság újabb dimenziójának bevezetése szükséges A kiváltott technológiai innovációk:
A fejlődés főbb jellemzői A memória sávszélesség igény és a hardver komplexitás növekedése a teljesítmény növekedésével Az elágazásbecslés pontossági igényének növekedése az órafrekvencia növekedésével