Torben Mogensen header

Apples 64-bit processor

Ved annonceringen af Apples nye iPhone 5S var der en del fokus på, at den har en ny 64-bit udgave af Apples iPhone-processorserie, nemlig A7.
Der er ikke mange detaljer om denne: Apple siger blot, at det er en "desktop-class" processor med et "moderne instruktionssæt" og dobbelt så mange registre som 32-bit processoren i A6. Men der er næsten givet tale om en implementering af ARMs V8 64-bit arkitektur. I givet fald er det den første processor i produktion, som implementerer V8-arkitekturen.

Men hvad betyder det egentlig at have en 64-bit processor i stedet for en 32-bit processor? I store træk er det:

  • 32-bit processorer kan kun adressere 4GB lager, så brug af mere kræver snedige tricks såsom at MMUen (memory-management unit) lader flere programmer sidde i forskellige 4GB-udsnit af et større lager. Men en enkelt proces kan kun svært bruge mere end 4GB, og typisk mindre, da der går noget til operativsystem m.m. Denne løsning bruger ARM i Cortex A15. En "ægte" 64-bit processor kan adressere mere lager end det er realistisk nogensinde at finde i en computer, så her er der reelt ingen grænse for lageret.
  • En 64-bit processor arbejder med 64-bit tal i stedet for 32-bit tal. Det betyder mest, når man arbejder med meget store tal (for eksempel til kryptering), men nogen gange kan man kombinere to 32-bit tal i et 64-bit tal og dermed lave dobbelt så mange operationer af gangen. Det er dog ikke alle operationer, der kan udnytte denne ide. Alt i alt kan ydelsen være alt fra uændret til dobbelt så stor.
  • En 64-bit processor vil (alt andet lige) bruge flere transistorer, så strømforbruget bliver større.

Så når Apple siger, at ydelsen er markant højere, så skyldes det sandsynligvis andre forbedringer, for eksempel at flere instruktioner kan udføres samtidigt eller ,at der er flere CPU-kerner på samme chip.

Men er det så interessant for en mobiltelefon?

  • Man kan altid bruge mere regnekraft, men det er primært til grafik og lyd, at det betyder noget, så her bør fokus mere være på den grafikprocessor, som sidder ved siden af ARM-processoren på samme chip.
  • Mere RAM koster mere i strøm, så fordelen ved at have mere end 4GB RAM på en mobiltelefon er til at overse -- det vil gå ud over batterilevetiden. Og da mange processer kører samtidigt, kommer man ret langt med MMU-metoden fra Cortex A15.

Så det lyder ikke i sig selv specielt relevant med en 64-bit processor i en mobiltelefon. Fordelene kommer mere fra andre forbedringer i processoren og dens coprocessorer end det faktum, at det er en 64-bit processor.

Men 64 bit er bestemt relevant for en laptop eller bordcomputer, hvor 4GB RAM efterhånden er minimum og 8 eller 16GB almindeligt. Så det er ikke utænkeligt, at Apple har planer om at bruge A7-processoren i en fremtidig udgave af MacBook. Jeg har tidligere argumenteret for, at Apple ville lave et sådant skift på et tidspunkt, men nu er det endnu mere sandsynligt.

Kommentarer (37)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Claus Jensen

Jeg kan nu se mange muligheder ved at få en 64-bit processor i mobile devices. Der findes allerede mange beregningstunge apps til iPhone fx til lyd o.l.

Men derudover tror jeg også, at det skal ses i det perspektiv, at det vil gøre det muligt at få flere desktop-applikationer ned på en iPad. Vi har jo allerede set ting som CAD-programmer demonstreret på iPad, den slags vil Apple med garanti gerne se mere af....

Claus Jensen

Nu har jeg ikke erfaring med de medieprocessorer, du nævner, men kun med generisk DSP-kode. Men min erfaring er, at lydberegninger, der skal foregå i høj præcision vil have stor gevinst af at foregå i én 64-bit kerne i stedet for to 32-bit kerner. Men det kommer jo an på, hvad formålet er. Det væsentlige er, at ved at bruge en 64-bit processor, så har Apple fjernet én begrænsning, som nogen kunne løbe i. Og især hvis man skal flytte applikationer, der er udviklet på en 64-bit processor over til en mobil enhed, så vil det være en nemmere proces nu...

Jesper Ørsted

