Programinės įrangos lustas

Kuo „Transmeta“ generalinis direktorius Dave'as Ditzelis verčia jus juo tikėti? Galbūt taip jis be vargo vartoja tokius žodžius kaip kietas ir tvarkingas. Galbūt taip yra todėl, kad jis turėjo drąsos sukurti savo pirmaujančią mikroschemų kompaniją „Intel“ būstinės akyse. Galbūt taip yra todėl, kad jis niekada nebaigia sakinio, todėl jis taip entuziastingai žiūri į Crusoe, jo įmonės mikroprocesorių prekės ženklą. Nuo praėjusių metų sausio, kai apie Crusoe buvo paskelbtas audringos fanfaros, iki rugpjūčio vidurio, kai bendrovė pateikė pareiškimą apie tai, kad jis viešai paskelbs, Ditzelis užkimusi stumdamas Crusoe lustą. Nesvarbu, ar prieš 200 inžinierių, ar prieš vieną reporterį, jo žinutė buvo nepakartojama: Crusoe – su „Intel“ suderinamas lustas, turintis dešimtadalį „Pentium III“ galios poreikio – amžiams pakeis skaičiavimo pasaulį. „Crusoe“ yra mažos galios, suderinamas ir pasižymi dideliu našumu, – sakė jis viename iš interviu serijos, surengtų prieš rugpjūtį pateikiant paraišką. Tai mūsų mantra.





Šią vasarą bendrovė ir Ditzel tylėjo tyliam laikotarpiui, kuris po kiekvieno pirminio viešo akcijų siūlymo. Tačiau iki to laiko „Crusoe“ žinutė susikūrė savo gyvenimą: nuo „Apple iMac“ Silicio slėnyje nebuvo tokio šurmulio, kokį Crusoe iškėlė į krantą. Nenuostabu, kad „Slėnio insaider“ skudurai „Upside“ ir „Red Herring“ praėjusį pavasarį paskelbė „Transmeta“ savo viršelio istorijas, tačiau prieš prasidedant ramiam laikotarpiui Ditzelis taip pat buvo cituojamas „Time“, „USA Today“ ir daugybė kitų vartotojų leidinių. „Transmeta“ viešinimo pastangos iš dalies prisidėjo prie to, kad bendrovė pasamdė „Linux“ autorių ir atvirojo kodo programinės įrangos guru Linusą Torvaldsą. Torvaldsas buvo „Transmeta“ programinės įrangos projektavimo komandos dalis ir pastaruoju metu dirbo prie „Linux“ versijos, kuri papildys „Crusoe“ programą sprogstančioje mobiliųjų įrenginių rinkoje.

Spausdinkite kitą kompiuterį

Ši istorija buvo mūsų 2000 m. lapkričio mėn. numerio dalis

  • Žr. likusią numerio dalį
  • Prenumeruoti

Pats IPO yra niūrus, uždaras dokumentas, kuris mažai atskleidžia Transmeta ateities dizaino planus ir yra kupinas įspėjimų apie tai, kas gali nutikti Transmeta kelyje į pelningumą. Iš tiesų, šio rašymo metu nei vienas „Crusoe“ produktas nebuvo išsiųstas pastebimai dideliais kiekiais. Bendrovė prarado 41 mln. USD 1999 m. ir dar 43 mln. USD per pirmuosius šešis 2000 m. mėnesius; prospektas aiškiai parodo, kad investuotojai neturėtų tikėtis pelningumo artimiausioje ateityje.



Tačiau vis dėlto būtų sunku rasti startuolį, kuris būtų pradėtas palankiau arba su geresne pradinių klientų sudėtimi. Praėjusių metų gegužę „America Online“ ir „Gateway“ paskelbė, kad „Crusoe“ maitins naują buitinių prietaisų liniją, kuri turės belaidžio tinklo prieigą. IBM, Hitachi, NEC ir Fujitsu pasekė pavyzdžiu birželį ir paskelbė apie Crusoe pagrindu pagamintus nešiojamuosius kompiuterius, kurie visą dieną veiks su įprastomis baterijomis. „Sony“ rugpjūtį paskelbė, kad „Crusoe“ pateiks būsimą nešiojamųjų kompiuterių „Vaio PictureBook“ serijos versiją. Neblogai lustų įmonei, neturinčiai gamybos gamyklos ir patirties, kurios pagrindinis turtas, kaip sako Ditzel, yra geresnio būdo sukurti mikroprocesorius vizija.

