Xir xayeysiis

Mike Ash u go'ay bloggiisa Saamaynta la taaban karo ee u beddelashada naqshadaha 64-bit ee iPhone 5S. Maqaalkani waxa uu soo qaatay natiijooyinkiisa.

Sababta qoraalkan ayaa inta badan sabab u ah tirada badan ee macluumaadka khaldan ee laga faafiyay waxa iPhone 5s cusub oo leh processor 64-bit ARM dhab ahaantii macnaheedu yahay isticmaalayaasha iyo suuqa. Halkan waxaan isku dayi doonaa inaan keeno macluumaad ujeedo leh oo ku saabsan waxqabadka, kartida iyo saamaynta isbedelkan ee horumariyeyaasha.

"64-bit"

Waxaa jira laba qaybood oo processor-ka ka mid ah oo summada "X-bit" ay tixraaci karto - ballaca diiwaannada integer-ka iyo ballaca tilmaamayaasha. Nasiib wanaag, inta badan Processor-yaasha casriga ah balladhkani waa isku mid, marka marka laga hadlayo A7-da tani waxay ka dhigan tahay 64-bit integer-ka iyo 64-bit tilmaamayaasha.

Si kastaba ha ahaatee, waxaa sidoo kale muhiim ah in la tilmaamo waxa "64bit" macnaheedu maaha: RAM cabbirka ciwaanka jireed. Tirada bits ee lagula xidhiidho RAM (sidaa darteed xaddiga RAM qalabku ku taageeri karo) kuma xidhna tirada xajmiyada CPU. Soo-saareyaasha ARM waxay leeyihiin meel kasta oo u dhaxaysa 26- iyo 40-bit ciwaan waxaana loo bedeli karaa si ka madax bannaan nidaamka intiisa kale.

  • Cabbirka baska xogta. Qadarka xogta laga helay RAM ama xusuusta kaydka ayaa si la mid ah uga madax banaan qodobkan. Tilmaamaha processor-ka shaqsiga ah ayaa laga yaabaa inuu codsado qaddaro kala duwan oo xog ah, laakiin waxaa loo soo diraa qaybo ama waxaa laga helay wax ka badan inta loo baahan yahay xusuusta. Waxay kuxirantahay cabbirka tirada xogta. IPhone 5 wuxuu horeyba xogta uga helay xusuusta 64-bit quanta (oo wuxuu leeyahay processor 32-bit ah), waxaana la kulmi karnaa cabbirro ilaa 192 bits ah.
  • Wax kasta oo la xidhiidha barta sabaynaysa. Baaxadda diiwaannada noocan ah (FPU) ayaa mar kale ka madax bannaan shaqada gudaha ee processor-ka. ARM waxay isticmaalaysay 64-bit FPU ilaa ka hor ARM64 (64-bit ARM processor).

Faa'iidooyinka iyo khasaaraha guud

Haddii aan is barbar dhigno qaab-dhismeedka 32bit iyo 64bit ee isku midka ah, guud ahaan sidaas uma kala duwana. Tani waa mid ka mid ah sababaha jaahwareerka guud ee dadweynaha raadinaya sababta Apple ay ugu guurto 64bit ee aaladaha mobilada sidoo kale. Si kastaba ha ahaatee, dhammaan waxay ka yimaadaan cabbirada gaarka ah ee processor-ka A7 (ARM64) iyo sida Apple u isticmaalo, maaha kaliya in processor-ku leeyahay naqshad 64-bit ah.

Si kastaba ha ahaatee, haddii aan weli eegno farqiga u dhexeeya labadan qaab-dhismeedka, waxaan heli doonaa kala duwanaansho dhowr ah. Midda iska cad ayaa ah in diiwaannada 64-bit integer-ka ay si hufan u maareyn karaan 64-bit . Xitaa ka hor, waxaa suurtagal ah in iyaga lagala shaqeeyo 32-bit Processor, laakiin tani badanaa waxay ka dhigan tahay in loo qaybiyo 32-bit oo dherer ah, taas oo keentay xisaabin gaabis ah. Markaa processor-ka 64-bit ah wuxuu guud ahaan ku xisaabin karaa 64-bit nooca 32-bit sida ugu dhakhsaha badan. Tani waxay ka dhigan tahay in codsiyada guud ahaan isticmaala noocyada 64-bit ay si dhaqso ah ugu shaqeyn karaan processor 64-bit ah.

