A Soft Machines forradalmasítaná a processzortervezést

Virtuális mag

A Soft Machines neve nem sok olvasónk számára lehet ismerős, de a cég már 2006 óta létezik, és nagyjából 250 alkalmazottjuk van. A vállalatot Mahesh Lingareddy és Mohammad Abdallah alapította, akik korábban az Intel mérnökei voltak.

A Soft Machines megalakulása óta több cég (Samsung Ventures, GlobalFoundries és AMD) is támogatja a fejlesztéseket. Máig összesen 125 millió dollárral sikerült segíteni az úgynevezett VISC architektúra megszületését. Utóbbi Mohammad Abdallah szerint a megfelelő teljesítmény kulcsa. A vállalat technikai igazgatója a Linley Processor Conference eseményen elmondta, hogy a hagyományos processzorskálázás halálra van ítélve a fizika törvényei és a szoftverfejlesztés nehézségei által. Az előadáson felmerült, hogy ezen a problémán a CMOS gyártástechnológia fejlesztése már nem segít, ugyanis megközelítettük azt a fizikai határt, ahol extrém anyagi befektetés szükséges elhanyagolható előrelépésért. Ezért fordult az ipar az egyre több maggal rendelkező processzorok tervezése felé, de Mohammad Abdallah szerint ezek sem fognak megváltást hozni, ugyanis rengeteg problémát nem lehet nagymértékű és rossz elvre alapozó többszálú optimalizálással megoldani.

A VISC (virtual instruction set computer, azaz virtuális utasításkészletű számítógép) architektúra a fenti problémákra jelent megoldást. Mint ismeretes ma alapvetően kétféle processzortervezési filozófiát különböztetünk meg, amelyek RISC és CISC néven ismertek. Ezek főbb tulajdonságait persze már keverik a mai tényleges implementációk, de a modern processzorokra egységesen jellemző, hogy több fizikailag elkülöníthető processzormaggal rendelkeznek, és azokon egy vagy pár szoftveres processzorszál fut. A Soft Machines vezetői szerint a ma fennálló probléma megoldásához ezt a két tényezőt kell alapjaiban újragondolni. Az említett konferencián bemutatott „dual virtual core VISC” prototípus erre rögtön megoldást is kínál, így eltűnnek a fizikailag elkülöníthető processzormagok, illetve a szoftveres processzorszálakat hardveresek váltják fel. Utóbbi elv nem egyedi, ugyanis a mai grafikus vezérlők is hardveres processzorszálakat futtatnak, továbbá a szükséges szinkronizáció is a hardveren belül valósul meg a programozó beavatkozása nélkül. Ezért is skálázódnak ezek a rendszerek olyan hihetetlenül jól.

A Soft Machines elmondása szerint a hardveres szálkezelés a programozók számára is egyszerűbb. A problémát az jelenti, hogy az elmúlt évtizedben az oktatás a szálszintű párhuzamosítást helyezte előtérbe, ami azt tanítja, hogy a programozó miképp futtasson számos párhuzamosan programszálat, és ezek manuális szinkronizációját hogyan oldja meg. Ezzel szemben sokkal logikusabb az adatpárhuzamosítást előnyben részesíteni, mert a mai megoldandó problémák adatkomplexitása folyamatosan nő, és a programozó számára is egyszerűbb egy szálra levetített kódot írni általános aritmetikai operátorokkal.

Az előadás során felmerült, hogy az oktatás sem tartja a lépést a hardvergyártók ajánlásaival, ugyanis a legtöbb programozó még mindig abban a képzésben részesül, amely a rendelkezésre álló processzormagok teljes kihasználására buzdít. Ugyanakkor ma már ismert tényező, hogy a párhuzamosan futtatott programszálak közötti manuális szinkronizáció egy idő után ront a sebességen, vagyis azt kellene oktatni, hogy miképp lehet felmérni az adott algoritmus skálázási maximumát. Érthetőbben fogalmazva itt arról van szó, hogy jórészt a manuális szinkronizációtól függ, hogy az adott algoritmus szálszintű párhuzamosítása meddig skálázódik. Elvi szinten logikus, hogy egy 16 szálat futtató processzor esetében az összes erőforrást kihasználja a programozó, de ha az algoritmus csak hat szálig skálázódik optimálisan, akkor a hetedik és innentől az összes többi programszál bevetése már nem gyorsítja, hanem lassítja a feldolgozást. Ez az a tényező, ami extrém módon megnehezíti a mai sokmagos központi processzorok kihasználását.

A Soft Machines megoldása – ahogy említettük – hardveres szálkezelést használ, tehát mindig a futtatott program számára optimális működési módot választja. Ennek alapja az úgynevezett virtuális mag. A fizikai implementáció szintjén a VISC architektúra nem épít a fizikailag elkülöníthető processzormagokra. Természetesen a lapka dizájnjában ugyanúgy fellelhetők az általános részegységek, így természetesen bizonyos definíció szerint megkülönböztethetők a magok, ugyanakkor itt pont az a lényeges, hogy egy virtuálisan kétmagos dizájn képes kétmagosként vagy egymagosként is működni, illetve akár az is lehetséges, hogy eltérő teljesítményű virtuális magok keletkeznek a programfuttatás során.

