RISC-V

Το RISC-V (προφέρεται "ρισκ-φάιβ" ) είναι μια αρχιτεκτονική ανοιχτού προτύπου συνόλου εντολών (ISA) που βασίζεται σε καθιερωμένες αρχές υπολογιστή μειωμένου συνόλου εντολών (RISC). Σε αντίθεση με τις περισσότερα άλλα ISA, το RISC-V παρέχεται με άδειες ανοιχτού κώδικα χωρίς δικαιώματα εκμετάλλευσης. Πολλές εταιρείες προσφέρουν ή έχουν ανακοινώσει υλικό RISC-V. Διατίθενται λειτουργικά συστήματα ανοιχτού κώδικα με υποστήριξη RISC-V και το σύνολο εντολών υποστηρίζεται σε πολλές δημοφιλείς αλυσίδες εργαλείων λογισμικού.

Το έργο ξεκίνησε το 2010 στο Πανεπιστήμιο της Καλιφόρνιας, στο Μπέρκλεϋ. Υπάρχουν τώρα μέλη σε περισσότερες από 70 χώρες που συμβάλλουν και συνεργάζονται για τον καθορισμό των ανοιχτών προδιαγραφών RISC-V. Η RISC-V International, η μη κερδοσκοπική εταιρεία που διαχειρίζεται το RISC, έχει επί του παρόντος την έδρα της στην Ελβετία.

Η αρχιτεκτονική πρότυπου συνόλου εντολών (ISA) έχει άδεια λειτουργίας βάσει της Άδειας BSD. Τον Ιούλιο του 2023, το RISC-V, με τη 64-bit παραλλαγή του που ονομάζεται riscv64, συμπεριλήφθηκε ως επίσημη αρχιτεκτονική της μεγάλης διανομής Linux Debian στην ασταθή έκδοσή της.  Ο στόχος αυτού του έργου ήταν "να είναι έτοιμο το Debian να εγκατασταθεί και να εκτελεσθεί σε συστήματα που εφαρμόζουν μια παραλλαγή του RISC-V ISA". 

 Επισκόπηση 
Ως αρχιτεκτονική RISC, το RISC-V ISA είναι μια αρχιτεκτονική load-store. Οι οδηγίες κινητής υποδιαστολής χρησιμοποιούν IEEE 754. Τα αξιοσημείωτα χαρακτηριστικά του RISC-V ISA περιλαμβάνουν: θέσεις πεδίου bit εντολών που επιλέχθηκαν για την απλοποίηση της χρήσης πολυπλέκτη σε μια CPU και μια σταθερή θέση για το bit πρόσημου άμεσων τιμών για επιτάχυνση της επέκτασης προσήμου. 

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

Η προδιαγραφή του συνόλου εντολών ορίζει παραλλαγές χώρου διευθύνσεων 32-bit και 64-bit. Η προδιαγραφή περιλαμβάνει μια περιγραφή μιας παραλλαγής επίπεδου χώρου διευθύνσεων 128 bit, ως παρέκταση παραλλαγών 32 και 64 bit, αλλά το ISA 128 bit παραμένει "μη παγωμένο" σκόπιμα, επειδή από το 2023, υπάρχει ακόμα μικρή πραγματική εμπειρία με συστήματα μνήμης αυτού του μεγέθους.

Σε αντίθεση με άλλα ακαδημαϊκά σχέδια που συνήθως βελτιστοποιούνται μόνο για την απλότητα της έκθεσης, οι σχεδιαστές σκόπευαν το σύνολο εντολών RISC-V να μπορεί να χρησιμοποιηθεί για πρακτικούς υπολογιστές. Από τον Ιούνιο του 2019, η έκδοση 2.2 του ISA χώρου χρήστη και η έκδοση 1.11 του προνομιούχου ISA έχουν παγώσει, επιτρέποντας τη συνέχιση της ανάπτυξης λογισμικού και υλικού. Το ISA χώρου χρήστη, που μετονομάστηκε τώρα σε Unprivileged ISA, ενημερώθηκε, επικυρώθηκε και παγώθηκε ως έκδοση 20191213.  Μια εξωτερική προδιαγραφή εντοπισμού σφαλμάτων είναι διαθέσιμη ως πρόχειρο, με έκδοση 0.13.2. 

 Λογική 
