ARM kontra x86 – co nas czeka w przyszłości?

Czas czytania: 7 min.

Na rynku procesorów od lat możemy obserwować rywalizację. Konkurujące ze sobą firmy wypuszczają coraz nowocześniejsze konstrukcje, próbując, choć w pewnym stopniu prześcignąć technologicznych przeciwników. Wojna wydajnościowa trwa, ale jest jeszcze jeden konflikt, o którym nie słyszymy zbyt często – konflikt architektur.

Dominującymi rozwiązaniami w dziedzinie architektury procesorów jest ARM i x86. Obie koncepcje znalazły swoją własną niszę, układy oparte na architekturze ARM znajdziemy w urządzeniach mobilnych oraz sprzętach IoT, natomiast procesory x86 są z powodzeniem wykorzystywane w komputerach osobistych i serwerach. Podział ten funkcjonował przez lata, ale w ostatnim czasie możemy obserwować coraz to większą rywalizację. Jej głównym powodem jest ciągle rosnąca popularność układów z rdzeniem ARM i ich zastosowanie w zdominowanych do tej pory przez x86 urządzeniach.

Inżynierowie projektujący układy scalone stoją obecnie przed wyjątkowym wyzwaniem – ARM czy x86? Które z tych rozwiązań w przyszłości okaże się wydajniejsze, bardziej energooszczędne i łatwiejsze w implementacji? Czy należy spodziewać się rewolucyjnych zmian, czy też może obie te potęgi zdołają znaleźć swoje własne unikalne miejsce w przyszłym ekosystemie cyfrowej technologii?

Architektura procesora – co to takiego?

Każda centralna jednostka obliczeniowa budowana jest według ściśle określonych zasad, nazywanych architekturą procesora. Według niej określany jest sposób działania układu, obejmujący zagadnienia takie jak: obsługiwane instrukcje, przesyłanie danych, organizacja rejestrów, komunikacja z pamięcią, tryby pracy czy też współpraca z pozostałymi peryferiami typowymi dla układów logicznych.

Procesory są układami, w których nie można sobie pozwolić na niedopowiedzenia, każdy składnik wchodzący w skład architektury musi być dokładnie przemyślany, w przeciwnym razie zaprojektowany układ nie zadziała.

Istnieje kilka różnych architektur procesorów, każda z nich posiada własny zestaw zalet, jak i wad. Wybór odpowiedniego zestawu zasad projektowania centralnej jednostki obliczeniowej zależy od konkretnego zastosowania, wymagań wydajnościowych, energooszczędności oraz dostępności oprogramowania i ekosystemu związanego z daną architekturą. Właśnie dlatego architektura procesora jest jednym z kluczowych punktów procesu projektowania tego typu układów.

Procesory starsze i nowsze.

Kilka najważniejszych architektur procesorów:

  • x86: Jest to jedna z najbardziej rozpowszechnionych architektur procesorów, używana głównie w komputerach osobistych i serwerach.
  • ARM: Układy zaprojektowane według zasad architektury ARM spotkać można głównie w urządzeniach mobilnych, takich jak smartfony, tablety, a także w sprzętach Internetu Rzeczy (IoT).
  • MIPS: Lata świetności architektury MIPS (Microprocessor without Interlocked Pipeline Stages) przypadają na lata 80. i 90., to właśnie w tamtym czasie projektowano układy w oparciu o ten zestaw zasad. Współcześnie architektura ta, choć mniej powszechna, wciąż znajduje zastosowanie w niektórych urządzeniach sieciowych i systemach wbudowanych.
  • PowerPC: Architektura PowerPC wykorzystywana była głównie w komputerach Apple Macintosh oraz w niektórych konsole do gier, takich jak PlayStation 3. Obecnie jest już praktycznie niespotykana.
  • RISC-V: To otwarta architektura, która z każdym rokiem staje sią coraz bardziej popularna. Wykorzystywana jest głównie w świecie systemów wbudowanych.

To tylko kilka z bardziej znanych architektur procesorów. Każda z nich ma swoje unikalne cechy i zastosowania, ale królami branży jest wspomniany wcześniej ARM i x86.

Jaka architektura była pierwsza?

