Vous êtes sur la page 1sur 17

Module : Architecture des Ordinateurs

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.

Eckert et Mauchly (USA) terminent l'ENIAC, premier


1946 calculateur électronique à tubes à vide.
1953 IBM commercialise le premier ordinateur IBM 701.
Les générations des ordinateurs :

Première génération (années 1953):


✓ Utilisation de tubes à vide.
✓ Lancement du premier ordinateur IBM 701 en 1953.

Deuxième génération (années 1955-1965) :


✓ 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.

Troisième génération (années 1965-1980) :


✓ 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.

Quatrième génération (Micro-informatique, années 1970-1980) :


✓ 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.

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 niveau de langage correspond à une couche dans la structure en couches de


l'ordinateur.

➔ Chaque couche offre des services à la couche supérieure tout en utilisant les services de la
couche inférieure.

➔ Niveau 1 et 2 : Utilisent l'interprétation.


• Niveau 1 : Langage machine directement compris par la machine réelle.
• Niveau 2 : Langage d'assemblage avec une interprétation partielle.

➔ À partir du niveau 3 : Utilisation de la traduction.


➔ Langages de haut niveau (comme L3), nécessitant une traduction complète. Ces niveaux utilisent
une machine virtuelle pour exécuter le code.

Les fonctionnalités de base d’un ordinateur:


• Le traitement de l’information.
• Le stockage de l’information.
• Le mouvement ou le déplacement de l’information :
• Contrôler le déroulement des 3 fonctionnalités précédentes, dans le but de réaliser les
instructions des utilisateurs de l’ordinateur
Structure de l’ordinateur de Von Neumann :

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 :

• MBR (Memory Buffer Register): Contient un mot à envoyer ou recevoir de la mémoire


centrale ou de l'unité d'E/S.
• MAR (Memory Address Register): Spécifie l'adresse du mot en mémoire centrale pour
lecture ou écriture.
• IR (Instruction Register): Stocke le code opération de l'instruction en cours d'exécution.
• IBR (Instruction Buffer Register): Stocke temporairement l'instruction en cours.
• PC (Program Counter): Contient l'adresse du prochain couple d'instructions à rechercher
dans la mémoire centrale.
• AC (Accumulator) et MQ (Multiple Quotient): Utilisés pour temporairement stocker les
opérandes et résultats des opérations de l'UAL.

❖ 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.

5. Cycle d'exécution d'une instruction:


• « phase de recherche » : le code opération de la prochaine instruction est chargé dans IR et
la partie adresse est chargée dans MAR. L’instruction est ramenée à partir de la mémoire
centrale (à travers le registre MBR) si elle n’existe pas dans le registre IBR.
• « Phase d'exécution »: Décodage du code opération, lancement de l'exécution par les
circuits de contrôle à travers des signaux appropriés, provoquant des transferts de données
ou des opérations de l'UAL.

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 :

-Deux registres d’entrée E1 et E2.


-Un registre de sortie S.
-Un ensemble de registres pour le travail, pour enregistrer les opérations et logiques.
-Un registre d’état.

Classification des machines selon le type de jeux d’instructions :

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.

- Machines à accumulateur => EDSAC


-Machines à registres d’usage spécialisé => INTEL 8086
- Machines à registres d’usage générale
+Machines à jeux d’instructions registre-mémoire =>IBM 360
+Machines à jeux d’instructions registre-registre => MIPS R3000
- machine a jeux d'instruction memoire_memoire => la machine VAX de la société DEC.
- machine basée sur la pile => calculatrices scientifiques et a été utilisé par les anciens
ordinateurs HP.

Le cycle d’exécution de base d’une instruction :


Le CPU exécute chaque instruction en passant par les étapes suivantes :

a) Chercher la prochaine instruction de la M.C et la charger dans le registre


