Les systèmes microprogrammés

Transcription

Les systèmes microprogrammés
Les systèmes microprogrammés
A). Généralités :
Un système microprogrammé est un ensemble de cartes électroniques (ou un circuit intégré) qui va
pouvoir être programmé pour réaliser des tâches particulières. Le but étant de pouvoir en changer les
tâches sans toucher à l’électronique. Sa structure va être la suivante :
Le processeur est l’organe principal de la carte, c’est lui « qui fait le travail » en exécutant le
programme qu’on lui a demandé.
La mémoire (RAM et ROM) permet de stocker le programme et les données (initiales et résultats).
Les Ports d’entrées-sorties permettent une interface avec l’extérieur, elle gère les entrées (clavier,
capteurs, …) et les sorties (écran, relais, …) du montage.
Le Bus de données est le bus sur lequel circulent les données.
Le Bus d’adresses est le bus sur lequel circulent les adresses des données.
Le Bus de contrôle est le bus sur lequel circulent les commandes (horloge, ordres de lecture, ordres
d’ écriture.
B). Les Entrées – Sorties :
Dans un système à base de microprocesseur, on appelle Entrées-Sorties les échanges
d'informations entre le processeur et les périphériques extérieurs qui lui sont associés. Le système peut
alors réagir à des modifications de son environnement, voire même le contrôler. Elles sont parfois
désignées par l'acronyme I/O, issu de l'anglais Input/Output. On prend toujours comme référence le
microprocesseur.
Dans un système :

Les entrées sont les données envoyées par un périphérique (disque, réseau, clavier,
interrupteur, ...) à destination de l'unité centrale;

Les sorties sont les données émises par l'unité centrale à destination d'un périphérique
(disque, réseau, écran, relais, ...).
Exemple :

taper sur les touches du clavier envoie une série de codes vers le processeur ; ces codes
sont considérés comme des données d'entrée ;
Micro-Processeur
1
JFA07

le processeur affiche les résultats du traitement des données sur un écran ; ce sont des
données de sortie.
C). La mémoire :
I ). Principe :
1°). Définitions :
Il faut voir la mémoire comme un tableau, où les lignes contiennent les données, et le numéro de la
ligne du tableau est l’adresse.
Les données sont groupées :
Un groupe de 4 bits s’appelle un quartet,
Un groupe de 8 bits s’appelle un octet,
Un groupe de 16 bits s’appelle un mot, …
Un groupe de 32 bits s’appelle un double mot, …
2°). Capacité d’une mémoire :
La capacité d’une mémoire représente le nombre total de bits et le format correspond à la
longueur des mots. Le nombre de bits d'adresse k définit le nombre total de mots de la mémoire, si n
est le nombre de bits par mot, la capacité de la mémoire est donnée par :
Capacité = 2k mots = 2k x n bits
Cette capacité est exprimée en multiple de 1024 ou kilo. La table suivante résume la valeur des
autres préfixes utilisés pour exprimer les capacités des mémoires :
Symbole
Préfixe
Capacité
1k
(kilo)
210
=
1024
1M
(méga)
220
=
1048576
1G
(giga)
230
=
1073741824
1T
(tera)
240
=
1099511627776
 Application :
On a une mémoire qui possède 9 fils sur le bus d’adresses et 4 bits sur le bus de données.
Donnez sa capacité en Bits, octets, kb, kO ?
Réponse :
Micro-Processeur
29 x4  512 x4  2048 bits  2 kbits  256 o  1 / 4 ko
2
JFA07
II ). Mémoire vive :
1°). Définitions :
La mémoire vive, aussi appelée RAM (Random Access Memory, soit mémoire à accès
aléatoire), est un type de mémoire informatique à accès aléatoire (par opposition à séquentiel) et en
lecture-écriture. On l'appelle aussi mémoire volatile pour signifier que toutes les données sont
perdues à l'extinction de l'alimentation électrique. Il s'agit typiquement de la mémoire électronique
qui contient les données en cours de traitement dans un système programmé.
2°). Désignation :
La mémoire vive (RAM) est généralement opposée à la mémoire morte (ROM) : il est possible
de lire et écrire de la mémoire vive alors qu'il est uniquement possible de lire de la mémoire morte.
En revanche, la mémoire morte conserve les données lorsque l'alimentation électrique est coupée.
La mémoire morte n'est donc pas volatile.
Il existe aussi un type intermédiaire de mémoire électronique à accès aléatoire, accessible en
lecture et écriture comme la RAM, mais non volatile comme la ROM : la NVRAM.
3°). Technologie :
Une carte mémoire RAM de 4 Mo pour ordinateur VAX 8600 (circa 1986).
DIP
SIPP
SIMM 30 Broches
SIMM 72 Broches
DIMM
RIMM
Micro-Processeur
3
JFA07
La mémoire informatique est un composant qui fut d'abord magnétique (tores de ferrite), puis devint
électronique dans les années 1970, et qui permet de stocker et relire des informations binaires. Son rôle
est notamment de stocker les données qui vont être traitées par l'unité centrale (ou le microprocesseur) ;
elle n'a rien de commun en temps d'accès (quelques dizaines ou centaines de nanosecondes) avec le disque
dur (quelques millisecondes, soit dix mille à cent mille fois plus).
La RAM présente la particularité qu'on peut y accéder à la fois en lecture et en écriture. Une activation
électronique appropriée permet si besoin de verrouiller temporairement en écriture des blocs physiques
donnés. L'adressage d'une mémoire (traduction de tensions électriques sur des fils en adresse mémoire) se
fait par un mécanisme nommé le Décodage d’adresses (chip select). Il est très facile de munir un
microprocesseur d'une mémoire non contiguë (par exemple de 0 à 4095, puis un trou, puis de la mémoire
entre 16384 et 32767), ce qui facilite beaucoup la détection d'erreurs d'adressage éventuelles.
Les informations peuvent être organisées en mots de 8, 16 ou 32 bits voir plus. Certaines machines
anciennes avaient des mots de taille plus exotique, comme par exemple 60 bits pour le Control Data 6600,
36 bits pour l'IBM 7030 « Stretch » ou le DEC PDP-10 et 12 bits pour la plupart des premiers miniordinateurs de DEC, les appareils d'instrumentation travaillant au mieux sur 12 bits à l'époque. Mais :

dans les mémoires à parité, un neuvième bit (dit de contrôle de parité) existe de façon invisible,

dans les mémoires à correction automatique d'erreur sur 1 bit et détection sur plus d'un bit (ECC),
ces bits invisibles sont parfois au nombre de six ou plus,

chaque mot des mémoires des serveurs modernes dits non-stop ou 24x365 dispose en plus des bits
de correction de bits de remplacement qui prennent la relève du ou des bits défaillants à mesure du
vieillissement de la mémoire : une défaillance de 10-11 chaque année se traduit en effet par plus
d'un bit défaillant par an sur une mémoire de 128 Go.
Les fabricants recommandent souvent d'utiliser de l'ECC à partir d'1 Go de RAM.
4°). Divers types de mémoire vive :
a) La Ram Statique :
C’est une mémoire peu gourmande en énergie, mais chaque bit mémoire nécessite 4 transistors Mos.
Ainsi une mémoire de 8ko nécessite 8192*8*4 = 262 144 transistors MOS !
Micro-Processeur
4
JFA07
b) La Ram Dynamique :
Une mémoire dynamique (DRAM) ne conserve ses informations que si elle est « rafraîchie »
régulièrement, c'est-à-dire si un signal lui est transmis de manière régulière (toutes les x millisecondes)
afin de remettre au bon niveau les charges électriques représentant l'information, et qui sinon
s'affaibliraient progressivement jusqu'à disparaître. Pourquoi compte-tenu de ces contraintes de
rafraîchissement et de consommation utiliser quand même de la DRAM ? Parce qu'elle est à la fois bon
marché et rapide. Pourquoi est-elle bon marché et rapide? Parce que la cellule mémoire élémentaire de la
DRAM est très simple et ne nécessite que peu de silicium.
En 2007, on trouve des barrettes de 512, 1024, 2048 et plus rarement 4096 Mo au catalogue des
constructeurs.
On distingue sur les machines actuelles les types de mémoire RAM :

SDRAM (Synchronous Dynamic RAM) pour les machines de la génération Pentium II, Pentium
III. On distingue la SDRAM 66, 100 et 133 (fréquence d'accès en MHz).

RDRAM (Rambus Dynamic RAM). Pour les machines de génération Pentium III et 4.
Développées par la société RAMBUS, elles souffrent notamment d'un prix beaucoup plus élevé
que les autres types de mémoires et de brevets trop restrictifs de la part de cette société.

DDR-SDRAM (Double Data Rate-SDRAM). Pour les machines de génération Pentium III et 4.
On distingue les DDR PC1600, PC2100, PC2700, PC3200 etc. Le numéro représente la quantité
théorique maximale de transfert d'information en Mégabits (il faut diviser par 8 pour avoir leur fréquence
réelle de fonctionnement).

