Sledujte nás na YouTube

64bitová architektura: Co přinese v mobilních telefonech a jaké jsou její výhody?

O tom, že mobilní zařízení přejdou na 64bitovou technologii se mluví již delší čas, prvním se stal Apple s nejnovějším iPhonem 5s. Co tato změna znamená pro koncové uživatele?

Když se podíváme na současné operační systémy pro stolní počítače, poslední verzi iOS, možná i budoucí generaci Androidu, tak mluvíme o systémech využívajících výhod 64bitové technologie. Samo o sobě to neznamená revoluční změnu; pojďme se ale podívat, co vše víme o 64bitových chytrých telefonech a jaké výhody můžeme získat. Vyvrátíme také několik mýtů.

64 bitů: Ve znamení vyšší rychlosti?

Často se dočteme, že 64bitová technologie přináší oproti 32bitové vyšší rychlost. To nemusí být pravda, vysvětíme si to na příkladu stolních počítačů. 64bitová zařízení vyžadují vhodný software i hardware, jedno bez druhého nemá smysl. Proto bylo otázkou, co bude první. Procesory byly vyráběny tak, že mohly dostávat 32 i 64bitové instrukce. To umožnilo uživatelům mít nejnovější hardware a čekat na to, kdy přijde vhodný software.

 

Když ten den konečně nastal, věci mohly běžet rychleji a plynuleji. Procesor se však přes noc nezrychlil, pouze 64bitová architektura otevřela více „pruhů“, kterými mohou data putovat. Přirovnejme si tento proces k silnicím. Když máme silnici s rychlostním limitem 100 km/h, tak jí projede jen určitý počet automobilů za daný čas. Jsou dva způsoby jak silnici zrychlit, a to zvednutí rychlostního limitu, nebo přidání dalších pruhů. Zvednutí rychlostního limitu je ekvivalent k navýšení rychlosti procesoru, například z 1 GHz na 2 GHz. Přidání více pruhů odpovídá přechodu z 32 na 64 bitů. Nezvednete tedy rychlost, ale propustnost.

64 bitů povolí více operační paměti

Pravděpodobně jste slyšeli, že maximum operační paměti pro 32bitové systémy jsou 3 GB. Můžete instalovat i více, ale systém ji nedokáže využít. Existovaly cesty, jak přidat daleko více paměti, ale systém ji nebyl schopen využít. Přesná bariera je závislá na základní desce a konfiguraci dalších komponentů, speciálně na velikosti VRAM. Může se tak pohybovat v rozmezí 2,75 GB až 3,5 GB. Pro více je potřeba 64bitová technologie. Většina dnešních mobilních zařízení má 2 GB paměti RAM nebo méně, tudíž je to zatím pouze teoretická debata, ale dá se očekávat, že podobně jako u osobních počítačů, bude její kapacita v následující letech jen růst. Například Samsung Galaxy Note 3 již nabízí 3 GB RAM.

  

Musí být všechny aplikace přepsány?

K využití výhod 64bitové prostředí je potřeba optimalizovaný software. Plány Applu pro iOS jsou podobné jako u Microsoftu, který před lety začal s 64bitovou verzí Windows. Povolit hybridní prostředí, které dovolí běžet oběma druhům aplikací. Ty, které jsou napsány pro 64bitů, poběží lépe než jejich 32bitový ekvivalent. Ale 32bitové poběží stejně dobře jako na 32bitovém systému.

 

Android je v trochu jiné situaci. Jelikož aplikace využívají Dalvik VM, je teoreticky možné Dalvik aktualizovat na 64 bitů a aplikace přirozeně poběží v tomto prostředí, jelikož jsou kompilovány v reálném čase. Pro příklad slouží Java aplikace, které dnes běží v 32 i 64bitovém prostředí bez jakýchkoliv modifikací. V praxi to nemusí fungovat takto spolehlivě, ale je tu naděje. Pro Apple platí, že aby aplikace mohla využít výhody 64 bitů, musí být znovu zkompilována, vydána a stažena. Dnes to vypadá jako ohromné množství práce, ale za pár let o tom nikdo nebude vědět, podobně jako je tomu na stolních Windows.

Je to vše?

