Cau hysbyseb

Mike Ash ymroddedig ar ei blog goblygiadau ymarferol newid i bensaernïaeth 64-bit yn yr iPhone 5S. Mae'r erthygl hon yn tynnu ar ei ganfyddiadau.

Mae'r rheswm dros y testun hwn yn bennaf oherwydd y swm mawr o wybodaeth anghywir sy'n cael ei lledaenu am yr hyn y mae'r iPhone 5s newydd gyda phrosesydd ARM 64-bit yn ei olygu mewn gwirionedd i ddefnyddwyr a'r farchnad. Yma byddwn yn ceisio dod â gwybodaeth wrthrychol am berfformiad, galluoedd a goblygiadau'r trawsnewid hwn i ddatblygwyr.

"64 did"

Mae dwy ran i brosesydd y gall y label "X-bit" gyfeirio atynt - lled y cofrestrau cyfanrif a lled yr awgrymiadau. Yn ffodus, mae'r lledau hyn yr un peth ar y rhan fwyaf o broseswyr modern, felly yn achos yr A7 mae hyn yn golygu cofrestrau cyfanrif 64-did ac awgrymiadau 64-did.

Fodd bynnag, mae'r un mor bwysig tynnu sylw at yr hyn NAD yw "64bit" yn ei olygu: Maint cyfeiriad corfforol RAM. Nid yw nifer y darnau i gyfathrebu â RAM (felly faint o RAM y gall dyfais ei gynnal) yn gysylltiedig â nifer y darnau CPU. Mae gan broseswyr ARM unrhyw le rhwng cyfeiriadau 26- a 40-bit a gellir eu newid yn annibynnol ar weddill y system.

  • Maint bws data. Mae faint o ddata a dderbynnir o RAM neu gof byffer yr un mor annibynnol ar y ffactor hwn. Gall cyfarwyddiadau prosesydd unigol ofyn am wahanol symiau o ddata, ond maent naill ai'n cael eu hanfon mewn talpiau neu'n cael eu derbyn yn fwy na'r hyn sydd ei angen o'r cof. Mae'n dibynnu ar faint y cwantwm data. Mae'r iPhone 5 eisoes yn derbyn data o'r cof mewn cwanta 64-did (ac mae ganddo brosesydd 32-did), a gallwn ddod ar draws meintiau hyd at 192 did.
  • Unrhyw beth sy'n ymwneud â phwynt arnawf. Mae maint cofrestrau o'r fath (FPU) eto'n annibynnol ar waith mewnol y prosesydd. Mae ARM wedi bod yn defnyddio FPU 64-did ers cyn ARM64 (prosesydd ARM 64-bit).

Manteision ac anfanteision cyffredinol

Os byddwn yn cymharu pensaernïaeth 32bit a 64bit sydd fel arall yn union yr un fath, yn gyffredinol nid ydynt mor wahanol â hynny. Dyma un o'r rhesymau dros ddryswch cyffredinol y cyhoedd sy'n chwilio am reswm pam mae Apple yn symud i 64bit mewn dyfeisiau symudol hefyd. Fodd bynnag, mae'r cyfan yn dod o baramedrau penodol y prosesydd A7 (ARM64) a sut mae Apple yn ei ddefnyddio, nid yn unig o'r ffaith bod gan y prosesydd bensaernïaeth 64-bit.

Fodd bynnag, os ydym yn dal i edrych ar y gwahaniaethau rhwng y ddwy bensaernïaeth hyn, byddwn yn dod o hyd i sawl gwahaniaeth. Yr un amlwg yw y gall cofrestrau cyfanrif 64-did drin cyfanrifau 64-did yn fwy effeithlon. Hyd yn oed o'r blaen, roedd yn bosibl gweithio gyda nhw ar broseswyr 32-did, ond roedd hyn fel arfer yn golygu eu rhannu'n ddarnau hir 32-did, a achosodd gyfrifiadau arafach. Felly yn gyffredinol gall prosesydd 64-did gyfrifo gyda mathau 64-did yr un mor gyflym â rhai 32-did. Mae hyn yn golygu y gall cymwysiadau sy'n defnyddio mathau 64-did yn gyffredinol redeg yn gynt o lawer ar brosesydd 64-did.

Er nad yw 64bit yn effeithio ar gyfanswm yr RAM y gall y prosesydd ei ddefnyddio, gall ei gwneud hi'n haws gweithio gyda thapiau mawr o RAM mewn un rhaglen. Dim ond tua 32 GB o ofod cyfeiriad sydd gan unrhyw raglen sengl sy'n rhedeg ar brosesydd 4-bit. Gan gymryd i ystyriaeth bod y system weithredu a llyfrgelloedd safonol yn cymryd rhywbeth, mae hyn yn gadael y rhaglen â rhywle rhwng 1-3 GB ar gyfer defnydd cymhwysiad. Fodd bynnag, os oes gan system 32-did fwy na 4 GB o RAM, mae defnyddio'r cof hwnnw ychydig yn fwy cymhleth. Mae'n rhaid i ni droi at orfodi'r system weithredu i fapio'r talpiau mwy hyn o gof ar gyfer ein rhaglen (rhitholi cof), neu gallwn rannu'r rhaglen yn brosesau lluosog (lle mae gan bob proses eto yn ddamcaniaethol 4GB o gof ar gael i'w gyfeirio'n uniongyrchol).

Fodd bynnag, mae'r "haciau" hyn mor anodd ac araf nes bod lleiafswm o gymwysiadau yn eu defnyddio. Yn ymarferol, ar brosesydd 32-bit, bydd pob rhaglen ond yn defnyddio ei 1-3 GB o gof, a gellir defnyddio mwy o RAM sydd ar gael i redeg rhaglenni lluosog ar yr un pryd neu ddefnyddio'r cof hwn fel byffer (caching). Mae'r defnyddiau hyn yn ymarferol, ond hoffem i unrhyw raglen allu defnyddio talpiau o gof sy'n fwy na 4GB yn hawdd.

Nawr rydym yn dod at yr honiad aml (gwirioneddol anghywir) bod pensaernïaeth 4-bit yn ddiwerth heb fwy na 64GB o gof. Mae gofod cyfeiriad mwy yn ddefnyddiol hyd yn oed ar system â llai o gof. Mae ffeiliau wedi'u mapio â chof yn arf defnyddiol lle mae rhan o gynnwys y ffeil wedi'i gysylltu'n rhesymegol â chof y broses heb orfod llwytho'r ffeil gyfan i'r cof. Felly, gall y system, er enghraifft, brosesu ffeiliau mawr yn raddol lawer gwaith yn fwy na chynhwysedd RAM. Ar system 32-did, ni all ffeiliau mor fawr gael eu mapio cof yn ddibynadwy, ond ar system 64-bit, mae'n ddarn o gacen, diolch i'r gofod cyfeiriad llawer mwy.

Fodd bynnag, mae maint mwy yr awgrymiadau hefyd yn dod ag un anfantais fawr: fel arall mae angen mwy o gof ar raglenni union yr un fath ar brosesydd 64-bit (mae'n rhaid storio'r awgrymiadau mwy hyn yn rhywle). Gan fod awgrymiadau yn rhan aml o raglenni, gall y gwahaniaeth hwn fod yn faich ar y storfa, sydd yn ei dro yn achosi i'r system gyfan redeg yn arafach. Felly mewn persbectif, gallwn weld, pe baem yn newid pensaernïaeth y prosesydd i 64-bit, byddai'n arafu'r system gyfan mewn gwirionedd. Felly mae'n rhaid i'r ffactor hwn gael ei gydbwyso gan fwy o optimeiddio mewn mannau eraill.

ARM64

Nid prosesydd ARM rheolaidd gyda chofrestrau ehangach yn unig yw'r A7, y prosesydd 64-bit sy'n pweru'r iPhone 5s newydd. Mae ARM64 yn cynnwys gwelliannau mawr dros y fersiwn hŷn, 32-bit.

Prosesydd Apple A7.

Y Gofrestrfa

Mae ARM64 yn dal dwywaith cymaint o gofrestrau cyfanrif ag ARM 32-did (byddwch yn ofalus i beidio â drysu rhwng nifer a lled y cofrestrau - buom yn siarad am led yn yr adran "64-bit". Felly mae gan ARM64 gofrestrau dwywaith mor eang a dwywaith cymaint cofrestri). Mae gan yr ARM 32-did 16 cofrestr cyfanrif: un rhifydd rhaglen (PC - yn cynnwys rhif y cyfarwyddyd cyfredol), pwyntydd pentwr (pwyntydd i swyddogaeth ar y gweill), cofrestr cyswllt (pwyntydd i'r dychweliad ar ôl y diwedd o'r swyddogaeth), ac mae'r 13 sy'n weddill ar gyfer defnydd cymhwysiad. Fodd bynnag, mae gan yr ARM64 32 o gofrestrau cyfanrif, gan gynnwys un gofrestr sero, cofrestr cyswllt, pwyntydd ffrâm (yn debyg i bwyntydd pentwr), ac un wedi'i gadw ar gyfer y dyfodol. Mae hyn yn ein gadael gyda 28 o gofrestrau ar gyfer defnydd ceisiadau, mwy na dwbl yr ARM 32-did. Ar yr un pryd, dyblodd yr ARM64 nifer y cofrestrau rhif pwynt arnawf (FPU) o 16 i 32 o gofrestrau 128-did.

