Cours d’Architecture des Systèmes Informatiques (ASI)
CHAPITRE 5 : DECODAGE D’ADRESSES
I. INTRODUCTION AU DECODAGE 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îtiers 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.
Lorsque l’on réalise un système micro-programmé, 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.
1. Notion de plan de mémoire (mapping)
Soit un microprocesseur disposant d'un bus d'adresses de 16 fils de
A0 à A15. L'ensemble des combinaisons possibles est 2 16 soit 65536
combinaisons. Ce microprocesseur peut donc accéder à 65536
adresses différentes ou cases mémoires.
Comment sont réparties ces différentes adresses dans l'espace
d'adressage du processeur ?
Le concepteur de la carte a défini préalablement la topologie du
système ou plan mémoire. Ce plan indique comment les différents
mémoires et interface d'E/S sont agencés.
Exemple de plan
Ce plan est utile car il permet de
vérifier que jamais plusieurs
modules ne seront sélectionnés
simultanément. On évitera ainsi
les conflits électriques sur le bus
de données.
1 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
[Link] du décodage d'adresses
Nous cherchons à établir le plan à l'aide du schéma structurel. On
repère d'abord le circuit de sélection, les modules à sélectionner par
leur broche de sélection Chip Select.
Module A, B et C: RAM, ROM, interface E/S
Circuit de décodage d'adresses: circuit permettant, à partir de
certains bits d'adresses, de générer les bits CS de sélection
An-A0: bus d'adresse du processeur
2. Sélection d’un mot mémoire
On donne le schéma de principe suivant.
2 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
On dispose sur ce schéma de 4 composants mémoires recevant
chacun un bus d’adresse de 14 bits. Une puce mémoire a donc une
capacité de 16Ko (16384 octets).
L’adressage d’un module demande deux phases :
Sélection d’un boîtier mémoire parmi 4. On utilise pour cela les
bits d’adresse A14 et A15 envoyés sur l’entrée du décodeur
Sélection d’un octet parmi 16384 du boîtier mémoire
précédemment sélectionné
3. Etablissement du plan mémoire
Pour établir cette cartographie, il faut dresser d’abord la table de
vérité du décodeur.
A15 A14 Sorti
e
0 0 S0
0 1 S1
1 0 S2
1 1 S3
D’après cette table, pour que la puce M1 soit sélectionnée, il faut
A15=A14=0.
Cette combinaison active la sortie S 0 du décodeur, sortie connectée
à la broche de validation du boîtier M1. Ceci concerne l’adressage
externe des circuits. L’équation de sélection de ce circuit est donc :
CSM1= /A15./A14
3 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
L’adressage interne de la mémoire se fera grâce aux lignes A 0-A13
dont :
La plus petite valeur s’obtient en faisant: A 0 = A1 = ………… = A13
=0
La plus grande valeur s’obtient en faisant : A0 = A1 = ………… =
A13 = 1
A partir de ces deux valeurs extrêmes et de l’équation de sélection,
on dresse la table des adresses suivante :
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Adresse circuit
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 H
M1
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFF H
Pour les autres modules on a :
Circuit M2
CSM2= /A15.A14
A1 A1 A1 A1 A1 A1 A A A A A A A A A A
Adresse circuit
5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4000 H
M2
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7FFF H
Circuit M3
CSM3= A15./A14
A1 A1 A1 A1 A1 A1 A A A A A A A A A A
Adresse Circuit
5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000 H
M3
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 BFFF H
Circuit M4
CSM4= A15.A14
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Adresse circuit
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C000 H
M4
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFF H
4 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
A partir de cette table d’adresse, on dresse aisément la cartographie
de l’espace mémoire adressé.
Remarques
Les adresses paires sont placées à gauche tandis que les adresses
impaires sont à droite.
III. TYPES DE DECODAGE
On distingue 3 types de décodages dont :
1.Décodage fixe ou décodage complet
Dans ce type de décodage, toutes les lignes d’adresse du processeur
sont utilisées pour spécifier une location mémoire.
- chaque location mémoire est identifiée par une et unique adresse.
- il est plus complexe en termes de composants
Différents circuits de décodage existent :
- portes logiques : pour les petits systèmes
- décodeurs logiques (74138, 4556) : pour les systèmes plus
importants
- circuits PLD et PROM : pour les systèmes à géométrie variable.
Cette solution à décodeur programmé facilite l'évolution des
systèmes à processeur en simplifiant la modification du plan-
mémoire.
Remarque : Le décodage vu plus haut est un exemple de décodage
complet.
2. Décodage ajustable
5 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
Les décodeurs ne sont pas commandés exclusivement par les bits
d'adresse mais aussi par des bits définis avec des cavaliers. Il sera
donc possible d'adapter le plan-mémoire par manipulation de ces
cavaliers.
3.Décodage partiel
C'est le cas si certains bits d'adresse ne sont ni reliés au décodeur ni
à tous les modules.
Un module apparaîtra alors plusieurs fois dans le plan-mémoire du
processeur alors qu'une seule occurrence suffit pour sélectionner le
module.
Ce décodage est fréquent là où tout l'espace mémoire du processeur
n'est pas requis (petit système). L'avantage est la simplicité du
décodeur et donc son coût.
[Link]
On donne le schéma de principe suivant :
On constate sur ce schéma que certains bits d’adresses restent
inutilisés. Ce qui donne la table des adresses suivantes :
A1 A1 A1 A1 A1 A1 A A A A A A A A A A circ
5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 uit
0 1 X X 0 0 0 0 0 0 0 0 0 0 0 0 RA
0 1 X X 1 1 1 1 1 1 1 1 1 1 1 1 M
1 1 X X X 0 0 0 0 0 0 0 0 0 0 0 RO
1 1 X X X 1 1 1 1 1 1 1 1 1 1 1 M
Les bits inutilisés peuvent prendre n’importe quel état logique
indépendamment des circuits adressés. Ils vont alors générer pour
ces circuits plusieurs plages d’adresses possibles dont :
6 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
La toute première est appelée adresse de base
Toutes les autres sont dites adresses images.
Soit i le nombre de bits d’adresse non-utilisés et N ai le d’adresses
images.
Nai = 2i – 1
Exemple : la RAM
On admet que pour l’adresse de base, on choisit A 13=A12=0. Toutes
les autres combinaisons génèreront des adresses images. On obtient
les plages d’adresses suivantes.
Adresse début :
Adresse A13= 0
de base A12= 0 Adresse fin :
Adresse début :
A13= 0
A12= 1 Adresse fin :
Adresses Adresse début :
A13= 1
images A12= 0 Adresse fin :
Adresse début :
A13= 1
A12= 1 Adresse fin :
3.2. Elimination des adresses images
Pour donner une plage d’adresses unique aux circuits adressés, il
faut éliminer les adresses images et conserver l’adresse de base.
Cette élimination se fait grâce à des portes logiques.
Exemple: Elimination des adresses images de la RAM
On admet que l’adresse de base est obtenue pour A 12=A13=0.
L’équation de sélection de la RAM sera alors :
Le circuit d’élimination sera le suivant :
7 Année académique : 2024-2025
Cours d’Architecture des Systèmes Informatiques (ASI)
On procède de la même manière pour la ROM. A13=A12=A11=0 pour
l’adresse de base.
Cette équation donne le circuit suivant.
8 Année académique : 2024-2025