Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Architecture de base d’un ordinateur
2
Définition de l’ordinateur:
Un ordinateur est une machine de traitement automatisé de l’information. Fonctionnalités: Acquérir l’information, la stocker, la modifier en appliquant des instructions prédéfinies (programmes) Interagir avec l'environnement grâce à des périphériques (écran, clavier….).
3
Historique : 1ère génération 1946-1957
1946 l’ENIAC (Electronic Numerical Integrator And Calculator) Tubes – 30 tonnes Machines volumineuses et peu fiables Technologie à lampes, relais, résistances Exécute opération/s Programmation par cartes perforées usage général, machines fiables – technologie à transistors -éxécute opérations/s – premiers langages de programmation évolués (COBOL, FORTRAN, LISP) représentant : mini ordinateur DEC PDP-1 (1961)
4
Historique : 2ème génération 1958- 1964
Machines fiables Technologie à transistors Exécute opérations/s Premiers langages de programmation évolués (COBOL, FORTRAN, LISP) usage général, machines fiables – technologie à transistors -éxécute opérations/s – premiers langages de programmation évolués (COBOL, FORTRAN, LISP) représentant : mini ordinateur DEC PDP-1 (1961)
5
Historique : 3ème génération 1965- 1971
Technologie des circuits intégrés Exécute opération/s Avènement du système d’exploitation complexe (UNIX, Pascal, Basic, CISC) 1971 : premier microprocesseur 4004 de INTEL: Toutes les composantes de la CPU sont réunies sur une même puce 4004 de INTEL(1971) technologie des circuits intégrés (S/MSI small/medium scale integration) -éxécute opération/s – avènement du système d’exploitation complexe – UNIX, Pascal, Basic, – CISC 1971 : premier microprocesseur 4004 de INTEL toutes les composantes de la CPU sont réunies sur une même puce
6
Historique : 4ème génération 1972- 1977
Technologie LSI (large SI) Exécute opérations/s Avènement de réseaux de machines Traitement distribué/réparti
7
Historique : 5ème génération 1978
Technologie VLSI (very large) Systémes distribués interactif Multimédia, traitement de données non numériques: (textes, images, paroles) Parallélisme massif, client-serveur RISC
8
machine de Von Neumann(1952)
Idée : ranger les programmes en mémoire et non plus tout câbler et recâbler à chaque fois. Cet ordinateur a servi de base à tous les autres ordinateurs généralistes. Données et instructions sont représentées en code binaire D’après Von Neumann le modèle de machines universelles possède -une unité centrale (CPU): une unité arithmétique et logique (UAL) et une unité de commande(UCC) - une mémoire -une unité d’entrées/sorties (E/S) Les différentes unités sont interconnectées via des bus. boite à musique – métiers à tisser
9
Architecture Bus des données ²² Unité d’E/S CPU Mémoires Bus d’adresse
Définition d’un Bus: Un bus est un ensemble de n fils conducteurs, utilisés pour transporter n signaux binaires entre les composantes de l’ordinateur Type des bus: Il est un bus bidirectionnel. Lors d’une lecture, c’est la mémoire qui envoie un mot sur le bus lors d’une écriture, c’est le processeur qui envoie la donnée Il est un bus unidirectionnel : transporte les adresses mémoire auxquelles le processeur souhaite accéder pour lire ou écrire une donnée. Il transporte les ordres et les signaux de synchronisation en provenance de l’unité de commande et à destination de l'ensemble des composants matériels Architecture ²² Bus des données CPU Mémoires Unité d’E/S La fréquence de cette horloge s’exprime en MHz (millions de battements par seconde). Bus d’adresse Bus de controle
10
Schéma simplifié d’une unité centrale
Charger la prochaine instruction à exécuter : Mémoire => Registre d’instruction: Décoder le code opération de l’instruction; Modifier le compteur ordinal pour qu’il pointe sur l’adresse de l’instruction suivante; Localiser, s’il y a lieu, les opérandes en mémoire; Charger, dans ce cas, ces opérandes dans les registres de l’UC; Exécuter l’instruction; Retourner à l ‘étape N° 1 pour traiter la prochaine instruction. D’après « Architecture et Technologie des Ordinateurs » de Paolo Zanelle et Yves Ligier chez Dunod
11
Unité de commande L’Unité de commande dirige le fonctionnement de toutes les autres unités : UAL, mémoire, entrées / sorties, etc., en leur fournissant les signaux de cadence et de commande. Cette unité comporte • Le compteur ordinal CO • Le registre d’instruction RI • Le décodeur de code opération • Le séquenceur • L’horloge RA = registre d ’adresses RM = registre mot 11
12
Unité de Commande L’Unité de commande dirige le fonctionnement de toutes les autres unités, en leur fournissant les signaux de cadence et de commande. Elle est composé de: Compteur Ordinal (CO) : contient l’adresse en mémoire de la prochaine instruction à exécuter. Registre Instruction (RI) : contient l’instruction en cours à décoder et à exécuter. Décodeur : détermine l’opération à effectuer et les opérandes. Séquenceur : génère les signaux de commandes vers les différents composants et en particulier l’UAL pour exécuter l’opération qui vient d’être décodée Il peut être cablé ou microprogrammé. Horloge : génère des impulsions régulières synchronisant les actions et les éléments de l’unité centrale.
13
Séquencement des opérations
Cycle d’instruction = Cycle de recherche + Cycle d’exécution Cycle d’instruction Cycle de recherche Cycle d’exécution Horloge Cycle d’exécution
14
Cycle de recherche d’une instruction (1/2)
Registre d’Adresse Mémoire Centrale Registre d'Instruction Compteur Ordinal Registre Mot Décodeur Séquenceur Horloge 1 2 3 4 4’ Unité de commande
15
Cycle de recherche d’une instruction (2/2)
Transfert de l’adresse de l’instruction du Compteur Ordinal vers le Registre d’Adresse de la mémoire. Lecture de l’instruction dans la mémoire et transfert dans le Registre Mot. Transfert de l’instruction dans le registre d’instruction. Décodage du code opération et lancement du séquenceur. Si nécessaire transfert de l’adresse de l’opérande dans le Registre d’ Adresse de la Mémoire Incrémentation du Compteur Ordinal pour qu’il pointe vers l’instruction suivante (s’ il n’est pas mis à jour par une instruction de branchement). Le Séquenceur pilote l’Unité de Calcul pour exécuter l’instruction.
16
Exemple : exécution d’une opération arithmétique ou logique.
Cycle d’exécution d’une instruction (1/2) Mémoire Centrale Registre d’Adresse Registre Mot 2 Accumulateur 1 Exemple : exécution d’une opération arithmétique ou logique. Registres de travail Séquenceur 3 Unité de commande Unité de Calcul
17
Cycle d’exécution d’une instruction (2/2)
Opération arithmétique ou logique Le séquenceur pilote la mémoire pour lire l’opérande et le transférer dans le registre mot (RM). Transfert de l’opérande du RM vers un registre de travail ou l’accumulateur. Exécution par l’Unité Arithmétique et Logique de l’opération à effectuer sous contrôle du séquenceur. Ecriture d’un résultat en mémoire Transfert du contenu de l’accumulateur vers le RM. Le séquenceur pilote la mémoire pour transférer l’opérande depuis le RM et l’écrire en mémoire Instruction de branchement conditionnel Test du bit de condition (Flag) Transfert si nécessaire du contenu du champ adresse de l’instruction depuis le RI vers le CO.
18
Registres de l’unité de traitement(CPU) (1/3)
Compteur Ordinal (CO) (Programme Counter (PC)) Contient l’adresse de la prochaine instruction à exécuter Non accessible au programmeur Registre Instruction (RI) (Instruction Register (IR)) Contient l’instruction à décoder et à exécuter Registre ACCumulateur (ACC) Reçoit le résultat de l’opération effectué par l’Unité Arithmétique et Logique (UAL). Peut contenir un des opérandes impliqués dans l’opération que doit effectuer l’UAL. Un des registres les plus sollicités de la machine.
19
Registres de l’unité de traitement (2/3)
Registres de travail Permettent d’accélérer l’exécution des programmes en évitant de solliciter la mémoire. Contiennent les résultats de calculs intermédiaires ou les opérandes fréquemment utilisés. Registre d’index (XR) (Index Register (RX)) Utilisé pour l’adressage indexé Registre de Base Utilisé pour l’adressage Base + Déplacement
20
Registres de l’unité de traitement (3/3)
Registre d’état (Program Status Word (PSW)) Contient entre autres les bits de condition (flags) positionnés à l’issu de chaque exécution d’une instruction. Registres de gestion de pile Registre pointeur de pile (PP) (Stack Pointer (SP)) Contient l’adresse du sommet de la pile Registres spécialisés Registres virgule flottante (Floating point registers) Registres à décalage (Shift registers)
21
Structure des instructions niveau machine(1/3)
Une instruction machine doit fournir au CPU toutes les informations pour l’exécution d’une opération élémentaire. Elle doit donc contenir un code opération qui est essentiel pour spécifier le type d’action désiré. Elle doit en outre contenir une ou plusieurs adresses selon le cas : l’adresse de (ou des) opérande(s), l’adresse où envoyer le résultat et l’adresse où chercher l’instruction suivante. Par conséquent, le format d’une instruction machine comporte un champ code opération et jusqu’à quatre champs d’adresse. On parle d’instructions à n adresses. On dit d’une machine qu’elle est à n adresses si la plupart de ses instructions sont à n adresses. 21
22
Structure des instructions niveau machine(2/3)
Ainsi, le MC6809 est une machine à une adresse, le Pentium et le MC68000 sont des machines à 2 adresses. Le PowerPC est une machine à 3 adresses pour les opérations entre registres, à 2 adresses pour les accès mémoire. Exemples : LDA 1000 instruction à 1 adresse (6809) mov ax,[esi+4] instruction à 2 adresses (Pentium) add eax,ebx instruction à 2 adresses (Pentium) move d4,8(a6) instruction à 2 adresses (MC68000) move d3,d4 instruction à 2 adresses (MC68000) ld r0,4(r1) instruction à 2 adresses (PowerPC) add r3,r2,r1 instruction à 3 adresses (PowerPC) 22
23
Structure des instructions niveau machine(3/3)
Il existe aussi des machines à zéro adresse. Ce sont des machines à pile, analogues aux calculatrice à notation polonaise inverse (RPN). Elle prennent tous ses opérandes sur la pile et inscrivent le résultat au sommet de la pile. 23
24
Format des instructions (1/2)
Opérandes Code Opération Code opération : ce qu’il faut faire Exemples : faire une addition, tester le résultat d’une opération, se débrancher vers une certaine adresse, etc. Opérandes : avec quoi le faire Exemples : valeur numérique, contenu d’un registre, contenu d’une adresse mémoire adresse où se débrancher, etc.
25
Format des instructions (2/2)
Code opération Exemple x86 : LAHF transfert les bits de conditions (status flags) dans le registre Ah Code opération Opérande 1 Exemple x86 : NOT DX complémente à 1 le contenu du registre Dx Code opération Opérande 1 Opérande 2 Exemple x86 : ADD AX,DX ajoute le contenu du registre Dx à celui de l’accumulateur
26
Exemples de programme (1/5)
Machine à une adresse Instructions : Load X : transfère la variable X dans l’accumulateur. STA X : transfère le contenu de l’accumulateur dans la variable X. ADD : additionne la valeur de la variable X au contenu de l’accumulateur. SUB : soustrait la valeur de la variable X au contenu de l’accumulateur. MPY : multiplie le contenu de l’accumulateur par la valeur de la variable X. DIV X : divise le contenu de l’accumulateur par la valeur de la variable X.
27
Exemples de programme (2/5)
Fonction à réaliser : A = B x (C + (D x E) – (F / G)) Programme: LOAD F => ACC = F DIV G => ACC = ACC / G => ACC = F / G STA T1 => T1 = ACC LOAD D => ACC = D MPY E => ACC = ACC x E => ACC = D x E ADD C => ACC = ACC + C => ACC = (D x E) + C SUB T1 => ACC = ACC – T1 => ACC = (D x E) + C – ( F / G) MPY B => ACC = ACC x B => ACC = ((D x E) + C – ( F / G)) x B STA A => A = ACC => A = ((D x E) + C – ( F / G)) x B T1 = variable intermédiaire
28
Exemples de programme (3/5)
Machine à zéro adresse (Sauf gestion de la pile) Nécessite une pile (mémoire LIFO : Last In, First Out) Instructions de gestion de la pile (Instructions à 1 adresse) : LOAD X : Transfère le contenu de la variable X au sommet de la pile. STORE X : Transfère le contenu du sommet de la pile dans la variable X. Principe de fonctionnement : Instructions à zéro adresse: Les opérandes sont dans les 2 positions supérieures de la pile. Le résultat remplace les deux opérandes au sommet de la pile.
29
Exemples de programme (4/5)
Instructions à zéro adresse: ADD sort les 2 opérandes aux sommets de la pile, fait leur somme et place le résultat au sommet de la pile. SUB sort les 2 opérandes aux sommets de la pile, soustrait la valeur au sommet de la seconde position et place le résultat au sommet de la pile. MPY sort les 2 opérandes aux sommets de la pile, fait leur produit et place le résultat au sommet de la pile. DIV sort les 2 opérandes aux sommets de la pile, divise la valeur en seconde position (dividende)par la valeur située au sommet de la pile (diviseur) et place le résultat au sommet de la pile.
30
Exemples de programme (5/5)
Même fonction à réaliser : A = B x (C + (D x E) – (F / G)) Programme: LOAD B => Pile = { B } LOAD C => Pile = { B ; C} LOAD D => Pile = { B ; C ; D} LOAD E => Pile = { B ; C ; D ; E } MPY => Pile = { B ; C ; (D x E) } ADD => Pile = { B ; C + (D x E) } LOAD F => Pile = { B ; C + (D x E) ; F } LOAD G => Pile = { B ; C + (D x E) ; F ; G } DIV => Pile = { B ; C + (D x E) ; (F / G) } SUB => Pile = { B ; C + (D x E) - (F / G) } MPY => Pile = { B x (C + (D x E) - (F / G)) } STA A => Pile = { }
31
Types d’ instructions (1/2)
Transferts de données : de registre à registre, de registre à mémoire, de mémoire à registre, de mémoire à mémoire. Opérations arithmétiques : Addition, soustraction,multiplication,division. Opérations logiques : NON, ET, OU, Ou exclusif, etc.
32
Types d’ instructions (2/2)
Contrôle de séquence : branchements , branchements conditionnels, appel de sous-programmes, Entrées/Sorties (I/Os) : lectures/écritures sur les périphériques (écran, imprimantes, disques durs, etc.) Autres opérations : décalage, permutation circulaire de bits, comparaison, incrémentation d’index, etc.
33
Modes d’adressage (1/4) Adressage implicite : Le code opération indique implicitement où se trouve l’opérande. Exemple X86 : LAHF transfert les bits de condition (status flags) dans le registre Ah Adressage immédiat : Le champ adresse de la source contient la valeur de l’opérande. Exemple X86 : MOV DX,1234 transfert la valeur immédiate dans le registre Dx Adressage registre : Le champ adresse contient le numéro du registre contenant l’opérande. Exemple x86 : NOT DX complémente à 1 le contenu du registre Dx (1234) qui devient donc EDBC.
34
Modes d’adressage (2/4) Adressage direct : Le champ d’adresse contient l’adresse effective de l’opérande. Exemple X86 : Mov [0100], DX transfère le contenu du registre Dx à l’adresse mémoire 0100 qui contient donc maintenant EDBC. Adressage indirect : Le champ d’adresse contient l’adresse où se trouve l’adresse effective de l’opérande. Exemple PDP-11 : MOV (R1), R4 transfère dans R4 le contenu de l’adresse contenue dans R1
35
Modes d’adressage (3/4) Adressage indexé :
adresse effective = contenu du champ adresse contenu du registre d’index Exemple PDP-11 : MOV R4, 100(R3)+ transfère dans R4 le contenu de l’adresse (100 + contenu de R3) et incrémente R3. Utilisé pour travailler sur des tableaux Adressage basé : Base + Déplacement adresse effective = contenu du champ adresse (Déplacement) contenu du registre de base (Base) Utilisé - en cas d’allocation dynamique de la mémoire, lorsque le nombre de bit alloué à l’adresse dans l’instruction est faible.
36
Modes d’adressage (4/4) Adressage relatif :
adresse effective = contenu du champ adresse contenu du Compteur Ordinal (CO) Utilisé dans des instructions de branchements
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.