Information Technology | Computer architectures » Vékony Miklós - Transmeta processzorok

Datasheet

Year, pagecount:2002, 9 page(s)

Language:Hungarian

Downloads:405

Uploaded:June 18, 2004

Size:90 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

Transmeta Crusoe (Vékony Miklós) David Ditzel, a Transmeta vezetoje, és kollégája David Patterson készített egy híres cikket, melynek címe a "Csökkentett utasításkészletu számítógép" volt. Írásukban kifejtették, hogy a mikroprocesszorok túl nagyok és túl bonyolultak, és ha ezt a komplex rendszert a szilíciumlapra építés helyett szoftveresen modelleznék, növelhetnék a teljesítményt és csökkenthetnék a chip méretét; ez az energia-felvételt és a költségeket is csökkentené. Manapság úgy látszik, visszatér a régi terv. A modern processzorok hardverje képes menet közbeni optimalizálásra és a kód átrendezésére, elágazás-elorejelzésre és számos más trükkre melyek célja ugyanaz: minden lehetséges módon megnövelni az alkalmazások teljesítményét. "Manapság (a RISC processzorokon) hatalmas tervezocsapatok dolgoznak hosszú tervezési ciklusokkal. A továbbfejlodés iránya egyre bizonytalanabb, a lapka mérete

nem csökkentheto tovább (Az eredmény a bonyolult RISC processzorok fejlodésének megtorpanása. ) A leginkább problémás területek a szuperskalár felépítés és a hibás végrehajtás-szerkezet, melyek megakadályozzák a további technológiaugrásokat. A Mips R10000 és a HP PA-8000 sokkal bonyolultabb napjaink CISC processzorainak felépítésénél (pl. Pentium II) is Akkor milyen elonye van a RISC processzoroknak, ha egyáltalán nem egyszerubbek?" Mint Ditzel hangsúlyozta, a modern CPU-k sokkal bonyolultabbak, több anyagot igényelnek és több funkciójuk van mint a korábbi RISC processzoroknak. Ez megnöveli az energiaigényüket, és a magasabb áramfelvétel a processzorok túlzott melegedését okozza. Új problémák, új megoldások Természetesen az energia-felvétel és a hoelvezetés nem fontos probléma egy adatbázis-szervernél, egy grafikus munkaállomásnál vagy a játékoknál. Ezekben a számítógép-környezetekben a nyers ero növelése az

egyetlen cél. Az AMD Athlonja bizonyíték arra mi történik, ha rengeteg processzort szánunk a teljesítményéhes csúcsfelhasználók sebességigényének kielégítésére. Az Athlon hatalmas és gyors. De ahol a gyorsaság ott a meleg is - palacsintát lehetne sütni az Athlon magjában Mindazonáltal az Athlon és riválisa, a PIII jó megoldások bizonyos problémákra. Az AMD és az Intel tervezocsapata is ugyanazon a problémán dolgozik: hogy hozzanak ki minél nagyobb teljesítményt az elöregedett x86-os felépítménybol. A végso cél a puszta sebességnövelés, és mindkét brigádnak a következo dolgokat szem elott tartva kell dolgoznia: - x86-os kompatibilitás - a leheto legnagyobb alkalmazásteljesítmény Mindkét fenti tényezo feltétlenül szükséges a szerver és munkaállomás piacot megcélzó csúcstehcnikájú x86-os CPU-k sikeréhez. De mi van, ha processzortervezok egy csoportja visszamegy a tervezoasztalhoz, és a nulláról indulva kezdi meg más

piacra, más problémák megoldására szánt chipek kifejlesztését? A Transmeta Crusoe csapata ezt tette. Mindent eloröl kezdtek, de a "milyen gyorsra tudnánk csinálni?" helyett a "hogy tudnánk egy chipet a leghatékonyabbra készíteni az x86-os alkalmazások futtatási képességének megtartása mellett?" kérdést tették fel maguknak. A Crusoe fejlesztoi két fo célt jelöltek ki melyet chipjüknek tudnia kell: - teljes x86-os kompatibilitás - a lehetséges legalacsonyabb energiafogyasztás - akkora x86-os alkalmazásteljesítmény, amivel a felhasználók elégedettek maradnak Kiemelve az utolsó megjegyzést, a Crusoe nem 3DMAX renderelésre vagy idojárás szimuláció futtatására készült, sokkal inkább az alacsony-közepes számításigényu szoftverek - mint a szövegszerkesztés, videó vagy hanglejátszás, webböngészés, e-mailek küldése stb. - szánták Még pontosabban: ezen alkalmazások menet közbeni, mobil használatára