d’instruction.
b) Changer le compteur ordinal pour indiquer et pointer vers l’instruction suivante
(cette étape peut être placé vers la fin du cycle d’exécution).
c) Déterminer le type de l’instruction qui vient d’être recherché (décodage).
d) Si l’instruction manipule des mots ou données en M.C alors déterminer leurs
adresses @.
Les deux étapes d et c se déroulent en parallèle.
e) Rechercher et charger ces données au niveau du CPU (effectué par le séquenceur).
f) Exécute l’instruction (le séquenceur lance l’exécution et l’UAL exécute l’opération).
g) Revenir à l’étape « a » pour commencer l’exécution de l’instruction suivante.
Cycle d’exécution = phase de recherche (étapes : a->d) + phase d’exécution (étapes : e+f)

**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.

-externe: plusieurs processeurs

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 :

-IF (Instruction Fetch) : Cherche l'instruction suivante dans la mémoire


(mémoire cache puis mémoire centrale) .
-RD (Read Registers) :Comprend ce que l'instruction demande et récupère les données nécessaires.
-ALU (Arithmetic/Logic Unit) : Effectue l'opération demandée par l'instruction.
-MEM (Memory Access) :Lit ou écrit des données en mémoire (mémoire cache puis mémoire centrale) .
-WB (Write Back): Enregistre le résultat final dans le registre approprié du processeur.

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.

II. Les mémoires :

une des caractéristiques de l'ordinateur en plus de sa vitesse du traitement de l'information est


capacité de mémorisation de ces informations.

on classe les mémoires de l'ordinateur selon: Ici on a trié les mémoires


-> temps d'accès d'un ordinateur par coût
-> capacite
croissant et capacité
-> cout
décroissante :

-mémoires auxiliaires(élément de stockage permanent)


-mémoire d'appui (mémoire intermédiaire entre la mémoire centrale et les mémoires auxiliaires)
-mémoire centrale (l’endroit de rangement principale des informations utilisé par le CPU)
-antémémoire (mémoire cache -> rapide de faible capacité, agit comme une mémoire intermédiaire
entre CPU et MC)
-registre du CPU (stocker les opérandes et résultats intermédiaires)

**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

Cellule adresses mémoires :


Chaque cellule a une taille fixe et contient une quantité spécifique de bits. si on a N cellules, elles seront
numérotées de 0 a N-1, ces numéros sont les adresses de ces cellules qui aident les programmes à
trouver et à accéder à des informations spécifiques dans la mémoire.
si on a un registre d'adresse de la Mémoire Centrale qui contient M bits, alors le nombre maximale de
cellules directement adressable est de 2^M donc les adresses vont de 0 à (2^M)-1.

Les techniques d’ordonnancement des octets:


-Little endian: de l'octet le plus faible au pus fort (de droite à gauche).
-Big endian: de l'octet le plus fort au plus faible (de gauche à droite ).

**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.

La formule pour convertir une adresse logique en adresse physique :

Adresse physique= Adresse de début du segment + Offset

La mémoire cache (anté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.

III. L’interface entre le processeur et le périphérique:

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.

Le processeur communique avec un périphérique par l’intermédiaire d’une unité d’échange:


-> pour enlever cette tache au processeur (interaction directe avec le périphérique) car elle
consomme beaucoup de temps .
-> parce que L’énergie électrique utilisée pour transmettre les signaux au niveau du bus est très
faible, ce qui conduit à avoir des câblages très court entre le processeur et le périphérique.
Une unité d’échange :
-Une unité de contrôle: décoder les commandes E/S envoyées par le CPU pour le périphérique.
-Registre de commandes: commande E/S par CPU.
- Registre de données: contient la donnée.
- Registre d’état : état du contrôleur et du périphérique + état de l’opération d’E/S.
- Registre périphérique: contient l’adresse ou l’identificateur du périphérique concerné par l’opération
d’E/S.

Les ports d’E/S :

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é.

Les ordinateurs sont dotés de deux modes d'exécution distincts :


Mode système (ou maître/superviseur) : Les programmes exécutés dans ce mode peuvent utiliser tous
types d'instructions, y compris les instructions privilégiées.

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.

➔ Mais c’est le processeur qui :

• Identifie le périphérique concerné par l’échange


• Précise le sens du transfère : lecture ou écriture.
• Précise l’adresse mémoire du premier mot à transférer.
• Précise le nombre de caractères concernés par l’échange.

IV. Le mécanisme d’interruption :

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".

Il existe deux approches principales:


o Approche basée sur les vecteurs d’interruptions : chaque interruption est liée à une
routine spécifique appelée "Interrupt Service Routine" (ISR), référencée dans une table
de vecteurs d'interruption. Lorsqu'une interruption survient, le processeur interrompt le
programme en cours pour exécuter la routine associée.
o Approche basée sur l’utilisation d’un gestionnaire d’interruptions : utilisée par les
processeurs MIPS R3000, généralement déclencher à l'arrivée de toute interruption,
examine le registre « $cause » pour déterminer la nature de l'interruption, puis démarre
le traitement approprié en fonction de cette interruption.
Avant une interruption, le processeur sauvegarde l'état actuel du programme interrompu (adresse
d'instruction et registre d'état) avant d'exécuter la routine d'interruption. Ces informations sont
conservées dans des registres spéciaux. Après le traitement de l'interruption, le processeur restaure cet
état sauvegardé pour reprendre le travail interrompu comme si rien ne s'était passé.