DDR2-SDRAM (Double Data Rate 2-SDRAM). Pour les machines de génération Pentium 4 et
plus.
On distingue les DDR2 533 et DDR2 667. Le numéro représente la vitesse maximum d'accès. Certains
constructeurs privilégient encore la technique d'appellation basée sur la quantité de données
théoriquement transportables (PC4300, PC4500, etc), mais la plupart semblent retourner à la vitesse réelle
de fonctionnement afin de distinguer plus clairement la DDR2 de la génération précédente.

XDRRAM (XDimm Rambus RAM). Technologie basée sur la technologie Flexio développée par
Rambus.
Micro-Processeur
5
JFA07
Elle permet d'envisager des débits théoriques de 6,4Go/s à 12,8Go/s en rafale.
Il existe aussi des mémoires Flash. Ce sont des mémoires NVRAM effaçables électriquement
(EEPROM), qui par conséquent gardent la mémoire sans être alimentée. On les utilise dans les appareils
mobiles (appareils photo, téléphones portables etc.). Les utilisateurs de PDA auront déjà remarqué que
leur temps d'accès, même en lecture seule, est pour le moment bien plus lente que celui de la mémoire
dynamique.
III ). Mémoire morte :
1°). Désignation :
La mémoire morte, aussi appelée ROM (Read Only Memory, soit mémoire à lecture seule) est une
mémoire informatique impossible à modifier.
La mémoire morte n'est pas volatile, elle ne perd pas ses données, en l'absence de courant électrique,
contrairement à la mémoire vive.
2°). Utilisation :
Les mémoires mortes sont utilisées, entre autres, pour stocker :

les informations vitales d'un ordinateur (BIOS, instructions de démarrage, microcode)
Puisqu'elles ne peuvent pas être modifiées, il n'y a pas de risque d'effacement accidentel par
l'utilisateur. Dans le cas d'un BIOS qu'il est possible de mettre à jour (avec une durée d'écriture
bien plus longue que la durée de lecture), c'est abusivement que certaines sources les désignent
sous le nom de ROM. Il existe pour elles un sigle approprié, et utilisé par des constructeurs
comme IBM ou Intel, qui est NVRAM : non-volatile RAM.

des tables de constantes ou bien des tables de translation d'une valeur par une autre.

des jeux vidéo de consoles d'ancienne génération.
La faible capacité de stockage de la ROM a fait finalement perdre ce marché au profit du CDROM, puis du DVD- ROM.
Les temps d'accès à ce type de mémoire étant relativement lent (pour information les RAM ont un temps
d'accès moyens de 45 nanosecondes), les données stockées sont généralement copiées au démarrage, dans
une mémoire vive plus rapide. On appelle cette opération le shadowing.
Micro-Processeur
6
JFA07
La première EPROM fabriquée par INTEL, 256 x 8, ~1969.
3°). Types de ROM :
Il existe différents types de ROM en fonction de la possibilité de les programmer ou de les effacer :

Les ROM (Read Only Memory) dont le contenu est défini lors de la fabrication.

Les PROM (Programmable Read Only Memory) sont programmables par l'utilisateur, mais une
seule fois.

Les EPROM (Erasable Programmable Read Only Memory) sont programmables par l'utilisateur.
Effaçables par une machine spéciale, la mémoire doit donc être facilement démontable de son
support.

Les EEPROM (Electrically Erasable Programmable Read Only Memory) sont programmables
par l'utilisateur. Elles sont effaçables électriquement.

Les UVPROM (Ultra Violet Programmable Read Only Memory) sont programmables par
l'utilisateur. Elles sont effaçables par bombardement d'ultra violet.
Micro-Processeur
7
JFA07
D). Synthèse :
E). Mémoire de masse :
1°). Définitions :
En informatique, le terme de mémoire de masse regroupe tous les systèmes de stockage d'informations
(données et programmes) auxquels a accès un microprocesseur (ordinateur).

Disque dur

Disquette

Bande magnétique

Disque Zip

CD

DVD

Clé USB
Micro-Processeur
8
JFA07

