Rufe talla

Mike Ash sadaukar a kan blog Abubuwan da suka dace na canzawa zuwa gine-ginen 64-bit a cikin iPhone 5S. Wannan labarin ya zana sakamakon bincikensa.

Dalilin wannan rubutun shine yawanci saboda yawan bayanan da ake yadawa game da abin da sabon iPhone 5s tare da na'ura mai sarrafa 64-bit ARM ke nufi ga masu amfani da kasuwa. Anan za mu yi ƙoƙarin kawo bayanai na haƙiƙa game da aiki, iyawa da kuma abubuwan da wannan canjin ya haifar ga masu haɓakawa.

"64 bit"

Akwai sassa biyu na na’ura mai sarrafa kwamfuta da alamar “X-bit” za ta iya komawa gare su – Faɗin rajistar lamba da faɗin ma’aunin. Abin farin ciki, a mafi yawan na'urori na zamani waɗannan faɗin iri ɗaya ne, don haka a yanayin A7 wannan yana nufin rajistar integer 64-bit da masu nuni 64-bit.

Duk da haka, yana da mahimmanci a nuna abin da "64bit" baya nufi: Girman adireshin jiki na RAM. Adadin rago don sadarwa tare da RAM (don haka adadin RAM da na'urar zata iya tallafawa) baya da alaƙa da adadin raƙuman CPU. Masu sarrafa ARM suna da ko'ina tsakanin adiresoshin 26- da 40-bit kuma ana iya canza su ba tare da sauran tsarin ba.

  • Girman bas ɗin bayanai. Adadin bayanan da aka karɓa daga RAM ko ƙwaƙwalwar ajiyar buffer iri ɗaya ne mai zaman kansa daga wannan yanayin. Umarnin mai sarrafa guda ɗaya na iya buƙatar adadin bayanai daban-daban, amma ana aika su cikin guntu ko kuma an karɓi fiye da buƙata daga ƙwaƙwalwar ajiya. Ya dogara da girman adadin bayanai. IPhone 5 ya riga ya karɓi bayanai daga ƙwaƙwalwar ajiya a cikin 64-bit quanta (kuma yana da processor 32-bit), kuma muna iya fuskantar masu girma dabam har zuwa 192 rago.
  • Duk wani abu da ya danganci wurin iyo. Girman irin waɗannan rijistar (FPU) sun sake kasancewa masu zaman kansu daga ayyukan cikin gida na mai sarrafawa. ARM tana amfani da 64-bit FPU tun kafin ARM64 (mai sarrafa 64-bit ARM).

Gabaɗaya abũbuwan amfãni da rashin amfani

Idan muka kwatanta in ba haka ba 32bit da 64bit gine-gine, ba su bambanta ba. Wannan yana daya daga cikin dalilan da ke haifar da rudani da jama'a ke neman dalilin da yasa Apple ke motsawa zuwa 64bit a cikin na'urorin hannu kuma. Duk da haka, duk ya fito ne daga takamaiman sigogi na processor A7 (ARM64) da kuma yadda Apple ke amfani da shi, ba kawai daga gaskiyar cewa processor ɗin yana da gine-ginen 64-bit ba.

Koyaya, idan har yanzu mun kalli bambance-bambancen da ke tsakanin waɗannan gine-ginen biyu, za mu sami bambance-bambance da yawa. Abun da ke bayyane shine cewa rajistar lamba 64-bit na iya sarrafa intigers 64-bit da kyau. Tun da farko, yana yiwuwa a yi aiki tare da su akan na'urori masu sarrafawa 32-bit, amma wannan yawanci yana nufin raba su zuwa guntu masu tsayi 32-bit, wanda ya haifar da raguwar ƙididdiga. Don haka mai sarrafa 64-bit zai iya ƙididdige gabaɗaya tare da nau'ikan 64-bit kamar yadda yake da 32-bit. Wannan yana nufin cewa aikace-aikacen da ke amfani da nau'ikan 64-bit gabaɗaya na iya yin sauri da sauri akan na'urar sarrafa 64-bit.

Duk da cewa 64bit baya shafar jimillar adadin RAM da na’urar sarrafa kwamfuta za ta iya amfani da shi, zai iya sauqaqa aiki da manyan guntuwar RAM a cikin manhaja xaya. Duk wani shiri guda daya da ke aiki akan processor 32-bit kawai yana da kusan 4 GB na sararin adireshi. Yin la'akari da cewa tsarin aiki da ɗakunan karatu na yau da kullun suna ɗaukar wani abu, wannan yana barin shirin tare da wani wuri tsakanin 1-3 GB don amfani da aikace-aikacen. Koyaya, idan tsarin 32-bit yana da fiye da 4 GB na RAM, yin amfani da wannan ƙwaƙwalwar yana ɗan rikitarwa. Dole ne mu koma ga tilasta tsarin aiki don taswirar waɗannan manyan ɓangarorin ƙwaƙwalwar ajiya don shirinmu (ƙwaƙwalwar ƙwaƙwalwar ajiya), ko kuma za mu iya raba shirin zuwa matakai da yawa (inda kowane tsari kuma yana da 4 GB na ƙwaƙwalwar ajiya don yin magana kai tsaye).

Koyaya, waɗannan “hacks” suna da wahala kuma suna jinkirin da ƙaramin aikace-aikacen ke amfani da su. A aikace, akan na'ura mai kwakwalwa 32-bit, kowane shirin zai yi amfani da 1-3 GB na ƙwaƙwalwar ajiyarsa kawai, kuma mafi yawan RAM za a iya amfani da shi don gudanar da shirye-shirye da yawa a lokaci guda ko amfani da wannan ƙwaƙwalwar a matsayin ma'auni (caching). Waɗannan amfani suna da amfani, amma muna son kowane shiri ya sami damar yin amfani da gungu na ƙwaƙwalwar ajiya cikin sauƙi wanda ya fi 4GB.

Yanzu mun zo ga da'awar akai-akai (a zahiri ba daidai ba) cewa ba tare da fiye da 4GB na ƙwaƙwalwar ajiya ba, gine-ginen 64-bit ba shi da amfani. Babban filin adireshi yana da amfani koda akan tsarin tare da ƙarancin ƙwaƙwalwar ajiya. Fayilolin da aka yi taswirar ƙwaƙwalwar ajiya kayan aiki ne mai amfani inda ɓangaren abubuwan da ke cikin fayil ɗin ke da alaƙa da ma'adanar tsarin aiki ba tare da an loda dukan fayil ɗin cikin ƙwaƙwalwar ajiya ba. Don haka, tsarin zai iya, alal misali, a hankali sarrafa manyan fayiloli sau da yawa girma fiye da ƙarfin RAM. A kan tsarin 32-bit, irin waɗannan manyan fayiloli ba za a iya dogara da su taswirar ƙwaƙwalwar ajiya ba, yayin da akan tsarin 64-bit, biredi ne, godiya ga sararin adireshin da ya fi girma.

Koyaya, girman girman nuni shima yana haifar da babban hasara: in ba haka ba shirye-shirye iri ɗaya suna buƙatar ƙarin ƙwaƙwalwar ajiya akan na'ura mai sarrafa 64-bit (waɗannan manyan masu nuni dole ne a adana su a wani wuri). Tunda masu nuni akai-akai na shirye-shirye, wannan bambance-bambance na iya ɗaukar cache ɗin, wanda hakan ke haifar da tsarin gabaɗayan tafiyar da hankali. Don haka a cikin hangen zaman gaba, zamu iya ganin cewa idan kawai muka canza tsarin gine-gine zuwa 64-bit, zai rage jinkirin dukkan tsarin. Don haka dole ne a daidaita wannan lamarin ta ƙarin ingantawa a wasu wurare.

ARM64

A7, mai sarrafa 64-bit mai iko da sabon iPhone 5s, ba kawai na'urar sarrafa ARM ta yau da kullun ba tare da manyan rajista. ARM64 ya ƙunshi manyan haɓakawa akan tsofaffi, sigar 32-bit.

Apple A7 processor.

Registry

ARM64 tana riƙe ninki biyu na adadin integer kamar 32-bit ARM (ku yi hankali don kada ku rikitar da lamba da faɗin rajista - mun yi magana game da faɗi a cikin sashin "64-bit". rajista). 64-bit ARM yana da rajistar lamba 32: counter na shirye-shirye guda ɗaya (PC - ya ƙunshi adadin koyarwar yanzu), ma'anar tari (mai nuni ga aikin da ke ci gaba), rajistar hanyar haɗin gwiwa (mai nuni zuwa dawowa bayan ƙarshen ƙarshe). na aikin), kuma sauran 16 na aikace-aikace ne. Koyaya, ARM13 yana da rijistar lamba 64, gami da rijistar sifili ɗaya, rijistar hanyar haɗin gwiwa, ma'anar firam (mai kama da ma'anar tari), da wanda aka tanada don gaba. Wannan ya bar mu da rajista 32 don amfani da aikace-aikacen, fiye da ninki biyu na 28-bit ARM. A lokaci guda, ARM32 ya ninka adadin adadin masu iyo (FPU) rajista daga 64 zuwa 16 32-bit rajista.

Amma me yasa adadin masu rajista ke da mahimmanci? Ƙwaƙwalwar ajiya gabaɗaya tana da hankali fiye da lissafin CPU kuma karantawa/rubutu na iya ɗaukar lokaci mai tsawo. Wannan zai sa mai sarrafawa mai sauri ya ci gaba da jiran ƙwaƙwalwar ajiya kuma za mu buga iyakar saurin tsarin. Masu sarrafawa suna ƙoƙarin ɓoye wannan naƙasa tare da nau'ikan buffers, amma ko da mafi sauri (L1) har yanzu yana da hankali fiye da lissafin na'urar. Koyaya, rajista sune ƙwayoyin ƙwaƙwalwar ajiya kai tsaye a cikin na'ura mai sarrafawa kuma karatun su / rubuce-rubucen su yana da sauri isa don kada ya rage na'urar. Adadin rajista a zahiri yana nufin adadin mafi saurin ƙwaƙwalwar ajiya don ƙididdige aikin sarrafawa, wanda ke tasiri sosai ga saurin tsarin gaba ɗaya.

A lokaci guda, wannan gudun yana buƙatar ingantaccen tallafi na haɓakawa daga mai tarawa don harshe ya iya amfani da waɗannan rajistar kuma ba dole ba ne ya adana komai a cikin aikace-aikacen gabaɗaya (jinkirin) ƙwaƙwalwar ajiya.

Saitin umarni

ARM64 kuma yana kawo manyan canje-canje ga saitin koyarwa. Saitin umarni wani tsari ne na ayyukan atomic wanda mai sarrafawa zai iya yi (misali 'ADD register1 register2' yana ƙara lambobi cikin rajista biyu). Ayyukan da ke akwai ga yaruka ɗaya sun ƙunshi waɗannan umarnin. Ƙarin hadaddun ayyuka dole ne su aiwatar da ƙarin umarni, don haka za su iya zama a hankali.

Sabbin a cikin ARM64 umarni ne don ɓoye AES, SHA-1 da ayyukan hash SHA-256. Don haka maimakon aiwatar da hadaddun, harshe ne kawai zai kira wannan umarni - wanda zai kawo babban saurin ƙididdige irin waɗannan ayyuka kuma da fatan ƙara tsaro a cikin aikace-aikacen. Misali sabon Touch ID kuma yana amfani da waɗannan umarnin a cikin ɓoyewa, yana ba da izinin gudu da tsaro na gaske (a ka'idar, mai hari zai canza masarrafar da kansa don samun damar bayanan - wanda ba shi da amfani a faɗi kaɗan idan aka ba da ƙaramin girmansa).

Daidaitawa tare da 32bit

Yana da mahimmanci a ambaci cewa A7 na iya aiki cikakke a cikin yanayin 32-bit ba tare da buƙatar kwaikwaya ba. Yana nufin cewa sabon iPhone 5s zai iya gudanar da aikace-aikacen da aka haɗa akan 32-bit ARM ba tare da wani raguwa ba. Koyaya, to ba zai iya amfani da sabbin ayyukan ARM64 ba, don haka yana da kyau koyaushe don yin gini na musamman kawai don A7, wanda yakamata yayi sauri da sauri.

Canje-canjen lokacin aiki

Runtime shine lambar da ke ƙara ayyuka zuwa yaren shirye-shiryen, wanda zai iya amfani da shi yayin da aikace-aikacen ke gudana, har sai bayan fassarar. Tun da Apple baya buƙatar kula da dacewa da aikace-aikacen (cewa 64-bit binary yana gudana akan 32-bit), za su iya samun damar yin ƙarin haɓakawa ga yaren Objective-C.

Daya daga cikinsu shi ne wanda ake kira alamar alama (alamar alama). A al'ada, abubuwa da masu nuni ga waɗannan abubuwan ana adana su a sassa daban-daban na ƙwaƙwalwar ajiya. Koyaya, sabbin nau'ikan nuni suna ba da damar azuzuwan tare da ƙaramin bayanai don adana abubuwa kai tsaye a cikin mai nuni. Wannan matakin yana kawar da buƙatar ware ƙwaƙwalwar ajiya kai tsaye ga abu, kawai ƙirƙirar mai nuni da abin da ke cikinsa. Alamun da aka yiwa alama ana tallafawa ne kawai a cikin gine-ginen 64-bit kuma saboda gaskiyar cewa babu sauran isasshen sarari a cikin mai nuni 32-bit don adana isassun bayanai masu amfani. Don haka, iOS, ba kamar OS X ba, har yanzu bai goyi bayan wannan fasalin ba. Koyaya, tare da zuwan ARM64, wannan yana canzawa, kuma iOS ya kama OS X a wannan batun kuma.

Kodayake masu nuni suna da tsayi 64, akan ARM64 kawai 33 ragowa ana amfani dasu don adireshin mai nuni. Kuma idan mun sami damar tozarta sauran raƙuman nuni, za mu iya amfani da wannan sarari don adana ƙarin bayanai - kamar a cikin abubuwan da aka ambata masu alama. A ra'ayi, wannan shine ɗayan manyan canje-canje a cikin tarihin Objective-C, kodayake ba alama ce ta kasuwa ba - don haka yawancin masu amfani ba za su san yadda Apple ke motsawa Objective-C gaba ba.

Dangane da bayanai masu amfani waɗanda za a iya adana su a cikin sauran sarari na irin wannan alamar da aka yiwa alama, Objective-C, alal misali, yanzu yana amfani da shi don adana abin da ake kira. ƙidayar magana (yawan nassoshi). A baya can, an adana ƙididdiga na ƙididdiga a wani wuri daban-daban a cikin ƙwaƙwalwar ajiya, a cikin tebur na hash da aka shirya don shi, amma wannan zai iya rage tsarin duka a cikin yanayin babban adadin alloc / dealloc / riƙe / sakewa kira. Dole ne a kulle teburin saboda amincin zaren, don haka ba za a iya canza lissafin abubuwa biyu a cikin zaren guda biyu a lokaci guda ba. Koyaya, wannan ƙima an saka sabon shigar a cikin sauran abin da ake kira isa alamomi. Wannan wani abu ne mai ban mamaki, amma babbar fa'ida da haɓakawa a nan gaba. Koyaya, ba za a taɓa samun wannan a cikin gine-ginen 32-bit ba.

Bayani game da abubuwan da ke da alaƙa, ko abu yana da rauni, ko ya zama dole don samar da mai lalata abu, da dai sauransu, an kuma shigar da sabon sa cikin sauran wuraren nuni ga abubuwan. Godiya ga wannan bayanin, Manufar-C Runtime yana iya haɓaka ainihin lokacin aiki, wanda ke nunawa cikin saurin kowane aikace-aikacen. Daga gwaji, wannan yana nufin kusan 40-50% gudun duk kiran sarrafa ƙwaƙwalwar ajiya. Kawai ta hanyar canzawa zuwa masu nuni 64-bit da amfani da wannan sabon sarari.

Kammalawa

Kodayake masu fafatawa za su yi ƙoƙarin yada ra'ayin cewa motsawa zuwa gine-ginen 64-bit ba dole ba ne, za ku rigaya san cewa wannan ra'ayi ne kawai wanda ba a sani ba. Gaskiya ne cewa canzawa zuwa 64-bit ba tare da daidaita harshenku ko aikace-aikacenku ba ba yana nufin komai ba - har ma yana rage tsarin gaba ɗaya. Amma sabon A7 yana amfani da ARM64 na zamani tare da sabon saiti na koyarwa, kuma Apple ya ɗauki matsala don sabunta duk yaren Objective-C da kuma amfani da sabbin damar - don haka saurin da aka yi alkawarinsa.

Anan mun ambaci dalilai masu yawa da yasa tsarin gine-ginen 64-bit shine matakin da ya dace. Yana da wani juyin juya hali "a karkashin kaho", godiya ga abin da Apple zai yi kokarin tsaya a kan gaba ba kawai tare da zane, mai amfani dubawa da kuma arziki muhalli, amma yafi tare da mafi zamani fasahar a kasuwa.

Source: mikeash.com
.