Registres de l`UCT

Download Report

Transcript Registres de l`UCT

Structures d’ordinateurs (matériel)
Chapitre 2
http://w3.uqo.ca/luigi/
1
Ce chapitre:

Fait une révision de concepts importants
de structure des ordinateurs,
probablement déjà vus dans les cours
préalables
 Surtout

Ch.2
les interruptions et leur fonctionnement
Introduit aussi des concepts importants
qui seront développés dans la suite du
cours
2
Concepts importants du Chapitre 2









Ch.2
Registres d’UCT, tampons en mémoire, vecteurs
d’interruption
Interruption et scrutation-polling
Interruptions et leur traitement
Méthodes d’E/S avec et sans attente, DMA
Tableaux de statut de périphériques
Protection et instructions privilégiées, modes
d’exécution
Registres bornes
Appels de système
Hiérarchie de mémoire
3
Architecture d’ordinateurs
Ch.2
4
Registres d’UCT
Ch.2
5
Registres de l’UCT (mémoire rapide dans UCT)
Unité centrale
Registres


Ch.2
Registres non-visibles de contrôle et statut
 Généralement non disponibles aux programmes de l’usager
 l’UCT les utilise pour contrôler ses opérations
 Le SE les utilise pour contrôler l’exécution des programmes
Registres visibles (aux usagers)
 disponibles au SE et programmes de l’usager
 visibles seulement en langage machine ou assembleur
 contiennent données, adresses etc.
6
Exemples de registres de contrôle et statut

Le compteur d’instruction (PC)
 Contient
l’adresse de la prochaine instruction à
exécuter

Le registre d’instruction (IR)
 Contient

l’instruction en cours d’exécution
Autres registres contenant, p.ex.
 minuterie
 bit
d’interruption activé/désactivé
 bit du mode d’exécution superviseur/usager
 bornes de mémoire du programme en exec.

Ch.2
Registres de statut des périphériques
7
Opération d`ordinateurs pour E/S






Ch.2
Unités d’E/S et UCT peuvent exécuter en même
temps
Chaque type d`unité a un contrôleur
Chaque contrôleur a un tampon ou registre en
mémoire principale (buffer)
Le contrôleur informe l’UCT que l’opération a
terminé
L’UCT a des registres qui contiennent le statut des
différentes unités E/S
Ces activités peuvent causer des interruptions qui
sont traitées selon le contenu du vecteur
d’interruptions en mém centrale
8
Registres, vecteurs d’interruptions, tampons
Unité centrale
Mémoire vive
Compt. Instr.
Reg. Instr.
Regs. Unités E/S
Registres
Minuterie
Interrupt. activée
Vect.
interrupt
E/S
Minuterie
Dépass. mém
Etc.
Mode Superv./Usag.
Bornes mém.
Des interruptions peuvent être
causés:
Par l’UCT ou par les périf. d’E/S
Ch.2
Registre imprimante
Registre disque
Registre clavier
Les registres en mémoire sont aussi
appelés tampons (buffers)
9
Quand il y a plusieurs UCT? (processeurs multi-cœurs)

Une d’elles est dédiée à la gestion des
interruptions et des périphériques
 Différentes
configurations possibles …
10
Traitement des interruptions:
Interruption et scrutation
Ch.2
11
Deux façons différentes de traiter la
communication entre UCT et unités E/S

Interruption:


l’UCT est interrompue entre instructions quand un
événement particulier se produit (fin d’E/S, erreur...)
Polling (E/S programmée, interrogation, scrutation):

le programme interroge périodiquement les regs statut
et détermine le statut des unités E/S:
terminé ou non
 pour les unités E/S lentes

Ch.2
12
Exemple

Vous et votre téléphone mobile …
 Vous
utilisez l’interruption si vous avez
une sonnerie qui vous avertit quand un
appel arrive
 Vous
