Vous êtes sur la page 1sur 381

Architecture des Ordinateurs

IUT Informatique de Calais


Objectif du cours : Étude du fonctionnement interne de l’ordinateur
logique booléenne
1ière partie : couple processeur / mémoire
• codage des nombres
• logique combinatoire
fonctions simples : addition …
• logique séquentielle
fonctions plus sophistiquées : mémoire ...
• introduction à l'assembleur

2ième partie : carte mère et périphériques


• carte mère : chipset, bus, connecteurs …
• périphériques d’entrée : clavier, souris …
• périphériques de sortie : écran, imprimante …
• périphériques d’entrée sortie : disque dur, modem ...
IUT Informatique Architecture des ordinateurs 2
Calais
Période : 1er semestre (16 semaines)

16 Cours

8 TDs :
• manipulation de nombres binaires
• logique combinatoire
• logique séquentielle

8 TPs :
• programmation assembleur

2 DS + 1 contrôle TD + 1 contrôle TP

IUT Informatique Architecture des ordinateurs 3


Calais
1 Introduction

1.1 Objectif de la première partie du cours


Couple processeur / mémoire :
• utilisation des opérations logiques de base : ET, OU, NON
• niveaux logique et fonctionnel (circuits logiques et équations)
• réalisation d’unités de traitement primitives
• assemblage de ces unités pour préciser l’organisation de l’ordinateur

IUT Informatique Architecture des ordinateurs 4


Calais
1.2 Historique de l’informatique

… agrémenté de quelques « phrases célèbres » en rouge …

Références :
– « Préhistoire et histoire des ordinateurs » de Robert Ligonnière, Robert
Laffont, 1987
– http://www.scedu.umontreal.ca/histoiredestec/histoire/tdmhiste.htm (offline ...)
– http://histoire.info.online.fr
– http://dmawww.epfl.ch/~delay/projet3 (offline ...)

1.2.1 Du manuel à la mécanique

IUT Informatique Architecture des ordinateurs 5


Calais
L’homme a toujours cherché à s’aider pour le calcul :

-500 : premiers outils de calcul, l ’abaque et le boulier

IUT Informatique Architecture des ordinateurs 6


Calais
-300 : Aristote définit la logique

1580-1617 : J. Napier invente les logarithmes + nombres décimaux


+ techniques de multiplication et division (bâtons de Napier)

1623 : Cylindres de Schickard ( + idée d ’utiliser des roues dentelées)

1673 : Disques de Morland

IUT Informatique Architecture des ordinateurs 7


Calais
1624 : Schickard esquisse la première calculatrice

1642 : Blaise Pascal invente la pascaline

IUT Informatique Architecture des ordinateurs 8


Calais
IUT Informatique Architecture des ordinateurs 9
Calais
1694 : machine de Leibniz (multiplication et division)

IUT Informatique Architecture des ordinateurs 10


Calais
1820 : C.X. Thomas invente l’arithmomètre (6 à 20 chiffres)
• 1 500 exemplaires vendus de 1823 à 1878

IUT Informatique Architecture des ordinateurs 11


Calais
1937 : C. Herzstark invente la Curta
• Curta I : 80 000 exemplaires vendus de 1947 à 1970
• Curta II : 60 000 exemplaires vendus de 1954 à 1970

IUT Informatique Architecture des ordinateurs 12


Calais
Historique de l ’informatique
1.2.2 De la mécanique à l’électromécanique

IUT Informatique Architecture des ordinateurs 13


Calais
1833 : Babbage imagine une machine analytique contenant les concepts
d’unité de calcul, mémoire, registre et entrée des données par carte perforée

1840 : Ada Lovelace, collaboratrice de Babbage définit le principe


d’itérations successive dans l’exécution d’une opération et nomme ce
processus algorithme en l’honneur du mathématicien arabe Al Khowarizmi

IUT Informatique Architecture des ordinateurs 14


Calais
1854 : Boole démontre que tout processus logique est décomposable en une
suite d’opérations logiques (ET, OU, NON) appliquées sur 2 états (0-1, V-F, ...)

1884 : H. Hollerith crée une tabulatrice à cartes perforées pour faire traiter le
recensement américain de 1890, c’est la 1ière machine à traiter l’information

IUT Informatique Architecture des ordinateurs 15


Calais
1896 : H. Hollerith crée la firme Tabulating Machine Corporation

1904 : J. Fleming invente le premier tube à vide (la diode)

1907 : L.D. Forest invente la triode

1919 : Eccles et Jordan inventent le basculeur (flip-flop ou circuit bi-stable)

1924 : Tabulating Machine Corporation est renommée


International Business Machine

IUT Informatique Architecture des ordinateurs 16


Calais
1937 : A.M. Turing résout des problèmes mathématiques à l’aide d ’une bande
de papier, de pions et d ’un trombone ! C’est la machine de Turing

1938 : Shannon dans sa thèse fait le parallèle entre circuit électrique et algèbre
booléenne. Il définit le chiffre binaire : bit (BInary digiT)

1938 : K. Zuse crée le Z1, ordinateur binaire programmable mécanique !

1939 : Z2, une partie de la mécanique est remplacée par des relais téléphoniques

IUT Informatique Architecture des ordinateurs 17


Calais
1941 : J. Atanasoff et C. Berry créent le 1er calculateur binaire basé sur
l’algèbre de Boole. L’ABC est considéré comme le premier ordinateur mais
son programme n’est pas stocké en mémoire

1941 : Z3, premier calculateur avec programme enregistré. Mémoire : 64


nombres de 22 bits, puissance : 4 +/s ou 1 x en 4s

IUT Informatique Architecture des ordinateurs 18


Calais
1943 : H. Aiken crée le Mark I calculateur électromécanique (3000 relais,
800km de câbles) dont le fonctionnement est proche de la machine imaginée par
Babbage

1943 : Thomas Watson, IBM : « Je pense qu’il y a un marché mondial pour au
moins 5 ordinateurs. »
1945 : un insecte coincé dans la Mark I bloque son fonctionnement. La
mathématicienne G.M. Hopper décide que tout ce qui arrêtera le bon
fonctionnement d ’un programme s’appellera BUG.
1945 : J. Von Neuman travaillant sur le projet ENIAC définit ce que devrait être
un ordinateur à programme enregistré : architecture de Von Neuman
IUT Informatique Architecture des ordinateurs 19
Calais
Historique de l ’informatique
1.2.3 L’électronique

IUT Informatique Architecture des ordinateurs 20


Calais
1946 : P. Eckert et J. Mauchly créent l’ENIAC. Particularités : 18 000 tubes, 30
tonnes, 72 m2, 140 KW, 100 kHz, 330 x/s

IUT Informatique Architecture des ordinateurs 21


Calais
1947 : invention du transistor dans les laboratoires de Bell Telephone
1948 : Newman et Williams créent le Manchester Mark I. Particularité : mémoire à
tubes cathodiques
1949 : revue Popular Mechanics : « Alors que le calculateur ENIAC est équipé de
18000 tubes à vide et pèse 30 tonnes, les futurs ordinateurs de l’an 2000 ne
devraient avoir que 1000 tubes à vide et ne peser que 1,5 tonnes. »
1950 : M.V. Wilkes invente l ’assembleur (avant on programmait en binaire)
1951 : G.M. Hopper invente le premier compilateur A0 générant un
programme binaire à partir d’un code source
1953 : invention de la mémoire à tores de ferrite

IUT Informatique Architecture des ordinateurs 22


Calais
1956 : TRADIC le premier ordinateur à transistors par Bell amorce la seconde
génération d ’ordinateurs

1956 : 1er disque dur, le RAMAC 305 par IBM (50 disques de 61 cm - 5 Mo)

1957 : J. Backus d ’IBM crée le langage FORTRAN

IUT Informatique Architecture des ordinateurs 23


Calais
1958 : 1er ordinateur commercial entièrement transistorisé par S. Cray

IUT Informatique Architecture des ordinateurs 24


Calais
1958 : 1er circuit intégré par Texas Instruments

1958 : 1er modem par Bell

1958 : 1er jeu vidéo (très similaire au jeu pong par Atari en 1972)

1960 : langage Cobol

1962 : P. Dreyfus invente le mot informatique

1964 : langage Basic

IUT Informatique Architecture des ordinateurs 25


Calais
1965 : G. Moore écrit que la densité des circuits intégrés doublera tous les 18
mois (loi de Moore)

1966 : première console de jeux vidéo, la Magnavox Odyssey I

1967 : plans de l’ARPANET (ancêtre de l ’internet)

1967 : premier lecteur de disquettes par IBM

IUT Informatique Architecture des ordinateurs 26


Calais
1968 : D.C. Engelbart fait la démonstration d’un environnement graphique avec
fenêtres utilisant une souris.

1968 : HP présente sa première calculatrice de bureau programmable, la HP 9100


(20 kg, 5000 $)

1968 : langage Pascal

1969 : naissance d ’Unix grâce à K. Thompson et B. Kernighan

1970 : K. Thompson crée le langage B pour Unix

IUT Informatique Architecture des ordinateurs 27


Calais
1971 : Intel vend le premier microprocesseur : Intel 4004 (4 bits, 108 kHz, 200$)

1971 : Apparition de l’ordinateur Kenback-1 pour 750$ en kit !

1971-1973 : transformation du langage B (interprété) en langage C (compilé)

IUT Informatique Architecture des ordinateurs 28


Calais
1972 : R. Tomlinson crée un logiciel de courrier électronique pour ARPANET
1972 : premier langage orienté objet, SmallTalk
1972 : B. Gates et P. Allen fondent la compagnie Traf-O-Data
1973 : apparition du mot microcomputer (micro-ordinateur)
1975 : Traf-O-Data devient Micro-Soft
1976 : S. Jobs et S. Wozniak créent l ’Apple Computer et fondent Apple

1977 : Ken Olson, DEC : « Il n’y a aucune raison pour que tout le monde
veuille un ordinateur à la maison »
IUT Informatique Architecture des ordinateurs 29
Calais
Avril 1981 : Xerox vend le Star 8010. Caractéristiques : Ram 1 Mo, DD 8 Mo,
interface Ethernet, interface graphique, souris 2 boutons, Drag&Drop, copier-
coller, menus contextuels, tableur, traitement de texte WYSIWYG, et messagerie
électronique. Problème : 17 000 $
Il faudra 10 ans à Apple et 15 ans à Microsoft pour faire aussi bien !

IUT Informatique Architecture des ordinateurs 30


Calais
Août 1981 : IBM lance le 5150 Personal Computer. Caractéristiques : RAM
640Ko, lecteur de disquettes 5’’25, système PC-DOS 1.0 pour 3 000 $ (version
CGA 16 couleurs pour 6000 $). Windows 1.0 sortira en novembre 1985.
Il n’apporte rien de nouveau et pourtant ...

1981 : Bill Gates, Microsoft : « 640Ko devrait être suffisant pour tout le
monde. »
IUT Informatique Architecture des ordinateurs 31
Calais
Janvier 1983 : Apple lance le Lisa. Caractéristiques : µP 68000 à 5Mhz, 1 Mo
RAM, 2 Mo ROM, écran graphique 12’’ 720x364, 2 x 5’’25, DD 5 Mo avec
interface graphique et souris. 10 000 $
Janvier 1984 : Apple lance le Macintosh. Caractéristiques : µP 68000 à 8Mhz,
128Ko RAM, 64 Ko ROM, 3’’50, écran N&B 9’’ 512x384 avec interface
graphique et souris. 2 500 $

Loi de Wirth : « Les logiciels deviennent plus lents de manière plus rapide que
le matériel ne devient plus rapide. »
IUT Informatique Architecture des ordinateurs 32
Calais
Historique de l’informatique

FIN

IUT Informatique Architecture des ordinateurs 33


Calais
1.3 Positionnement du problème
On souhaite construire un ordinateur basé sur l’utilisation de la base 2
Problèmes :
• représentation des nombres
• réalisation des opérations arithmétiques :
• + et - : facile en entier et en réel
• x : plus dur ...
• / : efficacité difficile à obtenir en entier, ardu en réel
• séquenceur
• intégration

IUT Informatique Architecture des ordinateurs 34


Calais
1.4 Principes fondamentaux
Tous les ordinateurs sont fondés sur les mêmes principes de base :
• programmes / données
• processeur / mémoire / périphériques
• informations codées en binaire
• traitements effectués en binaire

Pourquoi la base 2 ?
• Simple
• générale

Depuis l ’ENIAC, seule la technologie a changée :


lampe à vide - transistor - circuit intégré - microprocesseur
d ’où : plus rapide, plus petit, moins gourmand, plus fiable, moins coûteux

IUT Informatique Architecture des ordinateurs 35


Calais
1.5 Définitions
Définition 1
Un processeur est un élément qui exécute des traitements. Les traitements à
exécuter sont indiqués par les instructions du programme exécuté. Les traitements
s’appliquent sur des données et fournissent également des résultats.

Définition 2
La mémoire centrale contient les programmes exécutés par le processeur
ainsi que les données du programme et ses résultats.

Données

Programme Processeur

Mémoire Résultats

IUT Informatique Architecture des ordinateurs 36


Calais
2 Logique booléenne
2.1 Représentation des valeurs booléennes
• 0 : 0 volt = masse
• 1 : +5 volts = alimentation

2.2 Les portes logiques


2.2.1 Fonction NON (inverseur)
Elle donne le complémentaire d ’une valeur logique.
a s
a s a s
1 0 1
1 0
symbole usuel symbole normalisé ANSI table de vérité

Notation : s  a, s  a
IUT Informatique Architecture des ordinateurs 37
Calais
2.2.2 Fonction ET
Un ET est vrai si ses deux entrées sont vraies.

a
a b s
a s s 0 0 0
b b &
0 1 0
1 0 0
Notation : s  a.b, s  a  b 1 1 1

2.2.3 Fonction OU
Un OU est faux si ses deux entrées sont fausses.

a a b s
a s s 0 0 0
b b 1
0 1 1
1 0 1
Notation : s  a  b, s  a  b 1 1 1

IUT Informatique Architecture des ordinateurs 38


Calais
2.2.4 Fonction NON-ET ou NAND
Un NON-ET est un ET complémenté. Son résultat est faux si ses deux
entrées sont vraies.
a
a b s
a s s 0 0 1
b b &
0 1 1
1 0 1
Notation : s  a.b, s  a  b 1 1 0

2.2.5 Fonction NON-OU ou NOR ou NI


Un NI est un OU complémenté. Son résultat est vrai si ses deux entrées
sont fausses.
a a b s
a s s 0 0 1
b b 1
0 1 0
1 0 0
Notation : s  a  b, s  a  b 1 1 0

IUT Informatique Architecture des ordinateurs 39


Calais
2.2.6 Fonction OU-EXCLUSIF
Un OU-EXCLUSIF est vrai si ses deux entrées ont des valeurs différentes.
Il permet de « tester » si deux valeurs logiques sont différentes.
a b s
a
a s s 0 0 0
b b 1
0 1 1
1 0 1
Notation : s  a  b, s  ab ( a  b  a.b  a.b) 1 1 0

2.2.7 Fonction NI-EXCLUSIF


Un NI-EXCLUSIF est vrai si ses deux entrées ont des valeurs égales. Il
permet de « tester » si deux valeurs logiques sont égales.
a b s
a
a s s 0 0 1
b b 1 0 1 0
1 0 0
Pas de notation particulière (a  b  a.b  a.b) 1 1 1
IUT Informatique Architecture des ordinateurs 40
Calais
2.2.8 Fonctions ET-multiple, OU-multiple, NON-ET-multiple et NI-multiple
Les fonctions ET, OU, NON-ET et NI (NON-OU) se généralisent facilement
à des fonctions ayant un nombre quelconque d ’entrées :
• ET-multiple : vrai (1) si toutes ses entrées sont vraies (1), faux (0) sinon
• OU-multiple : faux si toutes ses entrées sont fausses, vrai sinon
• NON-ET-multiple : faux si toutes ses entrées sont vraies, vrai sinon
• NI-multiple : vrai si toutes ses entrées sont fausses, vrai sinon

IUT Informatique Architecture des ordinateurs 41


Calais
2.2.9 Porte trois-états
La porte trois-états agit en interrupteur.
Elle possède deux entrées et une sortie.
L ’une des entrées contrôle son activité. Si celle-ci vaut 1 alors l ’entrée a est
directement connectée à la sortie s, sinon elles sont déconnectées.
L ’état déconnecté n ’est pas un 0, on le nomme haute-impédance (noté Z).

a s a s c a s
ou 0 0 Z
c c 0 1 Z
1 0 0
c a s 1 1 1
a s 0 0 0
0 1 1
c 1 0 Z
1 1 Z
IUT Informatique Architecture des ordinateurs 42
Calais
L ’intérêt de la porte trois-états est de pouvoir connecter directement deux fils
en évitant tout risque de court-circuit en utilisant un montage de barrière bi-
directionnelle ou transceiver.

IUT Informatique Architecture des ordinateurs 43


Calais
2.2.10 Aspect matériel
Matériellement, les portes se présentent dans des circuits intégrés. Un circuit
en regroupe un certain nombre de même type.
Exemple : le 7400 comporte 4 portes NAND
14 13 12 11 10 9 8

1 2 3 4 5 6 7
IUT Informatique Architecture des ordinateurs 44
Calais
Une porte peut prendre en compte le valeur d’une entrée lorsqu’il y a un
changement d’état logique de cette entrée.
Changement d ’état = front :
• 0 à 1 : front montant
• 1 à 0 : front descendant
Il faut un certain temps pour qu ’une porte logique réagisse à un changement
sur ses entrées : c’est le délai de propagation (environ 10 ns)
Chronogramme réel faisant apparaître ce délai :
1
s0
1 délai de propagation
b0 dans une porte ET
1
a0

IUT Informatique Architecture des ordinateurs 45


Calais
Le délai de propagation d'un circuit est le temps le plus long nécessaire pour
propager un front sur une des entrées vers une des sorties.
Exemple de calcul du délai de propagation :
NON (inverseur) 10ns
ET à 2 entrées 12ns s
OU à 2 entrées 12ns a
NON-ET à 2 entrées 12ns b
NON-OU à 2 entrées 12ns
c t
OU-EXCLUSIF à 2 entrées 13ns
NON-OU-EXCLUSIF à 2 entrées 13ns
ET à 3 entrées 14ns Délai de propagation :
OU à 3 entrées 14ns
b vers t : 10 + 12 + 12 = 34ns
NON-ET à 3 entrées 14ns
NON-OU à 3 entrées 14ns
OU-EXCLUSIF à 3 entrées 15ns
NON-OU-EXCLUSIF à 3 entrées 15ns

IUT Informatique Architecture des ordinateurs 46


Calais
Chronogrammes en TD : on supposera qu’il n’y a pas de délai de propagation
Exemple de chronogramme :
s
a
b j
i
c t

1
s
0
1
j
0
1
i
0
1
b
0
1
a
0
IUT Informatique Architecture des ordinateurs
temps 47
Calais
2.3 Simplification d’une fonction logique
Pourquoi simplifier ?
• Équation plus lisible
• + facile à construire
• - cher
• + rapide
• - gourmand en énergie
• - de chaleur

Théorème 1
La porte NON-ET est universelle.
Théorème 2
La porte NI est universelle.

IUT Informatique Architecture des ordinateurs 48


Calais
2.3.1 Théorèmes de Boole
- a.0  0
- a.1  a
- a.a  a
- a.a  0
- a0a
- a 1  1
- aaa
- a  a 1

2.3.2 Formules de De Morgan

- a  b  a.b
- a.b  a  b

IUT Informatique Architecture des ordinateurs 49


Calais
2.3.3 Autres propriétés
• ET est associatif et commutatif (comme la multiplication)
• OU est associatif et commutatif (comme l’addition)
• ET est distributive par rapport à OU (comme x par rapport à +)

2.4 Représentation des nombres


2.4.1 Utilisation d'une base quelconque et changement de base
Un nombre N en base B s'écrit :
NB = anan-1an-2 … a1a0 avec 0 ≤ ai ≤ B-1
Exemples : base 2 (binaire) : 011011100102 0 ≤ ai ≤ 1
base 8 (octal) : 12456764706208 0 ≤ ai ≤ 7
base 10 (décimal) : 97468205610 0 ≤ ai ≤ 9
base 16 (hexadécimal) : 3A5E8F16 0 ≤ ai ≤ F
chiffres
IUT Informatique hexadécimaux : 0 1des
Architecture 2 3ordinateurs
456789ABCDEF 50
Calais
Pour trouver la valeur décimale d'un nombre en base B :
N10=anBn + an-1Bn-1 + … + a2B2 + a1B1 + a0

Exemples : 10112 = 1×23 + 0×22 + 1×21 + 1 = 1110


2478 = 2×82 + 4×81 + 7 = 16710
2DB16 = 2×162 + 13×161 + 11 = 73110
Pour passer d'une base à une autre il est toujours possible de passer par la
base 10
Pour passer du binaire à une base de type 2n il suffit de regrouper les bits par
n de la droite vers la gauche afin de retrouver chaque chiffre en base 2 n.
Exemples : soit 101101112 à représenter en
octal (8 = 23) : 10 110 111 2 = 2678
hexadécimal (16 = 24) : 1011 0111 2 = B716

IUT Informatique Architecture des ordinateurs 51


Calais
2.4.2 Représentation des nombres binaires non signés
n bits permettent de représenter 2n valeurs différentes, donc les nombres
entiers positifs de 0 à 2n-1.
Exemple : sur 8 bits on peut représenter 28 = 256 valeurs différentes donc les
entiers de 0 à 255 (0000 0000 à 1111 1111).
2.4.3 Représentation des nombres binaires signés
Pour représenter des nombres entiers positifs et négatifs, on utilise la
représentation en complément à deux.
Pour un nombre entier positif, c’est sa représentation en base 2.
Pour un nombre entier négatif, on obtient sa représentation en 3 étapes :
étape 1 : calculer la représentation binaire de sa valeur absolue
étape 2 : complémenter tous les bits (0→1, 1→0)
étape 3 : ajouter 1 (additionner 1 au nombre obtenu)

IUT Informatique Architecture des ordinateurs 52


Calais
Exemples : -23 sur 8 bits ?
étape 1 : 00010111
étape 2 : 11101000
étape 3 : 11101001
-100 sur 8 bits ?
étape 1 : 01100100
étape 2 : 10011011
étape 3 : 10011100

Avec n bits on représentent les nombres entiers de -2n-1 à 2n-1-1.


La soustraction s’obtient en additionnant les représentations C2.
La représentation C2 n ’a de sens que si on précise qu’on l ’utilise pour ce
nombre, sinon -23 en C2 vaut 233 en binaire (233=256-23).

IUT Informatique Architecture des ordinateurs 53


Calais
Lorsque des opérations sont effectuées sur des nombres codés en
complément à 2, ceux-ci doivent impérativement être codés sur le même
nombre de bits.

4 0100 4 0100
6 0110 -2 1110
10 1010 -6 10010
On ne tient pas compte de la retenue finale

Comment détecter un débordement ?


• si les nombres sont de signes différents, pas de problème
• si ils sont de même signe, le signe du résultat doit être le même, sinon il y
a débordement

IUT Informatique Architecture des ordinateurs 54


Calais
2.4.4 Binaire Codé Décimal (BCD)
BCD permet de coder des nombres entiers positifs.
En BCD, on code chaque chiffre du nombre décimal sur 4 bits et on
concatène ces demi-octets.
Exemple : 4236 devient 0100 0010 0011 0110 en BCD
Avec 4n bits (ou m octets) on code les entiers de 0 à 10n-1 (ou 102m-1)

2.4.5 Représentation des nombres réels


En décimal on écrit par exemple :
52,467 = 5.101 + 2.100 + 4.10-1 + 6.10-2 + 7.10-3
De manière générale, dans la base b, on écrit :
an an-1…a0 , a-1 a-2 … a-p = anbn + an-1bn-1 + … + a0b0 + a-1b-1 + a-2b-2 + … + a-pb-p

IUT Informatique Architecture des ordinateurs 55


Calais
Par exemple en binaire :
10100101,011 = 1.27+1.25+1.22+1.20+1.2-2+1.2-3 = 165+1/4+1/8 = 165,375

Passage de la base 10 vers une base quelconque :


• pour la partie entière, on procède par divisions comme pour un entier
• la partie fractionnaire est multipliée par la base de manière successive en
conservant la partie entière et ce jusqu’à ce qu’elle devienne nulle ou que la
précision maximale soit atteinte.

Exemple 1 : 28,125
28 2
28  11100 0 14 2
0,125 * 2 = 0,25 0,25 * 2 = 0,5 0,5 * 2 = 1,0 0 7 2
1 3 2
0,125  0,001
1 1

IUT Informatique Architecture des ordinateurs 56


