Arch_2lmd_Pr-  és 3 (1)

51
  rchitectur e des rchitectur e de s ordinateurs rdinateurs Chapitre 2 Architecture externe de MICROPROCESSEUR 32 BITS MIPS r3 Dr R. BOUDOUR 

Transcript of Arch_2lmd_Pr-  és 3 (1)

Page 1: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 1/51

 

Architecture desrchitecture desordinateursrdinateurs

Chapitre 2 

Architecture externe de

MICROPROCESSEUR

32 BITS MIPS r3000Dr R. BOUDOUR 

Page 2: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 2/51

 

PlanPlan

Architecture externe du microprocesseur

32 bits MIPS R3000 : Les registres visibles du logiciel.

L'adressage et la structuration de l'espaceadressable.

Le langage d'assemblage du processeur MIPSR3000

24/10/2011 07:09:06

2

Page 3: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 3/51

 

IntroductionIntroduction

24/10/2011 07:09:06

3

Les composants d’un ordinateurLes composants d’un ordinateur

Page 4: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 4/51

 

Qui utilise le langage d’assemblage ?Qui utilise le langage d’assemblage ?

24/10/2011 07:09:06

4

Page 5: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 5/51

 

Quand utiliser le langage d’assemblage ?Quand utiliser le langage d’assemblage ?

24/10/2011 07:09:06

5

Page 6: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 6/51

 

Modes d’adressage du MIPSModes d’adressage du MIPS

24/10/2011 07:09:06

6

Les modes d’adressage MIPS dans les différents modèlesLes modes d’adressage MIPS dans les différents modèles

Page 7: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 7/51

Format d’instructions MIPSFormat d’instructions MIPS

24/10/2011 07:09:06

7

 

Page 8: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 8/51

Format d’instructions I (Format d’instructions I (11))

24/10/2011 07:09:06

8

 

Page 9: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 9/51

24/10/2011 07:09:06

9

Format d’instructions I (Format d’instructions I (22))

 

Page 10: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 10/51

24/10/2011 07:09:06

10

Format d’instructions JFormat d’instructions J

 

Page 11: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 11/51

Codage des adressesCodage des adresses

24/10/2011 07:09:06

11

 

Page 12: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 12/51

24/10/2011 07:09:06

12

Format d’instructions RFormat d’instructions R

 

Page 13: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 13/51

24/10/2011 07:09:06

13

Format d’instructions RFormat d’instructions R

 

Page 14: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 14/51

IdentificateursIdentificateurs

24/10/2011 07:09:06

14

Remarque : Pour plus de détails sur la syntaxe du langage MIPS , voir documents

 

Page 15: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 15/51

AffectationAffectation

24/10/2011 07:09:06

15

Compiler une affectation utilisant des registres enlangage C

f = (g+h) - (i + j) ;

Les variables f,g,h,i et j peuvent être affectées auxregistres $s0, $s1, $s2, $s3 et $s4 respectivement.

Ajoutons deux registres temporaires $t0 et $t1

Correspondance en langage d’assemblage MIPS

add $t0, $s1, $s2 # registre $t0 contient g+hadd $t1, $s3, $s4 # registre $t1 contient i+jsub $s0, $t0, $t1 # registre $s0 contient le résultat

 

Page 16: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 16/51

AffectationAffectation

24/10/2011 07:09:06

16

Soit un tableau A de 100 motsLes registres $s1 et $s2 sont associés aux variables g et hL’adresse de départ ou l’adresse de base du tableau est dans $s3.

Traduisons g = h + A[8] en langage MIPS;

lw $t0, 8($s3) # registre temporaire $t0 reçoit A[8]add $s1, $s2, $t0 # g = h + A[8]

La constante 8 est appelée déplacement et $s3 un registre de base

 

Page 17: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 17/51

AffectationAffectation

24/10/2011 07:09:06

17

Soit h associé au registre $s2 et l’adresse de base dutableau est attachée au $s3

la traduction en MIPS de : A[12] = h + A[8]

