Tapuni fa'asalalauga

Mike Ash tuuto i lana blog o aafiaga aoga o le sui i le 64-bit architecture i le iPhone 5S. O lenei tusiga e faʻatatau i ana mea na maua.

O le mafuaʻaga o lenei tusitusiga e mafua ona o le tele o faʻamatalaga sese o loʻo salalau e uiga i le uiga moni o le iPhone 5s fou ma le 64-bit ARM processor mo tagata faʻaoga ma le maketi. O iinei o le a matou taumafai ai e aumai faʻamatalaga faʻamoemoe e uiga i le faʻatinoga, gafatia ma aʻafiaga o lenei suiga mo tagata atiaʻe.

"64 bit"

E lua vaega o le gaosiga e mafai ona faasino i ai le igoa "X-bit" - o le lautele o tusi resitala numera ma le lautele o faʻailoga. O le mea e lelei ai, i luga o le tele o faʻaonaponei faʻaonaponei o nei lautele e tutusa, o lona uiga i le tulaga o le A7 o lona uiga o le 64-bit integer registers ma le 64-bit pointers.

Ae ui i lea, e tutusa lava le taua o le faʻaalia o le "64bit" e LEʻO uiga: Ole tele ole tuatusi ole RAM. Ole numera o bits e fesoʻotaʻi ma le RAM (o le aofaʻi o le RAM e mafai ona lagolagoina e se masini) e le fesoʻotaʻi ma le numera o pusi CPU. ARM processors ei ai soʻo se mea i le va o le 26- ma le 40-bit tuatusi ma e mafai ona suia tutoatasi mai le isi vaega o le polokalama.

  • Tele pasi fa'amaumauga. Ole aofaʻi o faʻamatalaga na maua mai le RAM poʻo le faʻamaufaʻailoga e tutusa lava le tutoʻatasi mai lenei mea. O fa'atonuga a tagata ta'ito'atasi e mafai ona talosagaina ni aofa'iga eseese o fa'amaumauga, ae o lo'o tu'uina atu i ni pusi po'o le tele atu o mea e mana'omia mai le manatua. E fa'alagolago i le tele o le quantum fa'amaumauga. O le iPhone 5 ua uma ona maua faʻamatalaga mai le manatua i le 64-bit quanta (ma o loʻo i ai se 32-bit processor), ma e mafai ona tatou faʻafeiloaʻi tele e oʻo atu i le 192 bits.
  • So'o se mea e feso'ota'i ma le fa'afefete. O le tele o ia resitala (FPU) e toe tuto'atasi mai galuega i totonu o le gaosiga. O loʻo faʻaaogaina e le ARM le 64-bit FPU talu mai le ARM64 (64-bit ARM processor).

Tulaga lelei ma le le lelei lautele

Afai tatou te faʻatusatusa i se isi itu 32bit ma 64bit architectures, e masani lava e le ese. O se tasi lea o mafuaʻaga o le fenumiai lautele o tagata lautele o loʻo sailia se mafuaʻaga o loʻo agai atu ai Apple i le 64bit i masini feaveaʻi. Ae ui i lea, e sau uma lava mai faʻamaufaʻailoga faʻapitoa o le A7 (ARM64) processor ma le faʻaogaina e Apple, ae le naʻo le mea moni o le gaosiga o loʻo i ai se fausaga 64-bit.

Ae peitaʻi, afai tatou te vaʻavaʻai pea i le eseesega i le va o nei fausaga e lua, o le a tatou maua le tele o eseesega. O le mea manino o le 64-bit integer registers e mafai ona faʻatautaia 64-bit integers sili atu ona lelei. E oʻo lava i le taimi muamua, na mafai ona galulue faʻatasi ma i latou i luga o le 32-bit processors, ae o lenei mea e masani lava ona vaevaeina i latou i le 32-bit le umi, lea na mafua ai le faʻasolosolo lemu. O lea la, o le 64-bit processor e masani lava ona faʻatusatusa i ituaiga 64-bit e pei lava o le 32-bit mea vave. O lona uiga o talosaga e masani ona faʻaogaina ituaiga 64-bit e mafai ona sili atu le saoasaoa i luga o le 64-bit processor.

