Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
(5) (5)
ALU (2)
CPU
(3)
1. Mémoire centrale
Une mémoire peut être représentée comme une armoire de rangement
constituée de différents tiroirs. Chaque tiroir représente alors une case mémoire qui
peut contenir un seul élément : des données. Le nombre de cases mémoires pouvant
être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro. Ce
numéro est appelé adresse. Chaque donnée devient alors accessible grâce à son
adresse.
Une case de la mémoire peut contenir soit une adresse, soit une donnée et
dans chaque cas la représentation est sous forme d’une chaîne de bits. Chaque case
ou chaque mot d’une mémoire est identifiée par une adresse qui est unique. Les
emplacements sont disposés de façon séquentielle et portent les numéros 0 à -1, n
étant le nombre de bits représentant une adresse mémoire.
Dans une mémoire de taille mots les adresses varient de 0 à -1. A chaque
mot de la mémoire on associe aussi 2 entités : son unique adresse et son contenu qui
peut varier. Généralement la mémoire d’un ordinateur est décrite par 2 paramètres :
la taille d’un mot et le nombre de mots que comporte la mémoire. Généralement, le
nombre de mot est une puissance de 2 et l’unité c’est = 1024 =1kilobit. La taille
d’un mot varie généralement en multiple de ou octet.
Caractéristiques de la mémoire
Les principales caractéristiques d'une mémoire sont les suivantes :
La capacité: représente le volume global d'informations que la mémoire peut
stocker.
La capacité peut s’exprimer en :
- Bit : un bit est l’élément de base pour la représentation de l’information.
- Octet : 1 Octet = 8 bits – kilo-octet (KO ) : 1 kilo-octet (KO )= 1024 octets = 210 octets
- Méga-octet ( MO) : 1 Méga-octet ( MO)= 1024 KO = 220 octets
- Géga-octet ( GO) :Géga-octet ( GO)=1024 MO = 230 octets
- Téra-octet (To) : 1 téra-octet (To)= 1024 Go =240 octets
Le débit: est le volume d'information échangé par unité de temps, exprimé en bits
par seconde
- Une mémoire est dite volatile si elle perd son contenu (les informations)
lorsque la source d’alimentation est coupée.
- Une mémoire est dite non volatile (mémoire permanente ou stable), si elle
conserve son contenu lorsque la source d’alimentation est coupée
Exemple :
=256 mots
Longueur d’une adresse 8 bits
On veut représenter 0110
Dans la zone mémoire d’adresse 175 = 10111001
Lecture Adresse
Ecriture 0
.
.
.
0 1 1 0 174
0110 10111001
Registre de Registre
données d’adresse
2. Unité centrale
Elle comprend l’unité de contrôle et l’unité arithmétique et logique. Elle est
organisée au tour d’un bus.
UAL
Registres
Pointeur
Registre
Instruction Registre Registre
d’adresse tampon
Les registres sont des emplacements de mémoires qui ont un temps d’accès court,
leurs tailles varient selon l’usage.
Entrée A Résultat
Signaux de contrôle
indiquant la fonction à
exécuter
Composantes de l’UAL
additionneur
circuit des tests logiques
circuit de décalage des bits (permuter ou décaler d’une position)
circuit de comparaison
circuit des tests arithmétiques
circuit de multiplication ou de division
b) unités de contrôle
Bus d’adresse
Bus de donnée
Registre Buffer
d’adress
e
Registre
Mémoire
Pointer
d’instruction
UAL
UC
Cycle de chargement
En générale les instructions sont lus une à une dans la mémoire, décodées puis
exécutées. Les étapes du cycle de chargement sont :
charger le contenu du pointeur dans le registre d’adresse mémoire.
Demander à la mémoire de lire la donnée et de la placer sur le bus.
Ranger la valeur lue dans le buffer de l’unité centrale.
Transférer la donnée du buffer dans le registre d’instruction.
incrémenter le pointeur d’une unité.
Ces étapes sont exécutées par des signaux envoyés par l’unité de contrôle.
cycle d’exécution
le scanner
la souris
Pour la sortie il y a l’imprimante, l’écran qui affiche le résultat et les
commandes.
Batch
Langage compilé
NON
Programme Fichier
OK Code
dans un Système Compilateur Objet
objet
langage de d’exploi
haut niveau tation
Programme
source Code
Editeur de lien
exécutable
L’éditeur des liens vérifie si le programme invoque des fonctions qui résident dans la
bibliothèque du système, retrouve ses codes et les adjoints aux codes objets.
Lorsqu’on demande d’exécuter le programme, le système d’exploitation charge le
code d’exécution en mémoire et déclenche le processus d’exécution. On peut
demander au compilateur de créer le fichier listing même s’il n’y a pas d’erreur.
Tout programme bien compilé ne donne nécessairement pas de bon résultat. Le
compilateur compile toutes les instructions même s’il y a des erreurs.
Langage interprété exemple : BASIC
Dans ce langage l’interprète joue le rôle de compilateur et d’exécuteur, après
compilation de toute instruction, elle est exécutée tout de suite. S’il y a une erreur
dans une instruction, l’interpréteur s’arrête et rejette le reste du programme.
Langage assembleur
Un langage assembleur est à cheval entre un langage de haut niveau et un langage
machine (binaire). On a la possibilité de faire usage d’emplacement de mémoire à cet
effet, on se sert d’adresse symbolique. Une instruction a la structure suivante :
[ad] CO OP
ad= adresse (on peut la préciser ou pas)
Co= code de l’opération à effectuer
Op=opérande.
On peut avoir 0, 1, 2, 3 opérande. Dans cas de plus d’un opérande ils sont séparés par
des virgules.
Algorithme de
résolution
(2)
Vérification non
(nous même) Modification
oui
(3)
Traduction en langage
de haut niveau
(4)
Programme
source
(5)
Vérification non
(nous même) Corriger
oui
(6)
Compiler non
(compilateur) Rejet et
modification
Ok
(7)
Fichier Objet
(8)
Fichier
exécutable
(10)
a) Instructions à 3 adresses
Sa structure est : [AD] CO OP1, OP2, OP3 ou OP1, OP2 et Op3 sont des
adresses symboliques des mots mémoires,
Interpretations: OP3 OP1 Co OP2
Example: CO: ADD= addition
MPY= multiplication
SUB= soustraction
DIV= division
Supposons qu’on a X=A+B
L’équivalent c’est ADD A, B, X
Y = C-D SUB C, D, Y
Z = A/B DIV A, B, Z
S=T U MPY T, U, S
Exemple : on veut A 0 SUB A, A, A
On aura alors A A–A
Ou on veut A B,
On aura SUB A, A, A
ADD A, B, A
b) Instructions à 2 adresses
Sa structure : [AD] Co OP
Ici, on suppose que l’accumulateur dispose du 1er opérande et que le 2nd se
trouve dans le mot mémoire qui a pour adresse OP
Interprétation : AC AC Co OP
d) Instruction à 0 adresse
La structure est la suivante : Co, l’adresse des opérandes n’est pas indiquée sauf pour
deux instructions particulières : chargement et déchargement. Cette structure
suppose que les opérandes sont disposés de façon séquentielle dans une pile, les
résultats des opérations arithmétiques sont aussi sauvegardés dans la pile. Une pile
fonctionne sur le principe LIFO (last in first out), "premier entré dernier servi".
Interprétation des opérations arithmétiques
On suppose qu’à tout moment, la pile contient toutes les données nécessaires, en
particulier, la pile contient deux entrées (mots) :
TL (tête de pile)
SL (entrée située juste en dessous de la tête de pile)
Instruction de chargement PUSH
PUSH X (mettre au-dessus de la pile le contenu de X)
A 4
-5
B 3 PUSH B
3
PUSH C
C -5
Après POP
4 4
4 TL 7
3 3 7
-5
-5 3 SL -5
Exercice d’application:
(1) on a Z = A B + C/D
Ecrire des programmes assembleurs à 0,1 2 et 3 adresses qui permettent
d’évaluer l’expression ci-dessus, le programme doit afficher 0 si D=0 sinon il
affiche le résultat l’évaluation.
(2) Ecrire un programme assembleur à 2 adresses qui compare deux nombres X et
Y et affiche le plus grand des 2 ou 0 si les deux nombres sont égaux.