In kasta oo 64bit aanu saamayn ku yeelan wadarta xadiga RAM ee Processor-ku isticmaali karo, haddana waxa ay fududayn kartaa in lagu shaqeeyo qaybo badan oo RAM ah hal barnaamij. Barnaamij kasta oo ku shaqeeya processor 32-bit ah waxa uu leeyahay oo keliya 4 GB oo meel ciwaan ah. Iyadoo la tixgelinayo in nidaamka hawlgalka iyo maktabadaha caadiga ah ay qaataan wax, tani waxay ka tagaysaa barnaamijka meel u dhaxaysa 1-3 GB ee isticmaalka codsiga. Si kastaba ha noqotee, haddii nidaamka 32-bit uu leeyahay wax ka badan 4 GB ee RAM, isticmaalka xusuusta ayaa xoogaa ka sii adag. Waa inaan ku qasbanaa nidaamka hawlgalka inuu khariidadeeyo qaybahan waaweyn ee xusuusta ee barnaamijkeena (Xusuusinta xusuusta), ama waxaan u kala qaybin karnaa barnaamijka habab badan (halkaas oo nidaam kastaa uu mar kale aragti ahaan haysto 4 GB oo xusuusta ah oo diyaar u ah in si toos ah wax looga qabto).

Si kastaba ha ahaatee, kuwan "hacks" waa kuwo aad u adag oo gaabis ah oo ugu yaraan codsiyada la isticmaalo. Ficil ahaan, processor-ka 32-bit ah, barnaamij kastaa wuxuu kaliya isticmaali doonaa 1-3 GB ee xusuusta, RAM badan oo la heli karo ayaa loo isticmaali karaa in lagu socodsiiyo barnaamijyo badan isku mar ama u isticmaal xusuustan kayd ahaan (caching). Adeegsigani waa wax la taaban karo, laakiin waxaan jeclaan lahayn barnaamij kasta inuu awood u yeesho inuu si fudud u isticmaalo qaybo ka mid ah xusuusta ka weyn 4GB.

Hadda waxaan u nimid sheegashada soo noqnoqda (dhab ahaantii khaldan) in iyada oo aan in ka badan 4GB ee xusuusta, naqshad 64-bit ah aan faa'iido lahayn. Meel weyn oo ciwaanka ah ayaa faa'iido leh xitaa nidaamka leh xusuusta yar. Faylasha xusuusta-khariidad ku sameysan waa qalab waxtar leh oo qayb ka mid ah faylalka ku jira ay si macquul ah ugu xiran yihiin xusuusta habka iyada oo aan dhammaan faylka lagu shubin xusuusta. Sidaa darteed, nidaamku, tusaale ahaan, wuxuu si tartiib tartiib ah u socodsiin karaa faylal waaweyn marar badan oo ka weyn awoodda RAM. Nidaamka 32-bit, faylalka waaweyn ee noocaas ah laguma kalsoonaan karo xusuusta, halka nidaamka 64-bit, ay tahay xabbad keega ah, taas oo ay ugu wacan tahay booska cinwaanka aadka u weyn.

Si kastaba ha ahaatee, cabbirka weyn ee tilmaamayaasha ayaa sidoo kale keenaya hal khasaare oo weyn: haddii kale barnaamijyada isku midka ah waxay u baahan yihiin xasuus badan oo ku saabsan processor 64-bit ah (tilmaamayaashan waaweyn waa in lagu kaydiyaa meel). Maadaama tilmaamayaashu ay yihiin qayb badan oo ka mid ah barnaamijyada, kala duwanaanshahani wuxuu culaysin karaa kaydka, taas oo markaa keenta in nidaamka oo dhan uu si tartiib ah u socdo. Markaa marka la eego, waxaan arki karnaa in haddii aan kaliya u bedelno naqshadaha processor-ka 64-bit, inay runtii hoos u dhigi doonto nidaamka oo dhan. Markaa qodobkan waa in lagu dheellitiraa wanaajin badan oo meelo kale ah.

ARM64

A7, processor-ka 64-bit ee awood u leh iPhone 5s cusub, ma aha oo kaliya processor-ka caadiga ah ee ARM oo leh diiwaanno ballaadhan. ARM64 waxaa ku jira horumarro waaweyn oo ka duwan kii hore, nooca 32-bit.

Apple A7 processor.

Diiwaangelinta

ARM64 waxa ay haysaa labanlaab in ka badan diiwaanada halbeegga ah ee 32-bit ARM (ka digtoonow inaad isku khaldin tirada iyo ballaca diiwaannada - waxaan kaga hadalnay ballaca qaybta "64-bit". Markaa ARM64 waxay leedahay labanlaab diwaangelin ballaaran iyo laba jibaar ka badan). diiwaanka). 32-bit ARM waxa ay leedahay 16 diiwangelin isugeyn ah: hal barnaamij counter (PC - waxa ku jira tirada tilmaanta hadda), tilmaame xirmo ah (tilmaamaha hawsha socota), diiwaanka xiriirinta (tusaha soo laabashada ka dib dhamaadka). ee shaqada), iyo 13 ka haray waa isticmaalka codsiga. Si kastaba ha ahaatee, ARM64 waxa ay leedahay 32 diiwaangelin isugeyn ah, oo ay ku jiraan hal diiwaanka eber, diiwaanka isku xirka, tilmaame jir (oo la mid ah tilmaame raso), iyo mid mustaqbalka loo qoondeeyay. Tani waxay nooga tagaysaa 28 diiwaanka isticmaalka codsiga, in ka badan labanlaab 32-bit ARM. Isla mar ahaantaana, ARM64 waxay labanlaabtay tirada lambarrada sabbaynta-dhibcaha (FPU) laga bilaabo 16 ilaa 32 diiwaannada 128-bit.

Laakiin waa maxay sababta tirada diiwaan-gelintu ay muhiim u tahay? Xusuustu guud ahaan way ka gaabis tahay xisaabinta CPU waxayna akhriska/qorista qaadan kartaa wakhti aad u dheer. Tani waxay ka dhigi doontaa processor-ka degdega ah inuu sii wado sugitaanka xusuusta waxaanan ku dhufan lahayn xadka xawaaraha dabiiciga ah ee nidaamka. Processors-ku waxay isku dayaan inay curyaankan ku qariyaan lakabyo kaydiyayaal ah, laakiin xitaa kan ugu dhakhsaha badan (L1) ayaa weli ka gaabiya xisaabinta processor-ka. Si kastaba ha ahaatee, diiwaanadu waa unugyo xusuusta si toos ah ugu dhex jira Processor-ka iyo akhrintooda/qoristooduba waa mid degdeg ah oo aan hoos u dhigin processor-ka. Tirada diiwangelinta ficil ahaan macnaheedu waa qadarka xusuusta ugu dhakhsaha badan ee xisaabinta processor-ka, taas oo si weyn u saamaysa xawaaraha nidaamka oo dhan.

Isla mar ahaantaana, xawaarahani wuxuu u baahan yahay taageero wanaagsan oo hagaajin ah oo ka yimaada compiler si luqaddu u isticmaali karto diiwaanadan oo aysan u baahnayn in ay ku kaydiso wax kasta oo ku jira codsiga guud (gaabiska) xusuusta.

Habraaca tilmaamaha