μικρογραφία| Πρωτότυπο επεξεργαστή RISC-V, Ιανουάριος 2013
Ο σχεδιασμός της CPU απαιτεί τεχνογνωσία σχεδιασμού σε διάφορες ειδικότητες: ηλεκτρονική ψηφιακή λογική, μεταγλωττιστές και λειτουργικά συστήματα. Για να καλύψουν το κόστος μιας τέτοιας ομάδας, εμπορικοί προμηθευτές πνευματικής ιδιοκτησίας επεξεργαστών (IP), όπως η Arm Ltd. και η MIPS Technologies, χρεώνουν δικαιώματα για τη χρήση των σχεδίων, των διπλωμάτων ευρεσιτεχνίας και των πνευματικών δικαιωμάτων τους.    Επίσης, συχνά απαιτούν συμφωνίες μη δημοσιοποίησης (NDA) πριν από τη δημοσιοποίηση εγγράφων που περιγράφουν τα λεπτομερή πλεονεκτήματα των σχεδίων τους. Σε πολλές περιπτώσεις, δεν εξηγούν τους λόγους για τις επιλογές τους στη σχεδίαση.

Το RISC-V ξεκίνησε με στόχο να δημιουργήσει ένα πρακτικό ISA που θα ήταν ανοιχτού κώδικα, θα μπορούσε να χρησιμοποιηθεί ακαδημαϊκά και θα μπορούσε να αναπτυχθεί σε οποιοδήποτε σχεδιασμό υλικού ή λογισμικού χωρίς δικαιώματα.   Επίσης, εξηγούνται οι σκέψεις για κάθε απόφαση σχεδιασμού του έργου, τουλάχιστον σε γενικές γραμμές. Οι συγγραφείς του RISC-V είναι ακαδημαϊκοί που έχουν ουσιαστική εμπειρία στον σχεδιασμό υπολογιστών και το RISC-V ISA είναι μια άμεση εξέλιξη από μια σειρά ακαδημαϊκών έργων σχεδιασμού υπολογιστών, ειδικά του Berkeley RISC. Το RISC-V αρχικά δημιουργήθηκε και για να βοηθήσει όλα αυτά τα έργα.  

Για τη δημιουργία μιας μεγάλης κοινότητας χρηστών και τη συγκέντρωση σχεδίων και λογισμικού, οι σχεδιαστές RISC-V ISA υποστηρίζουν σκόπιμα μια μεγάλη ποικιλία πρακτικών χρήσεων: πυκνότητα, επιδόσεις και χαμηλή κατανάλωση σε πραγματικές υλοποιήσεις  χωρίς υπερβολική αρχιτεκτονική για μια δεδομένη μικροαρχιτεκτονική.  Η μεγάλη βάση από συνεισφέροντες είναι μέρος του λόγου για τον οποίο το RISC-V σχεδιάστηκε για να αντιμετωπίζει πολλές περιπτώσεις χρήσης.

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

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

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

 Ιστορία 
Ο όρος RISC χρονολογείται από το 1980 περίπου.  Πριν από τότε, υπήρχε κάποια γνώση (βλ. John Cocke) ότι οι απλούστεροι υπολογιστές μπορούν να είναι αποτελεσματικοί, αλλά οι αρχές σχεδιασμού δεν περιγράφηκαν ευρέως. Οι απλοί, αποτελεσματικοί υπολογιστές είχαν πάντα ακαδημαϊκό ενδιαφέρον και είχαν ως αποτέλεσμα το σύνολο οδηγιών RISC DLX για την πρώτη έκδοση του Computer Architecture: A Quantitative Approach το 1990 του οποίου ο David Patterson ήταν συν-συγγραφέας, και αργότερα συμμετείχε στην προέλευση RISC- V. Το DLX προοριζόταν για εκπαιδευτική χρήση. Ακαδημαϊκοί και χομπίστες το εφάρμοσαν χρησιμοποιώντας συστοιχίες πυλών με δυνατότητα προγραμματισμού πεδίου (FPGA), αλλά ποτέ δεν προοριζόταν πραγματικά για εμπορική ανάπτυξη. Οι επεξεργαστές ARM, εκδόσεις 2 και προγενέστερες, είχαν ένα σύνολο εντολών δημόσιου τομέα και εξακολουθούν να υποστηρίζονται από τη συλλογή GNU Compiler Collection (GCC), έναν δημοφιλή μεταγλωττιστή ελεύθερου λογισμικού. Υπάρχουν τρεις πυρήνες ανοιχτού κώδικα για αυτό το ISA, αλλά δεν κατασκευάστηκαν ποτέ.  Το OpenRISC είναι ένα ISA ανοιχτού κώδικα που βασίζεται στο DLX, με συσχετισμένα σχέδια RISC και υποστηρίζεται πλήρως με από το GCC και το Linux, αν και έχει λίγες εμπορικές υλοποιήσεις.

