Fèmen anons

Mike Ash dedye sou blog li enplikasyon yo pratik nan chanje nan achitekti 64-ti jan nan iPhone 5S la. Atik sa a trase sou konklizyon li yo.

Rezon ki fè tèks sa a se sitou akòz gwo kantite move enfòmasyon yo gaye sou sa nouvo iPhone 5s yo ak yon processeur ARM 64-bit aktyèlman vle di pou itilizatè yo ak mache a. Isit la nou pral eseye pote enfòmasyon objektif sou pèfòmans, kapasite ak enplikasyon tranzisyon sa a pou devlopè yo.

"64 bit"

Gen de pati nan yon processeur ke etikèt la "X-bit" ka refere a - lajè a nan enskri nonb antye relatif yo ak lajè a nan endikasyon yo. Erezman, sou pifò processeurs modèn lajè sa yo se menm bagay la, kidonk nan ka A7 a sa vle di rejis nonb antye relatif 64-bit ak endikasyon 64-bit.

Sepandan, li egalman enpòtan pou montre sa "64bit" PA vle di: Gwosè adrès fizik RAM. Kantite Bits pou kominike ak RAM (kidonk kantite RAM yon aparèy ka sipòte) pa gen rapò ak kantite Bit CPU. Processeurs ARM gen nenpòt kote ant 26- ak 40-bit adrès epi yo ka chanje poukont rès la nan sistèm nan.

  • Gwosè otobis done yo. Kantite done yo resevwa nan RAM oswa memwa tanpon se menm jan an endepandan de faktè sa a. Enstriksyon endividyèl processeur yo ka mande diferan kantite done, men yo swa voye an fragman oswa resevwa plis pase sa nesesè nan memwa. Sa depann de gwosè pwopòsyon done yo. iPhone 5 deja resevwa done ki soti nan memwa a nan 64-bit quanta (e li gen yon processeur 32-bit), epi nou ka rankontre gwosè jiska 192-bit.
  • Nenpòt bagay ki gen rapò ak pwen k ap flote. Gwosè rejis sa yo (FPU) yo ankò endepandan de fonksyonman entèn processeur a. ARM te itilize 64-bit FPU depi anvan ARM64 (64-bit ARM processeur).

Avantaj jeneral ak dezavantaj

Si nou konpare otreman idantik 32bit ak 64bit achitekti, yo jeneralman yo pa diferan. Sa a se youn nan rezon ki fè yo pou konfizyon an jeneral nan piblik la kap chèche yon rezon ki fè Apple ap deplase nan 64bit nan aparèy mobil tou. Sepandan, li tout soti nan paramèt espesifik A7 (ARM64) processeur a ak fason Apple sèvi ak li, pa sèlman nan lefèt ke processeur a gen yon achitekti 64-ti jan.

Sepandan, si nou toujou gade sou diferans ki genyen ant de achitekti sa yo, nou pral jwenn plizyè diferans. Youn nan evidan se ke anrejistreman nonb antye relatif 64-bit ka okipe nonb antye relatif 64-bit pi efikas. Menm anvan, li te posib yo travay avèk yo sou processeurs 32-bit, men sa a anjeneral vle di divize yo an 32-ti moso long, ki te lakòz kalkil pi dousman. Se konsa, yon processeur 64-ti jan ka jeneralman kalkile ak kalite 64-ti jan osi vit ke ak 32-ti jan yo. Sa vle di ke aplikasyon ki jeneralman itilize kalite 64-bit ka kouri pi vit sou yon processeur 64-bit.

Malgre ke 64bit pa afekte kantite total RAM ke processeur a ka itilize, li ka fè li pi fasil pou travay ak gwo moso RAM nan yon pwogram. Nenpòt pwogram sèl ki kouri sou yon processeur 32-bit gen sèlman apeprè 4 GB espas adrès. Lè w pran an kont ke sistèm operasyon an ak bibliyotèk estanda pran yon bagay, sa a kite pwogram nan ak yon kote ant 1-3 GB pou itilize aplikasyon an. Sepandan, si yon sistèm 32-bit gen plis pase 4 GB RAM, lè l sèvi avèk memwa sa a se yon ti jan pi konplike. Nou dwe fòse sistèm operasyon an pou kat pi gwo moso memwa sa yo pou pwogram nou an (virtualizasyon memwa), oswa nou ka divize pwogram nan an plizyè pwosesis (kote chak pwosesis ankò teyorikman gen 4GB memwa ki disponib pou adrès dirèk).

Sepandan, "antay" sa yo tèlman difisil ak ralanti ke yon minimòm de aplikasyon yo sèvi ak yo. Nan pratik, sou yon processeur 32-bit, chak pwogram pral sèlman itilize 1-3 GB memwa li yo, ak plis RAM disponib ka itilize pou kouri plizyè pwogram an menm tan oswa itilize memwa sa a kòm yon tanpon (caching). Itilizasyon sa yo pratik, men nou ta renmen nenpòt pwogram kapab fasilman itilize moso memwa ki pi gwo pase 4GB.

Koulye a, nou rive nan reklamasyon souvan (aktyèlman kòrèk) ke san yo pa plis pase 4GB nan memwa, yon achitekti 64-ti jan pa itil. Yon espas adrès ki pi gwo itil menm sou yon sistèm ki gen mwens memwa. Fichye ki gen kat memwa yo se yon zouti pratik kote yon pati nan sa ki nan fichye a yo lojikman lye nan memwa pwosesis la san yo pa gen tout dosye a dwe chaje nan memwa. Kidonk, sistèm nan ka, pou egzanp, piti piti trete dosye gwo anpil fwa pi gwo pase kapasite RAM la. Sou yon sistèm 32-bit, gwo dosye sa yo pa ka fyab memwa-map, tandiske sou yon sistèm 64-ti jan, li se yon moso gato, gras a espas adrès ki pi gwo.

Sepandan, gwosè a pi gwo nan endikasyon tou pote yon gwo dezavantaj: otreman pwogram ki idantik bezwen plis memwa sou yon processeur 64-ti jan (sa yo konsèy pi gwo yo dwe estoke yon kote). Depi konsèy yo se yon pati souvan nan pwogram yo, diferans sa a ka chay kachèt la, ki an vire lakòz tout sistèm nan kouri pi dousman. Se konsa, nan pèspektiv, nou ka wè ke si nou jis chanje achitekti processeur a nan 64-bit, li ta aktyèlman ralanti tout sistèm nan. Se konsa, faktè sa a dwe balanse pa plis optimize nan lòt kote.

ARM64

A7 a, processeur 64-bit ki alimante nouvo iPhone 5s la, se pa sèlman yon processeur ARM regilye ak rejis pi laj. ARM64 gen gwo amelyorasyon sou ansyen vèsyon an 32-bit.

Apple A7 processeur.

Rejis

ARM64 kenbe de fwa plis rejis nonb antye relatif ke 32-bit ARM (fè atansyon pa konfonn nimewo a ak lajè nan rejis - nou te pale sou lajè nan seksyon "64-ti jan". Se konsa, ARM64 gen tou de de fwa lajè rejis ak de fwa lajè. anrejistre). ARM 32-bit la gen 16 rejis nonb antye relatif: yon kontwa pwogram (PC - gen nimewo a nan enstriksyon aktyèl la), yon konsèy chemine (yon konsèy sou yon fonksyon k ap pwogrese), yon rejis lyen (yon konsèy sou retounen a apre fen an). nan fonksyon an), ak rès 13 yo se pou itilize aplikasyon an. Sepandan, ARM64 a gen 32 rejis nonb antye relatif, ki gen ladan yon rejis zewo, yon rejis lyen, yon konsèy ankadreman (menm jan ak yon konsèy chemine), ak yon sèl rezève pou lavni an. Sa a kite nou ak 28 rejis pou itilize aplikasyon an, plis pase doub 32-bit ARM la. An menm tan an, ARM64 a double kantite rejis nimewo flote-pwen (FPU) soti nan 16 a 32 rejis 128-bit.

Men, poukisa kantite rejis la enpòtan konsa? Memwa se jeneralman pi dousman pase kalkil CPU ak lekti / ekri ka pran yon tan trè lontan. Sa a ta fè processeur a vit oblije kontinye ap tann pou memwa epi nou ta frape limit vitès natirèl la nan sistèm nan. Processeurs eseye kache andikap sa a ak kouch tanpon, men menm youn nan pi rapid (L1) toujou pi dousman pase kalkil processeur a. Sepandan, rejis yo se selil memwa ki dirèkteman nan processeur a ak lekti/ekri yo ase vit pou pa ralanti processeur a. Nimewo a nan rejis pratikman vle di kantite lajan an nan memwa ki pi rapid pou kalkil processeur, ki anpil afekte vitès la nan tout sistèm nan.

An menm tan an, vitès sa a bezwen bon sipò optimize soti nan konpilatè a, pou langaj la ka sèvi ak rejis sa yo epi li pa oblije sere tout bagay nan memwa aplikasyon an jeneral (ralanti).

Enstriksyon seri

ARM64 tou pote gwo chanjman nan seri enstriksyon an. Yon seri enstriksyon se yon seri operasyon atomik ke yon processeur ka fè (egzanp 'AJOUTE register1 register2' ajoute nimewo yo nan de rejis). Fonksyon ki disponib nan lang endividyèl yo konpoze de enstriksyon sa yo. Fonksyon ki pi konplèks yo dwe egzekite plis enstriksyon, pou yo ka pi dousman.

Nouvo nan ARM64 se enstriksyon pou chifreman AES, SHA-1 ak SHA-256 fonksyon hash. Se konsa, olye pou yo yon aplikasyon konplèks, sèlman lang lan pral rele enstriksyon sa a - ki pral pote yon gwo vitès nan kalkil la nan fonksyon sa yo ak èspere ke ajoute sekirite nan aplikasyon yo. pa egzanp nouvo Touch ID la tou sèvi ak enstriksyon sa yo nan chifreman, sa ki pèmèt pou vitès reyèl ak sekirite (nan teyori, yon atakè ta gen modifye processeur nan tèt li jwenn aksè nan done yo - ki se Inposibl di omwen nan gwosè miniature li yo).

Konpatibilite ak 32bit

Li enpòtan pou mansyone ke A7 a ka kouri konplètman nan mòd 32-bit san yo pa bezwen pou imitasyon. Sa vle di ke nouvo iPhone 5s yo ka kouri aplikasyon ki konpile sou ARM 32-bit san okenn ralentissement. Sepandan, Lè sa a, li pa ka sèvi ak nouvo fonksyon ARM64 yo, kidonk li toujou entérésan pou fè yon bati espesyal jis pou A7 a, ki ta dwe kouri pi vit.

Chanjman ègzekutabl

Runtime se kòd ki ajoute fonksyon nan langaj pwogramasyon an, ke li kapab itilize pandan aplikasyon an ap kouri, jouk apre tradiksyon an. Depi Apple pa bezwen kenbe aplikasyon konpatibilite (ke yon binè 64-ti jan kouri sou 32-ti jan), yo te kapab peye fè kèk amelyorasyon plis nan lang Objektif-C la.

Youn nan yo se sa yo rele tagged pointeur (endikatè ki make). Nòmalman, objè ak konsèy sou objè sa yo estoke nan pati separe nan memwa. Sepandan, nouvo kalite konsèy pèmèt klas ki gen ti done pou estoke objè dirèkteman nan konsèy la. Etap sa a elimine nesesite pou asiyen memwa dirèkteman pou objè a, jis kreye yon konsèy ak objè a andedan li. Endikasyon ki make yo sèlman sipòte nan achitekti 64-bit tou akòz lefèt ke pa gen ase espas ankò nan yon konsèy 32-bit pou estoke ase done itil. Se poutèt sa, iOS, kontrèman ak OS X, pa t 'ankò sipòte karakteristik sa a. Sepandan, ak rive nan ARM64, sa a ap chanje, ak iOS te kenbe ak OS X nan sans sa a tou.

Malgre ke endikasyon yo se 64 bit nan longè, sou ARM64 a sèlman 33 bit yo itilize pou adrès pwòp konsèy la. Men, si nou kapab seryezman demaske rès la nan Bits konsèy yo, nou ka itilize espas sa a nan magazen done adisyonèl - tankou nan ka a nan endikasyon yo mansyone make. Konseptyèlman, sa a se youn nan pi gwo chanjman nan istwa a nan Objective-C, byenke li se pa yon karakteristik mache - kidonk pifò itilizatè yo pa pral konnen ki jan Apple ap deplase Objective-C pi devan.

Kòm pou done yo itil ki ka estoke nan espas ki rete a nan tankou yon pointeur make, Objektif-C, pou egzanp, kounye a ap itilize li nan magazen sa yo rele an. konte referans (kantite referans). Précédemment, konte referans yo te estoke nan yon lòt kote nan memwa, nan yon tab hash prepare pou li, men sa a ta ka ralanti tout sistèm nan ka yon gwo kantite alloc/dealloc/retain/release apèl. Tablo a te dwe fèmen akòz sekirite fil, kidonk konte referans nan de objè nan de fil pa t 'kapab chanje an menm tan an. Sepandan, valè sa a fèk mete nan rès la nan sa yo rele se yon endikatè. Sa a se yon lòt avantaj klè, men gwo ak akselerasyon nan tan kap vini an. Sepandan, sa a pa janm ka reyalize nan yon achitekti 32-bit.

Enfòmasyon sou objè ki asosye, si objè a fèb referans, si li nesesè pou jenere yon destriksyon pou objè a, elatriye, tou fèk mete nan plas ki rete nan endikasyon objè yo. Mèsi a enfòmasyon sa a, Objektif-C la. ègzekutabl se kapab fondamantalman akselere ègzekutabl la, ki se reflete nan vitès la nan chak aplikasyon. Soti nan tès, sa vle di apeprè 40-50% akselere nan tout apèl jesyon memwa. Jis pa chanje nan endikasyon 64-bit epi itilize nouvo espas sa a.

Konklizyon

Malgre ke konpetitè yo pral eseye gaye lide ke deplase nan yon achitekti 64-bit pa nesesè, ou pral deja konnen ke sa a se jis yon opinyon trè enfòme. Se vre ke tou senpleman chanje a 64bit san yo pa adapte langaj la oswa aplikasyon pou li pa vrèman vle di anyen - li menm ralanti tout sistèm nan. Men, nouvo A7 a sèvi ak yon ARM64 modèn ak yon seri enstriksyon nouvo, ak Apple te pran pwoblèm nan modènize tout lang Objective-C la ak pwofite de nouvo kapasite yo - pakonsekan vitès la te pwomèt la.

Isit la nou te mansyone yon gwo kantite rezon ki fè yon achitekti 64-bit se bon etap la pi devan. Li se yon lòt revolisyon "anba kapo a", gras a ki Apple pral eseye rete nan tèt la pa sèlman ak konsepsyon, koòdone itilizatè ak ekosistèm rich, men sitou ak teknoloji ki pi modèn sou mache a.

Sous: mikeash.com
.