64 bity dla Androida

64 bity brzmi znacznie lepiej niż 32 i wszelkie znaki na niebie i ziemi świadczą o tym, że w 2014 roku wszyscy liczący się gracze na rynku mobilnym będą chcieli zagrać właśnie tą kartą. Jak szybko producenci procesorów będą w stanie wydać nowe, high-endowe układy? I czy rozwój Androida nadąży za rozwojem sprzętu, czy pozostanie w cieniu Apple, które jako pierwsze zaproponowało 64-bitowy system mobilny?

64 bity dla Androida
Źródło zdjęć: © www.phonearena.com
Mateusz Olejnik

Z góry zaznaczam, że jeżeli w tekście pojawią się jakieś niezrozumiałe sformułowania lub żargonowe zwroty, które dla mnie mogą być jasne (jestem z zawodu programistą) to chętnie wytłumaczę je w komentarzach.

Na początku tego miesiąca Kamil Zawiślak informował o tym, że Android też może być 64-bitowy i jako jedyne rozwiązanie podał architekturę Bay Trail, zaproponowaną przez Intela. Nie jest jednak do końca prawdą, że firmy takie jak Qualcomm nie wykazały się jakąś chęcią pracy nad 64-bitowym procesorem dla Androida. Owszem, prace te trwają już od jakiegoś czasu, czego efektem było wydanie pierwszego, co prawda budżetowego, ale w dalszym ciągu 64-bitowego procesora - Snapdragona 410. Na tym jednak nie koniec, gdyż w ostatnim czasie Samsung także postanowił zabrać głos w temacie 64-bitowych jednostek, rozpowszechniając pogłoski o prezentacji swoich implementacji architektury ARMv8. Zapowiedziane (póki co nieoficjalnie) procesory to 8-rdzeniowe Exynos 6 (oparty na architekturze ARM Cortex-A50) oraz Exynos S (oparty na autorskiej, 64-bitowej technologii Samsunga). Nowe układy mają być odpowiednio 1,53 oraz 1,43 razy wydajniejsze od aktualnie dostępnych w topowych smartfonach chipów Snapdragon 800. Czy jednak Android jako system operacyjny jest już na tyle dojrzały, aby w pełni wykorzystać potencjał 64 bitowych procesorów?

Obraz
© http://www.androidauthority.com

W pierwszej kolejności warto zauważyć, że rozszerzenie operacji ze słów 32-bitowych na 64-bitowe nie było spowodowane problemem w obsłudze pamięci RAM powyżej 4GB. Praktycznie żaden z obecnych modeli telefonów nie zbliżył się do tej granicy. Dlaczego zatem jest to tak ważna i często poruszana kwestia? W bardzo przystępny sposób opisał to Michał Mynarski w drugiej części swojego cyklu artykułów o nowym układzie Apple A7. W zmianie architektury chodzi przede wszystkim o wydajność, nie o długość słowa maszynowego. Architektura ARMv8 wprowadza zupełnie nowy zestaw instrukcji procesora, który odpowiedzialny jest za widoczną w codziennym użytkowaniu, znaczna poprawę wydajności pracy. Do zwykłego śmiertelnika łatwiej jednak dotrzeć marketingowym hasłem o 64-bitach vs 32-bitach, zamiast próbować tłumaczyć skomplikowane zasady działania procesorów.

Jako że jądro Androida oparte jest o Linuxa, odziedziczyło z niego wsparcie dla architektury 64-bitowej. Jednak w dalszym ciągu wszystkie biblioteki, odpowiedzialne za obsługę grafiki, systemu plików i multimediów oraz sterowniki dla różnorodnych urządzeń, zbudowane są jako 32-bitowe. Nie byłoby jednak problemem ich przebudowanie do 64-bitowej wersji wykonywalnej. Jest tak dlatego, że większość z aplikacji napisanych w Javie kompilowanych jest do kodu pośredniego (ang. bytecode) i pakowane jako APK. Następnie taka paczka wykonywana może być na urządzeniu w wirtualnej maszynie Dalvik lub w nowym (zaproponowanym w Androidzie 4.4) środowisku ART (Android RunTime). Bytecode aplikacji zostanie rozbity przez środowisko uruchomieniowe AOT (ahead-of-time) i tylko te fragmenty kodu, jakie potrzebne w danej chwili zostaną wykonane. Co prawda, w tej chwili zarówno Dalvik jak i ART używają 32-bitowych rejestrów, jednak są to czysto wirtualne obszary pamięci, nie mające nic wspólnego z bitowością sprzętu. W najgorszym przypadku aplikacja będzie musiała przejść przez dodatkowy interpreter, jednak koniec końców, użycie wirtualnej maszyny Dalvik czy ART powinno ułatwić zmianę platformy sprzętowej, zamiast utrudniać. Problem może pojawić się w przypadku aplikacji natywnych pisanych w C/C++, które nie są interpretowane lecz kompilowane bezpośrednio do kodu maszynowego oraz aplikacje, które mają być wstecznie kompatybilne z architekturą 32-bitową. Takie moduły będą musiały być w dużej mierze poprawione, co może zająć trochę czasu.