E ui lava o le 64bit e le afaina ai le aofaʻi atoa o le RAM e mafai ona faʻaogaina e le gaosiga, e mafai ona faafaigofie ai le galue ma le tele o pusi o le RAM i le polokalama e tasi. So'o se polokalame e tasi o lo'o fa'agaoioia ile 32-bit processor e na'o le 4 GB ole tuatusi avanoa. I le amanaia o le faiga faʻaogaina ma faletusi masani e faʻaaogaina se mea, e tuʻu ai le polokalame i se mea i le va o le 1-3 GB mo le faʻaaogaina o talosaga. Ae peitaʻi, afai o le 32-bit system e sili atu nai lo le 4 GB o le RAM, o le faʻaaogaina o lena manatua e sili atu ona faigata. E tatau ona tatou faʻamalosia le faʻaogaina o le faiga e faʻafanua ai nei pusi tetele o le manatua mo la tatou polokalama (memory virtualization), pe mafai ona tatou vaeluaina le polokalama i le tele o faiga (lea e toe maua ai le 4 GB o manatuaga taʻitasi mo le tautala saʻo).

Ae ui i lea, o nei "hacks" e matua faigata ma telegese e faʻaaogaina e le itiiti ifo o talosaga. I le faʻataʻitaʻiga, i luga o le 32-bit processor, o polokalama taʻitasi o le a naʻo le 1-3 GB o le manatua, ma sili atu le avanoa RAM e mafai ona faʻaogaina e faʻatautaia ai le tele o polokalame i le taimi e tasi pe faʻaaoga lenei manatua e avea o se paʻu (caching). O nei faʻaoga e aoga, ae matou te manaʻo i soʻo se polokalame e mafai ona faigofie ona faʻaogaina pusi o manatua e sili atu nai lo le 4GB.

O lenei ua matou oʻo mai i le faʻamatalaga masani (moni le saʻo) e aunoa ma le sili atu i le 4GB o le manatua, o le 64-bit architecture e leai se aoga. Ole avanoa tele ole tuatusi e aoga e o'o lava ile faiga e itiiti le manatua. O faila e manatua-fa'afanua o se meafaigaluega fa'aoga lelei lea e feso'ota'i lelei ai se vaega o mea o lo'o i totonu o le faila i le manatua o le faagasologa e aunoa ma le utaina o le faila atoa i le mafaufau. O le mea lea, e mafai e le faiga, mo se faʻataʻitaʻiga, faʻasolosolo faʻagasolo faila tetele i le tele o taimi e sili atu nai lo le gafatia o le RAM. I luga o le 32-bit system, o ia faila lapopoa e le mafai ona faʻamoemoeina manatua-faʻafanua, ae i luga o le 64-bit system, o se fasi keke, faʻafetai i le tele o avanoa tuatusi.

Ae ui i lea, o le tele o faʻailoga e aumaia ai foi se tasi faʻaletonu tele: a leai o polokalame tutusa e manaʻomia le tele o manatua i luga o le 64-bit processor (o nei faʻailoga tetele e tatau ona teuina i se mea). Talu ai ona o faʻailoga o se vaega masani o polokalame, o lenei eseesega e mafai ona mamafa le cache, lea e mafua ai ona faʻagesegese le polokalama atoa. O lea la, i se vaaiga, e mafai ona tatou vaʻai pe a na ona tatou suia le fausaga o le gaosiga i le 64-bit, o le a faʻagesegese ai le faiga atoa. O lea la e tatau ona faapaleniina lenei tulaga i le tele o faʻataʻitaʻiga i isi nofoaga.

ARM64

O le A7, o le 64-bit processor e faʻamalosia ai le iPhone 5s fou, e le naʻo se masini masani ARM faʻatasi ai ma resitara lautele. O le ARM64 o loʻo iai ni faʻaleleia atili i luga o le tuai, 32-bit version.

Apple A7 gaosiga.

Resitala

O le ARM64 e fa'aluaina le tele o le resitara integer e pei o le 32-bit ARM (fa'aeteete 'aua ne'i fenumia'i le numera ma le lautele o tusi resitala - na matou talanoa e uiga i le lautele i le "64-bit" vaega. O le mea lea o le ARM64 e faaluaina le lautele o le resitara ma fa'aluaina le tele. resitala). O le 32-bit ARM o loʻo i ai le 16 integer registers: tasi le polokalame fata (PC - o loʻo i ai le numera o le faʻatonuga o loʻo i ai nei), o se faʻailoga faʻapipiʻi (o se faʻailoga i se galuega o loʻo faagasolo), o se tusi resitala (o se faʻasino i le toe foʻi pe a maeʻa le faaiuga. o le galuega), ma le 13 o totoe e mo le faʻaaogaina o le faʻaoga. Ae ui i lea, o le ARM64 o loʻo i ai le 32 integer registers, e aofia ai le tasi le tusi resitala, o le resitala soʻotaga, o le faʻailoga faʻavaa (e tutusa ma le faʻailoga faʻapipiʻi), ma le tasi e faʻaagaga mo le lumanaʻi. Ole mea lea e tu'u mai ai ia i tatou le 28 resitala mo le fa'aogaina o talosaga, e sili atu nai lo le faaluaina ole 32-bit ARM. I le taimi lava e tasi, na faaluaina e le ARM64 le numera o le numera o le floating-point number (FPU) mai le 16 i le 32 128-bit resitala.