Nuo šiol „Transmeta“ metodas bus išmaniausia, greičiausia, pigiausia, patikimiausia ir lanksčiausia technologija, išsprendžianti praktiškai bet kokią su kompiuterija susijusią problemą, sako Johnas Whartonas, mikroprocesorių projektavimo konsultantas, Stanfordo profesorius ir buvęs „Intel“ projektavimo inžinierius. Prieš 50 metų sudėtingiausios sistemos buvo sukurtos naudojant vakuuminius vamzdžius. Prieš dešimt metų moderniausi buvo sudėtingi, visiškai integruoti megaprocesoriai, tokie kaip Pentium ir PowerPC. Manau, kad „Transmeta“ yra kitas esminių dizaino technologijų proveržis.

„Transmeta“ liepsnojantis pėdsakas atves prie lustų, naudojančių žymiai mažiau elektros energijos. Tai gera žinia visiems, kurie naudoja nešiojamąjį kompiuterį ar kitus nešiojamus elektroninius įrenginius. Tačiau dar giliau, „Transmeta“ rado būdą, kaip radikaliai pagerinti lustų kūrėjų gebėjimą keisti savo gaminius neatstumiant didžiulių programinės įrangos bibliotekų, kurios buvo sukurtos veikti tam tikroje aparatūros dalyje. Jie tam tikra prasme pašalino įkyrų valdytoją iš lustų gamybos pažangos variklio.



Išsivadavimo architektūra

Nors spaudoje buvo daug nušviesta apie „Transmeta“ kaip apie naują įmonę, dažnai pasimeta pati technologija. Crusoe yra hibridinė programinės ir (arba) aparatinės įrangos lustas, kurio vienintelis tikslas yra paleisti programinę įrangą, skirtą kitiems mikroprocesoriams. Didžiąją dalį to, ką „Intel“ ir kiti daro silicyje, „Transmeta“ perėjo prie programinės įrangos. Privalumai? Pirma, patys lustai sunaudoja mažiau silicio, todėl juos pigiau pagaminti. Antra, paprastesnis lustas sunaudoja mažiau energijos – tai ypač svarbu nešiojamiesiems kompiuteriams. Tačiau turbūt didžiausias poveikis yra tai, kad kurdama „Crusoe“ „Transmeta“ sugalvojo naujovišką metodą, kuriame nėra daug problemų, kurios vargina lustų dizainą pastaruosius du dešimtmečius.

Iki Crusoe kiekvienas kada nors sukurtas mikroprocesorius turėjo savo paskelbtų instrukcijų rinkinį – aiškią sutartį, kurioje nurodyta, kaip lustas veiks su programine įranga. Instrukcijų rinkinys žada, kad jei kūrėjai parašys programinę įrangą, kuri atlieka X, lusto veiksmas bus Y-dabar ir amžinai.



Problema ta, kad sukūrus naują lustą jis užrakinamas laiku. Tobulėjant lusto programinės įrangos inventoriui, tampa beveik neįmanoma tobulinti instrukcijų rinkinio. Programinės įrangos kūrimas taip pat trukdo, nes bet kuri nauja programa turi paklusti lusto instrukcijų rinkinio dėsniams, kad veiktų. Mikroprocesorių dizaineriai nori, kad lustai veiktų greičiau, tačiau jie taip pat turi priversti juos veikti esamoje programinėje įrangoje. Taigi jie sparčiai didina gudrybes, tokias kaip instrukcijų sekos nustatymas procesoriui. Tačiau didelių pokyčių įgyvendinti beveik neįmanoma. Tai tarsi labai blogos trijų kojų lenktynės, kai programinės ir techninės įrangos inžinieriai yra pririšti prie klubų ir niekada negali greitai pereiti prie naujausių produktų, todėl jie priklauso nuo vienas kito dizaino pasirinkimų ir ankstesnių pasirinkimų. kartos.

Pats Ditzelis turi tiesioginės patirties, kai sunku iš esmės patobulinti pradinį lusto dizainą. „Sun Microsystems“, kurioje dirbo prieš įkurdamas „Transmeta“ 1995 m., jis buvo atsakingas už įmonės SPARC prekės ženklo mikroprocesoriaus instrukcijų rinkinio keitimą. Nors jis pradėjo projektą 1990 m., Naujasis instrukcijų rinkinys buvo paruoštas naudoti tik praėjusiais metais. Jums reikia laiko, kad pramonė pasivytų, atsirastų programinė įranga, kad programos būtų konvertuotos, Ditzel sakė TR prieš bendrovės IPO. Tai tikrai didelis dalykas.

