Vyšlo na www.novinky.cz dne 24.1.2000
Vytištěno z adresy: http://www.earchiv.cz/anovinky/ai3561.php3

Transmeta a její Crusoe

Po pěti letech přísného utajování je konečně známo, na čem pracovala tajemná firma Transmeta: jde o nový druh mikroprocesoru nazvaného Crusoe, který by mohl způsobit skutečnou revoluci v mobilních zařízeních.

[Obr: crusoelogo.gif (5889 Bytes)]
Minulý týden se ve světě počítačů odehrálo něco, co by mohlo výrazně ovlivnit budoucnost celého sektoru, a zejména pak segmentu mobilních zařízení. Dosud nepříliš známá firma jménem Transmeta poprvé představila veřejnosti vývojovou řadu mikroprocesorů s označením Crusoe, určenou pro malá mobilní zařízení typu PDA či mobilních telefonů a pro notebooky. Skutečně převratné jsou jejich vlastnosti:
  • Procesory Crusoe jsou univerzálnější než procesory Intel - dokáží zpracovávat instrukční kód intelských procesorů, ale stejně tak dokáží zpracovávat instrukční kódy jiných procesorů či dokonce příkazy jazyků vyšší úrovně (například tzv. byte kód Javy).
  • Vlastnosti procesorů Crusoe jsou definovány programovými prostředky (tj. jejich funkčnost lze měnit, např. aktualizovat formou softwarových updatů a upgradů).
  • jsou menší, lacinější a zřejmě i srovnatelně výkonné jako intelské procesory.
  • Jsou úspornější co do spotřeby energie, a to až několikanásobně, navíc podporují efektivní mechanismy šetření energií.

Co z těchto jejich vlastností vyplývá? Zejména to, že "výpočetní výkon" dnešních počítačů, realizovaný stávajícími procesory, bude možné "vměstnat" do podstatně menších, lacinějších, univerzálnějších a energeticky mnohem úspornějších zařízení. Procesory Crusoe nemíří do stolních počítačů či dokonce do oblasti výkonných serverů, ale do oblasti lehkých přenosných zařízení a zařízení mobilních - umožní například vyrábět výkonné notebooky, které vydrží fungovat na baterie celé dny (díky své výrazně menší energetické náročnosti oproti stávajícím procesorům). Dále umožní realizovat dostatečně výkonná miniaturní zařízení v mobilním provedení, tedy například v provedení malého PDA či mobilního telefonu, ale přesto s výpočetním výkonem stávajícího stolního počítače.

Kdo stojí za Transmetou?

Kdo je ona tajemná firma Transmeta, která nyní přichází s něčím tak zajímavým? Kdo za ní stojí?

Odpověď je následující: jde o firmu založenou v roce 1995, kde jinde než v USA (v Santa Claře v Kalifornii). Mezi zakladateli lze nalézt zvučná jména jako Paul Allen (spoluzakladatel Microsoftu) a mezi investory patří například George Soros či Deutsche Bank. Prezidentem a CEO Transmety je David Ditzel, který dříve působil u Sun Microsystems (u vývoje procesorů SPARC) a ještě předtím se podílel na vývoji prvních mikroprocesorů u AT&T. Ale snad nejznámějším jménem, které lze mezi zaměstnanci Transmety najít, je jméno Linuse Torvaldse, autora Linuxu.

Vše tedy nasvědčuje tomu, že nejde o žádný humbuk a nafouknutou bublinu, ale o skutečně seriózní záležitost. Dokládá to ostatně i celá řada dodnes exoticky znějících patentů, které Transmeta nastřádala - a až do veřejného vystoupení minulý týden udržela vše v tajnosti, také pomocí více než 2000 dohod o nezveřejnění (tzv. non-disclosure agreements)

V čem je novum?

Vlastnosti procesorů Crusoe, naznačené v úvodu článku, představují opravdu velký kvalitativní skok oproti vlastnostem stávajících intelských procesorů (zejména pokud jde o velikost, cenu, spotřebu, univerzálnost). Je proto na místě otázka, kde se tento kvalitativní skok vzal? Má Transmeta k dispozici o tolik dokonalejší technologie návrhu a výroby čipu než Intel? Nemá, a pokud jde o sériovou výrobu, nemá technologie dokonce vůbec žádné (čipy Crusoe bude vyrábět, resp. již vyrábí IBM). Vše je důsledkem celkově odlišného přístupu k architektuře a fungování mikroprocesoru.

Procesory firmy Intel jsou dnes sice výkonné, ale současně velmi složité, a za svou výkonnost a složitost platí vysokou daň, například ve spotřebě energie (což se projevuje vysokým tepelným vyzařováním, a procesory je třeba chladit). Přitom největší část "složitosti" intelských procesorů je v jejich obvodovém návrhu (resp. v jejich hardwaru), a jen menší část celkové "složitosti" je realizována programovými prostředky (ve formě tzv. mikroprogramů, které řídí provádění jednotlivých instrukcí).