Ond pam fod nifer y cofrestrau mor bwysig? Yn gyffredinol, mae'r cof yn arafach na chyfrifiadau CPU a gall darllen/ysgrifennu gymryd amser hir iawn. Byddai hyn yn gwneud i'r prosesydd cyflym orfod aros am y cof a byddem yn cyrraedd terfyn cyflymder naturiol y system. Mae proseswyr yn ceisio cuddio'r anfantais hon gyda haenau o glustogau, ond mae hyd yn oed yr un cyflymaf (L1) yn dal i fod yn arafach na chyfrifiad y prosesydd. Fodd bynnag, mae cofrestrau yn gelloedd cof yn uniongyrchol yn y prosesydd ac mae eu darllen / ysgrifennu yn ddigon cyflym i beidio ag arafu'r prosesydd. Mae nifer y cofrestrau yn ymarferol yn golygu faint o gof cyflymaf ar gyfer cyfrifiadau'r prosesydd, sy'n effeithio'n fawr ar gyflymder y system gyfan.

Ar yr un pryd, mae angen cefnogaeth optimeiddio da ar y cyflymder hwn gan y casglwr, fel bod yr iaith yn gallu defnyddio'r cofrestrau hyn ac nid oes rhaid iddo storio popeth yn y cof cymhwysiad cyffredinol (yr araf).

Set cyfarwyddiadau

Mae ARM64 hefyd yn dod â newidiadau mawr i'r set gyfarwyddiadau. Set o weithrediadau atomig y gall prosesydd eu cyflawni yw set gyfarwyddiadau (ee mae 'ADD register1 register2' yn ychwanegu'r rhifau mewn dwy gofrestr). Mae'r swyddogaethau sydd ar gael i ieithoedd unigol yn cynnwys y cyfarwyddiadau hyn. Rhaid i swyddogaethau mwy cymhleth weithredu mwy o gyfarwyddiadau, fel y gallant fod yn arafach.

Yn newydd yn ARM64 mae cyfarwyddiadau ar gyfer amgryptio AES, swyddogaethau stwnsh SHA-1 a SHA-256. Felly, yn lle gweithrediad cymhleth, dim ond yr iaith fydd yn galw'r cyfarwyddyd hwn - a fydd yn dod â chyflymder enfawr i gyfrifiad swyddogaethau o'r fath a gobeithio y bydd diogelwch ychwanegol mewn cymwysiadau. E.e. mae'r Touch ID newydd hefyd yn defnyddio'r cyfarwyddiadau hyn mewn amgryptio, gan ganiatáu ar gyfer cyflymder a diogelwch gwirioneddol (mewn theori, byddai'n rhaid i ymosodwr addasu'r prosesydd ei hun i gael mynediad i'r data - anymarferol a dweud y lleiaf o ystyried ei faint bach).

Cydnawsedd â 32bit

Mae'n bwysig sôn y gall yr A7 redeg yn llawn yn y modd 32-did heb fod angen efelychu. Mae'n golygu y gall yr iPhone 5s newydd redeg cymwysiadau a luniwyd ar ARM 32-bit heb unrhyw arafu. Fodd bynnag, yna ni all ddefnyddio'r swyddogaethau ARM64 newydd, felly mae bob amser yn werth gwneud adeilad arbennig ar gyfer yr A7 yn unig, a ddylai redeg yn llawer cyflymach.

Newidiadau amser rhedeg

Runtime yw'r cod sy'n ychwanegu swyddogaethau at yr iaith raglennu, y mae'n gallu ei ddefnyddio tra bod y rhaglen yn rhedeg, tan ar ôl cyfieithu. Gan nad oes angen i Apple gynnal cydnawsedd cymhwysiad (bod deuaidd 64-bit yn rhedeg ar 32-bit), gallent fforddio gwneud ychydig mwy o welliannau i'r iaith Amcan-C.

Un ohonynt yw'r hyn a elwir pwyntydd wedi'i dagio (dangosydd wedi'i farcio). Fel arfer, mae gwrthrychau ac awgrymiadau i'r gwrthrychau hynny yn cael eu storio mewn rhannau ar wahân o'r cof. Fodd bynnag, mae mathau newydd o bwyntwyr yn caniatáu i ddosbarthiadau heb lawer o ddata storio gwrthrychau yn uniongyrchol yn y pwyntydd. Mae'r cam hwn yn dileu'r angen i ddyrannu cof yn uniongyrchol ar gyfer y gwrthrych, dim ond creu pwyntydd a'r gwrthrych y tu mewn iddo. Dim ond mewn pensaernïaeth 64-did y cefnogir awgrymiadau wedi'u tagio hefyd oherwydd nad oes digon o le bellach mewn pwyntydd 32-did i storio digon o ddata defnyddiol. Felly, nid oedd iOS, yn wahanol i OS X, yn cefnogi'r nodwedd hon eto. Fodd bynnag, gyda dyfodiad ARM64, mae hyn yn newid, ac mae iOS wedi dal i fyny ag OS X yn hyn o beth hefyd.

Er bod yr awgrymiadau yn 64 did o hyd, ar yr ARM64 dim ond 33 did a ddefnyddir ar gyfer cyfeiriad y pwyntydd ei hun. Ac os gallwn ddad-fagio gweddill y darnau pwyntydd yn ddibynadwy, gallwn ddefnyddio'r gofod hwn i storio data ychwanegol - fel yn achos yr awgrymiadau wedi'u tagio a grybwyllwyd. Yn gysyniadol, dyma un o'r newidiadau mwyaf yn hanes Amcan-C, er nad yw'n nodwedd werthadwy - felly ni fydd y rhan fwyaf o ddefnyddwyr yn gwybod sut mae Apple yn symud Amcan-C ymlaen.

O ran y data defnyddiol y gellir ei storio yn y gofod sy'n weddill o bwyntydd wedi'i dagio, mae Amcan-C, er enghraifft, bellach yn ei ddefnyddio i storio'r hyn a elwir yn cyfrif cyfeirnod (nifer y cyfeiriadau). Yn flaenorol, roedd y cyfrif cyfeirnod yn cael ei storio mewn man gwahanol yn y cof, mewn tabl stwnsh a baratowyd ar ei gyfer, ond gallai hyn arafu'r system gyfan yn achos nifer fawr o alwadau aloc/dealloc/cadw/rhyddhau. Roedd yn rhaid cloi'r bwrdd oherwydd diogelwch edau, felly ni ellid newid cyfrif cyfeirnod dau wrthrych mewn dwy edafedd ar yr un pryd. Fodd bynnag, mae'r gwerth hwn newydd ei fewnosod i weddill yr hyn a elwir isa dangosyddion. Mae hon yn fantais arall anamlwg, ond enfawr a chyflymiad yn y dyfodol. Fodd bynnag, ni ellid byth gyflawni hyn mewn pensaernïaeth 32-bit.

Mae gwybodaeth am wrthrychau cysylltiedig, p'un a yw'r gwrthrych wedi'i gyfeirio'n wan, p'un a oes angen cynhyrchu dinistrydd ar gyfer y gwrthrych, ac ati, hefyd newydd ei fewnosod yn y lle sy'n weddill o awgrymiadau i'r gwrthrychau. Diolch i'r wybodaeth hon, mae'r Amcan-C mae amser rhedeg yn gallu cyflymu'r amser rhedeg yn sylfaenol, a adlewyrchir yng nghyflymder pob cais. O brofi, mae hyn yn golygu cyflymu 40-50% o'r holl alwadau rheoli cof. Dim ond trwy newid i awgrymiadau 64-bit a defnyddio'r gofod newydd hwn.

Casgliad

Er y bydd cystadleuwyr yn ceisio lledaenu'r syniad bod symud i bensaernïaeth 64-bit yn ddiangen, byddwch eisoes yn gwybod mai dim ond barn anwybodus iawn yw hon. Mae'n wir nad yw newid i 64-bit heb addasu eich iaith neu gymwysiadau yn golygu dim mewn gwirionedd - mae hyd yn oed yn arafu'r system gyfan. Ond mae'r A7 newydd yn defnyddio ARM64 modern gyda set gyfarwyddiadau newydd, ac mae Apple wedi cymryd y drafferth i foderneiddio'r iaith Amcan-C gyfan a manteisio ar y galluoedd newydd - a dyna pam y cyflymder a addawyd.

Yma rydym wedi crybwyll nifer fawr o resymau pam mai pensaernïaeth 64-bit yw'r cam cywir ymlaen. Mae'n chwyldro arall "o dan y cwfl", diolch y bydd Apple yn ceisio aros ar flaen y gad nid yn unig gyda dyluniad, rhyngwyneb defnyddiwr ac ecosystem gyfoethog, ond yn bennaf gyda'r technolegau mwyaf modern ar y farchnad.

Ffynhonnell: mikeash.com
.