Programinės įrangos kamufliažas



Norėdami išplėšti savo lustus iš pasenusių instrukcijų, mikroprocesorių dizaineriai periodiškai viską išmes ir pradės iš naujo su visiškai nauju lustu su visiškai nauju instrukcijų rinkiniu. Tai procesas, kurį „Intel“ sunkiai įgyvendina naudodama savo labai vėluojamą „Itanium“ mikroprocesorių, kuris bus pirmasis įmonės lustas, nukreipiantis duomenis 64 bitų skaitmeninėmis juostomis, tai yra, 64 bitų pločio magistrale. Atlaisvinus dizainerius nuo dabartinės kartos 32 bitų magistralės, bus pasiektas didelis našumo šuolis į priekį. Tačiau pradedant iš naujo taip pat atsiranda lustas, kuriame iš pradžių nebus paleista programinė įranga, vargu ar tai būtų ideali būsena. Net jei programinės įrangos kūrėjai bendradarbiauja ir pradeda rašyti kodą į naują instrukcijų rinkinį, šis metodas veikia tik vieną kartą: tada grįšite ten, kur pradėjote, su sena programine įranga ir metų ciklą, kad galėtumėte atlikti bet kokius esminius pakeitimus.

Ditzelis ne kartą savo karjeroje išbandė lustų dizaino pradžios metodą. Prieš du dešimtmečius, būdamas Kalifornijos universiteto Berklyje magistrantūros studentas, jis bendradarbiavo su straipsniu „The Case for Reduced Instruction Set Computing“. Šis esminis darbas įkvėpė visą mikroprocesorių dizaino mokyklą; šiandien visur yra vadinamieji RISC lustai.

Baigęs RISC dizainą Berklyje, jis pradėjo kurti RISC lusto variantą, pavadintą CRISP, „Bell Labs“; Tačiau CRISP niekada nesulaukė plataus programinės įrangos kūrėjų palaikymo. Tada Ditzelis trečią kartą bandė sukurti naują mikroprocesorių, kai bendrovėje Sun dirbo su galio arsenido lustu, kuris niekada nebuvo pagamintas. Atrodė, tarsi sakyčiau žmonėms: žiūrėk! Galite naudoti šį puikų naują mikroprocesorių – tereikia išmesti visą programinę įrangą ir pradėti iš naujo!“ – sakė Ditzel. Aš tą kovą kovojau 20 metų ir pasidaviau.

Bet jis tikrai nepasidavė. Vietoj to, jis rado išeitį.

Dešimtojo dešimtmečio pradžioje dirbdamas „Sun“ Ditzelis buvo paveiktas Rusijos superkompiuterių eksperto Boriso Babajano, su kuriuo jis neoficialiai bendradarbiavo ir kurį jis įvardija kaip pagrindinį mentorių kuriant mintis apie lustų dizainą, darbas. Tuo metu Babayanas ir jo įmonė „Elbrus“ eksperimentavo su technika, žinoma kaip dinaminis dvejetainis vertimas ir kompiliacija (kurią „Transmeta“ suteikė daug labiau rinkai palankesnio pavadinimo kodo morfavimas, terminas, kurį jie nuo tada pavadino prekės ženklu).

Rašyti kodą, kad vienos rūšies programinė įranga galėtų veikti kitos rūšies aparatinėje įrangoje, yra sena idėja: pavyzdžiui, IBM tai padarė septintajame dešimtmetyje. Tačiau šių bandymų rezultatai visada buvo beviltiškai vangūs. Tačiau lustai visą laiką buvo greitesni. Dešimtojo dešimtmečio pradžioje dizaineriai manė, kad gali būti būdas iš vienos instrukcijų rinkinio į kitą išversti taip greitai, kad veikimas vos nukentės. Vietoj statinio, individualaus kiekvienos instrukcijos vertimo, technika gali būti dinamiška, realiuoju laiku nagrinėjanti taikymą dėl neefektyvumo, juos taisanti ir įsimenanti pataisymus.