Calais
Exemple 2 : 0,3
0,3 * 2 = 0,6 0,6 * 2 = 1,2 0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 =
1,6
0,6 * 2 = 1,2 0,2 * 2 = 0,4 …
0,3  0,010011001100110011001100110011001…
Codage informatique des nombres réels selon la norme IEEE 754 :
Les nombres réels sont normalisés sous la forme 1,… * 2n puis codés sur
32bits.
• le 1er bit code le signe (0 pour + et 1 pour -)
• les 8 bits suivants codent l’exposant auquel on ajoute 127 (permet de coder
des exposants négatifs sans C2)
• les 23 derniers bits codent la partie fractionnaire du nombre (après la
virgule) mais si le 24ième bit est 1 alors on arrondit à la valeur supérieure
(mantisse + 1)
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
IUT Informatique Architecture des ordinateurs 57
Calais
Exemple :
5,3  101,010011001100110011001100110011001…
• normalisation : 1,01010011001100110011001100110011001… * 22
• signe : 0
• exposant : 2 + 127 = 129 soit sur 8 bits 1000 0001
• mantisse sur 23 bits : 01010011001100110011001 mais le 24ième bit est 1
donc la mantisse est 01010011001100110011010
• codage final : 0100 0000 1010 1001 1001 1001 1001 1010
• de manière plus lisible en hexadécimal : 40 A9 99 9A
Remarques :
• l’exposant 0000 0000 signifie que le nombre est dénormalisé
• l’exposant 1111 1111 signifie que ce n’est pas un nombre (NaN)
• les exposant sont donc compris entre –126 et 127.
IUT Informatique Architecture des ordinateurs 58
Calais
2.4.6 Unités de stockage
• unité de base : le bit (0 ou 1)
• unité usuelle : l'octet (1 octet = 8 bits)
• kilooctet : 1 ko = 1024 octets
• mégaoctet : 1 Mo = 1024 Ko
• gigaoctet : 1 Go = 1024 Mo
• téraoctet : 1 To = 1024 Go

IUT Informatique Architecture des ordinateurs 59


Calais
3 Logique combinatoire
3.1 Introduction
Objet : étude des fonctions logiques du type x=f(a,b,c,…).
Note : le temps n’intervient pas dans l’équation.
La logique combinatoire permet la réalisation des fonctions de base d’un
ordinateur.

Définition 3 : entrée
Valeur logique fournie au circuit et à partir de laquelle est
déterminée la sortie du circuit.

Définition 4 : entrée de donnée


Entrée ayant un rôle de valeur à traiter par le circuit.

IUT Informatique Architecture des ordinateurs 60


Calais
Définition 5 : entrée de contrôle
Entrée ayant un rôle de modification / spécification du
traitement réalisé par le circuit.

Définition 6 : sortie
Valeur logique résultat de l’activité du circuits sur ses entrées.

Remarque : similitude conception d’un programme / circuit logique


Étant donnés des entrées et les résultats qui doivent être
obtenus, on conçoit un programme ou un circuit logique passant des
unes aux autres.

IUT Informatique Architecture des ordinateurs 61


Calais
3.2 Exemples de circuits combinatoire
3.2.1 Additionneur
Réalise l’addition de deux nombres entiers sur n bits.
Le résultat est fourni sur n+1 bits, le bit supplémentaire étant un bit de
retenue.

C=A+B

B +

IUT Informatique Architecture des ordinateurs 62


Calais
3.2.2 Multiplexeur et démultiplexeur

• Le multiplexeur transmet plusieurs signaux en


entrée sur un seul fil en sélectionnant une des e0 0
entrées à transmettre en sortie.
e1 1
1 s = e1
• Une entrée de contrôle réalise la sélection. e2 1

e3 0 1
0
• 2n entrées de donnée n entrées de contrôle
c0
c1
• Les n bits de contrôle ( 0 à 2n-1 ) = numéro de
l’entrée à sélectionner

IUT Informatique Architecture des ordinateurs 63


Calais
Démultiplexeur = rôle inverse du multiplexeur : choisir la sortie vers laquelle
transmettre l’entrée

s0

s1
e
s2 = e

1 s3
0

c1 c
0

IUT Informatique Architecture des ordinateurs 64


Calais
3.2.3 Décodeur et encodeur

s0 = 0
• Décodeur : n entrées et 2n sorties
s1 = 0
e0 1 s2 = 0
s3 = 0
• Les n bits en entrée codent une valeur de 0 à 2n- e1 0 s4 = 0
1
e2 1 s5 = 1
s6 = 0
s7 = 0
• La sortie ayant ce numéro passe à 1 (les autres
0)

• Le décodeur est un élément essentiel dans la


réalisation de la mémoire.

IUT Informatique Architecture des ordinateurs 65


Calais
Encodeur : rôle inverse du décodeur
e0 0
e1 0
• 2n entrées et n sorties
e2 0 s0 = 0
e3 0
s1 = 1
• Une seule entrée est à 1 e4 0
e5 0 s2 = 1
e6 1
e7 0
• Les n bits en sortie codent le numéro de
l’entrée qui est à 1

IUT Informatique Architecture des ordinateurs 66


Calais
3.3 Méthodologie de réalisation d’un circuit combinatoire

À partir des spécification du circuit à réaliser :

1 identifier les entrées et les sorties du circuit en distinguant les entrées de


donnée des entrées de contrôle

2 donner la table de vérité de chacune des sorties en fonction des entrées

3 pour chacune des sorties, en fonction de la table de vérité, obtenir une


équation logique simplifiée au moyen d’un tableau de Karnaugh

4 dessiner le schéma logique du circuit

IUT Informatique Architecture des ordinateurs 67


Calais
3.3.1 Tableau de Karnaugh
• permet de trouver l’équation logique d’une sortie d’un circuit en regroupant les
cases contenant la valeur 1
• obtenu à partir de la table de vérité

Exemples :
• 2 entrées : tableau de Karnaugh de s Entrées dans le même ordre
que dans la table de vérité
a b s
0 0 0 a\b 0 1
0 1 1 0 0 1
1 0 1 1 1 0
1 1 0

IUT Informatique Architecture des ordinateurs 68


Calais
• 4 entrées a1a0b1b0 (en fait 2 nombres A et B) : tableau de Karnaugh de s

a1 a0 b1 b0 s
0 0 0 0 0 0 Entêtes de ligne et de colonnes
1 0 0 0 1 1 codées dans l’ordre croissant du
2 0 0 1 0 0
codage de Gray
3 0 0 1 1 1
Entrées 4 0 1 0 0 1
a1a0\b1b0 00 01 11 10
toujours 5 0 1 0 1 0
6 0 1 1 0 1 00 0 1 1 0
codées dans 7 01 1 0 0 1
0 1 1 1 0
l’ordre 8 1 0 0 0 0 11 1 0 0 1
croissant du 9 1 0 0 1 1 10 0 1 1 0
codage 10 1 0 1 0 0
binaire 11 1 0 1 1 1
(ici de 12 1 1 0 0 1
0000 à 13 1 1 0 1 0
14 1 1 1 0 1
1111)
15 1 1 1 1 0
IUT Informatique Architecture des ordinateurs 69
Calais
• Nombres croissants sur 3 bits selon ….
le codage binaire classique : on ajoute 1 à chaque fois
000 001 010 011 100 101 110 111
le codage de Gray :
1) 2 nombres consécutifs ont un seul bit qui les différencie
2) Trouver le nombre suivant consiste à inverser le bit le plus à droite possible
(vérifier que le codage obtenu n’a pas déjà été utilisé par un nombre précédent)
000 001 011 010 110 111 101 100
001:OK 000:NON 010:OK 011:NON 111:OK 110:NON 100:OK
011:OK 000:NON 101:OK
110:OK
• Remarque :
• Le premier et le dernier nombre ont également un seul bit qui les
différencie

IUT Informatique Architecture des ordinateurs 70


Calais
• Pourquoi le codage de Gray pour les tableaux de Karnaugh ?
Le codage des entrées de 2 cases voisines ont un seul bit qui les différencie, dans
ce cas l’équation leur correspondant se simplifie
Important : La première et la dernière case de chaque ligne et de chaque colonne
sont également considérée comme voisine (un seul bit différencie leur codage)
• exemples
a1a0\b1b0 00 01 11 10
00 0 0 0 0
01 0 0 0 1 s  a1a0b1b0  a1a0b1b0  a0b1b0 (a1  a1 )  a0b1b0
11 0 0 0 1
10 0 0 0 0

a1a0\b1b0 00 01 11 10
00 0 0 0 0
01 0 0 0 0 s  a1a0b0
11 1 0 0 1
10 0 0 0 0
IUT Informatique Architecture des ordinateurs 71
Calais
• Plus le regroupement de cases voisines est grand, plus l’équation résultante est
simple
• Exemples de groupements de 4 cases voisines :

a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 0 1 0 0 00 0 0 0 0
01 0 1 0 0 01 0 1 1 0
11 0 1 0 0 11 0 1 1 0
10 0 1 0 0 10 0 0 0 0

s  b1b0 s  a0b0

a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 1 1 0 0 00 1 0 0 1
01 0 0 0 0 01 0 0 0 0
11 0 0 0 0 11 0 0 0 0
10 1 1 0 0 10 1 0 0 1
s  a0b1 s  a0b0

IUT Informatique Architecture des ordinateurs 72


Calais
• Exemples de groupements de 8 cases voisines :
a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 0 0 0 0 00 1 0 0 1
01 1 1 1 1 01 1 0 0 1
11 1 1 1 1 11 1 0 0 1
10 0 0 0 0 10 1 0 0 1

s  a0 s  b0
• Les groupements ne se font que par 2n cases (2, 4, 8, 16, …)
• Un groupement de 2n cases est valide ssi chaque case du groupement a n
voisins dans ce groupement
• Exemples de groupements non valides :
a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 0 0 0 0 00 0 0 0 1 00 0 1 1 0
01 0 1 1 0 01 1 1 1 0 01 1 1 1 0
11 0 1 0 0 11 1 1 1 0 11 1 1 1 0
10 0 1 0 0 10 0 0 0 0 10 0 0 0 0
22 cases dont 2 n’ont 6 cases (pas une 23 cases dont 5 n’ont que
qu’1 voisin puissance de 2) 2 voisins et une en a 4
IUT Informatique Architecture des ordinateurs 73
Calais
• Les cases contenant 1 peuvent être utilisées plusieurs fois par des groupements
différents pour reconstituer l’équation de la sortie
• Il y a généralement de nombreuses solutions possibles, mais chercher les plus
grands groupements permet de trouver les plus simples
• Exemples complets : a1a0\b1b0 00 01 11 10
00 0 0 0 1
01 0 1 1 0
11 1 1 1 0
10 0 0 0 0

s  a1a0b1  a0b0  a1a0b1b0

a1a0\b1b0 00 01 11 10
00 0 0 0 0
01 1 0 1 1
11 1 1 1 1
10 0 0 0 0

s  a1a0  a0b1  a0b0  a0 (a1  b1  b0 )


IUT Informatique Architecture des ordinateurs 74
Calais
• Dans les exercices, toujours entourer les groupements utilisés dans le tableau de
Karnaugh et indiquer leur correspondance avec un des termes de l’équation (par
une couleur ou un numéro)
• De même, toujours tenter de simplifier l’équation finale
• groupement OU EXCLUSIF :
• alors que le OU correspond à l’union de plusieurs groupements, le OU
EXCLUSIF correspond à l’union moins l’intersection de 2 groupements
• exemples :

a1a0\b1b0 00 01 11 10 s  a1a0b1  a1b1  a0b1 a1a0\b1b0 00 01 11 10


00 0 0 1 1  a1a0b1  b1 (a1  a0 ) 00 0 0 1 1
01 0 0 1 1 01 0 0 1 1
11 1 1 0 0  a1a0b1  b1 a1a0 11 1 1 0 0
10 0 0 1 1  a1a0  b1 10 0 0 1 1

IUT Informatique Architecture des ordinateurs 75


Calais
a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 0 1 0 0 00 0 0 1 0
01 0 1 0 0 01 0 0 0 1
11 1 0 1 1 11 0 0 0 1
10 0 1 0 0 10 0 0 1 0

s  a1a0  b1b0 s  a0b1  b1b0

a1a0\b1b0 00 01 11 10 a1a0\b1b0 00 01 11 10
00 0 0 0 1 00 1 0 1 0
01 0 0 0 0 01 0 0 0 0
11 0 0 0 0 11 0 0 0 0
10 1 1 1 0 10 1 0 0 1

s  a0b1b0  a1a0 s  a0b0  a1a0b1

IUT Informatique Architecture des ordinateurs 76


Calais
3.4 Étude de quelques circuits combinatoires
3.4.1 Semi-additionneur » 1 bit
Table de vérité de la sortie s :

problème 1+1=10 donc 2 bits nécessaires


a b s
Deuxième sortie pour la retenue r : 0 0 0
0 1 1
équations simples : s  a  b, r  ab 1 0 1
a 1 1 0
s
b
a b r
0 0 0
0 1 0
r 1 0 0
1 1 1

IUT Informatique Architecture des ordinateurs 77


Calais
3.4.2 Additionneur sur 2 bits
en entrée : 2 nombres sur deux bits a1a0 et b1b0
en sortie : s1s0 et la retenue r a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
0 0 1 1 0 1 1
Remarques : 0 1 0 0 0 0 1
• entrées à gauche 0 1 0 1 0 1 0
0 1 1 0 0 1 1
• sorties à droite 0 1 1 1 1 0 0
1 0 0 0 0 1 0
• bits dans l'ordre 1 0 0 1 0 1 1
pour lire les nombres 1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

IUT Informatique Architecture des ordinateurs 78


Calais
Tableau de Karnaugh de s0 :
a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
a1a0\b1b0 00 01 11 10 0 0 1 1 0 1 1
00 0 1 1 0 0 1 0 0 0 0 1
01 1 0 0 1 0 1 0 1 0 1 0
11 1 0 0 1 0 1 1 0 0 1 1
10 0 1 1 0 0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

IUT Informatique Architecture des ordinateurs 79


Calais
Tableau de Karnaugh de s0 :
a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
a1a0\b1b0 00 01 11 10 0 0 1 1 0 1 1
00 0 1 1 0 0 1 0 0 0 0 1
01 1 0 0 1 0 1 0 1 0 1 0
11 1 0 0 1 0 1 1 0 0 1 1
10 0 1 1 0 0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
s0  b0 a0 1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

IUT Informatique Architecture des ordinateurs 80


Calais
Tableau de Karnaugh de s0 :
a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
a1a0\b1b0 00 01 11 10 0 0 1 1 0 1 1
00 0 1 1 0 0 1 0 0 0 0 1
01 1 0 0 1 0 1 0 1 0 1 0
11 1 0 0 1 0 1 1 0 0 1 1
10 0 1 1 0 0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
s0  b0 a0  a0 b0 1 0 1 0 1 0 0
1 0 1 1 1 0 1
s0  a0  b0 1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

IUT Informatique Architecture des ordinateurs 81


Calais
a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
Tableau de Karnaugh de s1 : 0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 0 0 0 1
0 1 0 1 0 1 0
a1a0\b1b0 00 01 11 10 0 1 1 0 0 1 1
00 0 0 1 1 0 1 1 1 1 0 0
01 0 1 0 1 1 0 0 0 0 1 0
11 1 0 1 0 1 0 0 1 0 1 1
10 1 1 0 0 1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

s1  a1.a0 .b1  a1.a0 .b1  a1.b1.b0  a1.b1.b0  a1.a0 .b1.b0  a1.a0 .b1.b0

IUT Informatique Architecture des ordinateurs 82


Calais
Tableau de Karnaugh de s1 :
a1a0\b1b0 00 01 11 10
00 0 0 1 1
01 0 1 0 1
11 1 0 1 0
10 1 1 0 0

s1  a1.a0 .b1  a1.a0 .b1  a1.b1.b0  a1.b1.b0  a1.a0 .b1.b0  a1.a0 .b1.b0
s1  a0 (a1.b1  a1.b1 )  b0 (a1.b1  a1.b1 )  a0b0 (a1.b1  a1.b1 )
s1  a0 (a1  b1 )  b0 (a1  b1 )  a0b0 (a1  b1 )
s1  (a0  b0 ).(a1  b1 )  a0b0 (a1  b1 )
s1  a0b0 .(a1  b1 )  a0b0 (a1  b1 )
s1  a0b0  (a1  b1 )
IUT Informatique Architecture des ordinateurs 83
Calais
Tableau de Karnaugh de r : a1 a0 b1 b0 r s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
a1a0\b1b0 00 01 11 10 0 0 1 1 0 1 1
00 0 0 0 0 0 1 0 0 0 0 1
01 0 0 1 0 0 1 0 1 0 1 0
11 0 1 1 1 0 1 1 0 0 1 1
10 0 0 1 1 0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 1 0 0
r  b1.a1  b1.b0 .a0  a1.a0 .b0 1 0 1 1 1 0 1
1 1 0 0 0 1 1
r  b1.a1  a0 .b0 (b1  a1 ) 1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

IUT Informatique Architecture des ordinateurs 84


Calais
3.4.3 additionneur complet sur des données de taille quelconque

• même raisonnement que précédemment : laborieux


• idée : combinaison de plusieurs circuits travaillant sur 1 bit
• avantages : plus facile à réaliser, travail avec une taille de n bits (n quelconque),
conception plus claire, meilleur méthodologie, schéma logique plus clair,
réalisation matérielle du circuit plus simple.
• Circuit primitif : additionneur 1 bit complet
• prise en compte de la retenue précédente :

0111 110

0010 1011
+ 1011 0110
1110 0001

IUT Informatique Architecture des ordinateurs 85


Calais
Tableau de Karnaugh pour r :
Table de vérité :
a\bc 00 01 11 10
0 0 0 1 0
1 0 1 1 1
a b c r s
0 0 0 0 0 r  ac  bc  ab
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0 Tableau de Karnaugh pour s :
1 0 0 0 1
1 0 1 1 0
a\bc 00 01 11 10
1 1 0 1 0 0 0 1 0 1
1 1 1 1 1 1 1 0 1 0

s  abc

IUT Informatique Architecture des ordinateurs 86


Calais
Schéma logique :
s  abc r  ac  bc  ab
a
b

c
r

IUT Informatique Architecture des ordinateurs 87


Calais
Schéma logique d'un additionneur 4 bits constitué d'additionneurs complets :
A B

S
IUT Informatique Architecture des ordinateurs 88
Calais
3.4.4 Unité logique
• deux entrées A et B sur n bits et une sortie S résultat d’une opération logique
• le choix de l’opération est fixé par c1c0 :

c1 c0 s
0 0 A B
0 1 A.B
1 0 A B
1 1 A

• les valeurs de A et B ne sont pas exprimées dans le tableau car elles n’ont
pas d’intérêt ici
• utilisation de n circuits sur 1 bit pour réaliser le circuits sur n bits

IUT Informatique Architecture des ordinateurs 89


Calais
Circuit logique sur 1 bit :
table de vérité : (la même mais sur des données 1 bit)

c1 c0 s
0 0 ab
0 1 a.b
1 0 ab
1 1 a

s  c1.c0 (a  b)  c1.c0 .a.b  c1.c0 (a  b)  c1c0 a

On peut faire le schéma directement à partir de l’équation mais ...

IUT Informatique Architecture des ordinateurs 90


Calais
… il vaut mieux utiliser un multiplexeur :

a
b

c0
c1

IUT Informatique Architecture des ordinateurs 91


Calais
Schéma logique d’une UL sur 4 bits en combinant 4 UL 1 bit :
A B

c1
c0

S
IUT Informatique Architecture des ordinateurs 92
Calais
3.4.5 Décaleur
Remarque :
• un décalage à gauche d’un nombre entier positif représenté en binaire
correspond à une multiplication par deux
• un décalage à droite d’un nombre entier positif représenté en binaire
correspond à une division par deux

Pour un décaleur sur n bits, le iième bit du résultat est soit le bit i-1 soit le bit
i+1 de l’entrée.
décalage à gauche : entrée : 0110 0110
sortie : 1100 1100 si = ei-1
décalage à droite : entrée : 0110 0110
sortie : 0011 0011 si = ei+1

bit 7 bit 0
IUT Informatique Architecture des ordinateurs 93
Calais
Le circuit primitif a donc deux entrées e1 et e0 qui sont respectivement les bits
i+1 et i-1 de l’entrée E pour le circuit logique sur n bits.
Il a également une entrée de contrôle indiquant un décalage à droite (c=0) ou à
gauche (c=1).
c s
0 e1
1 e0

s  ce1  ce0

c
e1
s

e0

IUT Informatique Architecture des ordinateurs 94


Calais
Schéma logique du circuit de décalage sur 4 bits :

c 0

IUT Informatique Architecture des ordinateurs 95


Calais
3.4.6 Conversion BCD en binaire

• on suppose que le nombre BCD est composé de deux chiffres codés sur 2x4 bits
• pour convertir ce nombre en binaire, il suffit de multiplier le chiffre des dizaines
d par 10 et ajouter le chiffre des unités u : s = 10d + u

• on sait faire l’addition mais on ne sait pas multiplier par 10 …

• … mais décaler une donnée binaire d’une position vers la gauche correspond à
une multiplication par deux …

• donc on décompose 10d en 8d + 2d ( x8 = 3 décalages à gauche )

IUT Informatique Architecture des ordinateurs 96


Calais
Schéma logique d’un convertisseur BCD en binaire :
E

0
+

IUT Informatique Architecture des ordinateurs S 97


Calais
3.4.7 Test de validité d’un code BCD
• en entrée une donnée sur 4 bits qui est censée représenter un chiffre en BCD et
en sortie 1 si c’est le cas, 0 sinon ( si les 4 bits ont une valeur > 9 )
• soit b3b2b1b0 les 4 bis en entrée et s la sortie
b3 b2 b1 b0 s
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1 b3 b2 b1 b0 s
0 0 1 1 1 0 x x x 1 s  b3  b2 .b1
0 1 0 0 1 1 0 0 x 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1 b1
1 0 0 1 1 b2
1 0 1 x 0
b3 s
1 1 x x 0

IUT Informatique Architecture des ordinateurs 98


Calais
3.4.8 Comparateur : A = B
• un comparateur sur n bits avec n comparateurs sur 1 bit
• comparateur sur 1 bit : OU-EXCLUSIF ( 1 si les deux entrées sont différentes )
• on compare tous les bits 1 à 1 puis on fait un OU sur les résultats :
A B

s
IUT Informatique Architecture des ordinateurs 99
Calais
3.4.9 Comparateur : A < B (nombres signés)
• A et B sont codés en complément à 2
• si A et B sont de signes différents, le nombre positif est le plus grand
• si A et B sont de même signe, on utilise le comparateur de nombres positifs

Pourquoi la comparaison fonctionne pour deux nombres négatifs ?

• codage C2 sur 4 bits :


0 1 2 … 7 8 9 … 15
0000 0001 0010 … 0111 1000 1001 … 1111
0 1 2 … 7 -8 -7 … -1

IUT Informatique Architecture des ordinateurs 100


Calais
4 Logique séquentielle
4.1 Introduction
4.1.1 Objet
Étude des fonctions logiques du type x(t)=f(entrées,t-1).
Note : le temps intervient dans l’équation.
Grâce à la logique séquentielle, on peut réaliser un circuit de mémorisation
et concevoir complètement un processeur.

Du point de vue du programmeur :


• logique combinatoire = opération arithmétiques et logiques simple
(addition, soustraction, et, ou, décalage, rotation, comparaison)
• logique séquentielle = fonctionnalités nécessitant de mémoriser des données
(affectation, structures de contrôle, séquencement des instructions)

IUT Informatique Architecture des ordinateurs 101


Calais
4.1.2 Quelques définitions
Définition 7 : Un état d’un circuit est une configuration des sorties de
ce circuit.
Les n états d’un circuit sont numérotés de 0 à n-1.
• Exemple : une bascule (définie plus loin) possède deux états ; un
circuit composé de 2 bascules à 4 états différents ; un circuit composé
de m bascules a 2m états différents.

Définition 8 : Une transition est un changement d’état.

Définition 9 : Le graphe de transitions d’un circuit est un graphe dont


les nœuds sont les états possible du circuit, les arcs les transitions
possibles.

IUT Informatique Architecture des ordinateurs 102


Calais
4.1.3 L’oscillateur (ou horloge)
L'oscillateur est l'élément permettant l'introduction de la notion de temps
dans les circuits.
Il est symbolisé par :

Un oscillateur permet d’obtenir un signal carré ayant une fréquence bien


précise, constante au cours du temps et qui peut être élevée (plusieurs
centaines de Mhz).

L’oscillateur le plus simple est une simple porte inverseur bouclant sur
elle-même :

IUT Informatique Architecture des ordinateurs 103


Calais
La fréquence d’oscillation est fixée par le délai de propagation dans la
porte.

Dans un ordinateur, l’oscillateur rythmant ses activités est constitué d’un


quartz.

Le quartz vibre naturellement, avec une grande précision et une grande


constance au cours du temps, quand on lui applique un courant oscillant.

Le quartz vibre à sa fréquence propre qui dépend de sa taille et de la façon


dont il a été taillé.

À partir d’un quartz, on obtient des fréquences sous-multiples à l’aide de


diviseurs de fréquence réalisés à l’aide de compteurs (voir TDs).

IUT Informatique Architecture des ordinateurs 104


Calais
4.2 Les bascules
La bascule est l’élément fondamental de la logique séquentielle.
Elle possède 2 états (0 ou 1).
On peut lire l’état d’une bascule et on peut l’écrire (affecter l’état voulu).

Typiquement, une bascule aura deux entrées et une sortie :


• une entrée de contrôle indiquant si l’on veut lire ou écrire l’état interne
de la bascule ;
• une entrée de donnée utilisée dans le cas d’une écriture spécifiant la
valeur à écrire dans la bascule ;
• une sortie sur laquelle l’état courant de la bascule peut être lu.

IUT Informatique Architecture des ordinateurs 105


Calais
Bascule D :

e
s

L’entrée de contrôle v indique si l’on veut lire ou écrire une valeur.


Si un front apparaît sur v, la donnée présente sur e est écrite sur s, sinon
la sortie n’est pas modifiée.

IUT Informatique Architecture des ordinateurs 106


Calais
Détection d’un front montant sur v :

a
v
b s

Le front est détecté grâce au délai de propagation dans la porte NON.

v
1
a
1
b
s

Front descendant ? ET NI
IUT Informatique Architecture des ordinateurs 107
Calais
0 1 0 1 0 1
e
0 1 s

v 0 1 0

s
1 0
1
1 0 1

IUT Informatique Architecture des ordinateurs 108


Calais
Schéma d’une bascule D déclenchant sur front montant :

e s

v s’

Schéma d’une bascule D déclenchant sur front descendant :

e s

v s’

IUT Informatique Architecture des ordinateurs 109


Calais
4.3 La fonction mémoire
Une bascule est un élément de mémorisation de 1 bit (ou point-mémoire).
L’entrée de contrôle joue le rôle de signal de lecture/écriture (noté r/w).
Un ensemble de bascules est utilisé pour réaliser un registre ou une mémoire.

4.3.1 Le registre
C’est un circuit capable de mémoriser 1 mot.
Les registres sont situés dans le processeur et constituent donc une
mémoire locale au processeur.
Lorsqu’on programme en assembleur, on accède directement aux registres
du processeur (certains registres nécessaires au fonctionnement ne sont pas
accessibles au programmeur).
Un registre de m bits est simplement constitué de m bascules.

IUT Informatique Architecture des ordinateurs 110


Calais
Un registre 3 bits :

Bus de données

Signal
d’écriture

D D D

IUT Informatique Architecture des ordinateurs 111


Calais
4.3.2 La mémoire

Un mot de m bits est mémorisé dans un ensemble de m bascules.

Une mémoire de n mots de m bits est réalisée à l’aide de nm bascules.

Étant donné une adresse, un décodeur sélectionne un mot dans la mémoire,


c’est-à-dire les bascules constituant les bits du mot à accéder.

Un signal d’écriture indique si le contenu du mot-mémoire est modifié


(opération d’écriture en mémoire) ou consulté (opération de lecture).

IUT Informatique Architecture des ordinateurs 112


Calais
Mémoire de 4 mots de 3 bits :
Bus de données

Signal
d’écriture

D D D

D D D

Bus
D D D
d’adresses

D D D

IUT Informatique Architecture des ordinateurs 113


Calais
Bus de données

Signal
d’écriture

D D D

D D D

Bus
D D D
d’adresses

D D D

IUT Informatique Architecture des ordinateurs 114


Calais
Remarque : point de vue du programmeur

La fonction mémoire recouvre la notion de « variable » et d’« affectation »


en programmation.

Une variable simple (de type entier ou caractère) est un mot-mémoire et


est stockée dans un registre ou contenu dans une mémoire.

L’adresse de ce mot correspond au nom donné à la variable dans le


programme.

L’une des tâches du compilateur consiste donc a associer à chaque variable


une adresse en mémoire, ou un registre.

IUT Informatique Architecture des ordinateurs 115


Calais
4.4 Compteurs
4.4.1 Objet
Un compteur est un circuit logique qui cycle parmi tous ses états possibles,
toujours de la même manière.

Pour tout état, il n’existe qu’une seule transition qui l’atteint et une seule
qui le quitte. Le graphe de transition est donc un simple cycle.

Les états du circuit sont matérialisés par des bascules, et les transitions
sont ponctuées par les fronts d’une horloge.

Exemple simple : le feu tricolore


• 3 états : vert allumé, orange allumé, rouge allumé ;
• cycle perpétuel entre ces 3 états, toujours dans le même ordre.
IUT Informatique Architecture des ordinateurs 116
Calais
4.4.2 Conception d’un compteur

Nombre d’états du compteur  nombre de bascules nécessaires.

Pour un circuit à n états (de 0 à n-1), il faut au minimum log2(n-1)


bascules ( x dénote le plus petit entier supérieur ou égal à x).
Remarque : c’est aussi le nombre de bits nécessaires au codage du nombre
n-1 en binaire.

Lorsque le nombre d’états d’un compteur n’est pas une puissance de 2,


certains états du circuit ne seront pas utilisés.
Exemple : compteur à 5 états  nombre de bascules ?
3 (8 états codables donc 3 états inutilisés)

IUT Informatique Architecture des ordinateurs 117


Calais
4.4.2.1 Compteur à 2n états
Réalisons un compteur de 0 à 7 : il y a 8 états donc 3 bascules sont
nécessaires (D0, D1 et D2).

Table de transitions :
t t+1
Etat D2 D1 D0 Etat D2 D1 D0
0 0 0 0 1 0 0 1
1 0 0 1 2 0 1 0
2 0 1 0 3 0 1 1
3 0 1 1 4 1 0 0
4 1 0 0 5 1 0 1
5 1 0 1 6 1 1 0
6 1 1 0 7 1 1 1
7 1 1 1 0 0 0 0
IUT Informatique Architecture des ordinateurs 118
Calais
Pour D2t 1, on a le tableau de Karnaugh :

D2\D1D0 00 01 11 10
0 0 0 1 0 D2t 1  D2  ( D1 .D0 )
1 1 1 0 1

Pour D1t 1, on a le tableau de Karnaugh :

D2\D1D0 00 01 11 10
0 0 1 0 1 D1t 1  D1  D0
1 0 1 0 1
t 1
Pour D0 , on a le tableau de Karnaugh :

D2\D1D0 00 01 11 10
0 1 0 0 1 D0t 1  D0
1 1 0 0 1
IUT Informatique Architecture des ordinateurs 119
Calais
D’où le schéma du compteur de 0 à 7 :

0 0 0 D2
0 0 1 D1
0 1 0 D0

D2 D1 D0

1 0 1 D0
1 1 0 D1
1 1 1 D2

IUT Informatique Architecture des ordinateurs 120


Calais
4.4.2.2 Compteur à un nombre quelconque d’états
Réalisons un compteur de 0 à 9 : il y a 10 états donc 4 bascules sont
nécessaires (D0, D1, D2 et D3).
4 bascules permettent de coder 16 états, donc 6 seront inutilisées.
t t+1
Etat D3 D2 D1 D0 Etat D3 D2 D1 D0
0 0 0 0 0 1 0 0 0 1
1 0 0 0 1 2 0 0 1 0
2 0 0 1 0 3 0 0 1 1
3 0 0 1 1 4 0 1 0 0
4 0 1 0 0 5 0 1 0 1
5 0 1 0 1 6 0 1 1 0
6 0 1 1 0 7 0 1 1 1
7 0 1 1 1 8 1 0 0 0
8 1 0 0 0 9 1 0 0 1
9 1 0 0 1 0 0 0 0 0
10 1 0 1 0 X X X X X
11 1 0 1 1 X X X X X
12 1 1 0 0 X X X X X
13 1 1 0 1 X X X X X
14 1 1 1 0 X X X X X
15 1 1 1 1 X X X X X

IUT Informatique Architecture des ordinateurs 121


Calais
Table de transitions :
t t+1
Etat D3 D2 D1 D0 Etat D3 D2 D1 D0
0 0 0 0 0 1 0 0 0 1
Tableau de Karnaugh de D3t+1 :
1 0 0 0 1 2 0 0 1 0
2 0 0 1 0 3 0 0 1 1 D3D2\D1D0 00 01 11 10
3 0 0 1 1 4 0 1 0 0 00 0 0 0 0
4 0 1 0 0 5 0 1 0 1 01 0 0 1 0
5 0 1 0 1 6 0 1 1 0 11 X X X X
6 0 1 1 0 7 0 1 1 1 10 1 0 X X
7 0 1 1 1 8 1 0 0 0
8 1 0 0 0 9 1 0 0 1
9 1 0 0 1 0 0 0 0 0
10 1 0 1 0 X X X X X
11 1 0 1 1 X X X X X
12 1 1 0 0 X X X X X
13 1 1 0 1 X X X X X D3t 1  D0 D3  D2 D1D0
14 1 1 1 0 X X X X X
15 1 1 1 1 X X X X X

IUT Informatique Architecture des ordinateurs 122


Calais
Table de transitions :
t t+1
Etat D3 D2 D1 D0 Etat D3 D2 D1 D0
0 0 0 0 0 1 0 0 0 1
Tableau de Karnaugh de D2t+1 :
1 0 0 0 1 2 0 0 1 0
2 0 0 1 0 3 0 0 1 1 D3D2\D1D0 00 01 11 10
3 0 0 1 1 4 0 1 0 0 00 0 0 1 0
4 0 1 0 0 5 0 1 0 1 01 1 1 0 1
5 0 1 0 1 6 0 1 1 0 11 X X X X
6 0 1 1 0 7 0 1 1 1 10 0 0 X 0
7 0 1 1 1 8 1 0 0 0
8 1 0 0 0 9 1 0 0 1
9 1 0 0 1 0 0 0 0 0
10 1 0 1 0 X X X X X
11 1 0 1 1 X X X X X
12 1 1 0 0 X X X X X
13 1 1 0 1 X X X X X D2t 1  D2 ( D1  D0 )  D1D0 D2
D2t 1  D2 ( D1D0 )  D1D0 D2
14 1 1 1 0 X X X X X
15 1 1 1 1 X X X X X

D2t 1  D2  ( D1D0 )
IUT Informatique Architecture des ordinateurs 123
Calais
Table de transitions :
t t+1
Etat D3 D2 D1 D0 Etat D3 D2 D1 D0
0 0 0 0 0 1 0 0 0 1
Tableau de Karnaugh de D1t+1:
1 0 0 0 1 2 0 0 1 0
2 0 0 1 0 3 0 0 1 1 D3D2\D1D0 00 01 11 10
3 0 0 1 1 4 0 1 0 0 00 0 1 0 1
4 0 1 0 0 5 0 1 0 1 01 0 1 0 1
5 0 1 0 1 6 0 1 1 0 11 X X X X
6 0 1 1 0 7 0 1 1 1 10 0 0 X X
7 0 1 1 1 8 1 0 0 0
8 1 0 0 0 9 1 0 0 1
9 1 0 0 1 0 0 0 0 0
10 1 0 1 0 X X X X X
11 1 0 1 1 X X X X X
12 1 1 0 0 X X X X X
13 1 1 0 1 X X X X X D1t 1  D3 ( D1  D0 )
14 1 1 1 0 X X X X X
15 1 1 1 1 X X X X X

IUT Informatique Architecture des ordinateurs 124


Calais
Table de transitions :
t t+1
Etat D3 D2 D1 D0 Etat D3 D2 D1 D0
0 0 0 0 0 1 0 0 0 1
Tableau de Karnaugh de D0t+1:
1 0 0 0 1 2 0 0 1 0
2 0 0 1 0 3 0 0 1 1 D3D2\D1D0 00 01 11 10
3 0 0 1 1 4 0 1 0 0 00 1 0 0 1
4 0 1 0 0 5 0 1 0 1 01 1 0 0 1
5 0 1 0 1 6 0 1 1 0 11 X X X X
6 0 1 1 0 7 0 1 1 1 10 1 0 X X
7 0 1 1 1 8 1 0 0 0
8 1 0 0 0 9 1 0 0 1
9 1 0 0 1 0 0 0 0 0
10 1 0 1 0 X X X X X
11 1 0 1 1 X X X X X
12 1 1 0 0 X X X X X
13
14
1
1
1
1
0
1
1
0
X
X
X
X
X
X
X
X
X
X
D0t 1  D0
15 1 1 1 1 X X X X X

IUT Informatique Architecture des ordinateurs 125


Calais
Problème : Les 4 équations ne suffisent pas.
Étant donné que tous les états ne sont pas utilisés, il faut bien initialiser le
circuit pour ne pas démarrer dans un état non utilisé.
2 solutions :
• Ajouter un signal d’initialisation pour démarrer à l’état 0 :
 D3t 1  ( D0 D3  D2 D1 D0 )init
 D t 1  ( D  ( D D ))init
 2 2 1 0
 t 1
 D1  D3 ( D1  D0 )init
 D0t 1  D0 .init
• Modifier la table de transition pour faire évoluer les états non utilisés
vers l’état 0. C’est-à-dire changer tous les X en 0 dans la table. Il faut alors
refaire les tableaux de Karnaugh et les équations.
A faire en exercice ...

IUT Informatique Architecture des ordinateurs 126


Calais
Schéma d’un compteur de 0 à 9 avec initialisation :  D3t 1  ( D0 D3  D2 D1 D0 )init
 D t 1  ( D  ( D D ))init
 2 2 1 0
 t 1
 D1  D3 ( D1  D0 )init
 D0t 1  D0 .init
D3
D2
D1
D0

D3 D2 D1 D0

init
D0
D1
D2
D3
IUT Informatique Architecture des ordinateurs 127
Calais
4.4.3 Feux tricolores
4.4.3.1 Feux tricolores français
Un feu tricolore est un compteur.

Le graphe de transitions est le suivant :

orange
vert 1
0

rouge
2

IUT Informatique Architecture des ordinateurs 128


Calais
Le graphe a 3 états numérotés de 0 à 2.
Le nombre 2 se code 10 en binaire (2 bits) donc il y aura 2 bascules dans
ce circuit.
La table de transitions s’obtient directement à partir du graphe de
transitions :

t t+1
orange D1 D0 D1 D0
vert 1 0 0 0 1
0
0 1 1 0
1 0 0 0
1 1 0 0

rouge
2  D1t 1  D1.D0
 t 1
 D0  D1.D0
IUT Informatique Architecture des ordinateurs 129
Calais
À partir des équations issues de la table de transitions, on dessine le
circuit :
 D1t 1  D1.D0
 t 1
 D0  D1.D0

D1
D0

D1 D0

D0
D1

IUT Informatique Architecture des ordinateurs 130


Calais
Comment allumer les différents feux à partir des valeurs de D0 et de D1 ?

On utilise un décodeur :

s0
s1
e0 s2
s3
e1
s4
e2 s5
s6
s7

IUT Informatique Architecture des ordinateurs 131


Calais
4.4.3.2 Feux tricolores scandinaves ou du royaume-uni
Cycle : vert, orange, rouge, orange, vert, ...
Contrairement aux feux type français, un état ne correspond pas à une
couleur allumée.
C’est un compteur à 4 états (0 à 3), donc il faut 2 bascules pour le circuit.

Graphe de transition :
orange
vert 1
0

rouge
orange rouge
3 2

IUT Informatique Architecture des ordinateurs 132


Calais
orange
vert 1 t t+1
0 D1 D0 D1 D0
0 0 0 1
0 1 1 0
1 0 1 1
rouge
rouge 1 1 0 0
orange
3 2

 D1t 1  D1  D0
 t 1
 D0  D0

IUT Informatique Architecture des ordinateurs 133


Calais
 D1t 1  D1  D0
 t 1
 D0  D0

D1
D0

D1 D0

D0
D1

IUT Informatique Architecture des ordinateurs 134


Calais
4.4.4 Point de vue du programmeur
Un compteur peut déclencher des actions les unes après les autres.

Son rôle est donc de déclencher la réalisation d’une séquence


d’instructions d’un programme.

Un compteur est capable de réaliser un cycle d’activités un nombre fixé de


fois.

C’est un circuit capable de contrôler une boucle pour ; l’indice de la


boucle est alors la valeur courante du compteur.

IUT Informatique Architecture des ordinateurs 135


Calais
4.5 Automates

4.5.1 Un exemple pour commencer


Un feux tricolore peut avoir 2 types de fonctionnement différents :
• de jour : vert, orange, rouge, vert, ... ;
• de nuit : orange, éteint, orange, éteint, ...

Dans ce cas il y a 2 cycles de fonctionnements différents :


impossible à réaliser avec un compteur.

Automates

IUT Informatique Architecture des ordinateurs 136


Calais
4.5.2 Introduction
Un automate est un circuit logique pouvant être dans un certain nombre
d’états.

Plusieurs transitions peuvent entrer ou sortir d’un même état.

Étant dans un certain état, la transition à effectuer est sélectionnée en


fonction de signaux de contrôle.

En fait, du point de vue du graphe de transitions, il est composé de


plusieurs cycles entrelacés.

IUT Informatique Architecture des ordinateurs 137


Calais
4.5.3 Méthodologie de conception d’un automate
1. Déterminer les cycles d’actions de l’automate et les numéroter (0 à m).
2. En déduire le nombre de signaux de contrôle (nb. bits pour coder m
bin.)
3. Déterminer les états de l’automate.
4. Déterminer le nombre de bascules nécessaires à la réalisation de
l’automate : pour n états c’est le nombre de bits pour coder n-1 en binaire.
5. Tracer le graphe de transitions de l’automate.
6. En déduire la table de transitions.
7. Pour chacune des bascules, déterminer l’équation logique de son entrée
à l’aide d’un tableau de Karnaugh.
8. Faire le schéma logique de l’automate.
Cette méthode n’est pas adaptée dans le cas où le nombre de cycles est
infini.
Dans
IUT ce cas,
Informatique on essaie de concevoir
Architecture directement
des ordinateurs le graphe de transitions.138
Calais
L’objectif d’un automate est de séquencer des actions.
Ces actions peuvent être déclenchées de 2 manières différentes :

1. Soit une action (ou des actions) est associée à un état.


C’est-à-dire que tant que l’automate est dans cet état, l’action est réalisée.

2. Soit une action (ou des actions) est associée à une transition (l’automate
arrive ou quitte un état).
Une transition entraîne un front (montant ou descendant selon que l’on
atteint ou que l’on quitte un état) qui déclenche une action.
Ce mode de fonctionnement est utilisé lorsque l’on veut seulement
déclencher une action, c’est-à-dire émettre une impulsion.

IUT Informatique Architecture des ordinateurs 139


Calais
4.5.4 Feux tricolores (suite)
Un feux tricolore peut avoir 2 types de fonctionnement différents :
• de jour : vert, orange, rouge, vert, ... ;
• de nuit : orange, éteint, orange, éteint, ...

2 cycles différents donc 1 bit pour les différencier.


On le note c et on choisit c=0 de jour et c=1 de nuit.

On a 4 états possibles :
• état 0 : vert allumé (le reste éteint) ;
• état 1 : orange allumé (le reste éteint) ;
• état 2 : rouge allumé (le reste éteint) ;
• état 3 : tout éteint.

4 états donc 2 bascules nécessaires.


IUT Informatique Architecture des ordinateurs 140
Calais
éteint
3
1 t t+1
c D1 D0 D1 D0
0 0 0 0 1
0 1 0 0 1 1 0
orange 0 1 0 0 0
vert 1 0 1 1 0 0
0
0 1 0 0 0 1
1 0 1 1 1
1 1 0 0 1
1 1 1 0 1
0 rouge
2 Initialisation du cycle de
jour
Initialisation du cycle de nuit
IUT Informatique Architecture des ordinateurs 141
Calais
t t+1
D1 D0 D1 D0 c\D1D0 00 01 11 10
c
0 0 0 0 1 0 0 1 0 0
0 0 1 1 0 1 0 1 0 0
0 1 0 0 0
0 1 1 0 0
1 0 0 0 1 c\D1D0 00 01 11 10
1 0 1 1 1 0 1 0 0 0
1 1 0 0 1 1 1 1 1 1
1 1 1 0 1

 D1t 1  D1.D0
 t 1
 D0  D1.D0  c

IUT Informatique Architecture des ordinateurs 142


Calais
 D1t 1  D1.D0
 t 1
 D0  D1.D0  c

D1
D0
c

D1 D0

D0
D1

IUT Informatique Architecture des ordinateurs 143


Calais
4.5.5 Distributeur de café

On veut réaliser un automate contrôlant un distributeur de café.


On suppose qu’il distribue du café, avec ou sans sucre, avec ou sans lait.

Il y a donc 4 fonctionnement possibles :


1. fournir du café noir ;
2. fournir du café sucré ;
3. fournir du café au lait ;
4. fournir du café au lait sucré.

IUT Informatique Architecture des ordinateurs 144


Calais
Ces 4 cas correspondent à 4 cycles différents du distributeur.

Les cycles sont numérotés de 0 à 3 (2 bits de codage) :


00 : gobelet, café lyophilisé, eau ;
01 : gobelet, café lyophilisé, sucre, mélangeur, eau ;
10 : gobelet, café lyophilisé, lait lyophilisé, eau ;
11 : gobelet, café lyophilisé, sucre, mélangeur, lait lyophilisé, eau.
On définit les états (certaines actions peuvent être regroupées) :
état 0 : repos (attente d’une commande de boisson)
état 1 : commande de boisson déclenchée
état 2 : donne un gobelet
état 3 : donne du café lyophilisé
état 4 : donne du sucre et un mélangeur
état 5 : donne du lait lyophilisé
état 6 : donne de l’eau
Il y a 7 états (0 à 6) donc 3 bascules seront nécessaires.
IUT Informatique Architecture des ordinateurs 145
Calais
Graphe de transitions :
gobelet

0,1,2,3 0,1,2,3
2
café lyophilisé
0,1,2,3 1
3
0
0
1,3
2

0,1,2,3 4
6
lait 3 sucre et mélangeur
eau 2,3
5

1
IUT Informatique Architecture des ordinateurs 146
Calais
Table de transitions :

t t+1 t t+1
gobelet c1c0 D D D
2 1 0 D D D
2 1 0 c1c0 D D D
2 1 0 D2 D1 D0

00 000 001 10 000 001


0,1,2,3 0,1,2,3
2 00 001 010 10 001 010
café lyophilisé 00 010 011 10 010 011
0,1,2,3 1 00 011 110 10 011 101
3 00 100 xxx 10 100 xxx
0 00 101 xxx 10 101 110
0
1 00 110 000 10 110 000
2 00 111 xxx 10 111 xxx
01 000 001 11 000 001
0,1,2,3 4 01 001 010 11 001 010
6
lait 3 01 010 011 11 010 011
2,3 sucre et mélangeur
eau 01 011 100 11 011 100
5 01 100 110 11 100 101
01 101 xxx 11 101 110
1
01 110 000 11 110 000
01 111 xxx 11 111 xxx

IUT Informatique Architecture des ordinateurs 147


Calais
c1 c0 \D2 D1 D0 000 001 011 010 110 111 101 100
00 0 0 1 0 0 x x x
01 0 0 1 0 0 x x 1
11 0 0 1 0 0 x 1 1
t t+1 t t+1
10 0 0 1 0 0 x 1 x
c1c0 D2 D1D0 D2D1 D0 c1c0 D2 D1 D0 D2 D1 D0
00 000 001 10 000 001
c1 c0 \D2 D1 D0 000 001 011 010 110 111 101 100
00 001 010 10 001 010
00 010 011 10 010 011 00 0 1 1 1 0 x x x
00 011 110 10 011 101 01 0 1 0 1 0 x x 1
00 100 xxx 10 100 xxx 11 0 1 0 1 0 x 1 0
00 101 xxx 10 101 110 10 0 1 0 1 0 x 1 x
00 110 000 10 110 000
00 111 xxx 10 111 xxx c1 c0 \D2 D1 D0 000 001 011 010 110 111 101 100
01 000 001 11 000 001
00 1 0 0 1 0 x x x
01 001 010 11 001 010
01 1 0 0 1 0 x x 0
01 010 011 11 010 011
11 1 0 0 1 0 x 0 1
01 011 100 11 011 100
10 1 0 1 1 0 x 0 x
01 100 110 11 100 101
01 101 xxx 11 101 110
01 110 000 11 110 000
01 111 xxx 11 111 xxx  D2t 1  D1.D0  D2 .D1
 t 1
 D1  D1.D0  D2 .D1.D0  c1.D2 .D1  c1.c0 .D2 .D1
 D t 1  D .D  c .D .D  c .c .D .D
 0 2 0 1 1 0 1 0 2 1

IUT Informatique Architecture des ordinateurs 148


Calais
 D2t 1  D1.D0  D2 .D1
 t 1
 D1  D1.D0  D2 .D1.D0  c1.D2 .D1  c1.c0 .D2 .D1
 D t 1  D .D  c .D .D  c .c .D .D
 0 2 0 1 1 0 1 0 2 1
c1
c0
D2
D1
D0

D2 D1 D0

D0
D1
D2
c0
c1
IUT Informatique Architecture des ordinateurs 149
Calais
L’automate que l’on vient de réaliser est incomplet, que manque-t-il ?
l'initialisation !
Faut-il initialiser à l'aide d'un signal init ou remplacer les X par des 0 dans
la table de transitions et refaire les équations et le circuit ?

Il est impératif d'utiliser un signal init parce que :


• le signal init permet de toujours démarrer à l'état 0 (état de
repos) ;
• remplacer les X par des 0 permet seulement de revenir à l'état 0
lorsqu'on démarre dans un état non géré par l'automate. Mais il
est possible de démarrer dans n'importe quel état valide de
Exemple lorsque les X sont remplacées par des 0 dans les tables :
l'automate !
• feux tricolores : le feux peut démarrer au rouge, au vert ou à
l'orange, ça ne pose aucun problème ;
• distributeur de café : il peut démarrer à l'état 3, c'est-à-dire donner du
café etc. ..., alors que l'on vient seulement de brancher le distributeur !
IUT Informatique Architecture des ordinateurs 150
Calais
 D2t 1  ( D1 .D0  D2 .D1 ) init
 t 1
 D1 ( D1 .D0  D2 .D1 .D0  c1 .D2 .D1  c1 .c0 .D2 .D1) init
 D t 1 ( D .D  c .D .D  c .c .D .D ) init
 0 2 0 1 1 0 1 0 2 1

c1
c0
D2
D1
D0

D2 D1 D0

init
D0
D1
D2
c0
c1 IUT Informatique Architecture des ordinateurs 151
Calais
L’automate que l’on vient de réaliser contrôle les activités du distributeur.
Mais il est intéressant de regarder l’interfaçage avec :
• le circuit donneur d’ordres ;
• le circuit servant les boissons.

La commande des boissons se fait au travers d’un clavier à 4 touches, une


