Dùin sanas

Mike Ash coisrigte air a bhlog na buaidhean practaigeach bho bhith ag atharrachadh gu ailtireachd 64-bit san iPhone 5S. Tha an artaigil seo a’ tarraing air na co-dhùnaidhean aige.

Tha adhbhar an teacsa seo gu ìre mhòr mar thoradh air an ìre mhòr de mhì-fhiosrachadh a tha air a sgaoileadh mu na tha an iPhone 5s ùr le pròiseasar ARM 64-bit a’ ciallachadh dha luchd-cleachdaidh agus don mhargaidh. An seo feuchaidh sinn ri fiosrachadh cothromach a thoirt a-steach mu choileanadh, comasan agus buaidh a’ ghluasaid seo do luchd-leasachaidh.

"64 bit"

Tha dà phàirt de phròiseasar air am faod an leubail "X-bit" iomradh a thoirt air - leud a’ chlàr iomlan agus leud nan comharran. Gu fortanach, air a’ mhòr-chuid de luchd-giullachd an latha an-diugh tha na leudan sin mar an ceudna, agus mar sin a thaobh an A7 tha seo a’ ciallachadh clàran iomlan 64-bit agus comharran 64-bit.

Ach, tha e a cheart cho cudromach a bhith a’ comharrachadh dè chan eil “64bit” a’ ciallachadh: Meud seòladh corporra RAM. Chan eil an àireamh de phìosan airson conaltradh le RAM (mar sin an ìre de RAM a dh'fhaodas inneal a chuideachadh) co-cheangailte ris an àireamh de bhuillean CPU. Tha àite sam bith aig pròiseasairean ARM eadar seòlaidhean 26- agus 40-bit agus faodar an atharrachadh gu neo-eisimeileach bhon chòrr den t-siostam.

  • Meud bus dàta. Tha an ìre de dhàta a gheibhear bho RAM no cuimhne bufair a cheart cho neo-eisimeileach bhon bhàillidh seo. Faodaidh stiùireadh pròiseasar fa leth diofar mheudan de dhàta iarraidh, ach thèid an cur a-steach ann am pìosan no gheibh iad barrachd na tha a dhìth bhon chuimhne. Tha e an urra ri meud an dàta quantum. Tha an iPhone 5 mu thràth a’ faighinn dàta bhon chuimhne ann an 64-bit quanta (agus tha pròiseasar 32-bit aige), agus is urrainn dhuinn coinneachadh ri meudan suas ri 192 bit.
  • Rud sam bith co-cheangailte ri puing fleòdraidh. Tha meud chlàran mar sin (FPU) a-rithist neo-eisimeileach bho obair a-staigh a’ phròiseasar. Tha ARM air a bhith a’ cleachdadh FPU 64-bit bhon uair sin ARM64 (pròiseasar ARM 64-bit).

Buannachdan agus eas-bhuannachdan coitcheann

Ma nì sinn coimeas eadar ailtireachd 32bit agus 64bit eile, mar as trice chan eil iad cho eadar-dhealaichte. Is e seo aon de na h-adhbharan airson troimh-chèile coitcheann a ’phobaill a’ coimhead airson adhbhar gu bheil Apple a ’gluasad gu 64bit ann an innealan gluasadach cuideachd. Ach, tha e uile a ’tighinn bho pharaimearan sònraichte a’ phròiseasar A7 (ARM64) agus mar a bhios Apple ga chleachdadh, chan ann a-mhàin bhon fhìrinn gu bheil ailtireachd 64-bit aig a ’phròiseasar.

Ach, ma choimheadas sinn fhathast air na h-eadar-dhealachaidhean eadar an dà ailtireachd seo, lorgaidh sinn grunn eadar-dhealachaidhean. Is e am fear a tha follaiseach gum faod clàran iomlanachd 64-bit làimhseachadh iomlanachd 64-bit nas èifeachdaiche. Eadhon roimhe sin, bha e comasach obrachadh còmhla riutha air pròiseasairean 32-bit, ach mar as trice bha seo a ’ciallachadh an roinn ann am pìosan fada 32-bit, a dh’ adhbhraich àireamhachadh nas slaodaiche. Mar sin faodaidh pròiseasar 64-bit obrachadh a-mach le seòrsachan 64-bit a cheart cho luath ri feadhainn 32-bit. Tha seo a’ ciallachadh gum faod tagraidhean a bhios mar as trice a’ cleachdadh seòrsaichean 64-bit ruith fada nas luaithe air pròiseasar 64-bit.

Ged nach eil 64bit a 'toirt buaidh air an àireamh iomlan de RAM as urrainn don phròiseasar a chleachdadh, faodaidh e a dhèanamh nas fhasa obrachadh le pìosan mòra de RAM ann an aon phrògram. Chan eil ach mu 32 GB de rùm seòlaidh aig prògram singilte sam bith a tha a’ ruith air pròiseasar 4-bit. A’ gabhail a-steach gu bheil an siostam obrachaidh agus leabharlannan àbhaisteach a’ gabhail rudeigin, tha seo a’ fàgail a’ phrògraim an àiteigin eadar 1-3 GB airson cleachdadh an tagraidh. Ach, ma tha siostam 32-bit nas motha na 4 GB de RAM, tha cleachdadh na cuimhne sin beagan nas iom-fhillte. Feumaidh sinn tionndadh gu bhith a’ toirt air an t-siostam obrachaidh na pìosan cuimhne nas motha sin a mhapadh airson ar prògram (fìor-dhealbhadh cuimhne), no faodaidh sinn am prògram a roinn ann an grunn phròiseasan (far a bheil 4GB de chuimhne aig gach pròiseas a-rithist gu teòiridheach airson seòladh dìreach).

Ach, tha na “hacks” sin cho duilich agus cho slaodach is gu bheil co-dhiù de thagraidhean gan cleachdadh. Ann an cleachdadh, air pròiseasar 32-bit, cha chleachd gach prògram ach an 1-3 GB de chuimhne, agus faodar barrachd RAM a tha ri fhaighinn a chleachdadh gus grunn phrògraman a ruith aig an aon àm no an cuimhne seo a chleachdadh mar bufair (caching). Tha na cleachdaidhean sin practaigeach, ach bu mhath leinn gum biodh prògram sam bith comasach air pìosan cuimhne nas motha na 4GB a chleachdadh gu furasta.

A-nis thig sinn chun tagradh tric (gu dearbh ceàrr) nach eil ailtireachd 4-bit gun fheum às aonais barrachd air 64GB de chuimhne. Tha àite seòlaidh nas motha feumail eadhon air siostam le nas lugha de chuimhne. Is e inneal feumail a th’ ann am faidhlichean le mapa cuimhne far a bheil pàirt de shusbaint an fhaidhle ceangailte gu loidsigeach ri cuimhne a’ phròiseis gun am faidhle gu lèir a luchdachadh a-steach don chuimhne. Mar sin, faodaidh an siostam, mar eisimpleir, faidhlichean mòra a phròiseasadh grunn thursan nas motha na comas RAM. Air siostam 32-bit, chan urrainnear faidhlichean mòra mar sin a mhapadh le cuimhne gu earbsach, ach air siostam 64-bit, is e pìos cèic a th’ ann, le taing don àite seòlaidh tòrr nas motha.

Ach, tha ana-cothrom mòr aig meud nan comharran nas motha: air neo feumaidh prògraman co-ionann barrachd cuimhne air pròiseasar 64-bit (feumaidh na comharran nas motha sin a bhith air an stòradh an àiteigin). Leis gu bheil comharran gu tric mar phàirt de phrògraman, faodaidh an eadar-dhealachadh seo eallach a chuir air an tasgadan, a bheir air an t-siostam gu lèir ruith nas slaodaiche. Mar sin ann an sealladh, chì sinn nan atharraich sinn ailtireachd pròiseasar gu 64-bit, gun cuireadh e maill air an t-siostam gu lèir. Mar sin feumaidh am bàillidh seo a bhith air a chothromachadh le barrachd optimizations ann an àiteachan eile.

ARM64

Chan e dìreach pròiseasar ARM cunbhalach le clàran nas fharsainge a th’ anns an A7, am pròiseasar 64-bit a tha a’ toirt cumhachd don iPhone 5s ùr. Tha leasachaidhean mòra ann an ARM64 thairis air an dreach as sine, 32-bit.

Pròiseasaran Apple A7.

Clàradh

Tha ARM64 a’ cumail a dhà uimhir de chlàran slàn-ìre na ARM 32-bit (bi faiceallach nach cuir thu troimh-chèile àireamh is leud chlàran - bhruidhinn sinn mu leud san roinn “64-bit”. clàran). Tha 64-bit ARM a’ toirt a-steach 32 clàran integer: aon chuntar prògram (PC - anns a bheil àireamh an stiùiridh a th’ ann an-dràsta), puing stac (puing gu gnìomh a tha a’ dol air adhart), clàr ceangail (comharra airson tilleadh às deidh an deireadh). den ghnìomh), agus tha na 16 a tha air fhàgail airson cleachdadh tagraidh. Ach, tha 13 clàr iomlan aig an ARM64, a’ toirt a-steach aon chlàr neoni, clàr ceangail, puing frèam (coltach ri puing stac), agus aon glèidhte airson an ama ri teachd. Tha seo gar fàgail le 32 clàran airson cleachdadh tagraidh, còrr is a dhà uiread an ARM 28-bit. Aig an aon àm, dhùblaich an ARM32 an àireamh de chlàran àireamh puing-fleòdraidh (FPU) bho 64 gu 16 clàran 32-bit.

