Mike Ash bere blogean eskainia iPhone 64S-n 5 biteko arkitekturara aldatzearen ondorio praktikoak. Artikulu honek bere aurkikuntzetan oinarritzen da.
Testu honen arrazoia, batez ere, 5 biteko ARM prozesadoredun iPhone 64s berriak erabiltzaileentzat eta merkaturako benetan esan nahi duenari buruz zabaltzen ari den desinformazio kopuru handiagatik da. Hemen saiatuko gara garatzaileentzako trantsizio honen errendimenduari, gaitasunei eta inplikazioei buruzko informazio objektiboa ekartzen.
"64 bit"
"X-bit" etiketak erreferentzia ditzakeen prozesadore baten bi zati daude: osoko erregistroen zabalera eta erakusleen zabalera. Zorionez, prozesadore moderno gehienetan zabalera horiek berdinak dira, beraz, A7-ren kasuan 64 biteko osoko erregistroak eta 64 biteko erakusleak esan nahi du.
Hala ere, berdin garrantzitsua da "64bit"-ek zer esan nahi ez duen adieraztea: RAM helbide fisikoaren tamaina. RAMarekin komunikatzeko bit kopurua (beraz, gailu batek onar dezakeen RAM kopurua) ez dago PUZaren bit kopuruarekin erlazionatuta. ARM prozesadoreek 26 eta 40 biteko helbideak dituzte eta gainerako sistemaren arabera alda daitezke.
- Datu-busaren tamaina. RAM edo buffer memoriatik jasotako datu kopurua faktore horretatik independentea da. Banakako prozesadorearen argibideek datu kopuru desberdinak eska ditzakete, baina zatika bidaltzen dira edo memoriatik behar baino gehiago jasotzen dira. Datu kuantikoaren tamainaren araberakoa da. iPhone 5-ak dagoeneko jasotzen ditu memoriako datuak 64 biteko kantetan (eta 32 biteko prozesadorea du), eta 192 biteko tamainak topa ditzakegu.
- Koma flotagarriarekin zerikusia duen edozer. Erregistro horien tamaina (FPU) berriro prozesadorearen barne funtzionamendutik independentea da. ARM-k 64 biteko FPU erabiltzen ari da ARM64 aurretik (64 biteko ARM prozesadorea).
Abantaila eta desabantaila orokorrak
Bestela 32 biteko eta 64 biteko arkitektura berdinak alderatzen baditugu, orokorrean ez dira horren desberdinak. Hau da publikoaren nahasmen orokorraren arrazoietako bat Apple gailu mugikorretan ere 64 bit-era mugitzen ari den arrazoi baten bila. Hala ere, dena A7 (ARM64) prozesadorearen parametro zehatzetatik eta Applek erabiltzen duen modutik dator, ez bakarrik prozesadoreak 64 biteko arkitektura duela.
Hala ere, oraindik ere bi arkitektura hauen arteko desberdintasunei erreparatzen badiegu, hainbat desberdintasun aurkituko ditugu. Bistan dena da 64 biteko osoko erregistroek 64 biteko osoko erregistroek modu eraginkorragoan maneiatu ditzaketela. Aurretik ere, 32 biteko prozesadoreetan lan egitea posible zen, baina horrek normalean 32 biteko zati luzeetan zatitzea suposatzen zuen, eta horrek kalkulu motelagoak eragiten zituen. Beraz, 64 biteko prozesadore batek, oro har, 64 biteko motekin konputatu dezake 32 bitekoekin bezain azkar. Horrek esan nahi du orokorrean 64 biteko motak erabiltzen dituzten aplikazioak askoz azkarrago exekutatu daitezkeela 64 biteko prozesadore batean.
64bit-ek prozesadoreak erabil dezakeen RAM kopuru osoa eragiten ez badu ere, programa batean RAM zati handiekin lan egitea erraztu dezake. 32 biteko prozesadore batean exekutatzen den edozein programak 4 GB inguru helbide-espazio besterik ez du. Kontuan izanda sistema eragileak eta liburutegi estandarrak zerbait hartzen dutela, honek 1-3 GB artean uzten du programa aplikazioa erabiltzeko. Hala ere, 32 biteko sistema batek 4 GB RAM baino gehiago baditu, memoria hori erabiltzea pixka bat zailagoa da. Sistema eragilea gure programarako memoria zati handiago hauek mapatzera behartzera jo behar dugu (memoriaren birtualizazioa), edo programa hainbat prozesutan zatitu dezakegu (non prozesu bakoitzak berriro teorikoki 4 GB memoria duen zuzeneko helbideratzeetarako eskuragarri).
Hala ere, "hack" hauek hain zailak eta motelak dira, non gutxieneko aplikazioek erabiltzen dituzte. Praktikan, 32 biteko prozesadore batean, programa bakoitzak bere 1-3 GB-ko memoria baino ez du erabiliko, eta erabilgarri dagoen RAM gehiago erabil daiteke hainbat programa aldi berean exekutatzeko edo memoria hau buffer gisa (caching) erabiltzeko. Erabilera hauek praktikoak dira, baina nahi genuke edozein programak 4GB baino gehiagoko memoria zatiak erraz erabiltzeko gai izatea.
Orain 4 GB baino gehiagoko memoriarik gabe, 64 biteko arkitekturak ez duela ezertarako balioko aldarrikapen maiz (benetan okerra) gatoz. Helbide-espazio handiagoa erabilgarria da memoria gutxiago duen sistema batean ere. Memoria-mapatutako fitxategiak tresna erabilgarriak dira, non fitxategiaren edukiaren zati bat prozesuko memoriarekin logikoki lotzen den fitxategi osoa memorian kargatu beharrik gabe. Horrela, sistemak, adibidez, pixkanaka-pixkanaka fitxategi handiak prozesatu ditzake RAMaren edukiera baino askoz ere handiagoak. 32 biteko sistema batean, horrelako fitxategi handiak ezin dira fidagarriki mapeatu memorian, 64 biteko sisteman, berriz, oso erraza da, helbide-espazio askoz handiagoari esker.
Hala ere, erakusleen tamaina handiagoak desabantaila handi bat ere ekartzen du: bestela, programa berdinek memoria gehiago behar dute 64 biteko prozesadore batean (erakusle handiago hauek nonbait gorde behar dira). Erakusleak programen maiz parte direnez, desberdintasun horrek cachea zamatu dezake, eta, ondorioz, sistema osoa motelago exekutatzen da. Beraz, ikuspuntutik, ikus dezakegu prozesadorearen arkitektura 64 bitekora aldatuko bagenu, benetan sistema osoa motelduko litzatekeela. Beraz, faktore hau beste toki batzuetan optimizazio gehiagorekin orekatu behar da.
ARM64
A7, iPhone 64s berria elikatzen duen 5 biteko prozesadorea, ez da erregistro zabalagoak dituen ARM prozesadore arrunta soilik. ARM64-k hobekuntza handiak ditu 32 biteko bertsio zaharragoaren aldean.
Erregistroan
ARM64-k 32 biteko ARM-ko zenbaki osoko erregistroak baino bi aldiz gehiago ditu (kontuz erregistroen kopurua eta zabalera ez nahasteko - zabaleraz hitz egin dugu "64 biteko" atalean. Beraz, ARM64-k bi erregistro zabal eta bi aldiz gehiago ditu. erregistroak). 32 biteko ARM-ak 16 zenbaki oso-erregistro ditu: programa-kontagailu bat (PC - uneko instrukzio-zenbakia dauka), pila-erakuslea (abian den funtzio baten erakuslea), esteka-erregistroa (amaieraren ondoren itzulera erakuslea). funtzioaren), eta gainerako 13ak aplikazioak erabiltzeko dira. Hala ere, ARM64-k 32 zenbaki oso-erregistro ditu, zero erregistro bat, esteka-erregistroa, marko-erakuslea (pila-erakuslearen antzekoa) eta etorkizunerako gordetako bat barne. Honek 28 erregistro uzten dizkigu aplikazioak erabiltzeko, 32 biteko ARMaren bikoitza baino gehiago. Aldi berean, ARM64-k puntu mugikorreko zenbakien (FPU) erregistroen kopurua bikoiztu zuen 16 32 biteko erregistrotik 128ra.
Baina zergatik da hain garrantzitsua erregistro kopurua? Memoria, oro har, PUZaren kalkuluak baino motelagoa da eta irakurketa/idazketa oso denbora luzea izan daiteke. Honek prozesadore azkarrak memoriaren zain jarraitu beharko luke eta sistemaren abiadura muga naturala lortuko genuke. Prozesadoreak urritasun hori buffer geruzekin ezkutatzen saiatzen dira, baina azkarrena (L1) ere prozesadorearen kalkulua baino motelagoa da. Hala ere, erregistroak memoria-zelulak dira zuzenean prozesadorean eta haien irakurketa/idazketa nahikoa azkarra da prozesadorea ez moteltzeko. Erregistro kopuruak ia prozesadorearen kalkuluetarako memoriarik azkarrenaren zenbatekoa esan nahi du, eta horrek asko eragiten du sistema osoaren abiadura.
Aldi berean, abiadura honek konpiladorearen optimizazio euskarri ona behar du, hizkuntzak erregistro hauek erabil ditzan eta aplikazio orokorrean (motelean) memorian dena gorde behar izan ez dezan.
Argibide multzoa
ARM64-k ere aldaketa handiak ekartzen ditu instrukzio-multzoan. Agindu-multzoa prozesadore batek egin ditzakeen eragiketa atomikoen multzoa da (adibidez, 'GEHITU erregistro1 erregistro2' zenbakiak bi erregistrotan gehitzen ditu). Hizkuntza indibidualentzat eskuragarri dauden funtzioak argibide hauek osatzen dituzte. Funtzio konplexuagoek instrukzio gehiago exekutatu behar dituzte, beraz, motelagoak izan daitezke.
ARM64-n berriak dira AES enkriptatzeko argibideak, SHA-1 eta SHA-256 hash funtzioak. Beraz, inplementazio konplexu baten ordez, hizkuntzak soilik deituko dio instrukzio honi, eta horrek funtzio horien konputazioan bizkortze handia ekarriko du eta aplikazioetan segurtasuna gehituko du. Adib. Touch ID berriak enkriptazioan ere argibide hauek erabiltzen ditu, benetako abiadura eta segurtasuna ahalbidetuz (teorian, erasotzaile batek prozesadorea bera aldatu beharko luke datuak atzitzeko, eta hori ez da praktikoa bere miniaturazko tamaina kontuan hartuta).
32 biteko bateragarritasuna
Garrantzitsua da aipatzea A7 32 biteko moduan guztiz exekutatu daitekeela emulazio beharrik gabe. Horrek esan nahi du iPhone 5s berriak 32 biteko ARM-n konpilatutako aplikazioak exekutatu ditzakeela moteltzerik gabe. Hala ere, orduan ezin ditu ARM64 funtzio berriak erabili, beraz, beti merezi du A7rako soilik eraikuntza berezi bat egitea, askoz azkarrago exekutatu beharko litzatekeena.
Exekuzio-denbora aldaketak
Exekuzio-denbora programazio-lengoaiari funtzioak gehitzen dizkion kodea da, eta aplikazioa exekutatzen ari den bitartean erabiltzeko gai da, itzulpena amaitu arte. Applek ez duelako aplikazioen bateragarritasuna mantendu behar (64 biteko bitar bat 32 biteko exekutatzen dela), Objective-C hizkuntzan hobekuntza batzuk gehiago egin ditzakete.
Horietako bat izenekoa da etiketatutako erakuslea (markatutako erakuslea). Normalean, objektuak eta objektu horien erakusleak memoriaren zati bereizietan gordetzen dira. Hala ere, erakusle mota berriek datu gutxi dituzten klaseei objektuak erakuslean zuzenean gordetzeko aukera ematen diete. Urrats honek objektuari memoria zuzenean esleitzeko beharra ezabatzen du, erakuslea eta barruan dagoen objektua sortu besterik ez dago. Etiketatutako erakusleak 64 biteko arkitekturan soilik onartzen dira, 32 biteko erakusle batean jada ez dagoelako nahikoa leku datu erabilgarriak gordetzeko. Hori dela eta, iOS, OS X ez bezala, oraindik ez zuen funtzio hau onartzen. Hala ere, ARM64-ren etorrerarekin, hori aldatzen ari da, eta iOS-ek OS X-rekin harrapatu du zentzu honetan ere.
Erakusleak 64 biteko luzera izan arren, ARM64-n 33 bit baino ez dira erabiltzen erakuslearen helbiderako. Eta gainerako erakusle-bitak modu fidagarrian azaltzeko gai bagara, espazio hori erabil dezakegu datu gehigarriak gordetzeko, aipatu etiketadun erakusleen kasuan bezala. Kontzeptuki, hau da Objective-C-ren historiako aldaketarik handienetako bat, nahiz eta ez den eginbide komertziala; beraz, erabiltzaile gehienek ez dute jakingo Apple-k nola egiten duen aurrera Objective-C.
Etiketatutako erakusle baten gainerako espazioan gorde daitezkeen datu baliagarriei dagokienez, Objective-C, adibidez, orain erabiltzen ari da deitutakoa gordetzeko. erreferentzia zenbaketa (erreferentzia kopurua). Aurretik, erreferentzia-zenbaketa memoriako beste leku batean gordetzen zen, horretarako prestatutako hash-taula batean, baina horrek sistema osoa moteldu lezake alloc/dealloc/retain/release dei kopuru handi baten kasuan. Taula blokeatu behar izan zen hariaren segurtasunagatik, beraz, bi haritako bi objekturen erreferentzia-zenbaketa ezin izan da aldi berean aldatu. Hala ere, balio hori deitzen diren gainerakoetan txertatu berri da jesus adierazleak. Etorkizuneko abantaila eta azelerazio nabarmena da hau. Hala ere, hori ezin izan da inoiz lortu 32 biteko arkitektura batean.
Lotutako objektuei buruzko informazioa, objektua erreferentzia ahulean dagoen ala ez, objektuaren suntsitzaile bat sortzea beharrezkoa den, etab., objektuen erakusleen gainerako lekuan txertatu berri da. Informazio horri esker, Objective-C exekuzio-denborak exekuzio-denbora funtsean bizkortzeko gai da, eta hori aplikazio bakoitzaren abiaduran islatzen da. Probetatik, horrek memoria kudeatzeko dei guztien % 40-50 inguru bizkortzea esan nahi du. 64 biteko erakusleetara aldatuz eta espazio berri hau erabiliz.
záver
Lehiakideek 64 biteko arkitekturara pasatzea beharrezkoa ez den ideia zabaltzen saiatuko diren arren, dagoeneko jakingo duzue hori oso informaziorik gabeko iritzia dela. Egia da hizkuntza edo aplikazioak egokitu gabe 64 bit-era aldatzeak ez duela ezer esan nahi, sistema osoa moteltzen duela ere. Baina A7 berriak ARM64 moderno bat erabiltzen du instrukzio-multzo berri batekin, eta Apple-k ardura hartu du Objective-C hizkuntza osoa modernizatzeko eta gaitasun berriak aprobetxatzeko - hortik agindutako bizkortzea.
Hemen 64 biteko arkitektura bat aurrerapauso egokia izateko arrazoi ugari aipatu ditugu. Beste iraultza bat da "kapapean", eta horri esker Apple diseinuarekin, erabiltzaile-interfazearekin eta ekosistema aberatsarekin ez ezik, merkatuan dauden teknologia modernoenekin ere abangoardian mantentzen saiatuko da.
Informatu gabeko Android/Samsung jende askok irakurri beharko luke artikulu hau eta gero txokoan ezkutatu.
Tira, pena eman behar diegu. Urteetan Android-en UX eta UI tragikoa barkatu zuten esanez funtzionalitateekin teknologikoki aurreratuena duten sistema eragilea dutela eta orain jakin dute urteak atzeratuta daudela berriro :)
Pertsona bat ez bada ardi bat eta iragarkiak entzuten baditu (eta horretan ona da), orduan esperientzia pertsonalaren ondoren bere iritzia sor dezake :-).
Ia lehiaketa guztia probatzen dut eta nire iritzia sortzen dut.
Niretzat, errendimendu handiko telefono mugikor berri bat behar dut, ez dudalako asko gastatzen. Hori da Errendimendu gutxiago behar dut prezio gutxiagogatik ;-). Agian nahiago nuke motelago bat bateria handiagoarekin.
Bestalde, procak berria joko asko dauden iPaderako erabilgarria izango litzateke :-).
Android/HTC naiz :) oso dibertigarria delako niretzat eta kalitate handiko HW errotzea eta borrokalari azkar batean bihurtzea nire zaletasuna da. Eta iOS-ek ez dit hori egiten utziko. (Ez da beharrezkoa ere. Gehiago edo gutxiago, iOS dena behar den bezala funtziona dezan eta bertan ezer egin beharrik ez izateko. Jolasean gozatzeari uzten diodanean, sagar bat erosi eta gozatu egingo dut). Baina ez dakit zergatik jarraitzen duzuen elkarri umeak bezala erasotzen. Apple guztiz Android bezalakoa da. Demokrazia Diktadurarekin eta antzekoekin alderatzea bezalakoa da... iPhone 5S aurkeztu zenean konferentzia ikusi nuen eta Appleren ezer ez dudan arren, gustatu zitzaizkidan 64bit eta etorritako beste hobekuntza batzuk. Baina ez ordenagailu baten atzean eserita eta Android edo Appleren atzetik dabilen honimír trtko konplexua naizelako, baizik eta luzaroan itxarongo ez nauen PROGRESOA ikusten dudalako. Jendeak oso gogor hasi beharko luke lanean, zekenkeriari aurre egiteko denborarik ez izateko, adeitsu esateko.
beste aldetik ekarpen eraikitzailea :) kiez gainontzeko %99ko android positiboari begiak irekiko lituzke
beharbada, sagar zaleen %99 eztabaidatu beharko litzateke lehenik, gero elkarrizketa eraikitzaile bat izan dezakegu
gauza oso konplexuak besterik gabe azalduta... eskerrik asko
Artikulu bikaina! Bai, onartzen dut Android/WP erabiltzaileek artikulu hau nahitaez irakurri behar dutela. "64b nola ez den alferrikakoa mugikorretan" buruz trolling eta adimenez hitz egin beharrean...
ziurrenik ez duzu inoiz wp bat eskuan izan, bestela ez zenuke hau izango
Mugikorren merkatuan lortutako lehen arrakastaz geroztik, Samsung-ek lehia zikintzea besterik ez du egin, baina funtsean, bere urratsei jarraitu die denbora honetan guztian. Apple beti izan da eredu teknologikoko enpresentzat, eta bezeroei iseka egitera eta etengabe desinformatzera soilik bideratzen badira, laster estropezu egingo dute. Applek beti egin du bere bidea eta oso denbora ona izan da beti, industriako enpresa lehiakide askok falta dutena.
Batek esan liteke Samsung olatuan ibiltzen ari dela eta bere aukerak aprobetxatzen ari dela. Androiden aldeko apustua egin zuen, HW bikaina du, berak gauza asko egiten ditu, laguntza duina du. Eta Asiako edozein enpresa harrapari bezala, publizitatearen aukera guztiak erabiltzen ditu. Eta noski lapurtu eta kopiatzen ditu. "Begi-ohikoak" ona dena kopiatzea da. Oso ondo kalkulatu dute euren bidea egitea baino askoz merkeagoa dela, urratsez urrats. Eta enpresa indartsua denez, hau ordaindu dezake. Hala ere…
Ez dut ulertzen zergatik telefonoaren abiadura etengabe handitzen ari den, eman iezadazu zertarako erabiltzen duzun adibide batzuk, poliki-poliki ez zait zentzurik mugikorraren errendimendua handitzea, baina marketin hitza kenduko dut .
Jolasak, gaizki optimizatutako jokoak. Gainera, Transport Tycoon iPad 3-n ez da mahaigainean bezain ondo eta bereizmen berean exekutatzen. Adibidea.
Ez dut ulertzen zergatik telefonoaren abiadura handitzen jarraitzen duen, eman iezadazu zertarako erabiltzen duzun adibide batzuk, poliki-poliki ez zait zentzurik mugikorraren errendimendua handitzea, marketin hitza kentzen badiot. .
Bideoa, audioa eta irudiak prozesatzeko. Eta jokoetara.
iPhone bat deitzeko, testuak bidaltzeko eta noizean behin mezu elektronikoak irakurtzeko edo bidaltzeko eta noizean behin Interneten nabigatzeko soilik erabiltzen duenak iPhone 4 beharko du. Uste dut horrelako erabiltzaile asko daudela. Denek ez dute munduko telefonorik onena behar :-)
ardiak
Hardwarearen eta softwarearen arteko truke fisikoak ez al du ezer esan nahi zuretzat? Honek XIX.mendearen amaiera gogorarazten dit, garai hartako fisikariek jadanik fisikan dena deskubritua zegoela eta ez zegoela jarraitu beharrik esaten zutenean (erlatibitatearen teoria baino hamarkada bat lehenago eta teoria kuantikoa baino hiru lehenago) . .
Onenaren bila ez da inoiz amaitzen. Batzuetan softwarea eramaten du eta beste batzuetan hardwarea. Baina bat trabatu egiten bada, ez du bestea joaten utziko. Ez gara hain berekoiak izango gure ondorengoekin :) Beraz, zure iruzkinarekin - telefono azkarragoak aplikazio indartsuagoak ahalbidetuko ditu, diskoak baino askoz gehiago egiteko gai izango direnak. Eta behin gaur egungo ordenagailuek ere nahikoa ez duten gauzak. Etorkizuna zirraragarria da.
Zehazki :)
Artikulu polita, baina ez dut ulertzen zergatik Apple-k ez dituen A7-n 2 GB RAM jarri. Bai, iOS multiataza ez da nahitaez 2GB behar izatea, baina memoria-erakusleak bikoitza duen luzera ikusita, askoz ere egokiagoa izango litzateke.
Baina, bestela, ados nago 64 biteko prozesadorea "ez dela" telefono mugikorrentzat "beharrezkoa" dela, erretinako pantaila bat edo bola baten ordez sagu optiko bat beharrezkoa ez zen bezala - asmakizun hauek guztiak "alferrikako" gisa etiketatu ziren, baina nire ustez, hitz zuzena "behin betikoa" da, behin etorri behar delako eta Apple-k ez duelako beldurrik zerbait berria egiteko.
Hori bigarrena dut. Zoritxarrez, "alferrikakoa" ere ez da esamolde zehatza. Alferrikako pertsona batek lehentasuna ezagutzen ez duen zerbait esan nahi du. Hori, zalantzarik gabe, ez da egia. Abiadurak agian ez du halako abiadura behar, baina zalantzarik gabe ezagutuko du. Eta softwareak hardwarearekin harrapatzen duenean, hobetzeko aukera egongo da berriro.
Noski, alde nago, esan nahi dut iP5 benetan nahiko smartphone azkarra dela, beraz, 5S-k ez luke 64 bit-ekoa izan behar. Baina egun batean norbaitek berriro aurre egin behar izan zion eta Apple zen eta orain. Oroitzen dudanetik, adituek ere hitz egin dute 64 biteko prozesadoreek ordenagailuetan ere alferrikakoak izango direla.
Niretzat, matrikula ia huts egin zuen IT-a naizen aldetik, ondorioa garrantzitsua da. Artikulu osoa (iruzkinek lagunduta) nahiko argigarria iruditzen zait, eta azaldu ezin izango dudan arren, 7 biteko arkitektura duen A64 aurrerapauso bat da. Eskerrik asko informazioagatik.
Artikuluaren izenburua editatuko nuke, marketin mugimendu bat baita. Berrikuntza oro funtsean marketin mugimendu bat da. :-)
Ez dut uste. Adibidez, Samsung-ek marketin mugimenduak erabiltzen ditu. RAMarekin agertzen dira, iPhoneak batere behar ez duena. Batere erabilgarri ez diren funtzioekin ihes egitea. Probetarako prozesadorearen errendimendua nahita handitzea. Etab. Hori marketina da, nahiz eta bai, engainagarria den, eta hori ez dute besterik gabe ihes egin behar ;)