Ae aisea e taua tele ai le numera o resitala? E masani lava e telegese le mafaufau nai lo le fuafuaina ole PPU ma o le faitau/tusi e mafai ona umi se taimi. O le mea lea e tatau ai ona fa'atali pea le fa'agaioiga vave mo le manatua ma o le a tatou taia le fa'atapula'a fa'anatura o le faiga. O lo'o taumafai tagata fa'agaioiga e natia lenei fa'aletonu i fa'amaufa'ailoga, ae e o'o lava i le sili ona vave (L1) e fa'agesegese lava nai lo le fa'atatauga a le masini. Ae ui i lea, o resitala o sela manatua saʻo i totonu o le gaosiga ma o latou faitau / tusitusi e lava le vave e le faʻagesegese ai le gaioiga. Ole numera o tusi resitala o lona uiga ole aofaʻi o le manatua sili ona vave mo le faʻatulagaina o faʻasologa, lea e matua aʻafia ai le saoasaoa o le polokalama atoa.

I le taimi lava e tasi, e manaʻomia e lenei saoasaoa le lagolago lelei mai le tagata faʻapipiʻi, ina ia mafai e le gagana ona faʻaogaina nei tusi resitala ma e le tatau ona teuina mea uma i le faʻaoga lautele (lemu) manatua.

Seti faatonuga

E aumaia foi e le ARM64 suiga tetele i le seti o faatonuga. O se seti fa'atonuga o se seti o fa'agaioiga atomika e mafai ona fa'atino e se komipiuta (fa'ata'ita'iga 'ADD register1 register2' fa'aopoopo numera i tusi resitala e lua). O galuega o lo'o avanoa i gagana ta'itasi o lo'o aofia ai nei fa'atonuga. O galuega fa'alavelave e tatau ona fa'atino nisi fa'atonuga, ina ia fa'agesegese.

E fou ile ARM64 o fa'atonuga mo fa'ailoga AES, SHA-1 ma SHA-256 hash functions. O lea nai lo se faʻalavelave lavelave, naʻo le gagana e taʻua ai lenei faʻatonuga - lea o le a aumaia ai se saoasaoa tele i le faʻatulagaina o ia galuega ma faʻamoemoe e faʻaopoopo le saogalemu i talosaga. E.g. o le Touch ID fou foi e faʻaogaina nei faʻatonuga i faʻamatalaga, faʻatagaina mo le saoasaoa moni ma le saogalemu (i le talitonuga, e tatau i le tagata osofaʻi ona suia le gaioiga lava ia e maua ai faʻamatalaga - e le mafai ona fai atu le itiiti ifo o lona laʻititi tele).

Faʻatasi ma le 32bit

E taua le taʻua o le A7 e mafai ona tamoe atoatoa i le 32-bit mode e aunoa ma le manaʻomia o le faʻataʻitaʻiga. O lona uiga o le iPhone 5s fou e mafai ona faʻatautaia tusi talosaga tuʻufaʻatasia i luga o le 32-bit ARM e aunoa ma se faʻagesegese. Ae ui i lea, e le mafai ona faʻaaogaina galuega fou ARM64, o lea e aoga ai i taimi uma le faia o se fale faʻapitoa mo le A7, lea e tatau ona sili atu le saoasaoa.

Suiga taimi ta'avale

Runtime o le code lea e faʻaopoopo ai galuega i le gagana polokalame, lea e mafai ona faʻaoga aʻo faʻagasolo le talosaga, seia maeʻa le faaliliuga. Talu ai e le manaʻomia e Apple ona faʻatumauina le faʻaogaina o talosaga (o le 64-bit binary e alu ile 32-bit), e mafai ona latou gafatia e faia ni nai faʻaleleia atili i le gagana Objective-C.