Ach carson a tha an àireamh de chlàran cho cudromach? Tha cuimhne sa chumantas nas slaodaiche na àireamhachadh CPU agus faodaidh leughadh/sgrìobhadh ùine mhòr a thoirt. Bheireadh seo air a’ phròiseasar luath cumail a’ feitheamh ri cuimhne agus bhitheamaid a’ bualadh air crìoch astair nàdarra an t-siostaim. Bidh pròiseasairean a 'feuchainn ris a' chnap-starra seo fhalach le sreathan de bufairean, ach tha eadhon an tè as luaithe (L1) fhathast nas slaodaiche na àireamhachadh a 'phròiseis. Ach, tha clàran nan ceallan cuimhne gu dìreach anns a’ phròiseasar agus tha an leughadh / sgrìobhadh aca luath gu leòr gus nach bi am pròiseasar nas slaodaiche. Tha an àireamh de chlàran gu practaigeach a 'ciallachadh an ìre de chuimhne as luaithe airson àireamhachadh pròiseasar, a bheir buaidh mhòr air astar an t-siostaim gu lèir.

Aig an aon àm, feumaidh an astar seo taic optimization math bhon chruinneadair, gus an urrainn don chànan na clàran sin a chleachdadh agus chan fheum e a h-uile càil a stòradh anns an tagradh coitcheann (an cuimhne slaodach).

