Travail
ELEC288 : Architecture des systèmes à µP Utilisation du bus ISA
2005/06 Page 1
Fonctionnement interne d’un processeur RiSC
Introduction
Les buts de cette manipulation sont : ? illustrer le fonctionnement interne d’un processeur simple, ? vous faire programmer en assembleur un processeur de type RiSC. Pour cela, nous utiliserons un programme de simulation qui permet d’observer lefonctionnement interne du processeur RiSC-16. C’est un processeur RISC, développé dans un but didactique par le professeur Bruce Jacob de l’université du Maryland, dans le cadre d’un cours de microélectronique : ? Il manipule des données et des instructions codées sur 16 bits, ? il n’a que huit instructions, ? il possède un banc de huit registres, une rom et une ram de 2 mots de 16bits,
16
? sonarchitecture est de type Harvard. Son jeu d’instruction réduit permet une prise en main rapide tout en étant assez complet pour résoudre des problèmes complexes; il est décrit dans le document « Risc-16 sequential implementation ». La structure interne du RiSC-16 est suffisamment simple pour être représentée et affichée sur un écran d’ordinateur, comme le montre la capture d’écran ci-dessous; on y voitles trois fenêtres du simulateur : ? la fenêtre principale qui comprend la représentation du microprocesseur, les menus et les boutons contrôlant la simulation; ? la fenêtre « Program memory » qui représente le contenu de la mémoire programme sous forme binaire en même temps que sous forme de code assembleur; elle permet d’entrer le programme à exécuter en assembleur et de le compiler; ? la fenêtre »Data memory » qui permet de visualiser le contenu de la mémoire de données.
Détaillons les différents blocs de ce schéma : ? la mémoire programme (PROG MEM) et la mémoire de données (DATA MEM) séparées, puisque c’est une architecture de Harvard ; ? le banc de registres internes (Register Bank) pour stocker les opérandes et les résultats de ces opérations; une particularité de ce banc de registresest que le registre 0 contient toujours 0 (une écriture dans ce registre n’a aucun effet);
ELEC288 : Architecture des systèmes à µP Utilisation du bus ISA
2005/06 Page 2
? l’unité arithmétique et logique (ALU) pour exécuter les différentes opérations nécessaires à l’exécution des instructions. Ces opérations sont au nombre de 4 : addition des deux opérandes (ADD, ADDI, LW et SW), NANDbit à bit des deux opérandes (NAND), passage sans modification de l’opérande op1 (LUI et JALR) et comparaison des deux opérandes (BEQ); ? le Program Counter (PC0); ? le registre d’instruction (en dessous de la mémoire programme); ? l’incrémenteur (+1), qui incrémente le Program Counter dans le cas du déroulement séquentiel du programme; ? l’additionneur (ADD), qui calcule l’adresse dans le cas d’unbranchement (BEQ); ? les blocs de conversion de valeurs immédiates (left shift et sign ext). L’exécution d’une instruction se fait en 4 micro-cycles : ? la lecture de l’instruction, ? le décodage de l’instruction et l’extraction des opérandes, ? l’exécution de l’instruction, ? la sauvegarde du résultat ou l’accès en mémoire de données Un micro-cycle est exécuté à chaque cycle de l’horloge duprocesseur.
Principe de la simulation
Le but du simulateur est de montrer en détail ce qui se passe à l’intérieur du processeur lors de l’exécution de ses instructions. Pour cela, il utilise un code de couleurs pour indiquer l’état des blocs et des signaux : ? les blocs qui, durant le demi micro-cycle courant, sont en train de commuter (parce que leurs entrées viennent de changer) sont affichés envert; ? les blocs qui ont commuté au demi micro-cycle précédent deviennent oranges pour indiquer que la valeur de leur sortie est stable. Leurs signaux de sortie deviennent également oranges; ? les blocs qui étaient oranges durant un demi micro-cycle reprennent la couleur des blocs inactifs (cyan par défaut) au début du demi micro-cycle suivant. Leurs signaux de sortie deviennent également…