You are on page 1of 46

PHYS246A : Architecture des

Ordinateurs - Microprocesseurs
Cours 5

Année 2009/2010
Question ?

• Question de début de cours :


 Soit la réalisation d’un système embarqué de reconnaissance vocale !

 Le concepteur réalise un programme. Il souhaite que le µC/µP l’exécute bien sure.


Où doit-on placer ce programme ?? RAM ou ROM ?? Pourquoi ???

2
Question ?

• Remarque :
 Il est possible d’en trouver directement dans le µC/µP (voir diag + datasheet)

 Ou alors, il faut ajouter un composant ROM au circuit global

3
Plan global du cours

I. Notion de numération binaire (le monde du


numérique et de l’analogique)
II. Rapide Historique de l’évolution des ordinateurs
III. Le modèle Von Neuman et représentation
hiérarchique
IV. Les différents composants du système et leur
caractéristiques
a. Les mémoires
b. Le processeur :
1. modélisation primaire

4
Modèle 1

• Le processeur composé :
 D’une unité de commande : étape 1, 2 et 4
Déroulement d’un programme
 D’une UAL : étape 3 1. extrait une instruction de la
mémoire,
2. analyse l'instruction
3. exécution de l'instruction,
4. stocke le résultat en mémoire

Processeur Mémoire
Principale

Programmes
Unité de commande
Bus d’adresses
Données
UAL

Bus de données vi5

clavier, lecteur de cartes


Unité entrées/sorties perforées, ruban, ... 5
écran, imprimante
Modèle 1

Un µP : 2 éléments importants
• Le CPU = unité de commande + UAL
• La mémoire principale : données et programmes

6
Plan global du cours

I. Notion de numération binaire (le monde du


numérique et de l’analogique)
II. Rapide Historique de l’évolution des ordinateurs
III. Le modèle Von Neuman et représentation
hiérarchique
IV. Les différents composants du système et leur
caractéristiques
a. Les mémoires
b. Le processeur :
1. modélisation primaire
2. L’horloge

7
Horloge

Le processeur (P)

• Composant intégré sur silicium


L’activité du (P) et de l’ordinateur, cadencée par une horloge.
instructions exécutées en quelques cycles d’horloge.
• Horloge peut être interne ou externe au processeur

8
Horloge

• Horloge est souvent divisée pour cadencer des sous-fonctions


(diviseur de fréquence):

9
Horloge

• Différentes possibilités « d’apporter » une horloge au µP/µC:


RC, cristal (le plus stable, le plus précis), ou venant d’un
générateur d’horloge.

1Page 61, Designing Embeded Systems with PIC, Tim Wilmshurst, Newnew 10
Horloge

• L’horloge peut être vue comme une fonction du µP  à ce


titre elle est souvent paramétrable par programmation.

Qu’est ce qu’une
fonction du µP/µC ?
()

11
Horloge

• Ex fonctions : ADC, CNA, CNA, comparateur de tensions, gestion de


interruptions….
• Est une fonction électronique crée à partir des composants
électroniques : R, L, C, transistors, diode.
• Est le plus souvent intégrées sur la puce de silicium.
• Généralement le paramétrage d’une fonction se fait par « placement
» d’un mot binaire dans un registre () qui contrôle la dite fonction.

12
Horloge

• registre ????
 Un ensemble de cases mémoire de longueur fixe, longueur correspondant à la
« capacité » de traitement du circuit considéré.
 Est en général composé de bascules (cf suite cours ou cours M. Chane) – voir
TPs

13
Horloge

• Ex de la datasheet :

Memory Map

14
Plan global du cours

I. Notion de numération binaire (le monde du


numérique et de l’analogique)
II. Rapide Historique de l’évolution des ordinateurs
III. Le modèle Von Neuman et représentation
hiérarchique
IV. Les différents composants du système et leur
caractéristiques
a. Les mémoires
b. Le processeur :
1. modélisation primaire
2. L’horloge
3. Jeu d’instruction

15
remarques

• La situation de communication :

16
remarques

• Choix possible (L’assembleur ??? Et le langage machine ???) :


• Le processeur « s’adapte » à l’homme  utilisation de langage de
programmation de haut niveau C et de compilateur C