O se tasi o latou o le mea e taʻua fa'ailoga fa'ailoga (faailoga faailoga). E masani lava, o mea faitino ma faʻailoga i na mea faitino e teuina i vaega eseese o le manatua. Ae ui i lea, o ituaiga faʻailoga fou e faʻatagaina vasega e itiiti faʻamaumauga e teu saʻo mea i totonu o le faʻailoga. O lenei laasaga e faʻaumatia ai le manaʻoga e tuʻu saʻo le manatua mo le mea, naʻo le fatuina o se faʻailoga ma le mea i totonu. O fa'ailoga fa'ailoga e na'o le lagolagoina i le 64-bit architecture ona o le mea moni e le o toe lava le avanoa i le 32-bit pointer e teu ai fa'amatalaga aoga. O le mea lea, iOS, e le pei o le OS X, e leʻi lagolagoina lenei tulaga. Ae ui i lea, faatasi ai ma le taunuu mai o le ARM64, ua suia lenei mea, ma ua maua foi e iOS le OS X i lenei tulaga.

E ui lava e 64 bits le umi o fa'ailoga, ae ile ARM64 na'o le 33 bits e fa'aoga mo le tuatusi ole fa'asino. Ma afai e mafai ona tatou faʻamoemoeina le tatalaina o isi vaega o faʻailoga, e mafai ona tatou faʻaogaina lenei avanoa e teu ai faʻamatalaga faaopoopo - e pei o le tulaga o faʻailoga ua taʻua. I le manatu, o se tasi lea o suiga tele i le tala faasolopito o Objective-C, e ui lava e le o se mea e mafai ona faʻatau atu - o le tele o tagata faʻaoga latou te le iloa pe faʻafefea ona faʻagasolo e Apple le Objective-C i luma.

Ae mo faʻamatalaga aoga e mafai ona teuina i le avanoa o loʻo totoe o se faʻailoga faʻailoga, Objective-C, mo se faʻataʻitaʻiga, o loʻo faʻaaogaina nei e teu ai le mea e taʻua. faitau tusi (numera o faʻamatalaga). I le taimi muamua, o le numera o faʻamatalaga sa teuina i se isi nofoaga i le manatua, i totonu o se laulau hash ua saunia mo ia, ae e mafai ona faʻagesegese le faiga atoa i le tulaga o se numera tele o alloc/dealloc/retain/release calls. Sa tatau ona loka le laulau ona o le saogalemu o filo, o lea e le mafai ona suia le numera o mea e lua i filo e lua i le taimi e tasi. Ae ui i lea, o lenei tau o loʻo faʻaofiina fou i totonu o le vaega o totoe o le mea e taʻua lava fa'ailoga. O le isi lea mea e le iloa, ae tele le manuia ma le saoasaoa i le lumanaʻi. Ae ui i lea, e le mafai ona ausia lenei mea i se fausaga 32-bit.

O faʻamatalaga e uiga i mea e fesoʻotaʻi, pe o le mea e vaivai le faʻasino, pe manaʻomia le faʻatupuina o se faʻaleagaina mo le mea, ma isi, o loʻo faʻapipiʻiina fou foi i totonu o le nofoaga o loʻo totoe o faʻailoga i mea. Faʻafetai i lenei faʻamatalaga, le Objective-C runtime e mafai ona faʻavavevaveina le taʻavale, lea e atagia i le saoasaoa o talosaga taʻitasi. Mai faʻataʻitaʻiga, o lona uiga e uiga i le 40-50% faʻavavevave o telefoni faʻatonuga uma. Na'o le fesuia'i i 64-bit pointers ma fa'aoga lenei avanoa fou.

Fa'ai'uga

E ui lava o le a taumafai tagata tauva e faʻasalalau le manatu e le manaʻomia le siitia atu i se fausaga 64-bit, ua uma ona e iloa o lenei mea ua naʻo se manatu le malamalama. E moni o le fesuia'i i le 64-bit e aunoa ma le fetuuna'i o lau gagana po'o lau talosaga e leai se uiga - e fa'agesegese ai le faiga atoa. Ae o le A7 fou o loʻo faʻaaogaina se ARM64 faʻaonaponei ma se seti faʻatonuga fou, ma ua faʻalavelaveina e Apple le faʻafouina o le gagana Objective-C atoa ma faʻaogaina le gafatia fou - o le mea lea na folafola ai le saoasaoa.

O iinei ua matou taʻua ai le tele o mafuaʻaga e mafua ai le 64-bit architecture o le laasaga saʻo i luma. O se isi suiga "i lalo o le pulou", faʻafetai lea o le a taumafai Apple e nofo i luma e le gata i le mamanu, faʻaoga faʻaoga ma le tamaoaiga faʻanatura, ae faʻapitoa i tekinolosi faʻaonaponei i luga o le maketi.

Punavai: Mikeash.com
.