6.4 Traitement des interruptions
6.4.6 M´ecanismes voisins
D’autres ´ev´enements mettent en œuvre un m´ecanisme semblable `a celui des in-terruptions envoy´ees par les unit´es d’´echange. On les appelle exceptions. Une exception est un ´ev´enement intervenant pendant l’ex´ecution d’une instruction
(overflow, division par z´ero, etc). L’exception, `a l’oppos´e de l’interruption, arrˆete cette ex´ecution (´ev´enement synchrone). C’est le programme de trai-tement de l’exception qui d´ecide de la poursuite du traitrai-tement. Comme les interruptions masquables, les exceptions peuvent ˆetre inhib´ees.
Il existe trois cat´egories d’exceptions :
1. trappe (trap) : exception dont la prise en compte s’effectue apr`es l’ex´ecution de l’instruction qui cause probl`eme. Les trappes regroupent les traitements des erreurs arithm´etiques (overflow, underflow. . . ), les erreurs de codes instructions, interruptions logicielles, etc. Apr`es trai-tement du trap, l’ex´ecution peut ´eventuellement reprendre, comme pour une interruption, `a l’instruction suivante. Le fonctionnement avec l’optiontracedes outils de mise au point (debug) pour faire de l’ex´ecution en pas `a pas s’apparente `a celui des trappes.
2. faute (fault) : exception d´etect´ee et trait´ee avant l’ex´ecution de l’instruction qui cause probl`eme. Le red´emarrage est possible apr`es le traitement de la faute (d´efaut de page, acc`es `a une zone m´emoire inter-dite, code op´eration invalide, instruction de suspension de cycle instruc-tionWait. . . ) ;
3. abandon (abort) : exception arrivant pendant l’ex´ecution d’une instruc-tion. Le red´emarrage est impossible (erreurs mat´erielles, tentative d’acc`es
`
a des zones m´emoire prot´eg´ees. . . ).
6.5 Exercices
Exercice 6.1 (Entr´ee s´erie) On consid`ere une machine dont le diagramme des temps (inspir´e du I8080) pour l’acc`es en lecture est donn´e par le sch´ema6.48.
On d´esire construire une interface pour permettre un acc`es en lecture sur une ligne s´erie selon le sch´ema de principe 6.49
Ecrire une fonction de lecture pour des caract`eres cod´es sur huit bits. On pourra prendre une syntaxe de langage proche de celle du 8086. On noteraaddrIN l’adresse affect´ee `a la ligne en entr´ee.
Exercice 6.2 (Sortie s´erie) On utilise la mˆeme machine dont le diagramme des temps pour l’acc`es en ´ecriture est donn´e par le sch´ema6.50.
Construire une interface pour permettre un acc`es en ´ecriture et ´ecrire une fonction d’´ecriture.On notera addrOUTl’adresse affect´ee `a la ligne en sortie. On suppose que les caract`eres sont cod´es sur huit bits et que l’on n’´ecrit qu’un seul bit de stop.
Lecture Φ1
Adr.
T1 T2 T3 T4 T1 T2 T3 T1 T2
SYNC Data
Φ2
interne Instruction
Lecture
Status Status Status
RD
Figure6.48 : Diagramme des temps pour la lecture
Bus d'adresses
Bus de contrôle
Bus de données
Interface
Figure6.49 : Sch´ema de principe pour la lecture
Φ1
Adr.
T1 T2 T3 T4 T1 T2 T3 T1 T2
SYNC
Data Status Status Status
WR
Lecture Ecriture
Φ2
Instruction
Figure6.50 : Diagramme des temps pour l’´ecriture
Partie III
M´ emoire : de la cellule ` a une hi´ erarchie de
m´ emorisation
147
Chapitre 7
La m´ emoire
Ce chapitre traite de la gestion mat´erielle de l’espace m´emoire, gestion dont l’impact sur les performances de la machine est consid´erable. Les informations circulant entre la m´emoire et le processeur constituent en effet leflux principal d’informations dans un calculateur. Il n’est donc pas ´etonnant que beaucoup d’efforts aient ´et´e faits pour am´eliorer `a la fois les communications entre ces deux ´el´ements et la “rapidit´e” de la m´emoire. De fait, la taille, le temps d’acc`es et l’organisation et de cette derni`ere sont des points clefs des caract´eristiques de la machine.
7.1 La ressource m´ emoire
Le processeur va chercher en m´emoire centrale lesinstructions et lesdonn´ees qui lui permettent d’effectuer une tˆache donn´ee. Chacune de ces informations
´el´ementaires y est “rep´er´ee” par une adresse qui est “pr´esent´ee” par le pro-cesseur sur le bus d’adresses. Le transfert entre m´emoire et propro-cesseur passe alors par le bus de donn´ees (figure 7.1).
Mémoire Bus d'adresses
Bus de données Processeur
Figure7.1 : Relations m´emoire-processeur Les caract´eristiques principales de la m´emoire sont :
149
− la taille de l’espace adressable d´efinie par le nombre de lignes du bus d’adresses ;
− la taille physique, c’est-`a-dire la m´emoire r´eellement install´ee. Ce pa-ram`etre d´epend des consid´erations physiques, par exemple le nombre de connecteurs disponibles (slots) et la technologie utilis´ee (barettes 256 Mo, 1 Go. . . ), et ´economiques ;
− letemps d’acc`esd´efini comme l’intervalle de temps entre le moment o`u la m´emoire est adress´ee et celui o`u elle d´elivre l’information. Ce param`etre d´epend de la technologie utilis´ee pour la fabrication de la m´emoire ;
− le temps de latence d´efini comme l’intervalle de temps entre le mo-ment o`u le processeur effectue l’adressage et la s´election et celui o`u l’information est disponible (“stabilis´ee”) sur les lignes du bus de donn´ees.
Ce param`etre d´epend du temps d’acc`es, des dispositifs de gestion m´emoire et des caract´eristiques du bus.
Si le temps d’acc`es est important pour le processeur, il est indispensable d’adjoindre `a la m´emoire un dispositif de contrˆole capable de signaler si une donn´ee est prˆete `a ˆetre lue, ou si la m´emoire est prˆete `a recevoir une donn´ee.
Ce dispositif se traduit par l’existence d’une ligne de commande (figure 7.2) dont l’´etat pourra provoquer l’introduction d’´etatsoup´eriodes d’attente(Wait States) dans l’ex´ecution de l’instruction. Il est ´evident que l’on a tout int´erˆet
`a ´eviter ce cas de figure !
Mémoire Adresses
Données Processeur
Ligne de contrôle de mémoire prête
Contrôleur mémoire
Figure7.2 : Contrˆole m´emoire.
Des techniques d’entrelacement(Memory Interleaving) de bancs m´emoire (paragraphe7.8) apportent une solution au manque de rapidit´e de la m´emoire.