Jaka jest zaleta 64-bitowego A7 w iPhonie

21

Próbuję dowiedzieć się, dlaczego przejście na procesory 64-bitowe to tak wielka sprawa w iPhonie. Rozumiem, że rejestrów będzie dwa razy więcej, więc procesor może pracować z dwukrotnie większą ilością danych, co powinno zwiększyć wydajność.

Jednak wkrótce nie zobaczę, aby wiele telefonów miało więcej niż 4 GB pamięci. Wydaje się, że to przesada i miałoby to negatywny wpływ na żywotność baterii.

Innym problemem, który widzę, jest to, że większość zmiennych potrzebuje teraz dwa razy więcej pamięci. Stworzy to problemy w środowisku mobilnym z małą ilością pamięci.

Uważam, że ludzie w Apple są inteligentni i prawdopodobnie mają wielkie powody, aby to zrobić, po prostu staram się je zrozumieć.

EDYTOWAĆ

Nie wiem wiele o procesorach graficznych, ale powiedziano mi, że przy rejestrach 64-bitowych do każdego rejestru można załadować 2 piksele i operacje można na nich wykonywać osobno. Czy istnieje przewaga graficzna w stosunku do wersji 64-bitowej?

Chris.Stover
źródło
2
Tak na marginesie - większa moc obliczeniowa oznacza, że ​​programiści mogą pozwolić sobie na lenistwo bardziej niż wcześniej (mniej optymalizacji), powodem może być zachęcenie twórców aplikacji.
Vlad Preda,
3
@ Chris.Stover - Dziś nie ma przewagi. Oczywiście jutro aplikacja na iOS będzie mogła używać więcej pamięci, gdy telefony będą miały więcej pamięci. W ciągu zaledwie 5 lat pojemność pamięci telefonu wzrosła o co najmniej 200%. Jeśli trend się utrzyma, możemy zobaczyć telefony o pojemności od 6 GB do 8 GB w bardzo krótkim czasie. Apple również oczekuje, kiedy zrobią coś takiego. Wszystko sprowadza się do tego, że ARM prawdopodobnie będzie licencjonować tylko 64-bitowe projekty. To naprawdę sprowadza się do tego, że telefon ma teraz więcej rejestrów, co naprawdę sprawia, że ​​jest szybszy. 64-bitowa specyfikacja nie jest dziś ważna.
Ramhound,
1
To nie dwa razy, jest o rząd wielkości większy. Procesory 32-bitowe mogą adresować tylko 4 GB pamięci RAM. Procesory 64-bitowe mogą obsługiwać około 18 eksabajtów, czyli 3 rzędy wielkości wyżej.
Inżynier świata
7
nie więcej limit pamięci 640k
Reactgular
1
Podejrzewa się, że Nexus 5 będzie miał 3 GB pamięci RAM i zostanie uruchomiony w przyszłym miesiącu. Nie sądzę, aby 4 GB + było tak daleko, jak mogłoby się wydawać.
Brendon

Odpowiedzi:

25

Przeważnie rzuca dużą liczbą, ponieważ robi wrażenie na masach. Większe liczby są oczywiście lepsze, więc wszystko z procesorem 64-bitowym jest wyraźnie lepsze niż coś z procesorem 32-bitowym. Nowy procesor jest znacznie lepszy niż jego poprzednik, ale w stylu Apple nie zamierzają próbować marketingu na podstawie specyfikacji technicznych - po prostu powiedzą ci, że 64-bitowy A7 jest nowszy i lepszy niż 32- bit A-6 . Patrząc na dane techniczne, widzisz jednak:

  • 28nm vs 32nm chipworks
  • Ulepszony zintegrowany procesor graficzny
  • Architektura ARM v8 w. ARM v7 (dodaje funkcje SIMD; przeskakuje z 13 do 31 rejestrów ogólnego przeznaczenia)
  • Pamięć główna on-die (tj. - szybsza)

Poza tym istnieje fakt, że mogą zacząć wdrażać (kompatybilny wstecz) 64-bitowy sprzęt, zanim napotkamy „ścianę 4 GB”. Za kilka lat, kiedy 64-bit stanie się koniecznością, cały sprzęt będzie go obsługiwał i nie będzie potrzeby obsługi starszych architektur 32-bitowych.