Trois types principaux d'interruptions existent :


➔ Les interruptions logicielles sont déclenchées par les programmes pour accéder aux services du
système d'exploitation, principalement pour les E/S.
➔ Les interruptions matérielles sont déclenchées par les composants matériels pour attirer l’attention
du processeur sur des événements (la fin d'une opération E/S).
➔ Les exceptions sont utilisées pour attirer l’attention sur une erreur pendant l'exécution des
programmes, et la nécessité de son traitement (division par 0, overflow, programme utilisateur
voulant accéder à l’espace mémoire réservé au système d’exploitation, etc.).

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).

Le tableau ci-dessous résume les différences entre le mécanisme des interruptions et le


mécanisme d’appel des procédures :

Caractéristique Interruption Procédure


Interruption logicielle. Toujours d'origine logicielle.
Origine Interruption materielle.
Invocation logicielle => une instruction Toujours initiée par le programme en cours.
Invocation spéciale.
Invocation matérielle => les périphériques.
Mémoire centrale. En mémoire jusqu'à la fin du programme.
Emplacement du code
Par un code ou un numéro. Par un nom.
Identification
V. Éléments de base concernant le langage machine :
machine traditionnelle == machine conventionnelle

Format général des instructions machines :

Une instruction machine est composée principalement de deux parties :


• Code opération : type de l’opération à effectuer (une addition, une soustraction, ou
le chargement de données).
• champs adresses/opérandes : Ces champs contiennent des données ou des adresses
mémoire pointant vers les informations nécessaires à l'exécution de l'instruction.

Bref aperçu sur le langage machine du processeur MIPS R3000 :

o Une instruction machine = 32 bits.


o Appartient à l’un des 3 formats :
▪ Immédiate.
▪ Jump.
▪ Registre.
o Chaque instruction a un code opération de 6 bits.
o Le processeur déduit le format de l’instruction à partir de ce code opération.
o Chaque instruction machine se compose d’un certain nombre de champs (MIPS R3000) :
▪ op (6 bits) : code binaire de l’opération à réaliser par l’instruction.
▪ rs (5 bits) : le numéro (en binaire) du registre jouant le rôle du 1er opérande
source.
▪ rt (5 bits) :
 Format R : le numéro (en binaire) du registre jouant le rôle du
2ème opérande source.
 format I : le registre de destination .
 opérations de branchement : une opérande source .
▪ rd (5 bits) : le numéro (en binaire) du registre jouant le rôle de l’opérande de
destination.
▪ immédiate(16 bits) : une valeur immédiate ou une adresse
▪ Target (26 bits) : une adresse de branchement, utilisée dans le cas d’une
▪ instruction : de branchement inconditionnel (jump) ou bien dans le cas d’appel
de procédure.
▪ shamt (5 bits) : le nombre de bits à décaler dans le cas de l’opération de
▪ décalage.
▪ funct (6 bits) : une variante de l’opération spécifiée dans le champ code
opération "op".
**LES FORMATS ET LEURS CHAMPS**