Code en langage Compilateur ou


Langage Machine
C interpréteur

Vi9_271

• Le concepteur est « loin » de la manipulation des ressources


matérielles du µC  les programmes ne sont pas forcément optimisés
en terme d’utilisation des ressources matérielles et donc en vitesse
d’exécution. L’utilisateur n’apprend rien sur l’architecture du µC.

17
remarques

• Choix possible (L’assembleur ??? Et le langage machine ???) :


• L’humain « s’adapte » au processeur
 Hors de question de « parler » le langage du processeur : 1001112,
incompréhensible !!!
  utilisation d’un langage proche de celui du processeur ( plus optimisé en
utilisation de ressources, acquisition de connaissances sur le µC et ses registres) =
langage ASSEMBLEUR = utilisation de mnémoniques.
 Exemple de mnémonique :

Code utilisant les


assembleur Langage Machine
mnémoniques

Vi9_271
1001 001
LDA….
1000 000
STA…. 18
…...
remarques

• Au lieu du terme assembleur, CROSS-ASSEMBLEUR car votre


« ordinateur=un microprocesseur AMD, INTEL ou SPARC» réalise
une traduction en langage machine pour un autre processeur PIC par
exemple.

• L’ensemble des mnémoniques constituent le jeu d’instruction du µC

19
Les éléments de base d’un ordinateur

Le processeur (P)

• Les instructions que comprend le µP sont très simples = « son


jeu d’instructions » : lire des cases mémoire (les registres),
additionner, multiplier 2 nombres binaires, décalage, opération
binaire...

20
Les éléments de base d’un ordinateur

Le jeu d’instructions
 c'est l'ensemble des instructions de base « presque câblées en réel»
sur la puce, donc que le microprocesseur peut exécuter sans
« traduction » = rapidité
 Ces instructions simples codées en binaire = le langage
machine

21
Les éléments de base d’un ordinateur

Le jeu d’instructions
- langage de programmation d'un µP/µC = langage machine composé
que de 1 et de 0 (signification non évidente pour l‘homme).
- Ex: additionner deux nombres :
10001010(instruction) 01011000(1er opérande) 11010010(2ème
opérande).

- Pour une meilleure lisibilité, on a donné des noms aux opérations


(mnémoniques), exemple : ADD, DIV, OR etc. .
- Pour convertir mnémoniques  langage machine, utilise un
programme que l'on nomme assembleur

22
Les éléments de base d’un ordinateur

Exemple de programme en assembleur :

23
Les éléments de base d’un ordinateur

Exemple de jeu d’instruction d’un PIC :

Il faut à partir de ces


simples instructions
pouvoir faire des
programmes qui
réalisent une
détection d’alarme
de température et un
affichage sur des
afficheurs 7
segments d’un
message par
exemple

24
Les éléments de base d’un ordinateur

Le jeu d’instructions
- Les instructions sont en fait composées : Opcode (code opération ex:
00011 = addition) + des informations sur les opérandes de
l’opération (valeur avec laquelle il faut faire une addition…)

25
remarques

• Exemple de jeu d’instruction du PIC ()

Cycle exécution

Mnémoniques Langage Machine


Rem : les opérandes Digit du
sont dans le code Registre d’état
machine « dff… » positionné

• Exemple de l’instruction ADDLW ()


26
remarques

• Exemple de l’instruction ADDLW ()

• Sommation d’un nombre contenu dans l’instruction avec le registre de


travail W

27
remarques

• Autre instruction ADDWF, « d » = le bit de destination du résultat


de l’addition, permet d’envoyer le résultat vers W ou « vers »
l’adresse f d’origine

• Le résultat est stocké soit dans le registre W où en mémoire f

28
remarques

• Dans l’instruction ADDWF, « f » = le bit de l’opérande de


l’instruction = « sur qui va agir l’instruction »

• f : fichier = une zone RAM de 7 bits


• b : bit
• k : littéral = une données sur 8 bits ou une adresse sur 11 bits

29
Les éléments de base d’un ordinateur

 Chaque famille de microprocesseurs possède son propre jeu