Sean McSomething
źródło
1
Właściwie nie mogę znaleźć źródła informacji w artykułach na wiki. Inne strony zgłaszają dwurdzeniowy przy 1,5 GHz. Jedna strona wiki mówi, że A7 jest ośmiordzeniowy 1,7 GHz. Zobacz: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover 11.09.2013
2
@ Chris.Stover po prostu pokazuje, że Apple nie sprzedaje sprzętu zgodnie ze specyfikacjami technicznymi - chcą po prostu „Newer & Better!” z nową generacją, zamiast mówić, dlaczego nowy sprzęt jest rzeczywiście lepszy.
Sean McSomething,
2
ARM v7 obsługuje już 40-bitowe linie adresowe (1 TB pamięci RAM), chociaż aplikacje w tej 32-bitowej architekturze mogą adresować tylko 4 GB każda. Arm v8 obsługuje obecnie 32-bitowe aplikacje, więc kompatybilność wsteczna nie stanowi problemu.
gbjbaanb,
16

W ARMv7 nie ma „ściany 4 GB” , ponieważ wiele rdzeni ARMv7 obsługuje LPAE (Large Physical Address Extension), który jest koncepcją podobną do PAE na x86, z wyjątkiem tego, że LPAE używa 40-bitowego adresowania. Oznacza to, że ARMv7 wyposażony w LPAE może adresować do 1 TB pamięci RAM .

Należy również wspomnieć, że nadchodzące rdzenie ARMv8, w tym A7, nie będą używać 64-bitowego adresowania fizycznego . Najprawdopodobniej A7 użyje 40-bitowego lub 44-bitowego adresowania fizycznego. Później dostęp do maksymalnie 16 TB pamięci RAM.

Oczywiście albo z LPAE na ARMv7, albo w trybie AArch32 na ARMv8, aplikacje są nadal 32-bitowe, więc sama aplikacja może uzyskać dostęp tylko 4 GB na raz. Ale nie sądzę, że będzie to problem na urządzeniach mobilnych w najbliższym czasie.

Martwisz się, że aplikacje będą zużywać więcej pamięci (wskaźniki 64-bitowe), ale nie będzie tak w przypadku aplikacji działających w trybie 32-bitowym (AArch32).

Z drugiej strony ARMv8 zapewnia inne ulepszenia architektoniczne w stosunku do ARMv7, które nie są związane z AArch64.

TL, DR: 64-bitowość A7 to chwyt marketingowy. Nawet w systemach z więcej niż 4 GB pamięci RAM nie zapewnia znaczącej przewagi nad LPAE dla aplikacji 32-bitowych. 64-bitowe aplikacje nie będą dostępne w najbliższym czasie.

Aktualizacja: Zostało to potwierdzone przez dyrektora marketingu Qualcomm (obecnie byłego dyrektora, ponieważ został zdegradowany do tych komentarzy ).

„Wiem, że jest dużo hałasu, ponieważ Apple zrobił [64-bit] na swoim A7” - powiedział w wywiadzie Anand Chandrasekher, starszy wiceprezes i dyrektor ds. Marketingu w Qualcomm. „Myślę, że robią sztuczkę marketingową. Konsument nie ma z tego żadnych korzyści”.

Korzyścią 64-bitowej jest większa adresowalność pamięci, ale nie jest to istotne w dzisiejszych smartfonach lub tabletach, powiedziała Chandrasekher. IPhone 5s ma tylko 1 GB pamięci DRAM.

„Głównie ... potrzebujesz go do adresowania pamięci powyżej 4 GB. To jest to. Naprawdę nie potrzebujesz go do wydajności, a rodzaje aplikacji, które 64-bitowe są używane głównie to duże aplikacje klasy serwerowej”, powiedział Chandrasekher, który wcześniej prowadził grupę platform mobilnych Intela. ( źródło )

vartec
źródło
9

Koncentrowanie się wyłącznie na A7byciu ARMv8jest jednym oczywistym zyskiem. ARM restartuje zestaw instrukcji i architekturę.

Będąc wsteczną kompatybilnością ARMv7, następna wersja również twierdzi

  • Nowy zestaw instrukcji (A64)
  • Zmieniona obsługa wyjątków dla wyjątków w stanie AArch64
  • Mniej zarejestrowanych rejestrów i trybów

Stawia więc ARMv8wyzwania ARMv7w zakresie różnic architektonicznych, zapewniając czystszy interfejs dla programistów systemów, który prawdopodobnie usunąłby starsze funkcje prowadzące do lepszej platformy. Co oznacza, że ​​powinieneś spodziewać się lepszej wydajności / energii zamiast negatywnego wpływu na baterię.

