64-bitowa architektura CPU
x86 tradycyjnie celuje w szczytową wydajność ponad wszystko inne, co jest kluczową różnicą z procesorami Arm, które dążą do lepszej efektywności energetycznej. W dzisiejszym świecie mamy 64-bitowe architektury, które stanowią główny nurt w smartfonach i komputerach PC. Zmiana ta nie nastąpiła tak szybko, około 2012 roku telefony również przeszły na tę architekturę, ale nie zmieniło to sposobu, w jaki korzystamy z tych urządzeń, a jedynie sprawiło, że lepiej sobie radzą. Dziś obie architektury obsługują 64-bit, ale jest to bardziej istotne w smartfonach.
Komputery PC przeszły na 64-bit na długo przed smartfonami, ale to nie Intel stworzył nowoczesną architekturę x86-64 (znaną również jako x64). To wyróżnienie należy do ogłoszenia AMD z 1999 roku, które zmodernizowało istniejącą architekturę x86 Intela.
Arm Architecture
Arm jest oparty na architekturze RISC (Reduced Instruction Set Computing), podczas gdy Intel (x86) jest oparty na architekturze CISC (Complex Instruction Set Computing). Instrukcje CPU Arm są dość atomowe, z bardzo bliskiej korelacji między liczbą instrukcji i mikro-ops. CISC, dla porównania, oferuje o wiele więcej instrukcji, z których wiele wykonuje wiele operacji (takich jak zoptymalizowana matematyka i ruch danych). Prowadzi to do lepszej wydajności, ale większego zużycia energii przy dekodowaniu tych złożonych instrukcji.
Arm wprowadził swoją 64-bitową architekturę ARMv8 w 2011 roku. Zamiast rozszerzać swój 32-bitowy zestaw instrukcji, Arm oferuje czystą 64-bitową implementację. Aby to osiągnąć, architektura ARMv8 używa dwóch stanów wykonawczych, AArch32 i AArch64. Jak sugerują nazwy, jeden z nich jest przeznaczony do uruchamiania 32-bitowego kodu, a drugi do 64-bitowego. Piękno projektu ARM polega na tym, że procesor może płynnie przełączać się z jednego trybu do drugiego podczas normalnego wykonywania. Oznacza to, że dekoder dla 64-bitowych instrukcji jest nowym projektem, który nie musi zachowywać zgodności z erą 32-bitową, a jednocześnie procesor jako całość pozostaje kompatybilny wstecz.
Wygrana ARM w mobilnym ekosystemie
Różnice architektoniczne omówione powyżej częściowo wyjaśniają obecne sukcesy i problemy, z jakimi borykają się dwa chipowe behemoty. Podejście Arm do niskiego poboru mocy jest idealnie dopasowane do wymagań 3,5W Thermal Design Power (TDP) w urządzeniach mobilnych, jednak wydajność skaluje się tak, aby dorównać również układom Intela dla laptopów. Tymczasem 100W TDP typowego Core i7 Intela wygrywa w serwerach i wysokowydajnych komputerach stacjonarnych, ale historycznie zmaga się ze skalowaniem poniżej 5W.
Jedna unikalna cecha architektury Arm była szczególnie pomocna w utrzymaniu niskiego TDP dla aplikacji mobilnych, obliczeń heterogenicznych. Idea jest dość prosta, zbudować architekturę, która pozwala różnym częściom procesora (pod względem wydajności i mocy) współpracować ze sobą w celu zwiększenia wydajności. Heterogeneous Multiprocessing (HMP) jest już duży w przestrzeni Android, zobacz chipy takie jak Snapdragon 810, Exynos 7420 lub Helio X20, ale Heterogeneous Compute (HC) jest następną ewolucją.
Widzisz, procesory mogą być zaprojektowane do wykonywania niektórych zadań bardziej wydajnie, ale pojedynczy projekt walczy być wielki na wszystko. Typowy procesor centralny może być dobry w przetwarzaniu szeregowym, podczas gdy procesor graficzny poradzi sobie ze strumieniami danych równoległych, a procesor DSP jest lepiej zoptymalizowany do obliczania liczb z dużą dokładnością w czasie rzeczywistym. Mając do wyboru szerszy zakres opcji, teoria głosi, że wybranie najlepszego procesora do konkretnego zadania zaowocuje lepszą wydajnością i energooszczędnością.
Najszybszy komputer na świecie w momencie pisania tego tekstu jest oparty na architekturze ARM!
Fugaku jest obecnie najszybszym superkomputerem na świecie. W ramach projektu TOP500, japoński komputer Fugaku został uznany za najszybszy na świecie i jest wyposażony w procesor A64FX. Fugaku znajduje się w RIKEN Center for Computational Science w Wakō, Japonia.
Kompatybilność oprogramowania
Aplikacje i oprogramowanie muszą być skompilowane dla architektury procesora, na którym działają, historycznie ekosystemy takie jak Android na Arm lub Windows na x86 nie mają problemu z działaniem na wielu platformach lub architekturach. Apple’s Arm-based Macs, Google’s Chrome OS, i Microsoft’s Windows on Arm są wszystkie nowoczesne przykłady, gdzie oprogramowanie musi działać na obu architekturach Arm i Intel. Kompilowanie natywnego oprogramowania dla obu jest opcją dla nowych aplikacji i programistów, którzy chcą zainwestować w rekompilację. Aby wypełnić luki, platformy te opierają się również na emulacji kodu. Innymi słowy, tłumaczenie kodu skompilowanego dla jednej architektury procesora, aby działał na innej. Jest to mniej wydajne i pogarsza wydajność w porównaniu do aplikacji natywnych, ale dobra emulacja jest obecnie możliwa, aby zapewnić działanie aplikacji.
Po latach rozwoju, emulacja Windows on Arm jest w całkiem dobrym stanie dla większości aplikacji. Aplikacje na Androida działają na Chromebookach Intela przyzwoicie w przeważającej części też. Będziemy musieli poczekać i zobaczyć, czy Arm Macbooki uruchomić jak dobrze.
Mam nadzieję, że podobał Ci się artykuł i dostał informacje, które chciał od niego, jeśli tak śledź mnie na więcej postów, takich jak ten w przyszłości. Robię co w mojej mocy, aby zapewnić cenne informacje dla każdego, kto szuka go.