Présentation
En anglaisRÉSUMÉ
Les jeux d’instructions, qui sont l’interface entre le matériel et le logiciel, définissent les opérations que doit effectuer le matériel et sont la cible d’un compilateur. Les jeux d’instructions sont généralement propriétaires. Depuis 2010, un jeu d’instructions libre et gratuit, RISC-V, a été défini. Il est constitué d’un noyau RISC de base et d’un certain nombre d’extensions standardisées, permettant de viser l’ensemble des classes d’applications, de l’Internet des Objets au calcul haute performance en passant par le marché des mobiles, PC et serveurs. Une fondation RISC-V regroupe un grand nombre d’acteurs : fondeurs, développeurs matériels et logiciels.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
Instruction sets, which act as the interface between hardware and software, define the operations that the hardware must perform and are the target of a compiler. Instruction sets are usually proprietary. Since 2010, an open source instruction set, called RISC-V, has been defined. It consists of a simple RISC base instruction set and a number of standardized extensions to target all classes of applications, from the Internet of Things to mobiles, PCs, servers and supercomputers. A RISC-V foundation brings together a large number of actors: silicon founders, hardware designers and software environment developers.
Auteur(s)
-
Daniel ETIEMBLE : Ingénieur de l’INSA de Lyon - Professeur émérite à l’université Paris Sud
INTRODUCTION
Les jeux d’instructions des processeurs constituent l’interface entre le matériel et le logiciel. L’ensemble de leurs instructions définissent les opérations que doit effectuer le matériel et sont la cible d’un compilateur. Pour des raisons historiques, les jeux d’instructions sont généralement propriétaires. Depuis 2010, un jeu d’instructions open source a été défini à l’université de Berkeley sous le nom de RISC-V. Son objectif est de jouer pour les jeux d’instructions le rôle que jouent Linux pour les systèmes d’exploitation ou OpenOffice pour les suites bureautiques.
Les conditions pour qu’un jeu d’instructions open source rencontre le succès sont définies : grand nombre d’utilisateurs potentiels, environnement logiciel existant, jeux d’instructions performant et utilisable sur une large classe d’applications.
RISC-V a pour noyau un jeu d’instructions 32 bits pour le calcul entier qui est la base pour les microcontrôleurs et les processeurs bas de gamme. S’y ajoutent un certain nombre d’extensions standardisées ou susceptibles d’être standardisées. Pour aboutir à un jeu d’instructions 32 bits ou 64 bits comparable aux jeux d’instructions propriétaires comme Intel ou ARM, des extensions pour entiers 64 bits, multiplications et divisions entières, flottants 32 bits, flottants 64 bits, instructions atomiques pour la cohérence mémoire ont été standardisées. D’autres extensions sont en cours d’élaboration et de normalisation. L’extension 16 bits est destinée à du code compact pour applications embarquées. Les extensions SIMD et vectorielles visent la haute performance, etc.
La fondation RISC-V créée en 2015 regroupe une communauté de plus de 250 acteurs (fondeurs de silicium, fournisseurs de circuits ASIC ou d’IP, développeurs logiciels). Un nombre significatif de circuits ou IP implantant le jeu d’instructions RISC-V est disponible, ainsi que l’environnement logiciel nécessaire : simulateurs, débogueurs, compilateurs et bibliothèques, chargeurs et moniteurs, noyaux de système d’exploitation, distributions Linux, systèmes d’exploitation temps réel, etc.
KEYWORDS
instruction sets | RISC-V | open source | SIMD extension | vector extension
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
2. Jeu d’instructions de base RV32I
Le jeu d’instructions de base, appelé RV32I, comprend 47 instructions. Il y a 32 registres 32 bits nommés x0 à x31 et un compteur de programme (pc). Le registre x0 contient 0 et peut être utilisé comme registre destination d’une instruction lorsque le résultat n’est pas utilisé.
2.1 Format des instructions
Les instructions sont de taille fixe 32 bits, avec un code opération sur 7 bits, soit 128 codes opération fondamentaux (tableau 1). Pour RV32I, les deux bits [1 :0] du code opération sont 11, ce qui signifie que les 75 % des codes opérations restants sont disponibles pour les différentes extensions présentées aux chapitres 3, 4 et 5. Par ailleurs, seuls 11 des 32 codes opérations sont réellement utilisés soit 8,6 % du nombre total de codes opérations fondamentaux.
Les numéros de registre sont codés sur 5 bits. Les instructions RV32I ont 4 formats de base présentés en figure 1 :
-
le format R correspond aux opérations de type rd ← rs1 opération rs2 (deux registres source et un registre destination) ;
-
le format I correspond aux opérations de type rd ← rs1 opération immédiat (un registre source et un registre destination, un immédiat signé sur 12 bits) et aux accès mémoire en lecture (load) : rd ← mem(rs1 + immédiat) ;
-
le format S correspond aux instructions de rangement en mémoire (store) : mem(rs1 + immédiat)←rs2. Utiliser deux formats différents pour load et store permet de simplifier le décodage des instructions : un load a un registre source et un registre destination, alors qu’un store a deux registres source ;
-
le format U permet soit de charger un immédiat 20 bits dans la partie haute d’un registre (instruction LUI), soit d’ajouter cet immédiat à la partie haute du compteur de programme (instruction AUIPC).
Comme le montre la figure 2, les formats S et U ont deux variantes SB et UJ dans lesquelles les immédiats sont disposés différemment dans l’instruction.
HAUT DE PAGE2.2 Classes...
TEST DE VALIDATION ET CERTIFICATION CerT.I. :
Cet article vous permet de préparer une certification CerT.I.
Le test de validation des connaissances pour obtenir cette certification de Techniques de l’Ingénieur est disponible dans le module CerT.I.
de Techniques de l’Ingénieur ! Acheter le module
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Jeu d’instructions de base RV32I
BIBLIOGRAPHIE
-
(1) - HILL (M.D.), CHRISTIE (D.), PATERSON (D.), YI (J.J.), CHIOU (D.), SENDAG (R.) - Proprietary versus Open Instruction Sets, - IEEE Micro, pp 58-68, July-August 2016. https://research.cs.wisc.edu/multifacet/papers/ieeemicro16_card_isa.pdf
-
(2) - OpenRISC 1000 Architecture Manual - https://opencores.org/websvn/filedetails?repname= openrisc&path=%2Fopenrisc%2Ftrunk%2 Fdocs%2Fopenrisc-arch-1.0-rev0.pdf
-
(3) - ASANOVIC (K.), PATTERSON (D.A.) - Instruction sets should be free: The case for RISC-V, - Technical Report N°UCB/EECS-2014-146, https://people.eecs.berkeley.edu/~krste/papers/EECS-2014-146.pdf
-
(4) - WATERMAN et al - The RISC Instruction Set Manual, Volume 1: User level ISA, version 2.0. - Technical Report N°UCB/EECS-2014-54.
-
(5) - WATERMAN (A.) - Design of the RISC-V Instruction Set Architecture, - Spring (2016), https://people.eecs.berkeley.edu/~krste/papers/EECS-2016-1.pdf
-
...
DANS NOS BASES DOCUMENTAIRES
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
QUIZ ET TEST DE VALIDATION PRÉSENTS DANS CET ARTICLE
1/ Quiz d'entraînement
Entraînez vous autant que vous le voulez avec les quiz d'entraînement.
2/ Test de validation
Lorsque vous êtes prêt, vous passez le test de validation. Vous avez deux passages possibles dans un laps de temps de 30 jours.
Entre les deux essais, vous pouvez consulter l’article et réutiliser les quiz d'entraînement pour progresser. L’attestation vous est délivrée pour un score minimum de 70 %.
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive