10 | | Ce document présente une version simplifiée de l'architecture externe du processeur MIPS32. Pour des raisons de simplicité, tous les mécanismes matériels de gestion de la mémoire virtuelle ont été délibérément supprimés. |
11 | | |
12 | | L'architecture externe représente ce que doit connaître un utilisateur souhaitant programmer en assembleur, ou souhaitant écrire un compilateur. Elle définit: |
13 | | |
14 | | - Les registres visibles du logiciel ; |
15 | | - L'adressage de la mémoire ; |
16 | | - Le jeu d'instructions ; |
17 | | - Les mécanismes de traitement des interruptions, des exceptions et appels système. |
18 | | |
19 | | Le processeur MIPS32 est un processeur 32 bits conçu dans les années 1980. Son jeu d'instructions est de type RISC (Reduced Instruction Set Computer). Il existe de nombreuses réalisations industrielles de cette architecture (SIEMENS, NEC, LSI LOGIC, SILICON GRAPHICS, MICROCHIP, etc.). |
20 | | |
21 | | Cette architecture est suffisamment simple pour présenter les principes de base de l'architecture des processeurs, et suffisamment puissante pour supporter un système d'exploitation multitâches tel qu'UNIX, puisqu’il supporte deux modes de fonctionnement utilisateur (''user'') et système (''kernel''). |
22 | | |
23 | | - Dans le mode ''user'', certaines régions de la mémoire et certains registres du processeur sont protégés et donc inaccessibles. |
24 | | - Dans le mode ''kernel'', toutes les ressources sont accessibles, c'est-à-dire toute la mémoire et tous les registres. |
25 | | |
26 | | L'architecture interne n'est pas présentée dans ce module. Elle dépend des choix de réalisation matérielle. Plusieurs implémentations matérielles ont été réalisées à Sorbonne Université dans un but d'enseignement et de recherche : une version microprogrammée, simple mais peu performante (1 instruction s'exécute en 4 cycles d'horloge), une version pipeline plus performante (1 instruction par cycle) mais plus complexe et une version superscalaire, encore plus performante (2 instructions par cycle) mais beaucoup plus complexe. |
27 | | |
28 | | La spécification du langage d'assemblage, les conventions d’utilisation des registres, ainsi que les conventions d’utilisation de la pile font l'objet d'un document séparé. |
29 | | |
30 | | |
| 10 | Ce document est la suite du document [htdocs:cours/doc_MIPS32.pdf Documentation MIPS32 architecture et assembleur (mode user)] (''Ce document est tiré du document initialement écrit par Alain Greiner''). Le MIPS supporte deux modes de fonctionnement utilisateur (''user'') et système (''kernel''). |
| 11 | |
| 12 | - Dans le mode ''user'', certaines régions de la mémoire et certains registres du processeur sont protégés et donc inaccessibles. C'est dans ce mode que s'exécute les applications. |
| 13 | - Dans le mode ''kernel'', toutes les ressources sont accessibles, c'est-à-dire toute la mémoire et tous les registres. C'est dans ce mode que s'exécute le noyau du système d'exploitation. |
| 14 | |
| 15 | Nous allons donc voir les éléments de l'architecture et du langage d'assemblage, sq |