Ένας απλός οδηγός για το ARM vs. RISC-V vs. x86

RISC-V vs ARM vs x86 Εικόνα τίτλου

Εισαγωγή

Μιλήσαμε πολύ για Raspberry Pi 5 εδώ στο PiCockpit, φυσικά. Τις προάλλες, βρήκα μια συζήτηση σχετικά με το Raspberry Pi 5 που επικεντρώθηκε στην αρχιτεκτονική ARM του Pi και πώς αυτή συγκρίνεται με την αρχιτεκτονική RISC-V. Για χρόνια, οι άνθρωποι μιλούσαν για τη συμβατότητα του Raspberry Pi με την x86. Αλλά τι γίνεται με ένα RISC-V Pi;

Αυτό είναι ιδιαίτερα ενδιαφέρον, επειδή το Raspberry Pi είναι μέλος του RISC-V International.

Όπως και το Arduino, στην πραγματικότητα.

Έτσι υπάρχει ενδεχομένως μέλλον για τα τσιπ αρχιτεκτονικής RISC-V στα Raspberry Pis. Ωστόσο, δεν θα κρατούσα την αναπνοή μου ελπίζοντας για ένα Raspberry Pi x86.

Εξάλλου, σε μια πρόσφατη συζήτηση που δημοσιεύτηκε από το Raspberry Pi, δήλωσε ο Gordon Hollingworth, "Οι άνθρωποι λένε, "Λοιπόν, θα μπορούσατε να το κάνετε αυτό; Μπορείτε να φτιάξετε ένα Raspberry Pi x86;' Είναι σαν, 'Ω, Θεέ μου, θα είναι πολλή δουλειά.' Θα μπορούσες, αλλά...".

Ένα τσιπ της Intel

Σκέφτηκα λοιπόν ότι ήρθε η ώρα να εξετάσω μερικές από τις βασικές διαφορές και ομοιότητες μεταξύ των αρχιτεκτονικών RISC-V, ARM και x86. Θα αναφερθώ στην ιστορία τους, στα πλεονεκτήματα και τα μειονεκτήματά τους και σε όσα τις διακρίνουν η μία από την άλλη.

Στο τέλος, θα καταλάβετε γιατί η κατασκευή ενός Raspberry Pi με x86 θα ήταν πολύ δύσκολη, αλλά γιατί ένα Raspberry Pi με RISC-V δεν αποκλείεται.

Επισκόπηση

RISC-VARMx86
ΠροέλευσηRISC-V InternationalArm Ltd.Intel και AMD
Σύνολο εντολώνRISC (Reduced Instruction Set Computing)RISC (Reduced Instruction Set Computing)CISC (Υπολογισμός σύνθετου συνόλου εντολών)
Σειρά byteΣυνήθως little-endian (ρυθμιζόμενο από τον χρήστη)Συνήθως διενδιαία (ρυθμιζόμενη από τον χρήστη)Little-endian
ΕφαρμογέςΕνσωματωμένα συστήματα, συσκευές IoT, προσαρμοσμένες λύσειςΚινητές συσκευές, ενσωματωμένα συστήματα, διακομιστέςΕπιτραπέζιοι υπολογιστές, φορητοί υπολογιστές, διακομιστές, σταθμοί εργασίας
Μοντέλο αδειοδότησηςΑνοικτός κώδικας, αδειοδότηση χωρίς δικαιώματαΗ ARM παραχωρεί άδειες χρήσης των σχεδίων της σε κατασκευαστέςΗ Intel και η AMD παράγουν τα δικά τους τσιπ
ΟικοσύστημαΑνάπτυξη οικοσυστήματος, πρωτοβουλίες ανοικτού κώδικαΜεγάλο οικοσύστημα, εκτεταμένη υποστήριξη τρίτωνΜεγάλο οικοσύστημα λογισμικού και υλικού

Ας δούμε λοιπόν τώρα κάθε ένα από αυτά τα σημεία.

Προέλευση

