La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture d'un ordinateur

Présentations similaires


Présentation au sujet: "Architecture d'un ordinateur"— Transcription de la présentation:

1 Architecture d'un ordinateur
Haouam M. Yassine

2 Plan du cours Introduction Structure de base d’un ordinateur
Mémoires secondaires Les Entrées/Sorties

3 1. Introduction à l'informatique
Définition 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.

4 Historique La pascaline : 1642
destinée à effectuer mécaniquement des additions et des soustractions. L’automatisation était réalisée à l’aide de roues dentées.

5 1673:Machine arithmétique (Gottfried Leibniz )
( ) : Leibniz envisage le raisonnement d’une machine 1728 : Falcon construit le métier à tisser commandé par les cartes perforées.

6 1833 : Machine de Charles Babbage (La machine à différence)
Principes du métier à tisser 4 opérations arithmétiques de bases

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

8 Première génération (1945-1955)
: ENIAC (Electronic Numerical Integrator And Calculator) : tubes, 30 tonnes, multiplie 2 nombres de 10 chiffres en 3 millisecondes. Inconvénients

9 Deuxième génération (1955-1965)
Remplacement des tubes par des transistors 1956 : Disque magnétique (IBM) 1960 : IBM 7000 (William Shockley, John Bardeen, Walter Brattain)

10 Troisième génération (1965-1980)
1958 : apparition des circuits intégrés (puces) et des processeurs : IBM 360, DEC PDP-8, HP-2115

11 Quatrième génération (1980-??)
Ordinateurs personnels et VLSI (Very Large Scale Integration) : augmentation du nombres de transistors

12 2. Structure de base d’un ordinateur Architecture Von Neumann
Von Neumann propose une machine universelle : Unité arithmétique et logique (UAL, ou ALU) : traitement données Mémoire : instructions données Bus : transfert données Unité de commande (UC) : contrôle Unité entrées/sorties (I/O) : échange d’information avec les périphériques.

13 Architecture Von Neumann
Mémoire Unité de commande Unité arithmétique et logique Accumulateur Entrée Sortie

14 L’architecture interne

15 La mémoire La mémoire contient les instructions et les données.
Adresse La mémoire contient les instructions et les données. La mémoire est formée d’un ensemble de mots de longueur fixe, chaque mot contenant une information codée en binaire. Chaque mot de la mémoire est accessible par l’intermédiaire de l’adresse mémoire. Adresse Mots ADD A,B,C 1 23 2 24 3 N Lecture/Ecriture Données

16 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

17 L’architecture interne L’unité de commande (1)
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de l'instruction, le décodage de l’instruction codée sous forme binaire. Enfin elle pilote l’exécution de l’instruction. Les blocs de l’unité de commande : Le compteur de programme (PC : Programme Counter) appelé aussi Compteur Ordinal (CO) : est constitué par un registre dont le contenu est initialisé avec l'adresse de la première instruction du programme. Il contient toujours l’adresse de la prochaine instruction à exécuter.

18 L’architecture interne L’unité de commande (2)
Le registre d'instruction et le décodeur d'instruction : Chacune des instructions à exécuter est transférée depuis la mémoire dans le registre instruction puis est décodée par le décodeur d’instruction. Bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions au rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de l’instruction qu’il a exécuter.

19 L’architecture interne L’unité de commande (3)

20 L’architecture interne L’unité de traitement (1)
Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions Les blocs de l’unité de traitement : Les accumulateurs: sont des registres de travail qui servent à stocker un opérande au début d'une opération arithmétique et le résultat à la fin de l'opération. L’Unité Arithmétique et Logique (UAL): est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Décalage, etc…) ou arithmétique (Addition, soustraction…).

21 L’architecture interne L’unité de traitement (2)
Le registre d'état est généralement composé de 8 bits à considérer individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat de la dernière opération effectuée par l’UAL. On les appelle indicateur d’état ou flag ou drapeaux. Dans un programme le résultat du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer par exemple les indicateurs de : Retenue (carry : C) Débordement (overflow : OV ou V) Zéro (Z) ...

22 L’architecture interne L’unité de traitement (3)

23 L’architecture interne Architecture complète

24 Le traitement des instructions
Une instruction est composée de deux éléments : Le code opération: C’est un code binaire qui correspond à l’action à effectuer par le processeur (type d’action) Le champ opérande: Donnée ou bien adresse de la donnée. Une instruction peut contenir 0 ou plusieurs opérandes. Exemple d’instruction: Instruction d’addition: ADD A,B,C (instruction à 3 opérandes) ADD: Code opérations A,B,C : Opérandes C  A + B Code opération Opérande 1 Opérande 2

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

26 Modes d'adressage Un champ adresse peut permettre : Modes d’adressage
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

27 Modes d'adressage Adressage direct:
Le champ adresse de l'instruction contient l'adresse effective de l'opérande (l’adresse qui contient la valeur de l’opérande). Exemple: MOV 100, R2 @ Contenu 1 205 100 15 101 23 102 103 105 R2 15