pour chaque boisson :
• c : café ;
• cs : café sucré ;
• cl : café au lait ;
• cls : café au lait sucré.

La distribution se fera grâce à des organes électro-mécaniques fournissant


les différents éléments nécessaires (gobelet, ...).

IUT Informatique Architecture des ordinateurs 152


Calais
Interfaçage de l’automate du distributeur de café :

?
D2 gobelet
D1
café

?
D0
encodeur c1 sucre et mélang.
c0 lait
c eau
cs
cl décodeur
cls

Remarques :
• Le clavier n’émet que des impulsions, il faut donc mémoriser c0 et
c1 une fois générés : une impulsion quelconque déclenche le passage
à l’état 1 et en même temps l’écriture de 2 bascules mémorisant c0 et
c1.
• Le séquencement des opérations de distribution doit être temporisé,
IUT Informatique
puis arrêté au retour à Architecture
l’état de des ordinateurs
repos (0) 153
Calais
4.5.6 Registre à décalage
En combinant le circuit à décalage de la section 3.4.5 et un registre, on
obtient un élément couramment rencontré, un registre à décalage.
C’est un registre dans lequel on peut écrire une donnée, la lire, et la
décaler directement dans le registre.

e3 e2 e1 e0
0 0

c0
c1
w
D D D D

IUT Informatique Architecture des ordinateurs 154


Calais
e3 e2 e1 e0
0 0

c0
c1
w
D D D D

À chaque entrée de donnée des bascules est envoyé un fil du bus de


données et les sorties des 2 bascules l’entourant.
En fonction d’un signal de commande (c1c0), un multiplexeur sélectionne
l’une de ces trois données pour l’écrire dans la bascule :
c1  c0 décalage à gauche

c1  c0 nouvelle valeur
 c c décalage à droite
 1 0
IUT Informatique Architecture des ordinateurs 155
Calais
4.5.7 Sérialiseur / désérialiseur de données

Lorsque l’on doit transmettre une donnée, il est courant d’utiliser un seul
fil et d’envoyer les bits de donnée à la queue-leu-leu : c’est le principe de
la liaison série.
De même on voudrait pouvoir recevoir plusieurs bits les uns après les
autres sur le même fil et reconstituer une donnée de plusieurs bits.
Comment faire ?
On utilise un registre à décalage.
Émission : la donnée est présente dans le registre à décalage et le fil de
transmission est la sortie de la dernière bascule. Il suffit alors, le registre
étant en mode lecture, d’effectuer à chaque impulsion d’horloge un
décalage à droite.

IUT Informatique Architecture des ordinateurs 156


Calais
registre à décalage registre à décalage
4 bits 4 bits

0 1 1 0 x x x x
0 0 1 1 0 x x x
0 0 0 1 1 0 x x
0 0 0 0 1 1 0 x
0 0 0 0 0 1 1 0
Réception ? Décalages à gauche
Comment ne pas perdre la donnée après émission ?
La sortie du registre est également connectée à sa propre entrée
• Associé à un automate dirigeant un compteur et 2 registres, on peut
réaliser un registre à décalage d’un nombre quelconque de positions (utile
pour multiplier ou diviser par 2n)
IUT Informatique Architecture des ordinateurs 157
Calais
4.5.8 Multiplicateur
La multiplication de 2 nombres binaires non signés se résume à des
additions et à des décalages :

En base 10 : En binaire non signé :


11 1 0 1 1 multiplicande
x13 x 1 1 0 1 multiplicateur
33 1011
11 0000
143 1011
1011
1 0 0 0 1 1 1 1 produit

IUT Informatique Architecture des ordinateurs 158


Calais
En binaire non signé :
1 0 1 1 multiplicande
x 1 1 0 1 multiplicateur
1011
0000
1011
1011
1 0 0 0 1 1 1 1 produit

Cette façon de procéder consiste à examiner les bits successifs du


multiplicateur, en commençant par le bit de poids faible.

Si ce bit est à 1, on recopie le multiplicande.

Si ce bit est à 0, on inscrit des 0.

IUT Informatique Architecture des ordinateurs 159


Calais
En binaire non signé :
1 0 1 1 multiplicande
x 1 1 0 1 multiplicateur
1011
0000
1011
+
1011
1 0 0 0 1 1 1 1 produit
Par rapport à la ligne précédente, les nombres qui sont écrits sont décalés
d’un rang vers la gauche.
Lorsque tous les bits du multiplicateur ont été examinés, on les additionne
pour obtenir le produit.
Les additionneurs binaires ne traitent que 2 nombres à la fois, donc au lieu
d’additionner toutes les lignes en une fois, on les additionne 2 à 2 et on
inscrit les sommes intermédiaires dans un registre : l’accumulateur.
IUT Informatique Architecture des ordinateurs 160
Calais
1 0 1 1 multiplicande accumulateur 00000000
x 1 1 0 1 multiplicateur multiplicande 00001011
1 0 1 1 bit du multiplicateur à 1 ; additionner le multiplicande 00001011
à l’accumulateur et décaler le multiplicande à gauche 00010110
0000 bit du multiplicateur à 0 ; 00001011
décaler le multiplicande à gauche 00101100
1 0 1 1 0 0 bit du multiplicateur à 1 ; additionner le multiplicande 00110111
à l’accumulateur et décaler le multiplicande à gauche 01011000
1 0 1 1 0 0 0 bit du multiplicateur à 1 ; additionner le multiplicande 10001111
à l’accumulateur et décaler le multiplicande à gauche 10110000
1 0 0 0 1 1 1 1 produit 10001111

IUT Informatique Architecture des ordinateurs 161


Calais
L’algorithme utilisé est le suivant (n est la taille des données) :

pour i de 0 à n-1 faire


si MT ^ 1 = 1 alors
RES  RES + MD
fsi
décaler MD d’un bit vers la gauche
décaler MT d’un bit vers la droite
fpour

C’est l’algorithme standard de multiplication tel qu’il est enseigné à l’école


primaire.

IUT Informatique Architecture des ordinateurs 162


Calais
Le multiplicateur se compose des éléments suivants :

• un registre à décalage sur n bits pour MT ;


• un registre à décalage sur 2n bits pour MD ;
• un registre 2n bits pour RES ;
• un compteur à n états qui va compter les itérations de la boucle pour ;
• un additionneur 2n bits ;
• un séquenceur qui coordonne les activités de tout ces circuits.

IUT Informatique Architecture des ordinateurs 163


Calais
Le séquenceur doit déclencher les différentes actions à l’intérieur de
la boucle et contrôler la réalisation de la boucle :

initialisation du circuit, c’est-à-dire le compteur et RES ;


• addition de MD à RES ;
• décalage de MT ;
• décalage de MD ;
• arrêter le traitement quand il est fini.
On en déduit les états du séquenceur :
0. inactivité du multiplicateur ;
1. test du bit de poids faible de MT ;
2. décalage de MD et MT ;
3. test du compteur d’itérations.

IUT Informatique Architecture des ordinateurs 164


Calais
0. inactivité du multiplicateur ;
1. test du bit de poids faible de MT ;
2. décalage de MD et MT ;
3. test du compteur d’itérations.

Transition de l’état 0 à l’état 1 : il faut déclencher l’initialisation du circuit.


Transition de l’état 1 à l’état 2 : selon la valeur du bit de poids faible de
MT, il y a addition ou non de MD à RES.
Transition de l’état 2 à l’état 3 : décalage de MT et MD et incrémentation
du compteur.

IUT Informatique Architecture des ordinateurs 165


Calais
Signaux reçus :
• INIT : init. du séquenceur
init, reset, wT, wD
• cpt : valeur courante du décompteur
• f : bit de poids faible de MT 1 f
INIT
Signaux émis : 0 f
• init : init. du décompteur wR
• reset : RES à 0
• wR : signal d’écriture dans RES
• wT : signal d’écriture dans MT cpt = 0 cpt non nul 2
• wD : signal d’écriture dans MD 3
• dT : décalage droite MT
• dD : décalage gauche MD dT, dD, iC

• iC : signal décrémentation décompteur


IUT Informatique Architecture des ordinateurs 166
Calais
dT MT
wT
dD MD
wD

init IC

décompteur
de n à 0

init dD dT wR IC

séquenceur reset
RES
INIT wR

wT wD reset

IUT Informatique Architecture des ordinateurs 167


Calais
Multiplication de nombres signés (en complément à deux) :

La conception est très simple :


• si les deux nombres sont négatif :
• on multiplie leurs compléments à deux
• si l’un des deux est négatif :
• on multiplie son complément à deux par l’autre nombre
• on calcul ensuite le complément à deux du résultat pour rétablir le
signe.

IUT Informatique Architecture des ordinateurs 168


Calais
Schéma de principe :

1x1 1x1

multiplicateur de
nombres positifs

x/-x

IUT Informatique Architecture des ordinateurs 169


Calais
Remarques :

La multiplication, contrairement à l’addition, nécessite de savoir si les


nombres en entrée sont des nombres signés ou pas.

• En assembleur il y a donc deux instructions disponibles pour la


multiplication : l’une signée, l’autre non signée.

• Comme vous l’avez remarqué, la multiplication est une opération bien


plus complexe à réaliser qu’une addition.

• En fait, les premiers microprocesseurs ne disposaient pas d’instruction


de multiplication ; elle devait être programmée en assembleur.

IUT Informatique Architecture des ordinateurs 170


Calais
4.5.9 Conclusion
Pour terminer le chapitre sur la logique séquentielle :

On a vu :
• bascule : élément de base de la logique séquentielle
• registre : mémoire la plus interne au processeur
• mémoire : en fait il y en a de nombreux types (cache, vidéo ...)
• compteur : pour la gestion de boucles de programmes
• automate : pour le séquencement des actions

On a réalisé un circuit nécessitant tout ce qui a été vu :


• multiplication
En fait, tout ce qui est nécessaire à la réalisation d’un processeur est
maintenant connu.

IUT Informatique Architecture des ordinateurs 171


Calais
5 Le processeur
5.1 Introduction
Un microprocesseur est constitué par un assemblage de circuits exécutant
les fonctions de l’unité centrale de traitement d’un micro-ordinateur.
En anglais : CPU = central processing unit.

Définition :
Un microprocesseur est un circuit logique capable, après identification
d’une séquence d’instructions, d’effectuer des traitements de l’information.

IUT Informatique Architecture des ordinateurs 172


Calais
Ce que doit savoir faire un ordinateur :

Problème à résoudre Résolu par


acquisition des données périphériques : clavier, souris, CD,
disque, disquette, scanner, caméra ...

mémorisation des données, du mémoire centrale et registres,


programme à exécuter, des éventuellement disque
calculs intermédiaires ...

réalisation des calculs UAL = unité arithmétique et logique

échanges de données bus internes et externes, unité E/S


synchronisation des opérations horloge et unité de contrôle
coordination de toutes les microprocesseurs et contrôleurs
activités (calculs en cours, bon dédiés
fonctionnement, transferts avec
les périphériques ...)
IUT Informatique Architecture des ordinateurs 173
Calais
Un microprocesseur est un circuit contenant les unités suivantes :
• unité de contrôle, de commande et de synchronisation ;
• unité arithmétique et logique
• mémoire et registres internes
• unité d’entrées/sorties
• bus internes

UAL

Mémoire interne
E/S
et registres

UC

IUT Informatique Architecture des ordinateurs 174


Calais
5.2 Bus internes
Définition :
Un bus est un ensemble de fils qui transportent (en parallèle ou en série)
une information d’un composant à l’autre.
• Mode parallèle : autant de fils que le mot transporté contient de bits.
• Transporter mot sur un bus de taille inférieure : multiplexage
• 3 types de bus rencontrés :
• bus de données
• bus d’adresse
• bus de contrôle
• Les bus se distinguent par :
• largeur
• vitesse
IUT Informatique Architecture des ordinateurs 175
Calais
5.3 UAL
• Circuits nécessaires pour les opérations arithmétiques et logiques
étudiés dans les chapitres précédents

• En fonction de l’opération sélectionnée :


• fournit le résultat
• met à jour un registre d’état pour contrôler si
• résultat = 0
• résultat positif / négatif
• débordement
• retenue
•…

IUT Informatique Architecture des ordinateurs 176


Calais
5.4 Mémoire et registres

• Le microprocesseur contient plusieurs registres et mémoire stockant


données et instructions

• La taille des registres est fonction du type de processeur

• Les registres permettent d’accélérer la vitesse de traitement

• Ils peuvent être synchronisés avec l’UAL

IUT Informatique Architecture des ordinateurs 177


Calais
5.5 Entrées / sorties
• But : échanger des informations avec l’extérieur (nécessaire au
fonctionnement du CPU)

Bus de donnée
Unité d’entrées/
sorties (E/S) Bus d’adresse
Bus de commande

Intérieur du processeur Extérieur du processeur

• L’unité d’E/S assure les liaisons entre bus internes et bus externes
• Les bus d’adresse est unidirectionnel

IUT Informatique Architecture des ordinateurs 178


Calais
5.6 Unité de commande
• « Chef d’orchestre » qui pilote et synchronise les unités du processeur
• Elle est pilotée par une horloge et permet de cadencer l’exécution des
instructions du programme :
• mise en service des circuits concernés (verrous)
• activation des communications (verrous + cellules de commutation)

Définition :
Un verrou est un circuit à n sorties, n entrées de données et une entrée de
contrôle. L’entrée de contrôle autorise ou interdit le transfert des
données vers les sorties.

• Il existe des verrous unidirectionnels (ei si) et des verrous


bidirectionnels (ei si)

IUT Informatique Architecture des ordinateurs 179


Calais
• Exemple : verrou unidirectionnel simple 4 bits
e0 s0
e1 Transfert s0 s1 s2 s3
s1
e2 s2 0 0 0 0 0
e3 s3 1 e0 e1 e2 e3

transfert
• Exemple : transfert du contenu de 2 registres en parallèle :
Registre 0 Verrou Registre 1
e0 R0 R1
D D

e1
D D
transfert

transfert Schéma de principe


IUT Informatique Architecture des ordinateurs 180
Calais
Définition :
Une cellule de commutation (simple) est un circuit à 2 sorties, 2 entrées de
données et une entrée de contrôle. L’entrée de contrôle modifie l’ordre de
connexion des entrées de données aux sorties.

Exemple : cellule de commutation simple 1 bit

e0 s0 c s0 s1
e1 s1 0 e1 e0
1 e0 e1
c

• Il existe des cellules unidirectionnels (ei si) et des cellules


bidirectionnelles (ei si)

IUT Informatique Architecture des ordinateurs 181


Calais
5.7 Modèle de Von Neumann
En 1945 J. Von Neumann (1903-1957) définit les bases de l’architecture
des calculateurs modernes.

• unification des différentes représentations utilisées grâce au codage en


binaire (algèbre de Boole)
• mémorisation des résultats intermédiaires mais surtout des opérations
elles-mêmes
• représentation des opérations élémentaires à effectuer (désignées par
« instructions »)
• ces instructions sont regroupées en « programmes »
• les programmes sont stockés en mémoire (plusieurs exécutions possibles)
• la rupture de séquence donne un « pouvoir de décision » à la machine en
fonction des résultats intermédiaires sans intervention humaine

IUT Informatique Architecture des ordinateurs 182


Calais
5.7.1 Principe général de fonctionnement du microprocesseur

Pour exécuter un programme, le microprocesseur effectue cycliquement :


• lecture d’un code d’instruction en mémoire (fetch)
• reconnaissance de ce code, ou décodage (decode)
• exécution d’un ordre élémentaire (execute)
• positionnement sur le code de l’instruction suivante du programme
En plus de l’accumulateur il faut d’autres registres pour le fonctionnement
du microprocesseur :
• compteur ordinal (pointe sur l’instruction suivante immédiate)
• registre d’instruction
• registre d’état
• registre de sommet de pile (adresse de retour pour les sous-programmes)
• registres à usage plus général (adresse, donnée, buffer, …)
IUT Informatique Architecture des ordinateurs 183
Calais
5.7.2 Séquencement des instructions
Une instruction est découpée en plusieurs micro-opérations / micro-
commandes

1. Lire l’instruction
2. Calculer l’adresse de la prochaine instruction, incrémenter le CO
3. Décoder l’opération
4. Calculer les adresses des opérandes si nécessaire
5. Lire les opérandes éventuelles depuis la mémoire
6. Exécuter l’instruction
7. Calculer l’adresse du résultat
8. Ranger le résultat en mémoire

IUT Informatique Architecture des ordinateurs 184


Calais
5.7.3 Instruction
Définition :
Une instruction est un ordre élémentaire exécutable par un microprocesseur
donné (en un certain nombre de cycle d’horloge).

Définition :
Ces instructions sont spécifique à un microprocesseur et leur nombre est
limité. Leur ensemble constitue le jeu d’instruction du microprocesseur.
Classification des instructions :
• instructions de transfert
• instructions arithmétiques
• instructions logiques
• instructions de commande
• instructions d’entrée/sortie

IUT Informatique Architecture des ordinateurs 185


Calais
Les instructions peuvent affecter ou utiliser le contenu d’un ou plusieurs
mot-mémoire, un ou plusieurs registres, ou aucun d’entre-eux.

Définition :
Un opérande est un élément de la mémoire concerné par l’exécution d’une
instruction donnée.

On distingue 3 principaux types d’instruction :


• sans opérandes
• monadiques (un opérande)
• dyadiques (deux opérandes)

Un code est associé à chaque instruction d’un programme (code-


instruction).
En général on a :
code opération opérande 1 opérande 2

IUT Informatique Architecture des ordinateurs 186


Calais
Définition :
Un mnémonique est une abréviation permettant de se rappeler du code et
de la fonction d’une instruction. Le langage assembleur est directement
basé sur ces mnémoniques.
Définition :
Un programme est une liste de codes-instructions implantés en mémoire et
permettant de résoudre un problème prédéterminé.

IUT Informatique Architecture des ordinateurs 187


Calais
5.8 Réalisation d'une unité de commande
5.8.1 UC micro-programmée
Les différentes phases (chargement, exécution ...) correspondent à des
micro-opérations déclenchées pour exécuter l'instruction.
code-instruction séquence de micro-opérations
déclenche
Idée : mémoire non-volatile (nanomémoire)
code-instruction adresse séquence de micro-opérations
décodage
Avantages :
• changer le micro-programme = changer les possibilités du microprocesseur
• ajout, correction, custom-design facile (pas de modification des circuits)
Inconvénients :
• nécessite un séquenceur de micro-inst. + accès mémoire : ralentissement

IUT Informatique Architecture des ordinateurs 188


Calais
5.8.2 UC câblée
L'UC est entièrement réalisée sous forme d'un seul circuit logique
séquentiel.

Avantages :
• + rapide que l'UC micro-programmée
• + simple à réaliser et moins de place sur la puce SI jeu d'instruction pas
trop important

Inconvénients :
• circuit rapidement complexe quand le jeu d'instruction augmente
• ajout, modification, suppression d'une instruction : modification complète
du circuit logique

IUT Informatique Architecture des ordinateurs 189


Calais
UC micro-programmée UC câblée
lente rapide
évolutive non évolutive
jeu d'instructions important jeu d'instruction réduit
pas (trop) de problème de réalisation sinon réalisation = usine à gaz

micro-processeurs lents micro-processeurs (très) rapides


disposant d'un jeu d'instruction complet disposant d'un jeu d'instruction réduit
contenant éventuellement des contenant des instructions simples
instructions complexes et peu nombreuses

processeurs CISC processeurs RISC


Complex Instruction Set Computer Reduced Instruction Set Computer

IUT Informatique Architecture des ordinateurs 190


Calais
Les processeurs construits par Intel et AMD utilisent un compromis
• micro-noyau RISC : très compact, très performant, stable dans le temps
• + unité de contrôle micro-programmée utilisant non pas la nanomémoire,
mais le(s) micro-noyau(x)
• cette solution cumule les avantages sans (trop de) perte de vitesse
d'horloge
• schéma de principe d'une UC simple :
Registre
code opération opérande 1 opérande 2
instruction

décodeur d'instructions horloge


externe

séquenceur cablé, µprogrammé ou hybride

Microcommandes : UAL, verrous, cellules de commutation


IUT Informatique Architecture des ordinateurs 191
Calais
5.8.3 Rôle de l'UC / échanges sur un bus

• Communication sur un bus : 1 seul émetteur et 1 seul récepteur connectés


Les autres composants ne doivent pas accéder au bus.

• l'UC bloque l'accès au bus aux composants non concernés à l'aide de


verrous ... mais composants internes ET externes

• l'UC agit sur des verrous externes au travers de l'unité E/S

• donc l'UC pilote à la fois l'accès aux bus internes au microprocesseur mais
également aux bus externes

IUT Informatique Architecture des ordinateurs 192


Calais
5.9 Critères de puissance d'un microprocesseur
• vitesses d'horloge interne et externe (sur les bus externes)

• largeur du bus de donnée : taille des mots manipulés en une instruction


• largeur du bus d'adresse : taille de la mémoire gérée
• nombre de registres et de mémoires internes (caches, buffers, ...) qui
réduisent le nombre d'accès en mémoire centrale
• nombre d'instructions et complexité du jeu d'instructions
• nombre de microcommandes exécutées en séquence : + il y en a + il faut
de cycles pour exécuter une instruction, mais une UC simple supporte une
fréquence rapide donc compromis.
• nombre de microcommandes déclenchées en parallèle : duplication
d'unités fonctionnelles pouvant travailler en même temps ... + complexe
mais + performant
• ...

IUT Informatique Architecture des ordinateurs 193


Calais
6 La mémoire
6.1 Définitions
• La mémoire centrale est un ensemble de registres dotés d'une structure
d'accès permettant l'échange entre les registres et les organes extérieurs.
• La capacité d'une mémoire est le nombre de bits que l'on peut mémoriser
dans cette mémoire.
• Le temps d'accès mémoire est le délai qui s'écoule entre une requête de
lecture et la disponibilité de l'information correspondante.
• On appelle emplacement accessible Ei (ou zone de stockage accessible)
l'emplacement unique sur lequel une opération de lecture ou d'écriture est
possible à l'instant t.

IUT Informatique Architecture des ordinateurs 194


Calais
6.2 Types de mémoire

Un premier mode de classification des mémoires peut se faire selon la


structure d'accès dont elles sont dotées.

Il existe 3 familles de structures :


• mémoires séquentielles (ruban perforé, bande magnétique, ...)
• mémoires adressables (mémoire centrale, ...)
• mémoires associatives (sélection par le contenu / prédicat, ...)

IUT Informatique Architecture des ordinateurs 195


Calais
6.2.1 Mémoires séquentielles
Définition :
Une mémoire séquentielle est une mémoire telle que si l'accès à l'instant t à
porté sur l'emplacement Ei alors l'accès à l'instant t+1 porte obligatoirement
sur l'emplacement Ei+1 ou Ei-1 (notion d'accès séquentiel).

Définition :
Une pile est une mémoire séquentielle dont les déplacements (E i Ei+1 ou
Ei Ei-1) sont liés respectivement à la commande d'écriture ou de lecture.

écrire (empiler) lire (dépiler)


Ei Ei Ei+1 Ei lire dans Ei
écrire dans Ei+1 Ei Ei-1

occupé vide occupé vide

IUT Informatique Architecture des ordinateurs 196


Calais
Application au microprocesseur :
Le microprocesseur utilise une pile pour mémoriser les adresses de retour
lors d’appels à des sous-programmes ou à des routines d’interruption.

vide

sommet de pile

occupé

fond de pile

IUT Informatique Architecture des ordinateurs 197


Calais
6.2.2 Mémoires adressables
Définition :
Une mémoire adressable (appelée également à accès direct, à accès
aléatoire - RAM, ou à accès sélectif) est un ensemble de zones de stockage
complété par un mécanisme de sélection capable d’établir l’accès sur
chacune d’elles en un temps indépendant de la position.

• l’accès nécessite de désigner la position sélectionné par une adresse

• le microprocesseur agit sur le contenu de la mémoire par 2 opérations :


• écriture en mémoire : transfère un mot binaire dans un mot mémoire
d’adresse i. La valeur précédemment stockée à l’adresse i est perdue,
« écrasée » par la nouvelle valeur
• lecture en mémoire : délivre une copie du mot binaire stocké à
l’adresse i. La lecture ne modifie pas la valeur du mot en mémoire.

IUT Informatique Architecture des ordinateurs 198


Calais
ROM / RAM :
• ROM (Read Only Memory) ou MEM (Mémoire Morte) : mémoire à
lecture seule
• RAM (Random Access Memory) ou MEV (Mémoire Vive) : mémoire à
accès aléatoire (lecture / écriture)
Les mémoire RAM sont dites « volatiles » car l’information stockée
disparaît lorsque l’on coupe l’alimentation.
On peut également distinguer :
• UVPROM, EEPROM : programmable par l’utilisateur
• PROM à fusibles / jonctions : programmable une seule fois
• RAM série : à accès série
• RAM statique / dynamique : selon le type de rafraîchissement
• ROM + masque : programmable en usine
•…
IUT Informatique Architecture des ordinateurs 199
Calais
Familles et sous-familles de mémoires adressables :
Principales mémoires
adressables

Mémoires mortes Mémoires vives

ROM masque PROM utilisateur RAM RAM Associatives


statiques dynamiques (caches)

PROM fusibles EPROM ou PROM OTPROM ou EPROM


effaçable programmable une fois

UVPROM ou PROM EEPROM ou PROM EEPROM flash effaçable