Ο Krste Asanović στο Μπέρκλεϋ είχε μια απαίτηση έρευνας για ένα σύστημα υπολογιστή ανοιχτού κώδικα και το 2010 αποφάσισε να αναπτύξει και να δημοσιεύσει ένα σε ένα «σύντομο, τρίμηνο έργο το καλοκαίρι» με πολλά από τα μεταπτυχιακούς φοιτητές. Το σχέδιο ήταν να βοηθήσει τόσο τους ακαδημαϊκούς όσο και τους βιομηχανικούς χρήστες. Ο David Patterson στο Berkeley εντάχθηκε στη συνεργασία καθώς ήταν ο δημιουργός του Berkeley RISC, και το RISC-V είναι η ομώνυμη πέμπτη γενιά της μακράς σειράς συνεργατικών ερευνητικών του έργων που βασίζονται στο RISC στο Πανεπιστήμιο της Καλιφόρνια στο Μπέρκλεϋ (RISC -I και RISC-II που δημοσιεύθηκαν το 1981 από τον Patterson, ο οποίος αναφέρεται  στην αρχιτεκτονική SOAR  από το 1984 ως "RISC-III" και στην αρχιτεκτονική SPUR  από το 1988 ως "RISC-IV"). Σε αυτό το στάδιο, οι μαθητές παρείχαν αρχικό λογισμικό, προσομοιώσεις και σχέδια CPU. 
μικρογραφία| Το πρώτο Raven1  ST28nm στο Berkeley Wireless Research Center (BWRC) Ιούνιος 2012
Οι δημιουργοί του RISC-V και το ίδρυμά τους προμηθεύτηκαν αρχικά τα έγγραφα ISA  και πολλά σχέδια CPU υπό άδειες BSD, που επιτρέπουν σε παράγωγα έργα — όπως τα σχέδια RISC-V— να είναι είτε ανοιχτά και δωρεάν, είτε κλειστά και ιδιόκτητα. Η ίδια η προδιαγραφή ISA (δηλαδή η κωδικοποίηση του συνόλου εντολών) δημοσιεύτηκε το 2011 ως ανοιχτού κώδικα,  με την επιφύλαξη όλων των δικαιωμάτων. Η πραγματική τεχνική αναφορά (έκφραση της προδιαγραφής) τέθηκε αργότερα σε άδεια Creative Commons για να επιτρέπεται η βελτίωση από εξωτερικούς συνεργάτες μέσω του Ιδρύματος RISC-V και αργότερα του RISC-V International.

Ένα πλήρες ιστορικό του RISC-V έχει δημοσιευτεί στον ιστότοπο RISC-V International. 

 Ίδυμα RISC-V και RISC-V International 
Οι εμπορικοί χρήστες απαιτούν ένα ISA να είναι σταθερό για να μπορέσουν να το χρησιμοποιήσουν σε ένα προϊόν που μπορεί να διαρκέσει πολλά χρόνια. Για την αντιμετώπιση αυτού του ζητήματος, το Ίδρυμα RISC-V ιδρύθηκε το 2015 για να κατέχει, να διατηρεί και να δημοσιεύει πνευματική ιδιοκτησία που σχετίζεται με τον ορισμό του RISC-V.  

 Σχεδίαση 

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

Οι τυπικές επεκτάσεις έχουν καθοριστεί να λειτουργούν με όλες τις τυπικές βάσεις και μεταξύ τους χωρίς σύγκρουση.

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

