Crusoe pro mobilní počítače

Nedávno vstoupil na trh x86 kompatibilních procesorů nový výrobce. Je jím společnost Transmeta a svůj výrobek nazvala...


Nedávno vstoupil na trh x86 kompatibilních procesorů nový výrobce. Je jím
společnost Transmeta a svůj výrobek nazvala Crusoe. Procesory, které se
vyznačují velice nízkou spotřebou energie a neobvyklým designem, jsou k
dispozici ve dvou výkonnostních variantách, z nichž ta slabší je výrobcům k
dispozici už dnes.
Svou informační politikou, tolik odlišnou od zvyku v oboru, vzbuzovala
Transmeta zájem komentátorů počítačových časopisů. Firma totiž nechtěla
zveřejnit své plány, dokud nebude mít v rukách konkrétní výrobek. Vědělo se
jen, že Transmeta pracuje na procesorech pro mobilní zařízení. Vzhledem k
přítomnosti Linuse Torvaldse ve vývojovém týmu se spekulovalo i o tom, že se
snaží implementovat Linux přímo na čip.
Kromě nízké spotřeby patří k přednostem procesorů Crusoe i software pro překlad
x86 instrukcí. Vzhledem k tomu, že bude obvykle uložen ve Flash paměti, bude
možné jej upgradovat a opravovat v něm chyby, což je u klasických řešení
nemožné. Další zajímavou vlastností je schopnost přizpůsobovat výkon náročnosti
úkolu, který má procesor vykonávat. To ještě dále zvyšuje dobu běhu na baterie.
Výroba procesorů je velmi náročná a nákladná záležitost. Proto je nebude
Transmeta vyrábět sama, ale nechá si je vyrábět v továrnách IBM. Tím se dostane
ke stejným technologiím, které využívají dva největší výrobci x86 procesorů
Intel a AMD.
Konstrukce
Hardware obou procesorů Crusoe je založen na principu VLIW (Very Long
Instruction Word). Jedno kódové slovo dlouhé 64 nebo 128 bitů může obsahovat až
4 instrukce, kterým se říká atomy. Atomy se zpracovávají paralelně ve čtyřech
funkčních jednotkách: v jednotce pro práci s celými čísly, v jednotce pro práci
s čísly s plovoucí desetinnou čárkou, ve větvící jednotce a v jednotce pro
čtení a ukládání dat. K dispozici je 64 registrů, z nichž některé jsou
využívány pro ukládání stavu emulovaného x86 procesoru, jiné jsou pro x86 kód
neviditelné a slouží k překladu x86 instrukcí do kódu procesoru. Stavové
registry mají stejnou strukturu jako registry x86, aby se zrychlila emulace.
VLIW jádro procesoru tedy může vykonat najednou až 4 instrukce, ale záleží
samozřejmě na vykonávaném kódu, jestli se to opravdu podaří. Procesory vyráběné
Intelem a AMD také dokáží vykonávat více instrukcí najednou a překládají x86
kód do vlastních takzvaných mikrooperací. Jejich superskalární architektura
dovoluje vykonávání instrukcí mimo pořadí a "seřazení" výsledků tak, aby to
odpovídalo sekvenčnímu vykonání původních x86 instrukcí. Rozdíl je v tom, že
hardwarový překlad superskalárních procesorů může najednou zpracovat vždy jen
jednu x86 instrukci, Code Morphing dokáže pracovat s větší částí kódu a to mu
dovoluje lépe optimalizovat původní kód a vytvářet z něj VLIW instrukce. Ty se
vykonávají sekvenčně, na rozdíl od superskalární architektury, kde se
mikrooperace mohou vykonávat mimo sekvenční pořadí.
K překladu a zpětnému dekódování výsledků se u superskalárních procesorů
používá hardware. Jeho eliminací a nahrazením Code Morphingem ušetřila
Transmeta až tři čtvrtiny tranzistorů na čipu a toto číslo přibližně odpovídá i
zmenšení spotřeby v porovnání s konkurencí. Další výhodou Code Morphingu je
odstínění VLIW architektury od kódu programu. U VLIW procesorů se totiž změna
architektury promítne přímo do instrukční sady procesoru a bylo by nutné pro
každý nový procesor znovu překládat veškerý software. V tomto případě je nutné
pouze modifikovat Code Morphing a ostatní se nemusí měnit.
Code Morphing samozřejmě má nějakou režii a spotřebovává čas procesoru na
vlastní běh. Díky mechanismům, které mu dovolují lepší optimalizaci kódu v
porovnání se superskalárními procesory, však není pokles výkonu tak výrazný.
Při vykonávání x86 kódu se kontroluje četnost vykonávaných částí programu a
podle toho se proces dekódování instrukcí přizpůsobuje. Nejprve jsou instrukce
dekódovány co nejrychleji bez optimalizace. Když Code Morphing zjistí, že se
daná sekvence často opakuje, optimalizuje její vykonávání a její překlad si
uschová do zvláštní cache paměti, ze které si jej při dalším průchodu vyzvedne.
Kromě toho do kódu cyklů přidává sledovací instrukce a na základě vyhodnocení
četnosti průchodu cyklem jej později optimalizuje. Tím, jak se Code Morphing
"učí", se běh aplikace postupně zrychluje.
Zatím jsme mluvili o tom, co se děje, když procesor zpracovává kód sekvenčně.
Při konstrukci procesoru ale museli konstruktéři myslet i na přerušení, zápis a
čtení z paměti a sebemodifikující kód.
Stejně tak jako superskalární procesory i Crusoe vykonává několik instrukcí
najednou a může se stát, že jedna z nich způsobí přerušení, např. výpadek
stránky. Instrukční sada x86 předpokládá, že při příchodu přerušení jsou
všechny instrukce, které předcházely té, která jej způsobila, dokončeny a další
instrukce ještě nebyly vykonány. To samozřejmě pro VLIW instrukce vykonávané
najednou neplatí. Proto jsou všechny registry odpovídající architektuře x86
zdvojeny. Každý z nich má pracovní a stínovou verzi. Normálně atomy pracují jen
s pracovní verzí. Po jejich vykonání se obsah pracovních registrů kopíruje do
odpovídajících stínových registrů. V případě, že vznikne, nějaké přerušení,
systém se vrátí až na začátek odpovídajícího překladu, tj. části odpovídající
jisté x86 sekvenci, stínové registry (do kterých se výsledek operace ještě
nepromítnul) se okopírují zpět do pracovních a kód se znovu vykoná sekvenčně,
aby se našlo přesné místo přerušení. Zápis do registrů je tedy ošetřen jejich
zdvojením. To samozřejmě v případě zápisu do paměti není možné. Proto existuje
"gated store buffer", který uchovává změny obsahu paměti do okamžiku, kdy je
jasné, že přerušení nenastalo a změny jsou platné.
Dalším problémem, který musel být vyřešen, je sebemodifikující kód. Pokud
program zapíše sám do sebe, nemůže procesor použít už jednou přeložený kód.
Základní strategií Code Morphingu je chránit paměťovou stránku s kódem proti
zápisu a v případě pokusu o něj, se zneplatní všechny překlady instrukcí z této
stránky. Tak, jak se celý systém během práce programu "učí", je tento
jednoduchý, ale časově náročný způsob nahrazován jinými technikami, které zatím
Transmeta nepublikovala.
Kromě řešení výše uvedených problémů dokáže Code Morphing optimalizovat běh
programu způsobem, který se až dosud nedal vůbec použít. Díky tzv. alias
hardwaru totiž umí vyloučit zbytečné přístupy do paměti. To je něco, s čím si
kompilátory neporadí.
Díky Code Morphingu má systém Crusoe dostatek informací o skutečné zátěži
procesu a to se využívá u modelu TM5400 ke snížení spotřeby systémem LongRun.
Podle náročnosti vykonávaného programu může systém LongRun snižovat jak
frekvenci, tak napájecí napětí procesoru, což dále snižuje celkovou spotřebu
systému, např. desetiprocentním snížením napětí i frekvence o 30 %.
Verze procesorů
Principy konstrukce procesoru Crusoe známe, podíváme se tedy konkrétněji na
jeho dvě zatím představené verze.
TM3120 je určen pro lehká přenosná zařízení typu Webpad (bezdrátový přístup k
Internetu). Obsahuje 64 KB instrukční a 32 KB datové cache, řadič PCI sběrnice
a řadič paměti SDRAM. Pracovní frekvence jádra může být až 400 MHz. Code
Morphing se nahrává ze sériové paměti a zabere 8 až 16 MB operační paměti.
Spotřeba se pohybuje mezi 1,4-2,9 W podle typu aplikace. Procesor je k
dispozici ihned a jeho použití ve svém Web padu už oznámila společnost Diamond
Multimedia. Jeho cena je 65-89 dolarů podle pracovní frekvence.
TM5400 je určen pro lehké a výkonné notebooky. Oproti TM3120 je vybaven
technologií LongRun, která dokáže dále snížit spotřebu energie a vyrábí se
0,18mikronovou technologií. Jeho pracovní frekvence se pohybuje v závislosti na
zátěži mezi 500-700 MHz a napětí mezi 1,2-1,6V, spotřeba je potom 1-2 W v
aktivním stavu a 30 mW v režimu DeepSleep. Kromě samotného procesoru najdeme na
čipu jestě 64 KB L1 cache pro kód, stejné množství pro data, a 256 KB L2 cache
pracující v režimu write-back. Dále čip obsahuje řadič pamětí SDRAM a PCI
řadič. Code Morphing software se nahrává ze sériové ROM paměti a pro svůj běh
vyžaduje 8-16 MB paměti, která není dostupná pro x86 kód. Jeho cena by měla být
podle verze 119-329 dolarů.
Konkurence
A jak je na tom případná konkurence Transmety? V první řadě je tu Intel se svým
Mobil Pentiem III a technologií SpeedStep, která má šetřit energii. Procesory
vybavené SpeedStepem běží buď na plný výkon při napájení ze sítě, nebo se
přepnou na nižší frekvenci při práci na baterie. Uživatel může přepnout na
nejvyšší výkon i při práci na baterie, a získat tak plný výkon. V porovnání s
LongRunem jde o jednodušší technologii, která není závislá na momentální zátěži
procesoru. TM5400 má v porovnání s MPIII čtyř až osminásobně menší spotřebu,
ale výkonnostně se s MPIII nemůže srovnávat. Podle Intelu chtějí uživatelé co
nejvyšší výkon, podle Transmety zase vytrvalost.
Mobilní procesory AMD zatím nemají žádnou speciální technologii pro vylepšení
energetické bilance systému. Jejich výhodou je v současné době cena a
dostupnost hotových počítačů na trhu.
Na druhé straně stojí procesory s podporou Windows CE, jako je třeba Intel
StrongArm. Mají propracovaný systém šetření energie a výkonnostně na tom budou
brzy stejně jako Crusoe, ale jejich Windows nejsou ta "pravá" se spoustou
aplikací. Pokud se Crusoe ujme, bude jim opravdu zdatnou konkurencí. Sama
Transmeta vidí svého soupeře v mobilních verzích Pentií a s nimi také své
procesory srovnává.
Na začátku zaznělo jméno Linuse Torvaldse. Jak je to tedy s tím Linuxem? Linus
se podílel na vývoji Code Morphingu a vyvíjel také Mobile Linux verzi Linuxu
přizpůsobenou práci na bezdiskových zařízeních s malou spotřebou. Taková
zařízení pro bezdrátový přístup k Internetu mají podle mnoha expertů před sebou
velkou budoucnost.
Shrnuto...
Vidíte, že procesory Crusoe jsou opravdu zajímavé, ale mají šanci se proti
Intelu a AMD prosadit i na trhu? Transmeta zvolila segment trhu, který
představuje skulinku mezi procesory pro přenosná zařízení a x86 kompatibilními
procesory do notebooků. Vzhledem ke stálému nárůstu počtu prodaných notebooků a
vzrůstající popularitě různých přenosných počítačů a bezdrátového přístupu k
Internetu, se možná trefili do černého. Jejich technologie je opravdu dobrá v
úsporách energie, i když na druhou stranu se v propagačních materiálech taktně
mlčí o potřebě instalovat dodatečnou paměť pro Code Morphing. Tím se samozřejmě
zvedne i spotřeba energie.
Transmeta také určitě ještě nevynesla všechny trumfy. Vždyť nápad s realizací
části funkce procesoru softwarovou cestou jim umožňuje rychle vyvíjet další a
další varianty, a to nejenom pro instrukční sadu x86. Co třeba taková Java?
Bude jistě zajímavé sledovat, kudy příště povede dělící čára mezi hardwarem a
softwarem. Prý záleží na typu aplikace. Uvidíme. Transmeta je teprve na začátku
a zostřená konkurence na trhu přenosných počítačů může znamenat jenom jedno.
Ceny dolů!
Co ukrývá Crusoe?
Technologie Crusoe je založena na kombinaci hardwaru navrženého s ohledem na
vysoký výkon a nízkou spotřebu a softwaru zajišťujícího binární kompatibilitu s
instrukční sadou x86. Znamená to jediné. Máme k dispozici procesor s velmi
nízkou spotřebou energie, schopný spouštět Windiws a všechny aplikace pro ně
napsané. Jednotlivé technologie použité při návrhu čipu Crosoe nejsou nové, ale
způsob jejich kombinace je opravdu zajímavý. Hardwarová část je tvořena VLIW
(Very Long Instriction Word) procesorem se čtyřmi paralelně pracujícími
výkonnými jednotkami a tzv. Code Morphing softwarem, který překládá x86
instrukce do kódu procesoru. Instrukční sada x86 se tak stala nejnižším
softwarovým rozhraním.
Výkon? ale jak ho měřit?
Nejlépe nad soupeřem zvítězíme, když určíme vlastní pravidla hry. Známá pravda
našla uplatnění v návrhu Mobile Platform Benchmarks. Transmeta se snaží
dokázat, že výkon mobilních procesorů se nedá měřit jenom jejich rychlostí.
Požadavek na zohlednění výdrže a schopnosti dodat aplikacím přesně tolik
výkonu, kolik potřebují a pokud možno nic navíc, se jeví jako rozumný. Ovšem na
druhou stranu docela odpovídá specifikaci procesorů Crusoe. Jaký div, že v
těchto testech Crusoe vede.
Ale jak jinak měřit výkon procesoru, který se programům přizpůsobuje jako
chameleon. Pokud standardní benchmark proběhne jenom jednou, těžko se může
projevit optimalizační schopnost Code Morphingu. Nehledě na to, že by asi
nebylo těžké optimalizovat Code Morphing na provádění testovacích úloh.
Rozhodně by se to nestalo poprvé.
0 0322 / wep









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.