Was ist der Vorteil von 64-Bit-A7 im iPhone

21

Ich versuche herauszufinden, warum 64-Bit-Prozessoren in einem iPhone so wichtig sind. Ich verstehe, dass es doppelt so viele Register geben wird, so dass der Prozessor mit doppelt so vielen Daten arbeiten kann, was die Leistung steigern sollte.

Allerdings sehe ich nicht viele Handys, die demnächst mehr als 4 GB Speicher benötigen. Es scheint ein Overkill zu sein, der sich negativ auf die Akkulaufzeit auswirken würde.

Ein weiteres Problem, das ich sehe, ist, dass die meisten Variablen jetzt doppelt so viel Speicher benötigen. Dies führt in einer mobilen Umgebung mit wenig Arbeitsspeicher zu Problemen.

Ich glaube, die Leute bei Apple sind intelligent und haben wahrscheinlich gute Gründe dafür. Ich versuche nur, sie zu verstehen.

BEARBEITEN

Ich weiß nicht viel über GPUs, aber mir wurde gesagt, dass mit 64-Bit-Registern 2 Pixel in jedes Register geladen werden können und Operationen an ihnen einzeln durchgeführt werden können. Gibt es einen grafischen Vorteil in Bezug auf 64-Bit?

Chris.Stover
quelle
2
Nur als Randnotiz - mehr Rechenleistung bedeutet, dass es sich Programmierer leisten können, fauler als zuvor zu sein (weniger Optimierungen), ein Grund könnte sein, App-Entwickler zu ermutigen.
Vlad Preda
3
@ Chris.Stover - Heute gibt es keinen Vorteil. Natürlich kann eine iOS-Anwendung morgen mehr Speicher verwenden, wenn die Telefone mehr Speicher haben. In nur 5 Jahren hat sich die Speicherkapazität des Telefons um mindestens 200% erhöht. Wenn sich der Trend fortsetzt, könnten wir in sehr kurzer Zeit 6-GB-8-GB-Telefone sehen. Apple freut sich auch, wenn sie so etwas tun. Es kommt alles darauf an, dass ARM in Zukunft wahrscheinlich nur noch 64-Bit-Designs lizenzieren wird. Es kommt wirklich darauf an, dass das Telefon jetzt mehr Register hat, was es wirklich schneller macht. Die 64-Bit-Spezifikation ist heute nicht mehr wichtig.
Ramhound
1
Es ist nicht das Doppelte, es ist um Größenordnungen größer. 32-Bit-Prozessoren können nur 4 GB RAM-Speicher ansprechen. 64-Bit-Prozessoren können etwa 18 Exabyte adressieren, was 3 Größenordnungen höher ist.
Weltingenieur
7
Keine 640k Speicherbeschränkung mehr
Reactgular
1
Es wird vermutet, dass das Nexus 5 3 GB RAM haben wird, und das wird nächsten Monat ins Leben gerufen. Ich denke nicht, dass 4 GB + so weit weg sind, wie Sie vielleicht denken.
Brendon

Antworten:

25

Meistens wirft es nur eine große Zahl raus, weil es die Massen beeindruckt. Größere Zahlen sind offensichtlich überlegen, daher ist alles mit einem 64-Bit-Prozessor eindeutig besser als etwas mit einem 32-Bit-Prozessor. Die neue CPU ist deutlich besser als sein Vorgänger , aber im Apple - Mode, sie werden nicht versuchen , auf Tech Specs basierte Marketing - sie sind nur Sie gehen zu sagen , dass die 64-Bit - A7 ist neuere und besser als die 32- Bit A-6 . Wenn Sie sich die technischen Daten ansehen, sehen Sie jedoch:

  • 28nm vs 32nm Chipworks
  • Verbesserter integrierter Grafikprozessor
  • ARM v8-Architektur v. ARM v7 (fügt SIMD-Funktionen hinzu; springt von 13 auf 31 Universalregister)
  • On-Die (dh - schneller) Hauptspeicher

Darüber hinaus können sie heute (abwärtskompatible) 64-Bit-Hardware einführen, bevor wir auf die "4-GB-Wand" stoßen. In einigen Jahren, in denen 64-Bit erforderlich wird, wird dies von der gesamten Hardware unterstützt und es ist nicht mehr erforderlich, ältere 32-Bit-Architekturen zu verarbeiten.