Obraz
© androidmagazine.pl

Jakkolwiek dobrze może wyglądać to z marketingowego punktu widzenia, przejście z architektury 32-bitowej na 64-bitową nie rozwiąże głównych problemów z jakimi boryka się w tej chwili Google. Chodzi przede wszystkim o to, że twórcy sprzętu nie chcą czekać na to, aż gigant z Mountain View zaproponuje zoptymalizowana wersję systemu, jeśli tylko mogą już pokazać światu nowe SoC. Programistów Androida czeka sporo pracy przy przebudowaniu natywnych aplikacji, o których wspomniałem w poprzednim akapicie, podczas gdy 64-bitowe układy już widnieją na horyzoncie. Producenci smartfonów, tacy jak Samsung czy LG, z pewnością nie będą czekać na nowy, zoptymalizowany system od Google, jeśli tylko będą mogli pochwalić się, że ich najnowsze flagowce posiadają 64-bitowe chipy na pokładzie. I znów trafimy do błędnego koła, w którym hardware będzie wyprzedzało software, a gdy Android zostanie już przebudowany tak, aby wykorzystywał w pełni nową architekturę, będziemy musieli jeszcze poczekać aż twórcy sprzętu wydadzą swoje aktualizacje. Jak widać przesiadka na nowe układy i szumna kampania reklamowa wcale nie muszą zwiastować końca pewnych problemów, z którymi borykają się użytkownicy od początku ery smartfonów.

Patrząc na cykl wydawniczy systemu Google'a, nowej wersji Androida możemy spodziewać się najwcześniej w połowie 2014 roku. Czy będzie ona całkowicie kompatybilna z 64-bitowymi procesorami? Jak na razie Google nie odniosło się w żaden sposób do tej kwestii. Najprawdopodobniej, jeśli tylko taki system się pojawi, to na urządzeniach z linii Nexus – na wprowadzenie 64-bitowego Androida do urządzeń różnych producentów użytkownicy będą musieli poczekać jeszcze dłużej. Mimo braku wsparcia systemowego, jestem prawie pewien, że na pudełkach z przyszłorocznymi flagowcami ujrzymy informację iż urządzenie znajdujące się w środku wyposażone jest w niesamowicie szybki i wydajny, 64-bitowy SoC.

Obraz
© sammyhub.com

Przejście na architekturę 64-bitową w mobilnych procesorach ARM jest bardzo ważnym krokiem, który musi zostać podjęty, aby technologie wykorzystywane w smartfonach nie utknęły w miejscu. W przeciwieństwie do naszych domowych pecetów, nie chodzi o wykorzystanie pamięci operacyjnej większej niż 4GB, lecz o zastosowanie nowego zbioru instrukcji (ISA – Instruction Set Architecture), wykorzystywanego w architekturze ARMv8. Dotychczasowy ISA osiągnął bowiem granicę swojej wydajności, a wytwórcy sprzętu nie mogą ograniczać się jedynie do mnożenia liczby rdzeni i podkręcania zegara, gdyż zaowocowałoby to nieakceptowalnym zużyciem energii i wysokim poziomem emisji ciepła. Dlatego też zmiana architektury wydaje się jedynym sensownym rozwiązaniem, mogącym w widoczny sposób wpłynąć korzystnie na wydajność urządzeń. Użytkownicy będą mogli odczuć tę zmianę jednak dopiero wtedy, gdy razem ze sprzętem otrzymają odpowiednio zoptymalizowany software. Jak widać rok 2014 zapowiada się w tej kwestii niezwykle interesująco, a producenci raczej nie pozwolą nam się nudzić.

Źródła:

Źródło artykułu:WP Komórkomania
Wybrane dla Ciebie
Komentarze (0)