Μαζί με την επέκταση hypervisor, S, ένα σύνολο εντολών RVGC, το οποίο περιλαμβάνει ένα από τα σύνολα εντολών βάσης RV, τη συλλογή επεκτάσεων G (που περιλαμβάνει το "I", που σημαίνει ότι η βάση δεν είναι ενσωματωμένη) και την επέκταση C, καθορίζει όλες τις οδηγίες που απαιτούνται για την εύκολη υποστήριξη ενός λειτουργικού συστήματος γενικής χρήσης.  
+ISA base and extensionsΌνομαΠεριγραφήVersionΚατάστασηΠλήθος εντολώνΒάσηWeak Memory Ordering2.0ΕπικυρωμένοΒασικό σύνολο εντολών ακεραίων, 32-bit2.1Επικυρωμένο40Βασικό σύνολο εντολών ακεραίων (ενσοματομένο), 32-bit, 16 καταχηρητές2.0Επικυρωμένο40Βασικό σύνολο εντολών ακεραίων, 64-bit2.1Επικυρωμένο15Βασικό σύνολο εντολών ακεραίων (ενσοματομένο), 64-bit2.0ΕπικυρωμένοΒασικό σύνολο εντολών ακεραίων, 128-bit1.7Ανοιχτό15ΕπέκτασηMΠρότυπη επέκταση για πολλαπλασιασμό και διαίρεση ακεραίων2.0Επικυρωμένο8 (RV32)
13 (RV64)AΒασική επέκταση για atomic εντολές2.1Επικυρωμένο11 ()
22 ()FΠρότυπη επέκταση για μονής ακρίβειας κινητή υποδιαστολή2.2Επικυρωμένο26 ()
30 ()DΠρότυπη επέκταση για διπλής ακρίβειας κινητή υποδιαστολή2.2Επικυρωμένο26 ()
32 ()ZicsrΕντολές καταχωρητή ελέγχου και κατάστασης2.0Επικυρωμένο6ZifenceiInstruction-Fetch Fence2.0Επικυρωμένο1GΣυντομογραφία για IMAFD_Zicsr_Zifencei βάση και επεκτάσεις - -QΠρότυπη επέκταση για τετραπλής ακρίβειας κινητή υποσιαστολή2.2Επικυρωμένο28 ()
32 ()LΠρότυπη επέκταση για δεκαδική κινητή υποδιαστολή0.0ΑνοιχτόCΠρότυπη επέκταση για συμπιεσμένες εντολές2.0Επικυρωμένο40BΠρότυπη επέκταση για bit manipulation1.0Επικυρωμένο43JΒασική επέκταση για δυναμικά μεταφραζόμενες γλώσσες0.0ΑνοιχτόTΠρότυπη επέκταση για transactional memory0.0ΑνοιχτόPΠρόρυπη επέκταση για Packed-SIMD εντολές0.9.10ΑνοιχτόVΠρότυπη επέκταση για λειτουργίες διανυσμάτων1.0Επικυρωμένο187ZkΠρότυπη επέκταση για μονόμετρη (scalar) κρυπτογραφία 1.0.1Επικυρωμένο49HΠρόυπη επέκταση για hypervisor1.0Επικυρωμένο15SΠρότυπη επέκταση για εντολές σε επίπεδο supervisor1.12Επικυρωμένο4ZamΜη ευθυγραμμισμένα Atomics0.1ΑνοιχτόZihintpausePause Hint2.0ΕπικυρωμένοZihintntlNon-Temporal Locality Hints0.3ΕπικυρωμένοZfaΕπιπλέον εντολές κινητής υποδιαστολής1.0ΕπικυρωμένοZfhΜισής ακρίβειας κινητή υποδιαστολή1.0ΕπικυρωμένοZfhminΕλάχιστη μίσης ακρίβειας κινητή υποδιαστολή1.0ΕπικυρωμένοZfinxΜονής ακρίβειας κινητή υποδιαστολή σε καταχωρητή ακεραίου1.0ΕπικυρωμένοZdinxΔιπλής ακρίβειας κινητή υποδιαστολή σε καταχωρητή ακεραίου1.0ΕπικυρωμένοZhinxΜισής ακρίβειας κινητή υποδιαστολή σε καταχωρητή ακεραίου1.0ΕπικυρωμένοZhinxminΕλάχιστη μισής ακρίβειας κινητή υποδιαστολή σε καταχωρητή ακεραίου1.0ΕπικυρωμένοZmmulΥποσύνολο πολλαπλασιαμού της επέκτασης M1.0ΕπικυρωμένοZtsoTotal Store Ordering1.0Επικυρωμένο
εναλλ.=A diagram of the modular instruction set of the .mw-parser-output .monospaced{font-family:monospace,monospace}RV32IMAC variant, showing all instructions in the base integer ISA and the extensions for Integer Multiplication and Division, Atomic Instructions, and Compressed Instructions.|μικρογραφία|600x600εσ| Το αρθρωτό σύνολο εντολών του  Παραλλαγή RV32IMAC. Αυτή είναι μια CPU 32-bit με το βασικό ISA με ακεραίους ( RV32I) και τις επεκτάσεις ISA για πολλαπλασιασμό και διαίρεση ακεραίων ( RV32M), atomic εντολές ( RV32A), και συμπιεσμένες εντολές ( RV32C).
Η βάση, οι υπολογισμοί εκτεταμένου ακέραιου και κινητής υποδιαστολής, με πρωτόκολλα συγχρονισμού για υπολογιστές πολλαπλών πυρήνων, θεωρούνται απαραίτητοι για υπολογιστές γενικής χρήσης, και έτσι έχουμε τη συντομογραφία, "G".