Dans une optique moins "locale" mais plutôt orientée réseau : utilisation de système de fichiers
distribués tels que Nfs ou Coda, connexion à un serveur Ftp ou à une base de données externe.
La disquette 3"1/2 à longtemps été le moyen de stockage et d'échange traditionnel entre PCs, l'arrivée
successive du disque Zip de Iomega et des graveurs de CD ne remis pas, ou très peu, en question cette
suprématie, notamment à cause du coût excessifs de ces derniers à l'époque. La Clé USB semble être la
candidate idéale, en raison de son faible cout ( le modèle de base pouvant s'acheter autour de 30 €), de sa
capacité bien plus importante ( de 256 Mo à 8 Go contre 1,44 Mo pour la disquette) et de son
encombrement ridicule, sa taille approchant le plus souvent celle d'un briquet.
F). Le processeur :
1°). Généralités :
Le processeur, (ou CPU, Central Processing Unit, « Unité centrale [de traitement] » en
anglais) est le composant essentiel d'un Système (Micro) Programmé. Il exécute les programmes
qui permettent d’effectuer les principaux calculs. C’est en grande partie de lui que dépendent les
performances du système. Il permet d'effectuer des opérations arithmétiques (additions,
soustraction, multiplications, …) et logiques (Non, Ou, Et, OU Exclusif, …) et d'organiser des
transferts de données entre les différents éléments du système ; Sa cadence (le nombre de microinstructions qu'il effectue en une seconde) est exprimée en Hertz (Hz)et dépend donc de la
fréquence de son horloge.
Il faut faire la distinction entre CPU, processeur, microprocesseur et microcontrôleur.

le processeur, c'est le nom générique. C’est un composant (ou une carte électronique)
puissant (par opposition au microprocesseur).

le microprocesseur, c'est un composant généraliste (il peut tout faire, et n'est optimisé
pour rien), employé préférentiellement dans les systèmes informatiques, qui nécessite
quelques circuits complémentaires pour pouvoir dialoguer avec son environnement.
Selon les types il peut traiter directement des données de 8, 16, 32, 64 et même
quelquefois 128 bits. C'est le composant de base de l'informatique, mais en
instrumentation on lui préférera généralement des composants plus spécialisés, donc
plus optimisés pour les tâches qu'on leur confiera, et donc plus performants.

le microcontrôleur est plus adapté aux applications embarquées car il comporte sur sa
puce un certain nombre d'interfaces en plus du microprocesseur (Ram, ROM, I/O,…),
par contre il est généralement moins puissant en terme de rapidité ou de taille de
mémoire adressable et le plus souvent cantonné aux données de 8 ou 16 bits.

le processeur de signal (DSP : Digital Signal Processeur) est beaucoup plus spécialisé
calcul. Il est optimisé pour le traitement du signal, mais n'est pas prévu pour accomplir
des tâches généralistes de bas niveau qu'exécutent les deux précédents.

