CM2 L architecture MIPS32

Dimension: px
Commencer à balayer dès la page:

Download "CM2 L architecture MIPS32"

Transcription

1 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année

2 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Question du jour : comment programmer un ordinateur? Comment parler avec quelqu un d aussi binaire qu un ordinateur? Soit en binaire ou alors... avoir un traducteur! UNIX, l assembleur et C Comme tout SE de l époque, UNIX fut écrit en assembleur. Dennis Ritchie dévellopa le C au début des années 70. UNIX fut réécrit en C en 1972! L oeuf et la poule Qui compile le compilateur? Comment est écrit le compilateur? Comment concevoir un langage de haut niveau?... Olivier Marchetti CM2 L architecture MIPS32 Année / 36

3 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Question du jour : comment programmer un ordinateur? Comment éviter de programmer en langage machine? En utilisant le langage assembleur de l architecture. X Plus aucune variable = orchestrer un va-et-vient entre CPU et RAM. X Plus aucun type = organiser en mémoire les données. X Plus aucune structure de contrôle ou structure de données = les réinventer en jouant avec des étiquettes assembleurs. 32 registres utilisateur de 32 bits chacun octets adressables. Des registres dédiés (notamment pour les flottants) Quelques conventions pour la mémoire. Etiquetter des portions du code assembleur. Des instructions de branchement. Des instructions de saut. Programmer en ensembleur... ou se substituer au compilateur Savoir précisément où écrire, où lire. Savoir décomposer tous les traitements. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

4 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Présentation du MIPS32 Généralités MIPS Microprocessor without Interlocked Pipeline Stages Architecture étudiée dans cette UE... made in Stanford! Architecture Premier CPU en ou 64 bits. Architecture sous licence... PS2, PSP, Nintendo, Jeu d instructions Type RISC (Reduced Instruction Set Computer ). Taille fixe pour les instructions. Pipeline instructions (cf. dernier CM). Facile à apprendre (régulière), suffisamment général, intéressant. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

5 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Plan 1 Instructions MIPS Instructions arithmétiques Instructions logiques Instructions de transfert de données Instructions avec constantes Instructions de branchement 2 Structure de contrôle en MIPS Structure de contrôle if... then... Structure de contrôle if... then... [else] Structure de contrôle while Structure de contrôle for 3 Données en MIPS Déclarer et définir des variables Convention sur les registres 4 Entrée/Sortie en MIPS Olivier Marchetti CM2 L architecture MIPS32 Année / 36

6 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). Olivier Marchetti CM2 L architecture MIPS32 Année / 36

7 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : opérations arithmétiques Quelles sont les instructions arithmétiques du MIPS? Soient les désignations de registres $d, $s, $t. Addition add add $d, $s, $t Soustraction sub sub $d, $s, $t Au niveau registre : add $d, $s, $t $d $s + $t Au niveau registre : sub $d, $s, $t $d $s - $t Multiplication mult mult $s, $t # résultat sur 64 bits Division div div $s, $t Un registre 64 bits découpé en deux champs 32 bits (notés Hi et Lo) : mult $s, $t Hi pref 32($s * $t) Lo suff 32($s * $t) Un registre 64 bits découpé en deux champs 32 bits (notés Hi et Lo) : div $s, $t Hi $s % $t Lo $s / $t Remarque Pour les grandeurs non-signée (syntaxe identique) : addu, subu, multu, divu Olivier Marchetti CM2 L architecture MIPS32 Année / 36

8 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : calculer une expression arithmétique Comment traiter une expression arithmétique C? Soit l instruction C suivante : (a + b) - (c + d); Supposons que nous ayons quatre registres avec l affectation suivante : Comment procéder au calcul? aff. reg. val. var. prog. $reg 1 a $reg 2 b $reg 3 c $reg 4 d Tout décomposer. Gérer la ressource registre. Veiller à la cohérence du calcul. Possibilité d utiliser d autres registres... mais 32 registres c est peu. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

9 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : opérations logiques Quelles sont les instructions logiques du MIPS? Soient les désignations de registres $d, $s, $t. Opérations logiques de base : AND (bit-à-bit) and and $d, $s, $t Au niveau registre : and $d, $s, $t $d $s & $t OR (bit-à-bit) or or $d, $s, $t Au niveau registre : or $d, $s, $t $d $s $t XOR (bit-à-bit) xor xor $d, $s, $t Au niveau registre : xor $d, $s, $t $d $s ^ $t NOR nor nor $d, $s, $t Au niveau registre : nor $d, $s, $t $d ($s $t) Comparaison de deux entiers : inférieur à slt (set on less than) Au niveau registre : slt $d, $s, $t slt $d, $s, $t $d ($s < $t) Olivier Marchetti CM2 L architecture MIPS32 Année / 36

10 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