Και επιτρέψτε μου να ξεκινήσω πρώτα με τον x86, καθώς είναι ο παλαιότερος από τους τρεις. Η αρχιτεκτονική x86 χρονολογείται από το 1978, όταν η Intel παρουσίασε την οικογένεια 8086. Η αρχιτεκτονική x86 ήταν CISC, η οποία ήταν καυτή εκείνη την εποχή. Σήμερα, η αρχιτεκτονική x86 συνεχίζει να βρίσκεται υπό τον έλεγχο της Intel, μαζί με την AMD.

Η αρχιτεκτονική ARM ξεκίνησε 7 χρόνια αργότερα, όταν η Acorn Computers Ltd. κυκλοφόρησε τον ARM1. Η Acorn Computers δεν υπάρχει πλέον σήμερα, αλλά η αρχιτεκτονική ARM συνεχίζει να υπάρχει μέσω της Arm Ltd. Η Arm Ltd. παραχωρεί τώρα την αρχιτεκτονική ARM σε άλλες εταιρείες.

Συγκριτικά, ο RISC-V είναι εξαιρετικά νέος, καθώς ξεκίνησε μόλις το 2010 στο Πανεπιστήμιο της Καλιφόρνιας στο Μπέρκλεϊ. Το 2015, μια ομάδα τεχνολογικών εταιρειών (από την IBM έως την Google και την Nvidia) ενώθηκαν για να ιδρύσουν το Ίδρυμα RISC-V. Το 2020, λόγω γεωπολιτικών ζητημάτων, το Ίδρυμα RISC-V μετακόμισε στην Ελβετία και έγινε RISC-V International.

Λογότυπο RISC-V

Σύνολο εντολών

Πρώτον, επιτρέψτε μου να διευκρινίσω τη διαφορά μεταξύ RISC και CISC.

Οι επεξεργαστές RISC χρησιμοποιούν ένα μικρό, βελτιστοποιημένο σύνολο εντολών, καθεμία από τις οποίες διαρκεί έναν μόνο κύκλο ρολογιού, επιτρέποντας ταχύτερη και πιο προβλέψιμη εκτέλεση.

Αντίθετα, οι επεξεργαστές CISC διαθέτουν ένα μεγαλύτερο και πιο ποικιλόμορφο σύνολο εντολών, που συχνά περιλαμβάνει πολύπλοκες εντολές που μπορεί να απαιτούν πολλούς κύκλους ρολογιού, οδηγώντας σε δυνητικά πιο αργές αλλά πιο ευέλικτες επιδόσεις στη διεκπεραίωση διαφόρων εργασιών.

Έτσι, το RISC-V βασίζεται στο RISC, προφανώς. Αλλά αυτό που το κάνει να ξεχωρίζει είναι το γεγονός ότι είναι ανοιχτού κώδικα.

Στην εργασία τους το 2014, Τα σύνολα εντολών πρέπει να είναι ελεύθερα: Η υπόθεση της RISC-V, οι Krste Asanović και David A. Patterson συγκρίνουν το RISC-V με το Linux. Η ιδέα είναι ότι υπάρχει μια πλήρως ανοικτού κώδικα αρχιτεκτονική συνόλου εντολών. Έτσι, οι άνθρωποι θα πρέπει να μπορούν να τη χειρίζονται, να παίζουν μαζί της και να την μοιράζονται.

Οι Asanović και Patterson υποστηρίζουν ότι αυτό θα μπορούσε να οδηγήσει στην καινοτομία, στην καλύτερη διαφάνεια και στη μείωση του κόστους.

Τώρα θα πρέπει να αναφέρω ότι, αν και το ίδιο το RISC-V είναι ανοικτού κώδικα, οι συγκεκριμένες υλοποιήσεις του RISC-V μπορεί να είναι τόσο ανοικτού κώδικα όσο και ιδιοκτησίας.

Οι εντολές ARM βασίζονται επίσης σε RISC. Ωστόσο, δεδομένου ότι η Arm Ltd. παραχωρεί άδεια χρήσης της αρχιτεκτονικής, κάθε άλλο παρά ανοικτού κώδικα είναι. Οι Asanović και Patterson το έθεσαν: "Μια άδεια χρήσης της ARM δεν σας επιτρέπει καν να σχεδιάσετε έναν πυρήνα ARM- απλά μπορείτε να χρησιμοποιήσετε τα σχέδιά τους". Αν και δεν είναι τόσο απλό, αυτό ισχύει γενικά.