utilisez la scrutation (polling) si au
lieu vous regardez périodiquement le
téléphone pour voir les appels
Ch.2
13
Scrutation et attente occupée
(polling and busy waiting)



Ch.2
La scrutation s’identifie avec l’attente occupée dont nous
parlerons plus tard
La scrutation ou attente occupée est considérée moins
efficace que l’interruption, car la première gaspille des
cycles d’UCT
Mais l’interruption est plus coûteuse à implanter dans le
matériel
 Si on veut épargner dans le coût des UCT, on pourrait
décider de ne pas l’implanter
14
Le cycle d’instruction de base [Stallings]
• L’UCT extrait l’instruction de la mémoire.
• Ensuite l’UCT exécute cette instruction
• Le compteur d’instruction (PC) contient l’adresse de la prochaine
instruction à extraire
• Le PC est incrémenté automatiquement après chaque extraction
Ch.2
15
Le cycle d’instruction avec interruptions [Stallings]



Après chaque instruction l’UCT examine s’il y a eu une interruption
S’il n’y en a pas, il extrait la prochaine instruction du programme
S’il y en a, il suspend le pgm en cours et branche l’exécution à une
position fixe de mémoire (déterminée par le type d ’interruption)

Ch.2
une partie de la mémoire et réservée pour ça
16
Interruptions entre UCT et périphériques
Interruptions
Ch.2
17
Le pgm de gestion de l’interruption
(interrupt handler)





Est un pgm qui détermine la nature d’une
interruption et exécute les actions requises
L’exécution est transférée à ce pgm...
…et doit revenir au programme initial au point
d’interruption pour que celui-ci continue
normalement ses opérations
Le point d’interruption peut se situer n’importe où
dans le pgm (excepté où les interruptions ne sont
pas habilitées).
L’on doit donc sauvegarder l’état du programme

Ch.2
Registres UCT et autres infos nécessaires pour
reprendre le programme après
18
Exemples d’interruptions causées par les
périphériques ou par le matériel

E/S
 lorsq’une

Ch.2
opération E/S est terminée
Bris de matériel (ex: erreur de parité)
19
Ex. d’interruptions causées par le programme usager

Exception
 Tentative
d’exécuter une instruction protégée
 Référence au delà de l’espace mémoire du
progr.
 Division par 0
 Débordement

Appels du Système
 Demande
d’entrée-sortie ou
 Demande d’autre service du SE
 Nous
Ch.2
en verrons …
20
Interruptions causées par le SE


Ch.2
Minuterie établie par le SE
Préemption: processus doit céder l’UCT à
un autre processus
21
Cas 1: Ordre séquentiel des interruptions

L’UCT examine s’il y a des autres interruptions en attente après
avoir terminé d’exécuter un IH
[Stallings]
Ch.2
22
Cas 2: Interruptions d’interruptions


Ch.2
L’IH d’une interruption de priorité faible peut se faire interrompre
par une interruption de priorité élevée
Exemple: les données arrivant sur une ligne de communication
doivent-être absorbées rapidement pour ne pas causer de
retransmissions
23
Cas 3: Interruptions désactivées (disabled)


Le SE peut désactiver les interruptions s’il
est en train d’exécuter quelque chose de
très urgent
Il peut
 Ou
bien complètement ignorer les interruptions
intervenues dans ce temps
 Ou bien les empiler et les traiter plus tard
quand il peut
 Il
peut exister un mécanisme de matériel pour
faire çeci
• (chaque conception d’ordi a sa propre logique
d’interruption)
Ch.2
24
Deux méthodes d’E/S
a)
b)
Synchrone: le proc
demandeur attend le
résultat de l’opération
d’E/S
Asynchrone: le proc
demandeur peut
passer à autre chose
et utiliser le résultat
quand il est prêt
Dans le cas b) si le proc demandeur est le SE, il peut amorcer un autre
programme, ce qui rend possible la multiprogrammation
Ch.2
25
Deux problèmes importants


