artykuły

Rzecz o procesorach ARM, ich pojedynku z procesorami x86 oraz ich przyszłości

Anatomia ARM

82 6 sierpnia 2016, 09:00 Mieszko Krzykowski, Mateusz Brzostek

Jedna z najważniejszych różnic między procesorami x86 a procesorami ARM dotyczy nie ich architektury, a licencji na nie i tego, jak są przekuwane na gotowe produkty. W środowisku pecetowym jesteśmy przyzwyczajeni do modelów biznesowych Intela i AMD. Ogólnie pojęta licencja x86 (czyli licencja na tworzenie procesorów zgodnych z tym zestawem instrukcji) to współczesna wersja węzła gordyjskiego – poplątanych zależności między Intelem, AMD i VIA – do którego mają dostęp jedynie te trzy firmy. Intel ma pełną kontrolę nad swoimi procesorami, bo nie tylko je projektuje, ale też produkuje w swoich fabrykach, po czym dystrybuuje do klientów. AMD i Nvidia nie mają własnych fabryk, więc produkcję zaprojektowanych przez siebie czipów zlecają zewnętrznym firmom (TSMC, GlobalFoundries), a zarazem ściśle współpracują z nimi w czasie przygotowywania linii produkcyjnych.

W przypadku ARM wygląda to zupełnie inaczej. Firma ta nie oferuje gotowych procesorów ani też nikomu nie zleca ich wytworzenia (poza pewnymi wyjątkowymi sytuacjami, o których za chwilę), a w swoim katalogu umieszcza jedynie różnego rodzaju licencje, które może kupić każdy producent posiadający odpowiednią ilość gotówki.

Najmniej ciekawa (przynajmniej z punktu widzenia miłośników technicznych nowinek) jest licencja POP (Processor Optimization Pack). Firmy decydujące się na nią przeważnie nie mają możliwości (albo chęci) samodzielnej implementacji rdzeni ARM lub projektowania ich od zera. Licencja POP obejmuje wybrane, konkretne rdzenie ARM (w tej chwili dostępne są: Cortex-A72, Cortex-A53, Cortex-A35, Cortex-A9, Cortex-A7, Cortex-A5 i Cortex-M) w wybranej konfiguracji (od jednego do czterech), układ graficzny Mali-T880/T860, zestaw interkonektów oraz instrukcje, jak to wszystko ze sobą poskładać i wyprodukować w konkretnym procesie technologicznym, oferowanym przez jedną z wybranych fabryk. Inaczej mówiąc, nabywca licencji POP otrzymuje niemalże kompletny schemat procesora w wybranej przez siebie konfiguracji, którego produkcję może względnie szybko i bezboleśnie rozpocząć u danego wykonawcy. Z drugiej strony jest ona mało elastyczna, nie pozostawia pola na własne optymalizacje i ktoś, kto z niej korzysta, zawsze jest trochę w tyle za firmami opracowującymi wszystko we własnym zakresie.

Bardziej zaawansowanym rodzajem licencji jest licencja na konkretną architekturę rdzenia zaprojektowanego przez ARM (Cortex-A73, Cortex-A72, Cortex-A57 i tak dalej), którą trzeba samemu fizycznie zaimplementować w tworzonym przez siebie procesorze, z myślą o wybranym procesie technologicznym. ARM dorzuca do tego licencję na interkonekty i umożliwia dokupienie licencji na wybrany układ graficzny, więc od firmy tej można kupić niemal wszystkie niezbędne elementy SoC-a. Nie oznacza to jednak, że ich nabywca ma łatwe życie, bo połączenie tego wszystkiego w sensowny sposób i przystosowanie do konkretnego procesu wcale nie jest łatwe i wymaga dużej wiedzy i sporego nakładu pracy. Właśnie z tego rodzaju licencji korzystają inżynierowie HiSilicon, gdy projektują Kiriny, inżynierowie Samsunga, gdy tworzą większość Exynosów, czy pracownicy Qualcomma, gdy uznają, że z jakiegoś powodu nie opłaca się projektować czegoś od zera (przykładem Snapdragony serii 200, 400, 600 i osławione Snapdragony 808 i 810).

Trzecim z głównych rodzajów licencji jest licencja na tworzenie własnych procesorów zgodnych z wybranym zestawem instrukcji ARM (32-bitowy ARMv7 lub starszy, 64-bitowy ARMv8). Korzystają z niej tylko najbardziej ambitne firmy, które potrafią zaprojektować procesor od zera i uważają, że w ich przypadku będzie to miało więcej sensu niż skorzystanie z gotowych rozwiązań ARM. W sumie, choć ARM ma ponad 300 klientów, tylko kilkunastu z nich zdecydowało się na ten rodzaj licencji, co raczej nikogo nie dziwi, bo uzdolnieni architekci procesorów są kosztowni i ich populacja jest porównywalna z populacją białych nosorożców...

Od niedawna ARM oferuje nowy rodzaj licencji, który można umieścić gdzieś pomiędzy drugą a trzecią z wymienionych. Nabywca licencji Built on ARM Cortex Technology bierze jeden z gotowych rdzeni i może poprosić ARM o zmodyfikowanie go, żeby lepiej utrafił w konkretne potrzeby. Co ciekawe, powstały w ten sposób rdzeń może mieć nazwę zupełnie niezwiązaną z Corteksem, na którego fundamencie zostanie zbudowany, więc za jakiś czas możemy mieć problem z rozpoznaniem, czy jakiś procesor został faktycznie zaprojektowany przez kogoś od zera, czy jest to Cortex przeprojektowany głównie przez architektów ARM. Pierwszym nabywcą tej licencji jest Qualcomm, ale na razie trudno przewidzieć, jaki będzie miała ona wpływ na kształt przyszłych Snapdragonów.

3