Netinkama manyti, kad papildomo programinės įrangos sluoksnio įdėjimas tarp programos ir procesoriaus nesulėtėtų – tai panašu į tai, kad lenkta linija tarp dviejų taškų yra trumpesnė už tiesią. Tačiau ryšys tarp programinės įrangos ir aparatinės įrangos nebėra tiesi linija: dėl neefektyvumo, atsiradusio dėl daugelio metų to paties instrukcijų rinkinio kūrimo, dinaminis vertimas teoriškai gali pagerinti našumą. Kalbant apie aparatinę įrangą, procesas, kai į lustą įjungiama vis daugiau grandinių, kad būtų išgautas paskutinis našumo padidėjimas, iš tikrųjų gali sulėtėti. Programinė įranga taip pat retai būna tokia efektyvi, kokia galėtų būti jau paruošta: programų kūrėjai, atsižvelgdami į pristatymo datą, užšaldys kodą, kai jis veikia, o ne tada, kai jis tobulas. Dinaminis vertimas teoriškai galėtų rasti laisvumą ir jį sugriežtinti.

Prieš Ditzeliui įkuriant „Transmeta“, vertimo metodai buvo naudojami tik tam, kad esama, nesuderinama programinė ir aparatinė įranga susikalbėtų viena su kita. Ditzelis ir jo įkūrėjai padarė intelektualų šuolį: jei papildomas programinės įrangos sluoksnis galėtų priversti programas paleisti nesuderinamą aparatinę įrangą, kas sutrukdė jiems radikaliai pakeisti pačią pagrindinę aparatinę įrangą, pasinaudojant naujausiomis galimybėmis?

1994 m. Ditzel ir vienas iš įkūrėjų Dougas Lairdas įgyvendino Sun projektą, skirtą pagerinti Windows veikimą Sun darbo stotyse, naudojant dinaminio dvejetainio vertimo metodus. Supratome, kad jei galėtume tiesiog pridėti tam tikrų aparatinės įrangos funkcijų, iš tikrųjų galėtume tai padaryti gana greitai, sako Lairdas. Tai buvo šauni idėja, priduria jis ir primena, kad „Sun“ nesidomėjo keisti savo procesoriaus dizainą, kad jis geriau veiktų programas, kurios buvo sukurtos veikti naudojant standartinius „Intel“ lustus. Ditzel ir Laird smogė patys. Ditzelis įdarbino Coliną Hunterį, gerbiamą emuliacijos metodų ekspertą, ir Robertą Cmeliką, kuris dirbo „Sun“ kodo optimizavimo srityje.

Kaip dažnai būna technologijų naujovių srityje, praktika pasirodė sunkesnė nei teorija: pirmasis „Transmeta“ lusto dizainas veikė taip lėtai, kad lustui prireikė pusvalandžio, kol paleido operacinę sistemą. Tačiau kiekvieną iš keturių lustų peržiūrų komanda sužinojo daugiau apie dvejetainį vertimą. Penkerius metus kruopštaus darbo, kurį atliko 200 inžinierių brigada, paremta keliais šimtais milijonų dolerių rizikos kapitalo, pagamino lustą, kuris veikė pakankamai greitai, kad būtų galima palyginti su Intel procesoriais. Šių metų sausį Transmeta paskelbė apie pirmuosius du hibridinius silicio / programinės įrangos lustus Crusoe linijoje. Pirmasis, vadinamas TM5400, yra 700 megahercų lustas, skirtas itin ploniems, itin lengviems Windows nešiojamiesiems kompiuteriams. Jis paleidžia programinę įrangą, parašytą „Intel“ lustams ir naudoja tik dalį „Pentium“ sunaudojamos energijos. Antrasis, TM3120, yra 400 MHz lustas, skirtas paleisti interneto įrenginius naudojant Linux versiją, kurią Torvalds sukūrė mobiliesiems įrenginiams.