Naproti tomu Transmeta vsadila na jiné rozložení celkové "složitosti": dává jí mnohem méně do obvodového návrhu (do hardwaru), a mnohem více ji realizuje programovými prostředky. Tímto lze vysvětlit menší rozměry, menší spotřebu a také nižší cenu: menší a jednodušší hardware může být menší, lacinější a bude také mít menší spotřebu.

Co je Code morphing?

Způsob, jakým je v procesorech Crusoe realizována "složitost" programovými prostředky, je zřejmě to nejrevolučnější, co na těchto procesorech lze nalézt. Pro pochopení, o co jde, je vhodné začít malou oklikou (techničtěji laděné čtenáře raději rovnou odkáži na white paper Transmety, kde jsou základní principy popsány).

Jednou z často používaných technik ve světě počítačů je tzv. emulace, kdy jeden výpočetní prvek (procesor s programem fungujícím jako tzv. interpret) postupně načítá jednotlivé instrukce programu určeného pro jiný procesor a okamžitě vykonává to, co tyto instrukce požadují. Tím vlastně vytváří iluzi, že dotyčný program je přímo prováděn (běží) na "svém" procesoru, i když ve skutečnosti tomu tak není (je pouze interpetován). Takovýmto způsobem je například řešen jazyk Java - jeho zdrojový program je přeložen do určitého mezitvaru (tzv. byte kódu), který je pak na různých platformách interpretován - díky tomu mohou programy v Javě "běžet" kdekoli, na jakémkoli procesoru.

Zásadní nevýhodou právě popsané interpretace je ovšem její komplikovanost a zdlouhavost daná tím, že vše musí být řešeno programovými prostředky (v interpretačním programu). Celkové zpomalení o stovky procent (oproti situaci, kdy jsou instrukce přímo zpracovávány procesorem) nemusí být žádnou vzácností.

Jednou z technik, která byla zavedena právě v souvislosti s Javou, je tzv. Just-in-Time (JIT) kompilace (neboli: překlad "na poslední chvíli"). Spočívá v tom, že původní instrukce, které by jinak byly interpretovány, se místo interpretace přeloží do strojových instrukcí cílového procesoru a pak jsou jím okamžitě a přímo provedeny. Samotný překlad samozřejmě "něco stojí" (určitý čas a výpočetní kapacitu), ale může se velmi vyplatit, zejména pokud jde o část programu, která je prováděna opakovaně (a naopak se nemusí vyplatit, pokud se příslušná část programu provede jen jednorázově).

Nyní zpět k čipům Crusoe - ty jsou schopny fungovat jako interprety, tj. interpretovat instrukce jiných procesorů, mezi nimi i intelských procesorů. Chovají se ovšem inteligentně a samy se rozhodují, kdy je vhodné určitou část kódu (programu) pouze interpretovat, a kdy je naopak vhodné ji přeložit (na principu JIT) do svých vlastních instrukcí (které jsou typu VLIW, Very Long Instruction Word). Dokonce si pomáhají tím, že si udržují poměrně rozsáhlou vyrovnávací (cache) paměť již přeložených částí kódu, tak aby je při jejich opakovaném výskytu již nemusely znovu překládat.

Tím ale inovativní způsob fungování čipů Crusoe zdaleka nekončí. Využívá totiž ještě techniky optimalizace, známé a používané na úrovni překladačů (kompilátorů), konkrétně těch jejich částí, které se zabývají generováním kódu. Jde v zásadě o to, že Crusoe analyzuje zdrojový kód a snaží se jej optimalizovat - například odstranit nadbytečné instrukce či zbytečné činnosti, nahradit méně efektivní "obraty" (například přesuny dat) efektivnějšími atd. Navíc musí Crusoe dávat pozor na to, které činnosti mohou být prováděny souběžně a které nikoli, tak aby byla zachována logika původně sekvenčního zdrojového programu.

V zásadě tedy jde o to, že procesory Crusoe velmi "vymakaným" způsobem a "za chodu" přetvářejí zdrojový kód (například posloupnost instrukcí intelských procesorů) do svého vlastního strojového kódu, který okamžitě provádějí. Autoři z Transmety tomu říkají "morfování kódu" (code morphing). Je to jistě velmi složité, tak jako je ostatně velmi složitý i návrh intelských procesorů - zde je ale většina této "složitosti" realizována v "morfovacím" programu, který je natažen do samotného čipu Crusoe (a jeho fungování je maximálně podporováno architekturou samotného procesoru).

Přitom řešit ve fázi vývoje složitost programového vybavení je podstatně schůdnější (a tudíž i lacinější a rychlejší) než řešit srovnatelnou složitost obvodového návrhu. Pokud je někdy potřeba změnit vlastnosti takto fungujícího procesoru, například tak aby "přijímal" strojový kód určený pro nový intelský procesor (nebo pro nějaký jiný procesor nebo třeba byte kód Javy), stačí mu velmi jednoduše a rychle nahrát nový morfovací program.