d'instructions. Ce jeu d'instructions est tributaire d'exigences telles
que
 La simplicité du programme réalisé
 La rapidité d’exécution du programme
 L'universalité des instructions (conversion, exportation de programmes)
 L'occupation sur le wafer de silicium.
 Le « confort » du programmeur en terme de fonctions disponibles.

  Bien choisir son µP (et donc son jeu d’instruction) en fonction de


l’application souhaitée…ne sert à rien d’avoir « un gros » processeur
avec beaucoup d’instructions si on utilise 10% de ces instructions
(coût, vitesse, encombrement sur la carte, consommation
énergétique)

30
Les éléments de base d’un ordinateur

Le jeu d’instructions

Le 68HC11, nombre
d'instructions > 100. le pic 16f84 ne comporte que
35 instructions (architecture RISC)
Le temps d'apprentissage en est réduit
31
d'autant.
Les éléments de base d’un ordinateur

• RISC et CISC ????


• architecture CISC (Complex Instruction Set Code) un processeur dont jeu
d'instructions possède les propriétés suivantes :
 Il contient beaucoup de classes d'instructions différentes.
 Il contient beaucoup de type d'instructions différentes complexes et de taille variable.
 Il se sert de beaucoup de registres spécialisés et de peu de registres généraux.

• L'architecture RISC (Reduced Instruction Set Code), un processeur RISC est


un processeur dont le jeu d'instructions possède les propriétés suivantes :
 Le nombre de classes d'instructions différentes est réduit par rapport à un CISC.
 Les instructions sont de taille fixe.
 Il se sert de beaucoup de registres généraux.
 Il fonctionne avec un pipe-line

• Depuis les décennies 90, les microprocesseur adoptent le meilleur des


fonctionnalités de chaque architecture provoquant de fait la disparition
progressive de la différence entre RISC et CISC et l’inévitables polémiques
sur l'efficacité supposée meilleure de l'une ou de l'autre architecture.
32
Les éléments de base d’un ordinateur

Le jeu d’instructions
 Les instructions peuvent être classées en six catégories.
1. Transfert de données, entre le P et la mémoire, MOVE, LOAD, STORE,. . .
2. Opérations arithmétiques, ADD, SUB,. . .
3. Opérations logiques OR, AND,. . .
4. Contrôles des séquences, sauts conditionnels ou inconditionnels, . .
5. Entrées / Sorties, entre le P et les périphériques,. . .
6. Divers, décalages, incrémentation,. . .

 Se connecter au PC : Kit Pédagogique Discala si installer.

33
Plan global du cours

I. Notion de numération binaire (le monde du


numérique et de l’analogique)
II. Rapide Historique de l’évolution des ordinateurs
III. Le modèle Von Neuman et représentation
hiérarchique
IV. Les différents composants du système et leur
caractéristiques
a. Les mémoires
b. Le processeur :
1. modélisation primaire
2. L’horloge
3. Jeu d’instruction
4. Les interruptions

34
Les interruptions

• Utilité : permet au « matériel » de communiquer avec le µP dans cas où


évènement extérieur arrive et doit être traité (ex : CTRL + ALT + SUPPR).
exemples : frappe au clavier, arrivée d’une donnée sur la connexion réseau,
arrivée d’une information d’une carte de mesure.

• Une routine de service spécifique (= petit programme) est exécutée pour


« répondre » au problème.
• Concept de base :
 envoi d’un signal électrique au µP alors que celui-ci est en cours d’exécution d’une
instruction.
 Le µP possède une entrée IRQ (Interrupt ReQuest) à laquelle est associée « bit
d’interruption ».

• Est aussi une fonction du µP  paramétrable par registre ()

35
Les interruptions

• Registre INTCON du PIC

36
Les interruptions

• Exemple : entrées IRQ du 68HC11 : broche 19,18

37
Les interruptions

• Principe de la détection d’interruption par scrutation d’un digit particulier : Avant


de passer à « l’instruction suivante », le µP vérifie l’état de ce bit pour
interrompre son action au cas où.

• Scrutation possible de plusieurs signaux en même temps : fonction OU

Méthode dite de
la scrutation

38
Les interruptions

• Quand CPU détecte IRQ=1


