Académique Documents
Professionnel Documents
Culture Documents
à Processeurs
UMNG
FST
2020 - 2021
UNIVERSITE MARIEN NGOUABI Unité * Travail * Humanité
FACULTE DES SCIENCES ET TECHNIQUES
DEPARTEMENT DES LICENCES
PARCOURS INFORMATIQUE
Support du cours
Préparé par :
Monsieur ONANGA ELENGA Dyhet Weslay
weslay.onangaelenga@umng.cg
1
Table des matières
Introduction du Cours.......................................................................................................................................... 7
2
3.2.2. Architecture d’une carte mère ......................................................................................................... 25
La mémoire principale............................................................................................................................... 31
4.4.1. Mémoires vives ou RAM (Random Acces Memory : mémoire à accès aléatoire) ........................... 36
4.4.2. Mémoires mortes ou ROM (Read Only Memory ou memoire à lecture seule) ................................ 37
Chapitre V : Le Microprocesseur....................................................................................................................... 40
3
5.2.1. Type d’instructions .......................................................................................................................... 45
5.6.3. Comparaison................................................................................................................................... 49
Scrutation.................................................................................................................................................. 57
Interruption................................................................................................................................................ 58
4
7.8. Principe de base d’une liaison série asynchrone : ................................................................................. 61
5
Le cours d’Architecture des Ordinateurs et des systèmes à microprocesseurs expose les principes de
base du traitement programmé de l’information. La mise en œuvre de ces systèmes s’appuie sur deux
modes de réalisation distincts, le matériel et le logiciel. Le matériel (hardware) correspond à l’aspect
concret du système : Unité centrale, mémoire, organes d’entrées-sorties, etc… Le logiciel (software)
correspond à un ensemble d’instructions, appelé programme, qui sont contenues dans les différentes
mémoires du système et qui définissent les actions effectuées par le matériel.
Ce cours est un préalable nécessaire à de nombreux autres cours. Il est organisé comme une suite
intuitive de définitions. Plus de précision et facilite la mémorisation. Les cours doivent être relus
périodiquement pour être bien mémorisés/compris (les évaluations nécessitent une bonne
compréhension, pas du par cœur). Il n'a pas de prérequis (hormis techniques de calcul vues au lycée).
Chaque chapitre aura un TD. Vous devez venir à chaque TD en ayant lu le cours (ceci sera testé), en
ayant préparé le TD (avoir tenté de résoudre les exercices), et avec une version papier (ou sur
ordinateur) du cours et du TD. Si ce n'est pas le cas, l'intervenant pourra vous exclure de la salle.
Pour chaque définition ou technique que vous ne comprenez pas, vous devez tout d'abord chercher à
comprendre par vous-même (en relisant des paragraphes du cours, d'un dictionnaire ou d'une page
Web), et, si vous ne comprenez toujours pas, vous devez poser des questions.
Mon rôle étant enseignant est de vous aider à apprendre, et donc de vous fournir un cours précis et
structuré, de répondre à vos questions, de vérifier que vous avez effectué un effort d'apprentissage, et
de vérifier que cet effort a conduit à un apprentissage suffisant.
La structure du cours se présente comme suit : l’introduction du cours, six chapitres, les
recommandations et les conclusions.
6
Introduction du Cours
Un cours sur l’Architecture des Ordinateurs et Systèmes à processeurs, demande de définir ce que
sont, d’une part un ordinateur, l’architecture et d’autre part les systèmes à processeurs. Le lecteur qui
s’apprête à aborder la licence en Informatique a certainement une intuition sur l’ordinateur, mais peut-
être pas d’idée préciser la notion d’architecture et celle des systèmes à processeurs.
Acquérir les notions de base sur la structure et le fonctionnement d’un ordinateur et ces
principaux composants (microprocesseurs, mémoire et dispositifs E/S).
Les composants et principes majeurs de fonctionnement d’un ordinateur, ensuite d’un réseau
d’ordinateur depuis l’électronique (les transistors jusqu’à la programmation).
Les critères principaux d’évaluation de la performance des machines (Capacité, Rapidité …).
Il y plusieurs définitions du mot ordinateur selon les ouvrages, mais retenez qu’un ordinateur peut se
définir comme une machine qui traite une information fournie par un organe d’entrée suivant un
programme et délivre une information résultante sur un organe de sortie.
La partie de l’ordinateur chargée du traitement de l’information est appelée Unité Centrale (UC) en
anglais, Central Processing Unit (CPU).
De nos jours, nous assistons à une explosion des jeux informatiques et vidéo. Ceci a certainement
permis auprès du “grand public” d’avoir une connaissance fonctionnelle de certains composants
architecturaux : chacun sait que, pour jouer raisonnablement sur un PC, il vaut mieux qu’il soit équipé
d’une carte 3D, et beaucoup connaissent la hiérarchie en termes de rapport qualité/prix de ces cartes.
Matériellement, un ordinateur est composé de cartes et de périphériques (écran, clavier, disques etc.)
; chaque carte est elle-même construite à partir de composants électroniques, qui utilisent depuis les
années 60 la technologie des transistors et depuis les années 70 la technologie des circuits intégrés.
Ces divers organes doivent être conçus et organisés pour trouver un optimum suivant les critères de
fonctionnalité, de performances et de prix. Le plus important de ces organes est le processeur, qui
est composé d’un ou d’un petit nombre de circuits intégrés.
7
Dans le sens le plus général, l’architecture est donc la conception et l’organisation des composants
matériels de l’ordinateur basés sur la technologie des circuits intégrés, et plus particulièrement du
processeur. D’où système à processeur.
Le terme de matériel dans la définition ci-dessus ne signifie pas que l’architecte dessine des transistors.
Le fonctionnement d’un ordinateur peut s’envisager suivant la hiérarchie des niveaux d’écrite dans la
figure suivante.
L’utilisateur final voit une application plus ou moins interactive, par exemple un jeu, ou un logiciel de
traitement de texte. Cette couche est réalisée essentiellement suivant un modèle de calcul figé dans
un langage de haut niveau, qui utilise des mécanismes génériques.
Chaque processeur dispose d’un langage spécifique, son jeu d’instructions, qui implémente ces
mécanismes communs. Le jeu d’instruction est également appelé langage-machine, ou encore
architecture logicielle.
De façon précise, le jeu d’instruction est une abstraction programmable (utilisable pour la
programmation) du processeur. Les niveaux suivants sont figés dans le matériel, et ne sont pas
reprogrammables. Le jeu d’instruction est donc l’interface de programmation du processeur. Le jeu
d’instruction est implémenté par divers circuits logiques : registres, UAL etc. L’organisation et la
coordination de ces organes constitue l’architecture matérielle du processeur.
En définitive nous nous appuierons sur l’étude détaillée de l’architecture du PC, dont nous étudierons
les principaux éléments de base de l’ordinateur et le langage machine ensuite les fonctions de base de
son système d’exploitation (BIOS), et ses mécanismes de communication avec l’extérieur
8
(entrées/sorties). Nous aborderons aussi le fonctionnement de différents périphériques de l’ordinateur
(écran, clavier, disques durs, CD-ROM..), afin d’apprendre à les mettre en œuvre à bon escient.
Ordinateur, PDA
Console De Jeux
Calculatrice
Télévision
Téléphone Portable
Distributeur Automatique D’argent
Robotique
Lecteur Carte A Puce, Code Barre
Automobile
Instrumentation
9
Logiciel (Software) : C’est un programme ou ensemble de programmes.
Système informatique : système aidant la réalisation de tâches/décisions et composé de
matériels (Hardware), exemple l’ordinateur, les périphériques, de logiciels (software),
information (données ou bien connaissances) et personnes.
10
Chapitre I : Généralités et Histoire de l’ordinateur.
1.1. Introduction du chapitre
L'informatique, contraction de deux mots : information et automatique, est la science du traitement
automatique de l'information. Apparue au milieu du 20ème siècle, elle a connu une évolution
extrêmement rapide. A sa motivation initiale qui était de faciliter et d'accélérer le calcul, se sont ajoutées
de nombreuses fonctionnalités, comme l'automatisation, le contrôle et la commande de processus, la
communication ou le partage de l'information.
Nous allons parler des principes de base du traitement programmé de l’information. La mise en œuvre
de ces systèmes s’appuie sur deux modes de réalisation distincts, le matériel et le logiciel. Le matériel
(hardware) correspond à l’aspect concret du système : unité centrale, mémoire, organes d’entrées-
sorties, etc… Le logiciel (software) correspond à un ensemble d’instructions, appelé programme, qui
sont contenues dans les différentes mémoires du système et qui définissent les actions effectuées par
le matériel.
Dans l’introduction nous avons dit ceci, ordinateur peut se définir comme une machine qui traite une
information fournie par un organe d’entrée suivant un programme et délivre une information résultante
sur un organe de sortie. Et la partie de l’ordinateur chargée du traitement de l’information est appelée
Unité Centrale (UC) en anglais, Central Processing Unit (CPU).
11
1.2. Petite Histoire de l’ordinateur
1945 : 1er ordinateur entièrement électronique : L’ENIAC
(Electronic Numerical Integrator and Computer) commandé
en 1942 par l’armée américaine afin d’effectuer les calculs
de balistique. Il comprend 17000 tubes (ancêtre du
transistor), pèse 30 tonnes et consomme 160 kW ! Il tourne
à 100 kHz et peut effectuer 100 000 additions ou 357
multiplications par seconde.
1956 : IBM sort le premier système à base de disque dur, le Ramac 305. L'IBM 350 utilisait 50 disques
de 24 pouces en métal, avec 100 pistes par face. Il pouvait enregistrer cinq mégaoctets de données et
coûtait 10000 $ par mégaoctet !
1958 : Invention du 1er circuit intégré. L’un de leurs premiers usages était dans les systèmes
embarqués, notamment par la NASA dans l’ordinateur de guidage d’Apollo. Le circuit intégré autorise
le développement d’ordinateurs plus compacts. On les appela les mini-ordinateurs.
12
1971 : Intel sort le premier microprocesseur commercial, le 4004, qui
contient plusieurs milliers de transistors. Un microprocesseur regroupe
la plupart des composants de calcul (horloge et mémoire mises à part
pour des raisons techniques) sur un seul circuit. Le 4004 réalisait 60 000
opérations par seconde (fréquence : 108 KHz).
Fin des années 1970 : Le processeur Intel 8080 amène la première vague d’ordinateurs personnels
(PC). Le système MS-DOS de Microsoft voit le jour (en Basic). En 1976, Steve Wozniak conçoit l’Apple
I, doté d’un processeur à 1 MHz. Il vend avec Steve Jobs environ 200 machines à 666 $ l’unité. Il est
doté d’un microprocesseur et d’un clavier, mais il n'a pas d'écran !
Années 1990 : Cette décennie fut marquée par le développement de l'Internet et l'apparition de la toile
(Web : ensemble de pages en HTML mélangeant du texte, des liens, des images, adressables via une
URL et accessibles via le protocole HTTP). C’est la convergence de l'informatique et des
télécommunications.
Depuis 2006 : Saut technologique dans l'évolution des PC : INTEL sort une gamme de processeurs
multicoeurs Core, Core 2, Core i3, i5 et i7 sur des architectures Nehalem, Sandy Bridge puis Haswell
et Broadwell 64 bits. L'architecture est adaptée selon l'utilisation sur PC de bureau ou appareil portable.
Les fréquences vont jusqu'à 3,5 GHz !
13
Chapitre II : Représentation de l’Information dans la machine.
2.1. Introduction
L’ordinateur traite plusieurs types d’informations. Quelle que soit la nature de l’information traitée par
une machine : Une image, une vidéo, un son, un texte (représentation d’une information externe), elle
est toujours sous la forme d’un ensemble de nombres écrits en base 2 (sous forme binaire, n’utilisant
que des 0 et des 1, exemple 01001011).
La raison pour laquelle les ordinateurs manipulent des données binaires est liée au fonctionnement de
leurs composants physiques. Les transistors et les condensateurs, qui sont les éléments de base
d’un ordinateur, possèdent deux états stables : activé/désactivé ou chargé/déchargé. Ainsi, un
transistor dans l’état activé va stocker l’information 1 (ou 0 s’il est dans l’état désactivé).
L’objectif de ce chapitre est que le lecteur prenne connaissance des notions de base du codage de
l’information parmi lesquelles :
L'octet (en anglais byte ou B majuscule dans les notations) est une unité d'information composée de 8
bits. Il permet par exemple de stocker un caractère comme une lettre ou un chiffre.
14
Une unité d'information composée de 16 bits est généralement appelée mot (en anglais word). Une
unité d'information de 32 bits de longueur est appelée mot double (en anglais double word, d'où
l'appellation dword).
Beaucoup d'informaticiens ont appris que 1 kilooctet valait 1024 octets. Or, depuis décembre 1998,
l'organisme international IEC a statué sur cette question. Voici les unités standardisées :
Appellation Symbole Nombre Octets
Un kilooctet (Ko) 103 octets
Un Megaoctet (Mo) 106 octets
Un Gigaoctet (Go) 109 octets
Un Téraoctet (To) 1012 octets
Un Pétaoctet (Po) 1015 octets
Un Exaoctet (Eo) 1018 octets
Un Zettaoctet (Zo) 1021 octets
Un Yottaoctet (Yo) 1024 octets
Avez-vous déjà acheté un disque dur voire une clé USB. Souvent en l'utilisant pour la première fois, on
remarque que sa taille réelle était sensiblement plus petite que celle annoncée par le fabricant ? Sachez
que le fabricant ne vous a techniquement pas menti. Il a profité d'une confusion courante entre deux
systèmes de préfixes d'unités.
En effet, lors du développement des premiers ordinateurs, les informaticiens ont décidé d'utiliser le
préfixe « kilo » pour désigner 1024, puisqu'elle est raisonnablement proche de 1000. Cette tendance
s'est poursuivie ensuite : un groupe de 1024 kilooctets a été appelé un mégaoctet, un groupe de 1024
mégaoctets a été appelé giga-octets, et ainsi de suite. Alors que le passage successif entre les préfixes
kilo, méga, Téra, ... correspond en principe à un facteur 1000, il correspond donc à un facteur 1024 en
informatique. Un mégaoctet devrait en principe valoir 1000 x 1000 octets, c'est-à-dire 1.000.000
d'octets, mais il vaut 1024 x 1024 octets en informatique, c'est-à-dire 1.048.576 octets. Ce qui
correspond à une différence de 4.63%.
15
Il existe plusieurs systèmes de numérations dont les plus connus sont
Le système décimal (b=10) qui est utilisé et pratiqué dans notre vie quotidienne. Ce système
utilise dix chiffres : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Le système binaire (b=2) qui est utilisé par les ordinateurs. Ce système utilise deux chiffres {0,
1}. Par convention on identifie 0 comme une absence de tension, et 1 comme une présence de
tension. L'ordinateur comprend donc uniquement des nombres en base 2.
Exemple : 101101, 01100110, 11111111, 10000001.
Le système octal (b=8=23) qui permet de coder trois bits par un seul symbole. Ce système
utilise huit chiffres : {0, 1, 2, 3, 4, 5, 6, 7}.
Le système hexadécimal (b=16) est utilisé pour réduire encore plus l'écriture des nombres
binaire. La base hexadécimale est aussi une puissance de 2 (16 = 24). Qui permet de coder
quatre bits par un seul symbole. Ce système utilise seize chiffres : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C, D, E, F}.
16
de 5·102 + 2·101 + 3·100. On peut selon ce principe imaginer une infinité de systèmes numériques
fondés sur des bases différentes.
En informatique, outre la base 10, on utilise très fréquemment le système binaire (base 2)
puisque l'algèbre booléenne est à la base de l'électronique numérique. Deux symboles suffisent
: 0 et 1.
On utilise aussi très souvent le système hexadécimal (base 16) du fait de sa simplicité
d'utilisation et de représentation pour les mots machines (il est bien plus simple d'utilisation que
le binaire). Il faut alors six symboles supplémentaires : A (qui représente le 10), B (11), C (12),
D (13), E (14) et F (15) Le tableau ci-dessous montre la représentation des nombres de 0 à 15
dans les bases 10, 2 et 16.
Le tableau ci-dessus montre la représentation des nombres de 0 à 15 dans les bases : décimale,
binaire, et hexadécimale.
Le chiffre de droite (4 dans l’exemple) s’appelle le chiffre de poids faible. Celui de gauche (1 dans
l’exemple) s’appelle le chiffre de poids fort. L’exposant de la base, associé à un chiffre d’un nombre
quelconque, s’appelle le rang. Par exemple 4 est de rang 0 tandis que 1 est de rang 3 dans l’exemple
ci-dessus. On peut généraliser cette notion et écrire sous forme polynomiale tout nombre N de base b
quelconque.
17
Soit un nombre 7854261, le 7 représente le poids fort et le 1 le poids faible.
Soit un nombre 785,4261 les chiffres 785 représente la partie entière, 4261 représente la partie
fractionnelle.
∗ (1)
1ère méthode
La méthode des puissances qui consiste à chercher les différentes puissances entières de la
base . L’algorithme commence par chercher la plus grande puissance entière de contenue
dans N, retrancher ensuite cette quantité du nombre N, recommencer ce processus en
considérant le reste obtenu.
18
Exemple : convertir le nombre N=75(10) en nombre Octal.
Solution : On aura successivement
Donc N=75(10) = 1 x 82 + 1 x 81 + 3 x 80
Pour le cas de notre exemple précédent, nous obtiendrons ceci : On a donc : N = 75(10) =113(8)
∗ (2)
1
Problème 1 :
Convertir un nombre fractionnaire de base b en décimal.
Exemple : convertir =0,1011(2) en décimal.
Solution : nous obtenons : = 1x2-1 + 0x2-2 + 1x2-3+ 1x2-4 =0.5+0.125+0.0625 = 0.6875(10)
19
Problème 2 :
Convertir un nombre décimal fractionnaire en un nombre de base b.
Pour convertir un nombre décimal fractionnaire en un nombre de base b, il faut multiplier sa partie
fractionnaire par la base. La partie entière du résultat est encadré, et la partie fractionnaire résultante
est multipliée par la base. On recommence ce processus jusqu’à ce qu’un de ces critères soit vérifié.
20
Conversion binaire-hexadécimal et vice versa
Le système hexadécimal (b=16) permet de coder quatre bits par un
seul symbole. Ce système utilise les dix chiffres de la base décimale
: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, plus, les six symboles suivants : {A, B, C,
D, E, F}. Pour convertir un nombre fractionnaire binaire en
Hexadécimal, il faut juste grouper les bits par blocs de quatre à partir
de la virgule, en allant vers la gauche pour la partie entière et vers la
droite pour la partie fractionnaire. Convertir ensuite ces blocs en Hexadécimal en se basant sur le
tableau.
ADDITION SOUSTRACTION
L’algorithme de l’addition des nombres binaires Comme dans le cas du système décimal, la
est le même que celui de l’addition des nombres soustraction en binaire est également basée sur
décimaux. la notion de retenue.
21
Remarque : 1 + 1 + 1 = 1 et retenue de 1.
MULTIPLICATION DIVISION
Toujours comme dans le cas du système C’est le même algorithme classique de la division
décimal, chaque nombre de la ligne du bas sera décimale. Elle s'effectue à l'aide de soustractions
distribué à la ligne du haut. Ensuite, chaque ligne et de décalages, Les chiffres du quotient, plus
sera sommée (ne pas oublier les retenues) et le simples, sont 0 ou 1 ; 1 lorsque le diviseur est
résultat sera alors obtenu. plus petit que le dividende et 0 sinon.
2.8. Conclusion
Dans ce chapitre, nous avons présenté les systèmes de numération les plus utilisés dans les systèmes
numériques notamment le système binaire, octal et hexadécimal. Aussi, nous avons étudié les
opérations de codage, décodage, conversion de codes ainsi que la réalisation des opérations
arithmétiques en binaire. Nous avons étudié aussi le codage ainsi que l’arithmétique dans les nombres
réels.
22
Chapitre III : Architecture de base d’un ordinateur.
3.1. Introduction
L’ordinateur, outils informatique permettant de faire un traitement automatique de l’information. Tout ce
qui est doté d’un clavier et d’un écran n’est pas obligatoirement un ordinateur. Les entreprises ayant
besoin d’un réseau étendu utilisent de fois un gros ordinateur (mainframe), et des ordinateurs moyen
ou un « mini », selon le nombre de postes qui y seront connectés simultanément.
Les postes connectés à cette machine centrale puissante peuvent être de simples terminaux passifs
(sans capacité de traitement local et sans disque).
D’un clavier et d’une souris qui permettent d’entrer des informations dans la machine ;
D’un écran qui permet de visualiser les informations sortant de l’ordinateur ;
D’un boîtier ou tour appelé unité-centrale
D’une imprimante (sortie sur papier) et d’un scanner (entrée papier).
23
Du point de vue interne nous parlerons des éléments constitutifs d’une unité centrale.
La carte mère
Les différents connecteurs internes et externes
Le bloc d’alimentation
Les Mémoires
Le Processeurs.
Le clavier, écran, souris, imprimante, scanner et disques constituent des périphériques de l’ordinateur,
ainsi nommés car ils sont situés autour du processeur.
Le chipset : c’est une interface d’entrée/sortie. Elle est constituée par un jeu de plusieurs
composants chargé de gérer la communication entre le microprocesseur et les périphériques. C’est
le lien entre les différents bus de la carte mère.
Le BIOS (Basic Input Output Service) : c’est un programme responsable de la gestion du matériel,
clavier, écran, disques durs, liaisons séries et parallèles. Il est sauvegardé dans une mémoire morte
(EEPROM) et agit comme une interface entre le système d’exploitation et le matériel.
L’horloge : elle permet de cadencer le traitement des instructions par le microprocesseur ou la
transmission des informations sur les différents bus.
Les ports de connexion : ils permettent de connecter des périphériques sur les différents bus de
la carte mère. Il existe des ports « internes » pour connecter des cartes d’extension (PCI, ISA,
AGP) ou des périphériques de stockage (SCSI, IDE, Serial ATA) et des ports « externes » pour
connecter d’autres périphériques (série, parallèle, USB, FireWire).
Le socket : c’est le nom du connecteur destiner au microprocesseur. Il détermine le type de
microprocesseur que l’on peut connecter.
24
3.2.2. Architecture d’une carte mère
Ici le chipset est composé par deux composants nommés Pont Nord et Pont Sud.
Le pont Nord s’occupe d’interfacer le microprocesseur avec les périphériques rapides (mémoire
et carte graphique) nécessitant une bande passante élevée.
Le pont sud s’occupe d’interfacer le microprocesseur avec les périphériques plus lents (disque
dur, CDROM, lecteur de disquette, réseau).
On voit apparaître différents bus chargés de transporter les informations entre le microprocesseur et la
mémoire ou les périphériques, ces bus sont ceux-là qui nous permettrons d’établir les connecteurs
(ports / interfaces) internes et externes de l’ordinateur.
25
3.2.3. Les connecteurs internes
Le socket
Le socket est l'emplacement de la carte mère dans lequel vient se loger
le processeur central de votre ordinateur. Il existe plusieurs modèles de
sockets, chacun compatible avec un type bien particulier de processeur.
Aussi, une carte mère ne peut pas héberger n'importe quel processeur.
Les sockets les plus utilisés à l'heure actuelle sont le socket A dédiés aux
processeurs Duron et Athlon XP du constructeur AMD et le socket 478
pour les processeurs Célérons et Pentium 4 de la firme Intel. Sur le côté du socket se trouve le ZIF
(Zero Force Insertion), petit levier en métal permettant de fixer le processeur au socket.
26
Les Slots de Mémoire Vive
La mémoire vive est souvent comparée aux poumons de l'ordinateur,
puisque c'est de cette mémoire que sont puisées les ressources
nécessaires au lancement de vos applications. Plus vous en avez, plus
votre ordinateur sera endurant. La mémoire vive se présente sous forme
d'une ou plusieurs barrettes qui viennent s’éclipser dans des slots intégrés à la carte mère.
Deux types de format existent pour les barrettes de mémoire vive, ce qui explique la présence sur de
nombreuses cartes mère des deux formats de slots (nombre différent de connecteurs). Les barrettes
au format SDRAM (plus anciennes) s'enfichent dans les slots noirs ayant deux détrompeurs, tandis que
les barrettes de DDRAM (plus rapides que les barrettes SDRAM dans les anciennes versions)
s'enfichent dans les slots généralement bleus avec un détrompeur.
Les ports IDE, sont utilisés pour connecter à votre carte mère vos
disques durs, mais aussi votre lecteur de CD, de DVD et votre
graveur par le biais d'un câble spécial appelé Nappe IDE. Un seul
port IDE peut supporter deux périphériques (vous pouvez donc utiliser vos deux ports IDE pour au
maximum deux disques durs, un lecteur DVD et un graveur par exemple). Un des ports IDE est de
couleur bleu, il s'agit du port le plus rapide à utiliser pour relier votre carte mère et le disque dur
contenant le système d'exploitation.
Le port Floppy, plus petit est nécessaire au raccordement à la carte du lecteur de disquette, devient
de moins en moins sollicité.
27
Le port AGP
Il peut ne pas être présent sur les cartes mères avec vidéo
intégrée, puisque le port AGP est destiné à recevoir la carte vidéo
de votre ordinateur sur laquelle est relié l'écran. Il s'agit d'un slot
de couleur marron, situé juste au-dessus des ports PCI. Le port
AGP existe en différentes normes de débit AGPx2, AGP x4 et
AGPx8, avec pour chacune de ces normes un débit des données plus rapide que la norme précédente.
Le connecteur AGP n'est utilisable que par des cartes graphiques alors que les PCI peuvent recevoir
d'autres types de cartes, contrôleur SCSI, carte son, carte réseau.
28
Port Série RS232 :
Principe de la transmission série : Les n bits de la donnée à communiquer sont
envoyés les uns après les autres (en série) sur un seul fil de liaison. Historiquement,
le port série est le premier port de communication utilisant une transmission série (norme RS232). Son
débit est au maximum de 19,2 kbps ou kb/s (kilobits par
seconde). Il a été très longtemps utilisé pour sa simplicité de
configuration et de pilotage. C'est d'ailleurs le protocole de
communication mis en œuvre pour un grand nombre de
système du laboratoire. Il est en voie de disparition.
Port Parallèle :
Connecteur de type D-SUB, ici DB25. Principe de la transmission parallèle : Les n bits de la donnée à
communiquer sont simultanément présents sur le câble de transmission. Le port parallèle est en voie
d'extinction, comme le port série RS232. Il était autrefois le plus souvent utilisé pour la communication
PC-imprimante car il était le plus rapide (16 Mb/s).
Port VGA :
VGA (Video Graphics Array) est un port de type analogique destiné à la communication avec un écran
ou un vidéoprojecteur.
29
Port DVI :
VDI (Digital Visual Interface) est de type numérique non HD ; il apporte donc une amélioration en termes
de réduction du bruit par rapport au port VGA analogique.
Port HDMI :
HDMI (High Définition Multimedia Interface) est de type numérique et permet la transmission de signaux
au format HD. Il existe différents niveaux de norme HDMI.
L’architecture de base de la plupart des systèmes à microprocesseur actuel est composée des
éléments suivants :
Une unité centrale (UC)
Une mémoire principale
Des interfaces d’entrées/sorties (E/S)
30
Notez que ces différents organes se connectent entre eux (sont reliés) par des voies des
communications qu’on nomme BUS
L’unité centrale
Elle est composée par le microprocesseur qui est chargé d’interpréter et d’exécuter les instructions d’un
programme, de lire ou de sauvegarder les résultats dans la mémoire et de communiquer avec les unités
d’échange. Toutes les activités du microprocesseur sont cadencées par une horloge.
On caractérise le microprocesseur par :
Sa fréquence d’horloge : en MHz ou GHz
Le nombre d’instructions par secondes qu’il est capable d’exécuter : en MIPS
La taille des données qu’il est capable de traiter : en bits
La mémoire principale
Elle contient les instructions du ou des programmes en cours d’exécution et les données associées à
ce programme. Physiquement, elle se décompose souvent en :
Une mémoire morte (ROM = Read Only Memory) chargée de stocker le programme. C’est une
mémoire à lecture seule.
Une mémoire vive (RAM = Random Access Memory) chargée de stocker les données
intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces
données sont perdues à la mise hors tension.
Notez que les disques durs, disquettes, CDROM, sont des périphériques de stockage et sont
considérés comme des mémoires secondaires.
31
Les bus
Un bus est un ensemble de fils qui assure la transmission du même type d’information. On retrouve
trois types de bus véhiculant des informations en parallèle dans un système de traitement programmé
de l’information :
32
Chapitre IV : Les Mémoires.
4.1. Introduction
Une mémoire est un dispositif permettant d'enregistrer, de conserver et de restituer de l'information.
Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en
mémoire, lecture lorsqu'on récupère des informations précédemment enregistrées.
Avec une adresse de n bits il est possible de référencer au plus 2n cases mémoire. Chaque case est
remplie par un mot de données ou mot mémoire et ces mots sont de taille 16, 32 ou 64 bits. La taille
de ces mots est à distinguer de celle des mots traités par le processeur (16 bits, 32 bits, 64 bits). Sa
longueur m est toujours une puissance de 2.
Le nombre de fils d’adresses d’un boîtier mémoire définit donc le nombre de cases mémoire que
comprend le boîtier. Le nombre de fils de données définit la taille des données que l’on peut
sauvegarder dans chaque case mémoire.
En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une entrée de
commande qui permet de définir le type d’action que l’on effectue avec la mémoire (lecture/écriture) et
une entrée de sélection qui permet de mettre les entrées/sorties du boîtier en haute impédance.
On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer :
33
Les entrées d’adresses
Les entrées de données
Les sorties de données
Les entrées de commandes :
1. Une entrée de sélection de lecture ou d’écriture. (R/ )
2. Une entrée de sélection du circuit. ( )
Voici quelques-unes des grandeurs caractérisant les mémoires. Le temps d'accès est ce qui mesure la
latence entre l'ordre donné à la mémoire (écriture/lecture) et l'exécution effective de cet ordre.
34
La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime en octet.
Le format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire.
On dit aussi que c’est la largeur du mot mémorisable.
Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération de
lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus de
données.
Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture. (Deux accès à la mémoire)
Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.
Caractéristiques Techniques (volatile/non volatile): elle caractérise la permanence des
informations dans la mémoire. L'information stockée est volatile si elle risque d'être altérée par
un défaut d'alimentation électrique et non volatile dans le cas contraire.
Les mémoires utilisées pour réaliser la mémoire principale d’un système à microprocesseur sont des
mémoires à semi-conducteur. On a vu que dans ce type de mémoire, on accède directement à n'importe
quelle information dont on connaît l'adresse et que le temps mis pour obtenir cette information ne
dépend pas de l'adresse. On dira que l'accès à une telle mémoire est aléatoire ou direct.
A l'inverse, pour accéder à une information sur bande magnétique, il faut dérouler la bande en repérant
tous les enregistrements jusqu'à ce que l'on trouve celui que l'on désire. On dit alors que l'accès à
l'information est séquentiel. Le temps d'accès est variable selon la position de l'information recherchée.
L'accès peut encore être semi-séquentiel : combinaison des accès direct et séquentiel.
Pour un disque magnétique par exemple l'accès à la piste est direct, puis l'accès au secteur est
séquentiel.
35
4.4. Types de mémoires
Pour des raisons technologiques (l'augmentation de la taille d'une mémoire s'accompagne toujours de
l'augmentation du temps d'accès) et des raisons économiques (plus vite = plus cher), on utilise
différents types de mémoires. La vitesse d'une mémoire (temps d'accès et débit) est inversement
proportionnelle à sa taille usuelle.
4.4.1. Mémoires vives ou RAM (Random Acces Memory : mémoire à accès aléatoire)
Une mémoire vive, sert au stockage temporaire de données. Elle doit avoir un temps de cycle très court
pour ne pas ralentir le microprocesseur. Les mémoires vives sont en général volatiles : elles perdent
leurs informations en cas de coupure d'alimentation. Certaines d'entre elles, ayant une faible
consommation, peuvent être rendues non volatiles par l'adjonction d'une batterie.
1. RAM Statique
2. RAM Dynamique
SRAM : n'ont pas besoin de rafraichissement car un bit est stocké par une bascule : 1 bit = 4 transistors
= 2 portes NOR. Elle est donc également volatile. Elle est plus couteuse qu'une DRAM et est notamment
utilisée pour les mémoires caches du processeur.
Ceci correspond à la notion de bascule utilisée pour stocker une information.
Statique : l'information n'a pas besoin d'être rafraichie.
Bascule RS (ou D) qui stocke l'information, elle est beaucoup plus rapide que la DRAM et
beaucoup plus cher que la DRAM.
36
Durant ces temps de rechargement, la mémoire ne peut être ni lue, ni écrite, ralentissant donc son
fonctionnement (d'où le terme de Dynamique). C'est une mémoire volatile car sans alimentation, les
données sont perdues. Peu couteuse elle est principalement utilisée pour la mémoire centrale (RAM)
de l'ordinateur.
4.4.2. Mémoires mortes ou ROM (Read Only Memory ou memoire à lecture seule)
Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon
permanente même lorsque l'alimentation électrique est interrompue. On utilise alors des mémoires
mortes ou mémoires à lecture seule. Ces mémoires sont non volatiles.
Contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire des données restent
possible mais est appelée programmation. Suivant le type de ROM, la méthode de programmation
changera. Il existe donc plusieurs types de ROM :
37
vive ou RAM, mémoire morte ou ROM) qui stockent des données et programmes. Finalement, hors de
la carte mère, la mémoire de masse stockant les informations, généralement sous forme de fichiers.
En effet, c’est là que se trouve le goulot d’étranglement entre un microprocesseur capable de traiter
des informations très rapidement et une mémoire beaucoup plus lente (ex : processeur actuel à 3Ghz
et mémoire à 400MHz). Or, on n’a jamais besoin de toutes les informations au même moment. Afin
d’obtenir le meilleur compromis coût-performance, on définit donc une hiérarchie mémoire. On utilise
des mémoires de faible capacité mais très rapide pour stocker les informations dont le microprocesseur
se sert le plus et on utilise des mémoires de capacité importante mais beaucoup plus lente pour stocker
les informations dont le microprocesseur se sert le moins. Ainsi, plus on s’éloigne du microprocesseur
et plus la capacité et le temps d’accès des mémoires vont augmenter.
38
Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau du
processeur et servent au stockage des opérandes et des résultats intermédiaires.
La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer l’accès à la
mémoire centrale en stockant les données les plus utilisées.
La mémoire principale est l’organe principal de rangement des informations. Elle contient les
programmes (instructions et données) et est plus lente que les deux mémoires précédentes.
La mémoire d’appui sert de mémoire intermédiaire entre la mémoire centrale et les mémoires
de masse. Elle joue le même rôle que la mémoire cache.
La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour le
stockage permanent ou la sauvegarde des informations. Elle utilise pour cela des supports
magnétiques (disque dur, ZIP) ou optiques (CDROM, DVDROM).
Accès séquentiel
Pour accéder à une information, il faut parcourir toutes les informations qui la précède.
Exemple : bandes magnétiques.
Accès direct
Chaque information possède une adresse propre, à laquelle on peut accéder directement
Exemple : mémoire centrale de l'ordinateur.
Accès semi-séquentiel
Intermédiaire entre séquentiel et direct
Exemple : disque dur
Accès associatif
Une information est identifiée par sa clé
On accède à une information via sa clé
Exemple :
39
Chapitre V : Le Microprocesseur.
5.1. Introduction
Tous nous comprenons l’architecture de l’ordinateur qui est basée sur le modèle de Von John Newman.
Alors comme objectifs de ce chapitre, le lecteur doit
Comprendre l’architecture du microprocesseur
Comprendre les étapes du déroulement de l’exécution d’une instruction.
Comprendre le principe des différents modes d’adressage.
Le jeu d’instruction et les deux grandes familles d’architectures des microprocesseurs
Connaitre les améliorations des microprocesseurs : pipeline et scalaire
Comprendre la notion de la mémoire cache.
Pour y entrer dans le vif du chapitre, nous posons quelques questions scientifiques pour contribuer à
la compréhension.
C’est quoi un microprocesseur ? c’est quoi une instruction ? c’est quoi un programme ?
On peut définir le microprocesseur comme étant un circuit intégré complexe caractérisé par une très
grande intégration et doté des facultés d'interprétation et d'exécution des instructions d'un programme.
Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi
prendre en compte les informations extérieures au système et assurer leur traitement. C’est le cerveau
du système.
Une instruction, c’est une commande, c’est un ordre donné par un utilisateur à l’ordinateur.
Exemple : Print ‘Hello’ soit imprime Salut.
Un programme, c’est l’ensemble de plusieurs instructions exécutées dans un ordre bien
déterminé.
Un langage, c’est un ensemble de commande nécessaires pour l’écriture d’un programme afin
qu’il soit compréhensible par l’ordinateur. (c++ java, pascal, python…)
Exemple d’exécution d’un programme
Edition Print (‘Hello’)
Compilation 10100110101011
Exécution Hello
40
5.2 Architecture de base d’un microprocesseur
Un microprocesseur est construit autour de deux éléments principaux :
Une unité de commande
Une unité de traitement
Associés à des registres chargées de stocker les différentes informations à traiter. Ces trois éléments
sont reliés entre eux par des bus interne permettant les échanges d’informations.
1. Les registres d'usage général permettent à l'unité de traitement de manipuler des données à
vitesse élevée. Ils sont connectés au bus de donnée interne au microprocesseur.
2. Les registres d'adresses (pointeurs) connectés sur le bus adresses.
41
décodeur d’instruction ou du registre d’état par exemple. Il s'agit d'un automate réalisé soit de
façon câblée (obsolète), soit de façon micro-programmée, on parle alors de micro
microprocesseur.
L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage) ou arithmétique (Addition, soustraction).
Le registre d'état est généralement composé de 8 bits à considérer individuellement. Chacun
de ces bits est un indicateur dont l'état dépend du résultat de la dernière opération effectuée
par l’UAL. On les appelle indicateur d’état ou flag ou drapeaux. Dans un programme le résultat
du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer
par exemple les indicateurs de :
Retenue (carry : C)
Retenue intermédiaire (Auxiliaire-Carry : AC)
o signe (Sign : S)
o débordement (overflow : OV ou V)
o zéro (Z)
o parité (Parity : P)
Les accumulateurs sont des registres de travail qui servent à stocker un opérande au début
d'une opération arithmétique et le résultat à la fin de l'opération.
42
5.5.3. Cycle d’exécution d’une instruction
Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en binaire. Le
traitement d’une instruction peut être décomposé en trois phases :
43
Phase 3 : Exécution de l'instruction
Le microprogramme réalisant l'instruction est exécuté.
Les drapeaux sont positionnés (registre d'état).
L'unité de commande positionne le PC pour l'instruction suivante.
44
5.3. Jeu d’instructions
Définition
La première étape de la conception d’un microprocesseur est la définition de son jeu d’instructions.
Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le microprocesseur pourra
exécuter.
5.2.2. Codage
Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale. La taille totale
d’une instruction (nombre de bits nécessaires pour la représenter en mémoire) dépend du type
d’instruction et aussi du type d’opérande. Chaque instruction est toujours codée sur un nombre entier
d’octets afin de faciliter son décodage par le processeur. Une instruction est composée de deux
champs :
Le code instruction, qui indique au processeur quelle instruction réaliser
Le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son
adresse).
Exemple : Le nombre d'instructions du jeu d'instructions est
directement lié au format du code instruction. Ainsi un octet
permet de distinguer au maximum 256 instructions différentes.
45
5.2.3. Mode d’adressage
Un mode d'adressage définit la manière dont le microprocesseur va accéder à l’opérande. Les différents
modes d'adressage dépendent des microprocesseurs mais on retrouve en général :
Selon le mode d’adressage de la donnée, une instruction sera codée par 1 ou plusieurs octets.
La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec la machine a
nécessité la conception de langages de haut niveau, plus adaptés à l'homme, et aux applications qu'il
cherchait à développer. Faisant abstraction de toute architecture de machine, ces langages permettent
46
l'expression d'algorithmes sous une forme plus facile à apprendre, et à dominer (C, Pascal, Java, etc…).
Chaque instruction en langage de haut niveau correspondra à une succession d’instructions en langage
assembleur. Une fois développé, le programme en langage de haut niveau n’est donc pas
compréhensible par le microprocesseur. Il faut le compiler pour le traduire en assembleur puis
l’assembler pour le convertir en code machine compréhensible par le microprocesseur. Ces opérations
sont réalisées à partir de logiciels spécialisés appelés compilateur et assembleur.
Exemple de programme
Le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles d’horloge nécessaire
pour l’exécution d’une instruction pour un microprocesseur donné.
Le MIPS (Millions d'Instructions Par Seconde) qui représente la puissance de traitement du
microprocesseur.
F avec FH en MHz
CPI
NB : Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la
fréquence d'horloge (limitation matérielle), soit diminuer le CPI (choix d'un jeu d'instruction adapté).
47
1. Architecture RISC (Reduced Instruction Set Computer)
2. Architecture CISC (Complex Instruction Set Computer)
Comment
C’est donc une architecture dans laquelle les instructions sont en nombre réduit (chargement,
branchement, appel sous-programme). Les architectures RISC peuvent donc être réalisées à
partir de séquenceur câblé. Leur réalisation libère de la surface permettant d’augmenter le
48
nombre de registres ou d’unités de traitement par exemple. Chacune de ces instructions
s’exécutent ainsi en un cycle d’horloge. Bien souvent, ces instructions ne disposent que d’un
seul mode d’adressage. Les accès à la mémoire s’effectuent seulement à partir de deux
instructions (Load et Store). Par contre, les instructions complexes doivent être réalisées à partir
de séquences basées sur les instructions élémentaires, ce qui nécessite un compilateur très
évolué dans le cas de programmation en langage de haut niveau.
5.6.3. Comparaison
Le choix dépendra des applications visées. En effet, si on diminue le nombre d'instructions, on crée des
instructions complexes (CISC) qui nécessitent plus de cycles pour être décodées et si on diminue le
nombre de cycles par instruction, on crée des instructions simples (RISC) mais on augmente alors le
nombre d'instructions nécessaires pour réaliser le même traitement.
La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence de l’horloge
du microprocesseur. Mais l’accélération des fréquences provoque un surcroît de consommation
ce qui entraîne une élévation de température. On est alors amené à équiper les processeurs de
systèmes de refroidissement ou à diminuer la tension d’alimentation.
Une autre possibilité d’augmenter la puissance de traitement d’un microprocesseur est de
diminuer le nombre moyen de cycles d’horloge nécessaire à l’exécution d’une instruction. Dans
le cas d’une programmation en langage de haut niveau, cette amélioration peut se faire en
49
optimisant le compilateur. Il faut qu’il soit capable de sélectionner les séquences d’instructions
minimisant le nombre moyen de cycles par instructions.
Une autre solution est d’utiliser une architecture de microprocesseur qui réduise le nombre de
cycles par instruction.
50
Lorsque la première étape de l’exécution d’une instruction est achevée, l’instruction entre dans la
seconde étape de son exécution et la première phase de l’exécution de l’instruction suivante débute. Il
peut donc y avoir une instruction en cours d’exécution dans chacune des étapes et chacun des
composants du microprocesseur peut être utilisé à chaque cycle d’horloge. L’efficacité est maximale.
Le temps d’exécution d’une instruction n’est pas réduit mais le débit d’exécution des instructions est
considérablement augmenté. Une machine pipeline se caractérise par le nombre d’étapes utilisées pour
l’exécution d’une instruction, on appelle aussi ce nombre d’étapes le nombre d’étages du pipeline.
Gain de performance
Dans cette structure, la machine débute l’exécution d’une instruction à chaque cycle et le pipeline est
pleinement occupé à partir du quatrième cycle. Le gain obtenu dépend donc du nombre d’étages du
pipeline.
En effet, pour exécuter n instructions, en supposant que chaque instruction s’exécute en k cycles
d’horloge, il faut :
n.k cycles d’horloge pour une exécution séquentielle.
K cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour les n-1 instructions
suivantes si on utilise un pipeline de k étages.
NB :
Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k, on peut admettre
qu’on divise le temps d’exécution par k.
51
Le temps de traitement dans chaque unité doit être à peu près égal sinon les unités rapides
doivent attendre les unités lentes.
1. Aléa structurel qui correspond au cas où deux instructions ont besoin d’utiliser la même
ressource du processeur (conflit de dépendance).
2. Aléa de données qui intervient lorsqu’une instruction produit un résultat et que l’instruction
suivante utilise ce résultat avant qu’il n’ait pu être écrit dans un registre.
3. Aléa de contrôle qui se produit chaque fois qu’une instruction de branchement est exécutée.
Lorsqu’une instruction de branchement est chargée, il faut normalement attendre de connaître
l’adresse de destination du branchement pour pouvoir charger l’instruction suivante.
Les instructions qui suivent le saut et qui sont en train d’être traitées dans les étages inférieurs
le sont en général pour rien, il faudra alors vider le pipeline. Pour atténuer l’effet des
branchements, on peut spécifier après le branchement des instructions qui seront toujours
exécutées. On fait aussi appel à la prédiction de branchement qui a pour but de recenser lors
de branchements le comportement le plus probable. Les mécanismes de prédiction de
branchement permettent d'atteindre une fiabilité de prédiction de l'ordre de 90 à 95 %.
Lorsqu’un aléa se produit, cela signifie qu’une instruction ne peut continuer à progresser dans le
pipeline. Pendant un ou plusieurs cycles, l’instruction va rester bloquée dans un étage du pipeline, mais
52
les instructions situées plus en avant pourront continuer à s’exécuter jusqu’à ce que l’aléa ait disparu.
Plus le pipeline possède d’étages, plus la pénalité est grande.
53
5.8. Mémoire cache
L’écart de performance entre le microprocesseur et la mémoire ne cesse de s’accroître. En effet, les
composants mémoire bénéficient des mêmes progrès technologiques que les microprocesseurs, mais
le décodage des adresses et la lecture/écriture d’une donnée sont des étapes difficiles à accélérer.
Ainsi, le temps de cycle processeur décroît plus vite que le temps d’accès mémoire entraînant un goulot
d’étranglement.
La mémoire n'est plus en mesure de délivrer des informations aussi rapidement que le processeur est
capable de les traiter. Il existe donc une latence d’accès entre ces deux organes.
54
Les mémoires doivent répondre à deux contraintes contradictoires :
Taille importante
Temps d’accès court
Principe de base du cache
Les mots mémoires les plus fréquemment utilisés sont conservés dans une mémoire rapide (cache)
plutôt que dans une mémoire lente (mémoire centrale).
Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa présence et lui
envoie toutes ses requêtes comme s’il agissait de la mémoire principale :
Soit la donnée ou l’instruction requise est présente dans le cache et elle est alors envoyée
directement au microprocesseur. On parle de succès de cache.
Soit la donnée ou l’instruction n’est pas dans le cache, et le contrôleur de cache envoie alors
une requête à la mémoire principale. Une fois l’information récupérée, il la renvoie au
microprocesseur tout en la stockant dans le cache. On parle de défaut de cache.
Bien entendu, le cache mémoire n’apporte un gain de performance que dans le premier cas. Sa
performance est donc entièrement liée à son taux de succès. Il est courant de rencontrer des taux de
succès moyen de l’ordre de 80 à 90%.
Un cache utilisera une carte pour savoir quels sont les mots de la mémoire principale dont il
possède une copie. Cette carte devra avoir une structure simple.
55
Il existe dans le système deux copies de la même information : l’originale dans la mémoire
principale et la copie dans le cache. Si le microprocesseur modifie la donnée présente dans le
cache, il faudra prévoir une mise à jour de la mémoire principale.
Lorsque le cache doit stocker une donnée, il est amené à en effacer une autre. Il existe donc
un contrôleur permettant de savoir quand les données ont été utilisées pour la dernière fois. La
plus ancienne non utilisée est alors remplacée par la nouvelle.
Les techniques d’entrées/sorties sont très importantes pour les performances du système. Rien ne sert
d’avoir un microprocesseur calculant très rapidement s’il doit souvent perdre son temps pour lire des
données ou écrire ses résultats. Durant une opération d’entrée/sortie, l’information est échangée entre
la mémoire principale et un périphérique relié au système. Cet échange nécessite une interface (ou
contrôleur) pour gérer la connexion. Plusieurs techniques sont employées pour effectuer ces échanges.
56
7.2. Rôle et constitution d’une interface d’entrée/sortie
Chaque périphérique sera relié au système par l’intermédiaire d’une interface (ou contrôleur) dont le
rôle est de :
Connecter le périphérique au bus de données
Gérer les échanges entre le microprocesseur et le périphérique
Pour ce qui concerne la Constitution, l’interface est constituée par :
Un registre de commande dans lequel le processeur décrit le travail à effectuer (sens de
transfert, mode de transfert).
Un ou plusieurs registres de données qui contiennent les mots à échanger entre le périphérique
et la mémoire.
Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien déroulé.
57
Interruption
Une interruption est un signal, généralement asynchrone au programme en cours, pouvant être émis
par tout dispositif externe au microprocesseur. Le microprocesseur possède une ou plusieurs entrées
réservées à cet effet. Sous réserve de certaines conditions, elle peut interrompre le travail courant du
microprocesseur pour forcer l’exécution d’un programme traitant la cause de l’interruption. Dans un
échange de données par interruption, le microprocesseur exécute donc son programme principal
jusqu’à ce qu’il reçoive un signal sur sa ligne de requête d’interruption. Il se charge alors d’effectuer le
transfert de données entre l’interface et la mémoire.
Certaine source d’interruption possède leur propre autorisation de fonctionnement sous la forme
d’un bit à positionner, on l’appelle le masque d’interruption.
On peut donc interdire ou autoriser certaines sources d’interruptions, on les appelle les
interruptions masquables.
Chaque source d’interruption possède un vecteur d’interruption où est sauvegardé l’adresse
de départ du programme à exécuter.
Les interruptions sont classées par ordre de priorité. Dans le cas où plusieurs interruptions se
présentent en même temps, le microprocesseur traite d’abord celle avec la priorité la plus
élevée.
58
en charge les différentes opérations. Le DMA se charge entièrement du transfert d’un bloc de données.
Le microprocesseur doit tout de même :
Initialiser l’échange en donnant au DMA l’identification du périphérique concerné.
Donner le sens du transfert
Fournir l’adresse du premier et du dernier mot concerné par le transfert
Un contrôleur de DMA est doté d’un registre d’adresse, d’un registre de donnée, d’un compteur et d’un
dispositif de commande (logique câblée). Pour chaque mot échangé, le DMA demande au
microprocesseur le contrôle du bus, effectue la lecture ou l'écriture mémoire à l'adresse contenue dans
son registre et libère le bus. Il incrémente ensuite cette adresse et décrémente son compteur. Lorsque
le compteur atteint zéro, le dispositif informe le processeur de la fin du transfert par une ligne
d'interruption.
Le principal avantage est que pendant toute la durée du transfert, le processeur est libre d'effectuer un
traitement quelconque. La seule contrainte est une limitation de ses propres accès mémoire pendant
toute la durée de l'opération, puisqu'il doit parfois retarder certains de ses accès pour permettre au
dispositif d'accès direct à la mémoire d'effectuer les siens : il y a apparition de vols de cycle.
59
7.7.1. Liaison parallèle
Dans ce type de liaison, tous les bits d’un mot sont transmis simultanément. Ce type de transmission
permet des transferts rapides mais reste limitée à de faibles distances de transmission à cause du
nombre important de lignes nécessaires (coût et encombrement) et des problèmes d’interférence
électromagnétique entre chaque ligne (fiabilité). La transmission est cadencée par une horloge. Comme
exemple nous avons les bus PCI, les AGP dans un ordinateur.
En mode synchrone, l’émetteur et le récepteur possède une horloge synchronisée qui cadence
la transmission. Le flot de données peut être ininterrompu.
En mode asynchrone, la transmission s’effectue au rythme de la présence des données. Les
caractères envoyés sont encadrés par un signal start et un signal stop.
60
7.8. Principe de base d’une liaison série asynchrone :
Afin que les éléments communicants puissent se comprendre, il est nécessaire d’établir un protocole
de transmission. Ce protocole devra être le même pour chaque élément.
61
Contrôle de flux :
Le contrôle de flux permet d’envoyer des informations seulement si le récepteur est prêt (modem ayant
pris la ligne, tampon d’une imprimante vide). Il peut être réalisé de manière logicielle ou matérielle. Pour
contrôler le flux de données matériellement, il faudra utiliser des lignes de contrôle supplémentaire
permettant à l’émetteur et au récepteur de s’informer mutuellement de leur état respectif (prêt ou non).
Dans un contrôle de type logiciel, l'émetteur envoie des données et lorsque le récepteur ne peut plus
les recevoir (registre plein), il envoie une information à l’émetteur pour le prévenir, via la liaison série.
L’émetteur doit donc toujours être à l’écoute du récepteur avant d’envoyer une donnée sur la ligne.
62