le composant ASIC ou FPGA. Ces composants sont souvent exploités
complémentairement : un ASIC est très spécifique d'une application et a été
spécialement développé pour celle-ci, à l'inverse le circuit FPGA est par construction
destiné à faire, a priori, n'importe quoi puisque c'est l'utilisateur qui devra le configurer
pour réaliser une application spécifique. Très souvent le FPGA sert à la mise au point, et
un fondeur de silicium saura ensuite transcrire ses fonctionnalités en un circuit ASIC
figé et a priori de moindre coût. L'un comme l'autre seront, selon les cas, employés soit
en complément, soit en remplacement d'un processeur. Des bibliothèques de plus en
plus étendues de fonctions prédéfinies, la reconfiguration dynamique et bientôt la
Micro-Processeur
9
JFA07
généralisation des outils permettant l'implantation hardware quasi immédiate (c'est à
dire sans passer des centaines d'heures de transcription et de débogage) de logiciels
écrits directement en langage C rendent ces composants FPGA de plus en plus attractifs
non seulement pour des productions de petite et moyenne série, mais aussi de série
importante eu égard à leur diminution de coût (production + développement), leur
accroissement de taille et de performances qui dorénavant rendent la solution FPGA de
plus en plus souvent plus économique que la solution ASIC.
En ce qui concerne les ordinateurs de type compatibles PC actuels, les deux principales sociétés
qui conçoivent les processeurs sont Intel et AMD (processeurs compatibles Intel). Cyrix arrêta de
produire des processeurs en 1998. Un nouveau venu, VIA, propose des processeurs basse
consommation.
Après avoir été de farouches adversaires dans les années 1980, Apple et IBM se sont associés au
début des années 1990 à Motorola afin de produire les processeurs PowerPC, basés sur l'architecture
Power d'IBM. Apple a utilisé alternativement des processeurs Motorola ou IBM dans ses machines
jusqu'à la dernière évolution à l'heure actuelle : le PowerPC 970. En 2004, Motorola s'est séparé de
sa division semi-conducteur et en a fait une entreprise indépendante : Freescale. Depuis début 2006,
Apple utilise des processeurs Intel, sans que l'on sache si les futurs ordinateurs d'Apple partageront
une architecture matérielle commune avec les compatibles IBM PC.
Beaucoup de calculatrices graphiques (TI-89...) et de téléphones portables (toutes marques
confondues) sont basés sur des processeurs de la famille m68k.
2°). Histoire :
Le microprocesseur a été inventé par Marcian Ted Hoff en 1971, alors que celui-ci était
ingénieur chez Intel. À l'époque, ni la direction d'Intel ni le client japonais à qui était destiné le
microprocesseur, n'ont été intéressés par l'invention.
En 1990, on apprenait toutefois que la paternité du concept de Micro-processeur jusque là
revendiquée depuis 1971, et 1973 pour le brevet, par Intel et Marcian Ted Hoff, était mal-fondée.
En effet Gilbert Hyatt (1938-) avait dès 1970 déposé un brevet plus étendu sur ce concept et avait
poursuivi, en toute discrétion pour éviter les pressions, la validation de ce brevet pendant les 20
années qui suivirent. Ce brevet s'il le souhaitait l'autoriserait à percevoir des royalties (droits
d'auteur) sur tous les micro-processeurs fabriqués de par le monde pendant les vingt ans qui ont
suivi.
Le premier microprocesseur commercialisé est le 4004 4-bits le 15 novembre 1971, qui servit
au départ à fabriquer des contrôleurs graphiques en mode texte. Il fut suivi par le 8008. Ces
processeurs sont les précurseurs des Intel 8080 et Zilog Z80 et de la future famille des Intel x86.
Un autre microprocesseur, le SC/MP (Scamp) de National Semiconductor effectuait ses
calculs en virgule fixe décimale. Il fut pour cette raison largement utilisé dans les distributeurs
automatiques à restitution de monnaie qui commencèrent à apparaître dès cette époque.
3°). Familles de microprocesseurs :
Il existe plusieurs familles de microprocesseurs :

La plus connue par le grand public est celle de la famille x86, développée
principalement par Intel (Pentium), AMD (Athlon), VIA, Transmeta... Les deux
premiers constructeurs sont désormais les seuls encore réellement dans la course et
fabriquent la plus grande partie des processeurs pour PC (2005).
Micro-Processeur
10
JFA07

Les PowerPC d'IBM et Motorola équipent actuellement les Macintosh (Apple
Computer) ainsi que divers systèmes embarqués. Une puce différente équipée de 10
processeurs périphérique intégrés a été choisie pour les consoles de jeu : Playstation 3,
la Xbox 360 et probablement la future Nintendo Wii...

Le 6502 a servi à fabriquer le célèbre Apple II.

La famille 68000 de Motorola animait les anciens Macintosh, les Megadrive, les Atari
ST et les Commodore Amiga. Leurs dérivés (Dragonball, ColdFire) sont toujours
utilisés dans des systèmes embarqués.
Parmi les familles moins connues du grand public:

La famille Sparc anime la plus grande partie des stations de travail de Sun
Microsystems.

La famille MIPS anime les stations de travail de Silicon Graphics, des consoles de jeux,
comme les PSOne et des systèmes embarqués, ou des routeurs Cisco.