effaçable aux UV effaçable électriquement électriquement par bloc
par octet
IUT Informatique Architecture des ordinateurs 200
Calais
Espace d'adressage :
• la taille des mots binaires représentant les adresses limite le nombre de
mots auxquels le microprocesseur peut accéder. Si les adresses sont codées
sur m bits alors "l'espace d'adressage" est de 2m mots-mémoire
• dans cet espace d'adressage il faut prévoir non seulement l'accès à la
RAM, mais aussi à la ROM et aux E/S
• exemple : espace d'adressage d'une RAM de M mots, d'une ROM de N
mots et d'un espace mémoire réservé aux entrées sorties
0 mot 0
1 mot 1 RAM
... ...
M-1 mot M-1
M mot M
adresses ... ...
ROM
... ...
M+N-1 mot M+N-1
M+N ...
... ... E/S
2m-1 ...
IUT Informatique Architecture des ordinateurs 201
Calais
• il existe deux méthodes principales pour désigner une adresse :
• linéaire : mots numérotés de 0 à 2m-1
• segmentée : adresse = < n° segment , déplacement >

• pour réaliser cet espace d'adressage il est nécessaire d'utiliser tout un


ensemble de circuits déjà étudiés :
• décodeurs
• multiplexeurs
• démultiplexeurs
• ...

IUT Informatique Architecture des ordinateurs 202


Calais
Aspect matériel :
• le temps d’accès à ces mémoires varie de quelques nanosecondes à
quelques dizaines de nanosecondes
• la mémoire se présente sous forme de boîtiers de différentes capacités et
adressant une certaine taille de mots (1K mots de 1 bit, 256K mots de 8
bits, 1M mots de 32 bits, …)
• chaque boîtier dispose (en général) des broches suivantes :
• une broche de sélection : CS (chip select)
• une broche de lecture/écriture : R/W (read/write) pour les RAM
• broches d0, …, d7, … pour les données
• broches a0, …, a7, … pour les adresses
• éventuellement une broche OE (output enable) de connexion (logique
3 états) des sorties vers l’extérieur (bus de donnée)
• 2 broches pour l’alimentation électrique
IUT Informatique Architecture des ordinateurs 203
Calais
6.2.3 Mémoires associatives :
• la mémoire cache est une mémoire associative présente dans tous les
ordinateurs personnels qui a pour but d’accélérer l’accès aux données (pour
tout type de mémoire)

• son principe repose sur un certain nombre de remarques :


1. Les accès mémoire freinent les microprocesseurs : pendant le temps que
dure un accès en lecture à la mémoire centrale, celui-ci pourrait exécuter
plusieurs instructions
2. Le temps d'accès à la mémoire est fonction de sa technologie et de sa
capacité (à cause du décodage des adresses)
3. Le coût de la mémoire est inversement corrélé à sa vitesse
4. Pendant l'exécution d'un programme, de nombreux accès mémoire
concernent un petit nombre d'adresses, au moins pendant un certain temps
(variables, boucles, ...)

IUT Informatique Architecture des ordinateurs 204


Calais
Idée de la mémoire cache :
• si l'on arrive à accélérer l'accès à ses quelques adresses utilisées de
manière répétitive on va du même coup accélérer l'exécution du
programme
• puisqu'il n'y a que quelques adresses concernées, on peut utiliser une
mémoire de faible capacité mais à faible temps d'accès pour les stocker.
• Même si le coût de ce type de mémoire est élevé, si on l'utilise en petite
quantité, le coût de la machine va augmenter peu mais le rapport
efficacité/prix va lui augmenter fortement
• important : à ces mémoires caches sont associés des algorithmes chargés
de gérer son contenu de manière efficace
• hiérarchie des mémoires rencontrées dans un ordinateur :