28 Modes d'adressage Adressage indirect:
Le champ adresse de l'instruction contient l'adresse d’une case mémoire qui contient l’adresse effective de l'opérande Exemple: MOV (102), R2 @ Contenu 1 205 100 15 101 23 102 103 105 R2 2O5

29 Le traitement des instructions Phase 1 : Recherche de l’instruction en mémoire
La valeur du PC est placée sur le bus d'adresse par l'unité de commande qui émet un ordre de lecture. Après le temps d'accès à la mémoire, le contenu de la case mémoire sélectionnée est disponible sur le bus des données. L'instruction est stockée dans le registre d’instruction du processeur. La partie code opération est transmise au décodeur pour déterminer le type d’opération et le transmet au séquenceur.

30 Phase 1 : Recherche de l’instruction en mémoire

31 Le traitement des instructions Phase 2 : Décodage et recherche de l’opérande
L'unité de commande transforme l'instruction en une suite de commandes élémentaires nécessaires au traitement de l'instruction. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de commande récupère sa valeur sur le bus de données. L’opérande est stocké dans le registre de données.

32 Phase 2 : Décodage et recherche de l’opérande

33 Le traitement des instructions Phase 3 : Exécution de l’instruction
Le séquenceur réalise l'instruction. Les drapeaux sont positionnés (registre d'état). L'unité de commande positionne le PC pour l'instruction suivante.

34 Phase 3 : Exécution de l’instruction

35 Jeu d'instructions Jeu d'instructions: ensemble des instructions (opérations) effectuables par l'UAL; Exemple: plus de 100 sur des architecture CISC [Complex Instruction Set Code] et 35 sur des architectures RISC [Reduced Instruction Set Code] (détails dans un chapitre ultérieur).

36 Jeu d'instruction Transfert de données: Load, Move, Store,
transfert de registre/mémoire a registre, etc. Opérations arithmétiques: les 4 opérations en virgule fixe/flottante et en simple/multiple précision. Opérations logiques: NOT, AND, OR, XOR, etc. Contrôle de séquence: branchement impératif/conditionnel, boucle, appel de procédure, etc. Entrées/sorties: Read, Write, Print, etc. Manipulations diverses: décalages de bits, conversions

37 Exemple On considère une mémoire RAM contenant 16 mots mémoires d'un octet. Il suffit donc de 4 bits pour adresser un mot mémoire. On suppose les instructions suivantes: ADD a: Pour additionner le contenu du registre accumulateur au mot mémoire situé a l'adresse a de la mémoire RAM. Le résultat est stocke dans l'accumulateur ; ADD #a: Pour additionner le contenu du registre accumulateur avec la valeur a. Le résultat est stocke dans l'accumulateur ; JMP a: Pour charger l'adresse a dans le compteur ordinal (instruction de branchement inconditionnel) ;

38 JNZ a: Si le contenu de l'accumulateur est différent de zéro, l'adresse a est chargée dans le compteur ordinal (instruction de branchement conditionnel). SHL. Pour décaler les bits du registre accumulateur d'une position vers la gauche (le dernier bit devient égale a 0) ; LOAD a: Pour charger le registre accumulateur avec le mot mémoire situé à l'adresse a ; LOAD #a: Pour charger la valeur a dans le registre accumulateur. STO a: Pour ranger la valeur contenue dans le registre accumulateur à l'adresse a en RAM. STOP. Arrêt du programme .

39 Travail demandé: En reprenant les trois étapes de déroulement d'une instruction décrites plus haut, décrire pour chacune des étapes le contenu du registre accumulateur, du compteur ordinal et de la mémoire lors de l‘exécution de la séquence d'instructions commençant à l'adresse 0. Le contenu initial de la mémoire est le suivant :

40 Recherche de l’instruction en mémoire
(1) CT CO (2) Lecture RI U A L Load Décodeur R1 Séquenceur (3) CT Load 7

41 Recherche de l’instruction en mémoire
(CO)  // 0  Lecture  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

42 Décodage et recherche de l’opérande
7 (1) CT CO (2) Lecture RI U A L Load Décodeur R1 2O Séquenceur (3) CT 20

43 Recherche de l’instruction en mémoire
(RI.Opérande)  // 7  Lecture  Bus de données // 20  Bus de données (bus de données)  R1 // 20  R1

44 Exécution de l’instruction
7 (1) CT CO 1 2O NOP (2) Lecture RI U A L Load Décodeur R1 2O Séquenceur (3) CT 20

45 Exécution de l’instruction
ACC  (ACC) NOP (R1) // 20  ACC CO  (CO) + 1 // CO  1

46 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). Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, Il y a lecture lorsqu'on récupère des informations précédemment enregistrées.

47 Caractéristiques d’une mémoire
La capacité (taille de la mémoire) c’est le nombre total de bits que contient la mémoire. Elle s’exprime aussi souvent en octet. Temps d’accès temps qui s’écoule entre une demande de lecture ou d’écriture et son accomplissement. Cycle mémoire: il représente l'intervalle minimum entre 2 accès successifs à la mémoire. Cycle > temps d’accès Car besoin d’opérations supplémentaires entre 2 accès (stabilisation des signaux, synchronisation ...) Volatilité elle caractérise la permanence des informations dans la mémoire. L'information stockée est volatile si elle risque d'être perdue suite à un défaut d'alimentation électrique et non volatile dans le cas contraire. Débit nombre d’octets ou bits pouvant être lus ou écrits par secondes.

48 Méthodes d’accès Accès séquentiel Accès direct
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

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

50 Registre Mémoire cache Mémoire principale Mémoire de masse < 400 octets Jusqu’à 4 Mo Capacité Vitesse Jusqu’à 4 Go 500 Go

51 Les registres sont les éléments de mémoire les plus rapides
Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau du processeur et servent au stockage des opérandes et des résultats intermédiaires. La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer l’accès à la mémoire centrale en stockant les données les plus utilisées. La mémoire principale est l’organe principal de rangement des informations. Elle contient les programmes (instructions et données) et est plus lente que les deux mémoires précédentes. La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour le stockage permanent ou la sauvegarde des informations (disque dur, CDROM, DVD).

52 Mémoires à semi-conducteurs (1/2)
Les mémoires mortes (ROM: Read Only Memory) Accès en lecture seule mémoires non volatiles L’inscription des données en mémoire est appelée programmation. ROM: elle est programmée par le fabricant et son contenu ne peut plus être ni modifié., ni effacé par l'utilisateur. PROM: c’est une ROM qui peut être programmée une seule fois par l'utilisateur (Programmable ROM). EPROM (Erasable PROM) : sont des ROM que l'on peut programmer, effacer et reprogrammer. Mémoire flash: basée sur une EPROM effaçable électriquement (comportement d’une RAM non Volatile!)

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

54 Types des mémoires vives
Il existent deux grandes familles des mémoires vives : les mémoires statiques (SRAM) et les mémoires dynamiques (DRAM). Les mémoires statiques sont à base de bascules, elles possèdent un faible taux d’intégration mais un temps d’accès rapide (mémoire cache). Les mémoires dynamiques à base de condensateurs , ces mémoires possèdent un très grand taux d’intégration, elle sont plus simples que les mémoires statiques mais avec un temps d’accès plus long (mémoire centrale de l’ordinateur).

55 Vue logique de la mémoire centrale
Une adresse Un mot mémoire stocke une information sur m bits. un mot mémoire contient plusieurs cellules mémoire. Une cellule mémoire stock 1 seul bit Chaque mot possède sa propre adresse. Une adresse est un numéro unique qui permet d’accéder à un mot mémoire. Les adresses sont séquentielles (consécutives) La taille de l’adresse (le nombre de bits) dépend de la capacité de la mémoire. 0000 0001 0002 0003 …… FFFF Contenu d’une case mémoire

56 Structure matricielle
Lignes de mots 2n mots Le décodeur reçoit une adresse codée sur n bits. A la sortie du décodeur nous allons avoir une seule sortie qui est active  Cette sortie va nous permettre de sélectionner un seul mot mémoire.

57 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é = 2n Mots mémoire La capacité = 2n 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 ? C=214 = Mots mémoire C= 214 * 4 = Bits = 8192 Octets = 8 Ko

58 Mémoire Cache Définition
La mémoire cache est une mémoire intermédiaire placée entre le processeur et la mémoire centrale dont le temps d'accès est de 4 à 20 fois inférieur à celui de la mémoire centrale. Problèmes La mémoire cache est de petite taille Ne peut donc pas y stocker tout un programme et ses données Solutions Algorithmes pour « deviner » et mettre dans le cache les données/instructions avant que le CPU en ait besoin

59 Mémoire cache : principe
L'info cherchée est-elle dans le cache ? Oui: (a) ramener l'info dans le processeur Non: (2) chercher l'info dans la mémoire centrale L'info est-elle en mémoire centrale? Oui : (b) ramener l'info dans le cache , puis dans le processeur (a) Non: ….

60 Mémoire cache : Principe de localité
Localité temporelle Une donnée référencée à un temps t aura de très fortes chances d’être référencée dans un futur proche (t+1, t+2, …) Il est intéressant de stocker dans le cache une donnée à laquelle le processeur à récemment accédée. 1: load R3 2: add R2 3: load R4 4: sub #1 5: jnz 2 Ce principe n’est pas vrai à 100% ! Premier accès aux instructions 2, 3, 4, 5  en MC Les 4 accès suivants s’effectuent À partir du cache

61 Mémoire cache : Principe de localité
Localité spatiale Si une donnée est référencée à un temps t, alors il y a de très fortes chances que les données voisines le soient dans un futur proche On ramène dans le cache, l’information qui ne s’y trouve pas + un ensemble de plusieurs cases mémoires voisines. Ce principe n’est pas vrai à 100% ! for i:=0 to N do somme := somme + A[i];


Télécharger ppt "Architecture d'un ordinateur"

Présentations similaires


Annonces Google