Katia te panui

Mike Ash whakatapua i runga i tana rangitaki nga tikanga whaihua o te huri ki te hoahoanga moka-64 i roto i te iPhone 5S. Ko tenei tuhinga e whakaatu ana i ana kitenga.

Ko te take o tenei tuhinga ko te nuinga na te nui o nga korero pohehe e horahia ana mo te tikanga o te iPhone 5s hou me te tukatuka ARM 64-bit mo nga kaiwhakamahi me te maakete. I konei ka ngana matou ki te kawe mai i nga korero whai kiko mo nga mahi, nga kaha me nga paanga o tenei whakawhitinga mo nga kaihanga.

"64 bit"

E rua nga wahanga o te tukatuka ka taea e te tapanga "X-bit" te tohu - te whanui o nga rehita tauoti me te whanui o nga tohu. Waimarie, i runga i te nuinga o nga kaitukatuka hou he rite tonu enei whanui, no reira i roto i te take o te A7 ko te tikanga ko nga rehita tauoti 64-bit me nga tohu tohu 64-bit.

Heoi, he mea nui ano te tohu he aha te "64bit" ehara i te tikanga: Rahi wāhitau tinana RAM. Ko te maha o nga moka hei korero ki te RAM (na te nui o te RAM ka taea e te taputapu te tautoko) kaore e pa ana ki te maha o nga paraka CPU. He waahi kei waenganui i nga wahitau 26- me te 40-bit nga wahitau ARM ka taea te whakarereke motuhake mai i te toenga o te punaha.

  • Rahi pahi Raraunga. Ko te nui o nga raraunga ka riro mai i te RAM, i te mahara papaa ranei he rite tonu ki tenei take. Ka taea e nga tohutohu tukatuka takitahi te tono i nga rahinga rereke o nga raraunga, engari ka tukuna ma nga waahanga ka riro mai ranei i nga mea e hiahiatia ana mai i te mahara. Kei runga i te rahi o te rahinga raraunga. Ko te iPhone 5 kua whiwhi raraunga mai i te mahara i roto i te 64-bit quanta (a he 32-bit tukatuka), a ka taea e tatou te whakatau i nga rahi ki te 192 bits.
  • Ko nga mea katoa e pa ana ki te waahi maanu. Ko te rahi o aua rehita (FPU) he motuhake ano i nga mahi o roto o te tukatuka. Kei te whakamahi a ARM i te 64-bit FPU mai i mua i te ARM64 (64-bit ARM processor).

Nga painga me nga huakore

Mena ka whakatauritehia e tatou nga hoahoanga 32bit me te 64bit, kaore i te rereke. Koinei tetahi o nga take o te rangirua o te iwi e rapu ana i te take e neke ana a Apple ki te 64bit i roto i nga taputapu pūkoro. Heoi, ka puta katoa mai i nga tawhā motuhake o te tukatuka A7 (ARM64) me te pehea e whakamahia ai e Apple, ehara i te mea na te mea he hoahoanga 64-bit te tukatuka.

Heoi, ki te titiro tonu tatou ki nga rereketanga o enei hoahoanga e rua, ka kitea he maha nga rereketanga. Ko te mea tino kitea ko nga rehita tauoti 64-bit ka kaha ake te whakahaere i nga tauoti 64-bit. I mua noa atu, i taea te mahi tahi me ratou i runga i nga tukatuka moka-32, engari ko te tikanga ka wehewehea ki nga waahanga 32-bit te roa, na te mea ka puhoi ake nga tatauranga. Na ka taea e te tukatuka moka-64 te tatau ki nga momo moka-64 ka rite tonu ki te tere me nga momo 32-bit. Ko te tikanga ko nga tono e whakamahi ana i nga momo 64-bit ka tere ake te whakahaere i runga i te tukatuka 64-bit.

