Prosty przewodnik po ARM vs. RISC-V vs. x86
Wstęp
Dużo rozmawialiśmy o Raspberry Pi 5 Oczywiście tutaj, na PiCockpit. Pewnego dnia znalazłem dyskusję na temat Raspberry Pi 5, która koncentrowała się na architekturze ARM Pi i jej zestawieniu z architekturą RISC-V. Przez lata ludzie mówili o kompatybilności Raspberry Pi z x86. Ale co z RISC-V Pi?
Jest to szczególnie interesujące, ponieważ Raspberry Pi jest członkiem grupy RISC-V International.
Podobnie jak Arduino.
Więc potencjalnie istnieje przyszłość dla układów architektury RISC-V w Raspberry Pis. Nie wstrzymywałbym jednak oddechu w nadziei na Raspberry Pi x86.
W końcu, w niedawnej dyskusji opublikowanej przez Raspberry PiGordon Hollingworth powiedział: "Ludzie pytają: "Czy mógłbyś to zrobić? Czy można stworzyć Raspberry Pi x86?To jak: "O Boże, to byłoby dużo pracy". Można, ale..."
Pomyślałem więc, że nadszedł czas, aby omówić niektóre z kluczowych różnic i podobieństw między architekturami RISC-V, ARM i x86. Omówię ich historię, zalety i wady oraz to, co je od siebie odróżnia.
Na koniec dowiesz się, dlaczego stworzenie Raspberry Pi x86 byłoby tak pracochłonne, ale dlaczego Raspberry Pi RISC-V nie jest wykluczone.
Przegląd
RISC-V | ARM | x86 | |
---|---|---|---|
Pochodzenie | RISC-V International | Arm Ltd. | Intel i AMD |
Zestaw instrukcji | RISC (Reduced Instruction Set Computing - przetwarzanie zredukowanego zestawu instrukcji) | RISC (Reduced Instruction Set Computing - przetwarzanie zredukowanego zestawu instrukcji) | CISC (przetwarzanie złożonych zestawów instrukcji) |
Kolejność bajtów | Zazwyczaj little-endian (konfigurowalne przez użytkownika) | Zazwyczaj bi-endian (konfigurowalny przez użytkownika) | Little-endian |
Aplikacje | Systemy wbudowane, urządzenia IoT, rozwiązania niestandardowe | Urządzenia mobilne, systemy wbudowane, serwery | Komputery stacjonarne, laptopy, serwery, stacje robocze |
Model licencjonowania | Licencja open-source, royalty-free | ARM licencjonuje swoje projekty producentom | Intel i AMD produkują własne chipy |
Ekosystem | Rozwijający się ekosystem, inicjatywy open-source | Duży ekosystem, szerokie wsparcie innych firm | Duży ekosystem oprogramowania i sprzętu |
Przejdźmy teraz przez każdy z tych punktów.
Pochodzenie
Zacznę od x86, ponieważ jest to najstarsza z trzech architektur. Architektura x86 sięga 1978 roku, kiedy to Intel wprowadził na rynek rodzinę 8086. Architektura x86 była architekturą CISC, która w tamtym czasie była bardzo popularna. Obecnie architektura x86 nadal znajduje się pod kontrolą firmy Intel, wraz z AMD.
Architektura ARM miała swój początek 7 lat później, kiedy firma Acorn Computers Ltd. wypuściła na rynek ARM1. Acorn Computers już nie istnieje, ale ich architektura ARM jest kontynuowana przez Arm Ltd.. Arm Ltd. udziela teraz licencji na architekturę ARM innym firmom.
Dla porównania, RISC-V jest niezwykle nowy, a jego początki sięgają zaledwie 2010 roku na Uniwersytecie Kalifornijskim w Berkeley. W 2015 r. grupa firm technologicznych (od IBM, przez Google, po Nvidię) zebrała się, aby założyć Fundację RISC-V. W 2020 roku, ze względu na kwestie geopolityczne, Fundacja RISC-V przeniosła się do Szwajcarii i stała się RISC-V International.
Zestaw instrukcji
Najpierw wyjaśnię różnicę między RISC i CISC.
Procesory RISC wykorzystują niewielki, zoptymalizowany zestaw instrukcji, z których każda zajmuje pojedynczy cykl zegara, umożliwiając szybsze i bardziej przewidywalne wykonanie.
Z kolei procesory CISC mają większy i bardziej zróżnicowany zestaw instrukcji, często zawierający złożone instrukcje, które mogą wymagać wielu cykli zegara, co prowadzi do potencjalnie wolniejszej, ale bardziej wszechstronnej wydajności w obsłudze różnych zadań.
Tak więc RISC-V jest oczywiście oparty na RISC. Ale to, co go wyróżnia, to fakt, że jest open-source.
W artykule z 2014 r, Zestawy instrukcji powinny być darmowe: argumenty za RISC-VKrste Asanović i David A. Patterson porównują RISC-V do Linuksa. Pomysł polega na tym, że istnieje w pełni otwarta architektura zestawu instrukcji. Ludzie powinni więc móc nią manipulować, bawić się nią i dzielić się nią.
Asanović i Patterson twierdzą, że może to napędzać innowacje, lepszą przejrzystość i niższe koszty.
Teraz powinienem wspomnieć, że chociaż RISC-V sam w sobie jest open-source, konkretne implementacje RISC-V mogą być zarówno open-source, jak i zastrzeżone.
Instrukcje ARM są również oparte na architekturze RISC. Jednakże, ponieważ Arm Ltd. udziela licencji na architekturę, nie są one open-source. Jak ujęli to Asanović i Patterson: "Licencja ARM nie pozwala nawet zaprojektować rdzenia ARM; po prostu możesz korzystać z ich projektów". Choć nie jest to do końca takie proste, generalnie tak właśnie jest.
Powyżej powiedziałem, że architektura x86 jest oparta na CISC. To prawda, ale powinienem wspomnieć, że od lat 90. procesory x86 zawierają również instrukcje SIMD (Single Instruction, Multiple Data) do zadań przetwarzania równoległego. Umożliwia to szybkie działanie procesorów wielordzeniowych.
W końcu najszybszy superkomputer na świecie - Frontier - jest oparty na architekturze x86.
Jednak drugi najszybszy superkomputer na świecie - Fugaku - jest oparty na architekturze ARM.
Wiele osób twierdzi, że rozróżnienie między RISC i CISC nie jest dziś zbyt ważne. Ponieważ nowoczesne procesory są tak potężne, twierdzą, że różnice między tymi typami zestawów instrukcji praktycznie zniknęły. Jednak w swoim apelu o RISC-V, Asanović i Patterson argumentują, że "minęły dziesięciolecia, odkąd jakikolwiek nowy CISC ISA odniósł sukces", więc bardziej sensowne jest wybranie architektury opartej na RISC.
Kolejność bajtów
Endianness odnosi się do kolejności bajtów, w jakiej wielobajtowe typy danych są przechowywane w pamięci komputera.
W systemach little-endian najmniej znaczący bajt jest przechowywany pod najniższym adresem pamięci, podczas gdy w systemach big-endian najbardziej znaczący bajt jest przechowywany pod najniższym adresem.
Endianness jest bardzo ważna, gdy chcemy wymieniać dane między procesorami. Jeśli wysyłasz informacje z systemu big-endian do systemu little-endian, dane mogą łatwo ulec uszkodzeniu, jeśli nie zostaną odpowiednio przekonwertowane.
Układy RISC-V mają zazwyczaj kolejność bajtów little-endian. Jest to jednak coś, co można skonfigurować, jeśli RISC-V ma mieć kolejność bajtów big-endian.
Architektura ARM może być zarówno little-endian, jak i big-endian, w zależności od konkretnej implementacji. Podobnie jak w przypadku RISC-V, układ ARM można skonfigurować jako big-endian.
Raspberry Pis są domyślnie ustawione na little-endian. Możesz to sprawdzić samodzielnie, przechodząc do Raspberry Pi, otwierając terminal i uruchamiając:
lscpu
Architektura x86 jest little-endian. Ale w przeciwieństwie do architektury RISC-V i ARM, nie można tego zmienić. Bycie little-endian jest cechą architektury x86.
Aplikacje
Chciałbym na chwilę wrócić do artykułu Asanovicia i Pattersona. Chociaż artykuł pochodzi z 2014 roku, porusza bardzo ważną kwestię. Asanović i Patters twierdzą, że "podczas gdy 80×86 wygrał wojny PC, RISC dominuje na tabletach i smartfonach w erze PostPC; w 2013 roku dostarczono ponad 10 [miliardów] ARM, w porównaniu do 0,3 [miliarda] 80×86".
To ogromna rozbieżność, ale pokazuje również, że zastosowania architektury pomagają zdefiniować jej znaczenie. Właśnie dlatego w 2020 roku było to tak duże wydarzenie, gdy Apple zaprezentowało układ M1 dla swoich nowych komputerów. Jeśli Apple przechodzi z x86 na ARM, to co to oznacza dla przyszłości x86?
Niemniej jednak, x86 nadal dominuje na rynku komputerowym. Komputery stacjonarne, laptopy i serwery nadal opierają się głównie na architekturze x86.
Tymczasem ARM jest zwykle stosowany w smartfonach i tabletach. I oczywiście w skromnym Raspberry Pi. Jednak, Wygląda na to, że ARM może również zacząć przejmować świat komputerów.
RISC-V ma wyraźną nadzieję na zdobycie udziału w architekturze ARM, ale nadal pozostaje otwarta kwestia tego, co może zrobić w przyszłości. Zarówno uniwersytety, jak i przemysł inwestują w RISC-V i uważnie obserwują jego rozwój.
Skoro ARM zaczął ustępować x86, to czy RISC-V zacznie ustępować ARM?
Model licencjonowania
Najbardziej restrykcyjną z nich jest x86. Jak wspomniałem powyżej, tak naprawdę tylko dwie firmy produkują układy w architekturze x86 - Intel i AMD. Chipy te nie są konfigurowalne, a ich architektura jest całkowicie zastrzeżona.
Architektura ARM działa inaczej ze względu na model licencjonowania. Typowa licencja ARM nie pozwala na stworzenie projektu architektury ARM. Istnieją jednak wyjątki, ponieważ układ M1 firmy Apple został w przewidywalny sposób dostosowany do ich potrzeb.
Architektura RISC-V jest otwarta i wolna od opłat licencyjnych, dzięki czemu każdy może projektować i produkować procesory RISC-V bez ponoszenia opłat licencyjnych. To naprawdę jak Linux wśród ISA.
Co ciekawe, Intel i AMD są członkami RISC-V International. Najwyraźniej uważają więc, że wkład w architekturę RISC-V jest wartościowy.
Ekosystem
Ekosystem RISC-V szybko się rozwija, a wiele firm i badaczy uczestniczy w projektach open-source i opracowuje produkty oparte na RISC-V.
Chociaż ekosystem oprogramowania nie jest obecnie ogromny, to rośnie. Możesz zobaczyć jego rozwój dzięki projekt RISE (RISE to skrót od RISC-V Software Ecosystem).
Jeśli chodzi o ARM i x86, oba dominują na swoich rynkach. Ekosystemy obu są dobrze ugruntowane i rozległe.
Jest to jedna z największych wad RISC-V. Po prostu nie ma tak szerokiego zastosowania, jak pozostałe dwa, a konkurencja jest tutaj zacięta.
RISC i CISC w akcji
W tym fantastycznym wideo od Programista [wypełnij puste pole], można dokładnie zobaczyć, jak działa RISC i CISC na poziomie kodu asemblera.
Tutaj można szczegółowo zobaczyć różnicę między RISC i CISC.
Na ARM i RISC-V kod Assembly ma krótsze linie, ale jest ich więcej. Na x86 linie kodu Assembly są bardziej złożone, ale jest ich mniej.
Film pokazuje, w jaki sposób kompilator GCC i kompilator Clang przekształcają kod C++ w Assembly dla każdego z trzech ISA - ARM vs. RISC-V vs. x86_64. Zobacz:
Wniosek
Niedawno opublikowaliśmy artykuł porównujący Orange Pi 5 Plus z Raspberry Pi 5 i Rock 5 Model B. Co ciekawe, podczas gdy wszystkie trzy z tych SBC są oparte na ARM, Radxa ma w rzeczywistości model x86 o nazwie Rock Pi X.
Niektórzy obawiają się, że szersze zastosowanie RISC-V spowoduje większą fragmentację. Dobrze koresponduje to z porównaniem do Linuksa. Ile jest obecnie dystrybucji Linuksa? Jednak społeczność RISC-V aktywnie pracuje nad rozwojem standardów w celu zminimalizowania fragmentacji i problemów z kompatybilnością.
Wiele osób (w tym niektórzy przeciwnicy) postrzega RISC-V jako sposób na przeniesienie architektury układów scalonych w przyszłość.
Oczywiście, wraz z zaostrzaniem się wojen handlowych między krajami, sprawy stają się znacznie trudniejsze. Arm Ltd. ma siedzibę w Wielkiej Brytanii, a Intel i AMD w Stanach Zjednoczonych. Nic dziwnego, że kraje takie jak Chiny i Rosja zwracają się w stronę RISC-V.
Są jednak ludzie, którzy uważają, że RISC-V jest skazany na porażkę. Twierdzą oni, że RISC-V nie tylko przyczyna fragmentacja, ale raczej to, że RISC-V już jest rozdrobniony. I dlatego nie ruszy z miejsca.
Aktualizacjae (Novem6 czerwca 2023 r.): Arm Holdings właśnie ogłosiło, że zakupiło mniejszościowy pakiet udziałów w Raspberry Pi Ltd.. Nie jest jasne, co to oznacza dla przyszłości. Więcej informacji można znaleźć tutaj:
Co o tym sądzisz? Czy RISC-V to przyszłość? Daj nam znać w komentarzach!
Jak wspomniałem powyżej, tak naprawdę tylko trzy firmy produkują układy w architekturze x86 - Intel i AMD.
To znaczy... tylko dwa 🙂
Całkiem słusznie - dzięki, tozo!
Myślę, że to trochę niesprawiedliwe liczyć wiek RISC-V od dnia, w którym jacyś badacze uniwersyteccy znaleźli się w pubie (czy cokolwiek innego) w 2010 roku i zdecydowali się rozpocząć projektowanie własnego ISA, podczas gdy inne są liczone od momentu wprowadzenia pierwszego komercyjnego chipa na rynek.
ISA przeszedł przez wiele niekompatybilnych wersji w miarę ewolucji pomysłów, zarówno na poziomie języka asemblera, jak i kodowania binarnego.
Pierwszy układ RISC-V, jaki można było kupić, FE310 firmy SiFive, pojawił się w grudniu 2016 roku na płytce klonującej Arduino HiFive1. Jest to po prostu mikrokontroler, wyposażony tylko w instrukcje trybu użytkownika. Instrukcje trybu maszynowego i trybu Supervisor oraz CSR były aktywnie rozwijane i niekompatybilne ze sobą aż do czasu, gdy podstawowy ISA został ratyfikowany (zamrożony, opublikowany) w lipcu 2019 roku. SiFive wypuściło SBC z Linuksem, HiFive Unleashed (z SoC FU540) na początku 2018 roku, z około 500 wyprodukowanymi egzemplarzami, ale to było eksperymentalne i byli przygotowani na to, że zostanie osierocone, jeśli niekompatybilne zmiany zostaną wprowadzone do ISA przed ratyfikacją.
Myślę, że uczciwa data "powstania RISC-V" jest gdzieś pomiędzy publikacją Privileged Architecture 1.10 w maju 2017 roku a ratyfikacją w lipcu 2019 roku. Na pewno nie rok 2010.
W innym temacie, zauważam, że 8086 był zdecydowanie najmniej CISCy z układów CISC i jest to duży powód, dla którego był w stanie przetrwać do ery RISC (miliardy z IBM PC i klonów również bardzo pomogły!). VAX, M68000, Z8000, NS 16032/32032 były po prostu zbyt skomplikowane, by mogły być szybkie.
"Od lat 90-tych procesory x86 zawierają również instrukcje SIMD (Single Instruction, Multiple Data) do zadań przetwarzania równoległego. Dzięki temu procesory wielordzeniowe również mogą działać szybko". To zupełnie niepowiązane ze sobą kwestie.
"Architektura RISC-V jest otwarta i wolna od opłat licencyjnych, dzięki czemu każdy może projektować i produkować procesory RISC-V bez ponoszenia opłat licencyjnych. To naprawdę jak Linux wśród ISA". To prawda, ale zaprojektowanie własnego układu kosztuje znacznie więcej niż licencjonowanie projektu od jednego z kilkunastu komercyjnych dostawców rdzeni RISC-V (o modelach biznesowych bardzo podobnych do Arm)