Historia architektury procesorów sięga tak naprawdę lat 40. XX wieku, czasów, w których powszechnie stosowane dziś układy scalone jeszcze nie istniały. To właśnie w tamtym czasie powstał pierwszy, podstawowy model organizacji komputera opracowany przez Johna von Neumanna. Opis ten jest dość ogólny i odnosi się do maszyn cyfrowych jako całości, ale możemy znaleźć w nim informację o podstawowych zadaniach i organizacji procesora. Według koncepcji von Neumanna jednostka centralna jest mózgiem komputera, który wykonuje operacje obliczeniowe i zarządza działaniem całego systemu.

Frederico Faggini opisujący mikroprocesor Intel 4004. Źródło: https://spectrum.ieee.org/chip-hall-of-fame-intel-4004-microprocessor

Na powstanie pierwszego procesora, a w zasadzie mikroprocesora musieliśmy czekać aż do 1971 roku. Wówczas zespół inżynierów Intela pod kierownictwem Teda Hoffa zaprezentował światu układ oznaczony jako Intel 4004. Chip ten, który z dzisiejszej perspektywy możemy określić kamieniem milowym technologii, zaprojektowany był według zasad zaproponowanych przez wspomnianego wcześniej von Neumanna. Układ miał 4-bitową architekturę i w swoim wnętrzu posiadał kilka typowych dla dzisiejszych procesorów komponentów takich jak: jednostka arytmetyczno-logiczna (ALU), rejestry robocze oraz struktury sterujące.

Wprowadzenie na rynek mikroprocesora Intel 4004 uświadomiło ówczesnych entuzjastów technologii, że systemy cyfrowe można projektować inaczej. Nie muszą być to skomplikowane, zaprojektowane pod konkretne zastosowanie maszyny, lepszym rozwiązaniem będzie przygotowanie systemów charakteryzujących się sporą uniwersalnością. Tym sposobem coraz więcej przedsiębiorstw zaczęło projektować własne układy procesorowe, ówczesny rynek można by określić jako „dziki zachód”. Każdy wprowadzał na rynek własne rozwiązania i choć większość układów oparta była na architekturze von Neumana, to ciężko było o jakąkolwiek kompatybilność.

Przełom następuje w 1978 roku, wraz z pojawieniem się układu Intel 8086, który był pierwszym komercyjnym mikroprocesorem z rodziny x86, nazwę architektury zaczerpnięto właśnie z oznaczenia modelu tego procesora. Od tego momentu wszystkie układy niebieskich należały do rodziny x86 i charakteryzowały się kompatybilnością wsteczną, oznacza to, że przygotowane przez specjalistów oprogramowanie, dostosowane do architektury x86 powinno dać się uruchomić na każdym układzie z tej serii. Niestety w praktyce nie zawsze tak było.

Po raz pierwszy o architekturze ARM można było usłyszeć na początku lat 80., w tamtym czasie niezadowoleni z dostępnych na rynku procesorów inżynierowie firmy Acorn Computers postanowili zaprojektować własny unikalny układ. Projekt nazwali Acorn RISC Machine, czyli w skrócie ARM. RISC, oznaczało, że procesor wyposażony zostanie w ograniczoną liczbę instrukcji, co w tamtym czasie wydawało się dość dziwne. Bardziej popularne było podejście „więcej instrukcji to większa wydajność”. Inżynierowie wiedzieli, że zadanie to nie będzie łatwe. „Zespół był tak mały, że każda decyzja projektowa musiała sprzyjać prostocie – inaczej nigdy nie dokończylibyśmy projektu” – wspomina Steve Furber, profesor inżynierii komputerowej na uniwersytecie w Manchesterze.

Płyta główna z procesorem ARM1. Źródło: https://www.theregister.com/2016/02/09/arm1_reverse_engineered/

Ostatecznie prostota okazała się kluczowa. Pierwszy układ ARM był mały, energooszczędny i łatwy do zaprogramowania. Sophie Wilson, który zaprojektował zestaw instrukcji, wciąż pamięta, kiedy po raz pierwszy przetestował układ w komputerze. „Wpisaliśmy w wierszu poleceń ‘PRINT PI’ i otrzymaliśmy poprawną odpowiedź. Wtedy otworzyliśmy butelki szampana.”

Specyfika architektury x86

Znana od lat 70., architektura x86 stosowana jest z powodzeniem do dziś. Procesory oparte na tym modelu znajdziemy w wielu urządzeniach, głównie komputerach osobistych i serwerach. Chcąc w pełni zrozumieć jej znaczenie w dzisiejszym świecie, poznać trzeba kilka z jej kluczowych cech charakterystycznych.