La famille StrongARM est de nos jours utilisée uniquement dans les systèmes
embarqués, elle a précédemment été utilisée par Acorn pour ses Archimedes et RiscPC.
4°). Fonctionnement :
Les microprocesseurs sont cadencés par une horloge (signal régulier rapide, imposant un
rythme au circuit et, assurant éventuellement une synchronisation avec les autres composants, tel
que la mémoire). Au milieu des années 1980, les microprocesseurs fonctionnaient de 4 à 8 MHz.
Courant 2004, cette vitesse d'horloge atteint 4 GHz sur des modèles commerciaux. Plus la vitesse
de l'horloge est élevée, plus le microprocesseur sera capable d'exécuter à un rythme élevé les
instructions de base des programmes. Mais l'augmentation de la vitesse d'horloge présente des
inconvénients : plus le microprocesseur tourne vite, plus il consomme d'électricité, et plus il
chauffe.
Les microprocesseurs actuels sont optimisés pour exécuter plus d'une instruction par cycle
d'horloge, ce sont des microprocesseurs avec des unités d'exécution parallélisées. De plus ils sont
dotés de procédures qui « anticipent » les instructions suivantes avec l'aide de la statistique.
Dans la course à la puissance des microprocesseurs, deux méthodes d'optimisation sont en
concurrence :
1. La technologie du jeu d'instructions simplifié (RISC, Reduced Instruction Set Computer),
rapide avec des instructions simples, facile à fabriquer et dont on peut monter la vitesse de
l'horloge sans trop de difficultés techniques.
2. La technologie appelée CISC (Complex Instruction Set Computer), dont chaque
instruction complexe nécessite plus de cycles d'horloge, mais qui a en son cœur beaucoup
d'instructions pré-câblées.
Néanmoins, avec la considérable augmentation de la taille des puces électroniques et la
gigantesque accélération des fréquences d'horloge, la distinction entre RISC et CISC a quasi
complètement disparu. Là où des familles tranchées existaient, on observe aujourd'hui des
microprocesseurs où une structure interne RISC apporte de la puissance tout en restant
compatible avec une utilisation de type CISC (la famille Intel x86 a ainsi subi discrètement une
transition entre une organisation initialement très typique d'une structure CISC. Actuellement elle
Micro-Processeur
11
JFA07
utilise un cœur RISC très rapide, s'appuyant sur un système de réarrangement du code à la volée)
mis en œuvre, en partie, grâce à des mémoires cache de plus en plus étendue, comportant jusqu'à
trois niveaux.
5°). Structure d'un microprocesseur :
L'unité centrale d'un microprocesseur comprend essentiellement :

une unité arithmétique et logique (UAL) qui effectue les opérations,

des registres qui permettent au microprocesseur de stocker temporairement des données,

une unité de contrôle qui commande l'ensemble du microprocesseur en fonction des
instructions du programme.
Certains registres ont un rôle très particulier :

le registre indicateur d'état (flags), ce registre donne l'état du microprocesseur à tout
moment, il peut seulement être lu,

le compteur de programme (PC, Program Counter), il contient l'adresse de la prochaine
instruction à exécuter,
le pointeur de pile (SP, Stack Pointer), c'est le pointeur d'une zone spéciale de la
mémoire appelé pile où sont rangées les arguments des sous-programmes et les adresses
de retour.
Micro-Processeur
12
JFA07

L'unité de contrôle peut aussi se décomposer :

le registre d'instruction, mémorise le code de l'instruction à exécuter,

le décodeur décode cette instruction,

le séquenceur exécute l'instruction, c'est lui qui commande l'ensemble des organes du
microprocesseur.
6°). Fabrication des microprocesseurs :
La fabrication d'un microprocesseur est essentiellement identique à celle de n'importe quel
circuit intégré. Elle suit donc un procédé complexe. Mais l'énorme taille de la plupart des
microprocesseurs a tendance à augmenter encore le coût de l'opération.
La loi de Moore, qui indique que le degré d'intégration des microprocesseurs double tous les
18 mois, indique également que les coûts de production doublent en même temps que le degré
d'intégration.
La fabrication des microprocesseurs est aujourd'hui considérée comme l'un des deux facteurs
d'augmentation de la capacité des unités de fabrication (avec les contraintes liées à la fabrication
des mémoires à grande capacité). La finesse de la gravure industrielle a atteint désormais 45 nm.
G). Adressage mémoire :
1°). Définitions :
L'adressage mémoire est une technique informatique permettant au processeur d'accéder à la mémoire
informatique. L'interface utilisée est dans la plupart des cas un bus, c'est-à-dire un ensemble de fils dédiés
à une utilisation particulière (ici l'accès à la mémoire).
Sur N fils, on peut coder 2N valeurs. Ainsi, en précisant la largeur du bus d'adresse, en nombre de bits (ou
fils) on indique la capacité mémoire maximum accessible par le processeur (la taille de son espace
d'adressage).
En plus des fils codant l'adresse, il en faut au minimum un fil supplémentaire indiquant l'opération qui
sera faite sur la mémoire : lecture ou écriture.
Il est possible de multiplexer le bus d'adresse avec le bus de données, en mettant en commun un certain
nombre de fils, sachant qu'un signal supplémentaire devra être généré pour savoir comment interpréter les
valeurs binaires circulant sur ces fils (adresse ou données). Un exemple de processeurs avec bus
multiplexé : les 8086 ou 8088 d'Intel.
Un bus d'adresse trop petit, donc un adressage mémoire restreint, a été l'un des facteurs déterminants dans
la disparition de certaines lignées d'ordinateurs. Par exemple le PDP-10, une machine 36 bits dont l'espace
d'adressage n'était que de 18 bits (256 kilo octets), n'a jamais eu de successeur. La gamme de miniordinateurs PDP-11 de DEC à été remplacée par les VAX, ce qui est d'ailleurs l'abréviation de Virtual
Address Extension.
La méthode d'accès décrite ici est la plus simple : les fils d'adresses relient directement le processeur à la
mémoire. Des mécanismes plus complexes, tels que ceux utilisés pour la mise en place d'un système à
mémoire virtuelle nécessitent un décodage des adresses plus élaboré.
Micro-Processeur
13
JFA07
H). Décodage d’adresses ou Chip select :
On nomme chip select une entrée de contrôle de nombreux circuits intégrés, tel que les puces mémoires,
permettant d'activer ou désactiver le circuit. Quand elle est active, le composant peut être adressé, quand
elle ne l'est pas le composant est dans un mode dit standby (au repos). L'économie d'énergie qui en
découle est appréciable, surtout quand le nombre de circuits désactivés est important (ce qui est le cas
pour les puces formant la mémoire centrale d'un ordinateur par exemple).
I ). Exemple pratique immédiat :
Lorsque vous assemblez un système à microprocesseur et que vous devez monter une ROM ou une RAM
(puces) à l'adresse hexadécimale 4000, vous êtes typiquement confronté à un problème de chip select.
II ). Autre exemple :
Voici le diagramme de connexion de l'EPROM Intel C1702A. La broche numéro 14 est le Chip Select,
dénoté CS. La consommation est de 35 mA et de 5 mA quand la puce est inactivée par le biais du Chip
Select.
Le brochage de la puce Intel C1702A.
La patte 14 est le Chip Select, actif quand il est à 0 V.
La puce Intel C1702A.
Micro-Processeur
14
JFA07
III ). Mise en application :
C'est une extraction des fils d'adresses, dirigées vers une unité de décodage qui contrôle les broches Chip
Select des unités raccordées sur les bus d'adresses et données. Le CPU est le processeur, le PIO le
contrôleur d'entrées/sorties parallèle et SIO le contrôleur d'entrées/sorties série. Sur un ordinateur plus
«étoffé» on trouvera plutôt des contrôleurs de bus (PCI etc.).
Suivant le nombre de fils que possède le bus d'adresse d'un microprocesseur, on peut déterminer la taille
mémoire maximum qu'il peut adresser. Par exemple s'il possède 16 fils d'adresse, il pourra accéder à 64
Ko (216Octets) de mémoire.
Le bus d'adresse est donc décodé pour contrôler la ligne chip select des puces qui y sont relié. Il y a
plusieurs façons de décoder les adresses :
1°). Décodage direct :
Il suffit de prendre directement les fils d'adresses pour activer les composants. Cela n'est possible que
dans les cas ou l'adressage est très simple comme par exemple un microprocesseur qui adresse 4 Ko de
ROM et 1 Ko de RAM, sans aucune autre contrainte.
Si l'on raccorde directement le fil A14 du bus d'adresse à la broche Chip Select de la ROM et le fil A12 du
bus d'adresse à la broche chip select de la RAM, ces deux espaces mémoire seront accessibles comme
suit :
Mémoire Fil d'adresse Plage d'adresses
ROM
A14
16 K - 20 K
RAM
A12
4K-5K
Un autre argument en la faveur de cette technique est l'économie réalisée, le nombre de circuits extérieurs
étant nul.
Micro-Processeur
15
JFA07
2°). Décodage par logique combinatoire :
Reprenons le cas où le montage précédent, mais on à maintenant la contrainte que les 4 Ko de ROM
doivent être accessible à partir de l'adresse 0, et les 1 K de RAM contigüe, toute la mémoire étant ainsi
accessible entre 0 et 5 Ko.
Découpons la mémoire en tranches de 1 K, et assignons les 4 premières à la ROM et la dernière à la
RAM. Les adresses sont alors :
A15
0
0
0
0
0
x
A14
0
0
0
0
0
x
A13
0
0
0
0
0
x
A12
0
0
0
0
1
x
A11
0
0
1
1
0
x
A10
0
1
0
1
0
x
A9
x
x
x
x
x
x
A8
x
x
x
x
x
x
A7
x
x
x
x
x
x
A6
x
x
x
x
x
x
A5
x
x
x
x
x
x
A4
x
x
x
x
x
x
A3
x
x
x
x
x
x
A2
x
x
x
x
x
x
A1
x
x
x
x
x
x
A0
x
x
x
x
x
x
Plage
0K-1K
1K-2K
2K-3K
3K-4K
4K-5K
5 K - 64 K
Adresses
Assignation
0x0000 - 0x3FF
ROM
0x0400 - 0x07FF
ROM
0x0800 - 0x0CFF
ROM
0x0D00 - 0x0FFF
ROM
0x1000 - 0x13FF
RAM
0x1400 - 0xFFFF
Il faut donc construire un circuit à 6 entrées (de A10 à A15) et 2 sorties CSROM et CSRAM qui contrôleront
chacune la broche Chip Select de la ROM et de la RAM.
U6A
1
A15
1
1
1
1
1
2
U7A
7404
1
A14
U10A
2
1
2
13
7404
U8A
1
A13
2
U12A
&
12
1
2
7411
&
3
CSROM
7408
U9A
7404
1
A12
2
U13A
7404
1
A11
U16A
2
1
2
7404
&
U14A
1
2
3
7408
A10
&
3
CSRAM
7408
Décodage complet des adresses. La circuiterie est complexe et relativement lente et coûteuse.
On constate qu'il faut une 3 circuits intégrés pour décoder l'adresse.
Cette technique revient à décomposer l'adresse en deux parties : les N bits de poids fort permettront la
sélection du circuit via son Chip Select, et les bits de poids faible à adresser les données à l'intérieur du
circuit sélectionné. Cette méthode est à rapprocher de la technique de la pagination de la mémoire
virtuelle.
Bits de Sélection
Adressage à l'intérieur de l'objet sélectionné
A1 A1 A1 A1 A1 A1
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Micro-Processeur
5
4
3
2
1
0
0
0
0
0
0
0
0
x
1
0
0
0
0
0
0
0
x
1
0
0
0
0
0
0
0
x
1
0
0
0
0
1
1
1
x
1
0
0
1
1
0
0
1
x
1
0
1
0
1
0
1
0
x
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
16
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
JFA07
3°). Décodage partiel :
Il est possible de partiellement décoder l'adresse, dans cet exemple seul un inverseur est utilisé
Dans l'exemple précédent, on remarque que le bit A12 est discrimant. On peut donc tout simplement
l'utiliser pour partiellement décoder l'adresse : on économisera des circuits. On notera que l'adresse
0xFxxx sélectionnera la RAM, alors qu'il n'y a pas de RAM à cette adresse.
4°). Utilisation d'un décodeur :
Des circuits intégrés spéciaux ont été conçu pour prendre en charge le décodage d'adresse, on les appelle
donc simplement décodeurs ou bien parfois démultiplexeurs. Ils possèdent N entrées et 2N sorties.
Voici la table de vérité pour un décodeur «3 vers 8» :
ABC
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
S S S S S S S S
1
2
3
4
5
6
7
8
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
Celui-ci vient donc tout naturellement s'interfacer sur le bus d'adresse, d'où les N fils de poids fort iront
vers l'entrée du décodeur, tandis que les 2N fils de sorties contrôleront les broches Chip Select des circuits.
L'usage d'un décodeur implique que les blocs mémoires accédés sont de même taille.
5°). Autres méthodes :

On peut utiliser une mémoire morte pour faire la sélection. Dans notre exemple ci-dessus, pour
complètement décoder l'adresse, il suffit d'une mémoire de 64 x 2 bits dont le premier fil de sortie
sera relié sur le Chip Select de la ROM et le second sur celui de la RAM. La mémoire contiendra
la valeur 10 pour les adresses entre 0 et 4 K et 01 aux adresses entre 4 et 5 K et 00 au delà.
L'inconvénient de l'utilisation de table de translation implanté sous forme de mémoire morte est
qu'elle peut être d'assez grande capacité si beaucoup de bits sont utilisés pour décoder.

Une PAL plus ou moins complexe est aussi parfois utilisée.
Micro-Processeur
17
JFA07