Ένας μικρός υπολογιστής 32-bit για ένα ενσωματωμένο σύστημα μπορεί να είναι . Ένας μεγάλος υπολογιστής 64-bit μπορεί να είναι , δηλαδή, .

Με την αύξηση του αριθμού των επεκτάσεων, το πρότυπο προβλέπει τώρα τις επεκτάσεις να ονομάζονται με ένα μόνο "Z" ακολουθούμενο από ένα αλφαβητικό όνομα και έναν προαιρετικό αριθμό έκδοσης. Για παράδειγμα,  ονομάζει την επέκταση ανάκτησης εντολών. Zifencei2 και  όνομα έκδοση 2.0 του ίδιου. Το πρώτο γράμμα που ακολουθεί το "Z" κατά σύμβαση υποδεικνύει την πιο στενά συνδεδεμένη κατηγορία αλφαβητικής επέκτασης, . Έτσι, η επέκταση Zam για κακώς ευθυγραμμισμένα άτομα σχετίζεται με την τυπική επέκταση "Α". Σε αντίθεση με τις επεκτάσεις μεμονωμένων χαρακτήρων, οι επεκτάσεις Z πρέπει να διαχωρίζονται με υπογράμμιση, να ομαδοποιούνται ανά κατηγορία και, στη συνέχεια, αλφαβητικά σε κάθε κατηγορία. Για παράδειγμα,  .

Οι επεκτάσεις ειδικά για το επίπεδο προνομίων επόπτη ονομάζονται με τον ίδιο τρόπο χρησιμοποιώντας το "S" για το πρόθεμα. Οι επεκτάσεις ειδικά για το επίπεδο hypervisor ονομάζονται χρησιμοποιώντας το "H" για το πρόθεμα. Οι επεκτάσεις επιπέδου μηχανής έχουν το πρόθεμα με τα τρία γράμματα "Zxm". Οι επεκτάσεις συνόλου εντολών επόπτη, υπερεπόπτη και μηχανήματος ονομάζονται από λιγότερο προνομιούχες επεκτάσεις.

 Πρόσβαση στη μνήμη 
Όπως πολλά σχέδια RISC, το RISC-V είναι μια αρχιτεκτονική load-store: οι εντολές διευθύνουν μόνο καταχωρητές, με οδηγίες φόρτωσης και αποθήκευσης που μεταφέρουν δεδομένα από και προς τη μνήμη.

Οι περισσότερες εντολές φόρτωσης και αποθήκευσης περιλαμβάνουν μια μετατόπιση 12-bit και δύο αναγνωριστικά καταχωρητή. Ένας καταχωρητής είναι ο βασικός, ο άλλος είναι ο προορισμός (για ένα load) ή η πηγή (για ένα store).

 Υπορουτίνα κλήσεις, άλματα και διακλαδώσεις 