Płyta główna z miejscem na procesor x86.

Procesory x86 oparte są na zasadzie CISC, oznacza to, że każda tego typu jednostka ma rozbudowany zestaw instrukcji. Pozwala to wykonywać całkiem złożone operacje w jednym cyklu zegarowym, co bez wątpienia jest zaletą, ale należy pamiętać, że takie rozwiązanie powoduje też spory problem. Procesory CISC są dość rozbudowane pod względem logicznym, mówiąc inaczej, ich bloki sterowania są złożone, przez co wraz z każdą dodaną przez projektantów instrukcją stopień zaawansowania całej konstrukcji rośnie.

Układy x86 operują na 32-bitowych i 64-bitowych danych, mimo że pierwsze konstrukcje z tej serii były 16-bitowe. Zwiększenie długości obsługiwanych danych wymusił postępujący rozwój technologii, umożliwiło to obsługę większej ilości pamięci i bardziej zaawansowanych aplikacji.

Segmentacja pamięci jest kolejną cechą charakterystyczną architektury x86. Dzięki temu procesor potrafi adresować pamięć w sposób zorganizowany, uruchamiana aplikacja odwołuje się tylko do konkretnego segmentu, tym samym z punktu widzenia użytkownika fizyczny adres konkretnej komórki nie jest znany. Model ten jest dziedzictwem architektury von Neumanna i był używany już w starszych procesorach x86.

Procesory x86 mogą działać w różnych trybach, takich jak tryb rzeczywisty, tryb chroniony i tryb wirtualny (tryb rzeczywisty rozszerzony). Każdy z nich ma swoje unikalne zastosowania, wspiera różną funkcjonalność i poziomy ochrony.

Współczesne układy x86 znane są ze swojej wielordzeniowości. Dzięki wielu fizycznym rdzeniom układ może wykonywać wiele zadań jednocześnie, co poprawia wydajność całego systemu.

Ważną cechą procesorów x86 jest wspomniana już wcześniej kompatybilność wsteczna, dzięki temu starsze aplikacje i systemy operacyjne napisane dla starszych wersji procesorów powinny działać na nowszych procesorach bez większych problemów.

Charakteryzacja architektury ARM

Główny rywal x86, czyli architektura ARM również charakteryzuje się unikalnym zestawem cech, które warto znać.

Układy ARM oparte zostały na zasadzie RISC, co oznacza zredukowaną do minimum listę wspieranych instrukcji. Proste instrukcje pozwalają na szybkie wykonywanie operacji, tym samym zmniejszając złożoność procesora.

Jedną z kluczowych zalet układów ARM jest ich niska konsumpcja energii. Procesory tego typu projektowane są tak, aby zużywały jak najmniej energii, co sprawia, że są idealne do zastosowań w urządzeniach mobilnych, takich jak smartfony i tablety, gdzie długi czas pracy na baterii jest niezwykle ważny.

Architektura ARM jest skalowalna i może być dostosowana do różnych wymagań i zastosowań. Procesory ARM występują w różnych wariantach, od prostych mikrokontrolerów po zaawansowane serwery, co pozwala na zastosowanie ich w wielu różnych urządzeniach.

Podobnie jak x86, ARM również wspiera wielordzeniowość, co pozwala na równoległe wykonywanie wielu zadań i zwiększa wydajność.

Procesor ARM na płytce STM32 Nucleo.

Różnice między ARM i x86

Zadanie każdego procesora jest tak naprawdę takie samo – wykonywać obliczenia. Mimo tego sama organizacja i działanie układów może być różne. Znając już specyfikę architektury ARM i x86 dość łatwo można zauważyć kilka istotnych różnic między nimi:

  • Zestaw instrukcji – Układy x86 wspierają model CISC, czyli rozbudowaną listę instrukcji. Procesory ARM projektowane są z myślą o zredukowanej do niezbędnego minimum liście rozkazów, takie podejście określane jest jako RISC.
  • Wydajność – Ze względu na różnice w zestawie wspieranych instrukcji układy x86 i ARM charakteryzują się różną wydajnością. Procesory x86 są zazwyczaj bardziej wydajne w wykonywaniu operacji na liczbach zmiennoprzecinkowych, podczas gdy procesory ARM radzą sobie lepiej w prostych zadaniach.
  • Wielordzeniowość – Obie architektury wspierają wielordzeniowość, ale ARM radzi sobie w niej nieco lepiej. Już od lat znane są układy łączące rdzenie o różnej wydajności w jednym krzemowym układzie, tego typu rozwiązanie wykorzystywane jest przede wszystkim w konstrukcjach mobilnych.
  • Rozmiar i moc – Procesory ARM są zwykle mniejsze i bardziej energooszczędne niż układy x86, co sprawia, że są idealne dla urządzeń mobilnych, gdzie niezwykle ważna jest miniaturyzacja i zużycia energii.