készült. A Crusoe csapat ezt a hardveres és a szoftveres technológia nagyszeru keverésével oldotta meg, mely bármely CPU architektúra iránt érdeklodo embert figyelemre késztethet. Koncepció A Crusoe egy hibrid szoftver-hardver mikroprocesszor. A funkciók nagy része, amiket egy normál x86-os CPU hardveresen végez el a Crusoe egy bonyolult, Code Morhphing (kódátalakító) szoftver segítségével teszi. Ugyan ez igaz, de ez könnyen tévútra vezethet, ha nem vizsgáljuk meg közelebbrol. Mint a képen is látható, végül minden a hardverben köt ki. A következo blokkdiagram egy általános, 6-ik vagy 7-ik generációs x86-os CPU felépítését mutatja. Természetesen ez csak sematikus szerkezetet mutat, de hasonlatos a valós képhez. Az olyan modern x86-os processzorok mint a K6, K7 vagy a PIII valójában nem x86-os utasításokat hajtanak végre, hanem ezeket a CPU tömörebb, egységesebb RISC-szeru belso utasításokká alakítja. Hogy ezt megtehessék, a

K7-nek és a PIII-nak nagyon eros dekódoló hardverre van szüksége (a felso kép baloldalán láthatjuk az ennek megfelelo blokkot). Majd minden modern CPU (x86, PPC, Alpha stb.) bemenetén vannak speciális hardverrészek, amik végrehajtás közben optimalizálják és átrendezik a kódot. Minden ilyen rész plusz helyet foglal a lapkán és növeli az áramfelvételt Itt látható a Transmeta Crusoe vázlatos rajza. A kék rész a szilícium, a sárga a szoftver. A Crusoe szilícium része jóval kisebb a hagyományosnál mivel minden optimalizálást és elágazás-elorejelzést eltávolítottak a chiprol és szoftveresen hajtanak végre. Minden ilyen funkciót egy speciális program vesz át, ami valósidoben hajtja végre az alkalmazás által kapott utasításokat. Természetesen semmi sincs ingyen, azzal hogy szoftver veszi át ezeket a teendoket attól még a CPUnak meg kell ezeket csinálnia. A VLIW mag hajt végre minden utasítás-elorejelzést és

regiszterátnevezést. A kizárólagos hardverterület hiánya miatt ezek a szoftverbe ágyazott utasítások és a normál x86-os alkalmazások, az operációs rendszer és minden más egymás között felosztva használják a hardvereroforrásokat és processzorciklusokat. Íme egy kép, hogy muködik ez valójában A sárga blokkok - mint a feljebb lévo képen is - a bemenetnél végrehajtott CPU funkciókat (elágazáselorejelzés, regiszterátnevezés, feladatütemezés stb.), a piros blokkok az operációs rendszert és az alkalmazásokat jelzik. Mindketto egyszerre foglalja a CPU magját Tehát a Crusoe - mint minden processzor - továbbra is átnevez regisztereket, átrendezi az utasításokat, átalakítja az x86-os utasításokat egy belso parancsformába, csak nem egy kizárólagosan erre használt hardverterületen teszi, hanem ehelyett ugyanazokon a részeken ahol az utasítás-végrehajtás, összeadás, kivonás, szorzás stb. zajlik De ezek a szoftveresen