Seata stiùiridh

Bheir ARM64 cuideachd atharrachaidhean mòra air an t-seata stiùiridh. Is e seata stiùiridh seata de dh’ obrachaidhean atamach as urrainn do phròiseasar a choileanadh (me ‘ADD register1 register2’ a’ cur na h-àireamhan ann an dà chlàr). Tha na gnìomhan a tha rim faighinn le cànanan fa leth air an dèanamh suas den stiùireadh seo. Feumaidh gnìomhan nas iom-fhillte barrachd stiùiridh a chuir an gnìomh, gus an urrainn dhaibh a bhith nas slaodaiche.

Ùr ann an ARM64 tha stiùireadh airson crioptachadh AES, gnìomhan hash SHA-1 agus SHA-256. Mar sin an àite buileachadh iom-fhillte, is e dìreach an cànan a chanas an stiùireadh seo - a bheir astar mòr gu bhith a’ cunntadh nan gnìomhan sin agus an dòchas tèarainteachd a bharrachd ann an tagraidhean. M.e. bidh an Touch ID ùr cuideachd a’ cleachdadh an stiùireadh seo ann an crioptachadh, a’ ceadachadh fìor astar agus tèarainteachd (ann an teòiridh, dh’ fheumadh neach-ionnsaigh am pròiseasar fhèin atharrachadh gus faighinn chun dàta - rud nach eil comasach a ràdh an ìre as lugha leis a mheud beag).

Co-chòrdalachd le 32 bit

Tha e cudromach a ràdh gum faod an A7 ruith gu h-iomlan ann am modh 32-bit gun fheum air aithris. Tha e a’ ciallachadh gum faod an iPhone 5s ùr aplacaidean a ruith air an cur ri chèile air 32-bit ARM gun slaodachadh sam bith. Ach, an uairsin chan urrainn dha na gnìomhan ùra ARM64 a chleachdadh, agus mar sin tha e an-còmhnaidh luachmhor togalach sònraichte a dhèanamh dìreach airson an A7, a bu chòir ruith fada nas luaithe.

Bidh runtime ag atharrachadh

Is e Runtime an còd a chuireas gnìomhan ris a’ chànan prògramaidh, as urrainn dha a chleachdadh fhad ‘s a tha an aplacaid a’ ruith, gus an dèidh eadar-theangachadh. Leis nach fheum Apple co-chòrdalachd tagraidh a chumail (gu bheil binary 64-bit a’ ruith air 32-bit), b’ urrainn dhaibh beagan leasachaidhean a bharrachd a dhèanamh air a’ chànan Amas-C.