Η υπορουτίνα κλήσης  (άλμα και σύνδεση) του RISC-V τοποθετεί τη διεύθυνση επιστροφής του σε έναν καταχωρητή. Αυτό είναι ταχύτερο σε πολλά σχέδια υπολογιστών, επειδή εξοικονομεί πρόσβαση στη μνήμη σε σύγκριση με συστήματα που ωθούν μια διεύθυνση επιστροφής απευθείας σε μια στοίβα στη μνήμη.  έχει μια μετατόπιση 20-bit υπογεγραμμένη (συμπλήρωμα δύο). Η μετατόπιση πολλαπλασιάζεται επί 2 και στη συνέχεια προστίθεται στον υπολογιστή (μετρητής προγράμματος) για να δημιουργηθεί μια σχετική διεύθυνση σε μια εντολή 32 bit. Εάν η διεύθυνση που προκύπτει δεν είναι ευθυγραμμισμένη 32-bit (δηλαδή ομοιόμορφα διαιρούμενη με το 4), η CPU μπορεί να επιβάλει exception. 

Οι CPU RISC-V κάνουν άλματα (jump) σε υπολογιζόμενες διευθύνσεις χρησιμοποιώντας μια εντολή jump και link-register, , παρόμοια με τη , αλλά λαμβάνει τη διεύθυνση προορισμού του προσθέτοντας μια μετατόπιση 12 bit σε έναν βασικό καταχωρητή. Αντίθετα,  προσθέτει μεγαλύτερη μετατόπιση 20 bit.

Το RISC-V δεν έχει καταχωρητή κωδικού συνθήκης ή bit μεταφοράς. Οι σχεδιαστές πίστευαν ότι οι κώδικες συνθηκών καθιστούν τις γρήγορες CPU πιο πολύπλοκες επιβάλλοντας τις αλληλεπιδράσεις μεταξύ των εντολών σε διαφορετικά στάδια εκτέλεσης. Αυτή η επιλογή κάνει την αριθμητική πολλαπλής ακρίβειας πιο πολύπλοκη. Επίσης, μερικές αριθμητικές εργασίες χρειάζονται περισσότερη ενέργεια. Ως αποτέλεσμα, η πρόβλεψη (η εκτέλεση εντολών υπό όρους) δεν υποστηρίζεται. Οι σχεδιαστές ισχυρίζονται ότι τα πολύ γρήγορα, εκτός σειράς σχέδια CPU κάνουν πρόβλεψη ούτως ή άλλως, κάνοντας παράλληλα τη διακλάδωση σύγκρισης και τον υπό όρους κώδικα και στη συνέχεια απορρίπτοντας τα εφέ της αχρησιμοποίητης διαδρομής. Ισχυρίζονται επίσης ότι ακόμη και σε απλούστερες CPU, η πρόβλεψη είναι λιγότερο πολύτιμη από την πρόβλεψη διακλάδωσης, η οποία μπορεί να αποτρέψει τους περισσότερους πάγκους που σχετίζονται με διακλαδώσεις υπό όρους. Ο κώδικας χωρίς πρόβλεψη είναι μεγαλύτερος, με περισσότερους κλάδους, αλλά ισχυρίζονται επίσης ότι ένα συμπιεσμένο σύνολο εντολών (όπως το σύνολο C του RISC-V) λύνει αυτό το πρόβλημα στις περισσότερες περιπτώσεις. 

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

Οι κλάδοι σύγκρισης έχουν εύρος δώδεκα bit υπογεγραμμένο και που κάνουν άλμα σχετικά με τον υπολογιστή.  

 Αριθμητικά και λογικά σύνολα 
Το RISC-V διαχωρίζει τα μαθηματικά σε ένα ελάχιστο σύνολο ακέραιων εντολών (σύνολο I) με πρόσθεση, αφαίρεση, μετατόπιση, λογική bitwise και σύγκριση-διακλάδωση. Αυτά μπορούν να προσομοιώσουν τα περισσότερα από τα άλλα σύνολα εντολών RISC-V με λογισμικό. (Οι ατομικές εντολές είναι μια αξιοσημείωτη εξαίρεση.) Οι εντολές ακέραιου αριθμού RISC-V δε διαθέτουν τις λειτουργίες πλήθους οδηγών μηδέν και πεδίου bit που χρησιμοποιούνται συνήθως για την επιτάχυνση της κινητής υποδιαστολής λογισμικού σε έναν επεξεργαστή καθαρού ακέραιου αριθμού, Ωστόσο, ενώ ονομαστικά στην επέκταση χειρισμού bit, οι επικυρωμένες επεκτάσεις Zbb, Zba και Zbs περιέχουν περαιτέρω ακέραιες οδηγίες, συμπεριλαμβανομένης μιας εντολής μέτρησης που οδηγεί στο μηδέν.

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

 Packed SIMD 