Zobacz więcej na temat podglądu architektury ARM .

auselen
źródło
+1. Gruber ma również dobry opis zalet ARMv8 na stronie daringfireball.net/2013/09/the_iphone_5s_and_5c . (Przewiń w dół do „A7: ARMv8 i architektura 64-bitowa”)
Josh Kelley,
4

Największą przewagą nad 32-bitowymi procesorami 64-bitowymi jest ruch pamięci, a nie jej rozmiar. Chociaż prawdą jest, że 32-bitowy może nałożyć limit 4 GB na bezpośredni dostęp. Istnieje wiele rozwiązań sprzętowych / programowych, które pozwalają ominąć ten limit.

Procesory 64-bitowe mogą po prostu odczytywać / zapisywać więcej danych w operacji jednego procesora. Pozwala to kodowi zestawu wykonywać operacje na blokach 8-bajtowych. Może to mieć dużą przewagę wydajności nad procesorami 32-bitowymi. Obliczenia zmiennoprzecinkowe są szybsze dla 64, a następnie 32, a gdy CPU używa podwójnych rejestrów, może działać na 128-bitowych blokach danych.

64-bitowe procesory mają również szersze pasmo do pamięci fizycznej. Jeśli masz kamerę, która nagrywa 1080p i chcesz edytować ten film. Wykonanie operacji na pliku wideo 1 GB będzie po prostu szybsze w wersji 64-bitowej.

Wszystko powyższe jest prawdą, nawet jeśli Ghz procesora pozostaje taki sam.

Jeśli wersja 64-bitowa jest tak dobra, to dlaczego nie 128-bitowa?

Im więcej bitów dodasz do potoku procesora, tym więcej danych musi przenieść procesor. Procesor nie może zawęzić tego pasma do 16 lub 32. Stwarza to problem dla programistów. Większość oprogramowania (kalendarz, notatki itp.) Nie zależy od dużej ilości danych, w wyniku czego 128 bitów wymagałoby dużej przepustowości. Może to zacząć obniżać wydajność i żywotność baterii. Dlatego producenci procesorów muszą znaleźć równowagę między przepustowością a wymaganiami oprogramowania.

Dziwi mnie, że Apple wypuściło nowy procesor 64 tak szybko w życiu komputerów mobilnych. Myślę, że ich prawdziwą motywacją jest grafika 3D. Dzięki 64-bitowemu procesorowi telefon może szybko przenieść więcej danych do GPU. Pozwoli to na szybkie gry 3D i bardziej imponującą grafikę. Naprawdę zaczniesz dostrzegać zalety 64-bitowego obrazu 3D w czasie rzeczywistym, ponieważ proces ten zależy w dużej mierze od danych.

Reactgular
źródło
4
Najnowsze / współczesne architektury procesorów są znacznie bardziej skomplikowane niż tutaj opisano. Procesory przenoszą dane z pamięci do jednostek zwanych cache linesprzez szyny pamięci, które mogą mieć 16-bitowy 32-bitowy lub prawdopodobnie 64-bitowy. Nie jest to konieczne, aby dopasować rozmiar natywnego słowa arch arch CPU. Masz rację, że dużym problemem jest przenoszenie danych, ale ten problem należy do innej domeny sprzętowej / architektonicznej. FP jest wykonywany na FPU, które w rzeczywistości są dość szybkie i mogą pracować z pojedynczymi lub podwójnymi rozmiarami precyzji. To samo dotyczy dekodowania wideo lub 3D, wszystkie mają własne dedykowane oprogramowanie, które niekoniecznie jest 64-bitowe.
auselen,
4
Jest what every programmer should know about memoryciekawy dokument o nazwie dostępny za darmo dla ciekawskiego programisty akkadia.org/drepper/cpumemory.pdf
auselen,
2

Ułatwia to obsługę dużych liczb. Duże liczby są niezwykle ważne w kryptografii (po tym, jak bezpieczny system PRISM stał się bardzo ważny) i aplikacjach naukowych.

sakisk
źródło
1

Chociaż możesz nie napotykać problemów teraz, jeśli trzymasz się wersji 32-bitowej, na pewno pojawią się problemy w najbliższej przyszłości. Lekcja wyciągnięta ze świata komputerów jest taka, że ​​przejście będzie długim i bolesnym procesem. Powinieneś zacząć od tego wcześniej niż później.

