Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1 :
historique sur les racines et l’évolution de l’ordinateur :
ANNEE EVENEMENT
3ème milliaire
boulier: Réaliser les opérations d’addition et de soustraction.
avant J.C
Schickard (Allemagne) tente de construire une machine à
1623 calculer(déplacement des tiges développé par Neper.)
Pascal (France) construit la Pascaline, capable d'addition et
1642 soustraction.
Leibniz (Allemagne) améliore la Pascaline pour les 4
1673 opérations de base.
Falcon (France) crée la première machine exécutant un
1728 programme externe (une planchette en
bois)
Jacquard (France) utilise des cartons perforés, une
1805 amélioration du système de Falcon.
Babbage (Angleterre) conçoit la "Machine analytique",
1833 précurseur des ordinateurs programmables.
Boole (Angleterre) développe la logique Booléenne,
1854 fondamentale pour les ordinateurs ultérieurs.
Hollerith (USA) utilise des cartes perforées pour le
1890 recensement, fondant la "Tabulating Machines Company"
(IBM).
Shannon (USA) établit des liens entre nombres binaires,
algèbre de Boole et circuits électroniques.
Zuse (Allemagne) fabrique des machines électromécanique
1930s fonctionnant selon le système binaire. il propose la
construction de calculateur mais sa proposition a été rejetée.
Turing (Angleterre) propose la "machine de Turing" et
explore les machines intelligentes.
Cinquième génération :
✓ Introduction des transistors.
✓ Développement d'UAL et d'UC plus complexes.
✓ Utilisation de langages de programmation de haut niveau.
✓ Apparition des systèmes d'exploitation.
**REMARQUE**
Peu importe l’architecture organisationnelle, un programme écrit sur une architecture de l’ordinateur devra
s’exécuter sur n’importe quelle autre machine qui respecte la même architecture.
La structure en couche d’un ordinateur :
Les langages informatiques sont à considérer à plusieurs niveaux allant du plus bas, le plus proche des composants
électronique au plus proche de l'utilisateur, plus indépendant du matériel.
➔ Chaque couche offre des services à la couche supérieure tout en utilisant les services de la
couche inférieure.
L'ordinateur de Von Neumann, représenté par l'EDVAC, se caractérise par une structure basée sur les
principes suivants :
1. Mémoire centrale (M): Dotée de 1000 mots de 40 bits, où les données et instructions sont
représentées en format binaire.
2. Asynchronisme: La machine fonctionne de manière asynchrone, sans horloge régulant les
opérations.
3. Unité de Contrôle (U.C): Responsable de la recherche des instructions dans la mémoire centrale
et de leur exécution séquentielle.
4. Unité Arithmétique et Logique (U.A.L): Partie du CPU qui contient des registres internes, dont le
MBR, MAR, IR, IBR, PC, AC, et MQ.
➔ Les registres :
❖ Exemple :
Le résultat de la multiplication de deux nombres (de 40 bits) a une taille de 80 bits. Les
40 bits du poids fort sont stockés dans AC et ceux du poids faible dans MQ.
L’ordinateur de Von Neumann support 21 instructions machines qui peuvent être regroupés en :
• Transfert de données : entre la mémoire centrale et les registres ou bien entre les registres.
• Branchement inconditionnel : permet la rupture de la séquence d’exécution.
• Branchement conditionnel : branchement basé sur le teste d’une condition.
• Opération arithmétique : regroupe les opérations mathématique .
• Opération de modification d’adresse : permet de modifier le champ d’adresse d’une instruction
stockée en mémoire centrale.
Chapitre 2 :
I. Concepts de base concernant l’organisation de l’ordinateur :
BUS :
Bus de données : véhicule les données.
Bus d’adresses : véhicule les adresses.
Bus de contrôle : contrôle la gestion des deux autres bus .
Intérêt : L’intérêt du bus est de réduire le nombre d’interconnections entre le CPU et les autres
organes de l’ordinateurs.
On les classe :
- Bus externe au CPU
- Bus interne au CPU
**REMARQUE**
A tous moment, un seul composant peut utiliser le bus. Les composants liés au
bus peuvent être dans l’état « Maître » ou dans l’état « esclave ». Le « Maître »
du bus prend l’initiative de l’action et de la communication sur le bus. Par
contre, l’ « esclave se contente de répondre à la requête du « maître ».
Dans le cas où plusieurs composants veulent utiliser le bus, l'arbitre décide sur le maitre en
fonction de:
- sa priorité
- des signaux ou des requêtes
- des algorithmes spécifiques
UNITE DE COMMANDE :
s’occupe de rechercher les instructions à partir de la M.C, de déterminer leurs types et enfin de
générer les signaux de commandes. Ce qui nous amène à dire que l'unité de commande envoie des
signaux au bus de contrôle, pour coordonner l'accès et l'utilisation des bus de données et
d'adresses. Elle est composée de:
-Le compteur ordinal (CO ou PC)
-Le registre d’instruction (IR)
-Le décodeur
-Le séquenceur
-> câblé
->micro séquenceur
-L’horloge
-Le registre MAR : spécifie l’adresse du mot en M.C à lire ou à écrire.
-Le registre MBR (ou MDR) : contient le mot mémoire lu ou à écrire.
Unité Arithmétique et Logique (U.A.L) :
Elle contient tous les circuits électroniques qui réalisent effectivement les opérations désirés.
Composée essentiellement de :
la structure du processeur est commune, mais les types d'ordinateurs sont basée sur les jeux
d'instruction ce qui affecte la structure des registres de travail de l'UAL.
**Remarque**
La phase de recherche est la même pour toutes les instructions du processeur. Par contre, la phase d’exécution diffère d’une
instruction à une autre.
Processeurs CISC et processeurs RISC :
Le concept RISC est né dans le milieu des années 70 => Dans 80% de cas, un processeur CISC n’utilise
que 20% de son jeu d’instructions. Les instructions les plus utilisées sont celles de transfert entre la M.C
et CPU et les branchements aux sous-programmes, .Rappelons que l’évolution des processeurs CISC a
conduit à développer des processeurs ayant un jeu d’instructions de plus en plus complexes. Ces
instructions machines complexes sont interprétés en programmes microcodes stockés en mémoire.
Ce tableau compare les deux types de processeurs :
Parallélisme :
classification 1:
- interne: monoprocesseur
-> par duplication : Réplication de certaines parties du processeur pour exécuter des tâches
simultanément.
-> par anticipation : Prévision des instructions pour exécuter des tâches avant leur demande
explicite.
-> par multiplexage : Utilisation alternée des ressources pour exécuter plusieurs tâches en
parallèle sur un seul processeur.
classification 2 :
->transparent à l'utilisateur : Ce type de parallélisme se produit sans nécessiter l'intervention de
l'utilisateur.
-> visible à l'utilisateur : Nécessite l'intervention ou l'interaction de l'utilisateur pour être utilisé
efficacement
PIPELINE :
l’exécution d’une instruction dans le MIPS R3000 est subdivisée en 5 étapes :
La classification de Flynn :
Machines SISD (Single Instruction Single Data Stream): Modèle de Von Neumann, Une seule UC gère
une seule séquence d'instructions, une seule UAL traite une unique séquence de données à la fois.
Machines SIMD (Single Instruction Multiple Data Stream): Une seule instruction est exécutée
simultanément sur plusieurs jeux de données. C'est souvent utilisé dans les processeurs vectoriels ou
pour des opérations parallèles sur des ensembles de données.
Machines MIMD (Multiple Instruction, Multiple Data): sont constituées de plusieurs processeurs
indépendants capables d'exécuter différentes instructions sur des ensembles de données distincts en
parallèle.
-Multiprocesseurs
-Multi-ordinateurs
La multiprogrammation:
Au lieu de laisser le CPU en chômage lors de l'opération E/S demandé par un programme p1 la
multiprogrammation va pousser le processeur à ne pas attendre la fin de l’E/S de P1 mais à passer à
l’exécution d’un autre programme P2. Si le programme P2 demande à son tour une E/S, le processeur
entre temps passe à un autre programme P3, et ainsi de suite. l'exécution des programmes p1, p2,
p3,...etc. sont en parallèle. De ce fait, la mémoire centrale doit pouvoir contenir plusieurs programmes.
**REMARQUE**
quand on s’éloigne du CPU vers les mémoires auxiliaires, on constate que le temps
d’accès et la capacité de mémorisation augmentent, mais par contre le coût diminue
**REMARQUE**
Lorsque vous transférez un nombre d'une machine little-endian vers une machine big-endian, vous devez
inverser l'ordre des octets pour garantir une interprétation correcte du nombre sur la nouvelle machine.
Les adresses logiques et les adresses physiques:
Les numéros des octets au niveau de la mémoire centrale sont des adresses physiques (réelles), La
numérotation au niveau de la M.C est faite par rapport au début de cette mémoire.
les numéros des octets au niveau d’un programme (avant son chargement dans la M.C) sont des
adresses logiques (offset), dans un programme la numération des octets est relative par rapport au
segment.
l'adresse logique est utilisée par le programme et est convertie en adresse physique par le système
d'exploitation et le matériel pour accéder réellement aux données dans la mémoire.
t un tampon ultra-rapide entre le processeur et la mémoire centrale. Elle stocke les données souvent
utilisées par le CPU pour compenser la différence de vitesse. Cette mémoire associative accède aux
données par leur contenu, pas par adresse, et peut rechercher plusieurs données en parallèle. Chaque
élément est composé de deux parties : un champ pour la clé et un champ pour les données associées à
cette clé. La clé est essentiellement une référence ou une adresse permettant d'identifier où se trouve
l'information recherchée dans la mémoire centrale.
Les ordinateurs récents ont des caches séparées pour les instructions et les données pour optimiser les
performances.
classement de périphériques:
-entrée
-sortie
-entrée/sortie
L’ordinateur utilise un périphérique soit pour communiquer avec le monde extérieur, soit pour stocker
les données.
Les ports d’E/S sont les adresses permettant d'accéder aux registres des périphériques. Deux méthodes
existent pour ces accès :
1. Espace d'adresses partagé avec la mémoire centrale (MIPS R3000) lire/écrire dans un port d’E/S
est similaire à une opération de lecture/écriture en mémoire.
2. Espace d'adressage indépendant (l'Intel Pentium) nécessitant des instructions spéciales (par
exemple, in et out). Souvent associé à des périphériques distincts (ex : écran vs
imprimante/clavier).
L’accès aux périphériques du point de vue du programmeur:
Pour assurer la sécurité et éviter les risques associés à une communication directe avec les
périphériques, l'accès à ces derniers devrait être réservé au système d'exploitation. Celui-ci fournit des
routines spécifiques aux utilisateurs et programmeurs, permettant une interaction indirecte et sécurisée
avec les périphériques.
Les routines système permettent un accès indirect aux périphériques via des appels au système.
Certaines instructions, privilégiées, ne peuvent être exécutées que par le système d'exploitation
pour des raisons de sécurité.
Mode d'exécution utilisateur (ou esclave) : Les programmes exécutés dans ce mode sont restreints et
ne peuvent pas utiliser les instructions considérées comme privilégiées.
**REMARQUE**
En générale, dans un ordinateur, c’est le système d’exploitation et les routines de
bases et critiques qui s’exécutent dans le mode système. Par contre, tous les autres
programmes (programmes utilisateurs) s’exécutent dans le mode utilisateur.
En général, les deux types d’instructions et les deux modes d’exécution sont
implantés respectivement dans l’ordinateur sous formes d’un bit spécial dans
l’instruction et d’un bit spécial dans le registre d’état du processeur.
Transfert de données entre la mémoire centrale et les périphériques :
Lors des opérations d'entrée/sortie (E/S), le transfert de données entre la mémoire centrale et les
périphériques peut se faire de deux manières :
Mode E/S programmée : Le processeur contrôle directement le transfert de données et la
communication entre la mémoire et les périphériques.
Accès direct à la mémoire (DMA) : Ce mode permet un transfert direct entre la mémoire et les
périphériques sans l'intervention directe du processeur. Un composant spécialisé, le Contrôleur
d'Accès Direct à la Mémoire (DMA), gère ce transfert. Cela libère le processeur pour qu'il se
concentre uniquement sur l'exécution des instructions.
Les interruptions dans un ordinateur sont des événements déclenchés par le matériel ou le
logiciel.
o Le matériel peut générer des interruptions (comme la frappe d'une touche) en envoyant
un signal au processeur. Si plusieurs interruptions surviennent simultanément, un
"contrôleur d'interruption" priorise ces événements pour déterminer celui qui attire
l'attention en premier.
o Le logiciel peut générer des interruptions via des "appels système", des instructions
spéciales (comme SYSCALL dans le processeur MIPS R3000) déclenchant des
événements contrôlés par le système d'exploitation.
Chaque interruption est identifiée par un numéro unique. Le système d'exploitation gère ces
interruptions à travers des "gestionnaires d'interruption".
Les interruptions sont l'un des trois moyens de changer la direction du programme, Les deux autres sont les
procédures et les instructions de sauts.
• Une instruction de saut : permet de sauter ou de se déplacer vers un endroit donnée du programme.
• Appel de procédure : permet de se déplacer vers un endroit donné du programme et de retourner à
l’instruction qui suit l’appel.
• Interruption : constitue un mécanisme similaire à celui de l’appel des procédures, dans le sens où ce
mécanisme d’interruption conduit à se déplacer vers un genre de procédures (routines d’interruptions).
ABREVIATION SIGNIFICATION
CPU Central Processing Unit
CISC Complex Instruction Set Computer
RISC Reduced Instruction Set Computer
DMA Direct Memory Access
IF Istruction Fetch
RD Read Registers
ALU Arithmetic/Logic Unit
MEM Memory Access
WB Write Back
ISR Iterrupt Service Routine
MC Mémoire Centrale
UC Unité De Commande
MBR Memory Buffer Register
MAR Memory Address Register
IR Instruction Register
IBR Instruction Buffer Register
PC Program Counter
AC Accumulator
MQ Multiple Quotient
CO compteur ordinal
SISD Single Instruction Single Data Stream
SIMD Single Instruction Multiple Data Stream
MIMD Multiple Instruction, Multiple Data
E/S Entrée/Sortie