Mike Ash dedikuar në blogun e tij implikimet praktike të kalimit në arkitekturën 64-bit në iPhone 5S. Ky artikull bazohet në gjetjet e tij.
Arsyeja e këtij teksti është kryesisht për shkak të sasisë së madhe të dezinformatave që po përhapen se çfarë do të thotë në të vërtetë iPhone 5s i ri me një procesor ARM 64-bit për përdoruesit dhe tregun. Këtu do të përpiqemi të sjellim informacion objektiv në lidhje me performancën, aftësitë dhe implikimet e këtij tranzicioni për zhvilluesit.
"64 bit"
Ekzistojnë dy pjesë të një procesori të cilave mund t'u referohet etiketa "X-bit" - gjerësia e regjistrave të numrave të plotë dhe gjerësia e treguesve. Për fat të mirë, në shumicën e procesorëve modernë këto gjerësi janë të njëjta, kështu që në rastin e A7 kjo do të thotë regjistrat e numrave të plotë 64-bit dhe treguesit 64-bit.
Sidoqoftë, është po aq e rëndësishme të theksohet se çfarë NUK do të thotë "64bit": Madhësia e adresës fizike të RAM-it. Numri i biteve për të komunikuar me RAM-in (pra sasia e RAM-it që një pajisje mund të mbështesë) nuk lidhet me numrin e biteve të CPU-së. Procesorët ARM kanë adresa midis 26 dhe 40-bit dhe mund të ndryshohen pavarësisht nga pjesa tjetër e sistemit.
- Madhësia e autobusit të të dhënave. Sasia e të dhënave të marra nga RAM ose memoria buferike është në mënyrë të ngjashme e pavarur nga ky faktor. Instruksionet individuale të procesorit mund të kërkojnë sasi të ndryshme të dhënash, por ato ose dërgohen në copa ose merren më shumë se ç'duhet nga memoria. Varet nga madhësia e kuantit të të dhënave. iPhone 5 tashmë merr të dhëna nga memoria në kuantë 64-bit (dhe ka një procesor 32-bit), dhe mund të hasim në madhësi deri në 192 bit.
- Çdo gjë që lidhet me pikën lundruese. Madhësia e regjistrave të tillë (FPU) është përsëri e pavarur nga funksionimi i brendshëm i procesorit. ARM ka përdorur FPU 64-bit që përpara ARM64 (procesor ARM 64-bit).
Përparësitë dhe disavantazhet e përgjithshme
Nëse krahasojmë arkitekturat identike 32 bit dhe 64 bit, ato në përgjithësi nuk janë aq të ndryshme. Kjo është një nga arsyet e konfuzionit të përgjithshëm të publikut që kërkon një arsye pse Apple po kalon në 64bit edhe në pajisjet mobile. Megjithatë, gjithçka vjen nga parametrat specifikë të procesorit A7 (ARM64) dhe mënyra se si Apple e përdor atë, jo vetëm nga fakti që procesori ka një arkitekturë 64-bit.
Sidoqoftë, nëse ende shikojmë ndryshimet midis këtyre dy arkitekturave, do të gjejmë disa dallime. E dukshme është se regjistrat e numrave të plotë 64-bit mund të trajtojnë numrat e plotë 64-bit në mënyrë më efikase. Edhe më parë ishte e mundur të punohej me ta në procesorë 32-bitësh, por kjo zakonisht nënkuptonte ndarjen e tyre në copa të gjata 32-bit, gjë që shkaktonte llogaritje më të ngadalta. Pra, një procesor 64-bit në përgjithësi mund të llogaritë me llojet 64-bit po aq shpejt sa me ato 32-bit. Kjo do të thotë që aplikacionet që zakonisht përdorin lloje 64-bit mund të funksionojnë shumë më shpejt në një procesor 64-bit.
Megjithëse 64 bit nuk ndikon në sasinë totale të RAM-it që mund të përdorë procesori, mund ta bëjë më të lehtë punën me pjesë të mëdha të RAM-it në një program. Çdo program i vetëm që funksionon në një procesor 32-bit ka vetëm rreth 4 GB hapësirë adresash. Duke marrë parasysh që sistemi operativ dhe bibliotekat standarde marrin diçka, kjo i lë programit diku midis 1-3 GB për përdorim aplikacioni. Megjithatë, nëse një sistem 32-bitësh ka më shumë se 4 GB RAM, përdorimi i kësaj memorie është pak më i komplikuar. Ne duhet t'i drejtohemi detyrimit të sistemit operativ që të hartojë këto pjesë më të mëdha të memories për programin tonë (virtualizimi i memories), ose mund ta ndajmë programin në procese të shumta (ku secili proces përsëri teorikisht ka 4 GB memorie të disponueshme për adresim të drejtpërdrejtë).
Megjithatë, këto "hake" janë aq të vështira dhe të ngadalta sa që një minimum aplikacionesh i përdorin ato. Në praktikë, në një procesor 32-bit, çdo program do të përdorë vetëm 1-3 GB memorie, dhe RAM më i disponueshëm mund të përdoret për të ekzekutuar shumë programe në të njëjtën kohë ose për të përdorur këtë memorie si një buffer (caching). Këto përdorime janë praktike, por ne do të dëshironim që çdo program të mund të përdorte lehtësisht pjesë të memories më të mëdha se 4 GB.
Tani kemi ardhur te pretendimi i shpeshtë (në fakt i pasaktë) se pa më shumë se 4 GB memorie, një arkitekturë 64-bit është e padobishme. Një hapësirë më e madhe adresash është e dobishme edhe në një sistem me më pak memorie. Skedarët e hartuar me memorie janë një mjet i dobishëm ku një pjesë e përmbajtjes së skedarit lidhet logjikisht me memorien e procesit pa pasur nevojë të ngarkohet i gjithë skedari në memorie. Kështu, sistemi, për shembull, mund të përpunojë gradualisht skedarë të mëdhenj shumë herë më të mëdhenj se kapaciteti RAM. Në një sistem 32-bitësh, skedarë të tillë të mëdhenj nuk mund të hartohen me memorie të besueshme, ndërsa në një sistem 64-bitësh, ai është një copë tortë, falë hapësirës shumë më të madhe të adresave.
Megjithatë, madhësia më e madhe e treguesve sjell edhe një disavantazh të madh: përndryshe programet identike kanë nevojë për më shumë memorie në një procesor 64-bitësh (këta tregues më të mëdhenj duhet të ruhen diku). Meqenëse treguesit janë pjesë e shpeshtë e programeve, ky ndryshim mund të rëndojë cache-in, i cili nga ana tjetër bën që i gjithë sistemi të funksionojë më ngadalë. Pra, në perspektivë, ne mund të shohim se nëse thjesht ndryshonim arkitekturën e procesorit në 64-bit, në fakt do të ngadalësonte të gjithë sistemin. Pra, ky faktor duhet të balancohet nga më shumë optimizime në vende të tjera.
ARM64
A7, procesori 64-bit që fuqizon iPhone 5s të ri, nuk është thjesht një procesor i rregullt ARM me regjistra më të gjerë. ARM64 përmban përmirësime të mëdha në krahasim me versionin më të vjetër 32-bit.
regjistrimi
ARM64 mban dy herë më shumë regjistra të numrave të plotë se ARM 32-bit (kini kujdes që të mos ngatërroni numrin dhe gjerësinë e regjistrave - folëm për gjerësinë në seksionin "64-bit". Pra, ARM64 ka regjistra dy herë më të gjerë dhe dy herë më shumë regjistrat). ARM 32-bitësh ka 16 regjistra numrash të plotë: një numërues programi (PC - përmban numrin e instruksionit aktual), një tregues stack (një tregues për një funksion në progres), një regjistër lidhjeje (një tregues për kthimin pas përfundimit të funksionit), dhe 13 të tjerat janë për përdorim në aplikacion. Megjithatë, ARM64 ka 32 regjistra numrash të plotë, duke përfshirë një regjistër zero, një regjistër lidhjeje, një tregues kornizë (i ngjashëm me një tregues të stivës) dhe një të rezervuar për të ardhmen. Kjo na lë me 28 regjistra për përdorim aplikacioni, më shumë se dyfishi i ARM 32-bit. Në të njëjtën kohë, ARM64 dyfishoi numrin e regjistrave të numrave me pikë lundruese (FPU) nga 16 në 32 regjistra 128-bitësh.
Por pse është kaq i rëndësishëm numri i regjistrave? Kujtesa në përgjithësi është më e ngadaltë se llogaritjet e CPU-së dhe leximi/shkrimi mund të marrë shumë kohë. Kjo do të bënte që procesori i shpejtë të duhej të vazhdonte të presë për kujtesën dhe ne do të arrinim kufirin natyror të shpejtësisë së sistemit. Procesorët përpiqen ta fshehin këtë pengesë me shtresa buferash, por edhe më i shpejti (L1) është akoma më i ngadalshëm se llogaritja e procesorit. Sidoqoftë, regjistrat janë qeliza memorie direkt në procesor dhe leximi/shkrimi i tyre është mjaft i shpejtë për të mos ngadalësuar procesorin. Numri i regjistrave praktikisht nënkupton sasinë e memories më të shpejtë për llogaritjet e procesorit, gjë që ndikon shumë në shpejtësinë e të gjithë sistemit.
Në të njëjtën kohë, kjo shpejtësi ka nevojë për mbështetje të mirë optimizimi nga përpiluesi, në mënyrë që gjuha të mund të përdorë këto regjistra dhe të mos ketë nevojë të ruajë gjithçka në memorien e përgjithshme të aplikacionit (të ngadaltë).
Komplet udhëzues
ARM64 gjithashtu sjell ndryshime të mëdha në grupin e udhëzimeve. Një grup instruksionesh është një grup operacionesh atomike që mund të kryejë një procesor (p.sh. 'ADD register1 register2' shton numrat në dy regjistra). Funksionet e disponueshme për gjuhët individuale përbëhen nga këto udhëzime. Funksionet më komplekse duhet të ekzekutojnë më shumë instruksione, në mënyrë që ato të jenë më të ngadalta.
Të reja në ARM64 janë udhëzimet për enkriptimin AES, funksionet hash SHA-1 dhe SHA-256. Pra, në vend të një zbatimi kompleks, vetëm gjuha do ta quajë këtë udhëzim - i cili do të sjellë një shpejtësi të madhe në llogaritjen e funksioneve të tilla dhe shpresojmë të shtojë sigurinë në aplikacione. P.sh. Touch ID-ja e re i përdor këto udhëzime gjithashtu në enkriptim, duke lejuar shpejtësinë dhe sigurinë reale (teorikisht, një sulmues duhet të modifikojë vetë procesorin për të hyrë në të dhënat - gjë që është jopraktike për të thënë të paktën duke pasur parasysh madhësinë e tij në miniaturë).
Pajtueshmëria me 32 bit
Është e rëndësishme të përmendet se A7 mund të funksionojë plotësisht në modalitetin 32-bit pa pasur nevojë për emulim. Do të thotë që iPhone 5s i ri mund të ekzekutojë aplikacione të përpiluara në ARM 32-bit pa ndonjë ngadalësim. Sidoqoftë, atëherë nuk mund të përfitojë nga funksionet e reja ARM64, kështu që ia vlen gjithmonë të bëni një ndërtim të veçantë vetëm për A7, i cili duhet të funksionojë shumë më shpejt.
Ndryshimet e kohës së funksionimit
Runtime është kodi që shton funksione në gjuhën e programimit, të cilat mund t'i përdorë gjatë ekzekutimit të aplikacionit, deri pas përkthimit. Meqenëse Apple nuk ka nevojë të ruajë përputhshmërinë e aplikacioneve (që një binar 64-bit funksionon në 32-bit), ata mund të përballojnë të bëjnë disa përmirësime të tjera në gjuhën Objective-C.
Njëri prej tyre është i ashtuquajturi etiketuar tregues (tregues i shënuar). Normalisht, objektet dhe treguesit për ato objekte ruhen në pjesë të veçanta të memories. Megjithatë, llojet e reja të treguesve i lejojnë klasat me pak të dhëna të ruajnë objektet drejtpërdrejt në tregues. Ky hap eliminon nevojën për të shpërndarë memorie drejtpërdrejt për objektin, thjesht krijoni një tregues dhe objektin brenda tij. Treguesit e etiketuar mbështeten vetëm në arkitekturën 64-bit, edhe për faktin se nuk ka më hapësirë të mjaftueshme në një tregues 32-bitësh për të ruajtur mjaftueshëm të dhëna të dobishme. Prandaj, iOS, ndryshe nga OS X, nuk e mbështeste ende këtë veçori. Megjithatë, me ardhjen e ARM64, kjo po ndryshon dhe iOS është kapur me OS X edhe në këtë drejtim.
Megjithëse treguesit janë 64 bit të gjatë, në ARM64 përdoren vetëm 33 bit për adresën e vetë treguesit. Dhe nëse jemi në gjendje të demaskojmë me besueshmëri pjesën tjetër të bitave të treguesit, mund ta përdorim këtë hapësirë për të ruajtur të dhëna shtesë - si në rastin e treguesve të përmendur të etiketuar. Konceptualisht, ky është një nga ndryshimet më të mëdha në historinë e Objective-C, megjithëse nuk është një veçori e tregtueshme - kështu që shumica e përdoruesve nuk do të dinë se si Apple po e çon përpara Objective-C.
Sa i përket të dhënave të dobishme që mund të ruhen në hapësirën e mbetur të një treguesi të tillë të etiketuar, Objective-C, për shembull, tani po e përdor atë për të ruajtur të ashtuquajturat numërimi i referencës (numri i referencave). Më parë, numërimi i referencës ruhej në një vend tjetër në memorie, në një tabelë hash të përgatitur për të, por kjo mund të ngadalësonte të gjithë sistemin në rastin e një numri të madh thirrjesh alloc/dealloc/retain/release. Tabela duhej të kyçej për shkak të sigurisë së fillit, kështu që numërimi i referencës së dy objekteve në dy fije nuk mund të ndryshohej në të njëjtën kohë. Megjithatë, kjo vlerë është futur rishtazi në pjesën tjetër të të ashtuquajturave isa treguesit. Ky është një tjetër avantazh dhe përshpejtim i padukshëm, por i madh në të ardhmen. Megjithatë, kjo nuk mund të arrihet kurrë në një arkitekturë 32-bit.
Informacioni në lidhje me objektet e lidhura, nëse objekti është referuar dobët, nëse është i nevojshëm për të gjeneruar një destruktor për objektin, etj., është futur gjithashtu rishtazi në vendin e mbetur të treguesve për objektet. Falë këtij informacioni, Objektivi-C Runtime është në gjendje të përshpejtojë rrënjësisht kohën e ekzekutimit, gjë që reflektohet në shpejtësinë e secilit aplikacion. Nga testimi, kjo do të thotë rreth 40-50% përshpejtim i të gjitha thirrjeve të menaxhimit të kujtesës. Thjesht duke kaluar te treguesit 64-bit dhe duke përdorur këtë hapësirë të re.
Zavër
Edhe pse konkurrentët do të përpiqen të përhapin idenë se kalimi në një arkitekturë 64-bitësh është i panevojshëm, tashmë do ta dini se ky është thjesht një opinion shumë i painformuar. Është e vërtetë që kalimi në 64-bit pa përshtatur gjuhën ose aplikacionet tuaja nuk do të thotë asgjë - madje ngadalëson të gjithë sistemin. Por A7 i ri përdor një ARM64 moderne me një grup të ri instruksionesh, dhe Apple ka marrë mundimin për të modernizuar të gjithë gjuhën Objective-C dhe për të përfituar nga aftësitë e reja - pra shpejtësia e premtuar.
Këtu kemi përmendur një numër të madh arsyesh pse një arkitekturë 64-bit është hapi i duhur përpara. Është një tjetër revolucion “nën kapuç”, falë të cilit Apple do të përpiqet të qëndrojë në ballë jo vetëm me dizajnin, ndërfaqen e përdoruesit dhe ekosistemin e pasur, por kryesisht me teknologjitë më moderne në treg.
Shumë njerëz të painformuar Android/Samsung duhet ta lexojnë këtë artikull dhe më pas të fshihen në qoshe.
Epo, duhet të na vijë keq për ta. Për vite me radhë ata justifikuan UX-në dhe UI-në tragjike të Android-it duke thënë se kanë OS-në më të avancuar teknologjikisht me veçori dhe tani zbuluan se janë përsëri vite prapa :)
Nëse një person nuk është dele dhe dëgjon reklama (dhe ai është i mirë në këtë), atëherë pas përvojës personale ai mund të formojë mendimin e tij :-).
Unë provoj pothuajse të gjithë konkurrencën dhe krijoj mendimin tim.
Për mua më duhet një celular i ri super me performancë të lartë, sepse nuk shpenzoj shumë për të. Kjo eshte Më duhet më pak performancë për më pak çmim ;-). Ndoshta do të preferoja një më të ngadaltë me një bateri më të madhe.
Nga ana tjetër, procak i ri do të ishte i dobishëm për iPad ku ka shumë lojëra :-).
Unë jam Android/HTC :) sepse IT është mjaft argëtuese për mua dhe hobi im është rrënjosja dhe konvertimi i HW me cilësi të lartë në një luftëtar të shpejtë. Dhe iOS nuk më lejon ta bëj këtë. (As nuk është e nevojshme. Pak a shumë, iOS është krijuar në mënyrë që gjithçka të funksionojë ashtu siç duhet dhe nuk keni nevojë të bëni asgjë atje. Kur të ndaloj së kënduari së luajturi, do të blej një mollë dhe do ta shijoj). Por nuk e di pse vazhdoni të sulmoni njëri-tjetrin si fëmijë. Apple është plotësisht si Android. Është si të krahasosh Demokracinë me Diktaturën e të tjera të ngjashme... E pashë konferencën kur u prezantua iPhone 5S dhe pavarësisht se nuk kam asgjë nga Apple, më pëlqeu 64biti dhe përmirësimet e tjera që erdhën. Por jo sepse jam një honimír trtko kompleks që rri pas një PC dhe ndjek Android ose Apple, por sepse shoh PROGRESIN që nuk do të më mbajë të pres për shumë kohë. Njerëzit duhet të fillojnë të punojnë shumë në mënyrë që të mos kenë kohë të merren me budallallëqe, për ta thënë me mirësjellje.
kontribut konstruktiv nga pala tjetër :) kiez do të hapte sytë e 99% të mbetur pozitiv android
ndoshta 99% e fanatikëve të mollës duhet diskutuar fillimisht, pastaj mund të bëjmë një bisedë konstruktive
gjera shume komplekse te shpjeguara thjesht... faleminderit
Artikull i madh! Po, jam dakord që përdoruesit e Android/WP duhet ta lexojnë këtë artikull si domosdoshmëri. Në vend që të trolling dhe të flasim zgjuar se "sa 64b është i padobishëm në celular"…
ndoshta nuk keni pasur kurrë një wp në dorë, përndryshe nuk do ta kishit këtë
Që nga sukseset e para në tregun e celularëve, Samsung nuk ka bërë gjë tjetër veçse njollosë konkurrencën, por në thelb ka ndjekur hapat e saj gjatë gjithë kësaj kohe. Apple ka qenë gjithmonë një model për kompanitë e teknologjisë dhe nëse fokusohen vetëm në talljen dhe keqinformimin e vazhdueshëm të klientëve, së shpejti do të pengohen. Apple ka ecur gjithmonë në rrugën e vet dhe ka qenë gjithmonë një çështje e kohës shumë të mirë, gjë që u mungon shumë kompanive konkurruese në industri.
Dikush mund të thotë se Samsung po kalon valën dhe po përfiton nga mundësitë e saj. Ai vë bast në Android, ka HW të shkëlqyer, bën shumë gjëra vetë, ka mbështetje të denjë. Dhe si çdo kompani grabitqare aziatike, ajo përdor të gjitha mundësitë e reklamimit. Dhe sigurisht që vjedh dhe kopjon. Ajo që "me sy të pjerrët" është e mirë është kopjimi. E kanë llogaritur shumë mirë se është shumë më lirë se sa të shkosh në rrugën e tyre, hap pas hapi. Dhe si një kompani e fortë, ajo thjesht mund ta përballojë këtë. Ende…
Thjesht nuk e kuptoj pse shpejtesia e telefonit po rritet vazhdimisht, me jepni disa shembuj se per cfare e perdorni, ngadale nuk ka kuptim te rris rendimentin e celularit, por do e heq fjalen marketing. .
Lojëra, lojëra të optimizuara dobët. Gjithashtu, Transport Tycoon në iPad 3 nuk funksionon aq mirë dhe në të njëjtën rezolucion si në desktop. Shembull.
Thjesht nuk e kuptoj pse po rritet shpejtesia e telefonit, me jepni disa shembuj se per cfare e perdorni, dalngadal nuk ka kuptim te rris rendimentin e celularit, nese i heq fjalen marketing. .
Për përpunim video, audio dhe imazhi. Dhe te lojrat.
Kushdo që përdor një iPhone vetëm për të telefonuar, për të dërguar mesazhe, për të lexuar ose dërguar e-mail herë pas here dhe për të lundruar herë pas here në internet, do të ketë nevojë për një iPhone 4. Besoj se ka shumë përdorues të tillë. Jo të gjithë kanë nevojë për telefonin më të mirë në botë :-)
dele
A nuk do të thotë asgjë për ju shkëmbimi fizik midis harduerit dhe softuerit? Kjo më kujton pak nga fundi i shekullit të 19-të, kur fizikanët e asaj kohe thoshin se gjithçka në fizikë ishte zbuluar tashmë dhe nuk kishte nevojë të vazhdonte (një dekadë para teorisë së relativitetit dhe tre para teorisë kuantike) .
Kërkimi i më të mirës nuk mbaron kurrë. Ndonjëherë softveri drejton dhe ndonjëherë hardueri. Por nëse njëri ngec, nuk do ta lërë tjetrin të shkojë. Ne nuk do të jemi aq egoistë me pasardhësit tanë :) Pra, për komentin tuaj - një telefon më i shpejtë do të mundësojë aplikacione më të fuqishme, të cilat do të jenë në gjendje të bëjnë shumë më tepër se disqet. Dhe dikur gjëra për të cilat as kompjuterët e sotëm nuk mjaftojnë. E ardhmja është emocionuese.
Pikerisht :)
Artikull i bukur, por nuk e kuptoj pse Apple nuk vendosi 7 GB RAM në A2. Po, multitasking i iOS nuk është i tillë që të nevojiten domosdoshmërisht 2 GB, por duke pasur parasysh gjatësinë e dyfishtë të treguesit të kujtesës, do të ishte shumë më i përshtatshëm.
Por përndryshe jam dakord që një procesor 64-bitësh është "i panevojshëm" për një telefon celular, ashtu siç ishte i panevojshëm një ekran retinë ose një maus optik në vend të topit - të gjitha këto shpikje u etiketuan si "të panevojshme", por për mendimin tim fjala e saktë është "i përjetshëm", sepse një herë duhet të vijë dhe Apple nuk ka frikë të dalë me diçka të re.
E dyshoj atë. Fatkeqësisht, edhe "i padobishëm" nuk është një shprehje e saktë. E panevojshme do të thotë diçka, prioritetin e së cilës një person nuk e di. Kjo definitivisht nuk është e vërtetë. Shpejtësia mund të mos ketë nevojë për një shpejtësi të tillë, por patjetër do ta njohë atë. Dhe kur softueri të arrijë harduerin, do të ketë sërish hapësirë për përmirësim.
Sigurisht, unë jam në favor, dua të them, iP5 është me të vërtetë një smartphone mjaft i shpejtë, kështu që 5S nuk do të duhej të ishte fare 64 bit. Por një ditë dikush duhej të merrej përsëri me të dhe ishte Apple dhe ishte tani. Për aq kohë sa mbaj mend, ekspertët kanë folur gjithashtu se si procesorët 64-bit do të jenë të padobishëm edhe në kompjuterë.
Për mua, si një laik i IT-së që pothuajse dështoi në matricën, përfundimi është i rëndësishëm. I gjithë artikulli (i mbështetur nga komentet) më duket mjaft i thellë dhe megjithëse nuk do të jem në gjendje ta shpjegoj, A7 me arkitekturë 64-bit është një hap përpara. Faleminderit për informacion.
Unë do të redaktoja titullin e artikullit, pasi është një lëvizje marketingu. Çdo risi është në thelb një lëvizje marketingu. :-)
Une nuk mendoj. Për shembull, Samsung përdor lëvizjet e marketingut. Ato shfaqen me RAM, për të cilën iPhone nuk ka nevojë fare. Largimi i tyre me veçori që nuk janë fare të përdorshme. Rritja e tyre qëllimisht e performancës së procesorit për teste. etj. Ky është marketing, edhe pse po, është mashtrues, me të cilin ata nuk duhet të largohen vetëm ;)