Παραπάνω, είπα ότι η αρχιτεκτονική x86 βασίζεται σε CISC. Αυτό είναι αλήθεια, αλλά πρέπει να αναφέρω ότι, από τη δεκαετία του '90, οι επεξεργαστές x86 περιλαμβάνουν επίσης εντολές SIMD (Single Instruction, Multiple Data) για εργασίες παράλληλης επεξεργασίας. Αυτό επιτρέπει στους πολυπύρηνους επεξεργαστές να λειτουργούν επίσης γρήγορα.

Εξάλλου, ο ταχύτερος υπερυπολογιστής στον κόσμο - ο Frontier - βασίζεται σε x86.

Αλλά ο δεύτερος ταχύτερος υπερυπολογιστής στον κόσμο - ο Fugaku - βασίζεται σε ARM.

Πολλοί άνθρωποι υποστηρίζουν ότι η διάκριση μεταξύ RISC και CISC δεν είναι πολύ σημαντική σήμερα. Επειδή οι σύγχρονοι επεξεργαστές είναι τόσο ισχυροί, λένε ότι οι διαφορές μεταξύ αυτών των τύπων συνόλων εντολών έχουν ουσιαστικά εξαφανιστεί. Ωστόσο, στην έκκλησή τους για RISC-V, οι Asanović και Patterson υποστηρίζουν ότι "[i]χουν περάσει δεκαετίες από τότε που οποιαδήποτε νέα ISA CISC ήταν επιτυχής" και επομένως είναι πιο λογικό να προχωρήσουμε με μια αρχιτεκτονική που βασίζεται σε RISC.

Σειρά byte

Η ενδαιότητα αναφέρεται στη σειρά byte με την οποία αποθηκεύονται οι τύποι δεδομένων πολλαπλών byte στη μνήμη του υπολογιστή.

Στα συστήματα little-endian, το λιγότερο σημαντικό byte αποθηκεύεται στη χαμηλότερη διεύθυνση μνήμης, ενώ στα συστήματα big-endian, το πιο σημαντικό byte αποθηκεύεται στη χαμηλότερη διεύθυνση.

Η ενδαιότητα είναι εξαιρετικά σημαντική όταν θέλετε να ανταλλάξετε δεδομένα μεταξύ επεξεργαστών. Εάν στέλνετε πληροφορίες από ένα σύστημα big-endian σε ένα σύστημα little-endian, τότε τα δεδομένα σας θα μπορούσαν εύκολα να καταστραφούν εάν δεν τα μετατρέψετε σωστά.

Το RISC-V είναι συνήθως little-endian. Ωστόσο, αυτό είναι κάτι που μπορείτε να ρυθμίσετε, αν θέλετε το RISC-V σας να έχει big-endian σειρά byte.

Η αρχιτεκτονική ARM μπορεί να είναι είτε little-endian είτε big-endian, ανάλογα με τη συγκεκριμένη υλοποίηση. Όπως η RISC-V, μπορείτε να ρυθμίσετε ένα chip ARM να είναι big-endian.

Τα Raspberry Pis είναι, από προεπιλογή, little-endian. Μπορείτε να το ελέγξετε αυτό μόνοι σας πηγαίνοντας στο Raspberry Pi σας, ανοίγοντας το τερματικό και εκτελώντας:

lscpu

Η αρχιτεκτονική x86 είναι little-endian. Αλλά σε αντίθεση με την αρχιτεκτονική RISC-V και ARM, δεν μπορείτε να το αλλάξετε αυτό. Το γεγονός ότι είναι little-endian είναι χαρακτηριστικό της αρχιτεκτονικής x86.

Εφαρμογές

Θέλω να επιστρέψω για λίγο στο άρθρο των Asanović και Patterson. Αν και το άρθρο είναι του 2014, κάνει ένα πολύ σημαντικό σημείο. Ισχυρίζονται ότι "[w]hile the 80×86 won the PC wars, RISC dominates the tablets and smart phones of the PostPC Era. in 2013 more than 10 [billion] ARMs were shipped, as compared to 0.3 [billion] 80x86s."