➔ I-TYPE : op, rs, rt, immediate.


➔ J-TYPE: op, target.
➔ R-TYPE: op, rs, rt, rd, shamt, funct.

Format J : Utilisé pour les branchements inconditionnels et l'appel de procédure.


Format I : Utilisé pour les branchements conditionnels, les transferts de données, les opérations
arithmétiques avec une constante comme opérande source et comparaison.
Format R: Utilisé pour les opérations arithmétiques avec deux registres comme opérandes sources et un
registre comme opérande de destination, ainsi que le branchement vers une adresse dans un registre et
les comparaisons.

Bref aperçu sur les modes d’adressage du processeur MIPS R3000 :

Adressage immédiat : Valeur de l'opérande directement dans l'instruction, sans besoin


d'accéder à la mémoire centrale.
Adressage par registre : Opérande spécifié par un registre.
Adressage de base ou par déplacement : L'opérande se trouve en mémoire, son adresse est
déterminée par la somme du contenu d'un registre et d'une valeur immédiate spécifiée dans
l'instruction .
Adressage PC-relative : utilisé pour les branchements conditionnels où l'adresse dans
l'instruction est relative à la valeur actuelle du compteur ordinal PC (Program Counter).
Adresse calculé par le CPU= adresse fournie dans l’instruction+ PC
1. Quelques définitions :
- Un ordinateur : c’est une machine électronique de traitement de l’information.
- Le matériel (Hardware) : désigne tout ce qui a un caractère matériel dans la machine.
- Le logiciel (Software) : désigne tout ce qui n’est pas matériel dans la machine.
- Un système informatique : C’est un ensemble de matériels et de logiciels, nécessaires pour
satisfaire les besoins informatiques des utilisateurs.
- L’architecture de l’ordinateur ou architecture logicielle (Computer architecture) : Désigne tous les
attributs visibles au programmeur. C’est une vision abstraite de ce que peut faire la machine.
- L’organisation de l’ordinateur ou architecture matérielle (Computer organisation) : Désigne les unités
opérationnelles et leurs interconnections. Elle spécifie la façon dont l’architecture de l’ordinateur est
réalisée.
architecture de l’ordinateur =/= organisation de l’ordinateur
-Traduction (traducteur) : Faire la transformation du programme L2 en un programme L1 puis de
l’exécuter.
-Interprétation (interpréteur) : Chaque instruction du programme L2 est examinée et la séquence
d’instructions L1 correspondante est immédiatement exécutée.
- bus :est un moyen d'interconnexion, ensemble de fils électriques groupés par fonction.
- bit: la plus petite unité d’information envisageable. Il est stocké en distinguant deux valeurs d’un
phénomène physique. Un bit peut valoir 0 ou 1. Le codage binaire de l’information est la méthode la
plus fiable pour coder l’information numérique.
-mot mémoire: l’unité de l’information sur laquelle opèrent la plupart des instructions. la taille du mot
mémoire détermine la taille des registres.
-CPU : le noyau de l’ordinateur, il exécute les programmes stockés dans la M.C .
-Parallélisme: faire plusieurs choses à la fois, pour des machines plus performantes.
-Un pipeline: Ça divise le travail en étapes pour que plusieurs tâches puissent être faites en même
temps, accélérant ainsi le traitement des données.
-timing : c’est la façon avec laquelle les différents événements et actions sont coordonnés au niveau du
bus (bus synchrone-> horloge, et bus asynchrone-> l’occurrence d’un autre événement)
La classification de Flynn: un modèle qui catégorise les architectures informatiques en fonction de la
manière dont elles traitent les flux d'instructions et de données.
-instruction Stream: une séquence d'instruction.
-data Stream: les opérations à faire sur la séquence des instructions.
-Mémoire Centrale : C’est la partie de l’ordinateur dans laquelle les données et les instructions sont
rangés.
-modes d’adressage : la technique utilisée par le CPU pour la localisation et l’accès aux
opérandes.
1. Abréviations :

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

Vous aimerez peut-être aussi