Οι οδηγίες Packed-SIMD χρησιμοποιούνται ευρέως από εμπορικές CPU για να επιταχύνουν φθηνά την επεξεργασία πολυμέσων και άλλης ψηφιακής επεξεργασίας σήματος.  Για απλά συστήματα RISC-V με μειωμένο κόστος, η βασική προδιαγραφή ISA πρότεινε τη χρήση των δυαδικών ψηφίων των καταχωρητών κινητής υποδιαστολής για την εκτέλεση παράλληλων μεμονωμένων εντολών, αριθμητικής υπο-λέξεων πολλαπλών δεδομένων (SIMD).

 Διάνυσμα σύνολο 
Το προτεινόμενο σύνολο εντολών επεξεργασίας διανύσματος μπορεί να καταστήσει το γεμάτο σύνολο SIMD ξεπερασμένο. Οι σχεδιαστές ελπίζουν να έχουν αρκετή ευελιξία ώστε μια CPU να μπορεί να εφαρμόσει διανυσματικές οδηγίες σε τυπικούς καταχωρητές επεξεργαστή. Αυτό θα επέτρεπε ελάχιστες υλοποιήσεις με παρόμοια απόδοση με ένα ISA πολυμέσων, όπως παραπάνω. Ωστόσο, ένας πραγματικός διανυσματικός συνεπεξεργαστής θα μπορούσε να εκτελέσει τον ίδιο κώδικα με υψηλότερη απόδοση. 

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

Αντίθετα, οι επεκτάσεις SIMD μικρού διανύσματος είναι λιγότερο βολικές. Αυτά χρησιμοποιούνται σε x86, ARM και PA-RISC. Σε αυτά, μια αλλαγή στο πλάτος λέξης αναγκάζει μια αλλαγή στο σύνολο εντολών για την επέκταση των διανυσματικών καταχωρητών (στην περίπτωση του x86, από καταχωρητές MMX 64-bit σε επεκτάσεις SIMD ροής 128-bit (SSE), σε 256-bit Advanced Vector Extensions (AVX) και AVX-512 ). Το αποτέλεσμα είναι ένα αυξανόμενο σύνολο εντολών και μια ανάγκη μεταφοράς κώδικα εργασίας στις νέες οδηγίες.

 Υλοποιήσεις 
Ο οργανισμός RISC-V διατηρεί μια λίστα με υλοποιήσεις RISC-V CPU και SoC.  Λόγω εμπορικών πολέμων και πιθανών κυρώσεων που θα εμπόδιζαν την Κίνα από την πρόσβαση σε ιδιόκτητους ISA, από το 2023 η χώρα σχεδίαζε να μετατοπίσει τις περισσότερες από τις αρχιτεκτονικές της CPU και MCU σε πυρήνες RISC-V. 

Το 2023, η Ευρωπαϊκή Ένωση παρείχε 270 εκατομμύρια ευρώ στο πλαίσιο της λεγόμενης Συμφωνίας Πλαίσιο Συνεργασίας (FPA) σε μια μεμονωμένη εταιρεία που ήταν σε θέση και πρόθυμη να πραγματοποιήσει ένα έργο ανάπτυξης CPU RISC-V με στόχο υπερυπολογιστές, διακομιστές και κέντρα δεδομένων.  Στόχος της Ευρωπαϊκής Ένωσης ήταν να ανεξαρτητοποιηθεί από τις πολιτικές εξελίξεις σε άλλες χώρες και να «ενδυναμώσει την ψηφιακή της κυριαρχία και να θέσει πρότυπα, αντί να ακολουθεί αυτά των άλλων». 

 Σημειώσεις 

 Παραπομπές 

 Εξωτερικοί σύνδεσμοι 


Κατηγορία:Μικροελεγκτές
Κατηγορία:Αρχιτεκτονικές συνόλου εντολών
Κατηγορία:Σελίδες με μη επιθεωρημένες μεταφράσεις