Is e aon dhiubh an rud ris an canar comharraiche tagaichte (comharra comharraichte). Mar as trice, bidh nithean agus comharran airson na nithean sin air an stòradh ann am pàirtean fa leth de chuimhne. Ach, tha seòrsaichean puing ùra a’ toirt cothrom do chlasaichean le glè bheag de dhàta nithean a stòradh gu dìreach anns a’ phuing. Tha an ceum seo a’ cur às don fheum air cuimhne a riarachadh gu dìreach airson an nì, dìreach cruthaich puing agus an nì a tha na bhroinn. Chan eil molaidhean tagged a’ faighinn taic ach ann an ailtireachd 64-bit cuideachd air sgàth ‘s nach eil àite gu leòr ann am puing 32-bit tuilleadh airson dàta feumail gu leòr a stòradh. Mar sin, cha do chuir iOS, eu-coltach ri OS X, taic ris an fheart seo fhathast. Ach, le teachd ARM64, tha seo ag atharrachadh, agus tha iOS air grèim fhaighinn air OS X a thaobh seo cuideachd.

Ged a tha comharran 64 pìosan a dh’ fhaid, air an ARM64 chan eil ach 33 pìosan gan cleachdadh airson seòladh a’ phuing fhèin. Agus mas urrainn dhuinn an còrr de na pìosan stiùiridh a thoirt a-mach gu h-earbsach, is urrainn dhuinn an t-àite seo a chleachdadh gus dàta a bharrachd a stòradh - mar a tha anns na comharran tagged ainmichte. Gu bun-bheachdail, is e seo aon de na h-atharrachaidhean as motha ann an eachdraidh Amas-C, ged nach eil e na fheart margaidheachd - mar sin cha bhi fios aig a ’mhòr-chuid de luchd-cleachdaidh mar a tha Apple a’ gluasad Amas-C air adhart.

A thaobh an dàta feumail a dh’ fhaodar a stòradh anns an àite a tha air fhàgail de phuing tagaichte mar sin, tha Amas-C, mar eisimpleir, a-nis ga chleachdadh gus an rud ris an canar a stòradh. àireamh iomraidh (àireamh iomraidhean). Roimhe sin, bha an cunntas iomraidh air a stòradh ann an àite eadar-dhealaichte mar chuimhneachan, ann am bòrd hash a chaidh ullachadh air a shon, ach dh’ fhaodadh seo an siostam gu lèir a dhèanamh nas slaodaiche ma bha àireamh mhòr de ghlaodhan alloc/dealloc/gleidheadh/fuasglaidh. Dh'fheumadh am bòrd a bhith air a ghlasadh air sgàth sàbhailteachd snàithlean, agus mar sin cha b' urrainnear an àireamh iomraidh de dhà rud ann an dà snàithlean atharrachadh aig an aon àm. Ach, tha an luach seo air a chuir a-steach às ùr anns a’ chòrr den rud ris an canar isa comharran. Is e buannachd neo-shoilleir eile a tha seo, ach mòr agus luathachadh san àm ri teachd. Ach, cha b 'urrainnear seo a choileanadh a-riamh ann an ailtireachd 32-bit.

Tha fiosrachadh mu nithean co-cheangailte ris, co-dhiù a tha iomradh lag air an nì, a bheil feum air inneal-sgrios a ghineadh airson an nì, msaa, cuideachd air ùr chuir a-steach don àite a tha air fhàgail de chomharran nan nithean. tha runtime comasach air an ùine ruith a luathachadh gu bunaiteach, a tha ri fhaicinn ann an astar gach tagradh. Bho dheuchainn, tha seo a 'ciallachadh mu astar 40-50% de gach fios rianachd cuimhne. Dìreach le bhith ag atharrachadh gu comharran 64-bit agus a’ cleachdadh an àite ùr seo.

Co-dhùnadh

Ged a dh'fheuchas farpaisich ris a 'bheachd a sgaoileadh nach eil feum air gluasad gu ailtireachd 64-bit, bidh fios agad mu thràth gur e dìreach beachd gu math neo-fhiosraichte a tha seo. Tha e fìor nach eil dìreach a bhith ag atharrachadh gu 64bit gun a bhith ag atharrachadh a’ chànain no na h-aplacaidean air a’ ciallachadh dad idir - bidh e eadhon a’ slaodadh sìos an t-siostam gu lèir. Ach tha an A7 ùr a’ cleachdadh ARM64 ùr-nodha le seata stiùiridh ùr, agus tha Apple air an trioblaid a ghabhail gus an cànan Amas-C gu lèir ùrachadh agus brath a ghabhail air na comasan ùra - mar sin an luaths a chaidh a ghealltainn.

An seo tha sinn air iomradh a thoirt air grunn adhbharan carson a tha ailtireachd 64-bit mar an ceum ceart air adhart. Is e tionndadh eile a th ’ann“ fon chochall ”, le taing dha sin feuchaidh Apple ri fuireach aig fìor thoiseach chan ann a-mhàin le dealbhadh, eadar-aghaidh cleachdaiche agus eag-shiostam beairteach, ach gu sònraichte leis na teicneòlasan as ùire air a’ mhargaidh.

Tobar: mikeash.com
.