11 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : transferts de données principes (1/4) Comment contourner la limite des 32 mots registres? 2 32 octets 4Go! organiser un va-et-vient registres/ram Haut-niveau : l abstraction variable dispense le programmeur de réfléchir à la localisation réelle des données. Assembleur : la localisation des données est inévitable. CPU mot 2 1 mot 2 2 Pour charger (resp. décharger) un registre depuis la RAM (resp. vers la RAM), il faut spécifier : une adresse de base C (début de la zone mémoire voulue), une valeur de décalage (l index, stocké dans $s), le registre contenant (resp. recevant) la donnée. L adresse d écriture/lecture en RAM sera : Remarques RAM[$s + C] Le registre $s indique la granularité de la donnée à charger (i.e. un multiple de quelques octets). Par défaut, un transfert RAM registre copie quatre octets. $Reg C valeur de $s valeur de $s Contient données/programmes Entièrement adressée (par octet) Formée de mots = la RAM n est qu un grand tableau. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

12 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : transferts de données syntaxe (2/4) Instructions MIPS pour les transferts registres/mémoire : Chargement d un registre lw (load word) lw $t, C($s) CPU mot 2 1 mot 2 2 Au niveau registre/ram : lw $t, C($s) $t RAM[$s + C] $Reg C Déchargement d un registre sw (store word) sw $t, C($s) Au niveau registre/ram : sw $t, C($s) RAM[$s + C] $t valeur de $s valeur de $s C désigne une constante sur 16 bits, alors que $s est sur 32 bits. Remarques Traiter des mots de taille moindre (syntaxe identique) : lh, sh : charge / décharge un 1 /2-mot (load/store half ), lb, sb : charge / décharge un octet (load/store bytes). Olivier Marchetti CM2 L architecture MIPS32 Année / 36

13 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : transferts de données exemples (3/4) Exemple 1 Soit tab[] un tableau d entiers 32 bits d adresse stockée dans le registre $v1. Soient deux variables x et y associées respectivement aux registres $v2 et $v3. Quel serait l équivalent MIPS de l instruction C : y = x + tab[5]; Exemple 2 Soit tab[] un tableau d entiers 16 bits d adresse stockée dans le registre $v1. Soit une variable x associée au registre $v2. Quel serait l équivalent MIPS de l instruction C : tab[1] = x + tab[10]; Olivier Marchetti CM2 L architecture MIPS32 Année / 36

14 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : transferts de données problème d alignement (4/4) Que se passe-t-il si le calcul d adresse est erroné? Soit tab[] un tableau contenant 0, 1, 2... Ces entiers sont encodés sur 32 bits (i.e. 4 octets). L adresse mémoire de ce tableau est dans $t. Le programmeur, étourdi, charge cependant les valeurs par : lh $s, C($t). avec la constante C prise dans 0, 2, 4... Mots chargés par le programmeur adr_tab[] = données mal lues tab[1] = 1 tab[0] = 0 Alignement mémoire Une donnée est alignée si son adresse mémoire est multiple de sa taille en octet. Exemple : les entiers sur 4 octets ont des adresses multiples de 4. La RAM étant entièrement adressée, il faut veiller à lire correctement les données. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

15 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. 3 Manipuler des constantes. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

16 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : manipuler des constantes dans le code assembleur (1/3) Comment un programmeur peut-il utiliser des constantes dans son code MIPS? Un peu de bricolage Soit $AdrC stockant l adresse mémoire d un emplacement contenant la constante 10. lw $d, 0($AdrC) # $d 10 add $d, $d, $s # $d 10 + $s Problème d efficacité un chargement en mémoire est coûteux en temps. usage fréquent de petites constantes. = manipuler directement les constantes dans l assembleur MIPS Opérations arithmétiques à chargement immédiat (avec C sur 16 bits) : Addition immédiate addi addi $d, $s, C $d $s + C Soustraction immédiate subi subi $d, $s, C $d $s - C Opération logiques à chargement immédiat (avec C sur 16 bits) : AND immédiat (bit-à-bit) andi andi $d, $s, C $d $s & C OR immédiat (bit-à-bit) ori ori $d, $s, C $d $s C Test inférieur à immédiat slti (set on less than immediate) slti $d, $s, C $d ($s < C) Olivier Marchetti CM2 L architecture MIPS32 Année / 36

17 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : manipuler des constantes dans le code assembleur (2/3) Comment manipuler ( = 86400) 10 = ( ) 2? Un peu de bricolage La construire par étape en obervant que : ( ) 2 = ( ) ( ) 2 Avec cette décomposition et $d contenant 0, nous avons : addi $d, $d, 1 # $d sll $d, $d, 16 # $d $d 2 16 addi $d, $d, 0x5180 # $d $d + 0x5180 Un peu lourd... Décalage de bit sll, srl (shift left/right logical) sll/srl $d, $s, dec # dec < 2 5 Au niveau registre : sll $d, $s, dec $d $s 2 dec Au niveau registre (et si $d est un entier positif), srl $d, $s, dec $d $s 2 dec = MIPS permet de charger un petit entier sur les 16 bits du poids fort d un registre! Chargement poids fort immédiat lui (load upper immediate) Au niveau registre : lui $d, C lui $d, C $d 0 $d $d 2 16 valeur chargement Compléter par un addi ensuite... Olivier Marchetti CM2 L architecture MIPS32 Année / 36

