Apple A7 – 64 bity, które zmieniają wszystko [cz. 2]

Apple A7 – 64 bity, które zmieniają wszystko [cz. 2]

Apple A7
Apple A7
Źródło zdjęć: © Apple
Michał Mynarski
22.11.2013 13:44, aktualizacja: 13.12.2013 00:57

Po wcześniejszym, pełnym zachwytów wpisie o rdzeniach Apple'a, czas zastanowić się nad tym dlaczego Apple A7 jest jednostką tylko dwurdzeniową.

Niskie taktowanie i tylko dwa rdzenie, a mocy pod dostatkiem?

Qualcomm w swoim najmocniejszym aktualnie SoC umieścił Snapdragona 800 - 4 rdzeniową jednostkę, którą można kręcić do 2.3 GHz. Na papierze A7 wypada przy tym potworze wręcz smutno, a w praktyce mamy duże szanse na powtórkę z rdzeni Swift, które okazały się jednymi z najwydajniejszych i najbardziej oszczędnych na rynku.

Warto więc zadać pytanie - dlaczego Apple trzyma się tak relatywnie niskiego taktowania skoro technicznie procesory mobilne mogą się kręcić do dużo większych częstotliwości?

Anand la Shimpi:

Zawsze sądziłem, że przejście z dwóch do czterech rdzeni w urządzeniach mobilnych nastąpiło dużo szybciej, niż się tego spodziewałem. […] Ciężko teraz o dobry telefon z Androidem z mniejszą ilością rdzeni na pokładzie. […] Rynki takie jak Chiny wciąż mają popyt na większą ilość rdzeni, aniżeli ich jakość, stąd taki przyrost czterordzeniowych procesorów Cortex A5/A7

A CPU to nie tylko rdzenie, ale też ich taktowanie, które jest niczym innym jak balansowaniem między wydajnością, a poborem energii. Według ARM najlepszą częstotliwością dla rdzeni Cortex A-15 (napędzających m.in. Exynos 5 Dual w Nexusie 10) jest 1.2 GHz. Samsung w najnowszym Exynosie Octa (5420) rdzenie Cortex A-15 taktuje na 1.8 GHz. Wyższa częstotliwość zazwyczaj jest nierozłączna z wyższym napięciem do procesora, które procesorowi trzeba dostarczyć, a zależność między tym ostatnim , a poborem energii jest kwadratowa. Nie trudno się domyśleć, że windowanie taktowania to jeden z gorszych pomysłów na zwiększenie wydajności urządzenia. Nawet 100 MHz więcej może drastycznie wpłynąć na długość pracy na baterii. Zapewne stąd konserwatyzm i upór Apple w stawianiu na 1.3 GHz, zarówno w przypadku A6 jak i A7. Szczególnie biorąc pod uwagę, że iPhone 5 i 5S posiadają ogniowo o pojemności ok. 1400 mAh, blisko dwukrotnie mniej od Samsunga Galaxy S4.

Obraz

Warto również zaznaczyć, że taka częstotliwość została ustalona jako maksymalne taktowanie "bez turbo" dla nadchodzących procesorów Intela - Bay Trail.

Sześćdziesiąt cztery zera i jedynki - czy szum medialny jest tego wart?

Czas wgryźć się w najważniejszy element A7 - osławione 64 bity. Na ich temat w sieci mogliśmy oglądać istny festiwal skrajnych opinii, niestety często wypowiadanych bez podstawowej (do takich osądów) wiedzy, zarówno po stronie autorów, jak i czytających / komentujących. By zrozumieć czym przejście na 64 bity tak naprawdę skutkuje, trzeba dość głęboko wgryźć się w techniczne aspekty pracy procesora. Jednak nie mam zamiaru Was zanudzać, dlatego w ciągu kolejnych akapitów postaram się to jak najlżej przybliżyć.

Podstawowym błędem jest mierzenie przejścia Apple na 64 bity miarą adekwatnej transformacji w świecie komputerów osobistych. Rozpoczęta ok. 2000 roku przez AMD w pamięci wielu ludzi zapisała się, jako możliwość używania większej ilości pamięci RAM niż 4GB (chociaż wtedy komputery w domach o takiej ilości pamięci były abstrakcją!). Procesor 32 bitowy może adresować "jedynie" 2 do potęgi 32 adresów w pamięci RAM (czyli 4 GB), a wprowadzenie procesorów operujących na słowie dwa razy dłuższym pozwoliło na odblokowanie tego ograniczenia na długie lata (x64 pozwala na adresacje 256 TB pamięci). Powołując się na taki tok myślenia wielu ludzi było skłonnych stwierdzić:

Skoro iPhone 5S posiada 1GB pamięci, to te 64 bity to rezerwatowa ściema jest ~ Typowy Applehejter

Jednakże adresacja pamięci to jedna z kilku i wcale nie najważniejsza zmiana. Zaś samo przejście procesorów o intelowskiej architekturze, za którą od lat ciągnie się emulacja pradawnych jednostek opartych jeszcze o kompleksowe listy rozkazów nie może być bezpośrednio porównana z ewolucją architektury ARM, która powstała w pełni w oparciu o instrukcje RISC (Reduced Instruction Set Computing).

