Close ad

Mike Fraxinus dicata in eius blog practica consectaria mutandi ad 64-bit architectura in iphone 5S. Hic articulus de inventionibus trahit.

Causa huius textus maxime ob magnam vim misinformationum divulgatur circa quid novi iPhone 5s cum 64 frenum ARM processor re vera pro usoribus et mercatu significat. Hic conabimur obiectivam informationem de effectu, capacitatibus et effectibus huius transitus pro tincidunt adducere.

"64 bis";

Duae sunt partes processus quem titulus "X-bit" referre potest - latitudo registrorum integri et latitudo indicum. Fortunate in recentissimis processoribus hae latitudinis eadem sunt, sic in casu A7 hoc modo 64-bit perscripta integris et 64-bit indicibus.

Attamen aeque magni momenti est notare quid non significat "64bit"; RAM corporalis oratio magnitudine. Numerus frenorum cum RAM communicandi (sic moles RAM machinae alere possunt) ad numerum CPU frenorum non refertur. ARM processores alicubi habent inter 26- et 40 frenum inscriptionum et mutari possunt independenter a ceteris systematis.

  • Data bus magnitudine. Moles notitiarum ab RAM vel quiddam memoriae acceptae ab hoc factore similiter est independentes. Instructiones singulae processus varias notitiarum quantitates petere possunt, sed vel mittuntur in chunkis vel plusquam ex memoria requirunt. Quantitas notitiarum dependet. IPhone 5 notitias iam accipit a memoria in quanta 64-bit (et habet 32-bit processus), et nos ad 192 frenos incidere possumus.
  • Quidquid ad fluctuetur. Magnitudo talium tabularum (FPU) denuo independentes sunt ab operationibus processus internis. ARM utens 64 frenum FPU cum ante ARM64 (64 frenum ARM processus).

Commoda communia et incommoda

Si architecturae 32bis et 64bis aliter identicae comparentur, eae fere non sunt diversae. Haec una est e causis confusionis generalis publici quaerentis causam cur Apple ad 64bit in machinis mobilibus etiam moveatur. Nihilominus, omnia ex certis parametris A7 (ARM64) processus oriuntur et quomodo Apple eo utitur, non solum ex eo quod processus architecturae 64 frenum habet.

Sed si adhuc inter has duas architecturas differentias spectemus, plures differentias inveniemus. Patet unum quod 64 frenum integri registri plus 64-bit integros efficacius tractare possunt. Etiam ante, cum eis in 32-bit processoribus operari potuit, sed hoc plerumque significavit eos dividere in minutas 32-bit partes, quae tardius calculos effecit. Ita processus 64 frenum generaliter computare potest cum 64-bit generibus sicut velocius quam cum 32-bit. Hoc significat applicationes quae plerumque 64-bit genera utuntur, multo velocius in processus 64-bit percurrere possunt.

Etsi 64bit summam RAM non afficit, qua processus uti potest, tamen faciliorem reddere potest cum magnis chunkis RAM in uno programmate. Unaquaevis programma currit in 32-bit processus processus tantum circiter 4 GB spatii inscriptionis habet. Consideratis quod ratio operativa et normae bibliothecae aliquid capiant, hoc progressio relinquit cum alicubi inter 1-3 GB ad usum applicationis. Tamen, si ratio 32 frenum plus quam 4 GB ipsius RAM habet, eo memoria aliquantulum magis implicata est. Concurrendum est ad systema operantem cogendum ad hos majores memoriae programma (memoriae virtualizationis describendas), vel propositum in plures processus scindere possumus (ubi uterque processus iterum theoretice 4GB memoriae promptus ad directam compellationem habet).

Sed hae "hackes" tam difficiles sunt ac lentae sunt ut minima applicationes illis utantur. In praxi, in 32-bit processor, unaquaeque programma tantum suo 1-3 GB memoriae utetur, et RAM magis promptus adhiberi potest ad plures programmata simul currere vel hac memoria uti quiddam (caching). Hi usus practici sunt, sed programmata quaelibet velimus ut faciliter possint usui rerum memoriae maioribus quam 4GB.

Nunc ad frequentem (re vera perperam) affirmamus sine plus 4GB memoriae, architectura 64-bit inutile esse. Maius spatium electronicum utile est etiam in systemate minore memoriae. Documenta memoriae-praescripta sunt instrumentum habilem, ubi pars contentorum in logice coniungitur cum processu memoriae sine tota tabella quae in memoriam oneratur. Ita ratio potest, exempli gratia, paulatim processus magnae imagini multoties maior quam capacitas RAM. In ratio 32 frenum, tam amplae fasciculi non possunt esse certo memoriae-praeformatae, cum in 64 frenum ratio, est fragmen massae, propter spatium inscriptionis multo ampliorem.

Attamen maiora monstrarum magnitudo etiam unum magnum incommodum adfert: alioquin identicae programmae plus memoria indigent in processu 64-bit (haec maiora indicia alicubi reponenda sunt). Cum indicibus frequens pars programmatum sit, haec differentia latibulum onerare potest, quod vicissim universa ratio tardius currere facit. Ita in rerum prospectu videre possumus quod si modo processus architecturae ad 64 frenum mutavimus, revera totum systema retardaret. Haec igitur factor in aliis locis pluribus optimizations libranda est.

ARM64

A7, 64-bit processus qui novum iPhone 5s efficiens, non est iustus processus ARM processus latioribus inscriptus. ARM64 majores emendationes super vetustiorem continet, 32-bit litera.

Lacus A7 processus.

subcriptio

ARM64 bis tot habet tabulas integras quot 32-bit ARM (cave ne confundas numerum et latitudinem tabularum — de latitudine in sectione "64-bit" locuti sumus. Itaque ARM64 utrumque bis latius tabulas habet et bis totidem. descripta). ARM XXXII frenum ARM habet XVI tabulas integros: unum programma calculi (PC - continet numerum hodiernae instructionis), ACERVUS (monstratorem functionis in progressu), nexum mandare (monstratorem reditus post finem functionis) reliquaque 32 usui sunt. Attamen ARM16 habet 13 ​​tabulas integras, incluso uno actis mandare, nexum actis mandare, typum indicis (similis saxeo monstratori), et in posterum reservatum. Haec nobis folia cum 64 registris ad usum applicationis, plusquam duplum 32-bit ARM. Eodem tempore ARM28 duplicavit numerum fluitantis numeri (FPU) registri ab 32 ad 64 16 bis descripta.

Sed cur numerus tabulatorum tantus maximus? Memoria plerumque tardior est quam CPU calculis ac lectionibus/scriptorum diutissime capere potest. Hoc processus ieiunium facere debet habere memoriam exspectandi et celeritatem naturalem modum systematis attingere volumus. Processores hanc difficultatis difficultatem in cratium quiddam abscondere conantur, sed etiam velocissimus (L1) adhuc tardior est quam ratio processus processus. Nihilominus scripti sunt cellae memoriae in processu directo et eorum lectio / scriptura satis celeriter processu non retardet. Numerus registrorum fere significat quantitatem celerrimae memoriae pro calculis processus, quae celeritatem totius systematis valde afficit.

Eodem tempore haec celeritas optimizationem adiuvandi a compilator eget, ut lingua his commentariis uti possit et non omnia in studio generali (tarda) memoriae reponere.

Instructio

ARM64 etiam maiores mutationes affert ad instructionem statutam. Instructio copia operationum atomicarum est quam processus conficere potest (eg "ADD register1 actis mandare" numeros in duobus registris addit). Munera singulis linguis praesto his instructionibus componuntur. Plures functiones multipliciores instructiones plures exercere debent, quo tardius possunt.

Novae in ARM64 sunt instructiones de encryptione AES, functiones SHA-1 et SHA 256. Itaque pro implicatione implicata, lingua tantum hanc disciplinam vocabit - quae ingentem celeritatem ad talium officiorum supputationem afferet et in applicationibus securitatem in votis additis. E.g. novus Tactus ID his instructionibus etiam utitur in encryption, permittens verae celeritatis et securitatis (in theoria oppugnator debet ipsum processus mutare ad accessum datae - impractical ut minimam magnitudinem minimam datam dicam).

Convenientiam cum 32bit

Praestat commemorare A7 plene currere posse in 32 frenum modo sine emulationis necessitate. Significat novas iPhone 5s applicationes ad 32-bit ARM sine ullo retardatione confectas currere posse. Nihilominus, tunc novis ARM64 functionibus uti non potest, semper operae pretium est peculiarem iustam aedificandi rationem A7 facere, quae multo velocius currere debet.

Runtime mutationes

Runtime est codex qui munera addit linguae programmationis, qua uti potest dum application currit, donec post translationem. Cum Lacus applicationis compatibilitas servare non indiget (quod 64-bit binarius in 32-bit) praestare potuit ut pauca plura meliora linguae obiectiva-C efficere possint.

Una earum est quae dicta tagged regula (notatum indicator). Communiter objecta et monstra illis objectis in singulis memoriae partibus recondita sunt. Nihilominus novae regulae rationes permittunt classes cum parvis notitiae ut res directe in monstratore congregentur. Hic gradus excludit necessitatem directe ad obiectum memoriae collocandum, sicut monstratorem creare et obiectum intra ipsum. Indicatores Tagged solum in architectura 64-bit sustentantur, etiam ob hoc quod in 32-bitris notore spatium satis non est ad notitias satis utiles reponendas. Ergo iOS, dissimilis OS X, plumam nondum sustinebat. Sed, superveniente ARM64, hoc mutatur, et iOS comprehendit etiam hac in re cum OS X.

Etsi indicibus 64 calcaria longa sunt, in ARM64 tantum 33 frena pro inscriptione regula propria adhibentur. Et si cetera monstrantium frena certo detegere possumus, hoc spatio uti possumus ad notitias additas reponendas, sicut in indicibus memoratis tagged. Ratione, haec est una maximarum mutationum in historia obiectiva-C, licet non sit pluma venale - ita plerique utentes nescient quomodo Apple obiectivum-C moveat deinceps.

Quod ad utiles notitias quae in reliquo spatio talis tagged indicis condi possunt, obiectiva-C, exempli gratia, nunc utendo eo ad condo sic dicta. reference comitem (number of references). Antea, relatio comitis alio loco in memoria reposita fuit, in mensa Nullam parata ei, sed hoc totum systema retardare potuit in casu permulti vocati alloc/dealloc/reten/dimissionem. Mensa ob stamina securitatis clausa esse debebat, ideo relatio computatorum duorum objectorum in duobus filis simul mutari non potuit. Sed hic valor nuper insertus ceteris qui dicuntur est indicibus. Alia haec inconspicua, sed ingens utilitas et acceleratio in futurum. Sed hoc numquam fieri potuit in architectura 32 frenum.

Informationes de obiectis consociatae, an objectum debiliter referatur, an necesse sit destructorem pro obiecto generare, etc., recens etiam inseritur residuis indicibus obiectorum, ob hanc informationem obiectiva-C. runtime fundamentaliter accelerare potest, quod in uniuscuiusque applicationis velocitate resultat. Ex probatione, hoc significat circiter 40-50% velocitatem omnium memoriae administrationis vocat. Modo mutando ad 64-bit indicium et hoc novo spatio utens.

conclusioni

Etsi competitores opinionem diffundere conantur architecturae moventis ad 64 frenum, necesse est, iam scies hanc opinionem valde imperitam esse. Verum est quod commutatio ad 64 frenum sine accommodando linguam tuam vel applicationes nihil realiter significat - etiam ratio totius retardat. Sed novus A7 moderno ARM64 utitur cum nova institutione instructus, et Apple negotium accepit ut totam linguam obiectivam-C modernizet et novis facultatibus uteretur - hinc celeritatis promissae.

Hic multae rationes memoravimus cur architecturae 64-bit gradus ad dextrum gradum progrediatur. Alia est revolutionis "sub cucullo", propter quam Apple in fronte manere conabitur non solum consilio, usuario ac oecosystematis opulento, sed maxime cum recentioribus technologiae in foro.

fons: mikeash.com
.