Bill Gates kom engang for skade at sige at ingen nogensinde ville få brug for mere end 640 KB RAM. Mon ikke han har haft lejlighed til at fortryde det siden da?
Jeg tvivler på at Apple hopper over på ARM processorer til deres MacBooks. Det er en helt anden arkitektur end x86, så al software skal porteres til den ny platform. Det tager tid. I dag har Apple neutraliseret det konkurrenceparameter der hedder hastighed ved at bruge samme processorer som alle de andre PC producenter og det tror jeg de er rimeligt godt tilfredse med. Så kan de i stedet koncentere markedsføringsindsatsen omkring det de er rigtigt stærke til: Brugerfladen.

Martin Bøgelund

Så når Apple siger, at ydelsen er markant højere, så skyldes det sandsynligvis andre forbedringer, for eksempel at flere instruktioner kan udføres samtidigt eller ,at der er flere CPU-kerner på samme chip.

Kunne det ikke skyldes, at "markant" i Apples ordbog betyder "plus 10 til 20 procent", og ikke en fordobling?

Thomas Alexander Frederiksen

iOS er i al væsentlighed en variant af OS X, hvor 32 bit for længst er opgivet. Med rykket til 64 bit på mobile platforme er der 64 bit over hele linien, og der er åbnet for et muligt skift til ARM på desktop/laptop-fronten (eller bare en mulighed for at true med det indtil Intel giver en stor nok rabat). Der er altså væsentlige strategiske fordele i et skift til 64 bit som jeg ser det.

Emil Renner Berthing

"Men der er næsten givet tale om en implementering af ARMs V8 64-bit arkitektur. I givet fald er det den første processor i produktion, som implementerer V8-arkitekturen."

Det er snart 2 år siden de første ARMv8 ASICs blev produceret, og forskellige firmaer har længe arbejdet på servere med ARMv8 chips i, men det er nok det første device, mainstream forbrugere kan købe med det instruktionssæt.

Christian Dias Løgberg

I dag er det som indlægget nævner ikke urealistisk med 16GB ram. For 30 år siden var det nærmere 16KB, altså en million gange mindre. 64 bit giver mulighed for at adressere 16 exabyte, så med lineær fremskrivning rammer vi vel loftet om 45 år? Det stemmer i øvrigt meget godt med Moore's lov om fordobling ca. hver 18. måned :)
Ikke at jeg tror på at den nye iPhone holder i 45 år, men vi skal nok til at udvikle 128-bit processorer inden for de næste 20-30 år.

Claus Pedersen

"Jeg mener AppliedMicro var en af de første, men nu kan jeg kun finde den pressemeddelse hvor de har produceret en ARMv8 chip, der dog er en FPGA indendi."
Det var en pre-silicon verificering de havde lavet. Det første stykke silicium med ARMv8 fremstillede de først i juni i år.

s_ mejlhede

"A15. En "ægte" 64-bit processor kan adressere mere lager end det er realistisk nogensinde at finde i en computer, så her er der reelt ingen grænse for lageret."

Torben pas på, man ved jo ikke hvad man en gang bliver citeret for at have sagt :-)
De få computer der er, der er højeste jo brug for 5-10 stykker, skal jo så bruge mere RAM, når vi heller ikke har brug for nogen i hjemmet.

Der der internet bliver aldrig til noget.

Casper Bang

Man må bare ryste på hovedet af Apple's marketingsafdeling, når de siger "40 gange hurtigere..." men glemmer at fuldende sætningen med "...end den første generation vi lavede for 6 år siden".

Med ovenstående Apple BS som eksempel, så ved vi vel ikke med sikkerhed om det er en "ægte 64 bit CPU" med en 64bit databus?! For på en mobil enhed, vil dette betyde at pointere til memory nu fylder dobbelt så meget som før, og dvs. et program fylder altså mere i RAM. Eftersom Apple ikke udvider RAM mængden, gad vide om ikke Apple har lavet en hybrid, de er jo ikke ligefrem bange for at eksperimentere og optimere hvis det er til fordel for deres nuværende iDims generation.

Torben Mogensen Blogger

Jeg tvivler på at Apple hopper over på ARM processorer til deres MacBooks. Det er en helt anden arkitektur end x86, så al software skal porteres til den ny platform.

Det har Apple prøvet før: Først ved overgangen fra Motorola 68000 til PowerPC og siden fra PowerPC til x86. Det første skift var lidt hårdt, da meget af kernesoftwaren var skrevet i assembler, så en del blev emuleret (og det blev en del applikationskode også, indtil leverandørerne kom med nye versioner). Skiftet fra PowerPC til x86 var mindre hårdt, da der var meget lidt assembler involveret, så man kunne for det meste klare sig med genoversættelse. Det gjaldt i høj grad også for leverandørerne, der havde brugt Apples Objective C og Apples API'er til udvikling af software. Så Apple er på nuværende tidspunkt godt rustet til et skift -- hjulpet godt på vej af, at en del OSX moduler allerede er porteret til ARM i iOS.

Fordelen for Apple ved at bruge ARM i MacBook er dels, at de kan køre iOS applikationer native og dels, at de kan lave en stærkt integreret SoC efter eget design, noget som Intel generelt ikke lader deres kunder gøre med x86. Derudover kan de i højere grad lave fælles udvikling af moduler til iOS og MacOS.

Jesper Zuschlag

I deres præsentation i går aftes, understregede Phil Schiller da ellers meget tydeligt af de 40 x ydelse var i forhold til den første iPhone (tilsvarende tal præsenterede de også for GPU ydelsen), mens forbedringen i ydelsen i forhold til iPhone var på x 2 for både CPU og GPU. Så jeg kan ikke se hvor fejlen er?

Jesper Zuschlag

Der har været forlydner om at Apple har en ARM-port af den fulde Mac OS X (ligesom de vedligeholdte en Intel-port igennem flere år før de skiftede fra PowerPC). Man kunne godt forestille sig, at Apple vil presse ARM/iOS (måske i en udvidet udgave) op i det produktsegment som nu er dækket af de mindste Mac-produkter (low-end iMac og MacBook Air) og så lade Intel/Mac OS X være forbeholdt for Pro-segmentet.

Torben Mogensen Blogger

Jeg mener at huske fra mit kursus i maskinarkitektur, at 2^64 er i samme størrelseorden som det estimeret antal atomer i universet.

Det er lidt overdrevet. 2^64 byte er 2^67 bits = 1,5 * 10^20 bits. Antallet af atomer i universet estimeres til omkring 10^79. Et gram silicium indeholder ca. 2 * 10^22 siliciumatomer, så man kunne gemme 2^64 byte i et gram silicium, hvis man kunne komme ned på fire atomer per bit.

Jesper Zuschlag

Det er lidt overdrevet. 2^64 byte er 2^67 bits = 1,5 * 10^20 bits. Antallet af atomer i universet estimeres til omkring 10^79. Et gram silicium indeholder ca. 2 * 10^22 siliciumatomer, så man kunne gemme 2^64 byte i et gram silicium, hvis man kunne komme ned på fire atomer per bit.

Så må da være en af dine kollegaer som skal have opdatet sine slides (eller min hukommelse er måske ikke hvad den har været). Men det er da rart at vide, at vi med tiden vil kunne fylde hele det dejlige adresserum ud, selvom det nok ikke lige bliver i morgen ;-)

Kristian Borum

Ved skift til armv8 får man mulighed for at bruge 48-bit addresser til både virtuel og fysisk hukommelse.
Det er nok rigtigt at det ikke giver megen mening at bruge alle de ekstra addressebits på RAM i smartphone, men de ekstra bits skal nok blive sat i arbejde alligevel: Det er ret almindeligt at 'mappe' hele filer ind i addresserummet.

På iOS kan man bruge 'mmap' præcis som vi kender det fra Linux eller POSIX (der er også et mere obj-c venligt kald til formålet).

Torben Mogensen Blogger

10 milliarder mennesker, alt foregår på nettet. Så kan 2^64 kun adresserne 2Gb Per person...

Lager fordelt på nettet vil næppe blive adresseret som et fladt lineært adresserum. Det vil formentligt være hierarkisk eller på anden måde sammensat af flere deladresser. Eller måske slet ikke adresseret med direkte referencer men gennem klassifikationer, attributter, søgeord, osv.

Også for parallelle anvendelser er et fladt lineært adresserum uhensigtsmæssigt, så det er mere sandsynligt, at hver processor har sit eget forholdsvis lille lager (fra få GB op til få TB), hvor "computeren" som helhed består at et større antal processorer med hver deres lager og et kommunikationsnetværk til at lade dem snakke sammen. Så deciderede pointere på mere end 64 bit ser jeg ikke som specielt relevante.

Patrick Moog

I deres præsentation i går aftes, understregede Phil Schiller da ellers meget tydeligt af de 40 x ydelse var i forhold til den første iPhone (tilsvarende tal præsenterede de også for GPU ydelsen), mens forbedringen i ydelsen i forhold til iPhone var på x 2 for både CPU og GPU. Så jeg kan ikke se hvor fejlen er?

Der er sikkert ikke nogen fejl i det, men det er bare et åbenlyst marketing stunt, for at nævne "40 gange ydelse"

Vi tager lige en bil-analogi for de passer altid 100% på IT verden og alt andet! :)
Ford præsenterer deres nye Ford Mustang 2013 der har 662 hestekræfter over 82 gange så meget som deres første Ford!

Martin Hoffmann

Universet er ikke uendeligt per definition.
For det første fordi det ikke er uendeligt, men endnu mere fordi det ikke er defineret ved at være hverken endeligt eller uendeligt.
(Sorry, forkert brug af "per definition" er en af mine kæpheste) :-)

Det stof og den energi der blev skabt ved big bang er dog endeligt. Det er udstrækningen af rummet der synes uendelig i vores fire dimensioner(selvom det udvider sig).

Jeg hæfter mig i øvrigt ved en beregning jeg hørte om for noget tid siden, hvor det blev vist at Moores lov kun kan holde relativt kort tid endnu. Hvis man viderefører den i tilpas mange år, vil det estimerede energibehov for at udføre beregningerne overstige den tilgængelige mængde energi i universet.
Y3K problem måske? :-)

Torben Mogensen Blogger

Jeg hæfter mig i øvrigt ved en beregning jeg hørte om for noget tid siden, hvor det blev vist at Moores lov kun kan holde relativt kort tid endnu. Hvis man viderefører den i tilpas mange år, vil det estimerede energibehov for at udføre beregningerne overstige den tilgængelige mængde energi i universet.

Moores "lov" udtaler sig ikke om regnekraft, men kun om antallet af transistorer på en chip. Desuden er der ikke nogen nedre grænse for strømforbruget af en logisk gate -- såfremt den er reversibel.

Men det er rigtigt, at det er meningsløst at ekstrapolere eksponentielle progressioner i al evighed.

Gert Agerholm

Det er en helt anden arkitektur end x86, så al software skal porteres til den ny platform


Ikke ubetinget. Da Apple gik over til Intel havde man i OSx et lag der gjorde at man stadig kunne afvikle applikationer skrevet op PowerPC arkitekturen. Det blev droppet i 10.7, men ind til da kunne de gamle applikationer stadig afvikles.

Kunsten er at lave et OS hvor applikationerne ALDRIG griber fat i HW men udelukkende anvender OS API.

Bruno Andersen

Hej Torben
Jeg bemærker, at du omtaler 5S som en mobiltelefon. Det er jo måske nærmere en 'lommecomputer'. Der er jo et stort marked for tunge spil, så mon ikke en 64-bit (og øvrige forbedringer) giver mening.
Hvad mener du ellers formålet skulle være?

Carsten Hansen

Er "gevinsten" ved 64-bit ikke, at der "tilfældigvis" er flere garanteret registre, så man slipper for at gemme registre på stakken ved funktionskald.

Det har ikke noget med 64-bit at gøre. Jeg betragter 64-bit primært som marketing bortset fra på servere. Internet Explorer 64-bit skulle f.eks. blot starte en række 32-bit Internet Explorer.

xor eax, eax (egentlig 32-bit - virker på alle 64 bit)

Morten Andersen

Carsten, yes enig - og jeg forstår ikke hvad Nikolaj mener med det er en gammel skrøne at 64-bit kun skulle være aktuel ved mere end 4GB. Det er naturligvis forkert, for det at kunne udføre aritmetik med 64-bit ad gangen kan gøre f.eks. kryptering hurtigere. Men for den almindelige bruger betyder det ikke det store. Og jeg tror de fleste havde samme oplevelse da AMD introducerede 64-bit, der var ikke nogen nævneværdig forbedring i performance. Tværtimod blev programmerne 25-50% større og ofte kræver 64-bit udgaven af programmer og operativsystemer mere RAM og CPU i deres "minimum hardware spec" end 32-bit udgaven gør.

Men det er ikke rigtigt at 64-bit IE blot starter nogle 32-bit IE - hele processen kører skam 64-bit.

Det er rigtigt at xor eax,eax er lovligt selv for en 64-bit process og det er da også sådan meget output vil se ud hvis man kigger på output fra en 64-bit C compiler der bruges til at kompilere et "gammelt" C program. På alle x86 64-bit platforme er en 'int' stadig 32-bit og int er jo standardtypen de fleste bruger for heltal. Så ingen ændring her. Bemærk dog at selve enkodningen af instruktionen i maskinkoden er anderledes for 64-bit.

Thomas Hansen

Jeg synes man glemmer tid. Den tid det tager at udfører en opgave for en processer.

"En 64-bit processor vil (alt andet lige) bruge flere transistorer, så strømforbruget bliver større"

Den antagelse er jeg ikke enige i.

Log ind eller Opret konto for at kommentere
Brugerundersøgelse Version2
maximize minimize