Abu lustai programinės įrangos kūrėjams yra visiškai suderinami su „Intel“ procesorių instrukcijų rinkiniu. Apačioje yra VLIW lustai, labai ilgas instrukcijos žodis, architektūra su 128 bitų pločio magistrale, kuri gali sujungti Intel lusto instrukcijas į ilgesnes eilutes ir taip jas vykdyti greičiau. Tarp į išorę nukreiptų instrukcijų rinkinio ir pagrindinės aparatinės įrangos yra „Transmeta“ kodų keitimo programinė įranga, kuri „Intel“ stiliaus instrukcijas paverčia tokia forma, kurią „Crusoe“ gali apdoroti, optimizuoja jų vykdymą ir išsaugo optimizuotus vykdymus atmintyje. Kitą kartą, kai lustas susidurs su ta pačia operacija, vertimas nebereikalingas. Kodo keitimo programinė įranga (kuri yra tik skaitomoje atminties lustoje) yra pirmoji programa, kuri paleidžiama, kai procesorius paleidžiamas.

Kadangi tiek daug „Crusoe“ funkcijų buvo perkelta iš aparatinės įrangos į programinę įrangą, lustas yra daug paprastesnis nei panašus „Pentium“ procesorius ir reikalauja tik ketvirtadalio tranzistorių. Šalutinis mažesnio tranzistorių skaičiaus pranašumas yra tas, kad „Crusoe“ sunaudoja daug mažiau energijos, todėl „Transmeta“ nusprendė pirmuosius lustus nukreipti į mobiliųjų telefonų rinką. Kitas „Crusoe“ metodo pranašumas yra sutrumpinti laiką, reikalingą naujo lusto sukūrimui. Ditzel sako, kad didžioji dalis dizaino yra programinėje įrangoje, todėl kai kurie klientai jau prašė pakeisti instrukcijų rinkinį ir kad Transmeta inžinieriai galėtų juos įgyvendinti per 24 valandas. Nors tai tikriausiai neapima laiko jokiam klaidų testavimui, vis dėlto akivaizdu, kad Transmeta rado būdą drastiškai sutrumpinti kūrimo ciklą.

Nickas Tredennickas, originalios „Motorola 68000“ (procesoriaus, kuris maitino pirmuosius „Macintosh“ kompiuterius) architektas, o dabar nepriklausomas mikroprocesorių projektavimo konsultantas, nėra vienas, padaręs išvadą, kad Ditzelis kažko užsiima. Kai pirmą kartą išgirdau apie Crusoe, maniau, kad tai tik naujausia mada arba emuliacijos atnaujinimas, kuris niekada nepasiteisino, sako Tredennickas. Tačiau išgirdęs Ditzelio kalbą, Tredennickas tapo atsivertėliu. Pasak jo, „Transmeta“ daro kažką iš esmės kitokio nei buvo daroma nuo kompiuterio išradimo.

„Transmeta“ lustai iš prigimties yra paprastesni nei įprastiniai, sako Stanfordo „Wharton“. Per vieną popietę galite pakeisti programinę įrangą, įtraukti ją į bandomąją versiją, paleisti ir patikrinti, ar ji veikia. Aparatinės įrangos srityje apyvartos laikas gali būti nuo trijų iki devynių mėnesių. „Intel“ gali skirti 500 ar 1000 žmogaus darbo metų Itanium kūrimui. Kitam „Transmeta“ lustui gali prireikti 10, 20 arba 50. Tai yra pelės riešutai.

Judėjimas link lustų, kurie yra programinės ir aparatinės įrangos hibridai, o ne grynas silicis, kūrimo, sulaukė plačiai. Tačiau „Transmeta“ greičiausiai išliks lyderė artimiausioje ateityje. Taip yra todėl, kad Ditzelis buvo pirmasis žmogus, kuris šias idėjas ištraukė iš laboratorijos, pasamdė 200 darbuotojų, kad jos dirbtų ir sukūrė lustą, kuris veikė. Pakeliui jis sukūrė mažiausiai dvi kliūtis, kurios sulėtins jo konkurenciją.

Pirmasis yra įmonės testavimo įrankiai. Tiesą sakant, „Transmeta“ brangenybės tikriausiai yra net ne patys lustai, o diagnostinė programinė įranga, kurią įmonė buvo priversta sukurti kūrimo procese. Įprastų lustų tikrinimo įrankiai daro prielaidą, kad tarp programinės įrangos, lusto ir nurodytos instrukcijos yra statinis ryšys. „Transmeta“ reikėjo išspręsti problemą, susijusią su mikroprocesoriaus, kuris dinamiškai keičiasi, reaguodamas į jos vykdomą programinę įrangą, testavimo problemą. Kitos įmonės turės pradėti nuo nulio, kad sukurtų savo testavimo įrankius, o tai gali užtrukti metus ar ilgiau.

paslėpti