18 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : manipuler des constantes dans le code assembleur (3/3) Comment faire une affectation en assembleur? = Variable = concept inexistant au niveau assembleur = Gestion des ressources matérielles (RAM, registres) La question serait davantage : Comment le programmeur charge-t-il ses registres? Depuis la RAM ou un registre lw $t, C($s) # $t RAM[$s + C] Avec un immédiat addi/ori $d, $s, 0 # $d $s add/or $d, $s, $zero # $d $s addi/ori $d, $zero, C # $d C Remarques Le registre $zero (ou $0) contient toujours registres, c est peu! = décharger certains registres avec sw. Les instructions or/ori sont un peu plus rapides que add/addi. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

19 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. 3 Manipuler des constantes. 4 Pouvoir réaliser des branchements sur le code. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

20 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Assembleur MIPS : prendre des décisions Comment guider le flot d instructions en MIPS? Programme enregistré rappels Données et programmes sont stockés en mémoire. La mémoire est entièrement adressé. Une instruction est un mot mémoire. Un programme n est qu une suite de mots. = indiquer à l ordinateur l adresse de la prochaine instruction à exécuter. Instructions de branchement conditionnel MIPS : Branchement sur égalité beq (branch on equal) beq $s, $t, Ad Etq Au niveau registre : Si ($s == $t) alors PC PC Ad Etq Branchement non-égalité bne (branch on not equal) bne $s, $t, Ad Etq Au niveau registre : Si ($s!= $t) alors PC PC Ad Etq Olivier Marchetti CM2 L architecture MIPS32 Année / 36

21 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Arithmétiques Logiques Transfert Constantes Branchement Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. 3 Manipuler des constantes. 4 Pouvoir réaliser des branchements sur le code. 5 Disposer de structures de contrôle classiques. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

22 Instructions MIPS Contrôle Données en MIPS E/S en MIPS IfThen IfThenElse While For Assembleur MIPS : if... then... Comment traduire un simple if d un code C? Soit le code C suivant : if (note archi < 0) note archi = 0; note archi += 1; Si $r est assigné à note archi : = la programmation assembleur, ce n est rien que des goto étiquette! Pseudo-instructions assembleur MIPS Les instructions MIPS sont : quasi-implémentées en matériel, X mais très peu nombreuses (57 au total). Pseudo-instructions MIPS : remplacent des petites portions de MIPS fréquentes (mais non implémentées dans le matériel), basées sur le instructions réelles du MIPS. utilisent un registre intermédiaire spécifique ($at). = pas très pratique pour coder... Exemple : avec : move $d, $r addi $d, $r, 0 bge $s, $t, Etq slt $at,$s,$t beq $at,$zero, Etq bge : branch if greater than or equal, le registre $at réservé à l assembleur. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

23 Instructions MIPS Contrôle Données en MIPS E/S en MIPS IfThen IfThenElse While For Assembleur MIPS : définir une condition Comment écrire en assembleur? Soit le code C suivant : if (note archi < 0) note archi = 0; note archi += 1; La séquence semble la même... La condition logique a été niée! Si $r est assigné à note archi : 1 bge $r, $0, SUITE 2 move $r, $0 3 SUITE : addi $r, $r, 1 Langage haut-niveau vs. assembleur MIPS : méthodologie En assembleur : une instruction par ligne. Nombre d opérandes par instruction déterminé par l ISA. Instructions et opérandes sont tous adressés. L ordinateur effectue en permanence le cycle chercher, décoder, exécuter. En d autres termes : lecture ligne après ligne, adresse après adresse, instruction après instruction. Ce fonctionnement glouton contraint le programmeur à adapter son écriture. = astuce : nier la condition logique pour préserver l ordre initial. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

24 Instructions MIPS Contrôle Données en MIPS E/S en MIPS IfThen IfThenElse While For Assembleur MIPS : if... then... [else] Comment traduire un simple if... then... [else] d un code C? Soit le code C suivant : if (note archi < 0) note archi = 0; else note archi += 1; Première tentative en MIPS : 1 bge $r, $0, SINON 2 move $r, $0 3 SINON : addi $r, $r, 1 Problème : à l exécution, on ajoute toujours 1 pt! l adresse d une instruction numéro ligne = effectuer des sauts d instructions grâce aux adresses! Instruction de branchement inconditionnel MIPS (saut) : Saut sur étiquette j Etq (jump) j Etq Au niveau registre : j Etq PC PC + 4[ ].4 Ad Etq avec concaténation des premiers bits $PC et ceux de l étiquette. if... then... [else] en MIPS Insérer un saut d instruction : 1 bge $r, $0, SINON 2 move $r, $0 3 j SUITE 4 SINON : addi $r, $r, 1 5 SUITE : Olivier Marchetti CM2 L architecture MIPS32 Année / 36