Zarówno x86, jak i ARM mają swoje unikalne zalety i zastosowania. Wybór między nimi zależy od specyfikacji i wymagań danego urządzenia czy systemu, a obie architektury odgrywają kluczową rolę w dzisiejszym cyfrowym świecie.

Praktyczne zastosowanie x86 i ARM

Procesor x86.

Jednymi z najbardziej znanych przedsiębiorstw projektujących procesory oparte na architekturze x86 są Intel Corporation oraz Advanced Micro Devices (AMD). Ich produkty znaleźć możemy przede wszystkim w komputerach osobistych, zarówno stacjonarnych, jak i mobilnych. Poza tym układy x86 stosowane są w centrach danych i serwerowniach.

Procesory ARM można spotkać głównie w urządzeniach mobilnych, takich jak smartfony i tablety. Poza tym tego typu konstrukcje wykorzystywane są w urządzeniach IoT oraz branży systemów wbudowanych. Warto też wspomnieć, że od kilku lat obserwować możemy stopniowe przejście firmy Apple na układy ARM. Dotychczas komputery tego amerykańskiego producenta napędzane były przez układy Intela o architekturze x86, jednak w 2020 roku zastąpione zostały przez chipy M1 zaprojektowane w konwencji ARM. Firmami dostarczającymi procesory ARM są: ARM Holdings, Qualcomm, MediaTek, Samsung Electronics oraz Apple. 

Procesor Apple M1. (Źródło: https://www.dobreprogramy.pl/macos-11-3-wydany-apple-zmienia-zdanie-w-sprawie-chipu-m1,6633347700726432a)

Przyszłość należy do…

Przyszłość procesorów x86 i ARM może być niezwykle ciekawa, obie architektury mają potencjał do dalszego rozwoju i innowacji, choć trzeba przyznać, że wizja, w której kluczowa będzie wydajność i energooszczędność jest bardziej łaskawa dla konstrukcji ARM. Jakkolwiek nie wyglądałyby procesory w przyszłości, koncepcja chipów ARM i x86 nie zniknie z dnia na dzień, każda z nich będzie prawdopodobnie rozwijana i stosowana w konkretnych obszarach technologii. 

Źródła:

https://www.hackernoon.com/understanding-modern-cpu-architecture-part-1
https://www.arstechnica.com/gadgets/2022/09/a-history-of-arm-part-1-building-the-first-chip/
https://www.analyticssteps.com/blogs/understanding-arm-processor-vs-x86
https://en.wikipedia.org/wiki/ARM_architecture_family
https://en.wikipedia.org/wiki/X86
https://www.redhat.com/en/topics/linux/ARM-vs-x86
https://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/
https://en.wikipedia.org/wiki/Intel_8086
https://spectrum.ieee.org/chip-hall-of-fame-intel-4004-microprocessor
https://www.theregister.com/2016/02/09/arm1_reverse_engineered/
https://www.dobreprogramy.pl/macos-11-3-wydany-apple-zmienia-zdanie-w-sprawie-chipu-m1,6633347700726432a

 

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.5 / 5. Liczba głosów: 30

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Rafał Bartoszak

Rafał Bartoszak

Współpracujący z Botlandem elektronik, który dzieli się swoją wiedzą w  internecie. Entuzjasta systemów cyfrowych, układów programowalnych i mikroelektroniki. Pasjonat historii, ze szczególnym naciskiem na wiek XX.

Zobacz więcej:

Witold Krieser

Układy regulacji automatycznej

Układy regulacji automatycznej są szeroko stosowane we współczesnych systemach automatyzacji i robotyzacji procesów produkcyjnych. Ich celem jest utrzymanie określonych parametrów lub wartości w systemie, takich jak temperatura, ciśnienie czy poziom.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce Prywatności oraz Warunkom użytkowania.