ARM64 waxay sidoo kale keentaa isbeddello waaweyn oo ku saabsan hab-dhigga tilmaamaha. Qalabka tilmaamuhu waa hawlo atomic ah oo uu processor-ku qaban karo (tusaale 'ADD register1 register2' waxay ku daraysaa nambarada laba diiwaan). Hawlaha ay heli karaan luqadaha gaarka ah waxay ka kooban yihiin tilmaamahan. Hawlaha kakan waa inay fuliyaan tilmaamo badan, si ay u gaabiyaan.

Ku cusub ARM64 waa tilmaamo loogu talagalay sirta AES, SHA-1 iyo SHA-256 hawlaha xashiishka. Markaa halkii laga heli lahaa hirgelinta adag, luqadda kaliya ayaa u yeeri doonta tilmaamahan - taas oo keeni doonta xawaare aad u weyn xisaabinta shaqooyinkaas oo aan rajeyneyno in lagu daro amniga codsiyada. Tusaale ahaan. Aqoonsiga cusub ee Touch ID sidoo kale wuxuu u adeegsadaa tilmaamahan sirta, taasoo u oggolaanaysa xawaaraha dhabta ah iyo amniga (aragti ahaan, weeraryahanku waa inuu beddelaa processor-ka laftiisa si uu u galo xogta - taas oo aan macquul ahayn in la yiraahdo ugu yaraan marka la eego cabbirkeeda yar).

La jaanqaadka 32bit

Waxaa muhiim ah in la sheego in A7 uu si buuxda ugu shaqeyn karo qaabka 32-bit iyada oo aan loo baahnayn ku dayasho. Waxay ka dhigan tahay in iPhone 5s-ka cusub uu ku shaqeyn karo codsiyada lagu soo ururiyay 32-bit ARM iyada oo aan wax hoos u dhac ah lahayn. Si kastaba ha noqotee, markaa ma isticmaali karto shaqooyinka cusub ee ARM64, markaa had iyo jeer waa mudan tahay in la sameeyo dhismo gaar ah oo kaliya A7, kaas oo ah inuu si dhakhso ah u socdo.

Runtime is beddel

Runtime waa koodka shaqada ku daraya luuqada barnaamijka, kaas oo uu awoodo inuu isticmaalo inta uu codsigu socdo, ilaa tarjumaada kadib. Maadaama Apple uusan u baahnayn inay ilaaliso ku habboonaanta codsiga (in 64-bit binary ku shaqeeyo 32-bit), waxay awood u yeelan karaan inay horumaro kale oo yar ku sameeyaan luqadda Ujeeddo-C.

Mid ka mid ah waa waxa loogu yeero tilmaame sumadeeyay (tusaale calaamadeysan). Sida caadiga ah, walxaha iyo tilmaamayaasha walxahaas waxa lagu kaydiyaa qaybo kala duwan oo xusuusta ah. Si kastaba ha ahaatee, noocyada cusub ee tilmaamayaasha ayaa u oggolaanaya fasalada xogta yar inay ku kaydiyaan walxaha si toos ah tilmaamaha. Tallaabadani waxay meesha ka saaraysaa baahida loo qabo in si toos ah loogu qoondeeyo xusuusta shayga, kaliya samee tilmaame iyo shayga ku jira. Tilmaame-yaasha la calaamadeeyay waxa kaliya oo lagu taageeraa qaab-dhismeedka 64-bit sidoo kale waxaa sabab u ah xaqiiqda ah in aysan jirin meel ku filan tilmaame 32-bit ah si loo kaydiyo xog waxtar leh oo ku filan. Sidaa darteed, iOS, oo ka duwan OS X, ma aysan taageerin habkan. Si kastaba ha noqotee, imaatinka ARM64, tani way isbedelaysaa, iOS-na wuxuu la qabsaday OS X arrintan sidoo kale.

