Jak to jest naprawdę z tymi 64 bitami w iPhonie 5S
64-bity w nowym iPhonie. Rewolucja? Czy raczej inwestycja na przyszłość?
Gdy kilka dni temu pisałem ten tekst, nie byłem świadom wielu informacji dotyczących iPhone’a 5S. Jednak zanim zdążyłem zareagować i poprosić Mateusza Nowaka o zablokowanie publikacji w naszym panelu, okazało się, że pojawił się on na stronie. By nikogo nie wprowadzać błąd i nie udowadniać na siłę, że jestem nie-wiadomo-jakim-guru, postanowiłem pozostawić stary tekst na stronie, ale opublikować też jego wzbogaconą wersję, którą napisałem później. Oto i ona. Pisząc ją wzorowałem się na Anandtechu, który świetnie opisał nowe procesory Apple.
Sam byłem szczerze zdziwiony tym, jak dużą wagę Apple przywiązało do tego, że ich procesor korzysta z 64-bitowej architektury. Moje zdziwienie wywołane było przede wszystkim tym, że cecha ta owszem kiedyś będzie przydatna, ale jak na razie nie wynika z niej absolutnie nic albo niemal nic. Mimo że Apple nie udostępnił żadnych konkretnych materiałów dotyczących swojego nowego procesora, można tak twierdzić analizując sprzęt, który pojawił się niemal dekadę temu. Wówczas bowiem na rynek trafiły pierwsze procesory 64-bitowe pracujące w komputerach PC. Wzrost wydajności w aplikacjach 32-bitowych jest niezauważalny, a w tych wykorzystujących 64-bity wynosi kilka do maksymalnie kilkudziesięciu procent. Jednak jak na razie wiele, jeśli nie większość aplikacji, nie będzie 64-bitowych.
Stanie się tak, gdyż procesory 64-bitowe są w stanie bez problemu uruchamiać aplikacje 32-bitowe, tak samo jak procesory 32-bitowe były w stanie uruchamiać aplikacje 16-bitowe. Skoro wsteczna kompatybilność jest zachowana, iPhone 5S będzie mógł uruchamiać wszystkie dotychczasowe aplikacje. Niestety jeśli ktoś zdecydowałby się na napisanie aplikacji 64-bitowej, będzie ona działać tylko na iPhone’ie 5S. Tak to wygląda w teorii, bo apple’owski XCode pozwala na generowanie dwóch wersji aplikacji, 32- i 64-bitowej. W zależności od urządzenia jakiego będziemy używać, pobrana zostanie odpowiednia wersja aplikacji. Można więc wstępnie uznać, że 64-bitowa moc Apple A7 nie zmarnuje się.
Jednak Apple wsadziło do swojego smartfona 64-bitowy procesor głównie z myślą o przyszłości. Już za kilka lat smartfony mogą mieć 4 GB i więcej pamięci RAM (2^32 bajtów). Wówczas są dwie możliwości do wyboru. Pierwsza to korzystanie z 32-bitowego procesora i rozszerzenia PAE (Physical Adress Extension) lub 64-bitowego procesora, przy czym druga możliwość pozwala na zaadresowanie nawet kosmicznej ilości pamięci wynoszącej 16 EB (2^64 bajtów). To jedyne możliwości zaadresowania większej ilości pamięci. Co prawa jak na razie firma z Cupertino nie ma w swojej ofercie smartfona z 4 GB pamięci, ale obecnie jej ilość podwaja się co dwie generacje. Oznacza to, że iPhone 6 (2014) prawdopodobnie będzie miał 2 GB pamięci RAM, a iPhone 7 (2016) aż 4 GB pamięci RAM. I wówczas 64-bity się przydadzą. Wprowadzając 64-bitowe procesory już teraz Apple chce też pobudzić programistów do tego, by tworzyli 64-bitowe aplikacje na iPhone’a. Teraz, gdy to jest możliwe, a nie, gdy to będzie konieczne. Bo wtedy już będzie na taki krok za późno.
Jak już wspominałem, Apple nie jest zbyt skore chwalić się szczegółami budowy swojego nowego układu. Dlatego analizując ten układ trzeba się kierować wskazówkami, które daje nam konsorcjum ARM mówiąc o swojej architekturze ARMv8 i jej referencyjnych rdzeni, które niebawem zaleją świat smartfonów, także tych z Androidem. Głównym powodem wybrania 64-bitowego procesora jest po prostu to, że był wydajniejszy. Nie tylko z powodu implementacji 64-bitowej architektury, ale też przez zastosowanie innych nowości. Przede wszystkim warto zwrócić uwagę na znaczne zwiększenie liczby rejestrów. Przykładowo, procesory ARMv7 miały 15 rejestrów ogólnego przeznaczenia, podczas gdy w procesorach ARMv8, do których należy też układ A7, liczba takich rejestrów wynosi 30. Każdy z tych rejestrów cechuje się szerokością równą 64-bit i jest dostępny w każdym momencie. Już taki zabieg może sprawić, że wydajność sprzętu znacznie wzrośnie, nawet o 10%.
W procesorach ARMv8 podwojono też liczbę rejestrów jednostek obliczeniowych oraz podwojono ich szerokość z 64 do 128 bitów. Zwłaszcza ostatni wymieniony tu zabieg może mieć duży wpływ na wydajność procesora, gdyż będzie miał wpływ na zwiększenie wydajności najprostszych i najczęściej używanych instrukcji SIMD. Procesory ARMv8 otrzymały też nowe, bardziej zaawansowane instrukcje SIMD, dzięki czemu będzie możliwe wykonywanie chociażby obliczeń podwójnej precyzji. W poprzednich wersjach procesorów ARM było to niemożliwe.
Kolejna nowość zastosowana w procesorach ARMv8, to instrukcje umożliwiające sprzętową akcelerację kryptograficznych algorytmów AES oraz SHA1/SHA256. Mimo że brzmi to niepozornie, to prawdopodobnie zabieg ten będzie miał ogromny wpływ na wydajność procesora. Sądzę tak, gdyż duży wzrost wydajności dało się zaobserwować chociażby, gdy Intel dwa lata temu zdecydował się na implementację w wówczas premierowych układach Westmere instrukcji AES-NI. Dzięki zwiększeniu liczby rejestrów, poszerzeniu części z nich oraz wprowadzeniu nowych instrukcji mobilne jednostki pod względem wydajności jeszcze bardziej zbliżą się do układów stosowanych w laptopach i komputerach stacjonarnych. Mówię ogólnie o procesorach mobilnych, gdyż architektura ARMv8 nie jest przeznaczona tylko dla urządzeń Apple, ale dla wszystkich producentów sprzętu, także tych produkujących podzespoły stworzone głównie z myślą o Androidzie czy… Chromebookach.
Swoją drogą, iOS 7 już został przystosowany do wykorzystania magii 64-bitów. Wszystkie działające w ramach systemu operacyjnego procesy, w tym wbudowane aplikacje takie jak Safari czy Mail w pełni korzystają z 64-bitowej architektury. Jest to bardzo dobry i przemyślany krok, Apple po prostu tworzy pełne środowisko składające się nie tylko z 64-bitowego sprzętu, ale też oprogramowania, które potrafi je wykorzystać. Jest to główna zaleta firmy z Cupertino, która wynika z tego, że system jest zamknięty, a oprogramowanie i sprzęt są projektowane i dostarczane przez jedną i tę samą korporację. Jeśli Apple lub Microsoft coś implementują w swoich telefonach, oznacza to, że będzie się dało to wykorzystać. Z kolei jeżeli coś znajdzie się w smartfonie z systemem Google’a, najczęściej oznacza to tylko tyle, że to tam jest. Tę sytuację najłatwiej jest porównać do drugiego aksjomatu Bałtroczyka, czyli paradoksu damskiej torebki, która nie istnieje po to, by coś w niej znaleźć, ale po to, by wszystko w niej było.
Jako że sam nie miałem jeszcze okazji przetestować iPhone’ 5S, posłużyliśmy się wynikami testów przeprowadzonymi przez Anandtech. Telefon został przetestowany w dwóch wersjach benchmarka Geekbench – 3.0 i 3.1, które zupełnie nie różnią się zastosowanymi testami, a tym, że nowsza wersja oprogramowania wspiera 64-bitową architekturę ARMv8. W ten sposób można łatwo zobaczyć, co daje nowy procesor. Jeśli chcemy sprawdzić, jaki wpływ na wzrost wydajności ma zastosowanie 64-bitowego procesora, należy odrzucić wyniki testów AES i SHA1 zarówno w wersji jedno i wielowątkowej. Ogromne, ośmiokrotne wzrosty wydajności zaobserwowane w nich wynikają z zastosowania nowych, specjalnie dedykowanych im instrukcji. Bardzo duży wzrost wydajności dało się zobaczyć we wspominanej już sytuacji, gdy procesory Intel Westmere zyskały instrukcję AES-NI. W pozostałych testach wzrost wydajności wynosi od kilku do kilkudziesięciu procent i są to wartości realne. Zdarzyło się też kilka spadków wydajności, ale wynikają one z tego, że w 64-bitowa architektura bardziej obciąża pamięć podręczną, która jest bardzo mocno wykorzystywana między innymi w teście Dijkstra, gdzie spadek wydajności wyniósł 25%. W pozostałych aplikacjach, gdzie wystąpił spadek, nie był on duży, gdyż wynosił on od 3 do 8% i mógł nastąpić z tego samego powodu.
Oprócz ogólnych testów, Anandtech zdecydował się też na przeprowadzenie testu jednostek obliczeniowych. Także one wypadły dobrze, przy czym naprawdę znaczną poprawę wydajności można było zaobserwować w testach DGEMM i SFFT.
Jak zatem trzeba traktować wykorzystanie 64-bitowej w nowych iSprzętach? Jak lokatę. Lokatę, którą za kilka lat będzie można wyciągnąć w całości, w dodatku z zyskanym procentem. Na razie jednak nie odczujemy żadnych korzyści z zastosowania nowego typu procesora. By to się zmieniło, na rynku musi pojawić się więcej iSprzętów lub aplikacji dedykowanych tylko najnowszym urządzeniom Apple. Nie można wierzyć jednak w słowa firmy z Cupertino, które mówią, że 64-bity już teraz są rewolucją, bo najzwyczajniej w świecie jest to po prostu nieprawda.