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?
Odpowiedzi:
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:
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.
źródło
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 ).
źródło
Koncentrowanie się wyłącznie na
A7
byciuARMv8
jest jednym oczywistym zyskiem. ARM restartuje zestaw instrukcji i architekturę.Będąc wsteczną kompatybilnością
ARMv7
, następna wersja również twierdziStawia więc
ARMv8
wyzwaniaARMv7
w 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 .
źródło
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.
źródło
cache lines
przez 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.what every programmer should know about memory
ciekawy dokument o nazwie dostępny za darmo dla ciekawskiego programisty akkadia.org/drepper/cpumemory.pdfUł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.
źródło
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.
źródło
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.
źródło
W krótkim okresie prawie nic. To rzeczywiście krok wstecz na kilka sposobów. Są trzy główne zalety, które znam.
źródło
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.
źródło
Wersja 64-bitowa pozwala na znacznie większe współdzielenie kodu z komputerowymi kompilacjami OSX (wszystkie są 64-bitowe)
źródło