Dans le cas (b), quand il y a
une fin d’E/S, comment
trouver le processus en
attente des résultats
Quand une ressource (UCT
ou unité d’E/S ou autre unité)
devient disponible, à quel
processus devrait-elle être
affectée
Nous verrons que ces deux
problèmes sont résolus en
utilisant un mécanisme de files
d’attente Chapitre 4.
Ch.2
26
Hiérarchies de mémoire
Ch.2
27
Avant les ordinateurs
Sur le tableau les idées courantes, sur le bureau les
documents les plus utilisés à l’instant, les autres sur les
étagères
(Le bureau d’Einstein)
Ch.2
28
Hiérarchie de mémoire


Différentes types de mémoire
Constituent une hiérarchie
 vitesse (de plus vite à moins vite)
 coût (de plus cher à moins cher)
 permanence
ou non
 Les
mémoires les plus rapides sont aussi les
plus chères et le moins permanentes
Ch.2
29
Hiérarchie de mémoire
RAM
p. ex. mémoire flash
Ch.2
30
Caractéristiques typiques des différents types de mémoire
Ch.2
31
Mémoire virtuelle



Ch.2
IMPORTANT
L’UCT ne peut accéder à une instruction ou à une donnée
que si elles se trouvent
 En cache dans les ordinateurs où il y a de cache
 Ou sinon en mémoire vive (RAM)
Donc ces données doivent être apportées en mémoire vive
ou cache au besoin
Le mécanisme de mémoire virtuelle implémente cette le vaet-vient des pages entre mémoire secondaire et mémoire
principale
32
Gestion de mémoire virtuelle





Ch.2
Ch.3
La mémoire principale est souvent trop petite pour
contenir tous les processus en exécution
La mémoire secondaire (disques, flash) est
normalement utilisée pour contenir les parties
d`un processus qui ne sont pas actives à l ’instant
La mémoire principale et la mémoire secondaire
forment donc une unité logique appelée mémoire
virtuelle
Pour implanter la mémoire virtuelle, le SE doit
gérer de façon conjointe mémoire vive et mémoire
secondaire
Mécanisme de va-et-vient (swap)
Hiérarchie de mémoire!
33
Gestion de mémoire virtuelle





Ch.2
Ch.3
La mémoire principale est souvent trop petite pour
contenir tous les processus en exécution
La mémoire secondaire (disques, flash) est
normalement utilisée pour contenir les parties
d`un processus qui ne sont pas actives à l ’instant
La mémoire principale et la mémoire secondaire
forment donc une unité logique appelée mémoire
virtuelle
Pour implanter la mémoire virtuelle, le SE doit
gérer de façon conjointe mémoire vive et mémoire
secondaire
Mécanisme de va-et-vient (swap)
Hiérarchie de mémoire!
34
Protection





Ch.2
Plusieurs processus et le S/E partagent la
mémoire, exécutant parfois les mêmes
instructions
Il faut empêcher que l’un fasse des choses
réservées à l’autre
Il faut les protéger les uns des autres
Protection d’instructions
Protection de mémoire
35
Instructions protégées = privilégiées


Ne peuvent être exécutées que par le S/E, en
mode superviseur
Exemples:
Les instructions d’E/S
 Instructions pour traiter les registres non-visibles d’UCT

Instructions pour changer les limites de mémoire
 Instructions pour changer le mode d’exécution
(superviseur,usager)
 Possiblement, instructions pour la minuterie


Ch.2
Le programme usager peut demander au SE que
ces opérations soient exécutées, mais il ne peut
pas les exécuter directement
36
Fonctionnement double mode
Interruption
superviseur
usager
Retour à progr. usager



un registre d’UCT contient un bit qui dit si l ’UCT exécute
couramment en mode superviseur ou en mode usager
ce bit est changé automatiquement à mode superviseur lors
d’une interruption
certaines instructions ne peuvent être exécutées qu’en
mode superviseur (instructions privilégiées):