Type O(capacité) O(temps d'accès) en ns


registre Octets 1
cache Ko/Mo <5
primaire Mo/Go 10
secondaire Go/To 8000
IUT Informatique Architecture des ordinateurs 205
Calais
6.3 RAM dynamique et RAM statique
Définition :
Une RAM est dite statique (SRAM) si l’information est conservée en
l’absence de signaux de commandes.
• la cellule élémentaire d’une SRAM est constituée de 4 transistor MOS
formant une sorte de bascule RS (différente de la bascule D)

Définition :
Une RAM est dite dynamique (DRAM) si l’information ne peut être
conservée que par l’application répétée de signaux de commande
(rafraîchissement de la mémoire)
• la cellule élémentaire d’une DRAM est constituée d’un seul transistor
MOS jouant le rôle de condensateur : la donnée est stockée sous forme de
charge dans une capacité. Mais le courant de fuite entraîne la nécessité de
recharger le condensateur : rafraîchissement (toutes les 2-4 ms)

IUT Informatique Architecture des ordinateurs 206


Calais
Avantages des SRAM Avantages des DRAM
très rapide très dense
faible consommation moins chère
moins sensible aux bruits et radiations capacités élevées

Dynamique ou statique ?
• Mémoires caches : SRAM
• Mémoires centrales : DRAM

SDRAM ?
• Synchronous DRAM

IUT Informatique Architecture des ordinateurs 207


Calais
6.4 Caractéristiques des mémoires RAM actuelles
6.4.1 Particularités
• DDR SDRAM (Double Data Rate SDRAM)
utilisation des 2 fronts pour transférer les données
• DDRII SDRAM
fréquence accrue + plus faible consommation
• QBM (Quad Band Memory)
utilisation de 2 canaux de 64 bits alternativement
• RDRAM (Rambus DRAM)
concept de mémoire série à 1 ou plusieurs canaux + fréquence élevée
• QDR SDRAM (Quad Data Rate SDRAM)
transfert 2 ou 4 mots en 1 cycle + lectures et écritures simultanées
possible
• QDRII SDRAM
fréquences accrues
IUT Informatique Architecture des ordinateurs 208
Calais
6.4.2 Performances théoriques

DDR DDR RDRAM RDRAM


SDRAM QDR
SDRAM SDRAM SDRAM 4 canaux 4 canaux
PC133 SDRAM
PC2100 PC4000 PC800 PC1066
Largeur bus
64 64 64 64 16 16 2x64
données
Fréquence en
66 133 133 250 800 1 066 1 500
MHz

Débit en Mo/s 508 1 017 2 034 3 814 6 103 8 132 22 888

IUT Informatique Architecture des ordinateurs 209


Calais
6.4.3 Supports physiques
• barette SIMM 32 bits (Single Inline Memory Module)

72 broches – FPM, FPM EDO

détrompeur

IUT Informatique Architecture des ordinateurs 210


Calais
• barette DIMM 64 bits (Double Inline Memory Module)

168 broches - SDRAM

détrompeurs

184 broches – DDR-SDRAM, DDRII-SDRAM, QDR-SDRAM

208 broches - QBM

IUT Informatique Architecture des ordinateurs 211


Calais
• barette RDRAM 16 bits (Rambus DRAM)

184 broches

détrompeurs

IUT Informatique Architecture des ordinateurs 212


Calais
7 Architecture d'un processeur
simple : la petite machine
7.1 Positionnement du problème
Pour réaliser ce processeur, il faut définir :
• la nature des traitements qu'il sera capable d'effectuer
• la taille et/ou le format des opérandes
• la capacité de transfert de données avec l'extérieur
Ces 3 points aboutissent à l'établissement
• du jeu d'instruction du processeur
• de la structure matérielle de la partie opérative
• de la structure matérielle de dialogue avec les circuits extérieurs

IUT Informatique Architecture des ordinateurs 213


Calais
Le processeur est constitué de deux ensembles :
• la partie opérative
• la partie contrôle (séquenceur)

PROCESSEUR

Partie contrôle séquenceur RI

unité de
unité de
Partie opérative gestion de la
traitement Structures d'échange
mémoire
(BUS)

IUT Informatique Architecture des ordinateurs 214


Calais
7.2 Jeu d'instruction
7.2.1 Modes d'adressage
• mnémonique traitement à effectuer, mais il faut préciser quel est le
type des données (valeurs, adresses, registres ...)
il faut préciser "quoi" (traitement) et "où" (mode d'adressage)
• exemple : transfert d'un mot mémoire (MOVE)
1. Charger le registre R1 avec la valeur 05
MOVE #05, R1 R1 05
2. Charger la case mémoire d'adresse (8000)16 avec le contenu de R2
MOVE R2, $8000 M[8000] (R2)
3. Additionner la valeur 05 au contenu de R1, le résultat est dans R1
ADD #05, R1 R1 (R1) + 05
• instruction : ensemble de µcommandes dépendant du mode d'adressage
IUT Informatique Architecture des ordinateurs 215
Calais
• les traitements et les modes d'adressages sont liés à la structure
matérielle du processeur (possibilités de l'UAL, nombre et taille des
registres, ...)
• microprocesseurs 8 bits : destination généralement incluse dans le
mnémonique (ex : ADDA #05)

• microprocesseurs modernes : nombreux modes d'adressage dont


• adressage registre : le registre adressé est précisé dans l'instruction
ex : mise à zéro du registre R1, CLR1 R1 0
• adressage immédiat : l'opérande est inclus dans l'instruction
ex : addition de la valeur 34 avec R2
ADD #34, R2 R2 (R2) + 34
• adressage direct : l'adresse de l'opérande est inclus dans
l'instruction
ex : transfert du contenu de la mémoire à l'adresse (87FF) 16 dans R1
MOVE $87FF, R1 R1 (M[87FF])
IUT Informatique Architecture des ordinateurs 216
Calais
• adressage indirect : le contenu d'un registre ou d'un mot mémoire
représente l'adresse de l'opérande
ex 1 : MOVE R1, *R2 M[R2] (R1)
ex 2 : MOVE *$7AF2, R1 R1 (M[M[7AF2]])
• adressages composés : l'adresse effective de l'opérande est obtenue
par un calcul, généralement de type base + déplacement, où la base
est le contenu d'un registre
7.2.2 Jeu d'instruction de la petite machine
Celui-ci est volontairement réduit dans un but de simplicité, il comprend
un total de 19 instructions (seul le registre A est utilisable pour les
calculs)
• 5 instructions de calcul
• ADD : addition du registre A avec un opérande
• SUB : soustraction de A avec un opérande
• AND : et bit à bit de A avec un opérande
IUT Informatique Architecture des ordinateurs 217
Calais
• OR : ou bit à bit de A avec un opérande
• EOR : ou exclusif bit à bit de A avec un opérande
• 4 instructions de transfert :
• LD : chargement de A avec un opérande
• ST : stockage du contenu de A en mémoire
• PUSHA : empilement du contenu de A
• POPA : dépilement de A

• 5 instructions de rupture de séquence :


• BRA : saut inconditionnel à une adresse donnée
• BSZ : saut si résultat nul
• BSC : saut si retenue
• BSV : saut si dépassement de capacité
• BSN : saut si résultat négatif
IUT Informatique Architecture des ordinateurs 218
Calais
• 5 instructions de haut niveau :
• CALL : branchement à un sous-programme
• RET : retour d'un sous-programme
• ENTER : gestion des paramètres et des variables locales
• LEAVE : libère les paramètres et les variables locales
• END : termine le programme
• Les instructions ont toutes un opérande au plus noté $n ($ pour hexa)

• Le processeur dispose de 4 modes d'adressage :


• mode implicite : pas d'opérande (ex : END)
• mode immédiat : symbole # devant l'opérande (ex : ADD #$05)
• mode direct : aucun symbole devant l'opérande (ex : ADD $05)
• mode basé indexé : noté [RX + $dd] (ex : ADD [RX + $05])

IUT Informatique Architecture des ordinateurs 219


Calais
• Les instructions, les opérandes et les adresses : 8 bits
• Les transferts processeur / mémoire : bus de 8 bits
• Remarque : une adresse de 8 bits ne code que 256 mots mémoire !

7.2.3 Structure des instructions :


• codées sur 2 octets :
• le premier contient le code opération ET le mode d'adressage
(destiné à RI)
• le second précise, selon le mode d'adressage, une valeur, une adresse
(destinée à TA) ou un index (pour faire RX+...)
adresses

i-2 i-1
une instruction i code op. opérande i+1
i+2 i+3

1 mot mémoire = 1 octet


IUT Informatique Architecture des ordinateurs 220
Calais
Les instructions sont classées en 4 groupes fonctionnels :
• instructions de calcul selon le mode :
immédiat : ADD #$dd A A + dd
direct : ADD $dd A A + M[dd]
basé-indexé : ADD [RX+$dd] A A + M[(RX)+dd]
• instructions de transfert selon le mode :
immédiat : LD #$dd A dd
direct : LD $dd A M[dd]
basé-indexé : LD [RX+$dd] A M[(RX)+dd]
ST n'a pas de mode immédiat ! ST #$dd
• instructions de branchement (séquencement) selon le mode :
immédiat : BRA #$dd CP dd
direct : BRA $dd CP M[dd]
basé-indexé : BRA [RX+$dd] CP M[(RX)+dd]
• les instructions de haut niveau et la gestion de la pile sont détaillées plus
loin
IUT Informatique Architecture des ordinateurs 221
Calais
7.2.4 Codage des instructions
• Le premier octet d'une instruction peut être divisé en 2 champs :

7 6 5 4 3 2 1 0

champ opération
INST<6:1> champ d'adressage
INST<7+0>

7 6 5 4 3 2 1 0

instruction groupe

IUT Informatique Architecture des ordinateurs 222


Calais
mode d’adressage

7 6 5 4 3 2 1 0

instruction groupe

Bits 7 et 0 : 00 mode immédiat


01 mode direct
10 mode basé indexé
11 mode implicite

Bits 2 et 1 : 00 instruction de haut niveau


01 instruction de calcul
10 instruction de transfert
11 instruction de rupture de séquence

IUT Informatique Architecture des ordinateurs 223


Calais
Bits 6 à 3 : 0001 ADD
0010 SUB
0100 AND
1000 OR
0011 EOR
0001 LD
0010 ST
0100 PUSHA
1000 POPA
0001 BRA
0010 BSC
0100 BSZ
1000 BSV
0011 BSN
0001 CALL
0010 RET
0100 ENTER
1000 LEAVE
0011 END
IUT Informatique Architecture des ordinateurs 224
Calais
Exemple : ADD #$05
• adressage immédiat : bits 7 et 0 : 00
• instruction de calcul : bits 2 et 1 : 01
• addition : bits 6 à 3 : 0001

mode d’adressage

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1

instruction groupe

Codage final : 0A 05

IUT Informatique Architecture des ordinateurs 225


Calais
Exemple : BRA [RX+$2A]
• adressage basé-indexé : bits 7 et 0 : 10
• instruction de rupture de séquence : bits 2 et 1 : 11
• saut inconditionnel : bits 6 à 3 : 0001

mode d’adressage

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0

instruction groupe

Codage final : 8E 2A

IUT Informatique Architecture des ordinateurs 226


Calais
Implicite Immédiat Direct Basé-indexé
ADD -- 0A 0B 8A
SUB -- 12 13 92
AND -- 22 23 A2
OR -- 42 43 C2
EOR -- 1A 1B 9A
LD -- 0C 0D 8C
ST -- -- 15 94
PUSHA A5 -- -- --
POPA C5 -- -- --
BRA -- 0E 0F 8E
BSC -- 16 17 96
BSZ -- 26 27 A6
BSV -- 46 47 C6
BSN -- 1E 1F 9E
CALL -- 08 09 88
RET 91 -- -- --
ENTER -- 20 -- --
LEAVE C1 -- -- --
END 99 -- -- --
IUT Informatique Architecture des ordinateurs 227
Calais
Présentation de la petite machine à l’aide du logiciel …

7.3 Programmation de la petite machine


7.3.1 Saisie et exécution d’un programme simple
Additionner les nombres 21 et 13 et mettre le résultat à l’adresse $80.
LD #$15 chargement de 21 dans A
ADD #$0D additionner 13 au registre A
ST $80 stocker A à l’adresse $80
END fin du programme

Effectuer l’opération (17 + 08) OU (24 – 14) et stocker le résultat à


l’adresse $80 …

IUT Informatique Architecture des ordinateurs 228


Calais
7.3.2 Codage
Les nombres sont codés en complément à 2 sur 8bits donc de -128 à
127 :
$00=0, $01=1, …, $7F=127, $80=-128, $81=-127, …, $FE=-2, $FF=-1
0000 0000 0111 1111 1000 0000 1111 1111

7.3.3 Test
10 : BS[C,N,V,Z] #$30
si condition alors
12…26 :action 2
action 1
28 : BRA #$46
sinon
30…44 :action 1
action 2
46 : … suite du programme
fin si
Comparer les nombres 38 et 69 et mettre le plus grand à l’adresse $80 …
IUT Informatique Architecture des ordinateurs 229
Calais
7.3.4 Boucle
faire 10…2A:action
action 2C : BS[C,N,V,Z] #$10
tant que condition 2E : … suite du programme

• D'autre boucle peuvent être réalisée : tant que ... faire (exemple ci-dessous),
pour i de x à y faire (TD-TP).

• Mettre 0 à l’adresse $80, 16 à l’adresse $81 et 3 à l’adresse $82.


tant que M[$81] > 0 faire
M[$80] = M[$80] + 1
M[$81] = M[$81] - M[$82]
fin tant que

IUT Informatique Architecture des ordinateurs 230


Calais
7.3.5 Notations à utiliser en TD et DS
• Nombres en hexadécimal ($dd) et codés en complément à 2
• Utilisation d’étiquettes au lieu d’adresses pour les sauts. Les étiquettes sont
définies en début de ligne (finsi : , sizéro : , …)
• Des variables sont utilisées au lieu de leurs adresses (i=$81, ADD i, …)
Variables : x = $81 (variable x lue et stockée à l’adresse $81)
res = $80 (variable res lue et stockée à l’adresse $80)
Programme : LD #$06 (# : mode immédiat donc registre A = 6)
ADD #$12 (# : mode immédiat donc registre A + 18)
ST x (x=6+18)
LD #$18 (# : mode immédiat donc registre A = 24)
SUB x (mode direct donc registre A = A – x)
BSZ sizéro (saut à l’étiquette sizéro si le résultat est 0)
LD #$01
ST res
BRA finsi (saut inconditionnel à l’étiquette finsi)
sizéro : LD #$FF
ST res
finsi : END
IUT Informatique Architecture des ordinateurs 231
Calais
7.3.6 Appel à un sous-programme
• Utilisation des instructions de haut niveau CALL, RET, ENTER et
LEAVE

• CALL permet d'appeler un sous-programme (selon le mode) :

immédiat : CALL #$dd appelle le sous-programme


se trouvant à l'adresse dd
direct : CALL $dd ... à l'adresse M[dd]
basé-indexé : CALL [RX+$dd] ... à l'adresse M[(RX)+dd]

• RET permet de revenir au programme appelant lorsque le sous-


programme est terminé :
mode implicite : RET

IUT Informatique Architecture des ordinateurs 232


Calais
• Exemple :

00 ... CP = 00+1+1=2
... ... CP = CP+1+1= …
2E CALL #$42 CP = CP+1+1= 30
30 ...
... ...
... ...
... ...
40 ...
42 ADD #$23 CP = 42+1+1=44
44 ... CP = CP+1+1= 46
... ... CP = CP+1+1= …
... ...
... ...
5A RET CP = CP+1+1= 5C
5C … CP = 30
Problème : comment se rappeler que c’est à l’adresse 30 qu’il faut
revenir
IUT ?
Informatique Architecture des ordinateurs 233
Calais
• Gestion de l’adresse de retour : utilisation d’une pile (pointée par SP)
• Lorsque l’instruction CALL est appelée, l’adresse de retour est empilée.
CALL #$dd : M[SP] CP
empiler $30
SP SP-1
CP dd saut à $42
• À la fin du sous-programme, lorsque RET est appelé, l’adresse est
récupérée sur la pile
dépiler $30
RET : SP SP+1
dans CP donc
CP M[SP]
saut à $30
• L’utilisation de la pile permet l’imbrication de plusieurs appels à des
sous-programmes
• Visualisation des appels avec la petite machine …

IUT Informatique Architecture des ordinateurs 234


Calais
7.3.7 Passage de paramètres et variables locales à un sous-programme
• Les paramètres sont passés aux sous-programmes en les mettant sur la
pile
• De même les variables locales sont allouées aux sous-programmes en les
mettant sur la pile
• L’accès aux paramètres et aux variables locales d’une fonction se fait
impérativement en utilisant le mode basé-indexé ([RX+dd]) : RX indique
l’endroit sur la pile correspondant au sous-programme en cours
• Les paramètres sont empilés avant l’appel au sous-programme à l’aide de
l’instruction PUSHA et dépilés après l’appel à l’aide de l’instruction
POPA
• Exemple : 00 LD #$42
02 PUSHA variable res=$80
04 LD #$A5 étiquette f à l’adresse $16
06 PUSHA res:=f(66,165)
08 CALL #$16
0A ST $80
0C POPA
IUT Informatique 0E
ArchitecturePOPA
des ordinateurs 235
Calais
• Les variables locales sont allouées à l’aide de l’instruction ENTER :
ENTER est la première instruction d’un sous-programme et permet de
choisir le nombre de variables locales.
Le registre RX est la base du mode basé-indexé : comme les variables
locales et les paramètres sont sur la pile, RX doit contenir le sommet de
la pile pour y accéder en mode basé-indexé

mode implicite : ENTER #$dd M[SP] RX empiler RX courant


(dd indique le nombre de SP SP – 1
variables locales désirées) RX SP : RX=sommet de pile
SP SP - dd : réserver dd cases sur la pile

• Les variables locales sont libérées (enlevées de la pile) et l’ancien


contenu de RX (avant l’appel) récupéré à l’aide de l’instruction LEAVE :
mode implicite : LEAVE SP RX récupérer ancien som. de pile
SP SP + 1 dépiler RX pour récupérer
RX M[SP] son ancienne valeur
IUT Informatique Architecture des ordinateurs 236
Calais
• État de la pile suite à un appel à un sous-programme ayant deux
paramètres et deux variables locales :

SP
variable locale 2 Y FA
RX (base du mode
variable locale 1 X FB
basé-indexé)
RX 00 adresses FC
CP (adresse de retour) 0A croissantes FD

RX + 3 paramètre 2 A5 FE
paramètre 1 42 FF

Pile

IUT Informatique Architecture des ordinateurs 237


Calais
• Dans un sous-programmes les paramètres sont toujours accessibles aux
adresses [RX+3] et suivantes :
[RX+3] dernier paramètre empilé
[RX+4] avant dernier paramètre empilé
[RX+5] …

• Dans un sous-programmes les variables locales sont toujours


accessibles aux adresses RX et précédentes :
[RX+0] variable 1
[RX-1] variable 2 (attention [RX+FF] en C2)
[RX-2] …
• Si le sous-programme est une fonction, on supposera que le résultat est
stocké dans A avant de retourner au programme appelant

• Exemple : appel à un sous-programme exécutant la somme de 2


nombres puis leur différence et retournant le plus grand des deux
résultats. Le résultat final sera stocké à l’adresse 80.
IUT Informatique Architecture des ordinateurs 238
Calais
7.3.8 Récursivité
• Un sous-programme récursif est un sous-programme qui s'appelle lui-
même.
Exemple : une suite d'entiers naturels

 un  un1  3

u0  1

fonction suite (entier n) : entier


début
si (n=0) alors
retourner (1)
sinon
retourner (suite(n-1) + 3)
fin si
fin

IUT Informatique Architecture des ordinateurs 239


Calais
• Pour utiliser la récursivité avec la petite machine il suffit, à l'intérieur
du sous-programme, de l'appeler lui-même en faisant un CALL sur sa
propre adresse de début de sous-programme :
10 ...
12 ENTER ... (début du sous-programme)
14 ...
... ...
26 CALL #$12 (appel récursif)
... ...
3A LEAVE
3C RET (fin du sous-programme
retour au programme
appelant)

• Vérifiez toujours le cas d'arrêt de votre sous-programme récursif


• ATTENTION : sauvegardez toujours votre programme avant de
l'exécuter car si la récursivité est trop longue ou ne s'arrête pas, la pile
déborde et écrase toute le mémoire !
IUT Informatique Architecture des ordinateurs 240
Calais
7.4 Organisation matérielle
7.4.1 Structure de la partie opérative
• La partie opérative du processeur est divisée en 2 sous-ensembles :

PROCESSEUR

séquenceur RI

unité de
unité de
Partie opérative gestion de la
traitement
mémoire

IUT Informatique Architecture des ordinateurs 241


Calais
7.4.1.1 L'unité de traitement
• C'est une UAL associée à plusieurs registres stockant
• les opérandes
• les résultats (intermédiaire, final)
• les indicateurs (flags) regroupés dans un registre d'état

• fonctionnement de cet ensemble :


• signaux de commandes lecture/écriture des registres
• codes opérations de l'UAL

• Plusieurs solutions possible pour réaliser cet unité de traitement


• La petite machine : structure à registre "accumulateur" et bus interne
(architecture proposée par Von Neumann)

IUT Informatique Architecture des ordinateurs 242


Calais
• Connexion d'un registre à un bus :

Commande CR active :
R ER : R (bus)
LR : bus (R)
ER
CR Commande CR inactive :
LR
R isolé du bus

équivalent à :

Commande ER active :
R R (bus)
Commande LR active :
LR bus (R)
ER

IUT Informatique Architecture des ordinateurs 243


Calais
• Schéma de l'unité de traitement de la petite machine :

opération unité de contrôle


EAC

8 SELA LA Lβ EAC

A 4
8
U indicateur d'état
A
L C Z
SELA LA
4 N V

bus de données 8

IUT Informatique Architecture des ordinateurs 244


Calais
7.4.1.2 L'unité de gestion des adresses
• Gestion des modes implicite, immédiat et direct :
bus d'
adresses
8

SCP SELTA LTA SAD

CLRCP intérieur extérieur


C T du CPU du CPU
INCCP P A

ED

SELCP LCP ETA

bus de
données
8

IUT Informatique Architecture des ordinateurs 245


Calais
• Gestion du mode basé-indexé :

bus d'
adresses
8
SELRX LRX EAD
EAR
R R extérieur
X R
A du CPU

D
D
SELEX LEX

bus de
données
8
IUT Informatique Architecture des ordinateurs 246
Calais
• Gestion de la pile :

SELSP LSP

SETSP
S
INCSP
P
DECSP

IUT Informatique Architecture des ordinateurs 247


Calais
7.4.2 Structure de la partie contrôle
• La partie contrôle comprend le séquenceur et le registre d'instruction
• RI contient le code de l'instruction en cours d'exécution

PROCESSEUR

Partie contrôle séquenceur RI

unité de
unité de
gestion de la
traitement
mémoire

IUT Informatique Architecture des ordinateurs 248


Calais
7.4.2.1 Le séquenceur :
• il active les microcommandes au rythme de l'horloge interne
• il se réfère au cycle de Von Neumann définit dans le chapitre précédent

7.5 Limites de la petite machine


• Elle ne dispose que d'un registre utilisateur : A
• toutes les opérations passent par ce registre
• de nombreuses opérations de transfert supplémentaires nécessaires

• Les opérations de l'UAL sont limitées


• pas de multiplication / division
• pas de gestion des nombres réels
• travail sur des données de 8 bits

IUT Informatique Architecture des ordinateurs 249


Calais
• Mais la principale limite est le mode indirect qui n'est pas géré :

• Mode immédiat : valeur 3 utilisée par l’instruction


mémoire
ADD #$03 A A + 03
00 ...
variable i (d’adresse 3)
• Mode direct : 01 ...
contenant la valeur 7
02 ...
ADD $03 A A + M[03]
i 03 07
exemple : A A + 07 04 ...
05 ...
Le mode direct permet de gérer des variables
variable i (d’adresse 3) contenant
06 ...
j 07 2C
• Mode indirect : l’adresse de la variable j (d’adresse 7) 08 ...
contenant la valeur 2C
ADD *$03 A A + M[M[03]] 09 ...
0A ...
exemple : A A + M[07] : A A + 2C
La variable se trouvant à l'adresse 03 contient une adresse :
cette variable est un pointeur
IUT Informatique Architecture des ordinateurs 250
Calais
• Utilité du mode indirect :
• permet d'effectuer des calculs sur des adresses mémoire, c'est à dire
des pointeurs

• grâce au mode indirect il devient possible de gérer des tableaux,


des listes chaînées …

exemple : additionner les nombres d'un tableau de 10 entiers situés


entre les adresses $81 et $8A (le résultat est stocké à l'adresse $8B)

somme = 0 00 LD #$00 12 LD *$78


pour i de 1 à 10 faire 02 ST $8B 14 ADD $8B
somme = somme + tab[i] 04 LD #$0A 16 ST $8B
fin pour 06 ST $79 18 LD $79
08 ADD #$00 1A SUB #$01
3 variables : 0A BSZ #$20 1C ST $79
$8B = somme 0C LD #$80 1E BRA #$0A
$79 = compteur (i) 0E ADD $79 20 END
$78 = adresse de l'élément de tab 10 ST $78
IUT Informatique Architecture des ordinateurs 251
Calais
7.6 Conclusion
• Ce chapitre vous a décrit le fonctionnement complet d'un processeur :
• organisation interne des circuits (registres, bus, UAL, ...)
• pilotage du processeur par le séquenceur (association de chaque
instruction à un cycle de microcommandes)
• définition et utilisation des instructions dans différents programmes
en langage machine (codes) et assembleur (mnémoniques)
• fonctionnement au niveau le plus proche du processeur des
concepts de base de la programmation : test, boucle, sous-
programme, passage de paramètres, variables locales, pile
d'exécution, pointeurs

IUT Informatique Architecture des ordinateurs 252


Calais
8 Évolution des microprocesseurs
8.1 Introduction

• Dans ce chapitre l'évolution des microprocesseurs va être examinée au


travers de l'évolution de leur fabrication, de leur différents composants
interne et de leur organisation

• Plusieurs exemples seront donnés en prenant comme référence les


microprocesseurs les plus répandus dans le domaine des compatibles PC

IUT Informatique Architecture des ordinateurs 253


Calais
8.2 Intégration des transistors
• Loi de Moore : loi empirique énoncée par Gordon Moore (co-fondateur
d'Intel) en 1965 qui prédit que le nombre de transistors intégrés sur une
surface donnée double tous les 18 mois.

Millions de transistors
700
Core 2 quadro
600

500
Pentium D
400

300
Pentium 4 EE Core 2 duo
200
Pentium 4 .18
100 Athlon64 X2
Pentium III Athlon64
Pentium II
Pentium 4 .13
0
1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007

IUT Informatique Architecture des ordinateurs 254


Calais
• Le niveau d'intégration est dépendant de la taille de gravure du silicium
Pentium II, K6-II, K6-III, Athlon (Pluto) 0,25µm
Pentium III, Pentium 4 (Willamette), Athlon (Orion), MIII 0,18µm
P4 (Northwood), Athlon, Athlon64 (Newcastle, Clawhammer) 0,13µm
P4 (Prescott, Smithfield), Athlon64 (Winchester, San Diego) 0,09µm = 90nm
P4 (Cedar Mill, Presler), Core 2 duo (Conroe) et quadro (Kentsfield) 65nm
 2007 45nm
 2009 32nm
 2011 22nm

• Pourquoi graver plus finement ?


• Diminuer la chaleur dissipée
• Augmenter la fréquence de fonctionnement
• Mais la finesse de gravure est limitée par la technologie actuelle (type de
laser), aussi la loi de Moore risque un jour de ne plus être valable ...

IUT Informatique Architecture des ordinateurs 255


Calais
8.3 Registres internes
8.3.1 Taille des registres
• Elle correspond à la taille des mots traités par le microprocesseur
• La taille de mots standards traités définit le type de processeur
du 8086 au 80286 : microprocesseurs 16 bits
du 80386DX au Pentium 4, Athlon XP : microprocesseurs 32 bits
Athlon64, P4 EM64T, Core 2 duo et quadro : µp 64 bits

• Pour des calculs précis en flottants 32 bits est un minimum


Microprocesseur taille d’un mot Entiers Préc. Réels
8086 au 80286 16 -32 768 à 32 767 1,5.10-5
80386DX au P4, Athlon 32 -2 147 483 648 à 2,3.10-10
Athlon64, P4 EM64T, Core 2 64 -9,223.1019 à 5,4.10-20

IUT Informatique Architecture des ordinateurs 256


Calais
• Les processeurs n'ayant pas ces caractéristiques utilisaient des co-
processeurs arithmétiques 40bits : 8087, 80187, 80287, 80387, 80487
• Les processeurs actuels incluent des registres de taille supérieure à la
taille des mots standard traitées (MMX, 3Dnow!, SSE, SSE2, SSE3,
SSE4)
8.3.2 Nombre de registres
• Le nombre de registres internes influence fortement les performances d'un
microprocesseur car il réduit le nombre d'accès mémoire nécessaires au
stockage des résultats intermédiaires lors de calculs complexes
• De plus les registres sont beaucoup plus rapides que les mémoires externes
• Les registres utilisable par le programmeur sont les :
• GPR (General Purpose Registers) – utilisation libre
• FPR (Floating Point Registers) – calcul en flottant instructions x87
• registres SIMD – pour les instructions MMX, 3Dnow!, SSE, …

IUT Informatique Architecture des ordinateurs 257


Calais
• 8086 au 80486SX : 8 GPRs 16bits + 8 FPRs 80bits si co-processeur x87
• 80386DX au Pentium MMX : 8 GPRs 32bits + 8 FPRs 80bits
• Pentium II au P4HT et Athlon XP : idem + 8 registres SSE 128bits
• Athlon64, P4 EM64T et Core 2 :

• instructions x87 (donc registres FPUs) appelées à disparaître


• gain de performance associé à un OS 64bits + programmation 64bits
IUT Informatique Architecture des ordinateurs 258
Calais
8.4 Bus
8.4.1 Bus d'adresses
• L'augmentation de la largeur du bus d'adresse découle de la nécessité de
traiter de plus en plus d'information et donc de disposer de plus en plus de
mémoire :
Microprocesseurs Largeur Espace d'adr. Mémoire adr.
80386, 80486, Pentium, Athlon 32bits 4Gmots 4Go
Pentium pro, PII, PIII, P4 36bits 68Gmots 64Go
Itanium 44bits 17Tmots 16To
Athlon64, P4 EM64T, Core 2 64bits 18.106Tmots 256To , 1To

IUT Informatique Architecture des ordinateurs 259


Calais
8.4.2 Bus de données (ou bus frontal – FSB : Front Side Bus)
• Permet de véhiculer les données, sa taille est égale ou supérieure à la taille
des mots standard du µp selon les composants reliés
• Fréquence de fonctionnement :

• pendant longtemps = fréquence carte mère

• augmentation avec les mémoires et périphériques de + en + rapides

• 1999 : Athlon – bus EBV6 = DDR (Double Data Rate)


fréquence CM inchangée mais fréquence FSB doublée
• 2000 : P4 – Netburst = QDR (Quad Data Rate)
fréquence CM inchangée mais fréquence FSB quadruplée
• 2003 : Athlon64 – Hypertransport : 2 communications uni-directionnelles
point à point à largeur variable + contrôleur mémoire dans le µp
IUT Informatique Architecture des ordinateurs 260
Calais
bus Fréquences de
Processeur Année
de données fonctionnement
Intel 8086 1978 4,77 puis 10 MHz
16 bits
Intel 286 1981 6, 12 et jusque 20 MHz
Intel 386DX 1985 16, 33 et jusque 40 Mhz
32 bits
Intel 486 1989 16 à 50 MHz
Intel Pentium 1992 50 - 60 - 66 MHz
Intel Pentium II 1997 66 – 100 - 133 Mhz
AMD K6 1997 66 - 95 - 100 MHz
64 bits
AMD Athlon 1999 2 x (100 - 133 – 166) MHz

Pentium 4, Core 2 2000 4 x (100 - 133 – 200 – 266) MHz

AMD Athlon 64 2003 4 x 200 Mhz


IUT Informatique Architecture des ordinateurs 261
Calais
8.5 Vitesse de l’horloge
• Le travail du microprocesseur est cadencé par le rythme de l’horloge de
la carte mère auquel est appliqué un multiplicateur
• La fréquence ne donne qu’une idée très approximative de la vitesse de
travail du µprocesseur à cause du nombre de µcycles/instr :
Une instruction nécessitant 10 µcycles d’horloge (cycle élémentaire
durant lequel une µinstruction est exécutée) avec un processeur
cadencé à 2Ghz durera 10 x 0,5ns = 5ns

• Unités de mesure un peu plus fiable :


• MIPS, obtenu à partir du nombre de cycles moyen des instructions et de
la fréquence, mais il n’est pas comparable entre µp à jeu d’instructions
complexes et réduits.
• MFLOPS, GFLOPS (millions ou milliards d’opérations sur des réels
effectuées par seconde) mais le nombre de cycles d’attente pour accéder
à la mémoire entre aussi en compte …

IUT Informatique Architecture des ordinateurs 262


Calais
µprocesseur Multiplicateur Fréquence en Mhz
Pentium 1à4 60-233 Mhz
K6 2,5 à 5,5 166-550 Mhz
Pentium II 3,5 à 5 233-450 Mhz
Pentium III 4 à 11 450-1400 Mhz
Athlon 5 à 11 500-1800 Mhz
Pentium 4 13 à 26 1,3-3,8 GHz
Athlon64 10 à 13 2-2,6 GHz
Pentium M 10 à 16 1,5-2,13 GHz
Core 2 6 à 11 1,6-2,93GHz

IUT Informatique Architecture des ordinateurs 263


Calais
8.6 Mémoires caches
• Permettent d’atténuer les cycles d’attentes dus aux accès mémoire
• Différents niveaux de cache :
• niveau 1 (L1) : toujours interne au µp (même fréquence)
• niveaux 2 et 3 (L2, L3) : interne ou externe au µp (fréquence
8.6.1moindre)
Un seul niveau de cache
• Une requête de lecture du µp entraîne 2 possibilités :
1) La donnée est dans le cache : 2) La donnée n’est pas dans le cache :
succès (cache success) échec (cache miss)
cache libre cache plein

IUT Informatique Architecture des ordinateurs 264


Calais
• Lignes de cache entières manipulées :
P4 : L1 64octets et L2 128octets par ligne
Athlon 64 : L1 et L2 64 octets par ligne
• Pb : si les variables utilisées de manière répétitive ne tiennent pas dans le
cache celui-ci ne sert à rien.
• Idée 1 : augmenter le cache de niveau 1 (cher)
• Idée 2 : inclure un deuxième niveau de cache utilisant une mémoire un
peu moins rapide (donc moins cher) pour stocker temporairement les
lignes effacées du cache de niveau 1 par l’algo LRU.

• différentes possibilités suite à une requête de lecture du µp :


• donnée dans L1 : L1 success
• donnée pas dans L1 mais dans L2 : L1 miss, L2 success
• donnée pas dans L1 ni L2 : L1 et L2 miss
• 2 modes de fonctionnement : inclusif et exclusif

IUT Informatique Architecture des ordinateurs 265


Calais
8.6.2 Deux niveaux de cache exclusifs
• Tant que L1 n’est pas plein : fonctionnement du cache unique

• Quand L1 est plein, L2 entre en action :


l’algo LRU (Last Recently Used) sélectionne
une ligne de L1 qui est copiée dans L2 afin
de libérer de la place pour la nouvelle donnée

• Quand L2 est plein, une de ses lignes


choisie par l’algo LRU est effacée
(sauf s’il y a un niveau 3 – L3)

IUT Informatique Architecture des ordinateurs 266


Calais
• L1 miss, L2 success : la ligne correspondante est déplacée dans L1 pour
pouvoir être accessible rapidement par la suite (une ligne de L1 est donc
déplacée dans L2 auparavant)

• Dans tous les cas les lignes de données de


L1 et L2 sont différentes : caches exclusifs
• Taille totale de cache utile :
capacité de L1 + capacité de L2
• Pas de dépendance entre les tailles des
caches (on peut avoir L1 > L2)
• Performances moyennes de L2 car copie de
L1 vers L2 avant copie de L2 vers L1
• difficile de gérer efficacement des niveaux
de cache supplémentaires (multiples copie
entre les niveaux)
IUT Informatique Architecture des ordinateurs 267
Calais
8.6.3 Deux niveaux de cache inclusifs

• Tant que L1 n’est pas plein : si la donnée


n’est pas dans L1 alors lecture de la donnée en
RAM et copie dans L1 ET L2

• Quand L1 est plein, copie également dans L1


et L2 (une ligne de L1 est effaçée par LRU)

• Quand L2 est plein également, copie dans L1


et L2 (une ligne de L1 et de L2 sont effaçées
par LRU)

IUT Informatique Architecture des ordinateurs 268


Calais
• L1 miss, L2 success : la ligne correspondante
est copiée de L2 dans L1
• Choix de la ligne de L1 par LRU, mais non
perdue car dans L2

• Dans tous les cas L1  L2 : caches inclusifs

• Permet d’économiser une écriture de L1 vers L2 en cas de L1 miss, L2


success par rapport aux caches exclusifs :
• L2 plus performant
• niveau de cache supplémentaires faciles à incorporer

• L2 > L1 impérativement et L2 >> L1 pour de bonnes performances

• Taille de cache utile : L1 + (L2 – L1) = L2 seulement (car L1  L2 )


IUT Informatique Architecture des ordinateurs 269
Calais
Caches exclusifs Caches inclusifs
+ pas de contrainte sur L2 + performance L2
+ taille utile = L1 + L2 + niveaux de cache supplémentaires
- performance L2 - contrainte sur L2 (L2 >> L1)
- niveaux de cache supplémentaires - taille utile = L2
AMD : Athlon, Athlon64 INTEL : Pentium 4, Core 2
grand L1, L2 moyen petit L1, grand L2 ou L2 moy + L3

µp L1 inst+données L2 Fréq. L2 L3
Pentium II 16ko + 16ko 512ko FSB /
Pentium III 16ko + 16ko 256/512ko ½ µp /
Pentium 4 12kµop + 8ko 128 à 2048ko µp 2048ko (P4EE)
Xeon 12kµop + 8ko 256 à 512ko µp 1024 à 6144ko
Athlon 64ko + 64ko 256 à 512ko µp /
Athlon64 64ko + 64ko 512 à 1024ko µp /
Core 2 32ko + 32ko 4096ko µp /
IUT Informatique Architecture des ordinateurs 270
Calais
8.7 Pipeline
• L’idée du pipeline est de découper une opération en opérations
élémentaires appelées étages, de façon à pouvoir traiter plusieurs
opérations simultanément
• pipeline = principe de la chaîne de montage : la cadence de traitement
des instructions est imposée par l’étage le plus lent
• Exemple : pipeline à 3 étages

chargement décodage exécution


instant t
instruction 1

chargement décodage exécution


instant t+1
instruction 2 instruction 1

chargement décodage exécution


instant t+2
instruction 3 instruction 2 instruction 1

IUT Informatique Architecture des ordinateurs 271


Calais
• Plus le nombre d’étage est grand, plus le débit des instructions est
important (idée de base de l’architecture Netburst du Pentium 4) et plus la
fréquence de fonctionnement peut être élevée

• Tant que les instructions se suivent, pas de problème, mais si un


branchement (saut) est effectué dans le programme alors il faut vider le
pipeline et recommencer d’où utilisation de méthodes de prédiction de
branchement
µprocesseur Étages du pipeline
Pentium III 10
Pentium 4 20 puis 31 (prescott)
Pentium M 12
Athlon 11
Athlon 64 6 + (4 (entiers) / 9 (réels))
Core 2 14
IUT Informatique Architecture des ordinateurs 272
Calais
8.8 Parallélisme
• Multiplier le nombre d’unités fonctionnelles pour effectuer plusieurs
traitements simultanément
Pentium 4 Athlon64 Pentium M Core 2
Lecture instr. 4 4 4 5
Décodage instr. 3 3 3 4
ALU 2 doubles
(calcul entier)
3 2 3
1 simple
FPU
(calcul réel)
1+1 (différentes) 2+1 (diff.) 2 2+1 (diff.)
SIMD
(entier + réel)
1 2 2 3

• µp multi-cores = plusieurs µp dans une puce


2005 : 2 cores (Athlon64 X2, Pentium D)
2006 : 2 et 4 cores (Core 2 duo, Core 2 Quadro)
+ prototype Intel 80 cores de calcul
2007 : 4 cores (AMD)

IUT Informatique Architecture des ordinateurs 273


Calais
8.9 Complexité des processeurs actuels
8.9.1 AMD Athlon64

IUT Informatique Architecture des ordinateurs 274


Calais
8.9.2 Intel Pentium 4

IUT Informatique Architecture des ordinateurs 275


Calais
8.10 Benchs de quelques µp grand public à l'aide de Spec-2000
4000
3800
3500

3000 2930
2800
2500
2200 2260
2000
INT
1500 FP
1400
Mhz
1000

500

0
Pentium III Athlon XP Pentium M Pentium 4 Athlon64 Core 2
IUT Informatique Architecture des ordinateurs 276
Calais
8.11 Benchs de quelques µp station de travail à l'aide de Spec-2000
4000
3800
3500

3000 2930
2800
2500
2300
2160 INT
2000
FP
1600 Mhz
1500
1300
1000

500

0
Alpha Pentium 4 Athlon64 Core 2 Intel Sun IBM
21364 Itanium 2 SPARC64 POWER5
IUT Informatique Architecture des ordinateurs V 277
Calais
8.12 Références
• www.tomshardware.fr (en français) / www.tomshardware.com
• www.hardware.fr
• www.presence-pc.com
• www.aceshardware.com
• www.anandtech.com
• www.cpuid.com
• arstechnica.com
• www.x86-secret.com (en français)
• www.spec.org
• www.arcanapercipio.com (en français)
• www.amd.com
• www.intel.com

IUT Informatique Architecture des ordinateurs 278


Calais
9 Les périphériques
9.1 Composants d’un micro-ordinateur
• un ou plusieurs µp
• mémoire RAM
• mémoire ROM (bios) + RAM (cmos)
+ alimentation
• circuits gérant les communications + boîtier
• ensemble de bus carte = unité centrale (UC)
• horloges (bus, cpu) + temps réel (RTC) mère

• connecteurs (µp, mémoire, cartes …)


• ports d’E/S (série, parallèle, USB, IR, …)
• périphériques internes (cartes, DD, …)
• périphériques externes (moniteur, clavier, souris, imprimante, scanner, …)
IUT Informatique Architecture des ordinateurs 279
Calais
9.2 Circuits d’entrées/sorties et interfaces
• Définition d’un périphérique : système matériel qui permet d’introduire
(ou d’extraire) des données dans (ou de) l’ordinateur
• Composition d’un périphérique :
• partie « active » qui effectue les opérations (mémoriser des données,
afficher, imprimer …)
• connexion qui relie la partie active à l’ordinateur (µp) via les bus et
circuits d’E/S
• Problèmes :
• périphériques conçus indépendamment des ordinateurs
• connecter le + de périphériques différents

Standardisation et mise en forme des signaux de la partie active pour


être compatible avec le bus de l’ordinateur

IUT Informatique Architecture des ordinateurs 280


Calais
• Le µp pilote les périphériques grâce à des circuits spécialisés appelés
interfaces

partie active
Légende :

interface périphérique

ordinateur

bus ordinateur

• Les circuits d’E/S jouent souvent le rôle d’interfaces (on considère que
ces termes sont équivalents)

IUT Informatique Architecture des ordinateurs 281


Calais
• Organisation des E/S vers les périphériques :
• un circuit d’E/S : assure le transfert des informations de ou vers les
bus de l’ordinateur
• une interface : adapte les signaux en provenance du périphérique
pour les rendre compatibles avec le circuit d’E/S (temps/débit,
amplitude/intensité, protocole)
• un contrôleur de périphérique qui gère la partie active
• Remarques :
• le circuit d’E/S est généralement sur la carte mère
• le contrôleur est en général dans le périphérique
• le circuit d’interface est soit :
• dans le circuit d’E/S
• dans le périphérique
• divisé en 2 parties (circuit E/S + périphérique)
IUT Informatique Architecture des ordinateurs 282
Calais
• Le contrôleur de périphérique contient les registres suivants :
• un registre de commande
• un registre de donnée
• un registre d’état
• Le µp passe par le circuit d’E/S et l’interface pour accéder au contrôleur
de périphérique et le pilote grâce à ces 3 registres
• Il existe 2 types d’interfaces :
• dédiée : une interface par périphérique
• + : simple à concevoir
• - : multiplie de nombre d’interfaces dans l’ordinateur
• générique : une interface indépendante du périphérique
• + : une seule interface dans l’ordinateur
• - : norme, problèmes de vitesse, …
IUT Informatique Architecture des ordinateurs 283
Calais
• Actuellement : dédié + générique + compromis entre les 2
• interface dédiée à certains périphériques : clavier, souris (PS/2), disquettes
• interface dédiée à des groupes de périphériques :
unités de stockage - IDE, SATA, SCSI
• interface générique pour les autres périphériques : ISA, PCI, PCI-X, PCIe
• interface totalement générique : USB, Firewire
• Le µp accède au périphérique selon 3 méthodes principales :
• le µp prend totalement en charge les E/S (polling)
• le périphérique effectue des E/S via le µp et le contrôleur
d’interruption (IRQ) qui permet à tout moment d’interrompre
l’exécution d’un programme sur le µp afin que celui-ci prenne en
compte la demande du périphérique
• le périphérique effectue des E/S via le µp, le contrôleur
d’interruption et le contrôleur d’accès direct en mémoire (DMA)
non détaillé dans ce cours
IUT Informatique Architecture des ordinateurs 284
Calais
9.3 Liaison synchrone et asynchrone
• Définition : une liaison est dite synchrone si la transmission d’un bit est
liée à un signal d’horloge commun aux deux interlocuteurs
1
msg 1001011010110
0 msg
1 émetteur clk récepteur
clk
0 masse commune

1001011010110

• Définition : une liaison est dite asynchrone si les deux interlocuteurs ne


se synchronisent pas sur un même signal

1
msg 1001011010110
0 msg
émetteur récepteur
1 0 0 1 1 01
différentes durées masse commune
d’impulsions pour 1 et 0
IUT Informatique Architecture des ordinateurs 285
Calais
9.4 Liaison série et liaison parallèle
• Une liaison série envoie les données sur 1 fil bit à bit
• un fil pour envoyer les données
• un fil pour recevoir les données
• + qques fils pour le contrôle des transmissions
• Avantages :
• simple à mettre en œuvre
• peu d’interférences : grande longueur de câble possible
• Inconvénient :
• plus lent qu’une liaison parallèle (à l’origine)
• Liaisons série sur le PC (à l’origine) :
• port PS/2 (clavier, souris) – liaison synchrone
• port série (port RS232) - liaison asynchrone – limité à 30m
IUT Informatique Architecture des ordinateurs 286
Calais
• Liaison parallèle : 1 fil par bit, 1 mot transmis en une fois
• Avantage :
• rapide (+ il y a de fils, + on envoie de bits en parallèle)
• Inconvénients :
• + difficile à mettre en œuvre qu’une liaison série (nombreux fils)
• + il y a de fils et + la fréquence est élevée alors + il y a
d’interférences et + la distance de communication est courte
• Liaisons parallèles sur le PC (à l’origine) :
• port parallèle (port Centronics) 8 bits – limité à 3m
• stockage : disquette, IDE et SCSI – limité à environ 50cm
• ISA, PCI, PCI-X – limité à environ 20-30cm
• µp / mémoire bus de donnée, bus d’adresse en dehors du µp
• bus de donnée, bus d’adresse dans le µp
IUT Informatique Architecture des ordinateurs 287
Calais
• Depuis quelques années, amélioration des liaisons séries :
• fréquences accrues + envoi de paquets de bits
• USB1.1 : 12Mb/s (1,4Mo/s) et USB2 : 480Mb/s (57Mo/s)
• Difficilement applicable aux liaisons parallèles (interférences)
• Nouvelles liaisons série sur le PC :
• USB, IEEE 1394 (Firewire) : remplacent les ports RS232, //, clavier
et souris, …
• SATA : remplace l’Ultra ATA (IDE ou PATA) pour les
périphériques de stockage
• Autre amélioration : utilisation de plusieurs liens série simultanément
pour atteindre de très hauts débits
• Nouvelles liaisons série multiples sur le PC :
• PCI Express : remplace le bus PCI, PCI-X et le port AGP
• Hypertransport : remplace par exemple les bus entre µp et mémoire
pour l’Athlon64
IUT Informatique Architecture des ordinateurs 288
Calais
Exemple détaillé : PCI Express (PCIe)
• Remplace les nombreux fils du bus PCI par 4 fils par ligne PCIe

• Les lignes PCIe sont bi-directionnelles : communication synchrone


simultanée dans les 2 sens

IUT Informatique Architecture des ordinateurs 289


Calais
• Plusieurs lignes peuvent être utilisées simultanément pour multiplier le
débit

• Les paquets sont découpés, envoyés en parallèle puis réassemblés

IUT Informatique Architecture des ordinateurs 290


Calais
• Périphériques standards : 1 ligne PCIe = 250Mo/s bidirectionnel / périph.
(PCI = 132Mo/s unidirectionnel partagé par tous les périphériques du bus)
• Nb lignes / périph. configurable à la construction de la carte mère : 1 à 32
• Cartes graphiques : 16 lignes PCIe = 4Go/s dans chaque sens
plusieurs cartes graphiques possible (avec 4 ou 8 lignes)
(AGP 8X = env. 2Go/s unidirectionnel + port unique)

IUT Informatique Architecture des ordinateurs 291


Calais
9.5 Carte mère (PC)
• principal circuit imprimé de l’ordinateur
• permet d’inter-connecter tous les éléments de l’ordinateur
• contient le bus système, un ensemble de connecteurs et de ports d’E/S et
un ensemble de contrôleurs
• propage les fréquences multiples ou sous-multiples de la sienne générées
par le µp aux différents composants : 33MHz pour le pci, 48MHz pour
l’usb, 33/66Mhz pour l’agp … etc
Définitions :
• chipset : ensemble de circuits gérant les échanges d’information
• slot : connecteur « fond de panier » sur la carte mère
• BIOS (Basic Input Output System) : programme en ROM d’initialisation
et de test des composants de l’ordinateur et de pilotage des fonctions d’E/S
de base
IUT Informatique Architecture des ordinateurs 292
Calais
9.5.1 Connecteurs
9.5.1.1 Connecteurs CPU
• actuellement 2 types de connecteurs : socket ou slot
• Slot 1 : Pentium III

IUT Informatique Architecture des ordinateurs 293


Calais
• Sockets 775, 478 et 754

Athlon64 socket 754 (PGA)

Pentium 4 Pentium 4
socket 478 socket 775
(PGA) (LGA)

IUT Informatique Architecture des ordinateurs 294


Calais
• Socket 775 :

IUT Informatique Architecture des ordinateurs 295


Calais
9.5.1.2 Connecteurs mémoire :
• connecteurs SIMM :
Mémoire FPM ou EDO
< 1996
32 bits – 72 broches
Capacité : 1Mo à 64Mo
Temps de latence : 80ns à 50ns
• connecteurs DIMM :
Mémoire SDRAM
> 1996
64 bits – 168/184/208 broches
Capacité : 16Mo à 2048Mo
Temps de latence : env. 10ns
IUT Informatique Architecture des ordinateurs 296
Calais
9.5.1.3 Connecteurs cartes d’extension
• connecteurs ISA :
8 bits puis 16 bits
Débit : 5,5Mo/s

• connecteurs PCI :
32 bits puis 64 bits
Débit : 66 Mo/s
puis 132 Mo/s

IUT Informatique Architecture des ordinateurs 297


Calais
• connecteurs AGP (Accelerated Graphic Port) :
64 bits puis 128 bits
Débit : 264Mo/s (1X)
env. 2Go/s (8X)
Liaison directe avec la mémoire centrale

• connecteurs PCI Express (PCIe) :


Liaison série 1 à 32 lignes
Débit : 250Mo/s (1X)

env. 4Go/s (16X)

IUT Informatique Architecture des ordinateurs 298


Calais
9.5.1.4 Connecteurs périphériques de stockage
• connecteur de disquettes :

• connecteur IDE ou PATA (Parallel ATA) :

• connecteur SCSI :

•connecteur SATA (Serial ATA) :

IUT Informatique Architecture des ordinateurs 299


Calais
9.5.1.5 Connecteurs d’alimentation

• connecteurs carte mère :


+

• connecteur de disquettes
et petits périphériques :

• connecteur périphériques stockage et divers :

• connecteur alimentation SATA

• connecteur ventilateur :

IUT Informatique Architecture des ordinateurs 300


Calais
9.5.1.6 connecteurs E/S :
• Avant la norme ATX, les connecteurs d’E/S étaient sur la carte mère et
devaient être reliés à des prises accessibles depuis l’extérieur du boîtier
• Maintenant une grande partie de ces connecteurs sont regroupés sur un
bloc directement accessible depuis l’extérieur du boîtier :

parallèle : IEEE 1394 RJ45 :


imprimante, stockage (Firewire) : tous réseau
externe, … périph. + réseau
PS2 : souris

audio

PS2 :
clavier
VGA : écran, USB : tous
série : clavier,
vidéoprojecteur périphériques
souris, réseau,

IUT Informatique Architecture des ordinateurs 301
Calais
9.5.2 Chipset
• contrôlent les différentes communications des éléments de la carte mère
• incorporent des fonctionnalités supplémentaires remplacant certains
périphériques
• en particulier :
• µp / mémoire
• mémoire / AGP ou PCIe 16X north bridge
• µp / AGP ou PCIe 16X dédié à une famille de µp
• bus ISA, PCI
• PCI Express
• IDE, SCSI south bridge

• USB, Firewire
• réseau (avec ou sans fil), modem, audio, …
IUT Informatique Architecture des ordinateurs 302
Calais
• Intel 925X : 2 puces
DDRII SDRAM, PCI, PCIe, Hyperthreading,
SATA, RAID, USB2, audio, réseau sans fil, E/S standard

IUT Informatique Architecture des ordinateurs 303


Calais
• VIA KT800pro : 2 puces

DDR-SDRAM
Hypertransport
AGP
Audio
PATA
SATA
USB2
PCI
PCIe (2 lignes)
réseau 10/100Mb
modem
E/S standard : (clavier,
souris, série, parallèle,
disquette)

IUT Informatique Architecture des ordinateurs 304


Calais
• Nvidia nForce4 : 1 puce

DDRII-SDRAM
Hypertransport
Audio
PATA
SATA2
USB2
PCI
PCIe (20 lignes configurables)
SLI (2 cartes graphiques)
réseau Gb
modem
firewall
E/S standard : (clavier, souris,
série, parallèle, disquette)

IUT Informatique Architecture des ordinateurs 305


Calais
9.5.3 Détail d’une ancienne carte mère

IUT Informatique Architecture des ordinateurs 306


Calais
9.5.4 Détail d’une carte mère récente

IUT Informatique Architecture des ordinateurs 307


Calais
9.6 Classification des périphériques

• lecteur CDROM, DVDROM


• graveur CDR, CDRW, DVDRAM, DVDR, DVDRW mémoires
• disque dur, lecteur de disquettes, zip de masse
• streamer, dat, clé usb
• lecteur de carte magnétique, de carte à puce
• clavier, souris
• carte réseau, modem
• imprimante, scanner
• carte graphique, moniteur, projecteur, data-show, écran tactile

périphériques
• carte d’acquisition, de montage vidéo, caméra, appareil photo numérique
• carte son, micro, enceintes
• périphériques MIDI (synthétiseur, boîte à rythme, …)

d’E/S
• joystick, casque 3D, gants 3D
• onduleur
• clef électronique, système de protection de données
• périphériques d’authentification (vocal, empreinte, …)
IUT Informatique Architecture des ordinateurs 308
Calais
9.7 Mémoires de masse
• La fonction des mémoires de masse est de conserver durablement les
informations sur des supports magnétiques (disquette, disques dur, bande
magnétique, …) ou non (CDROM, DVD, …)

9.7.1 Lecteur de disquette (floppy disk)


• Périphérique généralement interne permettant de lire des disquettes
• Une disquette est un support de données magnétique, souple ou rigide, de
taille et de densité variées
• C’est le support de stockage le plus connu de la micro-informatique car il
a été longtemps le seul disponible facilement
• Dernier format existant :
• 3’’1/2 de capacité de 720Ko, 1,44Mo et 2,88Mo
• Interface : dédiée ou USB

IUT Informatique Architecture des ordinateurs 309


Calais
• Schéma d’une disquette 3’’1/2 :

IUT Informatique Architecture des ordinateurs 310


Calais
• Schéma interne du lecteur :

IUT Informatique Architecture des ordinateurs 311


Calais
• Structure physique d’une disquette (ou d’un disque dur) : division en
pistes circulaires puis chaque piste en secteurs (512octets en général)

• Cette structure est créée lors du formatage physique de la disquette (ou


du disque dur)
• Nombre constant de secteurs par piste : densité variable selon les pistes
• Compatibilité au niveau du formatage physique : DOS et UNIX utilisent
le même nombre de pistes et de secteurs par piste
IUT Informatique Architecture des ordinateurs 312
Calais
• Le formatage logique est effectué après le formatage physique
• Il permet de réserver les premiers secteurs pour y stocker des
programmes ou des informations systèmes et de regrouper les secteurs en
clusters (blocs logiques)
• On y trouve :
• une zone d’amorçage qui peut contenir le programme de lancement
(si c’est un disque système)
• une table d’allocation de fichiers
• le répertoire racine
• le reste du disque sert au stockage des données
• La zone de stockage est gérée en tant qu’ensemble de clusters de taille
donnée (512octets, 1024, 2048, 4096, …) dans lesquels seront stockées
des informations sous forme de fichiers
• L’ensemble des clusters est géré à l’aide de la table d’allocation qui
permet de retrouver les clusters utilisés par un fichier
IUT Informatique Architecture des ordinateurs 313
Calais
9.7.2 Disque dur (hard disk)
• Un disque dur est composé d’un certain nombre de plateaux rigides fixés
sur un même axe de rotation

IUT Informatique Architecture des ordinateurs 314


Calais
• Chaque plateau dispose de 2 têtes de lecture/écriture

• Définition : sur un plateau, les pistes sont numérotées de 0 à p-1.


L’ensemble des pistes portant le même numéro sur les différents plateaux
est appelé un cylindre

IUT Informatique Architecture des ordinateurs 315


Calais
Caractéristiques des disques durs :
• Leur capacité varie actuellement de 20Go à 500Go
• C’est parce que leur capacité a rapidement augmentée qu’est apparu la
notion de cluster regroupant plusieurs secteurs (pour éviter d’allouer
individuellement les secteurs aux fichiers)
• Leur vitesse de rotation se situe actuellement entre 5400 et 15000tr/min
• Le temps d’accès moyen est actuellement d’environ 10ms
• Le taux de transfert des informations entre le disque et la mémoire se
situe entre 5Mo/s et 60Mo/s actuellement
• L’interface de communication :
• IDE (Integrated Drive Electronics) – Ultra ATA ou PATA
• SATA (Serial ATA)
• SCSI (Small Computer System Interface) – Ultra SCSI
• L’interface la plus rapide autorise actuellement 320Mo/s – inutile pour
un seul disque mais indispensable si plusieurs partagent la même interface
IUT Informatique Architecture des ordinateurs 316
Calais
Interface IDE (Ultra ATA) :
• L'interface la plus courante actuellement est l'interface Ultra ATA (ou
PATA – Parallel ATA)
• Les lecteurs compatibles Ultra ATA intègrent la plupart des circuits de
contrôle ce qui les rend simples à installer
• Une interface Ultra ATA accueille 2 périphériques de stockage – un
maître et un esclave - il y a au minimum 2 interfaces par carte mère
• L'interface IDE a évoluée depuis sa création :
• EIDE : 16Mo/s, Ultra ATA 33/66/100 : 33,3/66,6/99,9Mo/s
Interface SATA :
• Liaison série bidirectionnelle à très haute fréquence :
Ultra ATA 100 : 25 MHz SATA : 1500 MHz
x 2 DDR x 1 bit
x 16 bits x 80 % codage paquets 8b10b
/ 8 bits par octets / 8 bits par octets
= 100 Mo/s = 150Mo/s
IUT Informatique Architecture des ordinateurs 317
Calais
• SATA 2 : 300 Mo/s
• Avantages du SATA par rapport au PATA :
• simple et - coûteux à mettre en œuvre (peu de fils comme PCIe/PCI)
• câbles – chers, + longs et + fins (meilleure aération du boîtier)
• évolution : déjà prévu jusque 600 Mo/s minimum
• pas de réglage maître / esclave (une liaison par périphérique)
• gestion natif de file d’attente des commandes (NCQ) :
l’ordre de traitement des commandes est optimisé pour limiter le
nombre de tours et les oscillations des têtes de lecture donc
+ rapide, - vibrations et – de bruit

IUT Informatique Architecture des ordinateurs 318


Calais
Interface SCSI :
• L'interface SCSI est moins courante que l'interface IDE et n'est
généralement pas intégrée aux cartes mère : il faut installer une carte
contrôleur SCSI sur un bus PCIe ou PCI-X (extention du PCI pour les
serveurs)
• Elle a toujours offert des performances supérieures à l'interface IDE et
utilisé moins de ressources du µp pour fonctionner – utilisée sur les
serveurs de fichiers - (mais performances rattrapées par le SATA2)
• Elle permet de connecter jusqu'à 15 périphériques de tous types :
stockage, scanners, imprimantes, ... mais les lecteurs sont plus chers et il
faut acheter la carte contrôleur
• Évolution de l'interface SCSI :
• Ultra SCSI : 20Mo/s, Ultra Wide : 40Mo/s, Ultra-2 Wide : 80Mo/s,
Ultra-3 Wide (U160) : 160Mo/s
• actuellement : U320 : 320Mo/s
• regroupe de nombreux protocoles de communication dont Gb ethernet
• futur : SAS (Serial Attached SCSI) = SATA + SCSI simultanément
IUT Informatique Architecture des ordinateurs 319
Calais
Évolution des disques durs :
• Augmentation de la vitesse de rotation (actuellement 15000tr/mn max)
• Amélioration du substrat magnétique (augmentation de la densité, ...)
• Amélioration de la fiabilité
• Passage d'un périphérique passif à un périphérique intelligent :
• intégration de mémoires caches
• mécanismes d'anticipation de lecture
• mécanismes de réorganisation du séquencement des accès
• RAID : Redundant Arrays of Inexpensive Disks
• RAID 0 (stripping) : données divisées et écrites sur plusieurs disques en //
+ vitesse
- tolérance aux pannes

IUT Informatique Architecture des ordinateurs 320


Calais
• RAID 1 (mirroring) : données dupliquées sur 2 disques à la fois
+ tolérance aux pannes
- vitesse et surcoût = x2

• RAID 0+1 : disques en RAID 0 dupliqués (RAID 1) – 4 disques min.


+ tolérance aux pannes et vitesse
- surcoût = x2

IUT Informatique Architecture des ordinateurs 321


Calais
• RAID 3 : données divisées et écrites en // + disque parités – 3 disques min.
+ tolérance aux pannes + vitesse + faible surcoût (tjs 1 disque)
- transactions traitées en séquence ( ok pour mono-utilisateur)

• RAID 5 : données divisées par blocs et écrites sur des disques


indépendants avec parités distribuées
+ tolérance aux pannes + vitesse moy. + surcoût + // des trans.
- vitesse de lecture d’1 bloc = vitesse d’1 disque

IUT Informatique Architecture des ordinateurs 322


Calais
• Intel Matrix RAID Technology :
• 2 disques SATA découpés en 2 partitions
• 2 partitions utilisées en RAID 1
• 2 partitions utilisées en RAID 0

IUT Informatique Architecture des ordinateurs 323


Calais
• Nouvelle technologie de stockage : enregistrement perpendiculaire
magnétisation longitudinale : prend + de place et problèmes d’influence
des éléments contigus si miniaturisation trop importante
densité maximale atteinte
magnétisation perpendiculaire :
prend – de place et – de problèmes
d’influence des éléments contigus
+ grande densité possible

Fin 2005 :
• DD 1,8" de
80Go

 2007 :
• DD 3,5" ≥ 1To
• micro DD 1" ≥ 20Go pour pocket PC, PDA, Smartphones …
IUT Informatique Architecture des ordinateurs 324
Calais
9.7.3 Disques optiques numériques
• Les disques compacts (ou CD) sont standardisés au niveau de leurs
caractéristiques physiques et de leur format logique (compatibilité)
• La normalisation initiale correspond au disque compact audio (CD-A) :
"Livre Rouge" rédigé en 1982 par Sony et Philips
Le CD audio (CD-A) :

• Un CD-A est constitué de trois couches :


• un support en polycarbonate (plastique transparent résistant)
• une fine couche réfléchissante d'aluminium
• une laque protectrice (contre les rayures et l'oxydation), sur laquelle
peut être imprimée une étiquette

IUT Informatique Architecture des ordinateurs 325


Calais
• La zone utile est divisée en trois
régions concentriques :
• un en-tête (lead-in)
• les données
• une plage de fin (lead-out)

• Sur l'ensemble de la zone utile est


gravée une seule spirale de 22188
spires d'environ 5.6 km de long

IUT Informatique Architecture des ordinateurs 326


Calais
• Les informations sont enregistrées au niveau de la couche métallique
sous forme de cuvettes (pits) le long de la spirale à partir du centre vers
l'extérieur

• La surface vierge qui séparent deux cuvettes consécutives est appelée


méplat (land)

IUT Informatique Architecture des ordinateurs 327


Calais
• La lecture des données se fait au moyen d'un laser d'une longueur d'onde
de 780 nm (infrarouge)
• La lumière émise par ce laser traverse le polycarbonate puis se réfléchit
sur la couche d'aluminium. Le rayon réfléchi est ensuite guidé par un
miroir unidirectionnel vers une photodiode

IUT Informatique Architecture des ordinateurs 328


Calais
• Le laser est focalisé en une tache un peu plus large que les cuvettes

• Sur une surface vierge (méplat) la lumière est totalement réfléchie et la


photodiode reçoit alors au moins 70% de la lumière émise

• Lorsque l'image du laser chevauche une cuvette, la photodiode reçoit


moins de 28% de la lumière émise (interférences destructrices)
IUT Informatique Architecture des ordinateurs 329
Calais
• Principe de lecture simple, mais systèmes d'asservissement pour :
• conserver l'alignement de la tête de lecture le long de la spirale
• focaliser le laser au niveau de la couche réfléchissante
• La tête n'étant pas en contact avec le disque il n'y a que très peu d'usure

Codage de l'information :
• Contrairement à ce qu'on pourrait penser les cuvettes et les méplats ne
sont pas directement associés aux deux valeurs logiques "0" et "1"
• En fait la valeur logique "1" est définie par une transition de l'intensité
lumineuse détectée : passage d'un méplat à une cuvette et vice-versa

• La longueur des cuvettes et des zones vierges permet ensuite de compter


le nombre de zéros : mécanisme d'horloge
IUT Informatique Architecture des ordinateurs 330
Calais
Problème 1 :
• au moins deux 0 entre deux 1 : sinon problèmes de précision
• au plus dix 0 entre deux 1 : sinon désynchronisation de l’horloge
• Chaque créneau (pit ou land) donne une séquence binaire débutant par
un 1 suivi de deux à dix 0 (entre 3 et 11 bits)
• A cause de ces contraintes il faut 14 bits (sur le CD) pour coder un octet
car 267 combinaisons de 14 bits pour lesquelles on trouve entre deux et
dix 0 entre deux 1 : codage E.F.M. (Eight to Fourteen Modulation)

Problème 2 : lors de la concaténation de deux codes de 14 bits, il est


encore possible de trouver deux 1 consécutifs ou une série de plus de dix
0
• Solution apportée : 3 bits de fusion intercalés tous les 14 bits, donc au
total 17 bits pour représenter un octet
But du système de codage E.F.M. : rendre le système de lecture le plus
tolérant possible à diverses imperfections techniques : centrage du trou,
voile du disque, focalisation du laser, profondeur des creux, épaisseur du
disque, etc
IUT Informatique Architecture des ordinateurs 331
Calais
Problème 3 : d'autres sources d'erreurs (bulles microscopiques ou
poussières piégées dans le polycarbonate, rayures, salissures, empreintes
de doigts ...) et la spécification exige moins de 250 erreurs de lecture par
seconde
• Solution : code de détection et de correction d'erreurs : le code Reed
Solomon entrelacé croisé (CIRC : Cross Interleaved Reed Solomon Code)
• Organisation des données :
1 trame = (24o utiles + 8o CIRC + 1o de contrôle) x 17 bits de codage
= 561 bits + 11 bits de sync + 5 bits de fusion = 588 bits
1 secteur = 98 trames
1 seconde d'enregistrement = 75 secteurs
• Adressage d'un secteur sur un CD-A : minute:seconde:secteur
absolu (depuis le début de la spirale)
relatif (depuis le début de la piste)
• Un CD audio peut être divisé en pistes (jusqu'à 99)
• Débit utile est de 172 ko/s
• Durée d'enregistrement de 74 minutes correspond à 747 Mo utiles
IUT Informatique Architecture des ordinateurs 332
Calais
Le CD informatique (CD-ROM) :

• Le disque compact est sorti peu de temps après l'IBM PC-XT qui était
alors équipé d'un disque dur de 10 Mo !

• Il est vite apparu que les disques compacts pouvaient servir de support à
des données informatiques mais problèmes à résoudre :
• réduction du taux d'erreurs
• repérage plus précis des secteurs
=> format des secteurs revu et précisé dans le "Livre Jaune" rédigé par
Philips et Sony en 1984.

• La structure des secteurs décrite pour les disques audio (98 trames de
588 bits) est conservée.

• Mais l'utilisation des 2352 octets disponibles dans chaque secteur est
modifiée en 2 formats distincts

IUT Informatique Architecture des ordinateurs 333


Calais
• CD-ROM Mode 1 : prévu pour les données informatiques

• 2048 octets de données (adapté à l'adressage binaire)

• + niveau supplémentaire de détection et de correction d'erreurs :


• 4 octets pour la détection (EDC : Error Detection Code)
• 276 octets pour la correction (ECC : Error Correction Code)
• 8 octets sont laissés libres entre les octets de détection et les
octets de correction
• environ 1000 fois moins d'erreurs que le CD-A !

• 12 octets de synchronisation suivis de 4 octets d'en-tête

• Ce format correspond à un débit pour les données utiles de 150 ko/s


et une capacité utile de 650 Mo

IUT Informatique Architecture des ordinateurs 334


Calais
• CD-ROM Mode 2 : prévu pour les données compressées audio ou vidéo

• N'utilise pas de détection d'erreurs supplémentaire

• Permet d'utiliser 2336 octets par secteur, pour un débit de 172 ko/s

IUT Informatique Architecture des ordinateurs 335


Calais
• CD-ROM Mode Mixte :

• Combine les formats CD-ROM et CD-A

• première piste informatique suivie d’une ou plusieurs pistes audio

• CD-ROM XA (ISO 9660) :

• Problème : Les livres rouge et jaune n'autorisent pas le mélange de


secteurs de types différents sur une même piste : limitation pour les
applications multimédia (texte + son + vidéo) car la tête de lecture est
alors obligée de se déplacer en permanence pour alimenter les divers
flux

• Solution : le format CD-ROM XA (en fait 2 formats) permet


l'entrelacement de secteurs de types différents sur une même piste

• Le format des secteurs est légèrement modifié. Il utilise les 8 octets


laissés libres par le format CD-ROM
IUT Informatique Architecture des ordinateurs 336
Calais
• La vitesse de lecture des CD-A est fixée par la fréquence
d'échantillonnage mais il n'y a aucune contrainte pour les CD-ROM : le
débit de transfert est exprimé comme un multiple de 150 ko/s (nX)
• Les premiers lecteurs fonctionnaient à vitesse linéaire constante (CLV :
Constant Linear Velocity), les lecteurs CD-ROM récents fonctionnent à
vitesse de rotation constante (CAV : Constant Angular Velocity), le débit
dépend alors de la position de la tête de lecture le long de la spirale
IUT Informatique Architecture des ordinateurs 337
Calais
CD-R (Recordable) ou disque WORM (Write Once/Read Many) :

• Le contenu d’un CD-R peut être enregistré une fois, il fonctionne


ensuite comme CD-ROM classique en lecture uniquement
• Un CD-R se compose de quatre couches. Entre le substrat en
polycarbonate et la couche réfléchissante (en argent ou en or), se trouve
un colorant organique photosensible

IUT Informatique Architecture des ordinateurs 338


Calais
• L'écriture des données est réalisée par un laser puissant, qui permet de
chauffer localement le colorant et de le rendre opaque
• Le codage des données est identique à celui d'un CD-ROM. A la lecture
les zones "brûlées" absorbent la lumière, alors qu'ailleurs la lumière peut
traverser le colorant pour être réfléchie
• La stabilité des colorants garantit une durée de vie d'au moins 30 ans

CD-RW (ReWritable) ou disque WMRA (Write Many Read Always) :

• La structure d'un CD-RW comporte 6 couches. Le colorant est remplacé


par un alliage pris en sandwich entre deux couches de diélectrique
• Dans un disque vierge, l'alliage est dans une forme cristalline. Il réfléchit
alors en partie la lumière
• Écriture : un laser chauffe l'alliage et le faire fondre, si le
refroidissement est rapide l'alliage prend une forme amorphe qui absorbe
la lumière
• Effacement : si on chauffe suffisamment longtemps une zone amorphe
on retrouve
IUT Informatiqueune structure cristalline
Architecture après refroidissement
des ordinateurs 339
Calais
DVD (Digital Versatile Disc) :

• Alors que le disque compact a été initié comme support audio, le disque
haute densité avait pour objectif initial la vidéo

• Les dimensions d'un DVD sont identiques à celles d'un CD

• Le principe de lecture reste le même, la densité d'information a


augmenté :
• laser avec une plus petite longueur d'onde (635 ou 650 nm, rouge)
• créneaux réduits en largeur et longueur, et spires plus serrées

•L'ensemble des modifications a permis une densité d'information brute


environ 4,5 plus grande

• Le débit d’un DVD 1X est de 1380 ko/s

IUT Informatique Architecture des ordinateurs 340


Calais
• Le DVD utilise la capacité d'un faisceau lumineux de traverser plusieurs
surfaces semi-transparentes : 2 couches de réflexion superposées

• Les DVD existent en quatre versions :


• simple face, simple couche (DVD 5) :

• simple face, double couche (DVD 9) :

IUT Informatique Architecture des ordinateurs 341


Calais
• double face, simple (DVD 10) ou double couche (DVD 18) :

• Le faisceau laser doit traverser deux fois la couche semi-réflective pour


la lecture de la seconde couche donc la densité de celle-ci est légèrement
inférieure (ainsi que sa capacité, de 15 % environ)

• Nombreuses amélioration / CD-ROM : réduction du codage, des codes


de détection / correction d’erreur et des octets de sync.
• Gain finesse gravure (4,5) + gain codages (1,52) : capacité d’un DVD
simple face simple couche 7 fois plus importante que celle d’un CD :
• DVD 5 : 4,7Go
• DVD 9 : 8,5Go
• DVD 10 : 9,4Go
• DVD 18 : 17Go
IUT Informatique Architecture des ordinateurs 342
Calais
• Lecture de la première couche toujours de l’intérieur vers l’extérieur

• Lecture de la seconde couche possible dans les deux sens (possibilité


d’enchaîner les deux couches sans perte de temps, indispensable pour les
applications vidéo du DVD)

DVD inscriptibles et réinscriptibles :

• Les mêmes techniques d’enregistrement que celles des CD-R et CD-RW


permettent de fabriquer des DVD-R et des DVD-RW

Interfaces aux lecteurs de CD et de DVD :


Ultra ATA, SCSI, SATA, USB, Firewire

IUT Informatique Architecture des ordinateurs 343


Calais
9.7.4 Disques magnéto-optiques numériques
• Le laser permet de réduire la dimension des pistes des supports
magnétiques : les têtes de lecture/écriture sont guidées par un laser
• Aucune norme n'étant établie il existe de nombreux formats propriétaires :
• Iomega Zip : disquette de 100Mo (200Mo compressés)
taux de transfert 11,2Mo/s max temps d'accès 29ms suplantés par
• SuperDisk LS-120 : disquette 3"1/2 de 120Mo, la clé USB
compatible disquettes standards, transfert 250Ko/s
• Syquest Ezflyer : 230Mo sur cartouche, plus
performant suplantés par
le CDR/W et
•Dynamo 640SE : 640Mo, taux de transfert 3,9Mo max,
le DVDR/W
1,1Mo en moyenne, intégrité des données > 30 ans !
• Iomega Jaz : disquette de 2Go (4Go compressés), taux
de transfert 8,7Mo/s max, accès lecture 10ms, écriture suplantés par
12ms le DD externe
• Syquest SyJet : 1,5Go, accès 12ms, buffer 512Ko
IUT Informatique Architecture des ordinateurs 344
Calais
9.8 Périphériques d’E/S
9.8.1 Carte graphique (ou carte vidéo, ou adaptateur graphique vidéo)
• La carte vidéo est conçue pour permettre une communication de données
entre le processeur et elle ainsi qu’entre elle et l’écran
• Sur un écran l’image est découpée en points élémentaires : pixels
(picture’s element – pict’s el.)
• Résolution d’une image = nombre de pixels présents simultanément
(donné par nb pixels par ligne * nb pixels par colonne)
• La couleur d’un pixel est constituée en mélangeant 3 couleurs : le rouge,
le vert et le bleu : système RVB (RGB en anglais)
• 2 codage possible des couleurs :
• Vraies couleurs (true color) : codage de la valeur de chaque
composante sur un certain nombre de bits. Ex : 8+8+8 = 24 bits
• Palette : un nombre de couleurs déterminées et numérotées puis
stockées dans une table
IUT Informatique Architecture des ordinateurs 345
Calais
• Coût du codage :
• 2 couleurs : 1 bits par pixel (mémoire vidéo = plan de bits : bitmap)
• 4 couleurs : 2 bits par pixel
• 16 couleurs : 4 bits par pixel
• 256 couleurs : 8 bits par pixel
• 65 536 couleurs : 16 bits par pixel
• 16 777 216 couleurs (16,8 millions) : 24 bits par pixel
• 4 294 967 296 couleurs (4,3 milliards) : 32 bits

• En vraies couleurs sur 24 bits on code 16,8 millions de couleurs : ceci


suffit à représenter toutes les nuances décelables par l’œil humain (inutile
d’utiliser plus de 8 bits par composantes)

IUT Informatique Architecture des ordinateurs 346


Calais
• Capacité de la mémoire vidéo :
Ex : 1024 x 768 en 256 couleurs : 1024 * 768 * 8 = 6 291
456 bits
= 768Ko
Nombre de couleurs
Résolution 16 256 65536 16,8M
640 x 480 150Ko 300Ko 600Ko 900Ko
800 x 600 235Ko 469Ko 938Ko 1,37Mo
1024 x 768 384Ko 768Ko 1,5Mo 2,25Mo
1280 x 1024 640Ko 1,25Mo 2,5Mo 3,75Mo
1600 x 1200 938Ko 1,83Mo 3,66Mo 5,49Mo

• Pour gérer un affichage de qualité (1600 x 1200 en vraies couleurs) il


faut déjà 6Mo de mémoire vidéo uniquement pour une image !

IUT Informatique Architecture des ordinateurs 347


Calais
RAMDAC (RAM Digital-to-Analog Converter) :
• Le RAMDAC convertit les informations numériques en provenance de la
mémoire vidéo et/ou du processeur graphique en signaux analogiques
destinés au moniteur

• Convertit à la volée les codes couleurs des pixels en signaux analogiques


• Est composé de 3 DAC : un par couleur primaire
• Plus la résolution utilisée est grande, plus le RAMDAC doit être rapide
• Pour un bon confort des yeux : 72 images par secondes minimum
=> fréquence verticale : 72Hz minimum
• Fréquence horizontale (exprimée en KHz) = nb lignes * fréq. verticale

IUT Informatique Architecture des ordinateurs 348


Calais
Interface :
• A l’origine connectées au bus ISA puis PCI mais partage du bus avec les
autres périphériques pour communiquer avec le µp et la mémoire

• Avec l’arrivée de la 3D et notamment l’utilisation des textures le bus PCI


est devenu trop lent aussi est apparu un nouveau port : AGP (Accelerated
Graphic Port)
• Avantages :
• débit : AGP 8X = environ 2Go/s
• communication directe avec la mémoire sans passer par le µp
• Attention : l’AGP est un port et non un bus car il ne fonctionne qu’avec
un seul composant !
• Avec le PCIe carte graphique connectée sur un port 16x = 4Go/s :
aucun intérêt car un débit d’un peu plus de 1Go/s suffit pour l’instant
• Avantages : + simple, - coûteux et plusieurs cartes en 4x ou 8x
IUT Informatique Architecture des ordinateurs 349
Calais
Mémoire vidéo :
• VRAM (Video RAM) : DRAM avec 2 accès simultanés à la mémoire
• WRAM (Window RAM) : 25% plus performante que la VRAM
• SGRAM (Synchronous Graphic RAM) : simple accès mais sur 128 bits
• MDRAM (Multibank DRAM) : simple accès mais entrelacement
• DDR SDRAM : identiques à la mémoire centrale
• GDDR2 et GDDR3 : optimisées pour la vidéo avec fréquences élevées

• Avantage des VRAM par rapport aux DRAM :


• Grâce au double accès simultané, le processeur peut transférer des
données vers la mémoire vidéo pendant que le RAMDAC la lit pour
envoyer les données analogiques au moniteur
• Avec les DRAM les accès sont concurrentiels : pourtant
actuellement les mémoires utilisées dans les cartes récentes sont des
DDR-SDRAM à simple accès mais ayant des fréquences très élevées
IUT Informatique Architecture des ordinateurs 350
Calais
2D :
• À l’origine tous les calculs liés à la construction des images étaient
effectués par le CPU : carte graphique « = » RAMDAC
• Pour décharger le CPU les cartes graphiques ont intégré des fonctions de
dessin 2D :
• dessin : ligne, cercle …
• zoom
• manipulation de pixels
•…

IUT Informatique Architecture des ordinateurs 351


Calais
3D :
• En informatique, on parle d’affichage 3D lorsqu’on donne une
impression de relief à partir d'une image plane, en jouant sur les effets de
perspective, d'éclairage, d'ombrage, de texture, etc
• L’affichage 3D est généralement utilisé pour des séquences animées
calculées en temps réel
• Si la fréquence de répétition de la vidéo atteint 25 images distinctes par
seconde, chaque image doit être calculée et affichée en moins de 40
millisecondes
• Pour ne pas surcharger le CPU, les calculs nécessités par l'affichage 3D
sont confiés à un circuit intégré situé sur la carte graphique de l'ordinateur
• L'affichage 3D, qui nécessite une puissance de calcul importante, est
longtemps resté l'apanage des gros ordinateurs, puis des stations de travail
• Il est arrivé sur les ordinateurs personnels à la suite de la demande
importante des jeux vidéo au travers des cartes 3dfx … maintenant disparu

IUT Informatique Architecture des ordinateurs 352


Calais
• Étapes lors de la réalisation d’une image 3D :

1 : Positionnement des points 2 : Liaison des points en polygones

3 : Remplissage des polygones (z-buffer) 4 : Lissage de Gouraud


IUT Informatique Architecture des ordinateurs 353
Calais
• Étapes lors de la réalisation d’une image 3D (suite) :

5 : Plaquage de textures 6 : Éclairage

7 : Transparence 8 : Effets divers


IUT Informatique Architecture des ordinateurs 354
Calais
Programmation 3D :
• L’accès aux fonctions câblées des cartes graphiques se fait au travers de
bibliothèques de fonctions d’affichage
• 2 bibliothèques utilisées actuellement :

• OpenGL : évolution de GL, bibliothèque graphique créée par


Silicon Graphics. Standard dans le milieu professionnel il est
également utilisé dans le domaine ludique et portable entre
différents systèmes d’exploitation (Unix, Linux, Windows, MacOS,
…)
• Direct3D : bibliothèque de Microsoft pour Windows. Très
répandue mais propriétaire et dédiée à un seul système

• Problème : pour chaque bibliothèque il faut développer un driver


spécifique (d’où différences de performances dues à la qualité des drivers)

IUT Informatique Architecture des ordinateurs 355


Calais
Des processeurs graphiques complexes :
• Les processeurs graphiques reprennent les optimisations des CPU :
• unités en parallèle (calculs, textures, pixel, …)
• plusieurs pipelines d’exécution (application des textures)

• Ils sont aussi complexes à réaliser que les CPU (voir +) :


Le processeur graphique G70 (Nvidia 7800 GTX) est constitué de 320
millions de transistors (Pentium 4 EE : 178 millions)
• Ils sont programmables :
• vertex program : programme implanté dans le processeur graphique
et travaillant au niveau des points 3D
• fragment program : programme implanté dans le processeur
graphique et travaillant au niveau des pixels
=> possibilité de nouveaux effets très réalistes

IUT Informatique Architecture des ordinateurs 356


Calais
Des cartes vidéo multi-fonctions :

• Les cartes vidéo actuelles ne se contentent plus seulement de l’affichage


2D/3D mais intègrent de plus en plus souvent d’autres fonctions :
• compression/décompression mpeg2 pour la vidéo
• capture d’images ou de vidéo
• sortie pour affichage sur un téléviseur ou vidéoprojecteur
• affichage sur un deuxième moniteur
• port pour périphériques de vision 3D (casque, lunettes, …)
• récepteur télévision
• fonctions magnétoscope
• compression selon différents formats pour le montage vidéo
•…
IUT Informatique Architecture des ordinateurs 357
Calais
9.8.2 Moniteur
Écran cathodique :
• Il fonctionne sous le même principe qu’un écran de télévision : 3 canons
à électrons (rouge-vert-bleu) envoient leurs faisceaux convergents pour
obtenir la couleur souhaitée par mélange
• Un champ magnétique, généré par des plaques métalliques alimentées,
oriente les faisceaux vers les points à afficher
• L’affichage se fait en partant en haut à gauche de l’écran puis de gauche
à droite, ligne après ligne : balayage

• Les électrons frappent des photophores sur la surface interne de l’écran


qui luisent pendant un bref instant seulement : nécessité de rafraîchir
• Pour ne pas percevoir de scintillement, le rafraîchissement doit être
supérieur à 72Hz
IUT Informatique Architecture des ordinateurs 358
Calais
(1) Cathode (5) Plaques horizontales
(2) Électrons (6) Écran
(3) Anode (7) Photophore
(4) Plaques verticales
IUT Informatique Architecture des ordinateurs 359
Calais
Écran LCD à cristaux liquides TFT (Thin Film Transistor) :
• Ce type d’écran qui était utilisé par les portables remplace maintenant
également les moniteurs de bureau cathodiques.
• Le principe consiste à faire passer la lumière émise par un panneau
fluorescent à travers des filtres successifs :
• un filtre polarisant vertical
• un filtre de couleur
• une cellule à cristaux liquides
• un filtre polarisant horizontal

IUT Informatique Architecture des ordinateurs 360


Calais
Caractéristiques des moniteurs cathodique :
• pas de masque ou pitch (distance horizontale qui sépare 2 points de
phosphore de même couleur : plus il est petit et plus l’image est fine
compris entre 0,29 pour les plus mauvais à < 0,2 pour les meilleurs)
• fréquence de rafraîchissement à sa résolution maximale
Caractéristiques des moniteurs LCD :
• temps de réponse (quelle que soit la couleur)
• couleurs affichables
• Les tailles des écrans des moniteurs sont indiqués par rapport à leur
diagonale mesurée en pouces (de 14 à 25 voir plus)
• Dans de nombreuses publications est fait un rapport entre taille de l’écran
et résolution d’affichage optimale pour une utilisation confortable : ce
rapport est contestable …
• Résolutions d’affichage : 640x480, 800x600, 1024x768, 1152x864, 1280x960,
1280x1024, 1280x800, 1400x1050, 1400x900, 1600x900, 1600x1200, 1800x1440,
1920x1080, 1920x1200, 1920x1440, 2048x1536 …
IUT Informatique Architecture des ordinateurs 361
Calais
9.8.3 Imprimante
9.8.3.1 Critères de classification :
• Famille technologique :
• à impact : frappe du caractère sur un ruban encreur devant la feuille
(marguerite, tulipe, boule, aiguilles, tambour, bande)
• sans impact : caractère formé par projection ou transfert d'encre
(laser, jet d'encre, thermique)
• Mode d'impression du caractère :
• caractère préformé : type machine à écrire
(marguerite, tulipe, boule, tambour, bande)
• impression matricielle : caractère formé par une matrice de points
(aiguilles, laser, jet d'encre, thermique)

IUT Informatique Architecture des ordinateurs 362


Calais
• Mode d'impression du texte :
• mode caractère : impression caractère par caractère
(marguerite, tulipe, boule, aiguilles, jet d'encre, thermique)
• mode ligne : impression ligne à ligne
(aiguilles, tambour, bande, jet d'encre, thermique)
• mode page : impression page à page
(laser, jet d'encre)

• Mode d'avancement du papier :


• par traction : entraînement à l'aide de roues à picots dont les dents
s'insèrent dans des perforations du papier (bandes caroll)
• par friction : entraînement par un rouleau caoutchouté

IUT Informatique Architecture des ordinateurs 363


Calais
9.8.3.2 Imprimante matricielle à impact

• une tête d'impression porte des


aiguilles (9, 24, ou 48) qui
frappent un ruban carboné défilant
devant le papier
• le ruban est noir ou couleur (4
bandes NRVB ou NJMC)
• problèmes avec la couleur :
• certaines couleurs s'usent
beaucoup plus vite que
d'autres
• dérèglement de la hausse du
ruban qui fait baver les
couleurs

IUT Informatique Architecture des ordinateurs 364


Calais
9.8.3.3 Imprimante matricielle thermique
• avec papier thermosensible : l'aiguille est chauffée - son contact avec le
papier déclenche une réaction chimique qui fait apparaître un point bleu ou
noir
• avec un ruban à transfert thermique : des éléments de couleurs sont
déposés en chauffant le ruban - des rubans RVB ou JMC permettent
d'obtenir 100 couleurs et une résolution de 400 ppp (points par pouce)

• impression matricielle : + permet l’impression de dessins


- lent
- bruyant
IUT Informatique Architecture des ordinateurs 365
Calais
9.8.3.4 Imprimante jet d’encre
• jet continu :

• une série de buses émet de l’encre à jet continu transformé en gouttelettes


• les gouttelettes passent devant une électrode qui les charge
électriquement
• elles sont ensuite déviées par des plaques de déflexion en fonction de
leur charge
IUT Informatique Architecture des ordinateurs 366
Calais
• goutte à la demande :

• le circuit d’encre est maintenu à basse pression : les gouttelettes restent


dans l’électrode creuse
• lorsqu’un point doit être imprimé, une onde de choc est envoyée à la
buse et la goutte est projetée sur le papier
• avantage : plus besoin de récupérer l’encre inutilisée
IUT Informatique Architecture des ordinateurs 367
Calais
9.8.3.5 Imprimante laser

• même principe que les photocopieurs : technique xérographique


• un tambour couvert de sélénium est chargé +, un laser enlève les charges
+ des points à ne pas imprimer, de l’encre en poudre (toner) chargée – est
déposée uniquement sur les points à imprimer, cette poudre est déposée
sur le papier puis fixée par cuisson
• rapide, précis, faible prix de revient, mais cher à l’achat
IUT Informatique Architecture des ordinateurs 368
Calais
9.8.3.6 Critères de choix
• interfaçage : parallèle, série, usb, sans fil (bluetooth ou wifi)
• qualité : les jet d’encre sont maintenant meilleures que les laser
• vitesse d’impression : les lasers sont les plus rapides
• polices de caractères
• choix du papier : laser peu cher, jet d’encre + cher, thermique très cher
• format du papier : A4, A3, A2, A1, … (passer aux tables traçantes)
• bruit : les jet d’encre et laser sont peu bruyantes

Pour les anciennes imprimantes :


• nombre de colonnes en mode texte
• dispositif encreur : type de ruban

IUT Informatique Architecture des ordinateurs 369


Calais
9.8.4 Scanner

• une source lumineuse éclaire intensément la ligne du document à


scanner, à l’aide d’un miroir et d’une lentille focalisatrice une barrette de
cellules photosensibles CCD (dispositifs à couplage de charge) recueille la
luminosité réfléchie par le document
• 3 types de scanners : - scanner à main
- scanner feuille à feuille
- scanner à plat
IUT Informatique Architecture des ordinateurs 370
Calais
9.8.5 Clavier
• Plusieurs types de claviers selon la technologie utilisée pour les touches :
• type membrane : film plastique recouvrant hermétiquement des
microcontacts (résistants mais pénibles à utiliser)
• type calculatrice : touches en plastique dur montés sur ressorts (peu
ergonomique, contacts pas francs)
• type gomme : les touches sont d’une matière dont le toucher rappelle
celui de la gomme (frappe rapide impossible)
• type machine à écrire : touches ergonomiques, dureté calculée …
(claviers actuels mais à l’origine très chers : 1000F à 10000F)
• type cristaux liquides : permet d’associer à chaque touche un
caractère ou une fonction particulière tout en affichant un
pictogramme de celui-ci sur la touche

IUT Informatique Architecture des ordinateurs 371


Calais
• Fonctionnement : c’est un véritable petit µordinateur à lui seul !
• ROM et RAM : codes des touches
• dispositif d’E/S pour les touches et pour dialoguer avec l’ordinateur
• µprocesseur qui joue le rôle de contrôleur, d’interface et de circuit d’E/S

IUT Informatique Architecture des ordinateurs 372


Calais
9.8.6 Souris
9.8.6.1 Souris à boule

• en déplaçant la souris la boule fait tourner deux rouleaux disposés à


angle droit l’un de l’autre (déplacement vertical et horizontal)
• ces rouleaux sont solidaires de roues crantées qui permettent de déduire
le sens et la vitesse de déplacement de la souris à l’aide de cellules
photoélectriques
IUT Informatique Architecture des ordinateurs 373
Calais
9.8.6.2 Souris optique infrarouge et laser

• une LED illumine la surface


• la lumière réfléchie est captée au travers de lentilles

IUT Informatique Architecture des ordinateurs 374


Calais
• Image analysée et comparée à la précédente pour déterminer le déplacement

• LED infrarouge / laser

IUT Informatique Architecture des ordinateurs 375


Calais
• Le capteur reste le même mais la qualité de l’image traitée est meilleure
image LED infrarouge image laser

• Précision et rapidité de réaction accrues

IUT Informatique Architecture des ordinateurs 376


Calais
9.8.7 Modem
• C’est un pont entre les signaux numériques de l’ordinateur et les signaux
analogiques transmis sur la ligne téléphonique
• Lors d’une communication entre 2 ordinateurs, d’un côté les 0 et les 1
sont transformés en signaux analogiques en faisant varier la fréquence du
signal (modulation) et de l’autre côté l’opération inverse est effectuée
(démodulation)
• modulation-démodulation : modem
• Les données sont transmises par paquets (suites de bits) – chaque paquet
utilise 1 bit de début et 1 ou 2 bits de fin pour indiquer le début et la fin de
transmission lors de transmission asynchrone
• Pour détecter et corriger les erreurs un bit de parité est utilisé (mis à 1 si
le nombre de 1 est impair)
• La vitesse de transmission est exprimées en bits/s.

IUT Informatique Architecture des ordinateurs 377


Calais
9.8.7.1 Modems RTC normalisés
CCITT Débit en bits/s
V.21 300
V.22 600/1200
V.22bis 1200/1400
V.23 600/1200
V.26 2400
V.26bis 1200/2400
V.27 4800
V.27bis 2400/4800
V.29 4800/9600
V.32 4800/9600
V.32bis Jusqu’à 14400
V.34 Jusqu’à 28800
V.34+ Jusqu’à 33600
V.90 Jusqu’à 56000
IUT Informatique Architecture des ordinateurs 378
Calais
• Sens de transmission :
• unidirectionnel (ou simplex)
• bidirectionnel à l’alternat (ou semi-duplex ou half-duplex)
• bidirectionnel simultané (ou duplex ou full-duplex)
• Durée de transmission fonction de :
• nombre de bits pour coder un caractère
• vitesse de transmission
• compression ou non
• exemple : transférer un fichier sans compression de 9600 caractères
codés sur 10 bits à 19200 bauds :

(9600 * 10) / 19200 = 5 secondes

IUT Informatique Architecture des ordinateurs 379


Calais
9.8.7.2 Modem ADSL :

• ADSL signifie Asymmetric Digital Subscriber Line en anglais

• En français : RNA « raccordement numérique asymétrique » ou « liaison


numérique à débit asymétrique »

• Utilise des fréquences supérieures à celles d'un signal voix

• Les données et le signal voix circulent à des fréquences différentes :


voix : 300Hz à 4000Hz
ADSL : jusqu'à 1MHz
ADSL2+ : jusqu’à 2MHz

• Même principe pour le SDSL sauf que débit montant =débit descendant

• Emission et réception simultanées à 100 % des débits respectifs montant


(émission) et descendant (réception).

IUT Informatique Architecture des ordinateurs 380


Calais
• Débits standards rencontrés en France :
• montants entre 128kbits/s et 1024kbits/s
• descendants jusqu’à 24Mbits/s

• Nécessité de poser des filtres ADSL entre chaque téléphone (ou fax ou
modem RTC) et sa prise murale afin de séparer correctement les signaux des
téléphones de ceux de l'ADSL

• Se raccorde via une prise Ethernet ou USB

• Peut être intégré à un router souvent Wifi

• Peut être intégré à une machine multifonction (freebox, livebox, neufbox,


…)

IUT Informatique Architecture des ordinateurs 381


Calais