Inkasta oo tilmaamayaashu ay dheer yihiin 64 bits, ARM64 kaliya 33 bits ayaa loo isticmaalaa ciwaanka u gaarka ah. Haddii aan awoodno inaan si la isku halleyn karo u furfurno inta soo hartay ee tilmaamayaasha, waxaan u isticmaali karnaa booskan si aan u keydinno xog dheeri ah - sida kiiska tilmaamayaasha la calaamadeeyay. Fikrad ahaan, tani waa mid ka mid ah isbeddelada ugu weyn ee taariikhda Ujeeddada-C, in kasta oo aysan ahayn sifo la suuq-geyn karo - sidaa darteed isticmaaleyaasha intooda badan ma ogaan doonaan sida Apple uu horay ugu sii socdo Objective-C.

Marka la eego xogta waxtarka leh ee lagu kaydin karo booska hadhay ee tilmaame calaamadeysan, Objective-C, tusaale ahaan, ayaa hadda u isticmaaleysa in lagu kaydiyo waxa loogu yeero. tirinta tixraaca (tixraaca tirada). Markii hore, tirinta tixraaca waxaa lagu kaydiyaa meel kale oo xusuusta ah, miiska hash ee loo diyaariyey, laakiin tani waxay hoos u dhigi kartaa nidaamka oo dhan marka la eego tirada badan ee alloc / dealloc / haynta / sii-deynta wicitaanada. Miiska waa in la xiraa badbaadada dunta awgeed, markaa tirinta tixraaca ee labada shay ee labada dun isku mar lama beddeli karo. Si kastaba ha ahaatee, qiimahan ayaa dhawaan la geliyey inta ka hartay waxa loogu yeero isa tilmaamayaasha. Tani waa mid kale oo aan muuqan, laakiin faa'iido weyn iyo dardargelin mustaqbalka. Si kastaba ha ahaatee, tan weligeed laguma gaadhi karo dhisme 32-bit ah.

Macluumaadka ku saabsan walxaha la xidhiidha, haddii shaygu si daciif ah loo tixraacayo, haddii ay lagama maarmaan tahay in la abuuro shayga wax dumiya, iwm., sidoo kale dhawaan ayaa la geliyey meesha ka hartay tilmaamayaasha walxaha. Mahadsanid macluumaadkan, Ujeeddada-C Runtime wuxuu awood u leeyahay inuu si aasaasi ah u dedejiyo runtime-ga, taas oo ka muuqata xawaaraha codsi kasta. Laga bilaabo tijaabada, tani waxay ka dhigan tahay 40-50% xawaaraha dhammaan wicitaanada maaraynta xusuusta. Kaliya adoo u beddelaya tilmaamayaasha 64-bit oo isticmaalaya booskan cusub.

Gabagabo

Inkasta oo tartamayaashu ay isku dayi doonaan inay faafiyaan fikradda ah in u guurista qaab dhismeedka 64-bit aan loo baahnayn, waxaad horeyba u ogaan doontaa in tani ay tahay kaliya fikrad aan la ogeyn. Waa run in u beddelashada 64-bit adiga oo aan la qabsan luqaddaada ama codsiyadaada aysan run ahaantii wax macno ah lahayn - xitaa waxay hoos u dhigtaa nidaamka oo dhan. Laakiin A7-da cusub waxay isticmaashaa ARM64 casri ah oo leh hab waxbarasho oo cusub, Apple waxay qaadatay dhibaatada si ay u casriyeyso dhammaan luqadda Objective-C oo ay uga faa'iideysato awoodaha cusub - sidaas awgeed ballan-qaadka xawaaraha.

Halkan waxaan ku xusnay tiro badan oo sababo ah sababta dhismaha 64-bit uu u yahay tallaabada saxda ah ee horay loo qaaday. Waa kacaan kale "hoostiisa daboolka", taas oo ay ugu wacan tahay Apple waxay isku dayi doontaa inay ku sii jirto safka hore ma aha oo kaliya naqshadeynta, interface interface iyo deegaanka hodanka ah, laakiin inta badan tiknoolajiyada casriga ah ee suuqa.

Isha: mikeash.com
.