Samozřejmě ne, na téma porovnání 64 a 32 bitů by se dala napsat celá kniha, ale v praxi stačí znát tyto hlavní rozdíly. Aplikace, operační paměť a propustnost, to je vše co potřebujete vědět, když dojde na mobilní zařízení a jejich software.

David Podzimek

54 komentářů

  1. mceza (neregistrovaný)

    Do budoucna to bude fajn, ale je to otázka ještě spousty let…

    [odkaz]

  2. uni (neregistrovaný)

    První reakce vývojářů pro iOS jsou velmi pozitivní, u menších projektů hodiny, u větších dny úpravy kódu pro 64bit.

    Ostatně, Apple má bohaté zkušenosti s přechody architektur, apod. A nemusí kvůli tomu hned odřezávat celé segmenty trhu… (MS).

  3. Marek (neregistrovaný)

    Okrem tej RAM to nema ine vyhody… teda pre telefony. Pochybujem ze niektora aplikacia na telefone potrebuje pracovat so 64bitovymi integrami alebo potrebuju 64bitovu presnost pri operaciach s pohyblivou ciarkou. Podla mna ide vlastne len o marketingovy tah z pohladu Apple (nakolko nove Iphone nemaju 3GB+ RAM kde by 64bitov bolo naozaj nutne). Keby radsej vymysleli lepsiu baterku co vydrzi tyzden. Teraz vsetci vyrobci zacnu davat 64bitovove procesory, pretoze predsa viac pruzkov viac addidas a 64 je predsa viac ako 32. To je asi taka vyhoda ako mat 8+ jadro v mobile. Chcem vidiet toho machra ktory vie napisat aplikaciu pre tolko jadier s realnym vyuzitim pre telefony.

    • uni (neregistrovaný)

      Tak výkonnostní nárůst v řádu procent u daných operací je daný. Je zbytečné dokola opakovat, zda takové operace dané zařízení nebo uživatel provádí nebo nikoli.

      Nicméně ti asi uchází prostý fakt. Prostě někdy nastane doba, kdy se dané věci překlopí do 64bit, to je vývoj. Apple začal před týdnem. A dokola budeme číst další plky o marketingu. Ach jo.

      (já vím, nemám to číst když mě to nezajímá, ale když blbost některých…)

    • Jirka (neregistrovaný)

      Výkonnostní nárůst díky 64bit není žádný. Je zde ale ale pochopitelně nárůst výkonu díky modernější ARMv8 architektuře (např díky více registrům,atp), bez ohledu zda 64bit využíváte.

    • uni (neregistrovaný)

      Zajímavé, v minulosti nárůst byl, nyní není. Tak asi jo no, nejsem programátor.

    • Johny (neregistrovaný)

      No s tím výkonem je to takové poněkud ambivalentní. Výkon takový se ti sice nezvýší pokud budeš dál využívat současného stavu SW. Ovšem pokud budeš mít 64 bitové aplikace, tak přesně jak apple ukázal na předváděčce, např. hry se ti naloadují rychleji, pokud budou napsané na 64 bit.

    • Jirka (neregistrovaný)

      Nevím, o tom že by byl někdy v minulosti nárůst výkonu u 64bit aplikací. Naopak v některých případech je tu znatelné zpomalení (způsobené objeměnším kódem). Pochopitelně nový procesor na nové architektuře bude rychlejší, ale ne díky 64bit. Prostě A7 je mnohem rychlejší než A7 má novou arichitekturu, více registrů, větší cache, rychlejší práci s registry, a další optimalizace, všechno na něm běží rychleji, ovšem 64bit aplikace na něm běží stejně rychle jako ty 32bit. Jediným benefitem 64bit architektury je orpavu pouze možnost adresovat více paměťi.

      Pochopitelně existují případy kdy by 64bit operace teoreticky přinesly větší výkon, nicméně na ně už se dávno používají 128 či 256bit SIMD operace, které dnešní 32bit procesory dávno umí (již od Pentia MMX).

    • Jirka (neregistrovaný)

      JOHNY: opak je pravdou, hry se budou loadovat pomaleji pokud budou kompilované na 64bit (byť rozdíl bude minimální). Je to docela známá věc a pochopitelně nejen u her ale i aplikací. Samotný běh už bude stejně rychlý. Rozdíl poznáte až když budete mít v telefonu více jak 4GB, v takovém případě teprve bude 64bit aplikace těžit z výhod 64bit architektury.

    • uni (neregistrovaný)

      Johny: Tak samozřejmě že za předpokladu 64 bit HW, 64bit OS, 64bit SW. Jiná varianta snad ani nemůže být předmětem diskuse.

      Jirka: Tak nevím, pokud Apple prezentoval co píše JOHNY, není to nějak v rozporu s tím, co tu teoretizuješ?

    • zipiik (neregistrovaný)

      Ach jo, sice tomu nerozumím, ale mám na to názor. Přechod na ARMv8 je pokračování vývoje, tak architetkura nepřináší jen 64bit a s tím přímo související výhody, ale také podstatné vylepšení instrukční sady, HW podporu šifrování, vylepšení SIMD instukcí, doporučuju k prohlédnutí následující článek – [odkaz]

    • zipiik (neregistrovaný)

      Jirka: Nemáte úplně pravdu. 32bitové aplikace sice mohou využit přeba lepší/větší cache, rychlejší přístup do paměti, ale prodloužení registrů a jejich dovjnásobný počet využít nedokážou, stejně tak jako nové instrukce s HW akcelerací šifrování. To dokáží až aplikace kompilované pro ARMv8.

    • uni (neregistrovaný)

      Viz odkaz a tabulka „64-bit Performance Gains“:-) Tak snad už bude pokoj od těch „nemá to přínos“, uf.

    • Jirka (neregistrovaný)

      ZIPIIK, to opět není pravda, aplikace pokud bude pro architektu zkomplilovaná, pochopitelně dokáže využít i většího počtu registrů i nových instrukcí a dalších vylepšení. To ale stále nemá nic společného s 64bit, ale tím co už jsem říkal: ARMv8 je rychlejší než ARMv7, protože je novější a modernější, ne proto že podporuje 64bit.

      Jedinou teoretickou výhodou, kterou uvádíte je prodloužení registrů, ale to by programátor můsel využívat 64bit přesnosti (které se v drtivé většině případů nevyužívá, většinou se pracuje v 32bit nebo dokonce 16bit přesnosti).

      UNI: Apple prezentoval ža A7 je cca 2x rychlejší, ale nikde neříkal že díky 64bit. A7 je totiž 2x rychlejší díky nové architektuře, a je 2x rychlejší i pokud poběží v 32bit režimu.

    • Jirka (neregistrovaný)

      UNI: Jenže ona tabulka nesrovnává výkon 32bit a 64bit stejné architektury, ale výkon dvou různých architektur. Kde pochopitelně A64 těží z většího množství registrů, nových instrukcí atd.

      Prostě pokud pominu jiné vylepšení v architektuře, tak 64bit procesor sečte dvě čísla naprosto stejně rychle jako 32bit procesor (za předpokladu použití běžné 32bit nebo 16bit přesnosti).

    • uni (neregistrovaný)

      Jirka: Samozřejmě nesrovnávám A7 vs. cokoli jiného probůh:-/ 32bit vs 64bit na stejném železe, logicky…. Přínos 64bitu je v řádu procent (tedy min byl, zde mě stále přesvědčujete, že tomu již není).

      Chceš mi tvrdit, že když je nadpis tabulky „Apple A7 – AArch64 vs. AArch32“, že se jedná o srovná dvou křemíků, že Apple má jak 32bit SoC, tak 64bit SoC? To mi přijde dost přitažené za vlasy, proč by to dělal, kvůli ceně?

    • Jirka (neregistrovaný)

      Jedná se o stejný křemík, ale AArch32 je kompilovan pro starou architekturu, a nedokáže využít výhod nové architektury, např více registrů, přesto že tam fyzicky jsou. Navíc pipeline v A7 je optlimalizovaná pro AArch64, a AArch32 tam běží dost neoptimálně. Je to popsané i v textu. Tedy de fakto jde o srovnání dvo aplikací kdy je jedna optimalizovaná přesně pro daný kus křemíku, a druhá v podstatě běží v jakémsi emulovaném okleštěném režimu určená pro jiný typ procesorů (něco jako kdysí známe spouštění x86 aplikací na IA64 procesorech).

      Prostě to co tvrdím od začátku, A7 je jistě výkonější, ale nikoliv díky 64bit, ale prostě proto že je na novější a lepší architektuře.

      Aby se to dalo srovnat musel by test srovnávat kompilaci pro AArch64 využívající 64operace, a kompilaci pro AArch64 využivájící 32bit operace.

    • uni (neregistrovaný)

      J8 od začátku NEtvrdím, že je A7 je rychlejší díky 64bit, to je kravina. Já celou dobu tvrdím, že samotný fakt 64bit přináší nárůst výkonu. Já úplně ani nevím, jak je možné, že to vyvolává takové diskuse, když tento holý fakt je vidět všude, kde se provedou testy.

      Ne vždy je 64bit výkonnostním nárůstem, ale tak jako tak 32 vs 64 poskytuje odlišné výsledky.

      Tečka, už k tomu nějak nemám co dodat.

    • Krayzie (neregistrovaný)

      UNI: Pod tabulkou mas rozbor jednotlivych testov. Nikto nespochybnuje fakt, ze A7 je rychlejsi ako A6. Ale je to dosledok zmeny architektury a pridania novych instrukcii (vid testy AES, SHA1). Nevyhodu 64bit architektury tam mas tiez spomenutu:

      „The Dijkstra workload is the only real regression. That test in particular appears to be very pointer heavy, and the increase in pointer size from 32 to 64-bit increases cache pressure and causes the reduction in performance.“

    • uni (neregistrovaný)

      Hele fakt nevím, co k tomu více říci, prostě 32/64≠stejný výkon.

      Pindy o tom, že 64bit je užitečný jen ve spojení s nějakým adresním prostorem RAM jsou prostě jen pindy.

    • zipiik (neregistrovaný)

      Jirka: Spatne jsem se vyjadril, mel jsem misto 32bit napsat aplikace pro ARMv7. Ja vnimam pojem „prinos 64bitu“ jako „prinos ARMv8“, soucasti ARMv8 je i 64bitova adresace a instrukcni sada, ale divam se na to jako na celek.

    • Jirka (neregistrovaný)

      KRAYZIE:Přestě tak, souhlas

      UNI,ZIPIIK:No jak jsem už uvedl, nikdo tu nezpochybňuje že A7 je rychlejší než A6, a stejně tak že ARM8 je rychlejší než ARM7. Nicméně zrychlení není způsobeno 64bit, ale celkově lepší architekturou. Prostě když na A7 spustíš 32bit aplikaci zkompilovanou pro A7, poběží stejně rychle jako 64bit aplikace zkompilovaná pro A7. Pochopitelně 32bit apliakce zkompilovaná pro A6 poběží na A7 pomaleji.

      Samotných 64bit přináší dvě výhody:

      -64bit operace, jenže ty se prakticky nepoužívají (už dávno je nahradily 256bit SIMD instrukce či speciální kryptografické instrukce)

      -a adresace více paměti, což je to zásadní, ovšem projeví se jen když skutečně zařízení bude mít více jak 4GB RAM.

      V ostatních případech 64bit znamená stejnou rychlost nebo dokonce zpomalení.

      Pochopitelně je důležíte zda se bavíme o 32bit vs 64bit, nebo o ARMv7 vs ARMv8, což je jiná otázka.

    • Marek (neregistrovaný)

      Akoze ja proti Applu nic nemam ale pripominas mi zariteho fanusika ako mceza na Wp. Nakolko som vyvojar a tak ti moze zarucene povedat ze 64bit je pre hry horsi. Musis si zobrat ze sa zbytocne plytva viac pamatou nakolko niektore registre su 64 bitove i ked to aplikacia absolutne nepotrebuje. Ked si vezmes ze nejake prekreslovanie sceny vo for cykle, kde sa pouziva long, ktory mal 4byte a teraz ma 8byte aj ked zbytocne. To sa robi pre 100k objektov. Ver mi ze ten rozdiel je markatny na sprave pamati. Tak ako tvrdili ostatny, A7 je jednoznacne lepsi, ale prechod na 64bit viac menej zraza vykon ako ho vylepsuje. Take tie zvasty ze programatory sa na to este nenaucili programovat moze povedat len nejaky PR manazer aby presvedcil zakaznikov ze to este bude 300x rychlejsie v buducnosti. To je take iste ako s tymi jadrami co som spominal. Proste niektore ulohy sa nedaju zmysluplne paralelizovat resp. rozlozenie ulohy na x jadier a nasledna synchronizacia by zabrala mnohonasobne viac casu nakolko pocas synchronizacie procesory musia cakat.

    • Johny (neregistrovaný)

      Díky za vysvětlení kluci. Předtím mi to bylo vysvětlováno trochu jinak a protože dotyčný o tom něco věděl, přijal jsem to i za svůj názor. Nemluvě o tom, že se o tom i tak často na různých místech mluvilo. :-)

  4. Vinc (neregistrovaný)

    „Maximum operační paměti pro 32bitové systémy jsou 3 GB“ (+ drobné)

    To snad ne, celkově můžou být adresovány 4 GB. Jde o to, že do této kapacity se musí vejít i pamět zobrazovacího adaptéru, takže v 32bit systému je možné použít např. 3 GB RAM + 1 GB VRAM. Nebo 3,5 GB RAM a půl GB VRAM, každopádně ta věta je zavádějící.

    • KRoman47 (neregistrovaný)

      Já to říkám pořád, ale kvůli takovýmto článkům se tohoto v podstatě mýtu nedá zbavit, všichni plácají jen o alokované RAM a na VRAM se zapomíná.

    • Lukáš Košík (neregistrovaný)

      No a nevite jak je to s VRAM u GPU Adreno a PowerVR? Mají vlastni paměť, nebo je to sdilená RAM? Např u zmiňovaneho Note 3?

      Nikde se to nezmiňuje (když se např. komentuje opisování Samsungu v 64bit) ale je tedy téměř jisté, že další Note (a určitě nejen ten) bude mít 64bitový procesor. A tudíž další Android bude muset být 64bitový.

      V tomto světle také působí poněkud úměvně zásluhy přisuzované za prvenství Applu v představení nové architektury. Ve světě top Android telefonů (Apple díky 1 GB RAM mohl klidně dva roky počkat) je to neodvratný krok a za půl roku to bude mít každý. Podobně jako když s velkou slávou představil super rozlišení displeje, ale dnes je to podprůměr.

    • uni (neregistrovaný)

      Na co by čekal? Nevím kolik poměti dá do iPadů, letos, příští rok, atd. Navíc proč již nyní by si nezajistil zpětnou kompatibilitu HW pro příp. budoucí 64bit only vývoj SW?

    • Jirka (neregistrovaný)

      Lukáš: Pokud vím mají všechny sdílenou paměť.

      VINC: Přesně tak, správně je to 4GB. 3GB je omezení konkrétního OS (32bit Windows), který část adresního prostoru používá pro jiné účely.

      Jinak 64bit architektura je rozhodně krok správným směrem, ale především ve smyslu „přípravy půdy“ do budoucna. Kdo čeká okamžité výhody, či dokonce lepší výkon je opravdu mimo.

    • Velda (neregistrovaný)

      Windows 32 bitů žádné 3 GB omezení nemá. Kde na ty pohádky dneska ty děcka choděj.

  5. jorbl (neregistrovaný)

    Zajímavý že v některých aspektech se mobilní zařízení blíží čím dál tím víc PC (velikost paměti a její potřeba pro běh OS, počty jader, výkon atd), v jiných se čím dál tím víc vzdaluje (obskurní přístup k běhu na pozadí/multitaskingu).

  6. Jirka (neregistrovaný)

    Co je to za nesmyslný článek. Přechod 64bit neznamená více jízdních pruhů (k tomu lze přirovnat více jader), ale spiše širší pruhy, které neznamenají ani vyšší rychlost ani vyšší propustnost (vyjímkou jsou SIMD operace, ty ale jsou i v dnešních 32bit pricesorech i 256bitové).

    Dále u Dalvik aplikací problém není protože se pomocí JIT překládají až za běhu(stejně jako C# aplikace na WP), problém by mohly být nativní aplikace Androidu, naštěstí 64bit procesory (x86-64 i ARMv8) jsou kompatibilní s 32bit procesory.

    Jediným benefitem 64bit procesorů je možnost adresovat více jak 4GB RAM.

    • PdT (neregistrovaný)

      Konečně někdo v diskuzi, kdo má ponětí, o čem mluví.

    • PHiLiPZ (neregistrovaný)

      Uplny suhlas.

    • marek1 (neregistrovaný)

      Souhlas s Jirkou. Uni, Johny sorry, ale Jirkati rika dobre.

    • Rezza (neregistrovaný)

      Ten clanek je krasny * :). A s LPAE je adresovatelny 1 TB (40 bitu), ac stale pro procesy je adresni prostor 32 bitu. Ale ve vsech clancich se mluvi o max 4 GB pameti v telefonu, ne o procesech, takze zase * ;-).

    • Jirka (neregistrovaný)

      Ještě doplním, propustnost, resp počet jízdních pruhů silnice, můžeme nejlépe přirovnat k počtu jader, ale případně také šíři paměťové sběrnice (které je i u 32bit procesorů běžně 256bitová), a ano obojí zvyšuje propustnost.

      Rozhodně ale ne k tomu zda procesor podporuje aritmetické operace s 64bit přesností a množství paměťi které dokáže adresovat, kdy ani jedno z toho nezvyšuje výkon ani propustnost.

    • Velda (neregistrovaný)

      Přesně tak. Nemůžer jezdit více náklaďáků, ale za to může být každý o něco širší a tedy celkově uvezou více nákladu. :-)

    • Jirka (neregistrovaný)

      Ano, náklaďáky mohou být širší a více toho uvezou. Ovšem takové náklaďáky jsou prakticky nepoužívané, resp využijí se jen ve velmi ojedinělých případech (práce s čísly s 64bit přesností). A tak širší jízdní pruhy zůstávají bez využití.

    • Velda (neregistrovaný)

      No, teoreticky to tak je. Prakticky při optimalizované 64bitové kompilaci náročného programu 25% zrychlení, kvůli instrukcím, které by se jinak museli vykonávat 2x.

    • mceza (neregistrovaný)

      A kolik takových programů v současnosti je? A kolik takových programů v budoucnosti v mobilních zažízeních bude?

      Do budoucna je 64bit architektura určitě plus, ale v tuto chvíli (a ještě spoustu let do budoucna) to nebude mít využití.

    • isheep ii (neregistrovaný)

      Velda: Tomu doufam i ty sam neveris, ze 64bit ti prinese 25% zrychleni.

  7. mino (neregistrovaný)

    Keď Samsung spustí naplno 4GB RAM pre mobily tak to bude mať zmysel

  8. Velda (neregistrovaný)

    To, že 32bitová aplikace na 64bitovém systému běží stejně rychle jako na 32bit je samozřejmě blbost. Běží pomaleji.

  9. Geary (neregistrovaný)

    Řeči hezký, ale zajímá mě jedno, jak poznám rozdíl v běžným používání, na tomto videu nic nevidím [odkaz]

  10. W8 (neregistrovaný)

    nič to neprinesie

    až ked to da samsung do plastosračky so 6 plcovým displejom to len bude super truper stroj najlepší na trhu,to posledné bude patiť ale len v tom že sa to bude ako stále trhať-pre blbečka gearyho lagovať

    • uni (neregistrovaný)

      Tak nějak, tohle přinesl Apple, tak to musíme co nejvíce strhat, ale až to přinese Samsung, bude to opět adept na inovátora roku:-)

      Ale to už má zajištěné hodinkami.

    • Geary (neregistrovaný)

      Já nic nestrhávám, já se normálně ptám, nemusíš z toho bejt nervózní.

  11. djkure (neregistrovaný)

    Jediné co vím je to, že i kdyby Samsung vydal telefon s 8GB RAM, tak bude mít uživatel stejně k dispozici maximálně necelé gigo :D … díky TouchWizu.

  12. gaspic (neregistrovaný)

    sakra koho zajímá 64bitovej systém, milion gb operační peměti a rozlišení 987654×654321 na displayi?!! chci mobil co mi vydrží měsíc bez nabytí!!!!

    • Michal (neregistrovaný)

      Tak si ten mobil kup. Například: [odkaz]

      A samozřejmě mobilu stačí nabýt jen jedno. Potom jej už jenom pravidelně dobíjíš.

  13. justicek (neregistrovaný)

    64 je 2x víc než 32 :-*

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *