Vala isikhangiso

UMike Ash ezinikezelwe kubhulogi yakhe imiphumela ebonakalayo yokushintshela ku-64-bit architecture ku-iPhone 5S. Lesi sihloko sithathela kulokho akutholile.

Isizathu salo mbhalo sibangelwa ikakhulukazi inani elikhulu lemininingwane engamanga elisatshalaliswayo mayelana nokuthi i-iPhone 5s entsha enephrosesa engu-64-bit ARM empeleni isho ukuthini kubasebenzisi kanye nemakethe. Lapha sizozama ukuletha ulwazi oluyinhloso mayelana nokusebenza, amandla kanye nemithelela yalolu shintsho kubathuthukisi.

"64 kancane"

Kunezingxenye ezimbili zephrosesa ilebula ethi "X-bit" engabhekisela kuzo - ububanzi bamarejista ezinombolo kanye nobubanzi bezikhombisi. Ngenhlanhla, kuma-processor amaningi esimanje lobu bubanzi buyafana, ngakho-ke esimweni se-A7 lokhu kusho amarejista angama-64-bit integer kanye nezikhombi ezingu-64-bit.

Kodwa-ke, kubalulekile ngokufanayo ukukhomba ukuthi "64bit" AKUSHO: Usayizi wekheli lendawo ye-RAM. Inani lamabhithi okuxhumana ne-RAM (ngaleyo ndlela inani le-RAM elingasekelwa idivayisi) alihlobene nenani lamabhithi e-CPU. Amaphrosesa e-ARM ananoma yikuphi phakathi kwamakheli angu-26- kanye nama-40-bit futhi angashintshwa ngokuzimela ngaphandle kwesistimu yonke.

  • Usayizi webhasi ledatha. Inani ledatha elitholwe ku-RAM noma imemori ye-buffer ngokufanayo lizimele kule nto. Imiyalo yokucubungula ngayinye ingase icele amanani ahlukene edatha, kodwa ithunyelwa ngeziqephu noma yamukelwe ngaphezu kwalokho okudingekayo kumemori. Kuncike kusayizi we-quantum yedatha. I-iPhone 5 isivele ithola idatha kumemori ngama-64-bit quanta (futhi ine-32-bit processor), futhi singahlangabezana nosayizi abafika ku-192 bits.
  • Noma yini ehlobene nephoyinti elintantayo. Usayizi wamarejista anjalo (i-FPU) aphinde azimele ekusebenzeni kwangaphakathi kwephrosesa. I-ARM ibisebenzisa i-64-bit FPU kusukela ngaphambi kwe-ARM64 (64-bit ARM processor).

Izinzuzo ezijwayelekile kanye nokubi

Uma siqhathanisa nezinye izakhiwo ezifanayo ze-32bit kanye ne-64bit, ngokuvamile azihlukile kangako. Lesi ngesinye sezizathu zokudideka okuvamile komphakathi ukufuna isizathu sokuthi kungani i-Apple ithuthela ku-64bit kumadivayisi eselula. Kodwa-ke, konke kuvela kumingcele ethile ye-A7 (ARM64) processor kanye nendlela i-Apple eyisebenzisa ngayo, hhayi nje eqinisweni lokuthi iphrosesa ine-architecture ye-64-bit.

Nokho, uma sisabheka umehluko phakathi kwalezi zakhiwo ezimbili, sizothola ukuhluka okuningana. Okusobala ukuthi amarejista angama-64-bit angakwazi ukuphatha ama-64-bit integers ngempumelelo. Ngisho nangaphambilini, kwakungenzeka ukusebenza nabo kuma-32-bit processors, kodwa lokhu ngokuvamile kwakusho ukuwahlukanisa abe yizicucu ezinde ze-32-bit, okubangele izibalo ezihamba kancane. Ngakho-ke iphrosesa engu-64-bit ngokuvamile ingakwazi ukubala ngezinhlobo ze-64-bit ngokushesha njengaku-32-bit. Lokhu kusho ukuthi izinhlelo zokusebenza ezivamise ukusebenzisa izinhlobo ze-64-bit zingasebenza ngokushesha kakhulu kuphrosesa engu-64-bit.

Nakuba i-64bit ingalithinti inani eliphelele le-RAM engasetshenziswa iphrosesa, ingenza kube lula ukusebenza nezigaxa ezinkulu ze-RAM kuhlelo olulodwa. Noma yiluphi uhlelo olulodwa olusebenzisa i-32-bit processor lunesikhala esingaba ngu-4 GB kuphela sekheli. Uma kucatshangelwa ukuthi isistimu yokusebenza nemitapo yolwazi ejwayelekile ithatha okuthile, lokhu kushiya uhlelo lunendawo ethile phakathi kuka-1-3 GB ukuze kusetshenziswe uhlelo lokusebenza. Kodwa-ke, uma uhlelo lwe-32-bit lune-RAM engaphezu kuka-4 GB, ukusebenzisa leyo nkumbulo kuyinkimbinkimbi kakhulu. Kufanele siphendukele ekuphoqeni isistimu yokusebenza ukuthi ifake imephu yalezi zingxenyana ezinkulu zenkumbulo zohlelo lwethu (ukwenziwa kwememori), noma singahlukanisa uhlelo lube yizinqubo eziningi (lapho inqubo ngayinye futhi ngokwethiyori ine-4 GB yememori etholakalayo yokubhekana ngqo).

Kodwa-ke, lawa "ma-hacks" anzima kakhulu futhi ahamba kancane kangangokuba okungenani izinhlelo zokusebenza ziyawasebenzisa. Empeleni, kuphrosesa engu-32-bit, uhlelo ngalunye luzosebenzisa kuphela inkumbulo yalo engu-1-3 GB, futhi i-RAM etholakalayo eyengeziwe ingasetshenziswa ukuqhuba izinhlelo eziningi ngesikhathi esisodwa noma ukusebenzisa le nkumbulo njengesilondolozi (i-caching). Lokhu kusetshenziswa kuyasebenza, kodwa singathanda ukuthi noma yiluphi uhlelo lukwazi ukusebenzisa kalula izingcezu zememori ezinkulu kuno-4GB.

Manje sifika esimangalweni esivamile (empeleni esingalungile) sokuthi ngaphandle kwememori engaphezu kwe-4GB, ukwakhiwa kwe-64-bit akusizi ngalutho. Isikhala esikhulu sekheli siwusizo nakusistimu enenkumbulo encane. Amafayela anemephu yenkumbulo ayithuluzi eliwusizo lapho ingxenye yokuqukethwe kwefayela ixhunyaniswe ngokunengqondo nememori yenqubo ngaphandle kokuthi lonke ifayela lilayishwe kumemori. Ngakho-ke, uhlelo lungakwazi, ngokwesibonelo, ukucubungula kancane kancane amafayela amakhulu izikhathi eziningi ezinkulu kunomthamo we-RAM. Ohlelweni lwe-32-bit, amafayela amakhulu anjalo awakwazi ukwethembeka kumephu yememori, kanti ohlelweni lwe-64-bit, ucezu lwekhekhe, ngenxa yesikhala esikhulu samakheli.

Kodwa-ke, usayizi omkhulu wezikhombisi uletha nokubi okukodwa okukhulu: ngaphandle kwalokho izinhlelo ezifanayo zidinga inkumbulo eyengeziwe kusiprosesa esingu-64-bit (lezi zikhombi ezinkulu kufanele zigcinwe ndawana thize). Njengoba izikhombisi ziyingxenye yezinhlelo ezivamile, lo mehluko ungathwalisa kanzima inqolobane, okubuye kubangele ukuthi lonke uhlelo lusebenze kancane. Ngakho-ke ngombono, singabona ukuthi uma sisanda kushintsha ukwakheka kweprosesa ku-64-bit, empeleni kunganciphisa lonke uhlelo. Ngakho-ke lesi sici kufanele silinganiswe ngokulungiselelwa okwengeziwe kwezinye izindawo.

I-ARM64

I-A7, iphrosesa engu-64-bit enika amandla ama-iPhone 5s amasha, ayiyona nje iphrosesa evamile ye-ARM enamarejista abanzi. I-ARM64 iqukethe ukuthuthuka okukhulu kunenguqulo endala, engu-32-bit.

Iprosesa ye-Apple A7.

Registry

I-ARM64 ibamba amarejista amaningi aphindwe kabili njenge-32-bit ARM (qaphela ukuthi ungaphambanisi inombolo nobubanzi bamarejista - sikhulume ngobubanzi engxenyeni ethi "64-bit". Ngakho i-ARM64 inakho kokubili amarejista abanzi ngokuphindwe kabili futhi amaningi amarejista). I-32-bit ARM inamarejista ayi-16 aphelele: isibali sohlelo olulodwa (i-PC - iqukethe inombolo yomyalelo wamanje), iphoyinti lesitaki (isikhombi somsebenzi oqhubekayo), irejista yesixhumanisi (isikhombi sembuyiselo ngemva kokuphela. womsebenzi), kanti ezisele eziyi-13 ezokusetshenziswa kohlelo lokusebenza. Kodwa-ke, i-ARM64 inamarejista angama-32 aphelele, okuhlanganisa irejista enguziro eyodwa, irejista yesixhumanisi, isikhombi sozimele (esifana nesikhombi sesitaki), nelilodwa libekelwe ikusasa. Lokhu kusishiya namarejista angama-28 okusetshenziswa kohlelo lokusebenza, okungaphezu kokuphindwe kabili kwe-32-bit ARM. Ngaso leso sikhathi, i-ARM64 iphinde kabili inombolo yamarejista ezinombolo ezintantayo (FPU) ukusuka ku-16 kuya ku-32 128-bit.

Kodwa kungani inani lamarejista libaluleke kangaka? Inkumbulo ngokuvamile ihamba kancane kunezibalo ze-CPU futhi ukufunda/ukubhala kungathatha isikhathi eside kakhulu. Lokhu kungenza iphrosesa esheshayo ukuthi ihlale ilinde inkumbulo futhi sizofinyelela umkhawulo wesivinini wesistimu. Amaphrosesa azama ukufihla lokhu kukhubazeka ngezendlalelo zamabhafa, kodwa ngisho neshesha kakhulu (L1) lisahamba kancane kunesibalo sephrosesa. Kodwa-ke, amarejista amaseli enkumbulo ngqo kuphrosesa futhi ukufunda/ukubhala kwawo kushesha ngokwanele ukuze kungabambezeli iphrosesa. Inani lamarejista lisho inani lememori esheshayo yezibalo zephrosesa, okuthinta kakhulu isivinini salo lonke uhlelo.

Ngesikhathi esifanayo, lesi sivinini sidinga ukusekelwa okuhle kokwenza kahle okuvela kumhlanganisi, ukuze ulimi lukwazi ukusebenzisa lawa marejista futhi akudingekile ukuthi lugcine yonke into kuhlelo lokusebenza olujwayelekile (inkumbulo ehamba kancane).

Isethi yeziyalezo

I-ARM64 futhi iletha izinguquko ezinkulu kusethi yemiyalo. Isethi yemiyalo iyisethi yemisebenzi ye-athomu engenziwa iphrosesa (isb. 'ADD register1 register2' yengeza izinombolo kumarejista amabili). Imisebenzi etholakala ezilimini ngazinye yakhiwe yile miyalo. Imisebenzi eyinkimbinkimbi kufanele ikhiphe imiyalelo eyengeziwe, ukuze ihambe kancane.

Okusha ku-ARM64 imiyalelo yokubethela kwe-AES, i-SHA-1 kanye nemisebenzi ye-SHA-256 hashi. Ngakho esikhundleni sokuqaliswa okuyinkimbinkimbi, ulimi kuphela oluzobiza lo myalelo - ozoletha ukusheshisa okukhulu ekubalweni kwemisebenzi enjalo futhi ngethemba ukuthi kungeze ukuphepha ezinhlelweni zokusebenza. Isib. i-Touch ID entsha iphinde isebenzise le miyalo ekubetheleni, okuvumela isivinini sangempela nokuphepha (ngokombono, umhlaseli kuzodingeka alungise iphrosesa ngokwayo ukuze ifinyelele idatha - okungenakwenzeka ukusho okuncane uma ubheka usayizi wayo omncane).

Ihambisana ne-32bit

Kubalulekile ukusho ukuthi i-A7 ingasebenza ngokugcwele kumodi ye-32-bit ngaphandle kwesidingo sokulingisa. Kusho ukuthi ama-iPhone 5s amasha angasebenzisa izinhlelo zokusebenza ezihlanganiswe ku-32-bit ARM ngaphandle kokuhamba kancane. Kodwa-ke, ngeke ukwazi ukusebenzisa imisebenzi emisha ye-ARM64, ngakho-ke kuhlale kufanelekile ukwenza ukwakhiwa okukhethekile kwe-A7, okufanele isebenze ngokushesha okukhulu.

Isikhathi sokusebenza siyashintsha

Isikhathi sokusebenza ikhodi enezela imisebenzi olimini lokuhlela, elikwazi ukulisebenzisa ngenkathi uhlelo lusebenza, kuze kube ngemva kokuhumusha. Njengoba i-Apple ingadingi ukugcina ukuhambisana kohlelo lokusebenza (ukuthi i-64-bit kanambambili isebenza ku-32-bit), ingakwazi ukwenza ukuthuthukiswa okumbalwa okwengeziwe kolimi lwe-Objective-C.

Omunye wabo yilokhu okuthiwa Isikhombi esimakiwe (inkomba emakiwe). Imvamisa, izinto nezikhombi zalezo zinto zigcinwa ezingxenyeni ezihlukene zenkumbulo. Nokho, izinhlobo ezintsha zesikhombi zivumela amakilasi anedatha encane ukuthi agcine izinto ngokuqondile kusikhombisi. Lesi sinyathelo siqeda isidingo sokwaba inkumbulo ngokuqondile entweni, vele udale i-pointer kanye nento engaphakathi kwayo. Izikhombisi ezimakiwe zisekelwa kuphela ekwakhiweni kwe-64-bit futhi ngenxa yokuthi asisekho isikhala esanele ku-32-bit pointer yokugcina idatha eyanele ewusizo. Ngakho-ke, i-iOS, ngokungafani ne-OS X, ayizange isisekele lesi sici. Kodwa-ke, ngokufika kwe-ARM64, lokhu kuyashintsha, futhi i-iOS ibambe i-OS X nalokhu.

Nakuba izikhombisi zingamabhithi angama-64 ubude, ku-ARM64 kuphela amabhithi angama-33 asetshenziselwa ikheli lesikhombi. Futhi uma sikwazi ukwembula ngokuthembekile ezinye izingcezu zesikhombi, singasebenzisa lesi sikhala ukuze sigcine idatha eyengeziwe - njengasendabeni yezikhombi ezimakiwe ezishiwo. Ngokucatshangwayo, lolu ngolunye lwezinguquko ezinkulu emlandweni we-Objective-C, nakuba kungesona isici esithengisekayo - ngakho-ke abasebenzisi abaningi ngeke bazi ukuthi i-Apple iyiyisa kanjani i-Objective-C phambili.

Ngokuqondene nedatha ewusizo engagcinwa endaweni esele yesikhombi esimakiwe, isibonelo, i-Objective-C, manje isiyisebenzisela ukugcina lokho okubizwa ngokuthi. isibalo sereferensi (inani lezinkomba). Ngaphambilini, isibalo sereferensi sasigcinwe endaweni ehlukile kumemori, kuthebula le-hashi elilungiselelwe yona, kodwa lokhu kungase kubambezelele lonke uhlelo esimweni senombolo enkulu yezingcingo ze-alloc/dealloc/retain/release. Ithebula bekufanele likhiywe ngenxa yokuphepha kwentambo, ngakho-ke isibalo sereferensi sezinto ezimbili emicu emibili asikwazanga ukushintshwa ngesikhathi esisodwa. Nokho, leli nani lisanda kufakwa kukho konke okubizwa ngokuthi isa izinkomba. Lokhu kungenye inzuzo engabonakali, kodwa enkulu kanye nokusheshisa esikhathini esizayo. Kodwa-ke, lokhu akusoze kwafezwa ekwakhiweni kwe-32-bit.

Ulwazi mayelana nezinto ezihlotshaniswayo, noma ngabe into ireferensi ngobuthaka, noma kudingekile ukukhiqiza umbhubhisi wento, njll., nayo isanda kufakwa endaweni esele yezikhombi zezinto. Ngenxa yalolu lwazi, i-Objective-C isikhathi sokusebenza siyakwazi ukusheshisa ngokuyisisekelo isikhathi sokusebenza, esibonakala ngesivinini sohlelo ngalunye. Kusukela ekuhlolweni, lokhu kusho ukusheshisa okungama-40-50% kwazo zonke izingcingo zokuphatha inkumbulo. Ngokushintshela kuzikhombi ze-64-bit nokusebenzisa lesi sikhala esisha.

Isiphetho

Nakuba izimbangi zizozama ukusabalalisa umbono wokuthi ukuthuthela ekwakhiweni kwe-64-bit akudingekile, uzokwazi kakade ukuthi lokhu kuwumbono ongenalwazi kakhulu. Kuliqiniso ukuthi ukushintshela ku-64-bit ngaphandle kokulungisa ulimi lwakho noma izinhlelo zokusebenza akusho lutho ngempela - kwehlisa ngisho nesistimu yonke. Kepha i-A7 entsha isebenzisa i-ARM64 yesimanje enesethi entsha yemiyalo, futhi i-Apple ithathe inkathazo ukwenza lonke ulimi lwe-Objective-C ibe yisimanje futhi isebenzise amakhono amasha - yingakho isithembiso sokusheshisa.

Lapha sikhulume inombolo enkulu yezizathu zokuthi kungani ukwakhiwa kwe-64-bit kuyisinyathelo esifanele phambili. Kungenye inguquko "ngaphansi kwe-hood", ngenxa yalokho i-Apple izozama ukuhlala phambili hhayi nje ngomklamo, isikhombimsebenzisi somsebenzisi kanye ne-ecosystem ecebile, kodwa ikakhulukazi ngobuchwepheshe besimanje kakhulu emakethe.

Umthombo: mikeash.com
.