Ahakoa karekau te 64bit e pa ki te nui o te RAM ka taea e te kaitukatuka te whakamahi, ka ngawari ake te mahi me nga wahanga nui o te RAM i roto i te kaupapa kotahi. Ko nga papatono kotahi e rere ana i runga i te tukatuka moka-32 he tata ki te 4 GB o te mokowā wāhitau. Ma te whakaaro kei te tango te punaha whakahaere me nga whare pukapuka paerewa, ka waiho te kaupapa ki tetahi waahi i waenga i te 1-3 GB mo te whakamahi tono. Heoi, ki te nui ake i te 32 GB o RAM te punaha moka-4, he uaua ake te whakamahi i taua mahara. Me tahuri tatou ki te akiaki i te punaha whakahaere ki te mapi i enei wahanga mahara nui mo ta tatou kaupapa (mariko mariko), ka taea ranei e tatou te wehe i te hotaka ki roto i nga tikanga maha (kei reira ano he 4GB o te mahara e waatea ana mo ia mahi.

Heoi, he tino uaua, he puhoi hoki enei "hacks" ka whakamahia e te iti o nga tono. I roto i te mahi, i runga i te tukatuka moka-32, ka whakamahia noa e ia papatono tana 1-3 GB o te mahara, me etahi atu RAM e waatea ana ka taea te whakamahi ki te whakahaere i nga kaupapa maha i te wa kotahi, ki te whakamahi ranei i tenei mahara hei parepare (caching). He whaihua enei whakamahinga, engari e hiahia ana matou kia taea e tetahi papatono te whakamahi ngawari i nga wahanga o te mahara nui ake i te 4GB.

Inaianei kua tae mai matou ki te kii maha (he he) kaore he nui ake i te 4GB o te mahara, he horihori te hoahoanga 64-bit. Ko te mokowā wāhitau nui ake ka whai hua ahakoa i runga i te punaha iti ake te mahara. Ko nga konae kua mapi-maumahara he taputapu ngawari e hono tika ana tetahi waahanga o nga ihirangi o te konae ki te mahara o te tukanga me te kore e utaina te konae katoa ki te mahara. Na, ka taea e te punaha, hei tauira, te tukatuka i nga konae nui i nga wa maha atu i te kaha o te RAM. I runga i te punaha 32-bit, kaore e taea te whakamaarama i nga konae nui, engari i runga i te punaha 64-bit, he wahi keke, he mihi ki te waahi wahitau nui ake.

Heoi ano, ko te rahi o nga tohu tohu ka puta tetahi raru nui: mena ka hiahia nga papatono rite ki te mahara ake ki runga i te tukatuka moka-64 (me penapena enei tohu tohu ki tetahi waahi). I te mea ko nga tohu tohu he waahanga maha o nga papatono, ka taea e tenei rereketanga te taumaha i te keteroki, na reira ka tere haere te rere o te punaha katoa. Na i roto i te tirohanga, ka kite tatou mena ka huri noa tatou i te hoahoanga tukatuka ki te 64-bit, ka tino puhoi te punaha katoa. Na ko tenei take me taurite ma te nui ake o nga arotautanga i etahi atu waahi.

ARM64

Ko te A7, te 64-bit pūtukatuka e whakakaha ana i te iPhone 5s hou, ehara i te mea he pūtukatuka ARM noa me nga rehita whanui ake. Kei roto i te ARM64 nga whakapainga nui mo te putanga tawhito, moka-32.

Apple A7 pūtukatuka.

Rēhita

Ko te ARM64 e pupuri ana i nga rehita integer e rua ake i te 32-bit ARM (kia tupato kei pohehe te tau me te whanui o nga rehita - i korero matou mo te whanui i te waahanga "64-bit". rehita). Ko te ARM 64-bit he 32 nga rehita integer: kotahi te porotiti papatono (PC - kei roto te maha o nga tohutohu o naianei), he tohu tohu (he tohu ki tetahi mahi kei te haere tonu), he rehita hono (he tohu ki te hokinga mai i muri i te mutunga. o te mahi), a ko te toenga 16 mo te whakamahi tono. Heoi, he 13 nga rehita tauoti o te ARM64, tae atu ki tetahi rehita kore, rehita hono, he tohu anga (he rite ki te tohu tohu), me tetahi kua rahuitia mo nga ra kei mua. Ma tenei ka waiho he rehita 32 mo te whakamahi tono, neke atu i te rua o te ARM 28-bit. I taua wa ano, ka ruarua te ARM32 i te maha o nga rehita tau maanu (FPU) mai i te 64 ki te 16 nga rehita 32-bit.

Engari he aha te take i nui ai te maha o nga rehita? He puhoi ake te mahara i nga tatauranga CPU me te panui/tuhi ka roa te waa. Ma tenei ka tatari tonu te kaitukatuka tere mo te mahara ka pa ki te rohe tere o te punaha. Ka ngana nga kai-tukatuka ki te huna i tenei ngoikoretanga me nga paparanga o te kaipara, engari ahakoa te tere (L1) he puhoi ake i te tatauranga a te kaitukatuka. Heoi, ko nga rehita he pūtau maumahara kei roto tonu i te pūtukatuka me te tere o te panui/tuhi kia kore ai e whakaroa te pūtukatuka. Ko te maha o nga rehita ko te nui o te mahara tere mo nga tatauranga a te kaitukatuka, e pa ana ki te tere o te punaha katoa.

I te wa ano, ko tenei tere e hiahia ana ki te tautoko arotautanga pai mai i te kaitoha, kia taea ai e te reo te whakamahi i enei rehita me te kore e pupuri i nga mea katoa i roto i te tono whanui (te puhoi) mahara.

He huinga tohutohu

Ka kawea mai ano e ARM64 nga huringa nui ki te huinga tohutohu. Ko te huinga tohutohu he huinga mahi ngota ka taea e te kaitukatuka te mahi (hei tauira, 'ADD register1 register2' ka taapirihia nga tau ki nga rehita e rua). Ko nga mahi e waatea ana ki nga reo takitahi kei roto i enei tohutohu. Ko nga mahi uaua ake me mahi i etahi atu tohutohu, kia puhoi ake.

Hou i roto i te ARM64 he tohutohu mo te whakamunatanga AES, SHA-1 me SHA-256 mahi hash. Na, hei utu mo te whakatinanatanga uaua, ma te reo anake e kii i tenei tohutohu - ka nui ake te tere ki te tatauranga o aua mahi me te tumanako ka taapiri atu te haumarutanga ki nga tono. E.g. ka whakamahia ano hoki e te Touch ID hou enei tohutohu i roto i te whakamunatanga, e taea ai te tere me te haumarutanga (i roto i te ariā, me whakarereke e te kaitukino te tukatuka ake kia uru atu ki nga raraunga - kaore e taea te kii i te iti rawa o te rahi).

Hototahi ki te 32bit

He mea nui ki te whakahua ka taea e te A7 te whakahaere katoa i roto i te aratau 32-bit me te kore e hiahiatia he tauira. Ko te tikanga ka taea e te iPhone 5s hou te whakahaere i nga tono kua whakaemihia i runga i te 32-bit ARM kaore he puhoi. Heoi, kare e taea e ia te whakamahi i nga mahi ARM64 hou, no reira he mea tika kia hanga he hanga motuhake mo te A7, kia tere ake te rere.

Nga huringa o te wa whakahaere

Ko te wa oma te waehere hei taapiri i nga mahi ki te reo hotaka, ka taea e ia te whakamahi i te wa e rere ana te tono, tae noa ki muri i te whakamaoritanga. I te mea kaore a Apple e hiahia ki te pupuri i te hototahi tono (e rere ana te 64-bit i runga i te 32-bit), ka taea e raatau te whakapai ake i te reo Objective-C.

Ko tetahi o ratou ko te mea e kiia ana tohu tohu (tohu tohu). Ko te tikanga, ko nga taonga me nga tohutoro ki aua taonga ka penapena ki etahi waahanga o te mahara. Heoi, ka taea e nga momo atatohu hou nga karaehe iti te raraunga ki te penapena taonga ki roto i te atatohu. Ka whakakorehia e tenei taahiraa te hiahia ki te toha tika te mahara mo te ahanoa, hanga noa he atatohu me te ahanoa o roto. Ka tautokona nga tohu tohu tohu i roto i te hoahoanga moka-64 na te mea kua kore e nui te mokowā i roto i te atatohu 32-bit hei rokiroki i nga raraunga whaihua. Na reira, ko iOS, kaore i rite ki a OS X, kaore ano kia tautoko i tenei waahanga. Heoi, i te taenga mai o ARM64, kei te huri tenei, a kua mau a iOS ki te OS X mo tenei kaupapa ano.

Ahakoa he 64 moka te roa o nga tohutohu, kei te ARM64 e 33 noa nga moka ka whakamahia mo te wahitau ake o te tohutohu. A, ki te taea e tatou te wetewete i nga toenga o nga tohu tohu, ka taea e tatou te whakamahi i tenei waahi ki te penapena i etahi atu raraunga - penei i nga tohu tohu kua whakahuahia. Ki te whakaaro, koinei tetahi o nga huringa nui rawa atu i roto i te hitori o Objective-C, ahakoa ehara i te ahuatanga hokohoko - no reira kare te nuinga o nga kaiwhakamahi e mohio me pehea e neke whakamua ai a Objective-C.

Mo nga raraunga whaihua ka taea te penapena i roto i nga waahi e toe ana o taua tohu tohu, hei tauira, ko te Objective-C, kei te whakamahi inaianei hei penapena i nga mea e kiia nei. tatauranga tohutoro (te maha o nga tohutoro). I mua, i penapenahia te kaute tohutoro ki tetahi waahi rereke i roto i te mahara, i roto i te ripanga hash kua whakaritea mo tera, engari ka taea e tenei te whakaheke i te katoa o te punaha i roto i te take o te maha o nga waea alloc/dealloc/retain/release. Me raka te teepu na runga i te haumaru miro, no reira kaore e taea te huri i te tatau tohutoro o nga mea e rua i roto i nga miro e rua i te wa kotahi. Heoi ano, ka whakauruhia tenei uara ki te toenga o nga mea e kiia nei toka tohu. Koinei tetahi atu mea kore, engari he painga nui me te whakaterenga a muri ake nei. Heoi, e kore e taea tenei i roto i te hoahoanga moka-32.

Ko nga korero e pa ana ki nga mea e pa ana, ahakoa he ngoikore te tohutoro o te ahanoa, me whakaputa he kaiwhakangaro mo te ahanoa, me etahi atu, ka whakaurua hou ki roto i te toenga o nga tohu tohu ki nga taonga. He mihi ki enei korero, ko te Objective-C Ka taea e te wa whakahaere te tere ake i te waa whakahaere, e kitea ana i te tere o ia tono. Mai i nga whakamatautau, ko te tikanga tenei mo te 40-50% te tere o nga waea whakahaere mahara katoa. Ma te huri noa ki nga tohu 64-bit me te whakamahi i tenei waahi hou.

Opaniraa

Ahakoa ka ngana nga kaiwhakataetae ki te hora i te whakaaro ko te neke ki te hoahoanga 64-bit kaore e tika ana, kua mohio koe he whakaaro kore mohio noa tenei. He pono ko te huri ki te 64-bit me te kore e urutau ki to reo me to tono kare he aha - ka whakaroa te punaha katoa. Engari ko te A7 hou e whakamahi ana i te ARM64 hou me te huinga tohutohu hou, a kua raru a Apple ki te whakahou i te reo Objective-C katoa me te whakamahi i nga kaha hou - no reira te tere o te oati.

I konei kua whakahuahia e matou he maha nga take he aha te hangahanga 64-bit te huarahi tika ki mua. Ko tetahi atu hurihanga "i raro i te hood", he mihi ki a Apple ka ngana ki te noho ki mua kaore i te hoahoa anake, te atanga kaiwhakamahi me te rauwiringa kaiao, engari ko te nuinga me nga hangarau hou i runga i te maakete.

Puna: mikeash.com
.