Az egész koncepció a programozó számára transzparens, mivel a „varázslat” az operációs rendszer mögött történik. A működéshez egyszálú programkódra van szükség, de ilyenkor a hardver kihasználása nem lesz optimális, mert egy virtuális mag alakul meg a hardveren belül. Optimalizálásra tehát most is szükség van, de közel sem olyan vállalhatatlan formában, mint a mai központi processzoroknál. A jó eredményhez az úgynevezett SIMT modellhez hasonló párhuzamosítási forma ajánlott, ami ismerős lehet a modern GPU-architektúrákon dolgozó programozók számára. Ráadásul ez nagymértékű hardveres skálázhatóságot biztosít a folyamatosan növekvő adatmennyiség feldolgozására való igény kielégítése szempontjából.

Virtuális utasításarchitektúra

A Soft Machines rendszerének érdekessége, hogy az utasításarchitektúra szempontjából is egy virtualizált szoftveres réteggel dolgozik. Természetesen magának a hardvernek van egy fizikai utasításarchitektúrája, de ez direkten nem lesz célozható. Ennek a döntésnek több oka van. Egyrészt ma már nem ideális egy fix utasításarchitektúrát tervezni és arra építeni nagyon sokáig különböző kiegészítésekkel, mert nem látható előre, hogy a fizika határai által húzott falat mikor érjük el olyan formában, amikor már kizárt a teljesítményre vonatkozó előrelépés lehetősége. Ha ebbe beleütközünk, akkor az utasításarchitektúrára és ezen belül is a memóriamodellre, illetve a szinkronizációra vonatkozó optimalizálások jelentik az egyetlen utat a jobb teljesítményhez. Másrészt a Soft Machines egyfajta licencelési modellben gondolkodik a technológiájuk eladása szempontjából, vagyis a koncepció elvi működés szintjén bármilyen fizikai utasításarchitektúrára ráhúzható, bár utóbbi valamilyen mértékben nyilván meghatározza az elérhető hatékonyságot.

A szoftveresen implementált virtuális utasításarchitektúra ráadásul nagyon is célszerű irány, ugyanis a hardverhez csupán egy úgynevezett véglegesítést végző fordító szükséges, ami a virtuális utasításarchitektúra kódját fizikai szintűre fordítja. Ez nagyon gyorsan történik meg, illetve némi alapvető optimalizálásra is akad még lehetőség ezen a szinten. A virtuális utasításarchitektúra lehet egyedi tervezésű, illetve a már létező fizikai utasításarchitektúrák is leírhatók virtuális formában. Utóbbi hatékonysága nem feltétlenül lesz tökéletes, de technikai akadálya nincs. Pontosan ezért tudja elindítani a VISC prototípus az Android 4.4-es operációs rendszert, és persze innentől csak szoftveres kérdés az egyes operációs rendszerek támogatása.

A Soft Machines által bemutatott „dual virtual core VISC” prototípus egymilliárd tranzisztorból épül fel és a TSMC 28 nm-es gyártástechnológiáján készül. Ez egy teljes SoC, ami tartalmaz minden olyan fontosabb elemet, amely szükséges egy komplett platform működtetéséhez, vagyis van benne memóriavezérlő, számos gyorsító, hagyományos értelemben vett déli híd, illetve hasonló részegységek. A processzorrész csupán az egymilliárd tranzisztorból felépülő lapka 20%-át teszi ki. A teljesítményre vonatkozóan a SPEC CPU 2006 tesztprogram került elő, amelynek IPC tesztjében a „dual virtual core VISC” prototípus volt a legjobb.

A Soft Machines megoldása az energiahatékonyság területén is elképesztően erős. A mai legjobb mutatóval rendelkező processzormag teljesítményét a fogyasztása egyharmad vagy egynegyed részével képes hozni, vagy másképp fogalmazva: egységnyi fogyasztással számolva 1,7-2,2-szer gyorsabb a „dual virtual core VISC” prototípus.

A vállalat a VISC architektúrára vonatkozóan egy licencelésre alapozó modellben gondolkodik, így a Soft Machines nem gyártana saját processzort. Ezen a ponton több opció lehetséges, nyilvánvalóan a licenc szempontjából a hardveres alapok szükségesek a VISC implementálására vonatkozóan, míg a szoftveresen implementált virtuális utasításarchitektúra már egy másik tényező. Utóbbira vonatkozóan is kell licenc, hiszen például az ARM utasításarchitetúrák attól nem válnak ingyenessé, hogy szoftveres szinten lesznek implementálva. Természetesen a Soft Machines kínálni fog egy saját virtuális utasításarchitektúrát, ami lecserélhető bármire. Akár nyílt specifikációjú virtuális utasításarchitektúra is szóba jöhet, példaként említve a HSAIL-t, vagyis ez a tényező teljesen az ügyfél döntése lesz.

A Soft Machines koncepcióját egyébként sokan az ultramobil piacon abszolút domináns ARM legnagyobb kihívójának tekintik, de valójában nem feltétlenül kell a két cégnek versenytársként néznie egymásra, mivel a Soft Machines olyat kínál, ami az ARM számára is hasznos, így akár össze is foghatnak, kidolgozva egy átfogó licencelésre vonatkozó csomagot a potenciális partnerek számára. Természetesen a kiválasztott vagy egyénileg kialakított processzorrész mellé a szokásos részegységek továbbra is licencelhetők, és ezért is lett az első prototípus SoC, hogy konkrét példát mutasson a potenciális érdeklődők számára.

Abu85

Azóta történt

Előzmények

Hirdetés