UTBM 2001 mi43 microprocesseurs, interfaces et logiciels de base genie informatique semestre 2 final

Publié par

Printemps 2001 Final – MI43 1. Description 1.1. Processeur Microprocesseur 8 bits, 16 lignes d'adresse (A15…A0) et 8 lignes de données (D7…D0), deux modes d'exécution : utilisateur et superviseur. En mode utilisateur, les adresses accessibles sont comprises entre 2000 et BFFF, les autres adresses ne sont pas accessibles. En mode superviseur tout l'espace mémoire est accessible. Le microprocesseur possède trois lignes d'interruption autovectorisées. Les vecteurs d'interruptions sont placés en fin de zone adressable : adresses FFF6 à FFFF. Aux adresses FFFC et FFFE on trouve, respectivement, les vecteurs d'interruption de l'interruption logicielle et du signal Reset. Excepté l’interruption de Reset qui est non masquable, les autres interruptions sont toutes Adresses Mémoire de même priorité et peuvent être masquées par mise à un d’un bit du registre d’état. Toute interruption prise en compte par le processeur implique le passage du processeur en mode superviseur, le masquage des interruptions, l’appel de la routine de traitement déterminée par le vecteur d’interruption. FFF6 IRQ 1 FFF8 IRQ 2 FFFA IRQ 3 FFFC SWI FFFE Reset1.2. Organisation mémoire On souhaite l’organisation mémoire suivante : • Adresses de 0 à 3FFF, bloc mémoire 1 destiné à accueillir les données (RAM). • Adresses de 8000 à BFFF, bloc mémoire 2 destiné à accueillir le code utilisateur (EEPROM) • Adresses de C000 à CFFF bloc mémoire 3 réservé aux interfaces d’E/S ...
Publié le : jeudi 21 juillet 2011
Lecture(s) : 176
Nombre de pages : 2
Voir plus Voir moins
Printemps 2001
UTBM
1/2
Nicolas Lacaille
Final – MI43
1. Description
1.1. Processeur
Microprocesseur 8 bits, 16 lignes d'adresse (A15…A0) et 8 lignes de données (D7…D0), deux modes d'exécution : utilisateur
et superviseur.
En mode utilisateur, les adresses accessibles sont comprises entre 2000 et BFFF, les autres adresses ne sont pas accessibles. En
mode superviseur tout l'espace mémoire est accessible.
Le microprocesseur possède trois lignes d'interruption autovectorisées. Les vecteurs d'interruptions sont placés en fin de zone
adressable : adresses FFF6 à FFFF. Aux adresses FFFC et FFFE on trouve, respectivement, les vecteurs d'interruption de
l'interruption logicielle et du signal Reset.
Excepté l’interruption de Reset qui est non masquable, les autres interruptions sont toutes
de même priorité et peuvent être masquées par mise à un d’un bit du registre d’état.
Toute interruption prise en compte par le processeur implique le passage du processeur en
mode superviseur, le masquage des interruptions, l’appel de la routine de traitement
déterminée par le vecteur d’interruption.
1.2. Organisation mémoire
On souhaite l’organisation mémoire suivante :
Adresses de 0 à 3FFF, bloc mémoire 1 destiné à accueillir les données (RAM).
Adresses de 8000 à BFFF, bloc mémoire 2 destiné à accueillir le code utilisateur (EEPROM)
Adresses de C000 à CFFF bloc mémoire 3 réservé aux interfaces d’E/S (Interfaces diverses)
Adresses de E000 à FFFF EEPROM bloc mémoire 4 destiné à accueillir l’exécutif (EEPROM)
Il est nécessaire pour chaque bloc de disposer de commandes de sélection
actives sur niveau bas
que l’on notera CS
i
#, où i
correspond au numéro de bloc.
Dans l’espace d’E/S on trouve 2 ports permettant le dialogue avec un contrôleur clavier
PortA : port d’E/S fonctionnant en entrée et d’adresse C000
PortB : port d’E/S fonctionnant en sortie et d’adresse C001
1.3. Interface clavier
On connecte sur un port d'entrée du processeur un clavier muni de son contrôleur.
Lorsqu'un caractère est saisi au clavier, le contrôleur envoie le code ASCII associé vers l'interface suivant le protocole
matériel suivant :
-
positionnement du caractère sur les lignes de données
-
mise à l'état bas de la ligne STROBE#
-
attente de la réponse correspondant à la mise à l’état bas de la ligne ACK#
-
remise à l'état haut de la ligne STROBE# dès que la ligne ACK# est activée
1.4. Exécutif
L’exécutif est un exécutif multitâche qui tourne en mode superviseur. Les requêtes systèmes impliquent le passage du
processeur du mode utilisateur au mode superviseur.
1.1.4. Sous système d’E/S
L’exécutif comprend un sous système d’E/S permettant une gestion cohérente des requêtes d’E/S émises par les applications
utilisateur.
IRQ 1
IRQ 2
IRQ 3
FFF6
FFF8
FFFA
Adresses
Mémoire
FFFC
Reset
SWI
FFFE
D7
D0
STROBE#
ACK#
Contrôleur clavier
IRQ 1
Bit 0 du port B
Port A
Printemps 2001
UTBM
2/2
Nicolas Lacaille
Lors de l’emission d’une requête d’E/S, l’application fournit :
-
Le nom du pilote
-
Une adresse d’un buffer de données
-
Le nombre de données à transférer
-
Une adresse destinée à recueillir le nombre de donnée traitée
Lorsque le service est fournit, le système envoie en retour un booléen à TRUE si l’opération s’est déroulée correctement et à
FALSE dans le cas contraire.
Lorsque le répartiteur des services systèmes reçoit une requête d’E/S, le gestionnaire d’E/S est appelé.
Ce dernier signal tout d’abord à l’ordonnanceur le blocage de la tâche appelante. Il crée ensuite une structure de
communication avec le pilote appelée IRP, puis appelle la routine du pilote référencée par la requête en lui fournissant l’adresse
de cet IRP.
Si plusieurs requêtes concernant le même pilote sont émises, le gestionnaire des E/S gère des files d’attente de requêtes. Le
pilote n’étant lancé que lorsqu’une requête en cours de traitement est terminée.
Lorsque le pilote a terminé de traiter une requête, celui-ci doit prévenir le gestionnaire d’E/afin de lui signaler :
-
que la requête est terminée, ce qui impliquera le déblocage de la tâche qui avait émis la requête
-
que le pilote est disponible pour un nouveau traitement.
1.5. Primitive et structure de données
IRP:
_IRP struct{
UCHAR
Opération
//Opération = LECTURE ou ECRITURE ou CONTROL
(donnée 8 bits)
PUCHAR
Buffer
//adresse du buffer de données (pointeur 16 bits sur donnée 8 bits)
UCHAR
Taille
// nombre de données à traiter (donnée 8 bits)
PUCHAR
Traite
// adresse du nombre d'octets effectivement traités (pointeur 16 bits sur donnée 8 bits)
BOOLEAN
Etat
// succès de l'opération TRUE, échec de l'opération (erreur ) : FALSE
} IRP, * PIRP;
fin de requête :
FinRequete( ) ;
section critique (masquage des interruptions)
DebutSectionCritique()
FinSectionCritique()
Retour d’interruption
Rti()
2. Questions pratiques
2.1. Décodage d’adresses
1.
Donner les tailles des différents blocs mémoire en octets ou kilo-octets
2.
Donner les équations logiques des commandes de sélection des différents blocs mémoire
2.2. Pilote pour l’interface clavier
On souhaite réaliser un pilote de périphérique pour le contrôleur clavier. La routine pilote et l’ISR pourront communiquer par
variables globales.
1.
Décrivez de manière fonctionnelle les différentes opérations que doit réaliser le pilote de clavier.
2.
Donnez une description des variables utilisées pour gérer les acquisitions de données issues du clavier.
3.
Code commenté en pseudo langage de la routine pilote
4.
Code commenté en pseudo langage de l’ISR
3. Questions de cours
1.
Pourquoi les systèmes d'exploitation ont-ils besoin de processeur ayant deux modes d'exécution ?
2.
Détaillez les caractéristiques de chaque mode
3.
Pourquoi la plupart des systèmes d'exploitation interdisent-ils l'accès aux ports d'E/S en mode utilisateur ?
4.
Sur l’exemple étudié, comment implémenteriez-vous un appel système ?
5.
Rappeler le principe de la mémoire virtuelle paginée.
6.
Quel sont les avantages que présente l'utilisation de la mémoire virtuelle paginée pour un système d'exploitation ?
7.
Quel en est le principal inconvénient ?
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.