25 Instructions MIPS Contrôle Données en MIPS E/S en MIPS IfThen IfThenElse While For Assembleur MIPS : tant que... faire Boucle tant que... faire en C while (notes archi[i++] >= 0) nb notes archi += 1; Soient les assignations suivantes : l adresse du tableau note archi[] est stockée dans le registre $t0, le registre $ind contient la valeur de la variable i, le registre $n contient la valeur de la variable nb notes archi, les registres $t1, $t2, $t3 contiennent respectivement : la valeur 4, la valeur intermédiaire 4 i, la i e valeur du tableau note archi[]. Boucle tant que... faire en MIPS 1 TANTQUE : mul $t2, $t1, $ind # $t2 4 i 2 addi $t0, $t0, $t2 # archi[i] 3 lw $t3, 0($t0) # $t3 notes archi[i] 4 blt $t3, $zero, SUITE # test logique nié 5 addi $n, $n, 1 # incrémentation 6 addi $ind, $ind, 1 # incrémentation 7 j TANTQUE # saut vers TANTQUE 8 SUITE : Autres pseudo-instructions mul : retourne les 32 bits de poids faible du produit des opérandes. blt : branch on lower than. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

26 Instructions MIPS Contrôle Données en MIPS E/S en MIPS IfThen IfThenElse While For Assembleur MIPS : Pour... faire Boucle Pour (i allant de 0 à n - 1) faire en C for (i = 0; i < n; i++) { instructions for } En considérant que l assignation de registres suivante : $r contient la valeur de i, $t contient la valeur de n, $test stocke le résultat d un calcul intérmédiaire, une telle boucle se programme ainsi en MIPS : Boucle Pour (i allant de 0 à n - 1) faire en MIPS 1 add $r, $zero, $zero # $r POUR : slt $test, $r, $t # $test 0 si i >= n 3 beq $test, $zero, SUITE # saut vers la suite du code 4... # corps de la boucle 5 addi $r, $r, 1 # incrémentation compteur 6 j POUR # saut en début de boucle 7 SUITE : Olivier Marchetti CM2 L architecture MIPS32 Année / 36

27 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Déclarer/Definir des données Convention sur les registres Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. 3 Manipuler des constantes. 4 Pouvoir réaliser des branchements sur le code. 5 Disposer de structures de contrôle classiques. 6 Disposer de variables déclarées et définies. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

28 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Déclarer/Definir des données Convention sur les registres Assembleur MIPS : déclarer et définir des variables (1/3) Langage haut-niveau vs. assembleur Haut-niveau : l abstraction variable dispense le programmeur de réfléchir à la localisation réelle des données. Assembleur : la localisation des données est inévitable. Segments mémoire MIPS et programme C : le segment texte.text contient les instructions du programme. = $pc : adresse de l instr. exécutée. le segment des données.data contient données statiques (variable globales ou statiques), = $gp : adresse du seg. des données. la mémoire dynamique gérée dans le tas (xxxalloc() en C). $gp $pc Mem. dispo. Tas données stat..data.text Programme Seg. données Seg. texte Mémoire du programme Les tailles (et donc les adresses) de ces segments sont calculées à la compilation. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

29 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Déclarer/Definir des données Convention sur les registres Assembleur MIPS : déclarer et définir des variables (2/3) Comment indiquer en MIPS où, comment, et quoi stoker? Indiquer le segment mémoire.text [adr] : la donnée sera dans le segment texte (i.e. avec les instructions du programme à l adresse adr si fournie)..data [adr] : la donnée sera stockée dans le segment des données (à l adresse adr si fournie)..stack : la donnée sera sur la pile (cf. CM3). k{text,data} : la donnée sera dans le segment {texte, données} du noyau du système d exploitation. Décrire la visibilité extern Etq taille : déclare la donnée enregistrée à l adresse Etq sur taille octets consécutifs comme étant globale au fichier. Place la donnée dans le segment des données. globl Etq : déclare l étiquette Etq est un symbole globale visible dans d autres fichiers assembleur. S apprend à l usage... Décrire et enregistrer les données Les enregistrements mémoire suivants sont réalisés à des adresses consécutives. align n : réalise l alignement mémoire de la donnée suivante sur une frontière de 2 n octects. space n : définit un espace de n octets consécutifs dans le segment des données. ascii ch : enregistre en mémoire la chaîne de caractère ch sans le caractère de fin de chaîne. asciiz ch : idem, mais avec le caractère de fin de chaîne. byte b 1,...,b n : enregistre n octets. double d 1,...,d n : enregistre n flottants double précision. float f 1,...,f n : enregistre n flottants simple précision. half h 1,...,h n : enregistre n quantités 16 bits (alignement demi-mot). word w 1,...,w n : enregistre n quantités 32 bits (alignement mot). Olivier Marchetti CM2 L architecture MIPS32 Année / 36