lw $t0, 32($s3) # registre temporaire $t0 reçoit A[8]add $t0, $s2, $t0 # registre temporaire $t0 reçoit h+A[8]sw $t0, 48[$s3] # range dans A[12] h+A[8]

 

Page 18: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 18/51

AffectationAffectation

24/10/2011 07:09:06

18

Soit un exemple de tableau avec variable indicéeg = h+A[i] ;Soit A un tableau de 100 éléments, sa base est $s3 et aux variablesg,h et i, le compilateur a associé les registres $s1, $s2 et $s4

dans l’ordre

Correspondance en langage d’assemblage pour

g = h + A[i]

add $t1, $s4,$s4 # $t1 = 2*iadd $t1, $t1, $t1 # $t1 = 4*iadd $t1,$t1,$s3 # $t1= adresse de A[i] (4*i+$s3)lw $t0,0($t1) # $t0=A[i]add $s1,$s2,$t0 # g=h+A[i]

 

Page 19: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 19/51

Représentation en machineReprésentation en machine

24/10/2011 07:09:06

19

Add $t0,$s1,$s2, sémantique : $t0 = $s1+$s2 sa représentation décimale

0 17 18 8 0 32

Les champs 0 et 32 indiquent une addition le 2ème champ donne le numéro du registre : 17=$s1, opérande source 1 le 3ème champ fournit l’autre registre : 18=$s2, opérande source 2 le 4ème champ indique le numéro du registre destination : 8=$t0 le 5ème champ est inutilisé pour cette instruction, laissé à 0

 

Page 20: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 20/51

24/10/2011 07:09:06

20

Soit à traduire l’affectation écrite en langage C : A[300] = h+A[300]

Nous supposons que : $t1 = A, $s2 = h la traduction en MIPS :

lw $t0,1200($t1) # $t0=A[300]add $t0,$s2,$t0 #$t0= = h + A[300]

sw $t0, 1200($t1) # range h+A[i] dans A[300]op rs rt rd as funct

35 9 8 1200

0 18 8 8 0 32

43 9 8 1200

100011 01001 01000 0000 0100 1011 0000

000000 10010 01000 01000 00000 100000

101011 01001 01000 0000 0100 1011 0000

En décimal

En binaire

Représentation en machineReprésentation en machine

 

Page 21: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 21/51

PseudoPseudo--instruction MOVEinstruction MOVE

24/10/2011 07:09:06

21

 

Page 22: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 22/51

24/10/2011 07:09:06

22

PseudoPseudo--instruction Liinstruction Li

 

Page 23: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 23/51

LectureLecture--Ecriture mémoireEcriture mémoire

24/10/2011 07:09:06

23

 

Page 24: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 24/51

24/10/2011 07:09:06

24

Pour résumer, dans une architecture de machine de typeload/store, on n'a pas la possibilité a priori de faire : des transferts entre registres ou de mémoire à mémoire.

Ainsi on relève dans le jeu d'instruction du R3000, concernantles instructions de chargement que l'on ne peut que CHARGERune adresse ou le contenu d'une adresse dans un registre(instruction l? Rdest, address) ;

Concernant les instructions de rangement en mémoire On ne peut que ranger en mémoire depuis un registre via une

instruction du type s? Rsrc, address Mais on ne peut ni ranger le contenu d'un registre dans un

autre registre Ni d'une adresse mémoire dans une adresse mémoire.

LectureLecture--Ecriture mémoire (Ecriture mémoire (22))

 

Page 25: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 25/51

Branchements conditionnels (Branchements conditionnels (11))

24/10/2011 07:09:06

25

 

Page 26: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 26/51

24/10/2011 07:09:06

26

Branchements conditionnels (Branchements conditionnels (22))

 

Page 27: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 27/51

24/10/2011 07:09:06

27

Branchements inconditionnels (Branchements inconditionnels (33))

 

Page 28: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 28/51

24/10/2011 07:09:06

28

Branchements inconditionnels (Branchements inconditionnels (11))

 

Page 29: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 29/51

24/10/2011 07:09:06

29

Branchements inconditionnels (Branchements inconditionnels (22))

 

Page 30: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 30/51

Appels de sousAppels de sous--programmesprogrammes

24/10/2011 07:09:06

30

 

Page 31: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 31/51

24/10/2011 07:09:06

31

Appels de sousAppels de sous--programmesprogrammes

 

Page 32: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 32/51

24/10/2011 07:09:06

32

Appels de sousAppels de sous--programmes : Pileprogrammes : Pile

 

Page 33: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 33/51

24/10/2011 07:09:06

33

Appels de sousAppels de sous--programmes :programmes :

Politique de gestion de pilePolitique de gestion de pile

 

Page 34: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 34/51

24/10/2011 07:09:06

34

Appels de sousAppels de sous--programmes : Exempleprogrammes : Exemple

 

Page 35: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 35/51

24/10/2011 07:09:06

35

Appels de sousAppels de sous--programmes : Exempleprogrammes : Exemple

 

Page 36: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 36/51

Autres exemplesAutres exemples

24/10/2011 07:09:06

36

Langage CLangage C langage d’assemblage MIPSlangage d’assemblage MIPS

Instruction d’affectation simpleInstruction d’affectation simple

 

Page 37: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 37/51

24/10/2011 07:09:06

37

Langage CLangage C langage d’assemblage MIPSlangage d’assemblage MIPS

Instruction d’affectation complexeInstruction d’affectation complexe

Autres exemplesAutres exemples

 

Page 38: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 38/51

24/10/2011 07:09:06

38

Instruction conditionnelleInstruction conditionnelle

Langage CLangage C langage d’assemblage MIPSlangage d’assemblage MIPS

Autres exemplesAutres exemples

 

Page 39: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 39/51

24/10/2011 07:09:06

39

Instruction d’itération ou boucleInstruction d’itération ou boucle Langage CLangage C langage d’assemblage MIPSlangage d’assemblage MIPS

Autres exemplesAutres exemples

 

Page 40: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 40/51

24/10/2011 07:09:06

40

Langage CLangage C langage d’assemblage MIPSlangage d’assemblage MIPS

Instruction d’itération ou boucleInstruction d’itération ou boucle

Autres exemplesAutres exemples

 

Page 41: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 41/51

24/10/2011 07:09:06

41

Autres exemplesAutres exemples

 

Page 42: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 42/51

24/10/2011 07:09:06

42

Affichage d’une chaine de caractèresAffichage d’une chaine de caractères

Quelques programmes simplesQuelques programmes simples

 

Page 43: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 43/51

24/10/2011 07:09:06

43

Quelques programmes simplesQuelques programmes simples

 

Page 44: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 44/51

Annexe langage d’assemblage MIPSAnnexe langage d’assemblage MIPS

24/10/2011 07:09:06

44

Classes d’instructionsClasses d’instructions

 

Page 45: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 45/51

24/10/2011 07:09:06

45

Arithmétiques et LogiquesArithmétiques et Logiques

 

Page 46: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 46/51

BranchementsBranchements

24/10/2011 07:09:06

46

 

Page 47: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 47/51

Accès mémoireAccès mémoire

24/10/2011 07:09:06

47

 

Page 48: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 48/51

Instructions systèmeInstructions système

24/10/2011 07:09:06

48

 

Page 49: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 49/51

CodOpCodOp spécialspécial

24/10/2011 07:09:06

49

Pour le format R, le codeOp peut être nul et c’est le champ func (6bits depoids faible ) qui détermine l’opération

 

Page 50: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 50/51

Code opérationCode opération

24/10/2011 07:09:06

50

Il détermine quelle opération effectuer (6 bits de poids forts)

 

Page 51: Arch_2lmd_Pr-  és 3 (1)

5/16/2018 Arch_2lmd_Pr-  és 3 (1) - slidepdf.com

http://slidepdf.com/reader/full/arch2lmdpr-es-3-1 51/51

Services systèmeServices système

51