Αυτή είναι μια τεράστια διαφορά, αλλά δείχνει επίσης ότι οι εφαρμογές μιας αρχιτεκτονικής βοηθούν στον καθορισμό της σημασίας της. Αυτός είναι ο λόγος για τον οποίο ήταν τόσο μεγάλη υπόθεση το 2020 όταν η Apple παρουσίασε το τσιπ M1 για τους νέους υπολογιστές της. Εάν η Apple άλλαζε από την x86 στην ARM, τότε τι σημαίνει αυτό για το μέλλον της x86;

Παρόλα αυτά, ο x86 εξακολουθεί να κυριαρχεί στην αγορά υπολογιστών. Οι επιτραπέζιοι υπολογιστές, οι φορητοί υπολογιστές και οι διακομιστές εξακολουθούν να βασίζονται κυρίως στην αρχιτεκτονική x86.

Η ARM, εν τω μεταξύ, χρησιμοποιείται συνήθως σε smartphones και tablets. Και, φυσικά, στο ταπεινό σας Raspberry Pi. Ωστόσο, φαίνεται ότι η ARM μπορεί να αρχίσει να κατακτά και τον κόσμο των υπολογιστών.

smartphone στο τραπέζι

Η RISC-V ελπίζει σαφώς να αποσπάσει ένα μερίδιο από το χώρο της αρχιτεκτονικής ARM, αλλά παραμένει ακόμα ανοιχτό το τι θα μπορούσε να κάνει στο μέλλον. Τόσο τα πανεπιστήμια όσο και η βιομηχανία επενδύουν στην RISC-V και παρακολουθούν στενά την εξέλιξή της.

Αν η ARM έχει αρχίσει να χτυπάει την x86, θα αρχίσει η RISC-V να χτυπάει την ARM;

Μοντέλο αδειοδότησης

Ο πιο περιοριστικός από τους τρεις είναι ο x86. Όπως ανέφερα παραπάνω, στην πραγματικότητα μόνο δύο εταιρείες παράγουν τσιπ αρχιτεκτονικής x86 - η Intel και η AMD. Τα τσιπ δεν μπορούν να προσαρμοστούν και η αρχιτεκτονική είναι εξ ολοκλήρου ιδιόκτητη.

Η αρχιτεκτονική ARM λειτουργεί διαφορετικά, λόγω του μοντέλου αδειοδότησης. Μια τυπική άδεια χρήσης ARM δεν σας επιτρέπει να δημιουργήσετε ένα σχέδιο αρχιτεκτονικής ARM. Ωστόσο, υπάρχουν εξαιρέσεις, επειδή το τσιπ M1 της Apple ήταν αναμενόμενα προσαρμοσμένο στις επιθυμίες της.

Η αρχιτεκτονική RISC-V είναι ανοικτού κώδικα και χωρίς δικαιώματα, επιτρέποντας σε οποιονδήποτε να σχεδιάζει και να κατασκευάζει επεξεργαστές RISC-V χωρίς να πληρώνει τέλη αδειοδότησης. Είναι πραγματικά σαν το Linux των ISAs.

Ενδιαφέρον παρουσιάζει το γεγονός ότι η Intel και η AMD είναι και οι δύο μέλη της RISC-V International. Έτσι, είναι σαφές ότι πιστεύουν επίσης ότι είναι πολύτιμη η συνεισφορά στην αρχιτεκτονική RISC-V.

Οικοσύστημα

Το οικοσύστημα του RISC-V αναπτύσσεται με ταχείς ρυθμούς, με πολλές εταιρείες και ερευνητές να συνεισφέρουν σε έργα ανοικτού κώδικα και να αναπτύσσουν προϊόντα βασισμένα στον RISC-V.

Αν και το οικοσύστημα λογισμικού δεν είναι τεράστιο αυτή τη στιγμή, αναπτύσσεται. Μπορείτε να δείτε τις εξελίξεις με το σχέδιο RISE (RISE σημαίνει RISC-V Software Ecosystem).

Όσον αφορά τους ARM και τους x86, και οι δύο κυριαρχούν στις αντίστοιχες αγορές τους. Τα οικοσυστήματα και για τις δύο είναι καθιερωμένα και εκτεταμένα.

