Precz z Intelem! Czy przesiadka na ARM jest możliwa? Cz. II: zyski, straty, możliwości…
Po wstępie historycznym trochę przemyśleń co Apple, my (użytkownicy i programiści) możemy zyskać lub stracić przez hipotetyczne porzucenie architektury x86 na rzecz ARM oraz dlaczego tak może się stać.
Strona 2 z 3
ARM… to ramie silne jest!
Jak we wstępie napisałem, procesory w architekturze ARM są jakie są bo na razie nie muszę być lepsze (wydajniejsze). Teraz mają być energooszczędne (i co za tym idzie nie grzać się zbyt mocno) oraz niezawodne. I takie właśnie są.
Najważniejsza bariera jaką był brak 64–bitowej architektury została pokonana już 2 lata temu i to ze znaczącym udziałem Apple. Teraz czas na zwiększenie wydajności, między innymi tradycyjnymi metodami jak zwiększenie taktowania czy ilości rdzeni procesorów.
Znów ciut historii
Procesory ARM powstały jako koprocesory i potem serca komputerów osobistych firmy Acorn.
Pod koniec lat 80, Apple rozpoczął współprace z firmą Acorn i razem z nią oraz VLSI Technology założyło Advanced RISC Machines Ltd (obecnie ARM Holdings). Wspólnie opracowany procesor ARM610 został użyty przez Apple w słynnym protoplaście wszystkich „padów” – Newtonie. Czyli Apple już ponad 20 lat temu „maczał palce” przy projektowaniu architektury ARM. Po zamknięciu przez Jobsa projektu Newton Message Pad (1998 r.) w 2007 roku procesory ARM znów wróciły do łask u Apple w iPhonach.
Pisząc „procesory ARM” stosuję pewnie uproszczenie. ARM nie produkuje procesorów, a jedynie licencjonuje architekturę (np. dla Apple) oraz projekty rdzeni (Apple już projektuje własne). Apple sam też nie produkuje „swoich” układów. Własne projekty (oparte o architekturę ARM) zleca do wykonania innym, między innymi Samsungowi.
Siła prostoty
W przeciwieństwie do architektury x86 gdzie mamy z powodu zachowywania na siłę zgodności z bardzo starymi wersjami procesorów niezły bałagan w rejestrach, których część jest jeszcze 16–bitowa, część, 32–bitowa i trochę 64–bitowa, a jeszcze trochę specjalnego przeznaczenia, ARM–64 ma 31, 64–bitowych rejestrów ogólnego przeznaczenia i kilka specjalnych (jak licznik programu i rejestr statusu w wersjach dla użytkownika i nadzorcy). Do tego dochodzą bardzo fajnie pomyślane instrukcje. Np. większość z nich zawiera kod uzależniający ich wykonanie od ustawień rejestru warunków. Czyli nie używa się dodatkowych instrukcji warunkowych. Inne cechy to instrukcje wykonujące dodawanie i operacje na bitach w jednym cyklu. Jak każdy współczesny procesor ARM ma też koprocesor arytmetyczny oraz „wektorową jednostkę multimedialną” NEON. W najnowszych wersjach ARM jest też wbudowane rozszerzenie TrustZone do operowania na wyjątkowo tajnych danych. Z tego mi. korzysta Touch ID.
Dla ciekawskich: Rejestry w procesorach x86 Intela, Rejestry w procesorach ARM.
Znamienne jest to, że architektura x86 powstawała niewiele wcześniej (~1978 rok) od ARM (rozpoczęto prace w 1983 r.), a ARM już na starcie było znacznie bardziej nowoczesne. Pierwszy ARM2 był w pełni 32 bitowy z 26–bitową szyną adresową. Mógł zaadresować 64 MB pamięci czyli lepiej niż Motorola 68000, która mogła obsłużyć 16 MB. Miał też od razu aż 27, 32–bitowych rejestrów. Intele x86 w tym czasie posługiwały się stronicowym adresowaniem pamięci (koszmar), a trochę rejestrów 32–bitowych dostały w 1985 roku wraz z 80386.
Oczywiście poza samym procesorem w układach SoC Apple serii A znajdują się rdzenie procesora graficznego PowerVR (opracowywane przez firmę Imagination Technologies częściowo zależną od Apple, mającą jeden z oddziałów we Wrocławiu), dodatkowe jednostki wspierające jak MMU, a w wersjach dla iPhonów również pamięć RAM i inne „drobiazgi”.
A jak to jest w praktyce
Przeprowadziłem dla Was kilka testów porównawczych wydajności procesorów x86 i ARM. Ba! Nawet napisałem specjalny program do testowania prędkości, którego wersję na OS X już możecie pobrać z mojej strony (wersja na iOS czeka na akceptację u Apple). Program wykonuje serię prymitywnych obliczeń nie angażujących grafiki, jednostek wektorowych czy nawet specjalnie pamięci RAM. Testuje czystą prymitywną siłę procesora ;-)
Rywalizowały:
- Apple MacBook Air mid 2013 procesorem i7 1,7 GHz oraz 8GB RAM
- iPhone 6 plus z układem SoC A8 1,4 GHz i 1 GB RAM
- iPhone 5s z układem SoC A7 1,3 GHz i 1 GB RAM (tylko test iMovie)