végrehajtott tevékenységek lassítják a dolgokat. Mindazonáltal a Transmeta nagy lépéseket tett azon irányban, hogy ezeket a teljesítmény csökkenésbeli büntetéseket minimalizálja. A mag Még nincs túl sok információ a Crusoe chipjének belsejérol, ezért az alábbiak némelyike spekuláció természetesen megkülönböztetjük a tényeket és a gondolatokat. A Crusoe magja 4 utas, VLIW megvalósítású, négy utasítást hajt végre órajelenként. Az utasításvégrehajtó eszköz a következo részegységekbol áll Lebegopontos számítások egysége (Floating-point Unit, FPU) Egész számos aritmetikai-logikai egység (Integer Arithmetic-Logic Units, ALU), ez végzi az összeadást, kivonást, szorzást stb., és a logikai funkciókat is (AND, OR, NOT stb) Tölto/tároló egység (Load/Store Unit, LSU): ez végzi a memóriakezeléssel kapcsolatos utasításokat Elágazásvégrehajtó egység (Branch Unit, BU A Transmeta táblázatai szerint a Crusoe-nak 64

egész számos regisztere van. A belso utasításokon (regiszterátnevezés) kívu a kódátalakító szoftver ezeket saját muveleteihez is felhasználja. A fenti felületes információk legalább annyi kérdést vetnek fel, mint ahányat megválaszolnak, továbbiakat az elkövetkezo hetek folyamán hoznak majd nyilvánosságra. Atomok és molekulák: az utasításformátum A Crusoe belso utasításformátuma több és kevesebb is az egyszeru VLIW-nél. A végrehajtó részeknek szánt egyedi muveleteket "atomoknak" nevezzük, a RISC muveletek durva megfeleloje. Ezeket az atomokat 128 vagy 64 bites tömbökbe csomagolva kapjuk meg a "molekulát", hasonlatos az EPIC "nyalábjaihoz" vagy a MAJC "csomagjaihoz". Egy 128 bites molekula 4 atomot tartalmaz Az alábbi, a Transmeta tájékoztatójából származó diagramm segít elképzelni muködését. A VLIW program csak ezeknek a molekuláknak egy felsorolása; ez betáplálódik a

mikroprocesszorba és végrehajtják a végrehajtó egységek. A Crusoe hardverje nem rendezi ezt át, nem próbálja megjósolni mi lesz a következo instrukció, hanem végrehajtja, amilyen gyorsan csak tudja. A VLIW és a szuperskalár felépítés A kódátalakító szoftver (Code Morphing) taglalása elott tisztázzuk a VLIW és a standard szuperskalár megvalósítás közötti különbségeket. A hagyományos szuperskalár felépítésnél a programozó egymás utáni sorrendben végrehajtott programokat ír magas szintu nyelveken és ezt ezután lefordítják gépi kódra. A gépi kód is szekvenciális (sorrendi), és a CPU utasításütemezése és küldése rendezi át ezt úgy, hogy párhuzamosan is futhasson. Az ütemezo megvizsgálja a kód egymáson belüli függoségeit és végrehajtás elott átrendezi azt. A végeredmény egy szekvenciális, rendezett kód, amit a processzorba táplálva belül már párhuzamosan is végre lehet hajtani. Ezek a kódrendezo

trükkök a CPU jelentos részét lefoglalják, és sokszor a tranzisztorokat és az órajel ciklusokat tekintve feleslegesek. A "hagyományos" VLIW gép ezeket az átrendezéseket és párhuzamosításokat szoftveresen oldja meg. Az Intel IA -64-hez hasonló még tisztább VLIW felépítésnél ezek már a fordítóprogramban hajtódnak végre. A compiler kibányássza a kód párhuzamos részeit, függoségeit stb és már egy a VLIW magon a leheto leggyorsabb futásra képes, optimalizált kódot gyárt. A Crusoe utasításütemezése mindkét ismertetettol eltéro. Code Morphing (kódátalakítás) Mivel a Crusoe egy szuperskalár gépekre fordított kódokat végrehajtó VLIW gép, a fordítási és az ütemezési terve mindkét típus hibrid sémája. A Crusoe kódátalakító szoftverje megkapja az x86-os program kódját és menet közben újrafordítja a Crusoe natív VLIW utasításszerkezetére. Az újrafordító szoftver kifinomult fordítóalgoritmusokat

használ a kód párhuzamosítási lehetoségeinek és a függoségek vizsgálatára. De miben különbözik mindez az eddig is látott más kódátalakító eljárásoktól, mint az Alpha FX!32-je vagy a SoftWindows-hoz hasonló emulációs program? A hasonló összehasonlítás olyan, mint ha egy lövedéket hasonlítanánk a rakétához; a Code Morphing kiváló. Mint a cikk elején is bemutatott két Crusoe diagrammon is látszott, a sárga rész a Code Morphing réteg. Ez az átalakítórész a CPU és az operációs rendszer/ BIOS között ül, egy speciális ROM-ban tárolják; ez indul elsoként a gép bootolásakor. Miután a Code Morphing elindult, utána töltodik rá az operációs rendszer és a többi alkalmazás. Mint kifejtettük, az x86 alkalmazások és az operációs rendszer kódját a Code Morphing réteg fordítja át a belso mag utasításszerkezetére. Ez a fordítás csak egyszer történik meg, mivel a Crusoe ezeket egy speciális fordítótárban

tárolja. Emiatt nem kell minden végrehajtáskor átfordítani a kódot, hanem csak be kell nyúlni a fordítócache-be és futattható is. A fordítótár mérete bootoláskor állítódik be, de késobb az operációs rendszerbol is méretezheto. A Code Morphing mint láthatjuk ez valóban nagyszeru technikai megoldás, de tovább javítható. A szoftver folyamatosan figyeli az átalakított kódot, azt vizsgálja melyik rész van leginkább használatban. A többször használt kódrészletet a kódátalakító szoftver jobban tudja optimalizálni, tehát minden használatnál egyre gyorsabban futhat. Figyeli a gyakori elágazásokat is és a kódot jegyzetekkel látja el. Ezért az elágazás elorejelzo algoritmus tudja melyik ág volt már végrehajtva és valószínuleg melyiket kell végrehajtani a jövoben - megfelelo eredmények esetén végre is hajtja azt. Ezzel ellentétben a normál processzorok spekulatív végrehajtásánál a hardver buffer nagysága és táblamérete

határozza meg az elágazás és végrehajtás-történetrol tárolható információk mennyiségét. Mivel ezeket a Code Morhphing szoftveresen csinálja, jóval nagyobb kódrészletet "lát be", a végrehajtásminták jóval finomabb leírására képes - ebbol következoen pontosabb az elorejelzés is. A sebesség megorzése A kódátalakító szoftver miatt nagy kihívás elé nézett a Transmeta: fenn kell tartani egy elfogadható teljesítményszintet. Mivel a szoftver és a hardver tökéletes összhangban dolgozik, a kódátalakító szoftver sebességét speciális hardverfunkciókkal növelhették meg. Problémákat okozott az x86-os architektúra megszakításkezelése, mivel ezeket az utasításokat a CPU soron kívül hajtaná végre. Megszakítás következik, ha egy utasítás valamit csinálni akar és problémába ütközik. Ilyenkor az utasítást egy x86-os gép nem tudja kezelni amíg minden elotte lévo utasítás végre nem hajtódik és minden

rákövetkezo utasítás függoben marad. Ilyenkor a Cruse két másolatot készít az x86 regiszterállapotról, egy "muködo másolatot" és egy "árnyékmásolatot". Mindkét másolat akkor készül, amikor a Crusoe betölt egy kódrészletet A kód végrehajtásánál csak a muködo másolat frissül. Ha nincs megszakítás, az árnyékmásolatot felülírja a muködo változat, ha van, a Crusoe szemétbe dobja, amit eddig csinált és nekiáll sorrendben végrehajtani mindegyik utasítást, hogy tudja melyik vezetett megszakításhoz - ekkor kerül képbe az elozoleg lementett árnyékmásolat. A "Long Run" technológia A Crusoe az alacsony energia-felvételt elotérbe helyezve készült, ezért a vállalat a hatékonyságot a teljesítmény elé helyezo új tesztprogramokat használt a chip bemutatására. A tesztek mutatják be a vásárlóknak hogy teljesíti a termék az elé kituzött célokat. Mivel a legtöbb mikroprocesszorfejlesztocsoport

célja a minél magasabb teljesítmény elérése, ezért a tesztek is az itt elért eredményeket mutatják be. De a Crusoe nem a szerverpiacra készül, nem a teljesítményhajszolás volt a tervezok célja, tehát a hagyományos tesztek nem is képesek a kituzött célok megvalósításának bemutatására. Beszéltünk már a Crusoe kis chipméretérol és alacsony energiafelhasználásáról, de konkrét adatok még nem hangoztak el. A 700 Mhz -es processzor (018 mikronos eljárással készül), mindössze 1 Watt áramot fogyaszt. Ezt hasonlítsuk össze az AMD 700 Mhz-es K7-esével (szintén 018 mikron), mely 34 Wattos. És mivel a Crusoe célja a mobil piac, az alacsonyabb energia-felvétel közvetlen kihatással van az: - akkumulátor élettartamára - az alacsony súlyra - a költségekre Ezek a jellemzok teszik ideálissá a terméket a mobil piac számára. A Crusoe megjelenése várható webpadokban, laptopokban, PDA-kban és minden más hordozható készülékben. A

termék fizikai jellemzoktol eltekintve nagyon hatékony is; a leheto legkevesebb energiát fogyasztja. Az Intel egyik technológiája az, hogy lecsökkenti a processzor órajelét ha a laptop nincs az elektromos hálózatra dugva. A Crusoe továbbgondolta ezt az ötletet és egy lépéssel elorébb jár A processzor képes megállapítani mekkora eroforrásokra van szükségünk - attól függetlenül, hogy mit csinálunk - és folyamatosan állítja a feszültséget és az órajelet. Tehát ha a processzor 700 Mhz-en fut, de tevékenységünkhöz csak 400 Mhz szükséges, akkor visszaveszi az órajelet 400 Mhz-re és átállítja a feszültséget is. A felhasználó soha nem veszi észre a változást Egy másik trükk az energia-megorzésre, hogy a North Bridge - a DDR és az SDRAM vezérlokkel együtt - a chip integrált része; ez csökkenti az egész rendszer áramfelvételét. Az integráció növelheto a grafikai és az audióképességek chipbe építésével, vagy bármivel,

amivel a rendszer energiafelvétele csökken. A verseny Eddig még nem említettem meg, hoyg a Code Morphing szoftver átalakítható, tehát nem csak x86-os architektúrákat tud támogatni. Valószínuleg az Alpha vagy a PPC jobban illeszkedne a Crusoe magjához, nagyobb teljesítmény lenne így elérheto. Mielott félrevezeto következtetéseket vonnánk le a chippel kapcsolatban, meg kell jegyeznünk, hogy nem igazán ellenfele az Intelnek. De a mobil piac nagy növekedési potenciállal rendelkezik, folyamatosan bovül, és ez a következo 10-20 év folyamán biztosan így fog maradni. Egy új chipgyártó legkönnyebben a növekvo piacokon tud eloretörni, ezt a Transmeta is tudja: terméke bemutatójában többször is összehasonlította azt az Intel Pentium vonalával. Kézenfekvo a mobil és laptoppiacon kezdeni az Intel elleni versenyt; ugyanilyen kézenfekvo, hogy hamarosan az Intel, AMD, Compaq és a Sun által uralt csúcsszerver és a munkaállomás piacokra is be fog

törni. A Linux kiválóan skálázható operációs rendszer, mobiltelefonokon és adatbázisszervereken is futtatható. A Linux csak egy bármin futatható kernel, amihez szükség esetén további funkciók adhatók hozzá. Idézet a technikai dokumentácioból: A kezdeti Transmeta termékeknél - a TM3120-es és a TM5400-es modell - a hardvertervezok a legkisebb hely és energiafelhasználásra törekedtek. A tranzisztorok háromnegyedének eltávolításával és a szoftveres megoldással csökkentették az áramfelvételt és a lapka méretét. Így a jövobeni hardvertervezok erre az alapra másfajta felépítményeket húzhatnak fel. Más kérdésekre más válaszokat kapunk A bonyolult x86-os utasítások szoftveres dekódolásával a Transmeta arrébb húzta a hardver és a szoftver közötti határvonalat. Ez a vonal egy másik terméknél, pl egy szerverprocesszornál szintén máshova kerülhet. Mint látható, a Code Morhing szoftver moduláris szerkezetu, bármilyen

rész visszahelyezheto bele. Ha valamelyik részt nagyobb teljesítményunek szeretnénk, csupán vissza kell helyeznünk a hardverbe. A Crusoe egy extrém szélsoség, a "tegyünk mindent a hardverbe" és "legyen minél kisebb a hardver" spektrum utóbbi szélén áll. A Transmeta már bizonyított egy nagyon bonyolult rendszernél (a chip 2/3a szoftveresen muködik), így el lehet indulni egy másik (egyszerubb) irányba, el lehet kezdeni a szilíciumlapka újbóli, de már átgondoltabb felépítését. A chip magja körül egy szoftveres réteg van, tehát átalakításnál csak ezt a réteget kell átalakítani. A fenti képen két Crusoe chip látható, mindketto némileg más bensovel (a Windows chipeknek speciális utasításokat ismernek a nagyobb gyorsaság eléréséhez), de mindketto teljesen x86 kompatíbilis. Mivel ezek a töltelék funkciók és képességek nem a chipbe vannak integrálva, könnyebb magasabb teljesítményt kihozni belole.

Források: SuperGamez Transmeta ZDnet Ars Technica Alexander Klaiber, Transmeta Corp