Αυτό είναι ένα από τα πιο ξεκάθαρα μειονεκτήματα της RISC-V. Απλώς δεν έχει την ευρεία υιοθέτηση των άλλων δύο και ο ανταγωνισμός εδώ είναι έντονος.

RISC και CISC σε δράση

Σε αυτό το φανταστικό βίντεο από Ο [Συμπληρώστε το κενό] προγραμματιστής, μπορείτε να δείτε ακριβώς πώς λειτουργούν οι RISC και CISC σε επίπεδο κώδικα συναρμολόγησης.

Εδώ μπορείτε να δείτε λεπτομερώς τη διαφορά μεταξύ RISC και CISC.

Στις αρχιτεκτονικές ARM και RISC-V, ο κώδικας συναρμολόγησης έχει μικρότερες γραμμές, αλλά περισσότερες από αυτές. Στον x86, οι γραμμές του Assembly είναι πιο σύνθετες, αλλά είναι λιγότερες.

Το βίντεο εξετάζει πώς ο μεταγλωττιστής GCC και ο μεταγλωττιστής Clang μετατρέπει τον κώδικα C++ σε Assembly για κάθε ένα από τα τρία ISA - ARM vs. RISC-V vs. x86_64. Ελέγξτε το:

Συμπέρασμα

Πρόσφατα δημοσιεύσαμε ένα άρθρο που συγκρίνει το Orange Pi 5 Plus με το Raspberry Pi 5 και το Rock 5 Model B. Είναι ενδιαφέρον ότι, ενώ και τα τρία αυτά SBC βασίζονται σε ARM, η Radxa έχει στην πραγματικότητα ένα μοντέλο x86 με την ονομασία Rock Pi X.

Ορισμένοι ανησυχούν ότι η ευρύτερη υιοθέτηση του RISC-V θα προκαλέσει μεγαλύτερο κατακερματισμό. Αυτό ταιριάζει απόλυτα με τη σύγκριση με το Linux. Πόσες διανομές Linux υπάρχουν σήμερα; Ωστόσο, η κοινότητα RISC-V εργάζεται ενεργά για την ανάπτυξη προτύπων ώστε να ελαχιστοποιηθούν ο κατακερματισμός και τα προβλήματα συμβατότητας.

Πολλοί (συμπεριλαμβανομένων ορισμένων αρνητών) βλέπουν το RISC-V ως έναν τρόπο να ωθήσουν την αρχιτεκτονική των τσιπ στο μέλλον.

Βέβαια, με τους εμπορικούς πολέμους να φουντώνουν μεταξύ των χωρών, τα πράγματα γίνονται πολύ πιο δύσκολα. Η Arm Ltd. εδρεύει στο Ηνωμένο Βασίλειο και οι Intel και AMD στις ΗΠΑ. Δεν αποτελεί έκπληξη το γεγονός ότι χώρες όπως η Κίνα και η Ρωσία στρέφονται προς το RISC-V.

Υπάρχουν, ωστόσο, άνθρωποι που πιστεύουν ότι το RISC-V είναι καταδικασμένο να αποτύχει. Υποστηρίζουν ότι το RISC-V δεν θα είναι απλώς αιτία κατακερματισμό, αλλά μάλλον ότι η RISC-V έχει ήδη είναι κατακερματισμένη. Και ως εκ τούτου, δεν θα μπορέσει να απογειωθεί.

Update (Νοέμβριοςber 6, 2023): Η Arm Holdings μόλις ανακοίνωσε ότι αγόρασε μειοψηφικό μερίδιο στην Raspberry Pi Ltd. Δεν είναι σαφές τι σημαίνει αυτό για το μέλλον. Μπορείτε να διαβάσετε περισσότερα εδώ:

Τι πιστεύετε; Είναι το RISC-V το μέλλον; Πείτε μας στα σχόλια!