30 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Déclarer/Definir des données Convention sur les registres Assembleur MIPS : déclarer et définir des variables (3/3) Comment structurer un fichier assembleur MIPS? Fichier MIPS type Etiquettes Dir{Seg. mém, visib., données} Instr. Commentaires.data tab ent :.word 1,2,3, text.globl main # main devient global main : la $r, tab ent # charge tab entier dans $r Ecriture MIPS Une instruction par ligne. Etiquettes en début de ligne suivies de :. Idenfiticateur : idem au C. Pas de commentaires multilignes. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

31 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Déclarer/Definir des données Convention sur les registres Assembleur MIPS : convention d usage des registres Peut-on utiliser comme l on veut chacun des 32 registres? Pas vraiment : contraintes matérielles (fortes) et conventions logicielles. Noms et numéros de registres Nom Numéro Fonct. conv. $zero $0 constante 0 $at $1 Rés. assembleur $v0 $v1 $2 $3 Val. retour et Rés. fonction $a0 $a3 $4 $7 Arg. fonct. $t0 $t7 $8 $15 Temp. $s0 $s7 $16 $23 Temp. sauv. $t8 $t9 $24 $25 Temp. $k0 $k1 $26 $27 Rés. noyau SE $gp $28 Pointeur global $sp $29 Pointeur pile $fp $30 Pointeur bloc $ra $31 Adr. retour Nombre de conventions seront expliquées lors du CM3. Contraintes matérielles Le programme utilise d autres programmes. Le SE veille. Conventions logicielles X X X $zero contient toujours la valeur zéro. $ra utilisé pour le flot des instructions. ($HI, $LO) (ALU) utilisés pour (mult, div) = Ensemble de conventions déterminant le bon usage de l architecture (programme, compilation). = A respecter. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

32 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Programmation C vs. Programmation MIPS Pour bien programmer, de quoi avons-nous besoin? 1 Réaliser des calculs (arithmétiques ou logiques). 2 Effectuer des transferts de données. 3 Manipuler des constantes. 4 Pouvoir réaliser des branchements sur le code. 5 Disposer de structures de contrôle classiques. 6 Disposer de variables déclarées et définies. 7 Effectuer des entrées/sorties élémentaires. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

33 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Assembleur MIPS : effectuer des entrées/sorties élémentaires Comment réaliser une E/S élémentaire? Réaliser un appel système - méthodologie 1 Ecrire l instruction pour charger le service voulu dans le registre $v0. 2 [ Ecrire les instructions pour charger des arguments dans les registres $a0, $a1... (cf. documentation MIPS).] 3 Ecrire l instruction syscall. 4 [ Ecrire les instructions pour récupérer une valeur de retour de l appel syscall. ] Service Code Service Arguments Valeur de retour afficher entier 1 $a0 : stocke l entier voulu afficher ch. car. 4 $a0 : adresse de la chaîne lire entier 5 $v0 : entier lu lire ch. car. 8 $a0 : adresse du tampon exit 10 $a1 : nb. max. car. lus Olivier Marchetti CM2 L architecture MIPS32 Année / 36

34 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Assembleur MIPS : effectuer des entrées/sorties élémentaires exemple Ecrire en assembleur MIPS le programme qui affiche hello world. L instruction la (pour load address) permet de charger dans un registre une adresse. Olivier Marchetti CM2 L architecture MIPS32 Année / 36

35 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Assembleur vs. langage de haut-niveau : conclusion Pourquoi écrire en langage assembleur alors qu un langage de haut-niveau est finalement beaucoup plus intuitif? Langage Assembleur Langage haut-niveau Contrôle très fin du matériel (presque au niveau cycle). = très utile dans l embarqué Exploitation maximale des fonctionnalités offertes par le matériel. = très grande hétérogénéité du matériel et donc des ISA. Les archis passent... les langages haut-niveau restent! = le C a plus de 40 ans! Facilité d écriture. = accroît la productivité! Compilateurs de plus en plus performants. Peu intuitif. = entretien laborieux... Codes sources très longs. = productivité divisée! Certaines architectures ne sont exploitables qu en langage assembleur. Difficile d effectuer des choses très fines (e.g. temps réel). Olivier Marchetti CM2 L architecture MIPS32 Année / 36

36 Instructions MIPS Contrôle Données en MIPS E/S en MIPS Rendre à César ce qui est à César Références bibliographiques utilisées Organisation et conception des ordinateurs, J. Hennessy & D. Patterson, Dunod. en.wikipedia.org et diverses ressources... Images utilisées Image du transparent 18 : Sujet : Source : Licence : smileys. openclipart.org. domaine public. Image du transparent 31 : échangeur autoroutier Los Angeles-Pasadena-Santa- Monica (auteur : inconnu). Olivier Marchetti CM2 L architecture MIPS32 Année / 36

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Compilation. Introduction & architecture MIPS. Sandrine Blazy (d après le cours de François Pottier) 20 octobre 2008

Compilation. Introduction & architecture MIPS. Sandrine Blazy (d après le cours de François Pottier) 20 octobre 2008 Compilation Introduction & architecture MIPS Sandrine Blazy (d après le cours de François Pottier) - 2 e année 20 octobre 2008 S.Blazy (www.ensiie.fr/ blazy) Compilation 20 octobre 2008 1 / 49 1 Introduction

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Jeu d instructions NIOS II

Jeu d instructions NIOS II Jeu d instructions NIOS II 1 Formats d instructions Le processeur NIOS II a un jeu d instructions de type RISC. Il possède 32 registres de 32 bits, notés r0 à r31, avec r0 0. Les instructions sont de longueur

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Logiciel de Base. II. Le Langage Machine

Logiciel de Base. II. Le Langage Machine Logiciel de Base (A1-6/7) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr II. Le Langage Machine Exemple : le MIPS R2 (Architecture MIPS-I) MIPS R2 MIPS : Microprocessor with

Plus en détail

Jacques Berger Instructions MIPS. Légende : R[] = registre M[] = mémoire. add Add Addition de deux registres et place la somme dans un registre.

Jacques Berger Instructions MIPS. Légende : R[] = registre M[] = mémoire. add Add Addition de deux registres et place la somme dans un registre. Instructions MIPS Légende : R[] = registre M[] = mémoire add Add Addition de deux registres et place la somme dans un registre. x00 funct : 0x20 R[rd] = R[rs] + R[rt] add $t0,$s1,$s2 # t0 = s1 + s2 addi

Plus en détail

Cours architectures des ordinateurs

Cours architectures des ordinateurs Université KASDI MERBAH Ouargla Faculté des Nouvelles Technologies de l Information et de la Communication Département d Informatique et Technologie de l information Cours architectures des ordinateurs

Plus en détail

Assembleur MIPS. Chapitre 2. 2.1 Présentation de l architecture de la machine MIPS R2000. Sommaire. 2.1.1 Généralités sur les processeurs

Assembleur MIPS. Chapitre 2. 2.1 Présentation de l architecture de la machine MIPS R2000. Sommaire. 2.1.1 Généralités sur les processeurs Chapitre 2 Assembleur MIPS Sommaire 2.1 Présentation de l architecture de la machine MIPS R2000.............. 1 2.1.1 Généralités sur les processeurs.......................... 1 2.1.2 Le MIPS R2000...................................

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargé de cours : Frédéric Pétrot Équipe pédagogique : Alban Bourge, Stéphane Mancini, Claire Maiza, Luc Michel, Olivier Muller (resp.), Sebastien Viardot Année universitaire 2013-2014 Structure du cours

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles UNIVERSITE Joseph FOURIER, Grenoble Licence de Sciences et technologie - Parcours MIN, INF, BIN et MIN international Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles Première

Plus en détail

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Pour ce cours, on utilisera comme machine cible le processeur MIPS 2000, un RISC pour lequel on dispose d un excellent émulateur, SPIM.

Pour ce cours, on utilisera comme machine cible le processeur MIPS 2000, un RISC pour lequel on dispose d un excellent émulateur, SPIM. Le processeur MIPS 2000 et SPIM Il y a plusieurs microprocesseurs, classés en deux grandes classes CISC : Intel RISC : MIPS, SPARC, etc Pour ce cours, on utilisera comme machine cible le processeur MIPS

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Jeux d instructions. Les jeux d instructions

Jeux d instructions. Les jeux d instructions Jeux d instructions Daniel Etiemble de@lri.fr Les jeux d instructions Ensemble des instructions d un processeur Format d instructions Lié au modèle (n,m) Longueur fixe ou longueur variable Accès aux données

Plus en détail

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications Le langage Forth Brique ROSE Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Le langage Forth 1 / 26 Qu est-ce que Forth? Langage sans syntaxe Mots

Plus en détail

Introduction à l assembleur ARM: variables et accès mémoire. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Introduction à l assembleur ARM: variables et accès mémoire. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Introduction à l assembleur ARM: variables et accès mémoire GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Rappel: cycle d instructions Que fait le microprocesseur? 1.

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Architecture des ordinateurs TD 1

Architecture des ordinateurs TD 1 Architecture des ordinateurs TD 1 ENSIMAG 1 re année April 29, 2008 Imprimer pour chaque étudiant le listing des instructions (page 36 de la doc, ou page 2 du chapitre 7). Pas la peine de tout imprimer.

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures -

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - DUT Informatique Architecture des ordinateurs Année 2012/2013 - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - NOM, prénom : Dans tous les exercices, vous pouvez utiliser les fonctions

Plus en détail

Techniques de compilation

Techniques de compilation Département d Informatique Université de Nice Sophia Antipolis Master 1 Informatique Techniques de compilation XSPIM : un simulateur graphique du MIPS R2000 Jacques Farré email : Jacques.Farre@unice.fr

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Algorithmique (M1 LTTAC UE3 du S1 & M2 LCE) Univ. Lille 3 2015-2016 15/09/15 ; page 1 N. Gasiglia

