Architecture d'un ordinateur

Slides:



Advertisements
Présentations similaires
Le micro-ordinateur.
Advertisements

Électronique de base du processeur
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Fonctionnement de l'unité centrale (rappels ? de 1ère Année)
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Informatique Deug2 Sciences Eco S. Maabout 2004/2005.
La mémoire morte(ROM) Il existe un type de mémoire permettant de stocker des données en l'absence de courant électrique, il s'agit de la ROM (Read Only.
auxiliaires ou mémoires de masse ou alors secondaire).
Plan du cours : 2ème Partie
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Mémoire & Processus Cours SE - SRC
2.Les différentes architectures (Louis)
Les microprocesseurs A. Objectifs de la séquence:
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines La mémoire
Architecture de machines Principes généraux
Architecture de machines La mémoire
Cours d’initiation en Informatique
Système d’exploitation : Assembleur
Cours d’algorithme M. Boulakradeche
Les systèmes à microprocesseur
Architecture des ordinateurs
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Architecture de base d’un ordinateur
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Architecture des Ordinateurs
LES MEMOIRES.
Algorithmique et Programmation
Architecture d ’un système à MICROPROCESSEUR
LES SYSTEMES AUTOMATISES
Module 1 : Généralités sur les systèmes informatiques
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Logique programmée & Microprocesseurs
Architecture Des Ordinateurs Microprocesseur Et Mémoire
Chapitre 9 : La machine MIASM
Cours de Structure et Technologie des composants d’ordinateurs
3-Présentation d’un µP simple
Structure de Base d’un ordinateur Matière : Informatique
Les Machines RAM.
Cours LCS N°4 Présenté par Mr: LALLALI
INFOR 101 Chapitre 5 Marianne Morris.
Les fichiers 1ère partie
LES MEMOIRES.
Un programme Algorithme permettant au processeur de s'alimenter:
Patricia Renault UPMC 2005/2006
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
Chapitre 4 La représentation des nombres.
Chapitre 3 L’accès aux données.
1.1: notions de bases de l’informatique
Un ordinateur est une machine électronique qui fonctionne par la lecture séquentielle d'un ensemble d'instructions, organisées en programmes, qui lui.
Memoire.
L3 Instrumentation Pétrolière S6
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Architecture d’un ordinateur
LES MEMOIRES et le décodage d’adresses
Les bascules et registres
Initiation à l'informatique
Les mémoires la préparation de: chaimaa hamdou.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Architecture d'un automate programmable
Initiation à la micro-informatique Le matériel L’Unité Centrale un clic pour la suite…
Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
Structure Machine Haouam M. Yassine
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

Architecture d'un ordinateur Haouam M. Yassine 2013-2014

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

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.

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.

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

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

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.

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

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)

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

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

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.

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

L’architecture interne

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

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

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.

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.

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

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

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

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

L’architecture interne Architecture complète

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

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.

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

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

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

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.

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

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.

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

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.

Phase 3 : Exécution de l’instruction

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

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

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

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 .

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 :

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

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

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

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

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

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

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.

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.

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

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.

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

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

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

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)

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

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 1100 0000 0111 0001 0001 1100 1100 0002 0010 1000 0003 …… FFFF Contenu d’une case mémoire

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.

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 = 16384 Mots mémoire C= 214 * 4 = 65536 Bits = 8192 Octets = 8 Ko

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

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

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

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];