Académique Documents
Professionnel Documents
Culture Documents
Structure Machine
Structure Machine
Haouam M. Yassine
2013-2014
Plan du cours
• Introduction
• Structure de base d’un ordinateur
• Mémoires secondaires
• Les Entrées/Sorties
1. Introduction à l'informatique
Définition 1:
Ordinateur : Machine capable d’effectuer automatiquement des
opérations arithmétiques et logiques (à des fins scientifiques,
administratives, comptables, . . . ) à partir de programmes
définissant la séquence de ces opérations.
Définition 2:
Ordinateur : C’est un appareil électronique qui peut stocker,
récupérer et traiter les données à travers un programme
Historique
• 1642: Blaise Pascal créa la machine d'arithmétique
(pascaline)
• Destinée à effectuer mécaniquement des additions et des soustractions.
• L’automatisation était réalisée à l’aide de roues dentées.
• 1673: Gottfried Leibniz
ajouta à la Pascaline la
multiplication et la division
avec des nombres à 12
chiffres.
• Il a décrit les mathématiques
binaires, système de base
des calculs des ordinateurs
d'aujourd'hui
• 1801 le Français Joseph-
Marie Jacquard. invente une
machine à tisser
programmable à l’aide des
cartes perforées
• 1833 : Machine de
Charles Babbage (La
machine à différence)
• Principes du métier à
tisser
• 4 opérations
arithmétiques de bases
• Ensuite il imagine une machine analytique
• Quatre parties : magasin (mémoire), moulin (unité de
calcul), entrée (lecteur de cartes perforées), sortie
(perforation)
• Opérations arithmétiques, test et branchement
conditionnel
• Non construit faute de moyen.
• 1890 Herman Hollerith utilise une machine à cartes
perforées pour le recensement américain.
Première génération (1945-1955)
• 1945-50 : ENIAC
(Electronic Numerical
Integrator And Calculator) :
• 18 000 tubes,
• 30 tonnes,
• multiplie 2 nombres de 10
chiffres en 3 millisecondes.
Inconvénients
Deuxième génération (1955-1965)
• Remplacement des tubes
par des transistors
Mémoire
Unité arithmétique
Unité de
et logique
commande
Accumulateur
Entrée Sortie
L’architecture interne
La mémoire Adresse
codée en binaire. … …
N …
• Chaque mot de la
mémoire est accessible
par l’intermédiaire de Lecture/Ecriture
l’adresse mémoire. Données
Les Bus
Ce sont les moyens de transport de l’information à
l’intérieur de l’ordinateur.
On distingue trois catégories de bus:
• Les bus de données
• Il transporte les données
• Capacité nombre de fils (un bit par fil)
• Les bus d’adresses
• Il transporte l’adresse à laquelle on veut lire ou écrire une donnée
• Le bus de commande
• C’est un ensemble de lignes (fils) de transport des ordres ou
commandes destinés aux différents éléments de l’ordinateur pour
effectuer les opérations
L’architecture interne
L’unité de commande (1)
• Exemple d’instruction:
• Instruction d’addition: ADD A,B,C (instruction à 3 opérandes)
ADD: Code opérations
A,B,C : Opérandes
CA+B
Types d’instructions
• On distingue six groupes d'instructions :
• transferts de données : de mémoire à registre, de
registre à registre, de registre à mémoire;
• opérations arithmétiques : addition, soustraction,
multiplication et division;
• opérations logiques : ET, OU inclusif, NON, etc.;
• contrôle de séquence : branchements conditionnels ou
non, appel de procédure, etc.;
• entrées/sorties;
• manipulations diverses : décalage, conversion de
format, incrémentation, etc.
Modes d'adressage
• Un champ adresse peut permettre :
• D’indiquer une valeur
• De référencer un registre ou un mot en mémoire
• Modes d’adressage
• Adressage immédiat :
• le champ adresse contient la valeur de l’opérande
• Exemple: MOV #100, R1
le registre R1 100.
• Adressage registre :
• Le champ adresse contient le numéro (nom) du registre
• Exemple: CLR R1
Le registre R1 0
Modes d'adressage
• Adressage direct: @ Contenu
• Le champ adresse de l'instruction contient 0
l'adresse effective de l'opérande (l’adresse
1 205
qui contient la valeur de l’opérande).
• Exemple: MOV 100, R2 …
100 15
101 23
102 1
103 105
…
R2 15
Modes d'adressage
• Adressage indirect: @ Contenu
• Le champ adresse de l'instruction contient 0
l'adresse d’une case mémoire qui contient
1 205
l’adresse effective de l'opérande
• Exemple: MOV (102), R2 …
100 15
101 23
102 1
103 105
…
R2 2O5
Le traitement des instructions
Phase 1 : Recherche de l’instruction en mémoire
CO 0
(2) Lecture
UAL RI
Load 7
Décodeur
R1
Séquenceur
(3) CT
Load 7
Recherche de l’instruction en mémoire
• (CO) Bus @
// 0 Bus @
• Lecture
• ((Bus @)) Bus de données
// Load 7 Bus de données
• (bus de données) RI
// Load 7 RI
• (RI.Code opération) Décodeur
// Load Décodeur
Décodage et recherche de l’opérande
7
(1) CT
CO 0
(2) Lecture
UAL RI
Load 7
Décodeur
R1 2O
Séquenceur
(3) CT
20
Décodage et recherche de l’opérande
• (RI.Opérande) Bus @
// 7 Bus @
• Lecture
• ((Bus @)) Bus de données
// 20 Bus de données
• (bus de données) R1
// 20 R1
Exécution de l’instruction
7
(1) CT
CO 10
2O
NOP (2) Lecture
UAL RI
Load 7
Décodeur
R1 2O
Séquenceur
(3) CT
20
Exécution de l’instruction
• CO (CO) + 1
• // CO 1
3. Les mémoires
Définition
• Une mémoire est un dispositif capable:
• d’enregistrer, de conserver et de restituer des
informations (instructions et variables).
• Débit
• Nombre d’octets ou bits pouvant être lus ou écrits par secondes.
Méthodes d’accès
• Accès séquentiel
• Pour accéder à une information on doit parcourir toutes les
informations précédentes
• Accès lent
• Exemple : bandes magnétiques (K7 vidéo)
• Accès direct
• Chaque information a une adresse propre
• On peut accéder directement à chaque adresse
• Exemple : mémoire centrale
• Accès associatif/par le contenu
• Une information est identifiée par une clé
• On accède à une information via sa clé
• Exemple : mémoire cache
Hiérarchie de mémoire
• L’idéale c’est l’utilisation d’une mémoire rapide de grande
capacité.
• Problème: les mémoires de grande capacité sont souvent
très lente et les mémoire rapides sont très chères.
• Afin d’obtenir le meilleur compromis coût-performance, on
définie donc une hiérarchie mémoire.
• On utilise des mémoires de faible capacité mais très rapide pour
stocker les informations fréquemment utilisées par le
microprocesseur.
• On utilise des mémoires de capacité importante mais beaucoup
plus lente pour stocker les informations les moins utilisées par
microprocesseur.
< 400 octets
Registre
Capacité
Vitesse
Jusqu’à 4 Mo
Mémoire cache
La PROM:
• C’est une ROM qui peut être programmée une seule fois par
l'utilisateur (Programmable ROM).
Mémoire non volatile.
Mémoire rapide.
Coût relativement faible
Modification impossible.
L’ EPROM (Erasable Programmable ROM)
• Elles sont des ROM que l'on peut programmer, effacer et
reprogrammer.
Reprogrammable et non Volatile.
Impossible de sélectionner une seule cellule à effacer.
L’écriture est beaucoup plus lente que sur une RAM
Coût élevé
Mémoire flash
• le contenu est effacé électriquement et plus rapidement que sur
les EEPROM
Mémoires à semi-conducteurs (2/2)
• Les mémoires vives (RAM: Random Acces Memory)
• Réalisées à base de semi-conducteurs.
• Accès en lecture et écriture.
• Mémoires à accès aléatoire (RAM : Random Acces
Memory), c'est-à-dire que le temps d'accès à l'information
est indépendant de sa place en mémoire.
• Mémoires volatiles : la conservation de son contenu
nécessite la permanence de son alimentation électrique.
• Un temps d’accès moyen mais plus rapide que les
mémoires magnétiques.
• Pour la communication avec les autres organes de
l’ordinateur, la mémoire vive utilise les bus ( bus d’adresses
et bus de données)
Types des mémoires vives 1/2
• Il existent deux grandes familles des mémoires vives : les
mémoires statiques (SRAM) et les mémoires dynamiques
(DRAM).
Lignes de mots
mot mémoire.
2n mots
Opération de lecture:
1 2
Opération d’écriture:
1 3
Comment calculer la capacité d’une MC ?
• Soit n la taille du bus d’adresses
• Soit m la taille du bus de données (la taille d’un mot mémoire )
• On peut exprimer la capacité de la mémoire centrale soit en nombre de
mots mémoire ou en bits ( octets, kilo-octets,….)
• La capacité = 2 n Mots mémoire
• La capacité = 2 n x m Bits
Exemple :
• Dans une mémoire la taille du bus d’adresses n=14 et la taille du bus de
données m=4.
• Calculer la capacité de cette mémoire ?
1: load R3
Premier accès aux instructions
2: add R2 2, 3, 4, 5 en MC
3: load R4
4: sub #1 Les 4 accès suivants s’effectuent
5: jnz 2 À partir du cache
• Soient
• h la probabilité de succès h Tc Tm Td Teff
• Tc le temps d’accès au cache 0;9 1 20 5 3
• Tm le temps de lecture d’un bloc 0,8 1 20 5 5
de mots en mémoire centrale
0,7 1 20 5 7
• Td le temps d’accès à un mot en
mémoire centrale
alors Teff le temps effectif pour accéder à une information
• Principe
• Les échanges d’informations entre mémoire de niveaux différents
se font par blocs d’adresses consécutives: une ligne mémoire
• pas beaucoup plus coûteux de lire une ligne qu’un seul mot
• et s’adapte bien au principe de localité spatiale
Structure cache/mémoire principale
Organisation mémoire
• La mémoire cache possède x blocs
• La mémoire centrale possède y blocs
• y >> x
Principe général
• L’UC veut faire référence à un bloc X2 dans le cache
• Recherche de X2 dans le cache
• Défaut de cache
Placement des données dans le cache
• Pour le processeur la présence de la mémoire
cache est transparente
• Le CPU demande toujours à accéder à une adresse
en mémoire centrale (pour lecture ou écriture)
• La mémoire cache contient des lignes de mots de la
mémoire centrale
• Les blocs ont généralement entre 4 et 128 octets et
sont tous de même taille dans un cache donné.
• La mémoire centrale et la mémoire cache ont
impérativement les même tailles de blocs.
Adressage
• L’adresse fournie par le processeur peut être scindée en
deux parties : le N° de bloc et l’adresse dans le bloc.
Un
Lebloc
le bloc
blocapeut
ne
unpeut
êtreêtre
nombrestocké
stocké
de n’importe
choixque
limitéoù Cache associatif par
dans un
le cache
seul endroit. ensemble de bloc
Cache à
Cache associatif correspondance
Correspondance associative
• Une ligne de la mémoire cache correspond à n'importe
quelle bloc de la mémoire centrale
• Mémoire cache de 64 Ko
• 64 Ko = 64 x 1024 octets = 65536
• 65536 / 4 = 16384 lignes
• Mémoire centrale de 16 Mo
• doit être gérée via les 64 Ko de cache et ses 16384 lignes
• Elle contient 4M de blocs de 4 octets chacun
• Longueur de l’adresse:
• Chaque octet étant directement adressable par une
adresse 24 bits (224 = 16M)
• Etiquette
• Nombre de blocs dans la mémoire principale 4M
• L’étiquette : 22 bits (222 = 4M).
• Numéro d’octet
• Nombre d’octets par bloc 4 : 2 bits (22 = 4)
• Adresse de la mémoire principale
0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0
• Opération de lecture
• Pas de modification de valeurs : toujours cohérent
• Opération d'écriture
• Modification du contenu du cache : la partie équivalente en
mémoire centrale n'est plus cohérente
Cohérence cache/mémoire en écriture
2 techniques :
• Inconvénient du write-back
• Problème si d'autres éléments accèdent à la mémoire
en écriture
• Périphériques en mode DMA (Direct Memory Access)
• Multi-processeurs avec mémoire commune
• Nécessite alors des algorithmes supplémentaires pour
gérer la cohérence