3 Σχόλια

  1. tozo στις Νοέμβριος 6, 2023 στις 1:13 μμ

    Όπως ανέφερα παραπάνω, στην πραγματικότητα μόνο τρεις εταιρείες παράγουν τσιπ αρχιτεκτονικής x86 - η Intel και η AMD.
    Δηλαδή... μόνο δύο 🙂 .

    • Adam στις Νοέμβριος 7, 2023 στις 12:36 μμ

      Πολύ σωστά - ευχαριστώ, tozo!

  2. Bruce Hoult στις Νοέμβριος 8, 2023 στις 10:27 μμ

    Νομίζω ότι είναι κάπως άδικο να μετράμε την ηλικία του RISC-V από την ημερομηνία που κάποιοι ερευνητές του πανεπιστημίου ήταν σε μια παμπ (ή οτιδήποτε άλλο) το 2010 και αποφάσισαν να αρχίσουν να σχεδιάζουν το δικό τους ISA, ενώ οι υπόλοιποι μετράνε από τη στιγμή που το πρώτο εμπορικό chip παρουσιάστηκε στην αγορά.

    Η ISA πέρασε από πολλαπλές ασύμβατες εκδόσεις καθώς οι ιδέες εξελίσσονταν, τόσο σε επίπεδο γλώσσας συναρμολόγησης όσο και σε επίπεδο δυαδικής κωδικοποίησης.

    Το πρώτο τσιπ RISC-V που μπορούσατε να αγοράσετε, το FE310 της SiFive, κυκλοφόρησε τον Δεκέμβριο του 2016 στην πλακέτα HiFive1 Arduino-clone. Είναι απλώς ένας μικροελεγκτής, με μόνο τις οδηγίες λειτουργίας User mode. Οι εντολές και τα CSRs των λειτουργιών Machine mode και Supervisor mode βρίσκονταν υπό ενεργή ανάπτυξη και ασύμβατες αλλαγές μέχρι λίγο πριν από την επικύρωση (πάγωμα, δημοσίευση) του βασικού ISA τον Ιούλιο του 2019. Η SiFive έβγαλε ένα Linux SBC, το HiFive Unleashed (με το FU540 SoC) στις αρχές του 2018, με περίπου 500 κατασκευές, αλλά αυτό ήταν πειραματικό και ήταν προετοιμασμένοι να το αφήσουν ορφανό αν γίνονταν ασύμβατες αλλαγές στο ISA πριν από την επικύρωση.

    Νομίζω ότι η δίκαιη ημερομηνία "προέλευσης RISC-V" είναι κάπου μεταξύ της δημοσίευσης του Privileged Architecture 1.10 τον Μάιο του 2017 και της επικύρωσης τον Ιούλιο του 2019. Σίγουρα όχι το 2010.

    Σε ένα άλλο θέμα, σημειώνω ότι ο 8086 ήταν μακράν το λιγότερο CISCy από τα CISC chips και αυτός είναι ένας σημαντικός λόγος που κατάφερε να επιβιώσει στην εποχή των RISC (τα δισεκατομμύρια από το IBM PC και τους κλώνους βοήθησαν επίσης πολύ!). Οι VAX, M68000, Z8000, NS 16032/32032 ήταν απλά πολύ πολύπλοκες για να γίνουν γρήγορες.

    "από τη δεκαετία του '90, οι επεξεργαστές x86 περιλαμβάνουν επίσης εντολές SIMD (Single Instruction, Multiple Data) για εργασίες παράλληλης επεξεργασίας. Αυτό επιτρέπει στους πολυπύρηνους επεξεργαστές να εκτελούνται επίσης γρήγορα". Αυτά είναι απολύτως άσχετα μεταξύ τους.

    "Η αρχιτεκτονική RISC-V είναι ανοικτού κώδικα και χωρίς δικαιώματα, επιτρέποντας σε οποιονδήποτε να σχεδιάζει και να κατασκευάζει επεξεργαστές RISC-V χωρίς να πληρώνει τέλη αδειοδότησης. Είναι πραγματικά σαν το Linux των ISAs". Σωστό, αλλά το να σχεδιάσετε το δικό σας κοστίζει πολύ περισσότερο από το να αδειοδοτήσετε ένα σχέδιο από έναν από τους περίπου δώδεκα εμπορικούς παρόχους πυρήνων RISC-V (με πολύ παρόμοια επιχειρηματικά μοντέλα με την Arm)

Αφήστε ένα σχόλιο