Algorithmique (M1 LTTAC UE3 du S1 & M2 LCE) Univ. Lille 3 2015-2016 15/09/15 ; page 1 N. Gasiglia 15/09/15 ; page 1 N. Gasiglia Quelques instructions de base Préambule Quand un programme a besoin d échanger des informations avec l utilisateur qui l exécute, ou avec un fichier qui en contient ou dans

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Fiche de révisions - Algorithmique

Fiche de révisions - Algorithmique Fiche de révisions - Algorithmique Rédigé par : Jimmy Paquereau 1. Généralités Algorithme : un algorithme est la description d une procédure à suivre afin de résoudre un problème donné. Il n est pas nécessairement

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Architecture externe et jeu d instructions

Architecture externe et jeu d instructions Processeur MIPS R3000. Architecture externe et jeu d instructions MIPS R3000 jeu d instructions page - 1 A) Introduction Ce document décrit l architecture externe ainsi que le jeu d instructions du processeur

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour y arriver, vous devrez atteindre les objectifs suivants : - décrire les différentes

Plus en détail

De l ordinateur au processus : rôle d un système

De l ordinateur au processus : rôle d un système De l ordinateur au processus : rôle d un système Introduction aux systèmes d exploitation Gaël Thomas Présentation du cours Contexte du cours : Introduire notre objet d étude : les systèmes d exploitation

Plus en détail

Introduction à l Informatique

Introduction à l Informatique Introduction à l Informatique. Généralités : Etymologiquement, le mot informatique veut dire «traitement d information». Ceci signifie que l ordinateur n est capable de fonctionner que s il y a apport

Plus en détail

Situation physique de la mémoire. La mémoire centrale. La taille d un processeur. Les registres et la mémoire cache

Situation physique de la mémoire. La mémoire centrale. La taille d un processeur. Les registres et la mémoire cache La mémoire centrale 1 / 41 Rangement dans la mémoire La mémoire centrale 4 / 41 Situation physique de la mémoire Chapitre 5 A La mémoire centrale Chapitre 5 J-C Dubacq IUT de Villetaneuse Université Paris

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

Projet Pratique de INF241 Parcours de Tableaux

Projet Pratique de INF241 Parcours de Tableaux Projet Pratique de INF241 Parcours de Tableaux L objectif de ce projet est de travailler sur les tableaux en langage d assemblage ARM. Vous devez réaliser votre projet en partie lors des séances encadrées

Plus en détail

Programmation assembleur sur l architecture x86

Programmation assembleur sur l architecture x86 Mini-projet système : développement d un noyau de système d exploitation Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Programmation assembleur sur l architecture x86

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

Plus en détail

Organisation de base d'une machine de von Neumann

Organisation de base d'une machine de von Neumann Organisation de base d'une machine de von Neumann Eduardo Sanchez EPFL Le logiciel variables int data = 0x123456; int result = 0; int mask = 1; int count = 0; int temp; while (count < 32) { temp = data

Plus en détail

Plan du module. Objectif du module. Architecture des Ordinateurs. Objectif: de la mécanique au fonctionnel. Intervenants. Acquérir un...

Plan du module. Objectif du module. Architecture des Ordinateurs. Objectif: de la mécanique au fonctionnel. Intervenants. Acquérir un... Mise à jour: Janvier 2012 Architecture des Ordinateurs [Archi/Lycée] 2 Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Ressources bibliographiques utilisées pour ce cours :

Plus en détail

Processeur MIPS32. Architecture externe A) INTRODUCTION

Processeur MIPS32. Architecture externe A) INTRODUCTION A) INTRODUCTION Processeur MIPS32 Architecture externe Ce document présente une version légèrement simplifiée de l'architecture externe du processeur MIPS32 (pour des raisons de simplicité, tous les mécanismes

Plus en détail

TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR

TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR 1 2 ème Année RENNES 2003-2004 TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR 1. OBJECTIF Il s agit de concevoir un processeur simple, de le simuler et de l implanter dans un composant

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargés de cours : Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 au VHDL aux langages d'assemblage pour les ISA x86 et MIPS Conventions pour les appels

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Présentation de l architecture de la machine MIPS 2000

Présentation de l architecture de la machine MIPS 2000 Introduction à l assembleur: plan Présentation de l architecture de la machine MIPS 2000 Registres, mémoire, directives Les instructions: accès à la mémoire opérations arithmétiques opérations logiques

Plus en détail

Les processeurs à plusieurs niveaux de langage Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne

Les processeurs à plusieurs niveaux de langage Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne Les processeurs à plusieurs niveaux de langage Laboratoire de Systèmes Logiques Processeurs à plusieurs niveaux de langage Si l on veut avoir un processeur non spécialisé, capable d exécuter plusieurs

Plus en détail

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Olivier BOEBION Mars 2004 1 Les expressions conditionnelles et les structures de contrôle 1.1 La commande test La commande interne

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Chap. 2 - Structure d un ordinateur

Chap. 2 - Structure d un ordinateur Architecture des ordinateurs Michèle Courant S2-27 octobre 2004 Chap. 2 - Structure d un ordinateur 2.1 Processeur ou unité centrale (CPU) 2.1.1 Organisation du CPU 2.1.2 Exécution d une instruction 2.1.3

Plus en détail

Chap. II : Initiation au Langage Machine

Chap. II : Initiation au Langage Machine UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie du cours, nous allons étudier la programmation en langage machine d un microprocesseur. L étude complète

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

EXAMEN INTRA INF2500 Session A-2001 - Réponses. Pondération sur 100 points, possibilité de 22 points extra. Question 1 (5 pts):

EXAMEN INTRA INF2500 Session A-2001 - Réponses. Pondération sur 100 points, possibilité de 22 points extra. Question 1 (5 pts): EXAMEN INTRA INF2500 Session A-2001 - Réponses Pondération sur 100 points, possibilité de 22 points extra. Question 1 (5 pts): Vous voulez diminuer le trafic entre plusieurs ordinateurs connectés sur le

Plus en détail

I2 - Partie 1 : Architecture matérielle Langage machine

I2 - Partie 1 : Architecture matérielle Langage machine I2 - Partie 1 : Architecture matérielle Langage machine N. Prcovic 04.91.28.89.51 nicolas.prcovic@univ-cezanne.fr I2 - Partie 1 :Architecture matériellelangage machine p.1/40 L ordinateur en tant que machine

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Jeu d instruction et Pipeline NSY 104

Jeu d instruction et Pipeline NSY 104 Jeu d instruction et Pipeline NSY 104 Les jeux d instructions Définitions Partie de l architecture avec laquelle le programmeur ou le concepteur de compilateur est en contact. Ensemble des instructions

Plus en détail

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic Algorithmique et programmation Cours d'algorithmique illustré par des exemples pour le picbasic Même s'il est possible d'écrire un programme petit à petit par touches successives, le résultat est souvent

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes On utilise le jeu d instructions ARM. ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes PROGRAMMATION ASSEMBLEUR PREMIERE PARTIE Soit

Plus en détail

Algorithmique - Programmation 1. Cours 10

Algorithmique - Programmation 1. Cours 10 Algorithmique - Programmation 1 Cours 10 Université Henri Poincaré CESS Epinal Automne 2008 1/ 25 Plan Caml fonctionnel vs impératif Caml fonctionnel vs impératif Le type unit Données mutables Les structures

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil,

Plus en détail

Code Machine Code Assembleur Processeurs RISC (Byte code).

Code Machine Code Assembleur Processeurs RISC (Byte code). Code Machine Code Assembleur Processeurs RISC (Byte code). Didier Rémy Octobre 2000 http://cristal.inria.fr/ remy/poly/compil/1/ http://w3.edu.polytechnique.fr/profs/informatique//didier.remy/compil/1/

Plus en détail

Systèmes Informatiques TD 3: langage C opérations élémentaires

Systèmes Informatiques TD 3: langage C opérations élémentaires Systèmes Informatiques TD 3: langage C opérations élémentaires P. Bakowski bako@ieee.org Opérateurs logiques/arithmétiques Le langage C offre une liste importante d opérateurs logiques et arithmétiques.

Plus en détail

Architecture des Ordinateurs IFIP - Cycle Apprentissage. Cécile Germain-Renaud

Architecture des Ordinateurs IFIP - Cycle Apprentissage. Cécile Germain-Renaud Architecture des Ordinateurs IFIP - Cycle Apprentissage Cécile Germain-Renaud 2 Chapitre 1 Introduction 1.1 Le modèle de Von Neumann L ordinateur est une machine électronique, qui traite l information

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 L examen dure 3 heures. Le sujet comporte 7 pages dont 3 pages de rappels sur le LC-2 et la microprogrammation. Tous

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Epidémiologie, l urne de Pólya, partie II

Epidémiologie, l urne de Pólya, partie II Epidémiologie, l urne de Pólya, partie II Se mettre par groupe de deux. Traiter la fiche dans l ordre. Un compte de rendu de TP devra être rendu avec les réponses écrites aux questions, les recherches

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

GPA770 Microélectronique appliquée Exercices série A

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

Plus en détail

Système et Programmation (en C)

Système et Programmation (en C) Système et Programmation (en C) ENSTA - TC 1ère année François Pessaux U2IS 2015-2016 francois.pessaux @ ensta-paristech.fr Introduction François Pessaux IN102 Système et Programmation (en C) 2/31 But

Plus en détail

Tableau à une dimension. Exemple. Utilisation de constantes en assembleur

Tableau à une dimension. Exemple. Utilisation de constantes en assembleur Les tableaux en langage d assemblage Introduction Nous avons vu comment sont gérés les variables possédant des types élémentaires : entier signés ou non, caractères Un tableau!en langage de haut niveau:

Plus en détail

Cours 1 Microprocesseurs

Cours 1 Microprocesseurs Cours 1 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73 Jalil Boukhobza 1 But de ce cours Comprendre le fonctionnement de base d un microprocesseur séquentiel simple (non

Plus en détail

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail