ENSIMAG 1A
ENSIMAG 1A.
Travaux dirigés : Architecture des ordinateurs TDs
Conception d'une carte a microprocesseur
On souhaite réaliser une carte mére monoprocesseur. Le processeur utilisé dispose de
interface suivante (la direction des signaux étant donnée du point de vue du processeur) :
— ADPR[31 :0] : un bus unidirectionnel (sortie) d’adresse de 32 bit
— RW[2 :0] : un bus unidirectionnel (sortie) détinissant le type d'accés (mot, demi-mot ou
octet) et le sens du transfert sur 3 bits
RW
000 NO OPERATION
001 WRITE WORD
010 WRITE HALF
011 WRITE BYTE
txx READ WORD
~ DATA[31 :0] : un bus de données bidirectionnel (entrée-sortie) de 32 bits ;
— FRZ : un signal d'entrée gelant le processeur (i.e. interdisant la moditication de son état
interne). Dans ce TD, on fait hypothése que FRZ est toujours a zéro ;
— BERR : un signal d'entrée indiquant la présence d'une adresse érronée.
Par ailleurs, on suppose que les instructions de ce processeur sont d'une taille fixe de 32
bits.
Dans le TD, nous faisons I'hypothése que les aspects temporels du protocole de commu-
nication entre les différents composants sont résolus.
Les questions de ce TD ont pour but de vous faire dessiner progressivement le schéma
logique complet d'une carte & microprocesseur. Pour cela il est important de respecter
les indications de positionnement des composants fournies.
Processeur
Question 1 Quelle est la zone de mémoire adressable par le processeur décrit ci des-
sus ? Sur une feuille représenter sous /a forme d'un rectangle la zone de mémoire, en
y faisant figurer l'adresse de la premiére case et adresse de la derniére case (valeur
donnée en Hexa).
Question 2 Quelle esta taille d'une case mémoire adressable par le processeur étudié ?
TD d’architecture - 3 page - 1ENSIMAG 1A
Question 3 Sur le cété gauche de la feuille, au centre, dessiner la représentation gra-
phique du processeur avec ses connecteurs. Préciser la direction de ceux-ci et /a taille
des bus.
Les ROM
On souhaite connecter a ce processeur trois mémoires de type ROM, contenant res-
pectivement le code exécuté par le processeur lors d'un reset, le code exécuté par le
processeur lors d'une exception, et le code du programme principal. Les ROM de reset et
d'exception ont une taille de 4 Koctets, et fournissent leurs données directement sur 32
bits. Elles doivent étre situées respectivement a partir des adresses 0xBFC00000 (reset)
et 0x80000000 (exception). La ROM de code fait 64 Koctets, fournit aussi ses données
sur 32 bits, et est accessible a partir de I'adresse 000400000. En plus des bus d’adresse
et de données, chaque ROM dispose d'une entrée de sélection OE (Output Enable, ac-
tive au niveau bas) permettant de faire passer la sortie de données de la ROM de l'état
« 6lectriquement déconnecté » a l'état « mémoire connectée sur le bus de données »,
Question 4 Determiner le nombre de bits nécessaires a l'adressage de chacune des
ROM.
Question 5 Compléter le schéma de la mémoire en y faisant figurer les emplacements
des ROM.(Attention a la taille des cases mémoires !!:)
Question 6 Un petit peu en bas et a droite du microprocesseur précédemment repré-
senté, dessiner les trois composants ROM (reset, exception, code de gauche a droite, en
prévoyant un espace entre le CPU et le premier boitior de reset). Préciser la taille des bus,
la direction de ceux-ci et comment le bus d'adresse (resp. de données) du processeur est
relié au bus d'adresse (resp. de données) des ROM.
Décodage d’adresse des ROM instructions
En fonction de l'adresse émise par le processeur, un des trois boitiers doit étre sé-
lectionné si le CPU cherche & accéder a la prochaine instruction. Suivant la valeur de
TD d’architecture - 3 page - 2ENSIMAG 1A
ladresse, il faut donc sélectionner un boitier : c'est le réle de la logique de décodage.
Question 7 Quels sont les signaux qui doivent intervenir comme entrées du bloc logique
de décodage ?
Question 8 Quels sont les signaux qui doivent intervenir comme sortie du bloc logique
de décodage ?
Question 9 Le bloc logique de décodage doit étre dessiné entre le processeur et le pre-
mier boitier ROM. Proposer un schéma du bloc logique de aécodage, en supposant que
Ton fait un décodage complet (un boitier ROM n’est vu qu’a une seule adresse du point
de vue du processeur).
Question 10 Proposer une autre version du bloc logique de décodage, en supposant que
Ton fait maintenant un décodage incomplet (un boitier ROM est vu & plusieurs adresses
du point de vue du processeu1). Donner alors les adresses ou sont wes les boitiers ROM.
Question 11. Agjouter un montage qui permet dactiver lentrée BERR du processeur en
cas derreur d'adressage.
Les RAM
On souhaite connecter a la carte précédente deux boitiers mémoire de type RAM,
contenant respectivement les données utilisateur et les données superviseur. Les RAM
utilisateur et superviseur ont une taille de 64 Koctets. Elles sont directement accessibles
sur 82 bits mais, contrairement aux instructions qui sont exclusivement sur 32 bits, on
peut y faire des accas sous forme de mot, de demi-mot et d'octet. Elles doivent étre
situées respectivement a partir des adresses 0x10000000 (utilisateur) et 0xc0000000
(superviseur). En plus des bus d'adresse et de données, chaque RAM dispose de trois
entrées supplémentaires : OE (Output Enable, active au niveau bas) permettant de faire
passer la sortie de données de la RAM de |'état « Slectriquement déconnecté » a l'état
« mémoire connectée sur le bus de données » et donc de connecter la RAM en sortie
sur le bus DATA, WE (Write Enable, active au niveau bas) qui permet de recopier la valeur
proposée sur le bus DATA a l'adresse considérée dans la RAM et SIZELi :0] (entrée de
TD d’architecture - 3 page - 3