Informatique Industrielle
Année 2004 - 2005
Architecture des ordinateurs Note de cours T.Dumartin
1 GENERALITES
INTRODUCTION
1.1 1.2 QU’ENTEND-T-ON PAR ARCHITECTURE ? 1.3 QU’EST CE QU’UN MICROPROCESSEUR ? 1.4 RAPPELS 1.5 OU TROUVE-T-ON DES SYSTEMES A MICROPROCESSEUR ?
2 ARCHITECTURE DE BASE
2.1 MODELE DE VON NEUMANN 2.2 L’UNITE CENTRALE 2.3 LA MEMOIRE PRINCIPALE 2.4 LES INTERFACES D’ENTREES/SORTIES 2.5 LES BUS 2.6 DECODAGE D’ADRESSES
3 LES MEMOIRES
Les RAM statiques Les RAM dynamiques Conclusions
3.1 ORGANISATION D’UNE MEMOIRE 3.2 CARACTERISTIQUES D’UNE MEMOIRE 3.3 DIFFERENTS TYPES DE MEMOIRE 3.3.1 LES MEMOIRES VIVES (RAM) 3.3.1.1 3.3.1.2 3.3.1.3 3.3.2 LES MEMOIRES MORTES (ROM) 3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 3.3.2.5 La FLASH EPROM 3.4 CRITERES DE CHOIX D’UNE MEMOIRE 3.5 NOTION DE HIERARCHIE MEMOIRE
LA ROM La PROM L’EPROM ou UV-EPROM
L’EEPROM
4 LE MICROPROCESSEUR
4.1 ARCHITECTURE DE BASE D’UN MICROPROCESSEUR 4.1.1 L’UNITE DE COMMANDE 4.1.2 L’UNITE DE TRAITEMENT 4.1.3 SCHEMA FONCTIONNEL 4.2 CYCLE D’EXECUTION D’UNE INSTRUCTION 4.3 JEU D’INSTRUCTIONS 4.3.1 DEFINITION 4.3.2 TYPE D’INSTRUCTIONS 4.3.3 CODAGE 4.3.4 MODE D’ADRESSAGE 4.3.5 TEMPS D’EXECUTION 4.4 LANGAGE DE PROGRAMMATION 4.5 PERFORMANCES D’UN MICROPROCESSEUR 4.6 NOTION D’ARCHITECTURE RISC ET CISC 4.6.1 L’ARCHITECTURE CISC
2
5
5 5 5 6 6
7
7 7 7 8 8 8
9
9 10 11 11 11 11 12 12 13 13 14 14 15 16 16
18
18 18 19 19 20 22 22 22 22 22 22 23 23 24 24
Principe
Gain de performance
Pourquoi 4.6.1.1 4.6.1.2 Comment 4.6.2 L’ARCHITECTURE RISC Pourquoi 4.6.2.1 4.6.2.2 Comment 4.6.3 COMPARAISON 4.7 AMELIORATIONS DE L’ARCHITECTURE DE BASE 4.7.1 ARCHITECTURE PIPELINE 4.7.1.1 4.7.1.2 4.7.1.3 4.7.2 NOTION DE CACHE MEMOIRE Problème posé 4.7.2.1 Principe 4.7.2.2 4.7.3 ARCHITECTURE SUPERSCALAIRE 4.7.4 ARCHITECTURE PIPELINE ET SUPERSCALAIRE 4.8 PROCESSEURS SPECIAUX 4.8.1 LE MICROCONTROLEUR 4.8.2 LE PROCESSEUR DE SIGNAL 4.9 EXEMPLES 4.9.1 AMD ATHLON : 4.9.2 INTEL PENTIUM III
Problèmes
5 LES ECHANGES DE DONNEES
5.1 L’INTERFACE D’ENTREE/SORTIE 5.1.1 ROLE 5.1.2 CONSTITUTION 5.2 TECHNIQUES D’ECHANGE DE DONNEES 5.2.1 ECHANGE PROGRAMME Scrutation 5.2.1.1 5.2.1.2 Interruption 5.2.2 ECHANGE DIRECT AVEC LA MEMOIRE 5.3 TYPES DE LIAISONS 5.3.1 LIAISON PARALLELE 5.3.2 LIAISON SERIE 5.4 NOTION DE RESEAU 5.4.1 INTRODUCTION 5.4.2 LE MODELE OSI 5.4.3 CLASSIFICATION DES RESEAUX 5.4.4 TOPOLOGIE DES RESEAUX
6 UN EXEMPLE - LE PC
6.1 L’UNITE CENTRALE 6.1.1 LA CARTE MERE 6.1.2 LE MICROPROCESSEUR 6.1.3 LA MEMOIRE 6.1.4 LA CARTE VIDEO 6.1.4.1 6.1.4.2 6.1.4.3 6.1.4.4 6.1.5 LES PERIPHERIQUES INTERNES DE STOCKAGE 6.1.5.1 6.1.5.2
Le GPU La mémoire vidéo Le RAMDAC Les entrées/sorties vidéo
Les disques optiques
Le disque dur
3
24 24 24 24 24 25 25 25 25 26 27 27 27 28 29 29 30 30 30 30 30 31
33
33 33 33 34 34 34 34 35 36 36 36 38 38 39 40 41
43
43 43 46 48 49 50 50 50 51 51 51 52
4
1 Généralités
1.1 Introduction
Chapitre 1
L'informatique, contraction d'information et automatique, est la science du traitement de l'information. Apparue au milieu du 20ème siècle, elle a connu une évolution extrêmement rapide. A sa motivation initiale qui était de faciliter et d'accélérer le calcul, se sont ajoutées de nombreuses fonctionnalités, comme l'automatisation, le contrôle et la commande de processus, la communication ou le partage de l'information.
Le cours d’architecture des systèmes à microprocesseurs expose les principes de base du traitement programmé de l’information. La mise en œuvre de ces systèmes s’appuie sur deux modes de réalisation distincts, le matériel et le logiciel. Le matériel (hardware) correspond à l’aspect concret du système : unité centrale, mémoire, organes d’entrées-sorties, etc… Le logiciel (software) correspond à un ensemble d’instructions , appelé programme, qui sont contenues dans les différentes mémoires du système et qui définissent les actions effectuées par le matériel.
1.2 Qu’entend-t-on par architecture ?
L'architecture d'un système à microprocesseur représente l’organisation de ses différentes unités et de leurs interconnexions. Le choix d'une architecture est toujours le résultat d'un compromis :
- - - -
entre performances et coûts entre efficacité et facilité de construction entre performances d'ensemble et facilité de programmation etc …
1.3 Qu’est ce qu’un microprocesseur ?
Un microprocesseur est un circuit intégré complexe. Il résulte de l’intégration sur une puce de fonctions logiques combinatoires (logiques et/ou arithmétique) et séquentielles (registres, compteur, etc…). Il est capable d'interpréter et d'exécuter les instructions d'un programme. Son domaine d’utilisation est donc presque illimité.
Le concept de microprocesseur a été créé par la Société Intel. Cette Société, créée en 1968, était spécialisée dans la conception et la fabrication de puces mémoire. À la demande de deux de ses clients — fabricants de calculatrices et de Intel étudia une unité de calcul implémentée sur une seule puce. Ceci donna naissance, en 1971, au premier microprocesseur, le 4004, qui était une unité de calcul 4 bits fonctionnant à 108 kHz. Il résultait de l’intégration d’environ 2300 transistors.
terminaux —
Remarques :
La réalisation de circuits intégrés de plus en plus complexe a été rendue possible par l’apparition du transistor en 1947. Il a fallu attendre 1958 pour voir apparaître le 1ier circuit intégré réalisé par Texas Instrument.
5
1.4 Rappels
Les informations traitées par un microprocesseur sont de différents types (nombres, instructions, images, vidéo, etc…) mais elles sont toujours représentées sous un format binaire. Seul le codage changera suivant les différents types de données à traiter. Elles sont représentées physiquement par 2 niveaux de tensions différents.
En binaire, une information élémentaire est appelé bit et ne peut prendre que deux valeurs
différentes : 0 ou 1.
Une information plus complexe sera codée sur plusieurs bit. On appelle cet ensemble un mot.
Un mot de 8 bits est appelé un octet.
Représentation d’un nombre entier en binaire :
Les nombres sont exprimés par des chiffres pouvant prendre deux valeurs 0 ou 1. A chaque
chiffre est affecté un poids exprimé en puissance de 2.
Ex : ( 101 )2 <> 1x 2² + 0x21 + 1x20 = ( 5 )10
Représentation d’un nombre entier en hexadécimal :
Lorsqu’une donnée est représentée sur plus de 4 bits, on préfère souvent l’exprimer en
hexadécimal. Les nombres sont exprimés par des chiffres et des lettres pouvant prendre 16 valeurs :
A chaque chiffre est affecté un poids exprimé en puissance de 16.
0 1 2 3 4 5 6 7 8 9 A B C D E F
Ex : ( 9A )16 <> 9x161
+ Ax160 = 9x161 + 10x160 = ( 154 )10
Attention !! :
1 kilobit = 210 bit = 1024 bit 1 mégabit = 210 kbit = 1024 kbit 1 gigabit = 210 Mbit = 1024 Mbit
1.5 Où trouve-t-on des systèmes à microprocesseur ? Les applications des systèmes à microprocesseurs sont multiples et variées : - Ordinateur, PDA console de jeux - calculatrice - télévision - téléphone portable - distributeur automatique d’argent - robotique - lecteur carte à puce, code barre - automobile - instrumentation - etc… -
6
2 Architecture de base
Chapitre 2
2.1 Modèle de von Neumann
Pour traiter une information, un microprocesseur seul ne suffit pas, il faut l’insérer au sein d’un système minimum de traitement programmé de l’information. John Von Neumann est à l'origine d'un modèle de machine universelle de traitement programmé de l’information (1946). Cette architecture sert de base à la plupart des systèmes à microprocesseur actuel. Elle est composé des éléments suivants :
(cid:23)une unité centrale (cid:23)une mémoire principale (cid:23)des interfaces d’entrées/sorties
Les différents organes du système sont reliés par des voies de communication appelées bus.
Unité centrale
Mémoire Principale
Interface E/S
bus
2.2 L’unité centrale
Elle est composée par le microprocesseur qui est chargé d’interpréter et d’exécuter les instructions d’un programme, de lire ou de sauvegarder les résultats dans la mémoire et de communiquer avec les unités d’échange. Toutes les activités du microprocesseur sont cadencées par une horloge.
On caractérise le microprocesseur par :
– – –
sa fréquence d’horloge : en MHz ou GHz le nombre d’instructions par secondes qu’il est capable d’exécuter : en MIPS la taille des données qu’il est capable de traiter : en bits
2.3 La mémoire principale
Elle contient les instructions du ou des programmes en cours d’exécution et les données
associées à ce programme. Physiquement, elle se décompose souvent en :
– une mémoire morte ( ROM = Read Only Memory ) chargée de stocker le
programme. C’est une mémoire à lecture seule.
– une mémoire vive ( RAM = Random Access Memory ) chargée de stocker les données intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces données sont perdues à la mise hors tension.
Remarque : Les disques durs, disquettes, CDROM, etc… sont des périphériques de stockage et sont considérés comme des mémoires secondaires.
7
2.4 Les interfaces d’entrées/sorties
Elles permettent d’assurer la communication entre le microprocesseur et les périphériques. (
capteur, clavier, moniteur ou afficheur, imprimante, modem, etc…).
2.5 Les bus
Un bus est un ensemble de fils qui assure la transmission du même type d’information. On retrouve trois types de bus véhiculant des informations en parallèle dans un système de traitement programmé de l’information :
- un bus de données : bidirectionnel qui assure le transfert des informations entre le microprocesseur et son environnement, et inversement. Son nombre de lignes est égal à la capacité de traitement du microprocesseur.
la sélection des informations à traiter dans un espace mémoire (ou espace adressable) qui peut avoir 2n emplacements, avec n = nombre de conducteurs du bus d'adresses.
- un bus d'adresses: unidirectionnel qui permet
la synchronisation des flux d'informations sur les bus des données et des adresses.
- un bus de commande: constitué par quelques conducteurs qui assurent
Publicité
2.6 Décodage d’adresses
La multiplication des périphériques autour du microprocesseur oblige la présence d’un
décodeur d’adresse chargé d’aiguiller les données présentes sur le bus de données.
En effet, le microprocesseur peut communiquer avec les différentes mémoires et les différents boîtier d’interface. Ceux-ci sont tous reliés sur le même bus de données et afin d’éviter des conflits, un seul composant doit être sélectionné à la fois. Lorsqu’on réalise un système microprogrammé, on attribue donc à chaque périphérique une zone d’adresse et une fonction « décodage d’adresse » est donc nécessaire afin de fournir les signaux de sélection de chacun des composants.
Décodeur d’adresses
Bus d’adresses
Bus de
commande
Unité centrale
Mémoire Principale
Interface E/S
Bus de données
Remarque : lorsqu’un composant n’est pas sélectionné, ses sorties sont mises à l’état « haute impédance » afin de ne pas perturber les données circulant sur le bus. ( elle présente une impédance de sortie très élevée = circuit ouvert ).
8
3 Les mémoires
Chapitre 3
Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de
conserver et de restituer des informations (instructions et variables). C’est cette capacité de mémorisation qui explique la polyvalence des systèmes numériques et leur adaptabilité à de nombreuses situations. Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, lecture lorsqu'on récupère des informations précédemment enregistrées.
3.1 Organisation d’une mémoire
Une mémoire peut être représentée comme une armoire de rangement constituée de différents tiroirs. Chaque tiroir représente alors une case mémoire qui peut contenir un seul élément : des données. Le nombre de cases mémoires pouvant être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro. Ce numéro est appelé adresse. Chaque donnée devient alors accessible grâce à son adresse
Adresse
Case mémoire
7 = 111
6 = 110
5 = 101
4 = 100
3 = 011
2 = 010
1 = 001
0 = 000
0001 1010
Avec une adresse de n bits il est possible de référencer au plus 2n cases mémoire. Chaque case est remplie par un mot de données (sa longueur m est toujours une puissance de 2). Le nombre de fils d’adresses d’un boîtier mémoire définit donc le nombre de cases mémoire que comprend le boîtier. Le nombre de fils de données définit la taille des données que l’on peut sauvegarder dans chaque case mémoire.
En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une entrée de commande qui permet de définir le type d’action que l’on effectue avec la mémoire (lecture/écriture) et une entrée de sélection qui permet de mettre les entrées/sorties du boîtier en haute impédance.
On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer :
Adresses (n bits)
R/W
CS
Mémoire
Données (m bits)
(cid:23) les entrées d’adresses (cid:23) les entrées de données (cid:23) les sorties de données (cid:23) les entrées de commandes :
-
-
une entrée de sélection de lecture ou d’écriture. ( R/W ) une entrée de sélection du circuit. ( CS )
9
Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle :
1. sélection de l’adresse 2. choix de l’opération à effectuer ( R/W ) 3. sélection de la mémoire ( CS = 0 ) lecture ou écriture la donnée 4.
Remarque : Les entrées et sorties de données sont très souvent regroupées sur des bornes bidirectionnelles.
3.2 Caractéristiques d’une mémoire
(cid:131) La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime aussi
souvent en octet.
(cid:131) Le format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire.
On dit aussi que c’est la largeur du mot mémorisable.
(cid:131) Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération de lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus de données.
(cid:131) Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture.
(cid:131) Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.
(cid:131) Volatilité : elle caractérise la permanence des informations dans la mémoire. L'information stockée est volatile si elle risque d'être altérée par un défaut d'alimentation électrique et non volatile dans le cas contraire.
Exemple : Chronogramme d’un cycle de lecture
BUS @
R/ W
CS
BUS D
Données accessibles
Dx
@x
Taccès
Tcycle
Remarque :
Les mémoires utilisées pour réaliser la mémoire principale d’un système à microprocesseur sont des mémoires à semi-conducteur. On a vu que dans ce type de mémoire, on accède directement à n'importe quelle information dont on connaît l'adresse et que le temps mis pour obtenir cette information ne dépend pas de l'adresse. On dira que l'accès à une telle mémoire est aléatoire ou direct.
A l'inverse, pour accéder à une information sur bande magnétique, il faut dérouler la bande en repérant tous les enregistrements jusqu'à ce que l'on trouve celui que l'on désire. On dit alors que l'accès à l'information est séquentiel. Le temps d'accès est variable selon la position de l'information recherchée. L'accès peut encore être semi-séquentiel : combinaison des accès direct et séquentiel. Pour un disque magnétique par exemple l'accès à la piste est direct, puis l'accès au secteur est séquentiel.
10
3.3 Différents types de mémoire
3.3.1 Les mémoires vives (RAM)
Une mémoire vive sert au stockage temporaire de données. Elle doit avoir un temps de cycle très court pour ne pas ralentir le microprocesseur. Les mémoires vives sont en général volatiles : elles perdent leurs informations en cas de coupure d'alimentation. Certaines d'entre elles, ayant une faible consommation, peuvent être rendues non volatiles par l'adjonction d'une batterie. Il existe deux grandes familles de mémoires RAM (Random Acces Memory : mémoire à accès aléatoire) :
(cid:131) Les RAM statiques (cid:131) Les RAM dynamiques
3.3.1.1 Les RAM statiques
Le bit mémoire d'une RAM statique (SRAM) est composé d'une bascule. Chaque bascule
contient entre 4 et 6 transistors.
@7 @6 @5 @4 @3 @2 @1 @0
D7
D5 D6 D4
D3
D1
D2
D0
3.3.1.2 Les RAM dynamiques
Dans les RAM dynamiques (DRAM), l'information est mémorisée sous la forme d'une charge
électrique stockée dans un condensateur (capacité grille substrat d'un transistor MOS).
@7 @6 @5 @4 @3 @2 @1 @0
D7
D5 D6 D4
D3
D1
D2
D0
(cid:131) Avantages :
Cette technique permet une plus grande densité d'intégration, car un point mémoire nécessite environ quatre fois moins de transistors que dans une mémoire statique. Sa consommation s’en retrouve donc aussi très réduite.
(cid:131) Inconvénients : La présence de courants de fuite dans le condensateur contribue à sa décharge. Ainsi, l’information est perdue si on ne la régénère pas périodiquement (charge du condensateur). Les RAM dynamiques doivent donc être rafraîchies régulièrement pour entretenir la mémorisation : il s'agit de lire l'information et de la recharger. Ce rafraîchissement indispensable a plusieurs conséquences :
-
-
il complique la gestion des mémoires dynamiques car il faut tenir compte des actions de rafraîchissement qui sont prioritaires. la durée de ces actions augmente le temps d'accès aux informations.
11
D’autre part, la lecture de l’information est destructive. En effet, elle se fait par décharge de la capacité du point mémoire lorsque celle-ci est chargée. Donc toute lecture doit être suivie d’une réécriture.
3.3.1.3 Conclusions
En général les mémoires dynamiques, qui offrent une plus grande densité d'information et un coût par bit plus faible, sont utilisées pour la mémoire centrale, alors que les mémoires statiques, plus rapides, sont utilisées lorsque le facteur vitesse est critique, notamment pour des mémoires de petite taille comme les caches et les registres.
Remarques :
Voici un historique de quelques DRAM qui ont ou sont utilisées dans les PC :
• La DRAM FPM (Fast Page Mode, 1987) : Elle permet rapidement à des données en
d'accéder plus introduisant la notion de page mémoire. (33 à 50 Mhz)
• La DRAM EDO (Extended Data Out, 1995) : Les composants de cette mémoire permettent de conserver plus l'information, on peut donc ainsi espacer les cycles de rafraîchissement. Elle apporte aussi la possibilité d’anticiper sur le prochain cycle mémoire. (33 à 50 Mhz)
longtemps
• La DRAM BEDO (Bursted EDO) : On n'adresse plus chaque unité de mémoire individuellement lorsqu'il faut y lire ou y écrire des données. On se contente de transmettre l'adresse de départ du processus de lecture/écriture et la longueur du bloc de données ( Burst ). Ce procédé permet de gagner beaucoup de temps, notamment avec les grands paquets de données tels qu'on en manipule avec les applications modernes. (66 Mhz)
Publicité
• La Synchronous DRAM (SDRAM, 1997) : La mémoire SDRAM a pour particularité de se synchroniser sur une horloge. Les mémoires FPM, EDO étaient des mémoires asynchrones et elle induisaient des temps d'attentes lors de la synchronisation. Elle se compose en interne de deux bancs de mémoire et des données peuvent être lues alternativement sur l'un puis sur l'autre de ces bancs grâce à un procédé d'entrelacement spécial. Le protocole d'attente devient donc tout à fait inutile. Cela lui permet de supporter des fréquences plus élevées qu’avant (100 Mhz).
• La DDR-I ou DDR-SDRAM (Double Data Rate Synchronous DRAM, 2000) : La DDR-SDRAM permet de recevoir ou d'envoyer des données lors du front montant et du front descendant de l’horloge. (133 à 200 MHz)
3.3.2 Les mémoires mortes (ROM)
Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon permanente même lorsque l'alimentation électrique est interrompue. On utilise alors des mémoires mortes ou mémoires à lecture seule (ROM : Read Only Memory). Ces mémoires sont non volatiles. Ces mémoires, contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire des données restent possible mais est appelée programmation. Suivant le type de ROM, la méthode de programmation changera. Il existe donc plusieurs types de ROM :
(cid:131) ROM (cid:131) PROM (cid:131) EPROM (cid:131) EEPROM (cid:131) FLASH EPROM.
12
3.3.2.1 LA ROM
Elle est programmée par le fabricant et son contenu ne peut plus être ni modifié., ni effacé par
l'utilisateur.
(cid:131) Structure :
Cette mémoire est composée d'une matrice dont la programmation s’effectue en reliant les lignes aux colonnes par des diodes. L'adresse permet de sélectionner une ligne de la matrice et les données sont alors reçues sur les colonnes (le nombre de colonnes fixant la taille des mots mémoire).
(cid:131) Programmation :
L'utilisateur doit fournir au constructeur un masque indiquant les emplacements des diode dans matrice.
(cid:131) Avantages :
(cid:102) Densité élevée (cid:102) Non volatile (cid:102) Mémoire rapide
(cid:131) Inconvénients :
+V
adresse
1
0
0
0
données
(cid:102) Écriture impossible (cid:102) Modification impossible (toute erreur est fatale). (cid:102) Délai de fabrication (3 à 6 semaines) (cid:102) Obligation de grandes quantités en raison du coût élevé qu'entraîne la production du masque et le processus de fabrication.
3.3.2.2 La PROM
C’est une ROM qui peut être programmée une seule fois par l'utilisateur (Programmable ROM). La
programmation est réalisée à partir d’un programmateur spécifique.
(cid:131) Structure :
Les liaisons à diodes de la ROM sont remplacées par des fusibles pouvant être détruits ou des
jonctions pouvant être court-circuitées.
(cid:131) Programmation :
Les PROM à fusible sont livrées avec toutes les lignes connectées aux colonnes (0 en chaque point mémoire). Le processus de programmation consiste donc à programmer les emplacements des ‘’1’’ en générant des impulsions de courants par l’intermédiaire du programmateur ; les fusibles situés aux points mémoires sélectionnés se retrouvant donc détruits.
Le principe est identique dans les PROM à jonctions sauf que les lignes et les colonnes sont déconnectées (1 en chaque point mémoire). Le processus de programmation consiste donc à programmer les emplacements des ‘’0’’ en générant des impulsions de courants par l’intermédiaire du programmateur ; les jonctions situées aux points mémoires sélectionnés se retrouvant court-circuitées par effet d’avalanche.
13
(cid:131) Avantages :
(cid:102) idem ROM (cid:102) Claquage en quelques minutes (cid:102) Coût relativement faible
(cid:131) Inconvénients :
(cid:102) Modification impossible (toute erreur est fatale).
3.3.2.3 L’EPROM ou UV-EPROM
Pour faciliter la mise au point d'un programme ou tout simplement permettre une erreur de programmation, il est intéressant de pouvoir reprogrammer une PROM. La technique de claquage utilisée dans celles-ci ne le permet évidemment pas. L'EPROM (Erasable Programmable ROM) est une PROM qui peut être effacée.
(cid:131) Structure
S
G
D
Dans une EPROM, le point mémoire est réalisé à partir d’un transistor FAMOS (Floating gate Avalanche injection Metal Oxyde Silicium). Ce transistor MOS a été introduit par Intel en 1971 et a la particularité de posséder une grille flottante.
(cid:131) Programmation
La programmation consiste à piéger des charges dans la grille
flottante. Pour cela, il faut tout d’abord appliquer une très forte tension entre Grille et Source. Si l’on applique ensuite une tension entre D et S, la canal devient conducteur. Mais comme la tension Grille-Source est très importante, les électrons sont déviés du canal vers la grille flottante et capturés par celle-ci. Cette charge se maintient une dizaine d'années en condition normale.
N
N
P
Grille flottante canal
L’exposition d’une vingtaine de minutes à un rayonnement ultra- violet permet d’annuler la charge stockée dans la grille flottante. Cet effacement est reproductible plus d’un millier de fois. Les boîtiers des EPROM se caractérise donc par la présence d’une petite fenêtre transparente en quartz qui assure le passage des UV. Afin d’éviter toute perte accidentelle de l’information, il faut obturer la fenêtre d’effacement lors de l’utilisation.
(cid:131) Avantages :
(cid:102) Reprogrammable et non Volatile
(cid:131) Inconvénients :
(cid:102) Impossible de sélectionner une seule cellule à effacer (cid:102) Impossible d’effacer la mémoire in-situ. (cid:102) l’écriture est beaucoup plus lente que sur une RAM. (environ 1000x)
3.3.2.4 L’EEPROM
L’EEPROM (Electically EPROM) est une mémoire programmable et effaçable électriquement.
Elle répond ainsi à l’inconvénient principal de l’EPROM et peut être programmée in situ.
14
(cid:131) Structure
Dans une EEPROM, le point mémoire est réalisé à partir d’un transistor SAMOS reprenant le
même principe que le FAMOS sauf que l’épaisseur entre les deux grilles est beaucoup plus faible.
(cid:131) Programmation
Une forte tension électrique appliquée entre grille et source conduit à la programmation de la mémoire. Une forte tension inverse provoquera la libération des électrons et donc l’effacement de la mémoire.
(cid:131) Avantages :
(cid:102) Comportement d'une RAM non Volatile. (cid:102) Programmation et effacement mot par mot possible.
(cid:131) Inconvénients :
(cid:102) Très lente pour une utilisation en RAM. (cid:102) Coût de réalisation.
3.3.2.5 La FLASH EPROM
La mémoire Flash s'apparente à la technologie de l’EEPROM. Elle est programmable et
effaçable électriquement comme les EEPROM.
(cid:131) Structure
Architecture NOR
@7 @6 @5 @4 @3 @2 @1 @0
D7
D5 D6 D4
D3
D1
D2
D0
Il existe deux technologie différentes qui se différencient par l’organisation de leurs réseaux mémoire : l’architecture NOR et NAND. L’architecture NOR propose un assemblage des cellules élémentaires de mémorisation en parallèle avec les lignes de sélection comme dans une EEPROM classique. L’architecture NAND propose un assemblage en série de ces mêmes cellules avec les lignes de sélection. D’un point de vue pratique, la différence majeure entre NOR et NAND tient à leurs interfaces. Alors qu’une NOR dispose de bus d’adresses et de données dédiés, la NAND est dotée d’une interface d’E/S indirecte. . Par contre, la structure NAND autorise une implantation plus dense grâce à une taille de cellule
approximativement 40 % plus petite que la structure NOR.
(cid:131) Programmation
Architecture NAND
Si NOR et NAND exploitent toutes deux le même principe de stockage de charges dans la grille flottante d’un transistor, l’organisation de leur réseau mémoire la même souplesse d’utilisation. Les Flash NOR autorise un adressage aléatoire qui permet de la programmer octet par octet alors que la Flash NAND autorise un accès séquentiel aux données et permettra seulement une programmation par secteur comme sur un disque dur.
Secteur 1 = @0 à n
n’offre
pas
@ 0
@ n
(cid:131) Avantages
Flash NOR :
(cid:102) Comportement d'une RAM non Volatile. (cid:102) Programmation et effacement mot par mot possible. (cid:102) Temps d’accès faible.
15
Flash NAND :
(cid:102) Comportement d'une RAM non Volatile. (cid:102) Forte densité d’intégration (cid:168) coût réduit. (cid:102) Rapidité de l’écriture/lecture par paquet (cid:102) Consommation réduite.
(cid:131) Inconvénients
Flash NOR :
(cid:102) Lenteur de l’écriture/lecture par paquet. (cid:102) coût.
Flash NAND : (cid:102) Ecriture/lecture par octet impossible. (cid:102) Interface E/S indirecte
La Flash EPROM a connu un essor très important ces dernières années avec le boom de la téléphonie portable et des appareils multimédia (PDA, appareil photo numérique, lecteur MP3, etc...).
3.4 Critères de choix d’une mémoire
Les principaux critères à retenir sont :
(cid:102) capacité (cid:102) vitesse (cid:102) consommation (cid:102) coût
3.5 Notion de hiérarchie mémoire
Une mémoire idéale serait une mémoire de grande capacité, capable de stocker un maximum d’informations et possédant un temps d’accès très faible afin de pouvoir travailler rapidement sur ces informations. Mais il se trouve que les mémoires de grande capacité sont souvent très lente et que les mémoire rapides sont très chères. Et pourtant, la vitesse d’accès à la mémoire conditionne dans une large mesure les performances d’un système. En effet, c’est là que se trouve le goulot d’étranglement entre un microprocesseur capable de traiter des informations très rapidement et une mémoire beaucoup plus lente (ex : processeur actuel à 3Ghz et mémoire à 400MHz). Or, on n’a jamais besoin de toutes les informations au même moment. 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 dont le microprocesseur se sert le plus et on utilise des mémoires de capacité importante mais beaucoup plus lente pour stocker les informations dont le microprocesseur se sert le moins. Ainsi, plus on s’éloigne du microprocesseur et plus la capacité et le temps d’accès des mémoire vont augmenter.
+
e s s e
t i v
1 ns
Publicité
< 400 o
Registre
5 ns
Mémoire cache
8 ko à 4 Mo suivant les niveaux
10 ns
Mémoire principale
Jusqu’à 1 Go
Mémoire d’appui
2 à 8 Mo
5 ms
Mémoire de masse
200 Go
c a p a c i t
é
+
16
(cid:131) 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.
(cid:131) 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.
(cid:131) 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.
(cid:131) La mémoire d’appui sert de mémoire intermédiaire entre la mémoire centrale et les
mémoires de masse. Elle joue le même rôle que la mémoire cache.
(cid:131) 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. Elle utilise pour cela des supports magnétiques (disque dur, ZIP) ou optiques (CDROM, DVDROM).
17
4 Le microprocesseur
Chapitre 4
Un microprocesseur est un circuit intégré complexe caractérisé par une très
grande intégration et doté des facultés d'interprétation et d'exécution des instructions d'un programme. Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi prendre en compte les informations extérieures au système et assurer leur traitement. C’est le cerveau du système.
A l’heure actuelle, un microprocesseur regroupe sur quelques millimètre carré des fonctionnalités toujours plus complexes. Leur puissance continue de s’accroître et leur encombrement diminue régulièrement respectant toujours, pour le moment, la fameuse loi de Moore (1).
4.1 Architecture de base d’un microprocesseur Un microprocesseur est construit autour de deux éléments principaux :
(cid:131) Une unité de commande (cid:131) Une unité de traitement
associés à des registres chargées de stocker les différentes informations à traiter. Ces trois éléments sont reliés entre eux par des bus interne permettant les échanges d’informations.
Bus d’adresses
@
Unité de traitement
Unité de commande
Programme
Données
D
Bus de données
Remarques : Il existe deux types de registres :
(cid:131) les registres d'usage général permettent à l'unité de traitement de manipuler des Ils sont connectés au bus données interne au
données à vitesse élevée. microprocesseur.
(cid:131) les registres d'adresses (pointeurs) connectés sur le bus adresses.
4.1.1 L’unité de commande
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de l'instruction. Comme chaque instruction est codée sous forme binaire, elle en assure le décodage pour enfin réaliser son exécution puis effectue la préparation de l'instruction suivante. Pour cela, elle est composée par :
(cid:131) le compteur de programme 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 l’instruction à exécuter.
(1) Moore (un des co-fondateurs de la société Intel) a émis l'hypothèse que les capacités technologiques permettraient de multiplier par 2 tous les 18 mois le nombre de transistors intégrés sur les circuits.
(cid:131) le registre d'instruction et le décodeur d'instruction : chacune des instructions à exécuter
est rangée dans le registre instruction puis est décodée par le décodeur d’instruction.
(cid:131) 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 des divers signaux de commande provenant du décodeur d’instruction ou du registre d’état par exemple. Il s'agit d'un automate réalisé soit de façon câblée (obsolète), soit de façon micro-programmée, on parle alors de micro- microprocesseur.
4.1.2 L’unité de traitement C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions :
(cid:131) 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).
(cid:131) 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 :
o retenue (carry : C) o retenue intermédiaire (Auxiliary-Carry : AC) o signe (Sign : S) o débordement (overflow : OV ou V) o zéro (Z) o parité (Parity : P)
(cid:131) Les accumulateurs sont des registres de travail qui servent à stocker une opérande au début
d'une opération arithmétique et le résultat à la fin de l'opération.
4.1.3 Schéma fonctionnel
Bus d’adresses
Registre d’@
Acc.
UAL
Registre d’états
PC
Bloc logique de commande
Registre d’instruction
Décodeur d’instruction
Registre Données
Bus de données
Bus de commande
Programme
Données
H
4.2 Cycle d’exécution d’une instruction
Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en
binaire. Le traitement d’une instruction peut être décomposé en trois phases.
(cid:131) Phase 1: Recherche de l'instruction à traiter
1. Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est placée sur le
bus d'adresses par l'unité de commande qui émet un ordre de lecture.
2. Au bout d'un certain temps (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.
3. L'instruction est stockée dans le registre instruction du processeur.
microprocesseur
PC
$2000
RI
Instr. 1
Décodeur d’instruction
1
@ $2000
3
mémoire
$2000
Instr. 1
$2001
Opér. 1
$2002
$2003
$2004
2
Instr. 2
Instr. 3
Inst. 1
$FFFF
(cid:131) Phase 2 : Décodage de l’instruction et recherche de l'opérande
Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut être codée sur plusieurs mots. Ce premier mot contient le code opératoire qui définit la nature de l'opération à effectuer (addition, rotation,...) et le nombre de mots de l'instruction.
1. L'unité de commande transforme l'instruction en une suite de commandes élémentaires
nécessaires au traitement de l'instruction.
2. Si l'instruction nécessite u