Mike Ash tileinkað blogginu sínu hagnýtar afleiðingar þess að skipta yfir í 64-bita arkitektúr í iPhone 5S. Þessi grein byggir á niðurstöðum hans.
Ástæðan fyrir þessum texta er aðallega vegna mikillar rangra upplýsinga sem dreift er um hvað nýi iPhone 5s með 64 bita ARM örgjörva þýðir í raun fyrir notendur og markað. Hér munum við reyna að koma með hlutlægar upplýsingar um frammistöðu, getu og afleiðingar þessarar umskiptis fyrir þróunaraðila.
"64 bita"
Það eru tveir hlutar örgjörva sem "X-bit" merkimiðinn getur vísað til - breidd heiltöluskránna og breidd vísanna. Sem betur fer eru þessar breiddir þær sömu á flestum nútíma örgjörvum, þannig að í tilviki A7 þýðir þetta 64-bita heiltöluskrár og 64-bita ábendingar.
Hins vegar er jafn mikilvægt að benda á hvað "64bit" þýðir EKKI: Stærð RAM líkamlegt heimilisfang. Fjöldi bita sem eiga að hafa samskipti við vinnsluminni (þannig hversu mikið vinnsluminni tæki styður) er ekki tengt fjölda örgjörvabita. ARM örgjörvar hafa hvar sem er á milli 26 og 40 bita vistföng og hægt er að breyta þeim óháð restinni af kerfinu.
- Stærð Gagnarútu. Magn gagna sem berast frá vinnsluminni eða biðminni er á sama hátt óháð þessum þætti. Einstakar leiðbeiningar örgjörva geta beðið um mismikið gagnamagn, en þær eru annað hvort sendar í klumpum eða berast meira úr minni en þörf er á. Það fer eftir stærð gagnaskammta. iPhone 5 tekur nú þegar við gögnum úr minninu í 64 bita magni (og er með 32 bita örgjörva) og við getum rekist á stærðir allt að 192 bita.
- Allt sem tengist floating point. Stærð slíkra skráa (FPU) er aftur óháð innri starfsemi örgjörvans. ARM hefur notað 64-bita FPU síðan fyrir ARM64 (64-bita ARM örgjörva).
Almennir kostir og gallar
Ef við berum saman annars eins 32bita og 64bita arkitektúr eru þeir almennt ekki svo ólíkir. Þetta er ein af ástæðunum fyrir almennu rugli almennings sem leitar að ástæðu fyrir því að Apple er að fara yfir í 64bit í farsímum líka. Hins vegar kemur þetta allt frá sérstökum breytum A7 (ARM64) örgjörvans og hvernig Apple notar hann, ekki bara frá því að örgjörvinn er með 64 bita arkitektúr.
Hins vegar, ef við lítum enn á muninn á þessum tveimur arkitektúrum, munum við finna nokkurn mun. Það augljósa er að 64 bita heiltöluskrár geta séð um 64 bita heiltölur á skilvirkari hátt. Jafnvel áður var hægt að vinna með þá á 32 bita örgjörvum, en það þýddi venjulega að skipta þeim í 32 bita langa bita sem olli hægari útreikningum. Þannig að 64-bita örgjörvi getur almennt reiknað með 64-bita gerðum alveg jafn hratt og með 32-bita. Þetta þýðir að forrit sem almennt nota 64-bita gerðir geta keyrt miklu hraðar á 64-bita örgjörva.
Þrátt fyrir að 64bit hafi ekki áhrif á heildarmagn vinnsluminni sem örgjörvinn getur notað getur það gert það auðveldara að vinna með stóra vinnsluminni í einu forriti. Sérhvert stakt forrit sem keyrir á 32-bita örgjörva hefur aðeins um 4 GB af vistfangarými. Að teknu tilliti til þess að stýrikerfið og venjuleg bókasöfn taka upp eitthvað, skilur þetta forritið eftir einhvers staðar á bilinu 1-3 GB til notkunar í forritum. Hins vegar, ef 32-bita kerfi er með meira en 4 GB af vinnsluminni, er notkun þess minni aðeins flóknari. Við verðum að grípa til þess ráðs að þvinga stýrikerfið til að kortleggja þessa stærri klumpa af minni fyrir forritið okkar (minni sýndarvæðing), eða við getum skipt forritinu í marga ferla (þar sem hvert ferli hefur aftur fræðilega séð 4 GB af minni tiltækt fyrir bein heimilisfang).
Hins vegar eru þessar "hacks" svo erfiðar og hægar að lágmarks forrit nota þau. Í reynd, á 32-bita örgjörva, mun hvert forrit aðeins nota 1-3 GB af minni, og meira tiltækt vinnsluminni er hægt að nota til að keyra mörg forrit á sama tíma eða nota þetta minni sem biðminni (skyndiminni). Þessi notkun er hagnýt, en við viljum að hvaða forrit sem er geti auðveldlega notað minnishluta sem eru stærri en 4GB.
Nú komum við að þeirri tíðu (reyndar röngu) fullyrðingu að án meira en 4GB af minni sé 64-bita arkitektúr gagnslaus. Stærra heimilisfangrými er gagnlegt jafnvel á kerfi með minna minni. Minniskortaðar skrár eru handhægt tól þar sem hluti af innihaldi skráarinnar er rökrétt tengdur við minni ferlisins án þess að hlaða þurfi allri skránni inn í minnið. Þannig getur kerfið til dæmis smám saman unnið úr stórum skrám sem eru margfalt stærri en vinnsluminni. Í 32-bita kerfi er ekki hægt að kortleggja svo stórar skrár á áreiðanlegan hátt í minni, en á 64-bita kerfi er það stykki af köku, þökk sé miklu stærra vistfangarými.
Hins vegar, stærri stærð ábendinga hefur einnig einn stóran ókost: annars þurfa sams konar forrit meira minni á 64-bita örgjörva (þessar stærri ábendingar verða að vera geymdar einhvers staðar). Þar sem ábendingar eru tíður hluti af forritum getur þessi munur íþyngt skyndiminni, sem aftur veldur því að allt kerfið keyrir hægar. Svo í samhengi getum við séð að ef við breyttum örgjörvaarkitektúrnum í 64-bita myndi það í raun hægja á öllu kerfinu. Þess vegna þarf að jafna þennan þátt með meiri hagræðingu á öðrum stöðum.
ARM64
A7, 64-bita örgjörvinn knýr nýja iPhone 5s, er ekki bara venjulegur ARM örgjörvi með breiðari skrám. ARM64 inniheldur miklar endurbætur á eldri 32-bita útgáfunni.
Registry
ARM64 geymir tvöfalt fleiri heiltöluskrár en 32-bita ARM (passið að rugla ekki saman fjölda og breidd skráa - við töluðum um breidd í "64-bita" hlutanum. Þannig að ARM64 hefur bæði tvöfalt breiðari skrár og tvöfalt fleiri skrár). 32-bita ARM hefur 16 heiltöluskrár: einn forritateljara (tölva - inniheldur númer núverandi leiðbeiningar), staflabendill (bendill á aðgerð sem er í gangi), hlekkjaskrá (bendill á skil eftir lok aðgerðarinnar), og hinar 13 eru til notkunar í forritum. Hins vegar hefur ARM64 32 heiltöluskrár, þar á meðal einn núllskrá, hlekkaskrá, rammabendi (svipað og staflabendill) og einn frátekinn fyrir framtíðina. Þetta skilur okkur eftir með 28 skrár til notkunar forrita, meira en tvöfalt 32-bita ARM. Á sama tíma tvöfaldaði ARM64 fjölda floating-point number (FPU) skráa úr 16 í 32 128-bita skrár.
En hvers vegna er fjöldi skráa svo mikilvægur? Minni er yfirleitt hægara en CPU útreikningar og lestur/skrif getur tekið mjög langan tíma. Þetta myndi gera hraðvirki örgjörvann til að halda áfram að bíða eftir minni og við myndum ná náttúrulegum hraðamörkum kerfisins. Örgjörvar reyna að fela þessa fötlun með lögum af biðmunum, en jafnvel sá hraðvirkasti (L1) er samt hægari en útreikningur örgjörvans. Hins vegar eru skrár minnisfrumur beint í örgjörvanum og lestur / ritun þeirra er nógu hröð til að hægja ekki á örgjörvanum. Fjöldi skráa þýðir nánast magn hraðasta minnisins fyrir útreikninga örgjörva, sem hefur mikil áhrif á hraða alls kerfisins.
Á sama tíma þarf þessi hraði góðan hagræðingarstuðning frá þýðandanum svo tungumálið geti notað þessar skrár og þurfi ekki að geyma allt í almennu forritinu (hæga) minni.
Leiðbeiningarsett
ARM64 hefur einnig miklar breytingar á leiðbeiningasettinu. Leiðbeiningarsett er safn atómaðgerða sem örgjörvi getur framkvæmt (td 'ADD register1 register2' bætir við tölunum í tveimur skrám). Aðgerðirnar sem eru tiltækar fyrir einstök tungumál eru samsettar úr þessum leiðbeiningum. Flóknari aðgerðir verða að framkvæma fleiri leiðbeiningar, svo þær geta verið hægari.
Nýtt í ARM64 eru leiðbeiningar fyrir AES dulkóðun, SHA-1 og SHA-256 kjötkássaaðgerðir. Þannig að í stað flókinnar útfærslu mun aðeins tungumálið kalla þessa kennslu - sem mun hraða útreikningi slíkra aðgerða gríðarlega og vonandi auka öryggi í forritum. T.d. nýja Touch ID notar einnig þessar leiðbeiningar í dulkóðun, sem gerir ráð fyrir raunverulegum hraða og öryggi (fræðilega séð, árásarmaður þyrfti að breyta örgjörvanum sjálfum til að fá aðgang að gögnunum - sem er vægast sagt ópraktískt miðað við smærri stærð þeirra).
Samhæfni við 32bit
Það er mikilvægt að nefna að A7 getur keyrt að fullu í 32-bita ham án þess að þörf sé á eftirlíkingu. Það þýðir að nýi iPhone 5s getur keyrt forrit sem eru sett saman á 32-bita ARM án þess að hægja á. Hins vegar getur það ekki notað nýju ARM64 aðgerðirnar, svo það er alltaf þess virði að búa til sérstaka byggingu bara fyrir A7, sem ætti að keyra miklu hraðar.
Breytingar á keyrslutíma
Runtime er kóðinn sem bætir aðgerðum við forritunarmálið, sem það getur notað á meðan forritið er í gangi, þar til eftir þýðingu. Þar sem Apple þarf ekki að viðhalda samhæfni forrita (að 64 bita tvöfaldur keyrir á 32 bita) gætu þeir leyft sér að gera nokkrar endurbætur á Objective-C tungumálinu.
Einn þeirra er svokallaður merktur bendill (merktur vísir). Venjulega eru hlutir og vísar á þá hluti geymdir í aðskildum hlutum minnis. Hins vegar leyfa nýjar benditegundir flokkum með lítil gögn að geyma hluti beint í bendilinn. Þetta skref útilokar þörfina á að úthluta minni beint fyrir hlutinn, búðu bara til bendi og hlutinn inni í honum. Merktir bendilar eru aðeins studdir í 64-bita arkitektúr, einnig vegna þess að það er ekki lengur nóg pláss í 32-bita bendili til að geyma nógu gagnleg gögn. Þess vegna studdi iOS, ólíkt OS X, ekki enn þennan eiginleika. Hins vegar, með tilkomu ARM64, er þetta að breytast og iOS hefur náð OS X í þessu sambandi líka.
Þó að bendillar séu 64 bitar að lengd, eru á ARM64 aðeins 33 bitar notaðir fyrir eigin heimilisfang bendillsins. Og ef við getum afhjúpað afganginn af bendibitunum á áreiðanlegan hátt, getum við notað þetta pláss til að geyma viðbótargögn - eins og í tilviki nefndra merktra bendila. Hugmyndalega er þetta ein stærsta breyting í sögu Objective-C, þó það sé ekki markaðshæfur eiginleiki - svo flestir notendur vita ekki hvernig Apple er að koma Objective-C áfram.
Hvað varðar þau gagnlegu gögn sem hægt er að geyma í því plássi sem eftir er á slíkum merktum bendili, þá notar Objective-C það nú til dæmis til að geyma sk. viðmiðunarfjölda (fjöldi tilvísana). Áður var viðmiðunartalningin geymd á öðrum stað í minni, í kjötkássatöflu sem útbúin var fyrir hana, en það gæti hægt á öllu kerfinu ef um er að ræða mikinn fjölda alloc/dealloc/retain/release símtöl. Læsa þurfti töflunni vegna þráðaöryggis, þannig að ekki var hægt að breyta viðmiðunartölu tveggja hluta í tveimur þráðum á sama tíma. Hins vegar er þetta gildi nýlega sett inn í restina af svokölluðu isa vísbendingar. Þetta er annar lítt áberandi, en mikill kostur og hröðun í framtíðinni. Hins vegar væri aldrei hægt að ná þessu í 32-bita arkitektúr.
Upplýsingar um tengda hluti, hvort hluturinn sé veikt vísað til, hvort nauðsynlegt sé að búa til eyðingarbúnað fyrir hlutinn o.s.frv., eru einnig nýlega settar inn á þann stað sem eftir er af ábendingum á hlutina. Þökk sé þessum upplýsingum er Objective-C Runtime getur í grundvallaratriðum flýtt fyrir keyrslutíma, sem endurspeglast í hraða hvers forrits. Frá prófun þýðir þetta um 40-50% hraða á öllum minnisstjórnunarsímtölum. Bara með því að skipta yfir í 64 bita vísa og nota þetta nýja rými.
Niðurstaða
Þrátt fyrir að keppendur muni reyna að dreifa hugmyndinni um að það sé óþarfi að flytja yfir í 64 bita arkitektúr, þá muntu nú þegar vita að þetta er bara mjög óupplýst skoðun. Það er satt að það að skipta yfir í 64 bita án þess að aðlaga tungumálið þitt eða forrit þýðir í raun ekki neitt - það hægir jafnvel á öllu kerfinu. En nýja A7 notar nútímalegan ARM64 með nýju leiðbeiningasetti og Apple hefur tekið sér það vandræði að nútímavæða allt Objective-C tungumálið og nýta sér nýja möguleika - þess vegna lofað hraðaupphlaup.
Hér höfum við nefnt fjölda ástæðna fyrir því að 64-bita arkitektúr er rétta skrefið fram á við. Þetta er enn ein byltingin „undir hettunni“, þökk sé henni mun Apple reyna að vera í fararbroddi, ekki aðeins með hönnun, notendaviðmót og ríkulegt vistkerfi, heldur aðallega með nútímalegustu tækni á markaðnum.
Margt óupplýst Android/Samsung fólk ætti að lesa þessa grein og fela sig síðan í horninu.
Jæja, við verðum að vorkenna þeim. Í mörg ár afsakuðu þeir hörmulega UX og notendaviðmót Android með því að segja að þeir væru með tæknilega fullkomnasta stýrikerfið með eiginleikum og nú komust þeir að því að þeir eru aftur árum á eftir :)
Ef maður er ekki sauðburður og hlustar á auglýsingar (og er góður í því) þá getur hann eftir eigin reynslu myndað sér sína skoðun :-).
Ég reyni nánast alla keppnina og mynda mér mína eigin skoðun.
Fyrir mig þarf ég nýjan ofurafkastamikinn farsíma, því ég eyði ekki miklu í hann. Það er að segja Ég þarf minni afköst fyrir minna verð ;-). Kannski myndi ég kjósa hægari með stærri rafhlöðu.
Á hinn bóginn myndi nýja procakið nýtast vel fyrir iPad þar sem mikið er af leikjum :-).
Ég er Android/HTC :) því ÞAÐ er frekar skemmtilegt fyrir mig og að róta og breyta hágæða HW í hraðvirkan bardaga er áhugamálið mitt. Og iOS leyfir mér ekki að gera það. (Það er ekki einu sinni nauðsynlegt. Meira og minna, iOS er hannað þannig að allt virkar eins og það á að gera og þú þarft ekki að gera neitt þar. Þegar ég hætti að njóta þess að spila mun ég kaupa epli og njóta þess). En ég veit ekki hvers vegna þið haldið áfram að ráðast á hvort annað eins og krakkar. Apple er alveg eins og Android. Þetta er eins og að bera Lýðræði saman við Einræði og þess háttar... Ég horfði á ráðstefnuna þegar iPhone 5S var kynntur og þrátt fyrir að ég eigi ekki neitt frá Apple þá leist mér vel á 64bit og aðrar endurbætur sem komu. En ekki vegna þess að ég er flókinn honimír trtko sem situr fyrir aftan PC og eltir Android eða Apple, heldur vegna þess að ég sé FRAMSÓKNIN sem mun ekki láta mig bíða lengi. Fólk ætti að fara að vinna mjög mikið svo það hafi ekki tíma til að takast á við kjaftæði, kurteislega sagt.
uppbyggilegt framlag frá hinni hliðinni :) kiez það myndi opna augu hinna 99% android jákvæðu
kannski ætti að ræða 99% epla ofstækismanna fyrst, svo getum við átt uppbyggilegt samtal
mjög flóknir hlutir útskýrðir einfaldlega... takk
Frábær grein! Já, ég er sammála því að Android/WP notendur ættu að lesa þessa grein sem nauðsyn. Í stað þess að trolla og tala snjallt um „hvernig 64b er gagnslaust í farsímum“...
þú varst líklega aldrei með wp í hendinni, annars værir þú ekki með þetta
Frá fyrstu velgengni sinni á farsímamarkaði hefur Samsung ekkert gert annað en að smyrja samkeppnina, en í rauninni hefur það verið að feta í fótspor þess allan þennan tíma. Apple hefur alltaf verið fyrirmynd tæknifyrirtækja og ef þau einbeita sér eingöngu að því að hæðast að og stöðugt rangfæra viðskiptavini munu þau fljótlega hrasa. Apple hefur alltaf farið sínar eigin leiðir og það hefur alltaf verið spurning um mjög góða tímasetningu, sem mörg samkeppnisfyrirtæki í greininni skortir.
Segja má að Samsung rísi á ölduna og nýti sér möguleika sína. Hann veðjaði á Android, hann er með frábært HW, hann gerir mikið af hlutum sjálfur, hann hefur ágætis stuðning. Og eins og öll rándýr asísk fyrirtæki notar það alla möguleika auglýsinga. Og auðvitað stelur hann og afritar. Það sem "skáeygður" er góður í er að afrita. Þeir hafa reiknað það mjög vel út að það sé miklu ódýrara en að fara sínar eigin leiðir, skref fyrir skref. Og sem sterkt fyrirtæki hefur það einfaldlega efni á þessu. Strax…
Ég bara skil ekki afhverju hraðinn á símanum eykst stöðugt, gefðu mér nokkur dæmi um hvað þú notar hann í, það meikar hægt og rólega ekkert sense fyrir mér að auka afköst farsímans, en ég mun fjarlægja orðið markaðssetning .
Leikir, illa fínstilltir leikir. Einnig gengur Transport Tycoon á iPad 3 ekki eins vel og í sömu upplausn og á skjáborðinu. Dæmi.
Ég bara skil ekki afhverju hraðinn á símanum eykst stöðugt, gefðu mér nokkur dæmi um hvað þú notar hann í, það meikar hægt og rólega ekkert sense fyrir mér að auka afköst farsímans, ef ég fjarlægi orðið markaðssetning úr það.
Fyrir mynd-, hljóð- og myndvinnslu. Og áfram að leikjunum.
Allir sem nota iPhone eingöngu til að hringja, senda sms, og einstaka sinnum lesa eða senda tölvupósta og stundum vafra á netinu þurfa iPhone 4. Ég tel að það séu margir slíkir notendur. Það þurfa ekki allir besta síma í heimi :-)
kindur
Skiptir líkamlegt málamiðlun milli vélbúnaðar og hugbúnaðar ekkert fyrir þig? Þetta minnir mig svolítið á lok 19. aldar, þegar eðlisfræðingar þess tíma sögðu að allt í eðlisfræði hefði þegar verið uppgötvað og óþarfi að halda áfram ( áratug fyrir afstæðiskenninguna og þremur á undan skammtafræðinni) .
Leitin að því besta lýkur aldrei. Stundum leiðir hugbúnaðurinn og stundum vélbúnaðurinn. En ef einn festist þá sleppir hann hinum ekki. Við munum ekki vera svona eigingjarn við afkomendur okkar :) Svo að athugasemd þinni - hraðari sími mun gera öflugri forritum kleift, sem munu geta gert miklu meira en að keyra. Og einu sinni hluti sem jafnvel tölvur nútímans duga ekki fyrir. Framtíðin er spennandi.
Nákvæmlega :)
Fín grein, en ég skil ekki af hverju Apple setti ekki 7GB af vinnsluminni í A2. Já, iOS fjölverkavinnsla er ekki þannig að 2GB þurfi endilega, en miðað við tvöfalda lengd minnisbendilsins væri það mun hentugra.
En annars er ég sammála því að 64 bita örgjörvi er "óþarfur" fyrir farsíma, rétt eins og sjónhimnuskjár eða sjónmús í stað bolta var óþörf - allar þessar uppfinningar voru merktar sem "óþarfar", en að mínu mati rétt orð er "tímalaust", því einu sinni verður að koma og Apple er óhræddur við að koma með eitthvað nýtt.
Ég segi það. Því miður er jafnvel "ónýtt" ekki nákvæm orðatiltæki. Óþarfi þýðir eitthvað sem maður veit ekki um forgang. Það er örugglega ekki satt. Hraði þarf kannski ekki slíkan hraða, en hann mun örugglega þekkja hann. Og þegar hugbúnaðurinn nær upp á vélbúnaðinn verður aftur pláss fyrir umbætur.
Jú, ég er fylgjandi, ég meina iP5 er í raun frekar hraður snjallsími, svo 5S þyrfti alls ekki að vera 64bit. En einn daginn þurfti einhver að takast á við það aftur og það var Apple og það var núna. Frá því ég man eftir mér hafa sérfræðingar líka talað um að 64-bita örgjörvar verði gagnslausir jafnvel í tölvum.
Fyrir mig, sem IT leikmann sem nánast féll í stúdentsprófi, er niðurstaðan mikilvæg. Greinin í heild sinni (studd af athugasemdunum) virðist mér nokkuð innsæi og þó ég geti ekki útskýrt hana er A7 með 64 bita arkitektúr skref fram á við. Takk fyrir upplýsingarnar.
Ég myndi breyta titli greinarinnar þar sem hún er markaðsaðgerð. Sérhver nýsköpun er í raun markaðsaðgerð. :-)
Ég held ekki. Til dæmis notar Samsung markaðsaðgerðir. Þeir birtast með vinnsluminni, sem iPhone þarf alls ekki. Þeir komast upp með eiginleika sem eru alls ekki nothæfir. Viljandi auka afköst örgjörva þeirra fyrir próf. O.s.frv. Það er markaðssetning, þó já, hún sé villandi, sem þeir ættu ekki bara að komast upp með ;)