Interruption Du 6809-2
Interruption Du 6809-2
Interruption Du 6809-2
LES INTERRUPTIONS
Processeur
Dans ce chapitre, nous allons présenter les différents moyens ou les différentes liaisons dont dispose un
processeur pour communiquer avec l’extérieur et les composants qui l’entourent. On se basera toujours sur le
processeur de Motorola le 6809 pour mieux atteidre cet objectif.
Le bus de contrôle
La broche Read/Write. Cette broche indique le sens de transfert des données sur le
bus des données. Ligne à logique 3 états. R/W = 1 lecture en cours (D0 - D7 sont des
entrées)R/W = 0 écriture en cours (D0 - D7 sont des sorties)Cette ligne est validée sur
le front montant de Q.
Sans trop rentrer dans les détails nous pouvons dire que dans le cas d’une transmission
asynchrone, le début de transmission est signalée par un état qui dure la durée d’un bit : Start,
et àl’arrêt de la transmission le signal revient à l’état repos durant au moins un bit, un bit et
demi ou deux bits : Stop.
Le passage de l’état repos au Start permet la synchronisation des horloges émettrice et
réceptrice pour la réception du caractère.
Dans la transmission synchrone, un caractère au début du bloc permet la synchronisation.
Mais les horloges peuvent se déphaser durant le bloc. Il est alors nécessaire de resynchroniser.
Un niveau bas sur la broche d'initialisation RESET entraîne une réinitialisation complète du circuit, ceci
entraine les actions suivantes :
Un niveau bas sur la broche HALT provoque l'arrêt du microprocesseur, mais à la différence avec
le Reset à la fin de l'exécution de l'instruction en cours sans perte des données. (BA = BS = 1).
Ceci entraine les actions suivantes :
- interruption IRQ et FIRQ sont inhibées
- Accès direct (DMA) à la mémoire autorisée.
- interruptions RESET et NMI prises en compte mais leur traitement est différé.
Les interruptions et les exceptions sont deux types de rupture de séquence « exceptionnelles ». Il
ne faut pas confondre les interruptions et les exceptions. Les interruptions surviennent de façon
asynchrones. Elles sont commandées par le matériel (interruption externe) ou par le système
(interruption système). Les interruptions n'ont aucune relation avec les instructions en cours
d'exécution.
FIRQ (Fast Interrupt Request) : c’est une interruption masquable ou non. Les registres du
6809 nesont sauvegardés que partiellement.
NMI : La ligne NMI (Non Masquable Interrupt) est une ligne d'interruption non
masquable. Le contenu de la totalité des registres du 6809 est sauvegardé dans la pile système
(structure de donnéesfondée sur le principe « dernier arrivé, premier sorti »).
microelec
Il ne faut pas confondre les interruptions et les exceptions, car ce sont deux types de rupture de
séquence mais pas de la même nature et pas avec les mêmes conséquences. On vu dans le
paragraphe précèdent que les interruptions surviennent à la demande d’un matériel (interruption
externe) ou par le système (interruption système) et sont entièrement indépendantes du
programme en cours d’exécution.
Cependant, les exceptions sont déclenchées par des « accidents » dans l'exécution du programme
tel que : un débordement arithmétique, des erreurs de bus, une tentative d'utilisation
d'instructions réservées, des erreurs d'adressage, un défaut dans la mémoire cache, un défaut de
page, une instruction erronée, accès à une zone mémoire inexistante, etc.
Les exceptions provoquent un traitement spécifique : appel à une routine spécialisée. On parle de
gestion précise des exceptions si l'état de la machine qui résulterait de l'exécution séquentielle de
toutes les instructions antérieures à l'instruction provoquant l'exception peut être reconstruit dans
tous les cas. Il est alors possible après le traitement de l'exception de reprendre l'exécution à
l'instruction même ayant provoqué l'exception. Dans le cas contraire, les exceptions sont gérées de
façon imprécise.
1.2.6 Protections
Il existe deux modes d’exécution pour le microprocesseur : Mode Utilisateur et Mode Superviseur
Mode superviseur
Exécution du code du système d’exploitation
Accès à toutes les instructions du processeur.
Lors d’une interruption, le processeur passe en mode superviseur
Mode utilisateur
Exécution des programmes « Utilisateur »
Certaines instructions sont interdites
1.2.5. Multiprocesseurs
Les systèmes multiprocesseurs sont moins complexes que les systèmes multicœurs, parce qu'il
s'agit de processeurs uniques connectés les uns aux autres. L'inconvévient des systèmes
multiprocesseurs est qu'ils sont coûteux parce qu'ils nécessitent plusieurs circuits, ce qui revient
plus cher qu'une solution à circuit unique.
Avant, les systèmes à base de multiprocesseurs contenaient plusieurs processeurs qui ne se
trouvaient pas forcément sur le même circuit. Ces systèmes étaient utilisés aux serveurs de
communication IT. À l'heure actuelle, les multiprocesseurs se trouvent habituellement sur la même
carte physique et sont connectés via une interface de communication haute vitesse.
Figure n°1. Le système multiprocesseur a une mémoire cache divisée et une unité de gestion mémoire avec
des interconnexions longues
1- Multithreading
Les processus légers sont typiquement utilisés avec l'interface graphique ("GUI") d'un
programme. En effet, les interactions de l'utilisateur avec le processus, par l'intermédiaire des
périphériques d'entrée, sont gérées par un processus léger, tandis que les calculs lourds (en termes
de temps de calcul) sont gérés par un ou plusieurs autres processus légers. Cette technique de
conception de logiciel est avantageuse dans ce cas, car l'utilisateur peut continuer d'interagir avec
le programme même lorsque celui-ci est en train d'exécuter une tâche. Une application pratique
se retrouve dans les traitements de texte où la correction orthographique est exécutée tout en
permettant à l'utilisateur de continuer à entrer son texte.
L'utilisation des processus légers permet donc de rendre l'utilisation d'une application plus fluide,
car il n'y a plus de blocage durant les phases de traitements intenses.
2- Hyperthreading
L'hyperthreading est une technologie qui a été introduite par Intel, avec l'objectif premier
d'améliorer le support du code multithread. Dans certaines conditions de travail, la technologie
de l'hyperthreading garantit une utilisation plus efficace des ressources processeurs en exécutant
les threads en parallèle sur un seul et unique processeur.
Un processeur équipé en hypertheading prétend faire office de deux processeurs "logiques" pour
le système d'exploitation hôte, permettant au système d'exploitation de prévoir deux tâches
(threads) ou deux processus simultanément. Les avantages de l'hyperthreading sont les suivants
: un support amélioré pour le code multithread, il permet à plusieurs threads de fonctionner
simultanément, et offre un temps de réaction et de réponse amélioré.
Les processeurs double-cœurs sont deux processeurs sur un seul et unique circuit. Les processeurs
multicœurs constituent une famille de processeurs qui contiennent n'importe quel nombre de
processeurs sur un seul et unique circuit, comme par exemple 2, 4 ou 8. Le défi avec les processeurs
multicœurs se trouve dans le domaine du développement logiciel. L'accélération des performances
est directement liée à la façon dont le code source d'une application a été écrit en parallèle via le
multithread. La génération actuelle de microprocesseur est celle de Intel® Core™2 Duo Processor
Figure n°2. Les processeurs multicœurs partagent la mémoire cache et l'unité de gestion mémoire avec des
interconnexions courtes.