Sean McSomething
quelle
1
Ich kann die Quelle für die Informationen nicht in den Wiki-Artikeln finden. Andere Standorte melden Dual Core bei 1,5 GHz. Eine Wiki-Seite besagt, dass das A7 1,7 GHz Octa-Core ist. Weitere Informationen finden Sie unter
de.wikipedia.org/wiki/Apple_(system_on_chip
2
@ Chris.Stover zeigt nur, dass Apple keine Hardware nach technischen Spezifikationen verkauft - sie wollen nur "Newer & Better!" mit der nächsten Generation, anstatt Ihnen zu sagen, warum die neue Hardware eigentlich besser ist.
Sean McSomething
2
ARM v7 unterstützt bereits 40-Bit-Adressleitungen (1 TB RAM), obwohl Apps auf dieser 32-Bit-Architektur nur jeweils 4 GB adressieren können. Arm v8 unterstützt derzeit 32-Bit-Apps, sodass die Abwärtskompatibilität kein Problem darstellt.
gbjbaanb
16

Unter ARMv7 gibt es keine "4-GB-Wand" , da viele ARMv7-Kerne LPAE (Large Physical Address Extension) unterstützen, ein Konzept, das mit PAE unter x86 vergleichbar ist, mit der Ausnahme, dass LPAE eine 40-Bit-Adressierung verwendet. Dies bedeutet, dass mit LPAE ausgestattetes ARMv7 bis zu 1 TB RAM adressieren kann .

Es ist auch wichtig zu erwähnen, dass kommende ARMv8-Kerne, einschließlich A7, keine physische 64-Bit-Adressierung verwenden . Höchstwahrscheinlich wird A7 entweder eine physikalische 40-Bit- oder eine 44-Bit-Adressierung verwenden. Später Zugriff auf maximal 16 TB RAM.

Natürlich sind die Anwendungen entweder mit LPAE unter ARMv7 oder im AArch32-Modus unter ARMv8 immer noch 32-Bit, sodass die Anwendung selbst jeweils nur auf 4 GB zugreifen kann. Aber ich denke nicht, dass es in naher Zukunft ein Problem auf Mobilgeräten geben wird.

Sie befürchten, dass Apps mehr Speicher benötigen (64-Bit-Zeiger), dies ist jedoch nicht der Fall, wenn die Apps im 32-Bit-Modus (AArch32) ausgeführt werden.

Andererseits bietet ARMv8 andere architektonische Verbesserungen gegenüber ARMv7, die nicht mit AArch64 zusammenhängen.

TL, DR: Die 64-Bit-Version von A7 ist ein Marketing-Gimmick. Selbst auf Systemen mit mehr als 4 GB RAM bietet es für 32-Bit-Apps keinen signifikanten Vorteil gegenüber LPAE. Und 64-Bit-Apps werden nicht in Kürze verfügbar sein.

Update: Es wurde von Qualcomm Marketing Executive bestätigt (derzeit ehemaliger Executive, da er für diese Kommentare herabgestuft wurde ).

"Ich weiß, dass es viel Lärm gibt, weil Apple [64-Bit] auf seinem A7 gemacht hat", sagte Anand Chandrasekher, Senior Vice President und Chief Marketing Officer bei Qualcomm, in einem Interview. "Ich denke, sie machen ein Marketing-Gimmick. Es gibt keinen Vorteil, den ein Verbraucher daraus zieht."

Ein Vorteil von 64-Bit ist eine bessere Adressierbarkeit des Speichers, was jedoch bei heutigen Smartphones oder Tablets nicht relevant ist, so Chandrasekher. Das iPhone 5s hat nur 1 GB DRAM.

"Hauptsächlich ... Sie benötigen es für eine Speicheradressierbarkeit von mehr als 4 GB. Das ist es. Sie benötigen es nicht wirklich für die Leistung, und die Arten von Anwendungen, in denen 64-Bit zumeist verwendet wird, sind große Anwendungen der Serverklasse", sagte er Chandrasekher, der zuvor die Gruppe für mobile Plattformen von Intel leitete. ( Quelle )

vartec
quelle
9

Sich nur darauf zu konzentrieren A7, ARMv8dort zu sein, ist ein offensichtlicher Vorteil. ARM startet den Befehlssatz und die Architektur neu.

Da wir mit der ARMv7nächsten Version rückwärts kompatibel sind , wird dies auch behauptet

  • Neuer Befehlssatz (A64)
  • Überarbeitete Ausnahmebehandlung für Ausnahmen im AArch64-Status
  • Weniger Bankregister und Modi

So ARMv8fordert ARMv7auf Unterschiede in der Architektur, eine sauberere Schnittstelle für Systementwickler bietet die wahrscheinlich Erbe entfernen würde Funktion zu einer besseren Plattform führen. Das heißt, Sie sollten eine bessere Leistung / Energie erwarten, anstatt negative Auswirkungen auf die Batterie zu haben.

Weitere Informationen finden Sie in der ARM-Architekturvorschau .

auselen
quelle
+1. Gruber hat auch eine gute Beschreibung der Vorteile von ARMv8 unter daringfireball.net/2013/09/the_iphone_5s_and_5c . (Scrollen Sie nach unten zu "Die A7: ARMv8- und 64-Bit-Architektur".)
Josh Kelley,
4

Der größte Vorteil gegenüber 32-Bit bei 64-Bit-Prozessoren liegt in der Bewegung des Speichers und nicht in der Größe des Speichers. Zwar kann 32-Bit den direkten Zugriff auf 4 GB beschränken. Es gibt viele Hardware- / Softwarelösungen, um diese Grenze zu umgehen.

64-Bit-Prozessoren können einfach mehr Daten in einer einzelnen Prozessoroperation lesen / schreiben. Es ermöglicht dem Assembler-Code, Operationen an 8-Byte-Blöcken auszuführen. Dies kann einen großen Leistungsvorteil gegenüber 32-Bit-Prozessoren haben. Gleitkommaberechnungen sind auf 64 schneller als auf 32, und wenn die CPU Doppelregister verwendet, kann sie mit 128-Bit-Datenblöcken arbeiten.

64-Bit-Prozessoren haben auch größere Bandbreiten für den physischen Speicher. Wenn Sie eine Kamera haben, die 1080p aufzeichnet und dieses Video bearbeiten möchte. Das Durchführen einer Operation mit einer 1-GB-Videodatei ist auf 64-Bit-Systemen einfach schneller.

All dies gilt auch dann, wenn der Ghz-Wert des Prozessors gleich bleibt.

Wenn 64-Bit so gut ist, warum dann nicht 128-Bit?

Je mehr Bits Sie der Pipeline einer CPU hinzufügen, desto mehr Daten muss die CPU verschieben. Die CPU kann diese Bandbreite nicht auf 16 oder 32 einschränken. Dies schafft also ein Problem für Softwareentwickler. Die meiste Software (Ihr Kalender, Notizen usw.) hängt nicht von vielen Daten ab, weshalb 128 Bit viel verschwendete Bandbreite bedeuten würden. Dies kann die Leistung und die Batterielebensdauer beeinträchtigen. Daher müssen die CPU-Hersteller ein Gleichgewicht zwischen Bandbreite und Softwareanforderungen finden.

Ich bin erstaunt, dass Apple so bald im Leben des Mobile Computing einen neuen 64-Prozessor herausgebracht hat. Ich denke, ihre eigentliche Motivation dafür sind 3D-Grafiken. Mit einem 64-Bit-Prozessor kann das Telefon mehr Daten schnell auf die GPU übertragen. Dies ermöglicht schnelle 3D-Spiele und beeindruckendere Grafiken. Sie werden sofort die Vorteile von 64-Bit in Echtzeit-3D erkennen, da dieser Prozess stark von den Daten abhängt.

Reactgular
quelle
4
Aktuelle / moderne CPU-Architekturen sind viel komplizierter als Sie hier beschreiben. CPUs übertragen Daten aus dem Speicher in Einheiten, die cache linesüber Speicherbusse mit 16-Bit-32-Bit oder wahrscheinlich 64-Bit aufgerufen werden . Dies entspricht nicht unbedingt der nativen Wortgröße von CPU arch. Sie haben Recht, das große Problem ist das Verschieben von Daten, aber dieses Problem gehört zu einer anderen Hardware- / Architekturdomäne. FP wird auf einer FPU ausgeführt, die eigentlich recht schnell ist und mit einfachen oder doppelten Präzisionsgrößen arbeiten kann. Wie bei der Videodekodierung oder in 3D, verfügen sie über eine eigene Hardware, die nicht unbedingt 64-Bit ist.
Auselen
4
what every programmer should know about memoryFür den neugierigen Entwickler akkadia.org/drepper/cpumemory.pdf
auselen 13.09.13
2

Dies erleichtert den Umgang mit großen Zahlen. Große Zahlen sind in der Kryptographie (nachdem PRISM ein sicheres Mobiltelefon besitzt) und in wissenschaftlichen Anwendungen von großer Bedeutung.

Sakisk
quelle
1

Wenn Sie sich an 32-Bit-Probleme halten, werden Sie in naher Zukunft sicherlich nicht auf Probleme stoßen. Die Lektion aus der Desktop-Welt lautet, dass ein Übergang ein langwieriger und schmerzhafter Prozess sein wird. Sie sollten also eher früher als später damit beginnen.

Es war sogar überraschend für mich, dass Smartphones nicht von Anfang an 64-Bit waren.

Pieter B
quelle
Ich habe dies getestet, indem ich meine aktuelle App in 32-Bit konvertiert habe. Ich hatte eine Reihe von Warnungen, aber keine Fehler. Glücklicherweise hatte Apple für jede Warnung einen Fix vorgeschlagen, also klickte ich einfach auf jede Warnung und drückte die Eingabetaste, um den Fix zu akzeptieren. Dauerte ca. 5 Minuten und ich war in 64 Bit einsatzbereit. Keine Kopfschmerzen keine Probleme ... bis jetzt
Chris.Stover
0

Ich glaube nicht, dass es viele technische Vorteile gibt. Zuerst denke ich, dass es sinnvoller ist, wenn man das iPad betrachtet (es hat einen größeren Akku, damit es mehr RAM unterstützt, einen höheren Energieverbrauch des Prozessors usw.). Schauen Sie sich die anderen Ankündigungen an, die gerade stattfinden. AMD hat gerade angekündigt, dass es 2014 64-Bit-ARM-Prozessoren geben wird. Dies ist im Grunde genommen die führende Position von Apple angesichts der kommenden High-End-Tablets für Android und Win8.

Steinmetalle
quelle
0

Kurzfristig so ziemlich nichts. Es ist in gewisser Hinsicht ein Schritt zurück. Ich kenne drei Hauptvorteile.

  1. 64bit ist viel besser mit größeren Zahlen, was ein Segen für Crypto ist. Das kann eine interessante Kombination mit dem Fingerabdruckscanner am Telefon sein.
  2. Auch hier helfen die Verbesserungen mit 64-Bit und großen Zahlen beim Rendern der Physik. Das ist praktisch in Anbetracht der Menge an Physik, die in der Benutzeroberfläche von iOS7 verwendet wird. Dies kommt auch Spieleentwicklern zugute, insbesondere bei größeren Bildschirmen wie dem iPad.
  3. Damit wird auch ein gewisser Grad an Zukunftssicherheit für aktuelle Telefone hinzugefügt.
Jpatrick
quelle
0

Benchmarks.

Bei einigen Implementierungen, die sowohl 32-Bit- als auch 64-Bit-Architekturmodi mit x86-, MIPS- und ARM-ISAs unterstützen, wurde der 64-Bit-Modus bei bestimmten wichtigen Anwendungen schneller verglichen. Ein wesentlicher Grund dafür ist, dass die 64-Bit-ISAs neuer sind und die ISA-Architekten daher mehr über die Anwendungsstatistik und die Optimierung dieses Anwendungsverhaltens bei der Definition der ISA wissen. Und ein neuer Prozessor ISA muss zukunftssicher sein gegenüber Anwendungsspeicheranforderungen, die mit der Geschwindigkeit von Moore zunehmen und die im Bereich mobiler Geräte bereits millionenfach angestiegen sind.

Auf diese Weise kann der neue arm64 ISA wahrscheinlich schnellere Benchmarks für jeden von Ihnen entwickelten Code mit eingeschränkten Leistungsmerkmalen erstellen (dies gilt auch für meinen Code) und dummen C-Zeigern ermöglichen, auf die riesigen virtuellen Adressräume zuzugreifen, die in einem Jahrzehnt oder später häufig vorkommen werden (und das ist der Fall) viel weniger Zeit als die ursprüngliche 32-Bit-ARM-ISA bereits existiert hat).

Die Leistung Ihrer speziellen Anwendungen (Maßnahme zur Bestätigung) ist ein guter Grund, arm64 zu bevorzugen.

hotpaw2
quelle
-4

64-Bit ermöglicht viel mehr Code-Sharing mit den Desktop-Builds von OSX (alle 64-Bit).

Andrew Lewis
quelle
Gegenwärtig müssen jedoch alle iOS-Apps 32-Bit-Kompatibilität gewährleisten, sodass jeder 64-Bit-Code ohnehin in 32-Bit-Code konvertiert werden muss.
Bryan Chen
1
Aber es handelt sich trotzdem um eine völlig andere Architektur (x86-64 vs. armv8). Kein Gewinn daraus (ein in C / C ++ / ObjC geschriebenes Programm kann eine beliebige Anzahl von Bits verarbeiten, auch wenn dies nicht erforderlich ist).
Jan Hudec