Zaskoczyło mnie nawet, że od samego początku smartfony nie były 64-bitowe.

Pieter B.
źródło
Przetestowałem to, konwertując moją obecną aplikację do wersji 32-bitowej. Miałem wiele ostrzeżeń, ale żadnych błędów. Na szczęście jabłko miało sugerowaną poprawkę dla każdego ostrzeżenia, więc po prostu kliknąłem każde ostrzeżenie i nacisnąłem Enter, aby zaakceptować poprawkę. Zajęło mi to około 5 minut, a ja pracowałem w wersji 64-bitowej. Żadnego bólu głowy, żadnych problemów ... jak dotąd
Chris.Stover
0

Nie sądzę, że jest wiele korzyści technicznych. Po pierwsze, myślę, że bardziej sensowne jest rozważenie iPada (ma większą baterię, dzięki czemu może obsługiwać więcej pamięci RAM, wyższe zużycie energii przez procesor itp.). Drugie spojrzenie na pozostałe ogłoszenia, które właśnie się odbywają. AMD właśnie ogłosiło, że w 2014 r. Dostarczy 64-bitowe procesory ARM. Jest to w zasadzie Apple, która utrzymuje pozycję lidera na rynku w obliczu tego, co zbliża się do wysokiej klasy tabletów z Androidem i Win8.

kamieniste
źródło
0

W krótkim okresie prawie nic. To rzeczywiście krok wstecz na kilka sposobów. Są trzy główne zalety, które znam.

  1. Wersja 64-bitowa jest znacznie lepsza przy większych liczbach, co jest dobrodziejstwem dla kryptografii. Co może być ciekawym połączeniem ze skanerem linii papilarnych w telefonie.
  2. Ponownie w tym samym duchu ulepszenia w zakresie 64-bitowych i dużych liczb pomagają w renderowaniu fizyki. Co jest przydatne, biorąc pod uwagę ilość fizyki używanej w interfejsie iOS7. Jest to również korzystne dla twórców gier, szczególnie w przypadku nieruchomości z większym ekranem, takich jak iPad.
  3. Dodaje także pewien stopień ochrony obecnych telefonów przy użyciu tego.
Jpatrick
źródło
0

Benchmarki

W przypadku niektórych implementacji zdolnych zarówno do 32-bitowych, jak i 64-bitowych trybów architektonicznych z architekturami ISA x86, MIPS i ARM, tryb 64-bitowy został przetestowany szybciej w niektórych ważnych aplikacjach. Jednym z głównych powodów jest to, że 64-bitowe wersje ISA są nowsze, dlatego architekci ISA wiedzieli więcej o statystykach aplikacji i jak zoptymalizować ten zestaw zachowań aplikacji podczas definiowania ISA. A nowy procesor ISA musi być zabezpieczony na przyszłe potrzeby w zakresie pamięci aplikacji, która rośnie w tempie zgodnym z prawem Moore'a i która wzrosła już ponad milion razy w obszarze urządzeń mobilnych.

Tak więc nowy arm64 ISA prawdopodobnie szybciej testuje każdy kod, który możesz opracować z ograniczeniem wydajności (dotyczy mojego kodu), a także pozwala głupim wskaźnikom C adresować rozległe wirtualne przestrzenie adresowe, które mogą stać się powszechne za dziesięć lat lub dłużej (co jest znacznie mniej czasu niż oryginalna 32-bitowa ARM ISA już istniała).

Wydajność konkretnego zestawu aplikacji (miara w celu potwierdzenia) jest doskonałym powodem, aby preferować arm64.

hotpaw2
źródło
-4

Wersja 64-bitowa pozwala na znacznie większe współdzielenie kodu z komputerowymi kompilacjami OSX (wszystkie są 64-bitowe)

Andrew Lewis
źródło
Ale obecnie wszystkie aplikacje iOS muszą zachować zgodność 32-bitową, więc każdy kod tylko 64-bitowy musi zostać przekonwertowany na 32-bitowy.
Bryan Chen,
1
Ale i tak są to zupełnie inna architektura (x86-64 vs. armv8). Zero zysku z tego (rozsądnie napisany program w C / C ++ / ObjC będzie działał na dowolnej liczbie bitów, nawet jeśli nie jest to wymagane).
Jan Hudec