• Sauvegarde de « l’état d’exécution » du programme en cours
• Émission d’un signal IACK qui charge en registre l’état des lignes, identification
du demandeur d’IRQ et exécution d’un programme préparé à l’avance et
spécifique au périphérique demandeur.
• Autre technique de détection d’IRQ : « l’identification directe », le périphérique
envoie un « code » directement au µP 39
Les interruptions

• « l’identification directe » (suite)


 Envoi d’un code sur le bus de données
1

 code utilisé pour exécuter une routine de service spécifique au


périphérique « envoyeur » de l’IRQ.
 Très souvent code envoyé défini sur le périphérique par un
ensemble de petits interrupteurs à positionner au moment de son
installation.
40
Les interruptions

• « l’identification directe » (suite)


• Notion de « daisy chain » : pour éviter les conflits entre périphériques émettant
des interruptions

 La priorité est définie par la position du périphérique sur la ligne d'interruption


(daisy-chain ou chaînage de priorité).
Par exemple :
 le périphérique P3 ne peut faire passer sa demande (IRQ sur bus données)
que si P1 et P2 n'ont aucune demande en cours.
 Dans le cas contraire le demandeur en amont empêche la transmission du
signal de reconnaissance (IACK) émis par le CPU et qui autorise l'écriture du
code sur le bus. La routine de service pour P3 pourra être interrompue à tout
moment par une requête de P1 ou P2. 41
Les interruptions

• VOCABULAIRE Catégories :
on rencontre interruptions
 Externes matérielles : vient d’un périphérique « externe au système »
(imprimante, capteur, système d’alarme)

 Externes logicielles : vient du programme en cours d’exécution par


exemple pour bénéficier des privilèges « SYSTEM ».

 Internes appelées « exceptions » : vient du P pour signaler des


erreurs lors de l’exécution d’un instruction (division par 0, erreur
d’adressage, overflow…)

42
Les interruptions

• Autre vocabulaire et principe :


Processeur en
d’exécution d’un
programme A

Arrivée de l’interruption

Appelée interruption Ignorance


masquable temporaire de l’interruption Sauvegarde de l’état
passage instruction suivante d’exécution du prog A
du programme A Exécute un traitement
Traitement de l’interruption d’interruption
dès la fin du programme A Consultation table des 7
vecteurs d’interruptions,
donne les adresses du
programme de traitement
Reprise exécution du
programme A

• Voyons apparaître la notion de « priorité d’interruption ».

43
Les interruptions

• notion de « priorité d’interruption ».

enchaînement de ruptures de
séquence provoquées par
des interruptions hiérarchisées

44
Les interruptions

Sur la notion de priorité des interruptions, il peut exister des entrées spéciales au niveau
du processeur :
• NMI utilisée pour envoyer au P une interruption non masquable (NMI, Non Maskable
Interrupt). signal normalement utilisé pour détecter des erreurs matérielles (mémoire
principale défaillante par exemple).
• INTR (Interrupt Request), demande d’interruption masquable. Utilisée pour indiquer
au µP l’arrivée d’une interruption.
• INTA (Interrupt Acknowledge) : cette borne est mise à 0 lorsque le processeur traite
effectivement l’interruption signalée par INTR (c’est à dire qu’elle n’est plus
masquée).
• IF (Interrupt Flag = « drapeau »): les interruptions sont soit masquées soit
autorisées, suivant l’état d’un indicateur spécial du registre d’état, champ IF.
 si IF = 1, le processeur accepte les demandes d’interruptions masquables, c’est à dire qu’il les traite
immédiatement ;
 si IF = 0, le processeur ignore ces interruptions.

45
Les interruptions

• Sur la notion de priorité des interruptions (suite) :


• Un contrôleur d’interruption peut aussi gérer les différentes requêtes d’interruption
: Le contrôleur d’interruptions est un circuit spécial, extérieur au processeur, dont le
rôle est de distribuer et de mettre en attente les demandes d’interruptions provenant
des différents périphériques.

• Il gère les demandes d’interruption envoyées par les périphériques, de façon à les
envoyer une par une au processeur (via INTR). Avant d’envoyer l’interruption
suivante, le contrôleur attend d’avoir reçu le signal INTA, indiquant que le processeur
a bien traité l’interruption en cours.

46