Ch.2
des tentatives de les exécuter en mode usager causeront une
interruption, et retour à mode superviseur
le mode superviseur peut être changé à mode usager par
une instruction privilégiée
ces deux modes ont aussi des autres noms, v. manuel
37
Autre manière de voir…
Trap: interruption interne
Ch.2
38
Protection de mémoire: chaque processus doit
rester dans ses propres bornes de mémoire

Solution typique: deux registres dans l ’UCT
 quand l ’UCT exécute un processus, elle sait quelle est la
borne inférieure et supérieure de la zone de mémoire de ce
processus
 l ’adresse de chaque instruction est comparée à ces deux
adresses avant l ’exécution
 si un processus cherche à dépasser ses limites: interruption
UCT
Ch.2
39
Protection de mémoire



Ch.2
l’adresse de chaque instruction est comparée à ces deux
adresses avant l’exécution
 seulement si l’UCT exécute en mode usager
si un processus cherche à dépasser ses bornes:
 Interruption  mode superviseur
les instructions pour affecter les registres bornes sont
privilégiées
40
Appels du système (system calls)




Quand un processus usager a besoin d ’un
service du SE, par ex. E/S, il exécute un appel du
système
C’est une instruction qui cause une interruption
(trap) et changement de mode (mode superviseur)
Est associée à des paramètres qui indiquent le
type de service désiré
Le S/E prend la relève et exécute le service, il
retourne puis au processus appelant avec des
params qui indiquent le type de résultat

Ch.2
changement de mode (mode usager)
41
Concepts importants du Chapitre 2









Ch.2
Registres d’UCT, tampons en mémoire, vecteurs
d’interruption
Interruption et polling
Interruptions et leur traitement
Méthodes d’E/S avec et sans attente, DMA
Tableaux de statut de périphériques
Protection et instructions privilégiées, modes
d’exécution
Registres bornes ou limites
Appels de système
Hiérarchie de mémoire
42
Dans le manuel, pour ce chapitre, vous devez


Étudier le chapitre entier, moins:
La section 2.3 n’a pas été discutée en
classe, cependant son contenu devrait être
en partie déjà connu
 Section

La section 2.6 n’est pas sujet d’examen:
à
Ch.2
2.3.2 sera discutée au chapitre 14
lire seulement
43
Informations additionnelles

Pour des explics claires sur comment différents
parties d’un ordinateur fonctionnent, je vous
recommande hautement
Wikipedia
 http://computer.howstuffworks.com/

Des sites qui contiennent des explicationstrès
claires sur un grand nombre de sujets
(malheureusement, howstuffworks a beaucoup de publicité)
Ch.2
44
Accès direct à la mémoire (DMA)

Sans DMA, tous les accès de mémoire passent à
travers l’UCT


Donc les E/S occupent une certaine portion du temps
de l’UCT, même si l’UCT pourrait en même temps
exécuter un processus (vol de cycles)
Avec DMA, les unités d’E/S transfèrent les
données directement avec la mémoire
L’UCT est impliquée seulement pour initier et terminer
les E/S
 L’UCT est complètement libre d’exécuter d’autres
processus (pas de vol de cycles)

Ch.2
45
MEMOIRE
UCT
UNITÉS E/S
Sans DMA
MEMOIRE
UCT
UNITÉS E/S
transfert données
Accès directe (DMA)
Ch.2
46
Terminologie d`interruptions



Ch.2
Pas normalisée
C’est une bonne idée de distinguer entre:
 Trappes (traps): causées par le pgm en exécution:
division par 0, accès illégal, appels du système...
 Interruptions: causées par événements
indépendants: minuterie, fin d` E/S
 Fautes (faults): ce mot est utilisé surtout par
rapport à la pagination et à la segmentation.
Malgré ces différences de terminologie, trappes,
interruptions et fautes fonctionnent toutes de la
même manière
47