Академический Документы
Профессиональный Документы
Культура Документы
Entres
Sorties
1
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Nejib BHA/ENSI/Architecture
Excution (execute)
Instruction suivante
3
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Cas de ISA
Cas de ISA, squence A=B+C Machine pile (calculette HP) Accumulateur, 1 seule registre (IBM 701)
Push A
Push B Add Pop C
Load A
Add B Store C
Registre-Mmoire (IBM 360, DEC VAX) Chargement rangement (MIPS, SPARC) Load R1, A Add R1, B Store C, R1 Load R1, A Load R2, B Add R3, R1, R2 Store C, R3
4
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
5
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
MIPS ISA
230 octet mmoire
31 * 32 bits R0=0
32 * 32 bits Fregs complmentaire HI, LO, CP R0 R1 R31 CP LO HI
6
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
MIPS ISA
Depuis 1980 toutes les machines utilisent adresses au niveau de loctet (8 bits) Puisque on peut lire un mot de 32 bits comme 4 octets en un seul coup, comment ces octets sont ranger dans le mot ? Big-endian: ladresse de loctet le plus significatif est ladresse du mot
Numro doctet
Un mot peut tre placer nimporte ou en mmoire? La plupart des instructions de chargement-rangement oprent sur des donnes alignes (son adresse mmoire est multiple de sa taille en octets).
7
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Nejib BHA/ENSI/Architecture
Instructions 8086
Load cond branch compare store add and 22% 20% 16% 12% 8% 6%
sub
Mov reg-reg call
5%
4% 1%
return
1%
96%
Nejib BHA/ENSI/Architecture
add $8,$17,$18 # registre $8 contient g+h add $9,$19,$20 # registre $9 contient i+j sub $16,$8,$9 #f reoit $8-$9 (c--d (g+h)-(i+j))
Remarque : les registres $8,$9 correspondent aux variables temporaires t0 et t1 de l'exemple prcdent
10
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
On ne peut stocker qu'une petite quantit de donnes dans les registres, la mmoire d'un ordinateur contient des millions de donnes lmentaires. Et les structures de donnes comme les tableaux sont donc stockes en mmoire
Les oprations arithmtiques ont lieu dans les registres pour cela MIPS dispose d'oprations qui transfrent les donnes entre la mmoire et les registres appeles instructions de transfert de donnes . Pour accder une donne en mmoire l'instruction doit fournir son adresse .
11
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Mmoire
0
4 8 12
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Assembleur MIPS :
lw $8,Tsart($19) # le registre temporaire $8 reoit T[i] # le registre $8 reoit h+T[i] # on recopie h+T[i] dans T[i]
13
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
# $1 = $2 + $3
# $1 = $2 - $3 # $1= $2+100
Transfert de donnes :
lw $1, 100($2) sw $1, 100($2) lui $1, 100 # $1 = Mmoire[$2 + 100] # Mmoire [$2 +100]=$1 # $1= 100*216
14
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
add 32
sub 34
Instruction type R
31 op 26 rs 21 rt 16 rd 11 decval 6 funct
15
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
lw 35 sw 43 Instruction type I
op 6 bits rs 5 bits rt 5 bits immediate 16 bits
16
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
# si $2<$3 alors $1=1 sinon $1=0 # si $2<100 alors $1=1 sinon $1=0
17 Nejib BHA/ENSI/Architecture
E1: f = f-i;
F,g,h,i,j correspondent aux cinq registres $17 $21
Assembleur MIPS :
beq $20,$21,E1 add $17,$18,$19 E1: sub $17,$17,$20 # aller en E1 si i==j # f = g+h #f = f-i
18
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Assembleur MIPS :
bne $20,$21,Else
add $17,$18,$19 j Exit Else : sub $17,$18,$19 Exit :
# aller Else si ij
# f = g+h # aller exit #f = g-h
Nouvelle instruction :
j Exit
19
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Exemple :
J 2000
2 6 bits 1000 26 bits
R-type
I-type J-type
Chapitre 2 : MIPS ISA
op
op op
rs
rs
rt
rt
rd
decval immediate
funct
add, sub
ori, lw, sw, beq j, jal
20
Address destination
Nejib BHA/ENSI/Architecture
Exemple
Code en C : switch (k) { Assembleur MIPS : Loop : mult $9,19,$21 lw $8, Tablesaut($9)
jr $8
E0 : E1 :
E2 :
E3 : Exit: 4 mots en mmoire partir de table saut contiennent E0,E1,E2,E3 f,g,h,i,j,k $16..$21 $10 4
21
Nejib BHA/ENSI/Architecture
Procdure A
Procdure B Procdure C
diteur de liens
Nejib BHA/ENSI/Architecture
$31
Cas plus compliqu lorsque une procdure appelle une autre procdure
Vide les registre $31 dans la mmoire
Chapitre 2 : MIPS ISA
23
Nejib BHA/ENSI/Architecture
$29
Considrons lexemple suivant :
A: Jal B jr $31 B: Jal C jr $31 C:
Chapitre 2 : MIPS ISA
jr $31
24
Nejib BHA/ENSI/Architecture
Appel de procdure
1. Aprs que A est appel B
Mmoire
$31
Adresse retour de B
$31
Adresse retour de C
Adresse retour de B
$29
$29
Mmoire
$31
Adresse retour de B Adresse retour de B
$31
Adresse retour de B Adresse retour de B
$29
$29
25
Chapitre 2 : MIPS ISA
Nejib BHA/ENSI/Architecture
Add $4,$2,$3
Mmoire
Nejib BHA/ENSI/Architecture
16 bits
addi $1,100
Oprande constante
4. Adressage relatif CP
op rs rt adresse
CP bne $1,$2,100 +
Mmoire
Nejib BHA/ENSI/Architecture
jump
jump register jump and link