Mechie mgbasa ozi

Mike Ash raara onwe ya nye na blọọgụ ya Mmetụta bara uru nke ịtụgharị gaa na 64-bit architecture na iPhone 5S. Akụkọ a na-adabere na ihe ọ chọpụtara.

Ihe kpatara ederede a bụ n'ihi nnukwu ihe ọmụma na-agbasa banyere ihe ọhụrụ iPhone 5s nwere 64-bit ARM processor n'ezie pụtara maka ndị ọrụ na ahịa. N'ebe a, anyị ga-anwa iweta ozi ebumnobi gbasara arụmọrụ, ikike na mmetụta nke mgbanwe a maka ndị mmepe.

"64-bit"

Enwere akụkụ abụọ nke ihe nrụpụta nke akara “X-bit” nwere ike na-ezo aka na ya - obosara nke ndekọ integer na obosara nke pointers. Ọ dabara nke ọma, na ọtụtụ ndị nrụpụta ọgbara ọhụrụ, obosara ndị a bụ otu, yabụ n'ihe banyere A7 nke a pụtara ndekọ integer 64-bit na 64-bit pointers.

Agbanyeghị, ọ dịkwa mkpa ịkọwapụta ihe "64bit" apụtaghị: Ogo adreesị anụ ahụ RAM. Ọnụ ọgụgụ nke ibe n'ibe iji kparịta ụka na RAM (ya mere ọnụọgụ RAM nke ngwaọrụ nwere ike ịkwado) emetụtaghị ọnụọgụ nke bit CPU. Ndị na-arụ ọrụ ARM nwere ebe ọ bụla n'etiti adreesị 26- na 40-bit ma nwee ike gbanwee n'adabereghị na usoro ndị ọzọ.

  • Nha ụgbọ ala data. Ọnụego data enwetara site na RAM ma ọ bụ ebe nchekwa nchekwa na-adabereghị na nke a. Ntuziaka onye nrụpụta n'otu n'otu nwere ike ịrịọ data dị iche iche, mana a na-eziga ha na chunks ma ọ bụ nweta karịa ka achọrọ site na ebe nchekwa. Ọ dabere na nha data quantum. IPhone 5 enwetalarị data site na ebe nchekwa na 64-bit quanta (ma nwee ihe nrụpụta 32-bit), anyị nwere ike zute nha ruru 192 bits.
  • Ihe ọ bụla metụtara ebe na-ese n'elu mmiri. Ogo nke ndekọ ndị dị otú ahụ (FPU) na-adaberekwa na arụ ọrụ ime nke ihe nrụpụta. ARM na-eji 64-bit FPU kemgbe tupu ARM64 (64-bit ARM processor).

Izugbe uru na ọghọm

Ọ bụrụ na anyị atụnyere 32bit na 64bit architectures, ha anaghị adị iche. Nke a bụ otu n'ime ihe kpatara ọgba aghara n'ozuzu nke ọha na eze na-achọ ihe kpatara Apple na-akwaga na 64bit na ngwaọrụ mkpanaka. Agbanyeghị, ihe niile sitere na paramita akọwapụtara nke processor A7 (ARM64) yana otu Apple si eji ya, ọ bụghị naanị n'eziokwu na processor nwere ụkpụrụ ụlọ 64-bit.

Otú ọ dị, ọ bụrụ na anyị ka na-eleba anya na ọdịiche dị n'etiti ụlọ ọrụ abụọ a, anyị ga-ahụ ọtụtụ ọdịiche. Ihe doro anya bụ na ndekọ integer 64-bit nwere ike ijikwa ọnụọgụ 64-bit nke ọma. Ọbụna tupu mgbe ahụ, ọ ga-ekwe omume isoro ha na-arụ ọrụ na 32-bit processors, ma nke a na-apụtakarị ikewa ha n'ime 32-bit ogologo oge, nke mere ka a gbakọọ nwayọọ nwayọọ. Ya mere, ihe nhazi 64-bit nwere ike iji ụdị 64-bit gbakọọ ngwa ngwa dịka nke 32-bit. Nke a pụtara na ngwa ndị na-ejikarị ụdị 64-bit nwere ike na-agba ọsọ ngwa ngwa na processor 64-bit.

Ọ bụ ezie na 64bit anaghị emetụta mkpokọta RAM nke processor nwere ike iji, ọ nwere ike ime ka ọ dịkwuo mfe iji nnukwu chunks nke RAM rụọ ọrụ n'otu mmemme. Otu mmemme ọ bụla na-agba ọsọ na processor 32-bit nwere naanị 4 GB nke oghere adreesị. N'iburu n'uche na sistemụ arụmọrụ na ọba akwụkwọ ọkọlọtọ na-ewe ihe, nke a na-ahapụ mmemme ahụ na ebe n'etiti 1-3 GB maka iji ngwa. Otú ọ dị, ọ bụrụ na usoro 32-bit nwere karịa 4 GB nke RAM, iji ebe nchekwa ahụ dị ntakịrị mgbagwoju anya. Anyị ga-amalite ịmanye sistemụ arụmọrụ ka ọ maapụ ebe nchekwa ndị a buru ibu maka mmemme anyị (ihe nchekwa nchekwa), ma ọ bụ anyị nwere ike kewaa mmemme ahụ n'ọtụtụ usoro (ebe usoro nke ọ bụla ọzọ nwere 4GB nke ebe nchekwa dị maka ịgwa okwu ozugbo).

Agbanyeghị, “mbanye anataghị ikike” ndị a siri ike yana ngwa ngwa nke na opekempe ngwa na-eji ha. Na omume, na ihe nhazi 32-bit, mmemme ọ bụla ga-eji naanị 1-3 GB nke ebe nchekwa, yana RAM ọzọ dịnụ nwere ike iji mee ọtụtụ mmemme n'otu oge ma ọ bụ jiri ebe nchekwa a dị ka ihe nchekwa (caching). Ojiji ndị a bara uru, mana anyị ga-achọ ka mmemme ọ bụla nwee ike iji obere ebe nchekwa buru ibu karịa 4GB ngwa ngwa.

Ugbu a, anyị na-abịa na-ekwu ugboro ugboro (n'ezie ezighi ezi) na-enweghị ihe karịrị 4GB nke ebe nchekwa, a 64-bit architecture bụ abaghị uru. Oghere adreesị buru ibu bara uru ọbụlagodi na sistemụ nwere obere ebe nchekwa. Faịlụ ebe nchekwa bụ ngwá ọrụ bara uru ebe akụkụ nke ọdịnaya faịlụ na-ejikọta n'ụzọ ezi uche dị na ya na ebe nchekwa usoro na-enweghị faịlụ ahụ dum ka etinyere ya na ebe nchekwa. Usoro ahụ nwere ike, dịka ọmụmaatụ, jiri nwayọọ nwayọọ hazie nnukwu faịlụ ọtụtụ ugboro karịa ikike RAM. Na sistemụ 32-bit, faịlụ ndị dị otú ahụ enweghị ike ịdabere na ebe nchekwa, ebe na sistemụ 64-bit, ọ bụ obere achicha, n'ihi oghere adreesị ka ukwuu.

Otú ọ dị, ọnụ ọgụgụ buru ibu nke pointers na-ewetakwa otu nnukwu mwepu: ma ọ bụghị ya, mmemme ndị yiri ya chọrọ ebe nchekwa karịa na nhazi 64-bit (a ga-echekwa ihe ndị a buru ibu ebe). Ebe ọ bụ na pointers bụ akụkụ nke mmemme ugboro ugboro, ọdịiche a nwere ike ibu ibu cache, nke na-eme ka usoro ahụ dum na-eji nwayọọ nwayọọ. Ya mere, n'echiche, anyị nwere ike ịhụ na ọ bụrụ na anyị gbanwere nhazi nhazi na 64-bit, ọ ga-ebelata usoro ahụ dum. Ya mere, a ga-edozi ihe a site na njikarịcha n'ebe ndị ọzọ.

ARM64

A7, ihe nrụpụta 64-bit na-akwado iPhone 5s ọhụrụ, abụghị naanị ihe nrụpụta ARM oge niile nwere ndekọ sara mbara. ARM64 nwere nnukwu nkwalite karịa ụdị 32-bit nke ochie.

Apple A7 processor.

Ndebanye aha

ARM64 na-ejide ọnụọgụ ọnụọgụ abụọ dị ka 32-bit ARM (kpachara anya ka ị ghara ime ka ọnụ ọgụgụ na obosara nke ndekọ - anyị kwuru banyere obosara na ngalaba "64-bit". ndekọ). 64-bit ARM nwere ndekọ integer 32: otu mmemme mmemme (PC - nwere ọnụ ọgụgụ nke ntụziaka ugbu a), ihe nrịbama nchịkọta (ihe na-egosi ọrụ na-aga n'ihu), ndekọ njikọ (ntụaka na nloghachi mgbe njedebe gasịrị. nke ọrụ), na 16 fọdụrụnụ bụ maka iji ngwa. Agbanyeghị, ARM13 nwere ndebanye aha integer iri atọ na abụọ, gụnyere otu ndebanye aha efu, ndekọ njikọ, ihe nrụnye etiti (dị ka ihe nrịbama stack), na nke edobere maka ọdịnihu. Nke a na-ahapụ anyị ndekọ 64 maka iji ngwa, karịa okpukpu abụọ nke 32-bit ARM. N'otu oge ahụ, ARM28 mụbara ọnụ ọgụgụ nke floating-point number (FPU) ndekọ site na 32 ruo 64 16-bit ndekọ.

Mana gịnị kpatara ọnụọgụ ndekọ aha ji dị mkpa? Ebe nchekwa na-adịkarị nwayọ karịa ngụkọ CPU na ịgụ/ọdịde nwere ike were ogologo oge. Nke a ga-eme ka ngwa ngwa ngwa ngwa na-echere ebe nchekwa na anyị ga-akụ oke ọsọ nke usoro ahụ. Ndị na-eme nhazi na-anwa izobe nkwarụ a na akwa mkpuchi, mana ọbụlagodi nke kachasị ngwa ngwa (L1) ka dị nwayọ karịa ngụkọ nhazi. Otú ọ dị, ndekọ bụ sel ebe nchekwa ozugbo na processor na ịgụ akwụkwọ / edemede ha na-adị ngwa ngwa ka ha ghara ịkwụsị ngwa ngwa. Ọnụ ọgụgụ nke ndekọ ihe fọrọ nke nta ka ọ bụrụ ọnụọgụ nke ebe nchekwa kachasị ngwa ngwa maka nhazi nhazi, nke na-emetụta ọsọ ọsọ nke usoro dum.

N'otu oge ahụ, ọsọ a chọrọ nkwado kachasị mma site na nchịkọta akụkọ ka asụsụ ahụ wee nwee ike iji ndekọ ndị a ma ghara ịchekwa ihe niile na nchekwa ngwa ngwa (ngwa ngwa).

Ntọala ntụziaka

ARM64 na-ewetakwa nnukwu mgbanwe na nhazi ntụziaka. Usoro ntụziaka bụ otu ọrụ atọmịk nke onye nrụpụta nwere ike ịrụ (dịka 'ADD register1 register2' na-agbakwunye nọmba na ndekọ abụọ). Ọrụ ndị dị n'asụsụ dị iche iche bụ ntuziaka ndị a mejupụtara. Ọrụ ndị dị mgbagwoju anya ga-emerịrị ntuziaka ndị ọzọ, ka ha wee jiri nwayọọ nwayọọ.

Ọhụrụ na ARM64 bụ ntuziaka maka izo ya ezo AES, SHA-1 na SHA-256 ọrụ hash. Ya mere, kama mmejuputa mgbagwoju anya, ọ bụ naanị asụsụ ga-akpọ ntụziaka a - nke ga-eweta nnukwu ọsọ ọsọ na mgbakọ nke ọrụ ndị dị otú ahụ ma nwee olileanya na agbakwunyere nchebe na ngwa. E.g. NJ Touch ọhụrụ ahụ na-ejikwa ntuziaka ndị a na nzuzo, na-enye ohere maka ezigbo ọsọ na nchekwa (na tiori, onye na-awakpo ga-emezigharị processor n'onwe ya iji nweta data - ọ gaghị ekwe omume ikwu nke kacha nta nyere obere nha).

Ndakọrịta na 32bit

Ọ dị mkpa ikwu na A7 nwere ike na-agba ọsọ zuru ezu na 32-bit mode na-enweghị mkpa eṅomi. Ọ pụtara na iPhone 5s ọhụrụ nwere ike ịme ngwa agbakọtara na 32-bit ARM na-enweghị nwayọ. Otú ọ dị, mgbe ahụ, ọ pụghị iji ọrụ ọhụrụ ARM64, ya mere, ọ na-aba uru mgbe niile ịme ụlọ pụrụ iche maka A7, nke kwesịrị ịgba ọsọ ngwa ngwa.

Mgbanwe oge ojiri

Oge ịgba ọsọ bụ koodu na-agbakwụnye ọrụ na asụsụ mmemme, nke ọ na-enwe ike iji mgbe ngwa na-arụ ọrụ, ruo mgbe nsụgharị gasịrị. Ebe ọ bụ na Apple achọghị idobe ndakọrịta ngwa (na ọnụọgụ 64-bit na-agba na 32-bit), ha nwere ike imelite nkwalite ole na ole n'asụsụ Objective-C.

Otu n'ime ha bụ ihe a na-akpọ mkpado pointer (akara akara). Dị ka ọ na-adịkarị, a na-echekwa ihe na ntụnye ihe ndị ahụ n'akụkụ ebe nchekwa dị iche iche. Agbanyeghị, ụdị nrịbama ọhụrụ na-enye ohere klaasị nwere obere data iji chekwaa ihe ozugbo na pointer. Nzọụkwụ a na-ewepụ mkpa ịkenye ebe nchekwa ozugbo maka ihe ahụ, naanị mepụta pointer na ihe dị n'ime ya. A na-akwado ihe nrịbama akara n'ime ụlọ 64-bit nakwa n'ihi na enweghịzi ohere zuru oke na pointer 32-bit iji chekwaa data bara uru zuru oke. Ya mere, iOS, n'adịghị ka OS X, akwadobeghị atụmatụ a. Otú ọ dị, na mbata nke ARM64, nke a na-agbanwe, na iOS ejidewo OS X na nke a.

Ọ bụ ezie na ntụnye dị ogologo 64bit, na ARM64 naanị 33 ibe n'i ka a na-eji maka adreesị nke onye nrịbaaka. Ma ọ bụrụ na anyị ga-enwe ike ikpughe ihe ndị ọzọ n'iberibe ntụaka, anyị nwere ike iji oghere a chekwaa data ndị ọzọ - dịka ọ dị n'ihe nrịbama akara ndị a kpọtụrụ aha. N'echiche, nke a bụ otu n'ime mgbanwe kachasị ukwuu na akụkọ ihe mere eme nke Objective-C, n'agbanyeghị na ọ bụghị njirimara ahịa - ya mere ọtụtụ ndị ọrụ agaghị ama ka Apple si na-ebugharị Objective-C n'ihu.

N'ihe gbasara data bara uru nke nwere ike ịchekwa n'ime oghere ndị dị otú ahụ nke akara akara, Objective-C, dịka ọmụmaatụ, na-eji ya ugbu a iji chekwaa ihe a na-akpọ. ọnụ ọgụgụ ntụaka (ọnụọgụ ntụaka). Na mbụ, a na-echekwa ọnụ ọgụgụ ntụaka n'ebe dị iche iche na ebe nchekwa, na tebụl hash nke a kwadebere maka ya, ma nke a nwere ike ime ka usoro ahụ dum kwụsịlata n'ihe banyere ọnụ ọgụgụ dị ukwuu nke alloc / dealloc / njigide / ntọhapụ oku. Ekwesịrị ikpochi tebụl ahụ n'ihi nchekwa eri, yabụ enweghị ike ịgbanwe ọnụọgụ ihe abụọ n'ime eriri abụọ n'otu oge. Otú ọ dị, a na-etinye uru a ọhụrụ n'ime ihe ndị ọzọ a na-akpọ aka egosi. Nke a bụ ihe ọzọ na-enweghị atụ, ma nnukwu uru na osooso n'ọdịnihu. Agbanyeghị, enweghị ike nweta nke a n'ime ihe owuwu 32-bit.

A na-etinyekwa ozi gbasara ihe ejikọtara ọnụ, ma ọ bụrụ na edeghị ihe na-adịghị ike, ma ọ dị mkpa ịmepụta ihe na-ebibi ihe, wdg, na-etinyekwa ọhụrụ n'ime ebe fọdụrụ na-egosi ihe ndị ahụ. N'ihi ozi a, Objective-C. Oge ojiri gaa na-enwe ike ime ka oge ịgba ọsọ dị ngwa, nke a na-egosipụta na ọsọ nke ngwa ọ bụla. Site na nnwale, nke a pụtara ihe dịka 40-50% ịgbatị oku njikwa ebe nchekwa niile. Naanị site n'ịgbanwe na 64-bit pointers na iji oghere ọhụrụ a.

Mmechi

Ọ bụ ezie na ndị asọmpi ga-anwa ịgbasa echiche ahụ na ịkwaga na ihe owuwu 64-bit adịghị mkpa, ị ga-amarịrị na nke a bụ echiche na-enweghị isi. Ọ bụ eziokwu na ịgbanye na 64-bit na-enweghị imegharị asụsụ gị ma ọ bụ ngwa apụtaghị ihe ọ bụla - ọ na-eme ka sistemụ ahụ kwụsịlata. Ma ọhụrụ A7 na-eji ARM64 ọgbara ọhụrụ nwere usoro ntụziaka ọhụrụ, Apple ewerewokwa nsogbu ahụ iji mee ka asụsụ Objective-C dum dị ọhụrụ ma jiri ikike ọhụrụ - ya mere nkwa ngwa ngwa.

N'ebe a, anyị ekwupụtala ọtụtụ ihe kpatara ihe owuwu 64-bit ji bụrụ nzọụkwụ ziri ezi n'ihu. Ọ bụ mgbanwe ọzọ "n'okpuru mkpuchi", ekele nke Apple ga-anwa ịnọ n'ihu ọ bụghị naanị na imewe, interface onye ọrụ na gburugburu ebe obibi bara ụba, mana tumadi na teknụzụ ọgbara ọhụrụ na ahịa.

Isi mmalite: mikeash.com
.