Mūsų skaitmeniniuose prietaisuose tiksinčius lustus gamina vos kelios didelės kompanijos, bet atvirojo kodo pritaikymas dizainui galėtų užbaigti jų dominavimą – ir tai padarytų įtaką visiems.
© Tim Herman/„Intel Corporation“
Iš vienos pusės buvo tiekimą trikdanti ideali audra: pandemija, prekybos karas, liepsnojanti gamykla ir siaubingas oras su sausromis ir sniego audromis. Iš kitos – neregėta vienų iš ieškomiausių produktų paklausa – šių metų sausį rinkos vertė pasiekė 40 milijardų JAV dolerių.
Nepaisant to, anksčiau šiais metais pasklidusios naujienos apie viską, nuo kompiuterių iki šaldytuvų, branginantį lustų trūkumą, daugelį nustebino. Per krizę šalys ir kompanijos visame pasaulyje stengėsi įsteigti daugiau lustų gamyklų. Ši krizė taip pat nušvietė pramonę, kurios produktai tokie visuotinai naudojami ir svarbūs, ir daugelis suprato, kad ją reikia iš esmės pertvarkyti. Kritikai teigia, kad rinka, kurioje yra vos kelios firmos, stabdo inovacijas ir didina pramonės pažeidžiamumą.
Kai kurie garsūs vardai ragina imtis alternatyvaus modelio – perimti programinės įrangos kūrimą pakeitusius bendradarbiavimo, atviro kodo principus, ir pritaikyti juos lustams. Šalininkų nuomone, tokio principo tapimas nauju standartu – tik laiko klausimas. Bet kai lustai bus, ar jie bus tinkami – ir ką tai reiškia mums?
Kompiuterių lustai yra visur – ne tik kompiuteriuose ir telefonuose. Jie yra daugybėje paslaptingų serverių, kuriuose veikia mūsų paštas, internetinė bankininkystė ir kitos kasdien naudojamos skaitmeninės paslaugos. Jie yra daugelyje mikrobangių, televizorių, skalbyklių ir laikrodžių. Vidutiniame automobilyje jų yra šimtai.
Įsižiūrėję matome, kad visų šių lustų pagrindas yra 60 metų senumo išradimas: metalo oksido puslaidininkinis lauko efekto tranzistorius, MOSFET. „Bell Labs“ tyrėjų Mohamed Atalla ir Dawon Kahng sugalvotas 1959, jis veikia kaip mažytis jungiklis, kuris, tinkamai sujungtas, gali atlikti bazines logines operacijas – sudėtį, atimtį ar daugybą.
Patys pirmieji procesorių lustai buvo kuriami konkrečioms skaičiavimo užduotims. Tačiau kompiuteriams sudėtingėjant ir plintant, 1964 metais IBM pristatė įvairias programas galėjusį atlikti universalųjį kompiuterį „IBM System/360“. Jo procesoriuje buvo bazinių operacijų – tarkime, dviejų skaičių sudėjimo ar palyginimo, ar peršokimo į tam tikrą atminties vietą – „instrukcijų rinkinys“, iš kurio galėjo būti sukurtos sudėtingesnės operacijos.
Greitai atsirado šiuos lustus naudojančią programinę įrangą analizuojantys įrankiai, padedantys analizuoti, taisyti ir tikrinti kodą, kuris naudoja specifiškas lusto „architektūros“ instrukcijas (žr. „Kaip veikia lustai“). Tai išlaisvino programuotojus nuo būtinybės rūpintis, kaip lustai veikia tranzistorių lygmeniu. Bet tuo pačiu daug galios perėjo keliems lustų gamintojams, tiekusiems aiškius, stabilius instrukcijų rinkinius ir architektūras.
Ši situacija liko iki šių dienų. „Faktas, kad [lusto architektūra] išliko taip ilgai, reiškia, kad yra įdiegiama visa infrastruktūra, – sako Siva Sivaram iš Western Digital, kompanijos, kurios kietuosiuose diskuose laikoma 40 procentų pasaulio duomenų. – Joje parašyta daug programinės įrangos, ir operacinės sistemos irgi sėdi ant jos. Visi tai žino, kas tai yra.“
Jūsų kompiuterio pagrindinis procesorius tikriausiai naudoja x86 instrukcijų rinkinį luste, kurį sukūrė Intel ar kita JAV kompanija, AMD, kuri iš pradžių atgalinės inžinerijos būdu sukūrė su Intel lustu suderinamą dizainą. Duomenų serveriuose gali būto naudojama IBM z/Architecture, kurios ištakos siekia System/360. Mobiliuosiuose telefonuose dažnai naudojama ARM architektūra, priklausanti JK įsikūrusiai kompanijai, išsivysčiusiai iš Acorn Computers. ARM patiekė daugiau nei 125 milijardus lustų, ir tapo viena iš sėkmingiausių architektūrų.
Visos šios kompanijos akylai saugo savo intelektualinę nuosavybę. Pavyzdžiui, Intel yra vienvaldžiai savo lustų savininkai ir turi lemiamą balsą lustų dizaino ir gamybos klausimais. „Jei norite Intel procesoriaus… jie viską kontroliuoja“, – sako Cecil Macgregor iš Seagate kompanijos.
Naujų lustų kūrimas ir gamyba yra, šiaip jau, sudėtingas ir specializuotas verslas. Tai dar akivaizdžiau, priartėjus prie fundamentalių tranzistoriaus dydžio (tiksliau, mažumo) ribų – dabartinis standartas yra vos 5 nanometrų skersmens – ir kiek jų galima sugrūsti į vieną lustą. Dabartiniuose centriniuose apdorojimo vienetuose, CPU, yra keli „branduoliai“, galintys veikti lygiagrečiai individualūs lustai luste. Tokiems algoritmams, kaip, tarkime kuriantiems mūsų telefonų virtualių asistentų dirbtinį intelektą, ar atliekantiems 3D fizikos skaičiavimus, užtikrinančius kompiuterinių žaidimų grafikos realumą, reikia lustų, specialiai optimizuotų kuo sparčiau atlikti atitinkamas instrukcijas.
Konkrečiam lustui skirtos techninės įrangos gamintojams nuosavybinis modelis suteikia stabilumą ir užtikrintumą, bet gali ir slopinti inovatyvumą. „Kiek atminties galima skirti vienam branduoliui? Sprendžia „Intel“, – sako Sivaramas. – Jei norite pridėti daugiau atminties, jie sako „pirkite kitą branduolį“. Tai lyg „norite naujos vonios? Pirkite naują namą“.“ Jo kompanija kasmet perka dešimtis milijonų lustų, bet vis viena negali gauti tiksliai to, ko reikia, sako jis.
ARM dirba kiek kitaip: ji kuria branduolius, bet licencijuoja įvairus bazinius jų „skonius“ galutiniams vartotojams, kad šie galėtų gaminti juos tokius, kokie tinka jiems. „Seagate“ prie šio modelio perėjo kiek daugiau nei prieš 20 metų. Tai suteikė jiems lankstumo, bet ne tiek jau daug pritaikomumo, sako Macgregor: kompanijai vis viena teko rinktis iš kelių iš anksto sudarytų opcijų. „Jie tuo užsiima, kad uždirbtų, teisingai? Tad turi turi nuspręsti, kurių skonių pasauliui reikia, – sako jis. – Jie nori užtikrinti, kad tai pirks daug žmonių.“ Labai didelė kompanija, tokia, kaip Apple, gali išsisukti: ji dabar pereina nuo Intel lustų prie ARM, bet sumokėjo papildomai ir panaudojo savo didžiulę įtaką sukurti nuosavą procesorių, M1.
Žinia, kad grafikos apdorojimo vienetus (GPU), lustus išmaniesiems telefonams, planšetėms, automobilių navigacijai, infomedijos sistemoms ir pačias žaidimų konsoles kurianti JAV kompanija Nvidia įsigijo ARM, irgi sukėlė šiokį tokį nerimą. „Jei būtumėte „Nvidia“ konkurentas, tektų gerokai pagalvoti, nes jie tiekia jūsų naudojami branduolius“, – sako Macgregor. Kai „New Scientist“ susisiekė su „Nvidia“ atstovu, buvo pasakyta, kad ARM intelektualinės nuosavybės licencijavimo sąlygos jos klientams nepasikeis. Panašu, JK vyriausybės tai neįtikino, nes pranešimai rodo, kad ji tyrė galimybes vetuoti šį perėmimą, remiantis antimonopoliniais ar nacionalinio saugumo įstatymais.
Mikrolustai yra daugelio prietaisų pagrindas © ARM
Lustams sudėtingėjant, saugumas ir patikimumas tampa vis aktualesne problema. Dabar lustai tikrinami arba atsitiktinai pasirinktame ieškant klaidų, arba bandant formaliai išbandyti visas įmanomas įvestis ir išvestis. Pirmu atveju lengva pražiopsoti problemą, o antrasis būdas greitai tampa praktiškai įmanomu tik paprasčiausiems kūriniams. 1995 metais Intel atšaukė apie milijoną Pentium P5 procesorių, kuomet buvo aptikta klaida, galėjusi paveikti tam tikrus skaičiavimus. 2011 metais „Sandy Bridge“ lustų klaidos ištaisymas kainavo apie 1 milijardą dolerių. Nė viena iš šių klaidų nė iš tolo neprilygo dviems, aptiktoms 2018 metais, „Meltdown ir Spectre“, kurios paveikė visą įvairių gamintojų lustų kartą. Netgi naujasis „Apple M1“ lustas turi dizaino klaidą, kuri, manoma, nėra kritiškai grėsminga, tačiau leidžianti dviems programoms keistis duomenimis, kurie turėtų būti griežtai atskiri.
Pridėkite dar geopolitinę įtampą tarp dviejų didžiausių nacionalinių lustų verslo žaidėjų, JAV ir Kinijos (žr. „Tarptautiniai lustų karai“), ir ima aiškėti, kodėl kai kuriems gamintojams taip knieti dirbti kitaip.
RISC, mažesnio instrukcijų rinkinio kompiuterių (angl. Reduced Instruction Set Computer), ištakos siekia Kalifornijos universitete Berklyje devintajame dešimtmetyje pradėtą akademinį projektą. Pirminė idėja buvo ta, kad lustai galėtų būti padaryti paprastesni, naudojant instrukcijų rinkinius, kuriuose yra vos kelios instrukcijos, vietoje plačių bibliotekų, skirtų kiekvienai itin specifinei, ezoterinei užduočiai. Projekto vystymui kliudė kompanijų paslaptys, nuosavybinis dizainas, tad 2010 metais RISC tyrėjai kaip švietimo įrankį nusprendė kurti nuosavą lustą ir instrukcijų rinkinį. Pavadino jį RISC-V, nes tai buvo penktasis RISC bendraautoriaus Davido Pattersono tyrimo projektas. Kadangi studentai mokslui naudojo RISC-V lustus, šis dizainas pradėjo dygti ir plataus naudojimo programose.
2015 metais specifikacijomis pasidalinta su pelno nesiekiančia, RISC-V International, prižiūrinčia jų raidą. Didelis pliusas, kad tai atviras kodas, taikantis vis labiau programinės įrangos kūrime įsigalintį modelį. Remiantis juo, pavyzdžiui, buvo sukurta Linux atviro kodo operacinė sistema, tapusi populiariausios išmaniųjų telefonų operacinės sistemos, Google remiamo „Android“, pagrindu. Be to, ji naudojama daugiau nei pusėje galingiausių pasaulio superkompiuterių.
Sezono atidarymas
Naudojant atvirą kodą ištisos programuotojų bendruomenės gali nuolat optimizuoti RISC-V standartą, užtikrindamos jo veikimą be bjaurių saugumo spragų ar „slaptų durelių“. „Geriausia, ką galiu padaryti, tai atverti kodą, – sako Sivaramas. – Leisti milijonams žmonių rasti sutrikimą mano kode.“ Visi dizaino sprendimai viešai dokumentuojami, ir vystyme gali dalyvauti bet kuris asmuo ar kompanija – ir savo produktams pakeisti jį nemokamai.
Kodėl tai patrauklu prietaisų gamintojams aišku: galima kurti pigesnius produktus, mažesniais licencijavimo kaštais, naudojant konkrečiai užduočiai skirtus lustus, kas gali reikšti geresnį veikimą ir ilgesnį baterijos veikimą. Kai kurios kompanijos jau bando tai. Viena iš jų yra „Seagate“, nors ir pabrėžia, kad oficialiai nepaskelbė apie jokio RISC-V lustus naudojančio produkto išleidimą. Macgregoras nepasakė, kam šis standartas naudojamas, tik kad lusto tinkinimas suteikia konkurencinį pranašumų.
Kiti ne tokie drovūs. „Western Digital“ „visiškai pasirašo“ RISC-V, sako Sivaramas. Konkrečioms funkcijoms sukurti RISC-V lustai bus mažesni ir veiks efektyviau, nei masinės gamybos lustai, nes „jiems nereikės tempti bereikalingo bagažo“, – paaiškina jis. 2016 metais „Nvidia“ paskelbė naudosianti RISC-V savo GPU. Ruošiant medžiagą straipsniui ir susisiekus, buvo patvirtinta, kad tai dabar vyksta, nepaisant planų perimti ARM.
Sivaramo nuomone, tai tik pradžia. „Nesakau, kad tai įvyks vienu mostu, bet atviro kodo puslaidininkių branduolių visuotinis paplitimas yra tik laiko klausimas. Kai perkate „Ford“ ar „Toyota“ mašiną, ar žinote, kas pagamino jos variklį?“
Pattersonas jam antrina. „Žmonės dievina atvirumą. Jiems ši idėja patinka ir jie nori, kad ji būtų įgyvendinta, – sako jis. – Manau, RISC-V yra neišvengiama ir taps lingua franca, kuri bus naudojama nuo mažiausių iki didžiausių kompiuterių.“
„Kadangi tai atviro kodo licencija, jokia viena šalis, kompanija jos nekontroliuoja. Atidavus ją bendruomenei, atsiimti jos nebegalima“, – sako Calista Redmond iš „RISC-V International“ fondo. Šis fondas 2019 metais paskelbė perkeliantis būstinę iš JAV į Šveicariją, kad būtų nuramintas kai kurių jo narių, nors neįvardintų, bet manoma, iš Kinijos, nerimas, kad viena kuri šalis gali imtis jį kontroliuoti.
Fondo partnerių sąraše išties nemažai Kinijos kompanijų. Trumpo administracijai paskelbus sankcijas, Kinijos mažmeninės prekybos gigantas „Alibaba“ sukūrė 16-os branduolių RISC-V lustą XT910, kuris, jos teigimu, gali būti naudojamas dirbtiniam intelektui ar savivairiams automobiliams. Indija irgi oficialiai pasirinko RISC-V architektūrą gynybos ir infrastruktūros projektams, išreikšdama troškimą žinoti, kas yra kritiškai svarbių sistemų darbą užtikrinančiuose lustuose. ES pasirinko RISC-V kaip pagrindą naujam, įvairius mokslinius ir duomenų apdorojimo užduotis turėsiančiam atlikti superkompiuteriui. „Semico Research“ vertinimu, 2025 bus parduota daugiau nei 60 milijardų RISC-V branduolių. Tai palyginama su 6,7 milijardais ARM technologijos lustų, pagamintų 2020-ųjų metų paskutinįjį ketvirtį.
Redmond pažymi, kad tokios „seno sukirpimo“ kompanijos kaip AMD, „Intel“ ir ARM turėtų sunerimti. „Vis greičiau einame keliu, kurio statyba jiems užėmė dešimtmečius, – sako ji. – Po šiuo stogu daug didelių žaidėjų, ir jie investuoja vis daugiau.“
Vyriausiasis ARM architektas, Richardas Grisenthwaite'as, nėra toks užtikrintas, nepaisant numanomo naujojo savininko įsitraukimo. Instrukcijų rinkinį sukurti santykinai lengva, sako jis; o štai sukurti lustų kūrimo šioje platformoje įrankių ekosistemą – sunku. Tai turi būti atlikta nuo pat pradžių naujam instrukcijų rinkiniui. „Instrukcijų rinkinys ekosistemoje gyvuoja ar miršta, ir atlikti nuo pat pradžių, užuot imant ARM, atrodo keblu, – sako Grisenthwaite'as. – Kol sukaupėme momentą, praėjo 30 metų. Kas norės pakartoti ARM kelią, turės nuveikti tokį pat darbą.“
„Intel“ lustas palydove su dirbtiniu intelektu
© Tim Herman/„Intel Corporation“
Kita problema – susitelkimas. Dabartiniai žaidėjai gali kontroliuoti savo instrukcijų rinkinius ir juos keisti, bet atviro kodo dizainas gali skilti ir pasukti skirtingais keliais. Bet koks fundamentalus pasiskirstymas gali sumažinti sėkmės šansus – ar tiesiog sukurti naują monopolijos sluoksnį. Pavyzdžiui, „Android“ atviro kodo, bet pagrindinis jo poveikis buvo „Google“ komercinės pozicijos įtvirtinimas.
Ar lustų gamintojai kada nors galės visai atsisakyti senų technologijų palikimo, irgi nėra visiškai aišku. Daugeliui būtina išlaikyti suderinamumą su senesniais produktais, o tai gali reikšti ARM ar Intel lustų naudojimą. Moderniuose prietaisuose jau yra dešimtys skirtingas architektūras naudojančių lustų ir tai vargiu ar pasikeis. Kad ir kas kurs, licencijuos ar užsakys lustus, gamintojai turės tiekti tikro silicio gaminius. O bent keletą metų – kol galėtų pradėti veikti naujos gamyklos – tai bus siauroji kelio vieta, stabdanti žygį.
Šia prasme RISC-V revoliucijos, jeigu ji įvyks, galutinis vartotojas gali nė nepastebėti. Bet jeigu techninės įrangos gamintojai dėl to galės kurti šiek tiek pigesnius, truputį labiau specializuotus, mažumėlę efektyvesnius prietaisus, laimės visi. Tokie lustai ir toliau veiks tai, ką esame įpratę matyti juos darant – tyliai judins mūsų skaitmeninio gyvenimo dantračius, gal tik kiek atviriau.
Tarptautiniai lustų karai
Skaičiavimo technikos veikimą užtikrinantys lustai – ideali vieta įrengti „slaptas dureles“ ar saugumo spragą, per kurią nedraugiškos jėgos per visą pasaulį apimančius tinklus gali šnipinėti ką veikia kompiuteriai. „Kiek žinome, visa Kinijoje pagaminta produkcija turi [savyje įrašytą] 1-800-CALL-CHINA“, – sako Cecil Macgregor iš duomenų laikmenų kompanijos „Seagate“.
Tokia yra sąmokslo teorija, sako jis – bet tiksliai tiesiog nežinome. Prekybos karo tarp JAV ir KLR grėsmė verčia kompanijas rinktis lustų architektūras, remiantis lusto gamybos kompanijos tautybe. „Jei būčiau supergalia, kodėl turėčiau leisti kitai supergaliai save kontroliuoti?“ – klausia Macgregoras.
Kinija augina savo lustų dizaino pajėgumus, bet kol kas jos augantis technologijų sektorius remiasi JAV lustų kompanijų licencijomis. JAV lustų firma „Xilinx“ jau turėjo apriboti pardavimus Kinijos elektronikos kompanijai „Huawei“ kai JAV prezidentas Donaldas Trumpas įtraukė „Huawei“ į prekybos juodąjį sąrašą dėl grėsmių nacionaliniam saugumui.
Tačiau tai – dviašmenis kardas. Dešimtajame praėjusio amžiaus dešimtmetyje JAV gamino daugiau nei trečdalį visų pasaulio lustų, bet dabar ši dalis susitraukė iki 12 procentų, nes daugelis lustų gamintojų fabrikus perkėlė į Aziją. Dabar, Prezidentui J. Bidenui išreiškiant troškimą padidinti vietinės gamybos apimtis, JAV įtikinėja TSMC (Taiwan Semiconductor Manufacturing Company) statyti $12 milijardų vertės lustų gamyklą.
Kaip veikia lustai
Nešiojamojo kompiuterio ar išmaniojo telefono lustas nesupranta, ką reiškia įvairiausi klavišai, spragtelėjimai pele ar pabraukimai pirštu meniu puslapyje. Į lustams suprantamą kalbą visa tai išverčia aukšto lygio programinė įranga ir operacinė sistema. Vienas pelės pajudinimas gali pradėti tūkstančius atskirų skaičiavimų keliuose skirtinguose prietaiso lustuose.
Lusto instrukcijų rinkinys yra viso to giliausias lygis – visos komandos, kurias procesorius gali atlikti. Viena instrukcija rinkinyje gali iškviesti duomenų dalį iš atminties, kita – įkelti atgal; viena sudės dvi reikšmes, kita jas atims. Procesorius apdoroja šių instrukcijų sekas.
Dabartiniuose kompiuteriuose daug sudėtingumo sluoksnių. Pavyzdžiui, paprastame kompiuteryje ar telefone operacinės sistemos ir jūsų naudojamos programinės įrangos veikimą palaiko įvairūs lustai, vykdantys milijonus ir milijardus instrukcijų.
Matthew Sparkes / www.newscientist.com