La couche ISA Instruction Set Architecture - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

La couche ISA Instruction Set Architecture

Description:

Avec 32 bits d 'adresse on peut adresser un espace m moire de 2^32 octets (4 Go) ... Le pentium peut adresser 16 384 segments de 4Go!! La plupart des syst mes d 'exploitation ... – PowerPoint PPT presentation

Number of Views:160
Avg rating:3.0/5.0
Slides: 24
Provided by: RAC64
Category:

less

Transcript and Presenter's Notes

Title: La couche ISA Instruction Set Architecture


1
La couche ISA (Instruction Set Architecture)
  • Robert Racca

2
Rôle de la couche ISA
  • Le role de la couche ISA intermédiare entre
    logiciels et machine les compilateurs traduisent
    dans les textes sources ( fortran, pascal, C..)
    en textes ISA qui sont ensuite interprétes par
    l assembleur et exécutés par la couche
    micro-architecture

3
Propriétés de la couche ISA
  • La couche ISA est la vision que les compilateurs
    ont de la machine. Ici sont définis les registres
    manipulables, l organisation de la mémoire, les
    interruptions, et les différentes instructions
     de base  qui serviront à traduire les
    instructions complexes des langages de haut
    niveau.
  • La couche ISA définit aussi un langage dit
     langage d assemblage  qu on peut utiliser
    comme tel ou incorporer dans ses programmes de
    haut niveau pour optimiser le traitement de
    certaines partie du programme ( ex
    interruptions, gestion mémoire graphique etc)

4
Organisation de la mémoire
  • La mémoire des ordinateurs est composée de
    cellules (octets) rangées à des adresses
    consécutives. Les mots mémoires se composent de 4
    ou 8 octets (32 ou 64 bits) . La plupart des
    ordinateurs imposent que ces mots soient alignés
    en mémoire
  • C est le cas du Pentium dont le bus d adresse
    n a que 33 bits les 3 bits de poids faible sont
    perdus donc les adresses sont des multiples de 8.

5
Organisation mémoire
  • Avec 32 bits d adresse on peut adresser un
    espace mémoire de 232 octets (4 Go). Comme de
    plus les adresses sont décomposées en
    Segmentoffset on peut théoriquement adresser un
    espace mémoire immense. Le pentium peut adresser
    16 384 segments de 4Go!! La plupart des systèmes
    d exploitation ( Unix ou Windows) n utilisent
    quun segment.
  • Sur le Pentium, les octets sont rangés  petit
    boutistes  c est à dire que les octets de poids
    faible ont les adresses les plus faibles.

6
Les registres
  • On parle ici des registres accessibles en ISA .
    Tous les registres du processeur ne sont pas
    accessibles (par exemple MAR, TOS) alors que
    d autres sont visibles, comme SP, PC etc)
  • Il existe des registres généraux qui peuvent être
    utilisés par certains compilateurs de manière
    spécifique et des registres spéciaux, comme PSW
    (program Status Word) qui contient des drapeaux
    (bits) comme
  • N (1 si résultat négatif)
  • Z (1 si zéro)
  • V (1 si débordement de capacité oVerflow)
  • C (1 si retenue sur bit de gauche Carry)
  • A (1 si retenue intermédiare sur le bit 3)
  • P (1 si résultat de Parité paire)

7
Les Instructions
  • Les instructions de la couche ISA définissent le
    travail que doit réaliser le processeur ainsi que
    ce que voit et manipule le compilateur.
    Plusieurs sortes d instructions
  • Les déplacements de données Registre/Mémoire par
    exemple Load, Store..
  • Les déplacements Registre/Registre ( Move)
  • Les traitements de données Arithm,logiques,
    comparaisons
  • Les instructions d organisation du programme
    sauts inconditionnels et conditionnels

8
Exemple du Pentium II
  • Évolution des 8086 et 8088 (processeurs 16 bits)
    , 80286 (16b) et 80386(32b) puis 80486 , Pentium
    . Le Pentium II est un processeur 32 bits
    compatible 16b .
  • Il fonctionne selon 3 modes réel 8086 il se
    comporte comme un 8086 et si un progr écrit pour
    un 8086 ne tourne pas bien, la machine se
    plante.Virtuel 8086 Le Pentium cree un espace
    confiné ou il execute en 8086 mais en cas de pb,
    le SE reprend la main ( exemple des progr MS DOS
    tournant sous Windowsmode protégé Le Pentium
    ,fonctionne avec 4 noiveaux de privilèges, ( bits
    du registre PSW)

9
  • Privilège 0 tout est permis. Utilisé par le SE
  • Privilège 3 certaines instructions critiques
    sont interdites, certains registres aussi
    destiné a l execution des programmes
    utilisateur. Les privilèges 1 et 2 sont
    rarement utilisés.
  • Mémoire organisée en 16384 segments de 2 32
    octets ( 2 32 4 Go ! ) Unix et Windows n
    utilisent qu un segment. Chaque octet de cet
    espace a son adresse propre et se trouve dans un
    mot mémoire de 8 octets.

10
Principaux registres du Pentium
  • Registre général (ex calcul)Peut servir
    d offset mémoireSert en général de compteur de
    bouclesObligatoire pour accès aux ports
  • Offset mémoire utilisé avec DSOffset mémoire
    utilisé avec ESOffset mémoire , souvent copie de
    SPOffset mémoire de pileSegment mémoire du
    codeSegment mémoire de la pileSegment mémoire
    des donnéesautre segment mémoireautre segment
    mémoireautre segment mémoireoffset mémoire du
    code (innaccessible directement mais modifiable
    par call jmp, jx)
  • mot des drapeaux

11
Format des instructions
  • Une instruction comprend plusieurs champs le
    code operatoire et des informations concernant
    les opérandes ou les resultats etc.. On dit aussi
    adressescertaines machines ont une structure
    d instruction tres complexe par exemple le
    Pentium II et suivants

Complexité lenteur!
12
Format instruction SPARC ( RISC machine)
2 5 6 5 1
8 5
Les 2 premiers bits définissent le format de l 
instr et où se trouve le code op
13
Instructions JVM
IADD
ILOAD, BIPUSH
GOTO
IINC
14
L adressage
  • Considérons l instruction ADD de la couche ISA
    3 adresses 2 opérandes 1résultat. Soit 3x32
    bits code opération ( 1octet?) 104 bits!
    augmentation de la taille des programmes machine!
  • Pour réduire Utiliser des registres ( il y en a
    peu et 5 à7 bits suffisent a les adresser (
    combien?). Mais il faut les  charger  donc
    temps perdu . Quand est-ce intéressant dutiliser
    des registres?

Les statistiques prouvent que souvent 1
opérandeest re-utilisé rapidement
  • Mode adresse implicite Reg2 Reg2 Reg1
    par exemple ( 2 adresses)on peut diminuer le Nb
    d adresses 1 adrese ( accu) ou 0 adresse
    possible?

Pile ( Mic1)
15
Les modes d adressage Immédiat
  • Immédiat cest la façon la simple. On donne la
    valeur de l opérande dans l instruction. Pas d
    acces mémoire rapidité.
  • Exemple MOV R1, 4 4 est la valeur à
    stocker dans R1. ( R1 est en fait une adr de
    registre sur 5 à 7 bits!). Inconvénients
  • restriction sur la valeur de l opérande
    pourquoi?
  • La valeur de l opérande est fixée lors du codage
    du programme . Usage? .

Taille fixe de la zone operande dans l 
instruction
Réservé aux constantes!
16
Les modes d adressage direct
  • On donne l adresse effective en mémoire de
    l opérande. Ex MOV R1, (12436) On charge la
    valeur écrite à l adresse 12436 dans
    R1.Inconvénients
  • Restrictif
  • Fixe l adresse est fixée a l écriture du code
    . Usage?

Pour les variables globales des programmes
Néanmoins très utilisé par les compilateurs car
dans 1 programme on utilise souvent les var
globales
17
Les modes d adressage par Registre
  • Comparable à l  adressage direc, mais ici on
    référence un registre ex MOV R1, 2 rempli
    R1 avec contenu de R2.
  • Avantages vitesse et taille de l adresse
    réduite.
  • Un compilateur sait quelles sont les variables
    référencées et leur affecte des registres ( ex
    index de boucles)

18
Les modes d adressage indirect par registre
  • L opérande est en mémoire mais son adresse est
    dans un registre ex MOV R1, (R2) remplit R1
    avec le mot mémoire dont l adresse est dans R2.
  • Avantage économie de bits pour adresser la
    mémoire!
  • Exemple calculer la somme des 1024 elements d un
    tableau et la range dans R1. On sait que le
    premier elt est en 2060 et que chaque element
    tient sur 4 bits.

19
  • MOV R1, 0 R1 lt- 0 au départ
    MOV R2, 2060 R2 lt- Adr 1 element MOV R3,
    6156 R3 adr qui suit tableau Loop ADD R1,
    (R2) ADD R2, 4 CMP R2, R3 BLT
    Loop

Adressage direct
Adressage indirect par registre
Remarque dans le corps de la boucle il n y a
pas d adresse mémoire rapidité
20
Les modes d adressage indexé
  • L adresse effective est un offset par rapport à
    une adresse de  base  inscrite dans un
    registre ex MOV R1, A(R2) avec A une
    valeur ctele format d une telle instruction
    pourra être

MOV
R1
R2
12436
21
Les modes d adressage par pile
  • On peut réduire à zéro le nombre d adresses dans
    une instruction comme ADD en utilisant une pile
    c est ce qui a été fait dans mic1. Alors toutes
    les adresses sont implicites.
  • Néanmoins il faut transférer les opérateurs sur
    la pile!
  • Toute expression infixée est analysée par les
    compilateurs et traduite en arbre syntaxique puis
    en polonaise inversée ( postfixée) . Cette
    expression est très simple ensuite à évaluer avec
    une pile.

22
exemple
  • (82x5)/(13x2-4) s analyse enqui
    s écrit en postfixé

8 2 5 x 1 3 2 x 4 - /
23
Évaluation de
8 2 5 x 1 3 2 x 4 - /
  • Empiler les opérandes
  • si opérateur, dépiler 2 fois, effectuer puis
    empiler le resultat.
  • A la fin, le resultat est au sommet de la pile
  • écrivez en assembleur mic1 ( doté de Imul, Idiv)
    l évaluation de cette expression , simulez
    l évaluation ( exécution de votre programme) en
    suivant l évolution de la pile.
  • Comment un compilateur peut il traduire 1 exp
    postfixée analysée?
Write a Comment
User Comments (0)
About PowerShow.com