Ce cours introduit l'architecture des ordinateurs suivant le programme officiel des écoles nationales supérieures dans le domaine d' l'informatique et du numérique
2. Avant-propos
◦ Ceci est un cours introductif à l’architecture des ordinateurs, il est conforme au
programme officiel des écoles nationales supérieures en sciences de l’informatique
et du numérique en Algérie
◦ Les schémas sont principalement tirés du cours et du livre du professeur Koudil
que je remercie vivement pour son aide et son soutien sans lequel ce cours
n’aurait pas aboutit
◦ Ce cours est discernés aux deuxièmes années classes préparatoires de l’école
supérieure en sciences et technologies de l’informatique et du numérique (Béjaia)
pour l’année académique 2021-2022
◦ Un dernier détail, non des moindres, il manque la partie sur les structures
statiques et dynamiques des mémoires, ceci pourrait être corrigé avec le temps
4. Programme
Leçon 1.
Introduction aux mémoires et
taxonomie de leurs types
Leçon 2.
Composants liés aux opérations
d’entrées/ Sorties
Leçon 3.
Les modes d’entées/ Sorties
Leçon 4.
Les systèmes d’interruptions
Leçon 5.
Le séquenceur
5. Méthodologie
◦ Cours disponibles sur google
classroom
◦ Références bibliographiques
disponibles google drive
◦ Evaluation continue sur google
forms
8. Avant de commencer
◦ Qu’est ce qu’un ordinateur? Quels sont ses composants principaux ?
◦ Quelles sont les catégories de mémoires qu’intègrent un ordinateur ? Détaillez les besoins de cette
variété.
◦ Quelles sont les catégories de structures de données que vous connaissez? Comment fonctionne
chaque catégorie et quels sont les avantages?
◦ Comment fonctionne un processeur standard selon vous ? Qu’apporte les modes de gestion en
terme de performance de calculs ?
10. Introduction aux mémoires
et taxonomie de leurs types
Cette section couvrira
• Les technologies des mémoires
• Les mémoires à accès séquentiel
• Les mémoires associatives
• Les mémoires caches ou les mémoires tampon
11. Historique
• Tout commence en 1710 quand
Leibniz décrit dans un article, une
machine arithmétique qu’il utilisait
depuis 1673
• Le premier support, voir système de
data management, est la carte
perforée inventée par IBM en 1890.
Elle inventera le premier HDD en
1956 d’un 1m80 pouvant stocker
3,75 Mb
• En 1936, Alan Turing travaille à la
mise en place d’un modèle
théorique, d’une machine capable
de décrypter les communications
Nazis
• AGC (Apollo Guidance Computer
pour l’apollo 11, 21 juillet 1969)
était doté de 72 KO Rom, 4 KO
RAM
12. Rappels élémentaires
◦ Un ordinateur est composé de
◦ La mémoire centrale
◦ Les mémoires auxiliaires
◦ Les péréphériques
◦ L’unité centrale
◦ UAL
◦ L’unité de commande
◦ Une instruction est composée d’un champs ‘code opération’, ‘mode adressage’ et ‘les champs
opérandes/ adresses’, il existe plusieurs organisations pour cette élément dans l’UAL
◦ Machines à 4 adresses
◦ Machines à 3 adresses
◦ Machines à 2 adresses
13. Rappels élémentaires
◦ Une mémoire est un dispositif capable d’acquérir de l’information, de la
conserver sur le temps et de la restituer à la demande.
◦ Elle a plusieurs caractéristiques
◦ Capacité
◦ Temps d’accès
◦ Mode d’accès
◦ Mode d’opération
14. Les mémoires à
accès
séquentiels
• Ce sont des mémoires dites non
adressables, c’est à dire que les
données ne sont pas directement
accessibles via une adresse physique
• Elles sont utilisées comme tampon
de synchronisation entre deux
composants à fonctionnant à des
vitesses différentes
• Au depend du besoin, la politique de
gestion de ces types de mémoires
peut être en FIFO ou en LIFO
15. FIFO
• Cette politique permet de restituer
les données en sortie dans le
même ordre dans lequel elles ont
été stockées
• Les cellules mémoires sont
organisées en linéaire. L’écriture se
fait au dernier étage, tandis que la
lecture se fait au premier étage
• Une politique de gestion contrôle
le fonctionnement de l’ensemble
de la mémoire
16. Politique de gestion ‘FIFO’
◦ La politique de gestion contrôlant le fonctionnement d’une mémoire à accès séquentiel avec une
politique FIFO assure les tâches suivantes
◦ Le contrôle de l’étage d’entrée et la politique d’écriture
◦ Le contrôle de l’opération de décalage
◦ Le contrôle de l’étage de sortie et de la politique de lecture
◦ Des signaux existent pour indiquer l’état de la mémoire
◦ ‘écriture possible’ à 0 pour indiquer que l’étage d’entrée est occupée et qu’aucune écriture n’est possible
◦ ‘lecture possible’ à 0 pour indiquer que l’étage de sortie est vide et qu’il n y a rien à lire
◦ ‘la bascule de présence’ à 1 pour indiquer que le mot est occupé
17. Politique de gestion ‘FIFO’
◦ L’information introduite est décalée progressivement vers le dernier étage libre en direction de
l’étage de sortie
◦ Les opérations de lectures et d’écritures sont indépendantes et interviennent sur des étages
différents, elles peuvent donc être réalisées en même temps
◦ Quand une opération de lecture est effectuée, chaque étage est alors décalé d’une position vers la
sortie
◦ Ce type de mémoire matérialise le principe de boite aux lettres permettant à des processeurs
d’échanger des données de manière asynchrone, un exemple plus trivial est le tampon du clavier
18. LIFO
• Cette politique concrétise le principe
de pile, où le dernier élément inséré
est le premier élément restitué à la
lecture
• À chaque operation d’écriture, le
contenu de chaque mot mémoire est
décalé d’un étage vers le fond
(dernier étage)
• Lors d’une operation de lecture
l’information est lue directement du
haut et chaque mot est décalé d’une
position vers le premier étage
19. Politique de gestion ‘LIFO’
◦ La lecture et l’écriture se font tous les deux au premier étage, la pile est pleine
quand le dernier étage est plein et est vide quand le premier étage est vide
◦ Les états ‘vide’ et ‘pleine’ de la pile sont indiqués par des signaux générés par la
politique de gestion de la mémoire
◦ Cette politique trouve de nombreuses applications, comme la sauvegarde du
contexte d’un programme lors d’une interruption.
20. Résumé
• Les mémoires à accès séquentiels sont des
mémoires non adressables, il existe deux politique
de gestion pour en contrôler le fonctionnement
• Dans une politique ‘FIFO’ le premier
élément inséré dans la file est le premier
élément restitué, les décalages se font pour
en supporter le fonctionnement
• Dans une politique ‘LIFO’ une approche par
pile est matérialisée permettant de lire et
d’écrire tout en haut de la pile
21. MERCI
Si vous avez compris tout ce que je viens de dire
c’est que j’ai mal expliqué
- ALAN Greenspan
22. Introduction aux mémoires
et taxonomie de leurs types
Cette section couvrira
• Les technologies des mémoires
• Les mémoires à accès séquentiel
• Les mémoires associatives
• Les mémoires caches ou les mémoires tampon
23. Les mémoires associatives
◦ Quand la mémoire à accès aléatoire apporte la réponse à la question de ‘qu’est ce
qu’il y a comme information dans l’adresse A ?’, les mémoires associatives
répondent à la question ‘existe-i-il un mot mémoire contenant l’information C ?’
◦ Il est également possible de réaliser les opérations classiques de lecture écriture
sur des mémoires associatives mais il est nécessaire de passer par une opération de
recherche en amant
24. Organisation d’une
mémoire associative
• Une mémoire associative possède
tout d’abord un bloc de mots
• Un registre clé ‘C’ du format d’un
mot mémoire, recevant
l’information qui est le critère de
selection
• Un registre masque ‘M’ de même
format précisant le champs de la
recherche, chaque bit de ‘C’ lui
correspond un bit de ‘M’
• Un registre indicateur ‘I’
possédant autant de bit qu’il y a de
mots mémoires
• Un registre sortie ‘S’ de la taille
d’un mot possédant le résultat de
la recherche
25. Opération de recherche
◦ Tous les bits du registre I sont mis à 1 par la commande SET. L’information qui est le critère de recherche est
placée dans le registre clé C et les bits du masque M correspondant au critère de recherche sont mis à 1
◦ Chaque bit non masqué, est comparé à chaque bit de même position dans tous les mots mémoires et ce en
parallèle
◦ Si le bit i de C et bit i du mot mémoire de rang j sont différents, le bit j du registre I est mis à 0
◦ À la fin du processus de recherche, seuls les mots mémoires dont les indices en I sont encore égaux à 1
répondent aux critères de recherches et son appelés répondeurs, un signal S/N (Some/ none) mis à 1 indique
qu’il existe au moins un répondeur
26. Exemple de
recherche
• La commande SET met tous
les bits du registre I à 1
• Placer l’information de la taille
recherchée au registre C
• Mettre à 1 les bits de M
correspondant au champ de
recherche
• Lancer la commande de
recherche
27. Organisation des
registre C et M
Cette figure représente la
table des états des
registres C et M
C est à 0 et démasqué
C est à 1 et démasqué
C est masqué
28. Opération de Lecture / écriture
◦ Une fois l’opération de recherche terminée, les éléments à récupérer sont ceux dont l’indice en
registre I est à ‘1’, apparait alors le problème de lecture du premier répondeur que nous traiterons
un peu plus loin
◦ L’écriture se fait sur tous les mots dont l’entrée dans le registre I est à ‘1’, l’information à écrire est
positionnée dans le registre clé et les bits du masque sont mis à ‘1’ pour les champs qu’il faut écrire
◦ Pour résoudre le problème de lecture, un signal Sélection/ inhibition est utilisé pour forcer tous
indicateurs à ‘0’ excepté celui du premier répondeur. Une bascule BT est associée à chaque mot de
la mémoire, quand elle est à un ‘l’ a valeur correspondant dans I est mise à ‘0’, la bascule se met
donc à ‘1’ quand le mot mémoire est traité et l’opération recommence successivement pour les
autres répondeurs
29. Exercice
Soit une mémoire associative contenant des entiers
positifs de 32 bits, on désire trouver l’élément de valeur
maximale contenu dans cette mémoire, proposez une
approche pour retrouver cet élément
30. Résumé
• Les mémoires associatives sont organisées de sorte à
répondre à la question de l’existence d’une case
mémoire contenant une information clé
• Toutes les opérations classiques comme la lecture et
l’écriture sont réalisables sur ce type de mémoire, mais
une phase de recherche est préalablement requise
• Étant donné que les résultats de la recherche peuvent
être multiples et en vue de faire des lectures par valeur
désirée, le concept du premier répondeur est insérée
et est aidée par des bascules BT
31. MERCI
Il faut vivre par l’amour de tout ce qui est beau
et l’intelligence de tout ce qui est vrai
- Friedrich Nietzsche
32. Introduction aux mémoires
et taxonomie de leurs types
Cette section couvrira
• Les technologies des mémoires
• Les mémoires à accès séquentiel
• Les mémoires associatives
• Les mémoires caches ou les mémoires tampon
33. Pourquoi les mémoires tampons
◦ Tous les équipements informatiques au jour d’aujourd’hui embarques des microprocesseurs
fonctionnant à de très hautes fréquences, les mémoires centrales sont principalement des RAMs
dynamiques
◦ Ce type de mémoires quoi que avantageux et présentant un excellent compromis taille/ coût de
production, il présente néanmoins l’inconvénient d’avoir un temps d’accès proportionnellement élevé
ce qui engendre une différence de rapidité entre la mémoire centrale et l’unité centrale
◦ L’UC reste inactif durant l’opération d’accès à la MC, plus grand est le temps d’accès (l’écart des
vitesses) à la MC plus long est le temps d’inactivité de l’UC
◦ Pour palier à ce problème, une solution consiste à intercaler une mémoire à accès aléatoire rapide (RAM
statique) de capacité faible entre la MC et le processeur
34. Principe de la
mémoire cache
• La mémoire cache puise
l’avantage du principe de
localité des programmes, ce
principe se traduit par:
l’information à adresse
voisine de celle en cours de
traitement est la l’information
de l’instruction suivante
35. Principe de la mémoire cache
◦ Le fonctionnement de ce type de mémoire peut être décrit comme suit
◦ Lors d’une lecture l’unité centrale fournit une adresse à la fois à la mémoire centrale et à la mémoire cache
◦ Le mot mémoire est d’abord recherché en mémoire cache, s’il est présent l’UC poursuit l’exécution
◦ Sinon la lecture se fait en mémoire centrale et l’information correspondante est alors délivrée au processeur et
à la mémoire cache ainsi que les informations d’adresses voisins en mémoire centrale
◦ Un contrôleur dédié prend en charge la gestion des adresses et de la communication entre le processeur d’une
part et la mémoire centrale de l’autre
◦ Le processeur, indépendamment de la présence ou pas d’une information en mémoire cache, fait
usage de l’adresse en mémoire centrale du mot recherché. Une technique doit donc être exploitée
pour calculer les adresses en mémoire tampon (trouver l’emplacement en mémoire cache), différentes
techniques sont utilisées pour réaliser ce mapping (principes de calcul des adresses physiques)
◦ Mémoire cache purement associative
◦ Mémoire associative à accès direct
◦ Mémoire cache associative par bloc
36. Mémoire cache à
adressage associatif
• Aucune relation explicite
n’existe entre les adresses en
mémoires centrales à celles en
mémoire cache. Toute
information est donc rangée à
une adresse quelconque en
mémoire cache
• Le contrôleur fait usage d’une
table index implantée dans une
mémoire associative avec pour
chaque élément 2 champs
• Adresse en mémoire centrale
• Adresse en mémoire cache
37. Mémoire cache à
accès direct
• La mémoire centrale est divisée en
pages de tailles fixes égales à celle
de la mémoire cache
• À chaque emplacement en
mémoire centrale correspond un
emplacement unique en mémoire
cache
• Un index avec autant de lignes que
d’entrée en mémoire cache,
contient le numéro de bloc en
mémoire centrale de chaque mot
contenu en mémoire cache
• Pour retrouver un élément, le
contrôleur vérifie si le numéro de
bloc dans l’index correspond au
numéro de bloc recherché à
l’adresse donné par les bits de
poids faibles
38. Mémoire cache à adressage
associatif par bloc
• C’est une technique hybridant
les deux précédentes
• La mémoire cache est divisée en
blocs de même taille que ceux
de la mémoire centrale
• Chaque mot de la mémoire
centrale peut être rangée dans
n’importe que bloc de la
mémoire cache mais en respect
du même déplacement que dans
la mémoire centrale
• Il y a donc autant de possibilités
de chargement qu’il y a de blocs
en mémoire cache
39. Remplacement d’une information
◦ En vue de charger de nouvelles informations il faut penser deux éléments
◦ La taille du bloc à charger en mémoire cache
◦ Décider des mots à remplacer
◦ Il existe trois techniques pour décider de l’information à remplacer
◦ Mise à jour aléatoire, très simpliste mais à risque accrue (remplacement d’une information non-consommée ou
encore requise)
◦ Mise à jour directe, technique exclusive aux mémoires cache à accès directs et consiste à charger le mot dans
l’emplacement qui lui est réservé en mémoire cache
◦ Mise à jour du bloc moins récemment utilisé (Least Recently Used –LRU), basé sur le principe de proximité
temporelle, on doit donc rajouter une information sur le datage de la dernière utilisation de chaque bloc, cette
vérification s’opère à chaque remplacement et le moins récemment utilisé est sélectionné
40. Opération d’écriture en mémoire cache
◦ Une fois lue, une information en mémoire cache peut être juste ignorée, aucune mise à jour n’est
requise en mémoire centrale car l’information n’a pas été modifiée, ceci n’étant pas le cas après une
opération d’écriture, apparait alors un problème d’intégrité: la concordance de l’information présente
en mémoire cache avec celle présente en mémoire centrale
◦ Le challenge est alors de déterminer à quel moment l’information en mémoire centrale doit être
réécrite, pour cela il existe trois principale approches
◦ Ecriture immédiate, la mise à jour s’effectue simultanément dans les deux mémoires, elle est la plus simple et la
plus fiable mais réduit les performances de la machine
◦ Ecriture retardée, une zone tampon est créé en mémoire cache contenant des informations à mettre à jour en
mémoire centrale, elle permet de gagner du temps mais sa mise en œuvre est plus complexe et plus couteuse
◦ Ecriture différée, des indicateurs par mot sont positionnés à 1 pour dire que la donnée a été modifiée et qu’elle
doit être réécrite en mémoire centrale, on minimise les accès à la MC car on y accède que quand c’est nécessaire,
par exemple à la libération de l’information de la mémoire cache, cette solution est d’autant plus performante
qu’elle est difficile à réaliser
41. Taille de la mémoire cache
◦ Intuitivement, on pourrait être tenté de croire que plus grande est la mémoire
cache, moins est le risque du défaut de mémoire et donc plus grande est la
performance de l’ordinateur. Outre son coût qui rend la réalisation de cette
mémoire en grande capacité difficile, il a été démontré théoriquement, en vue de la
vitesse de celle-ci, de la performance des techniques qui l’exploitent, que passé un
certain seuil, l’augmentation de la performance de l’ordinateur n’est pas
significative, exemple: les programmes ne sont pas séquentiels totalement et tout le
temps, comme dans les cas des branchements, ce qui fait survenir un défaut de
mémoire tôt ou tard
42. Résumé
• Il existe un écart important entre les vitesses d’accès de
la mémoire centrale et de l’unité centrale, pour palier à
ce problème le besoin d’une mémoire cache dite tampon
apparait
• Il y a différentes façon de gérer la résolution des
adresses de ces mémoires, d’une manière associatives,
par accès direct ou par approche associative par bloc
• Le remplacement d’une information en mémoire cache
fait usage d’une des trois technique de mise à jour:
aléatoire, directe, de l’élément moins récemment utilisé
• En cas d’écriture une atteinte à la concordance entre la
donnée en cache et en MC apparaît, trois approches
tentent de résoudre ce problème, écriture: immédiate,
retardée, différée
• La taille de la mémoire cache reste limitée du fait de son
coût et paracerque théoriquement l’augmentation de sa
taille à partir d’un certain seuil n’apporte aucun gain de
performance
43. MERCI
Homme, nul n’a sondé le fond de tes abîmes, O mer,
nul ne connaît tes richesses intimes
L’homme et la mer, les fleurs du mal- Charles Baudelaire
45. Les entrées/ sorties
Cette section couvrira
• Les organes d’entrée/ sortie
• Les modes d’entrée/ Sortie
• Le contrôleur d’accès direct mémoire
• Le processeur d’entrée/ sortie
46. Introduction
• Une opération entrée/ sortie
est un échange d’informations
entre une UC et le monde
extérieur
• Il peut s’agir d’un envoi
d’information de l’UC vers
une mémoire massive, d’une
lecture depuis un périphérique
d’entrée ou de l’affichage,
c’est-à-dire visualisation ou
impression via un
périphérique de sortie
48. Classification des
périphériques
• On peut classifier les
périphériques suivant les
critères de fonctionnement
comme la structure de
l’information ou les types de
transmissions.
• Par exemple un caractère de 8
bits, si les bits sont transmis en
parallèle (il faut disposer d’un
bus avec 8 lignes de données)
on parle de transmission
parallèle sinon transmission en
série
• Certains périphériques gèrent
les données par caractères
d’autres les structure en blocs
49. Les composants d’un périphérique
Le
périphérique Organe de gestion du support
Mécanisme Lecture/ écriture
Le transducteur
Les buffers
50. Les interfaces du
contrôleur
• Bus de commandes recevant
les ordres de l’UC
• Bus de données possédant
l’information à lire ou à écrire
• Un bus d’état indiquant l'état
courant du: contrôleur, du
périphérique et de l’opération
d’entrée/ sorttie
• Bus d’adresse communiquant
les informations d’adresses du
périphérique cible de la
commande dans le cas de
gestion multiple
51. Architecture interne d’un contrôleur
◦ Registre de commande (RC) que l’UC charge avec la commande à exécuter
◦ Registre de données (RD) qui reçoit de l’UC la donnée à écrire lors d’une opération
d’écriture ou l’information assemblée dans le registre de décalage de données (RDD)
lors d’une opération de lecture
◦ Registre Piste (RP) indique la position courante de la tête de lecture/ écriture, lors
d’une opération de recherch en son contenu est comparé au numéro de la piste à
rechercher qui doit être rangé dans le registre des données
◦ Registre secteur (RS) recevant le numéro de secteur duquel lire ou dans lequel écrire
52. Architecture interne d’un contrôleur
◦ Registre d’état (RE), composé d’un ensemble de bits indiquant différentes informations
suivant le registre de commande
◦ perte de données à 1 lors de l’écrasement en RD par la donnée suivante,
◦ Bit du registre de données prêt (DRQ) mis à 1 pour indiquer la présence d’un nouveau caractère dans le
RD et est remis à 0 après une commande de lecture du RD émanant de l’UC
◦ Bit de contrôle de redondance (CRC – Control redundancy check) est utilisé pour indiquer un écart
relevé entre la chaîne de caractères lue et celle enregistré en mémoire disque par exemple, le contrôleur
détecte cet écart grâce aux octets générés par la logique CRC à l’écriture et à la lecture de chaque chaîne
◦ Unité non prête
◦ Protection contre écriture
◦ Secteur non trouvé, aucune adresse correspondant au contenu du registre piste et secteur n’a été
trouvée
◦ Contrôleur occupé
54. Résumé
• Il y a 4 catégories de périphériques, d’entrée, sortie,
stockage et spéciaux
• Les périphériques sont composés d’organes de
gestion du support, d’une tête de lecture ou
écriture, d’un interpréteur et de buffers mémoires
• Un contrôleur contient un ensemble d’interface lui
permettant de dialoguer avec l’UC
• Un ensemble de registre composent l’architecture
interne d’un contrôleur en vue de contenir les
informations dont il a besoin pour
l’accomplissement des opérations de transfert
55. MERCI
On ne comprendra jamais comment un homme peut
être pratiquant du malheur, ni de quelle manière la
présence nuit à la perfection de la solitude
Crépuscule des pensées- Emile Cioran
56. Les entrées/ sorties
Cette section couvrira
• Les organes d’entrée/ sortie
• Les modes d’entrée/ Sortie
• Le contrôleur d’accès direct mémoire
• Le processeur d’entrée/ sortie
57. Types d’entrée/
sorties
Bloquante
Non Bloquante
• Il y a deux principaux types
d’entrée sortie, les
bloquantes et les non
bloquantes
• Les E/ S bloquantes
interrompent l’UC dans
l’exécution du programme
car le résultat est nécessaire
à sa poursuite
• Les E/ S non bloquantes ne
concernent pas des données
requises à l’exécution des
tâches en cours et
n’interpellent donc pas l’UC
58. Les modes d’entrées /sorties
◦ Mode programmé, dans lequel les informations faisant objet d’un transfert avec
un périphérique passent par l’unité centrale, la commande des périphériques et les
différents échanges entre ces derniers et la MC sont contrôlés directement par
l’UC
◦ Mode accès direct à la mémoire, la mémoire centrale échange directement avec les
périphériques lors des opérations de lecture ou d’écriture, un circuit spécialisé
appelé le contrôleur d’accès direct reçoit les caractères à écrire en MC (lu d’un
périphérique) ou à lecture de la MC des caractères à écrire sur un périphérique et
c’est lui qui est en charge de gérer et de contrôler le transfert
59. Les modes programmés
• Mode programmé par test
d’états, dans ce mode
l’exécution d’une opération E/
S passe par 3 principales
phases, exemple avec une
opération de lecture
• Lecture du RE pour vérifier si les
périphériques sont prêts, alors les autres
registres du contrôleur sont initialisés et
la commande chargée dans le RC
• Vérification en boucle du RE pour le bit
de présence de caractère, si c’est le cas le
RD est chargé dans un registre de l’UC,
puis ce contenu est rangé en MC
• Màj du nombre de caractères lus et les
adresses mémoires de rangement, si il n
y a plus de caractères à lire alors fin
• Mode programmé par
interruption
• Le mode non programmé,
spécifiquement l’accès direct
mémoire, sera traité dans la
section suivante
Mode programmé par interruption
60. Mémoire à accès direct
◦ Les échanges de données se font directement entre la mémoire centrale et
périphérique sans transiter par l’UC, l’écriture et la lecture depuis et vers
la mémoire centrale / périphérique, sont confiées à un circuit dédié noté
DMAC (Direct Memory Access Controller)
◦ En plus de sa fonction de base le DMAC est également en charge de
◦ Améliorer le rendement de l’UC en le soulageant du temps consacrés aux
opérations aux transferts avec le périphériques
◦ Permet l’utilisation plus fluide du périphérique
61. Résumé
• Il y a des entrées dites bloquantes entrainant
l’inactivité provisoire de l’UC sur le programme
concerné et d’autres non bloquantes permettant la
continuation de l’exécution du programme en
parallèle
• Il existe deux modes d’accès à la mémoire, accès
programmé et accès direct à la mémoire
• Il y a deux approches pour le mode programmés,
par vérification d’états et par interruptions
• La méthode DMA permet aux contrôleurs
d’interagir directement avec la mémoire centrale
62. MERCI
Est beau, ce qui plait universellement d’une manière
désinteressée
Analytique du beau- Emmanuel Kant
63. Les entrées/ sorties
Cette section couvrira
• Les organes d’entrée/ sortie
• Les modes d’entrée/ Sortie
• Le contrôleur d’accès direct mémoire
• Le processeur d’entrée/ sortie
64. Architecture interne
d’un contrôleur DMA
• Pour réaliser ses tâches, un
DMAC intègre, en plus des
composants classiques d’un
contrôleur, les composants
suivants
• Un registre Adresse mémoire RAM,
chargé par l’UC avec l’adresse en
mémoire centrale de l’adresse de la
première information à lire (à écrire sur le
périphérique) ou l’adresse de la première
position cible d’une écriture sur MC
(lecture depuis le périphérique)
• Registre Compte de caractères (RCC)
initialisé par l’UC au nombre de
caractères à lire ou à écrire
• Quelques informations peuvent être
ajoutées au niveau des registres
communs, comme le sens du transfert
(E/ S) au niveau du RC
• Le DMAC interagit avec l’UC et
le contrôleur du périphérique
65. Dialogue
DMAC - périphériques
• Un DMAC peut être en
gestion de plusieurs
périphériques
• À chaque périphérique est
joint un couple de RCC et
RAM qui constitut un canal
avec le DMAC
• DRQ et DAC signifie data
request et data acknowledge
66. Dialogue
UC – DMAC - Périphérique
• En vue de lire ou écrire en
MC, l’UC ou le DMAC doit
détenir le contrôle du bus
mémoire, il sera dénommé
alors maître du bus.
• En prévention de tout conflit,
le DMAC doit obtenir de
l’UC l’autorisation d’occuper
le bus avant de manipuler la
MC
67. Dialogue type
◦ Quand un périphérique est prêt au transfert d’un caractère il requiert l’attention du DMAC via un signal
DRQ
◦ Le DMAC à la réception du DRQ, demande le contrôle du bus via un signal HOLD
◦ L’UC finit l’exécution de la commande courante, libère le bus pour le DMAC en répondant par un signal
HLDA
◦ Le DMAC charge le contenu du registre RAM sur le bus d’adresse et active le signal DACK en générant la
commande de lecture (demande au périphérique de positionner sur le bus de données le caractère à écrire en
MC)/ écriture (indique au périphérique qu’il doit recevoir un caractère émanant de la MC)
68. Modes de transfert
◦ Transfert par vol de cycle, sollicite et maintient le contrôle du bus pour la durée
d’un seul cycle mémoire à chaque fois qu’il interpellé par un périphérique pour
transférer un caractère
◦ Transfert par bloc où le DMAC garde le contrôle du bus durant le transfert d’un
bloc de caractères, durant toute la durée d’occupation l’UC ne peut pas accéder à
la MC
◦ Transfert transparent mode dans lequel le DMAC profite de l’occupation sur des
opérations internes de l’UC pour réaliser les transferts de la MC
69. Étape d’un transfert
◦ Initialisation
◦ Chargement du registre RAM avec l’adresse du premier bloc mémoire de la zone source ou destination du transfert
◦ Charger le nombre de caractère dans le registre RCC
◦ Chargement le RC avec: le sens du transfert, le mode de transfert, les interruptions, les priorités entre canaux…
◦ Réalisation du transfert
◦ Les différents cycles déroulant les signaux: DRQ, HOLD, HLDA, DACK
◦ Achèvement du transfert
◦ Lorsque RCC atteint 0
◦ Où que le périphérique signal un arrêt physique
◦ À une interruption commandée par l’UC
70. Résumé
• Un contrôleur DMA possède en plus des
contrôleurs classiques deux registres dans sa
composition interne RAM et RCC
• Avec chaque périphérique est joint un canal depuis
le DMA possédant deux registres RAM et RCC
• En vue de manipuler la mémoire centrale un
dialogue préalable avec l’UC est nécessaire afin que
le DMAC devienne maitre du bus de la mémoire
• Il existe trois modes de transferts de données et
chaque opération de transferts passe par trois
étapes principales
71. MERCI
Considérez la race dont vous êtes, créés non pas
pour vivre comme des brutes, mais pour suivre vertu
et connaissance
L’Enfer, La divine comédie- Dante
72. Les entrées/ sorties
Cette section couvrira
• Les organes d’entrée/ sortie
• Les modes d’entrée/ Sortie
• Le contrôleur d’accès direct mémoire
• Le processeur d’entrée/ sortie
73. Les commandes canal
◦ Un canal sur l’IBM 370 est bien plus sophistiqué, il interface le contrôleur d’interfaces avec les unités de
contrôle des périphériques et assure les transferts de données entre MC et périphériques, chaque canal peut
être relié 8 unités de contrôles et 256 périphériques
◦ Les commandes exécutables par un canal sont
◦ Read indiquant au canal une lecture de données à partir du périphérique pour lequel est entrain de s’exécuter un
programme canal
◦ Write indiquant au canal l’écriture de données sur lé périphérique sélectionné
◦ Readbackword lecture arrière sur des périphériques spéciaux comme des stockages à bandes
◦ Sense commande retournant l’état d’une unité de contrôle et d’un périphérique
◦ Transfert in channel permet de réaliser une rupture et un branchement conditionnel à l’intérieur du programme canal
◦ Control permettant de faire des actions particulières comme la recherche d’une piste ou rebobinage d’une bande
74. Format d’une commande canal
• Clé de protection servant à autoriser/ refuser l’accès à un bloc mémoire en lecture/ écriture
• Ordre contient la commande à exécuter
• Adresse mémoire adresse du début de la zone mémoire cible du transfert
• Compte d’octets définissant le nombre d’octets concernés par le transfert
• Indicateurs indiquant au canal que faire à la fin d’un transfert de données
75. Le contenu du champ indicateurs
◦ Un bit compte nul (CN) mis à 1 lorsque le nombre d’octets à transférer est à 0
◦ Bit erreur E/ S (E) mis à 1 lorsque lors d’une opération E/ S un contrôleur détecte une erreur
◦ Un bit fin d’E/ S (A)anormale mis à 1 lorsque une interruption est causée par un contrôleur à cause d’une
défaillance périphérique
◦ Un bit longueur incorrecte (LI) mis à 1 lorsqu’un décalage est détecté entre la mise à 0 du compteur d’octets
et le nombre de blocs mémoires utilisés
◦ Un bit chaînage de données (CD) quand le compte d’octets et à 0 et CD à 1, le canal passe à la commande
suivante avec le même ordre de l’instruction terminée
◦ Un bit chaînage de commande (CC) indiquant lorsqu’il est mis à 1 la présence d’une commande à exécuter
après la commande en cours
78. Déroulement d’une entrée sortie
◦ Initialisation
◦ L’UC prépare en MC une séquence de commandes (le programme canal)
◦ L’adresse est rangé dans emplacement CAW (channel status word) connu par le canal
◦ L’UC exécute la commande SIO (start input output) le processeur E/ S peut l’accepter ou la rejeter
◦ La réponse au SIO est enregistré dans le CSW (chanel status word)
◦ L’exécution de l’E/ S
◦ Si le SIO est admis, le canal lit le contenu du CAW et le charge dans le registre compteur de commandes
◦ Le canal accède à l’adresse mémoire centrale contenue dans le Registre Compteur de commandes
◦ Le canal établit un dialogue avec le contrôleur concerné pour exécuter la commande
◦ Le canal met à jour le RCC et positionne le mot d’état pour indiquer l’état de terminaison à l’UC
◦ La fin de l’E/ S
◦ Fin du programme canal
◦ Détection d’une anomalie périphérique
◦ Envoi d’un HALT par l’UC
79. Résumé
• Un programme canal est composite d’un jeu de six
commandes différentes
• Les indicateurs d’une commandes peuvent
communiquer un ensemble d’informations
importantes
• Le canal embarque en plus dans son architecture
interne un registre Adresse commandes
• Un canal offre la possibilité d’enchainer sur un
même ordre avec différents jeu de données
• Un canal peut charger une succession de
commandes à partir d’une zone mémoire dont
l’adresse de départ est contenue dans le CAW
80. MERCI
Je suis tel que tu me connais, un homme simple et
sans art
La tragédie de César - Shakespeare
82. Le séquenceur et les
interruptions
Cette section couvrira
• Les interruptions dans un système simple
• Les interruptions dans un système hiérarchique
• Le séquenceur
83. Les interruptions
• Durant l’exécution d’un
programme l’UC reste à l’affut
d’un ensemble d’évènements
• Quand un évènement
particulier se produit et entraine
l’arrêt de l’exécution du
programme en cours on parle
d’interruption
• Dès lors l’UC switch vers un
programme de traitement de
l’interruption
84. Les types d’interruptions
◦ Interruptions internes
◦ Erreur arithmétique
◦ Adresse mémoire inexistante
◦ Violation de la protection mémoire
◦ Interruptions matérielles
◦ Problème d’alimentation
◦ Erreurs bus
◦ Interruptions d’entrées/ sorties
◦ Impression/ lecture caractère
◦ Fin d’opération E/S
85. Gestion d’une
interruption dans un
système simple
• L’UC vérifie à la fin de chaque
programme s’il n y a pas une
interruption à traiter
• Il arrive que des interruptions
soient urgentes, par conséquent
elles ne peuvent attendre la fin
du programme
• À des points ‘interrompables’
(décomposition en
microprogrammes), l’UC vérifie
l’existence d’une interruption
86. Les tâches exécutées
• Bascule de validation = 0
• Sauvegarde du contexte
• Recherche de la cause de
l’interruption
• Acquittement de l’interruption
• Exécution du programme de
traitement de l’interruption
• Restauration du contexte
(reprise du programme
interrompu), bascule de
validation = 1
87. Sauvegarde et recherche
◦ Avant toute chose l’UC sauvegarde le contexte de l’interruption
◦ Les informations du compteur ordinal sur la prochaine instruction à exécuter
◦ Indications sur l’état de l’UC au moment de l’interruption exprimées par les informations du registre d’état
◦ Les opérandes et résultats intermédiaires conservés dans les différentes registres
◦ Ensuite vient la recherche de la cause de l’interruption
◦ Recherche par scrutation ‘Polling’, l’UC lit les registres d’états des contrôleurs des périphériques dans un ordre
préétabli, si le bit d’interruption de ce registre est à un, l’UC lit le reste du mot en vue de déterminer la cause
d’interruptions, sinon il continue la lecture depuis les autres contrôleurs
◦ Recherche par ‘Daisy-chain’, l’UC active une ligne ACK, si le contrôleur a une interruption à émettre il bloque
le signal à son niveau, désactive sa bascule d’interruption et met sur le bus de données un code d’identification
89. Acquittement et traitement de l’interruption
◦ Une bascule au niveau de l’organe source est mise à 1 pour indiquer l’envoi d’un signal
d’interruption à l’UC, elle n’est remise à 0 que quand elle reçoit par exemple une commande
(instruction) d’acquittement de l’interruption
◦ Pour chaque type d’interruptions correspond un programme spécial rangé en mémoire central,
l’adresse de celui-ci est chargée dans le compteur ordinal par l’UC dès l’occurrence de
l’interruption
◦ À la fin du traitement de l’interruption le contexte préalablement sauvegardé par l’UC est chargé
dans les registre correspond et l’exécution du programme interrompu peut reprendre
90. Le séquenceur et les
interruptions
Cette section couvrira
• Les interruptions dans un système simple
• Les interruptions dans un système hiérarchique
• Le séquenceur
91. Introduction aux niveaux d’interruptions
◦ Toutes les causes d’interruptions n’ayant pas le même niveau de priorité, par conséquent le
traitement d’une interruption devrait pouvoir être interrompu par une cause dite plus urgente,
càd degré d’urgence supérieure
◦ Un système hiérarchisé comporte un ensemble de circuits concrétisés par des registres
◦ Registre d’inhibition, chaque niveau lui voit attribué un registre d’inhibition dans lequel une bascule est
dédiée pour chacune des causes du même niveau, quand une interruption est inhibée elle est perdue
◦ Un registre masque, pour chaque niveau il existe une bascule dans ce registre. La combinaison permettant
de façon sélective de masquer un ou plusieurs niveaux d’interruptions (ce qui revient à les bloquer
momentanément), une interruption de ces niveaux là survenue durant le masquage ne sera traitée que
quand ces niveaux seront démasqués
◦ Les bascules de validation/ interruption, lorsqu’elle est à 0 la BV indique que l’UC ne reçoit pas les
interruptions qui seront stockées pour traitement ultérieure, tandis que la BI à 1 indique la présence d’une
interruption
92. Détection et traitement d’une interruption
◦ Arrivé à un niveau interruptible, l’UC
vérifie si BI = 1
◦ Bascule BV = 0
◦ Sauvegarde du contexte
◦ Mise à 0 des bascules des registres masques
des niveaux inférieurs
◦ Recherche de la cause d’interruption
◦ Activation de la bascule BV= 1 ceci a pour
objectif d’autoriser la réception
d’interruptions plus prioritaires
◦ Chargement du contexte du programme de
traitement de l’interruption
◦ Traitement et prise en charge de
l’interruption
◦ Acquittement de l’interruption par envoi
d’un accusé de réception au périphérique à
l’origine de l’interruption
◦ Restauration des registres sauvegardés
◦ Instruction de retour restaurant les
contenus des registres d’états et du
compteur ordinal
93. Résumé
• Lors de l’exécution d’un programme, un tat
d’évènements externes peuvent survenir et
interrompre l’UC, néanmoins sur certaines
tâches elle ne peut traiter ces interruptions que
quand elle atteint un point dit interruptible
• Suivant leurs natures les interruptions peuvent
être internes, matérielles ou liées à des entrées/
sorties, et on leur voit attribués différents
niveaux de priorités
• Hormis les systèmes simples, des systèmes
hiérarchisés permettent d’ajouter des bits et des
registres de contrôle en vue d’inhiber une cause,
masquer un niveau ou arrêter le système
d’interruption
• Avant de vaquer au traitement d’une
interruption l’UC par un programme dédié
préalablement enregistré en MC, L’UC doit
sauvegarder son contexte et ses registres
généraux
94. MERCI
Ils résolurent de se barricader contre les impulsions
soudaines du désespoir extérieur et de fermer toute
issue aux frénisies du dedans
Le masque de la mort rouge – Edgar Allan Poe
95. Le séquenceur et les
interruptions
Cette section couvrira
• Les interruptions dans un système simple
• Les interruptions dans un système hiérarchique
• Le séquenceur
96. Le séquenceur
◦ Un séquenceur est un organe qui génère des
microcommandes agissant sur les différents organes du
calculateur pour exécuter des instructions, par exemple:
◦ Commande d’ouverture d’un bus
◦ Commande d’incrémentation d’un registre
◦ Commande d’addition dans l’Unité Arithmétique et Logique
(UAL)
◦ Ces fonctions peuvent être mises en œuvre par deux
approches
◦ séquenceur câblé qui est constitué d’un circuit complexe
avec un ensemble de sous circuits dédiés chacun à la
gestion du déroulement d’une commande particulière
◦ séquenceur microprogrammé vise à réaliser la même chose
mais en exploitant ce qu’on appelle des micro instructions
constituant une mémoire de microprogrammation capable
de générer une suite de signaux de commande
98. Etapes pour un séquenceur câblé
◦ Recherche de l’instruction
◦ La valeur du compteur ordinal est placée sur le bus d’adresse par l’unité de commande émettant un ordre de lecture
◦ Suite au temps d’accès la valeur est récupérée et mise sur le bus de données
◦ L’instruction est ensuite stockée dans le registre d’instruction
◦ Décodage et recherche de l’opérande
◦ L’unité de commande décompose l’instruction en un ensemble de primitives réalisables par l’UAL
◦ L’opérande est stockée dans un registre général (donnée)
◦ Exécution de l’instruction
◦ Le séquenceur ordonne la réalisation de l’instruction
◦ Il positionne donc les flags (registre d’états) aux valeurs nécessaires
◦ L’unité de commande prépare le compteur ordinal pour l’instruction suivantes
99. Principe d’un séquenceur microprogrammé
◦ Chaque instruction devient un microprogramme, qui est donc un enchaînement
de micro-instructions générant de microcommandes. Ces microcommandes sont
rangées dans une mémoire ROM ou EPROM dite de microprogrammes
◦ Les microcommandes appliquent une seule opération (par une phase ou un cycle)
◦ Comme pour les instructions, il importe d’ajouter des mécanismes pour
l’exécution séquentielles et les différents branchements des micro-instructions, en
introduisant le micro compteur ordinal (MCO) et un micro registre d’instruction
(MIR)
◦ Le format d’une micro-instruction est très similaire à celui des langages machines;
code opération et opérandes
100. Résumé
• Le séquenceur est le composant
principal de l’unité dite de commande, il
est en charge de préparer et suivre
l’exécution des instructions
• Un séquenceur câblé est un séquenceur
possédant des sous circuits dédiés pour
la gestion de chaque type de
commandes
• Un séquenceur microprogrammé est en
revanche modélisé par un ensemble de
programme (opérations) à faire pour
réaliser chaque commande
101. MERCI
Un ermite vivait dans la forêt, sans avoir peur des
bêtes fauves. L’ermite et les bêtes fauves
conversaient ensemble et ils se comprenaient
À la recherche du bonheur– Léon Tolstoï