W przeciwieństwie do architektury x86, ARM wraz z przejściem na 64 bity wprowadza, wspomniane już wcześniej, nowe ISA (ARMv8), które raczej można nazwać napisanym od zera, aniżeli rozwinięciem poprzedniego (ARMv7). Będą one stosowane również w rdzeniach Cortex A57 i A53, dlatego w ciemno możemy założyć, że nowe Exynosy i Snapdragony również będą 64 bitowe. ARMv8 wspiera zarówno instrukcje A64, jak i A32, dzięki czemu jeden chip może wykonywać 64 bitowe instrukcje, ale również posiada wsparcie dla starszych, 32 bitowych. Oczywiście by wspierać oba zbiory potrzebny jest system 64 bitowy (jakim jest iOS7). Prawdopodobnie z czasem zostanie stworzony system obsługujący tylko 64 bitowe procesory ARM - ale to coś w sam raz na rynek serwerów, gdzie wsteczna emulacja nie jest tak potrzebna. Sama premiera A7 dla ARM i jego partnerów jest bardzo ważna właśnie z tego powodu - od dawna wiadomym jest, że ostrzą oni zęby na intelowski rynek serwerów i będą starali się z niego ugryźć jak najwięcej.

Wracając jednak do Apple - przyglądając się obecnym urządzeniom oraz nie tak odległej przeszłości nie potrzeba geniusza by zrozumieć, iż przejście na 64 bity na pewno nie było podyktowane nagłą potrzebą poszerzenia pamięci w iUrządzeniach.

Obraz

Jednak wraz z całkowicie nowym A64 na stole pojawia się kilka nowych kart, którymi stanowczo warto zagrać. W A7 znajdziemy dwa razy więcej (30) rejestrów ogólnego przeznaczenia, które są dwa razy dłuższe niż dotychczas (64 bity). Rejestry te można porównać do najmniejszych komórek pamięci wewnątrz procesora, do których układ ma bezpośredni dostęp, bez porównania szybszy niż do pamięci cache. To na nich CPU operuje, przeprowadza operacje arytmetyczne i również tam zostawia ich wyniki. Zwiększając liczbę rejestrów dwukrotnie pozwalamy procesorowi przechowywać dwa razy większą ilość danych, do których ma bezpośredni dostęp (bo pozostają one wewnątrz układu), nie ma potrzeby ich zapisu i odczytu z pamięci RAM (a są to operacje bardzo czasochłonne). Do tego procesor operuje na dwukrotnie dłuższym (64) słowie bitowym, czyli dwukrotnie dłuższych danych - w ciągu takiej samej ilości czasu CPU dokonuje przekształceń 64 zamiast 32 bitów . Czy to oznacza, że dzięki temu teraz A7 jest dwukrotnie szybszy? Absolutnie nie - w przypadku procesorów x86-x64, takie zwiększenie przestrzeni rejestrów było odpowiedzialne nawet za 10% wzrost wydajności układu (bez większego wpływu na pobór mocy). Przy ARM możemy założyć, że wynik będzie co najmniej podobny, a może nawet jeszcze trochę wyższy (od 10% do 25%).

W A7 zwiększono dwukrotnie również ilość rejestrów pliku zmiennoprzecinkowego. Teraz procesor posiada 32 rejestry operujące na argumentach 128 bitowych, które rządzą się swoimi prawami. Oprócz oczywistych zalet, jakie opisałem akapit wyżej, warto zaznaczyć, że w A7 zauważymy spory wzrost wydajności SIMD. SIMD to akronim od Single Instruction Multiple Data - działania te za pomocą jednej instrukcji operują na kilku argumentach. W praktyce wygląda to tak, że w jednym rejestrze możemy umieścić dwie lub cztery liczby (tzw. paczkowanie) - dzięki temu w ciągu jednej operacji uzyskujemy kolejno dwa i cztery wyniki zamiast jednego, co drastycznie zwiększa wydajność w obliczeniach (szczególnie wektorowych). Adekwatna technologia (SSE, SSE2 i 3) występuje w procesorach Intela - tam pozwala ona operować na:

  • 4 argumentach 32 bitowych pojedynczej precyzji
  • 2 argumentach 64 bitowych podwójnej precyzji
  • 128 bitowych jednobitowych argumentów działań logicznych
Obraz

Niestety jak na razie nie udało mi się dostać do dokumentów z listą instrukcji ARMv8 (dostęp mają tylko zarejestrowani przez ARM pracownicy firm współpracujących z firmą), trudno mi określić na ile podobnie jest to realizowane przez procesory A64 (strzelam, że bardzo podobnie), jednak można śmiało założyć, że zwiększenie przestrzeni do 128 bitów pozwoliło na zwiększenie dwukrotne ilości argumentów w operacjach SIMD, a to z kolei może nawet dwukrotnie i więcej przyspieszyć wykonywanie niektórych obliczeń i algorytmów (ale nie dwukrotnie zwiększyć wydajność całego procesora!), jeżeli będzie odpowiednio wykorzystana i zaimplementowana.

ARMv8 wprowadza również nowe kryptograficzne instrukcje dla sprzętowej akceleracji AES (symetryczny szyfr blokowy) SHA1/SHA256 (zestawy kryptograficznych funkcji mieszających).

Anand la Shimpi:

Zarówno zarówno instrukcje zaawansowanego SIMD jak i AES/SHA zostały tak naprawdę zaprojektowane na potrzeby nowej fali aplikacji na iOS

Już jutro pojawi się trzecia, ostatnia część wpisu, w którym podsumuję zalety układu i więcej opowiem o 64 bitach w praktyce.

Źródło artykułu:WP Komórkomania
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (0)