TP_01

publicité
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
TD 2 : Echanges sur IT et ADM
____________________________
1. Rappels sur les IT
2. Gestion impression sur interruption.
On considère une imprimante raccordée sur le port parallèle comme dans le TD1. On veut
gérer l'impression sur interruption. On définit, pour initialiser l'impression, la procédure
int Imprime_IT(char *pcar, short nbcar)
Cette procédure reçoit en paramètres l'adresse de début et le nombre d'octets de la zone
à imprimer. Cette procédure renvoie -1 s'il y a déjà une impression en cours, 0 si
l'initialisation est possible.
Le port parallèle peut activer l'interruption 7.
On dispose des déclarations et procédures suivantes :
#define
#define
#define
#define
#define
ARDATA
0x378
ARSTATUS 0x379
ARCDE
0x37A
EN_IT_PPAR
0x10
IT_PPARAL 7
// adresse du registre
// adresse du registre
// adresse du registre
// bit autorisation
// numéro d'irq
donnée
d'état
de commande
it
// variables communes avec le prog d'IT
int
fin;
// 1 : impression en cours ; 0 : terminée
short
nboct;
// nombre d'octets à imprimer
char
*pdata; // adresse zone à imprimer
void enable_irq(unsigned int irq);
Autorise les interruptions provenant de la ligne de numéro irq.
void enable_irq(unsigned int irq);
Interdit les interruptions provenant de la ligne de numéro irq.
 Ecrire en langage C, la procédure Imprime_IT(char *pcar, short nbcar).
 Ecrire en langage C, la procédure IT_PPara(unsigned int irq) qui est appelée
lorsqu'il y a une interruption sur la ligne 7.
3. Gestion liaison série sans interruption
On considère deux PC reliés par une liaison série asynchrone, utilisant des circuits de
transmission série. On s'intéresse à l'émission de données, par le PC_A.
1
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
Emission
donnée
Réception
PC_A
PC_B
Le registre d'état du contrôleur série fournit les indications suivantes :
- bit TXRDY à 1, indique que le registre tampon émission est vide.
Ce bit est remis à 0 lorsqu'on écrit dans le registre tampon émission.
- bit RXRDY à 1, indique que le registre tampon réception est plein.
Ce bit est remis à 0 lorsqu'on lit le registre tampon réception.
On supposera que COMPTE contient le nombre d'octets à émettre, et que PDATA pointe
sur le premier octet à émettre.
3.1. Gestion programmée de l'émission
 Ecrire l'algorithme du programme gérant l'émission du PC_A.
3.2. Contrôle de flux avec XON XOFF
Emission
PC_A
donnée
xon / xoff
Réception
PC_B
Lorsque le récepteur veut interrompre la transmission, il envoie à l'émetteur le caractère XOFF.
lorsqu'il veut reprendre la transmission, il envoie à l'émetteur le caractère XON. On supposera
que le récepteur n'envoit rien à l'émetteur en dehors des XON et XOFF.
 Ecrire l'algorithme du programme qui effectue l'émission, en tenant compte du
contrôle de flux.
4. Gestion liaison série avec interruption
On considère la même configuration qu'au §3. On suppose en plus que le registre de
contrôle permet les actions suivantes :
- bit M_IT_EM
à 0, masque l'interruption "tampon émission vide".
à 1, autorise l'interruption "tampon émission vide".
4.1. Gestion de l'émission sur interruption
 Ecrire l'algorithme du programme qui initialise l'émission sur interruption.
 Ecrire l'algorithme de la portion du programme d'interruption qui va gérer l'émission.
2
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
4.2. Gestion de l'émission sur interruption avec contrôle de flux (DTR, DSR)
On veut maintenant introduire un contrôle de flux à l'aide des signaux DTR, DSR .
Emission
PC_A
donnée
DSR
Réception
DTR
3
PC_B
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
La gestion des signaux DTR, DSR est faite par programme. Lorsque le récepteur (PC_B)
ne dipose plus d'assez de place pour recevoir des données, il met DTR à 1 pour
demander à l'émetteur (PC_A) de suspendre l'émission de donnée. Lorsque le récepteur
(PC_B) dispose à nouveau de place, il remet DTR à 0, pour indiquer à l'émetteur (PC_A)
de reprendre l'émission.
L'émetteur (PC_A) peut être interrompu par le changement d'état (0 vers 1 ou 1 vers 0) de
DSR.
Le registre d'état du contrôleur série fournit en plus les indications suivantes :
- bit DSR état du signal DSR.
- bit IT_DSR à 1 => changement d'état DSR.
La lecture du registre d'état provoque la remise à 0 du bit IT_DSR.
Le registre de contrôle permet en plus les actions suivantes :
- bit M_IT_DSR à 0, masque l'interruption "changement d'état DSR".
à 1, autorise l'interruption "changement d'état DSR".
On utilisera les variables suivantes :
EMISSION
PDATA
COMPTE
// 0, émission interdite ; 1, émission autorisée
// pointeur sur le prochain car à émettre
// nombre de car restant à émettre
 Ecrire l'algorithme du programme qui initialise l'émission sur interruption.
 Ecrire l'algorithme de la portion du programme d'interruption qui va gérer l'émission.
avec contrôle de flux.
5. Comparaisons échanges : sans interruption, avec interruptions, avec ADM
On suppose que la liaison série permet d'émettre à 64 Kbits utiles par seconde.
 Donner le débit en octets par seconde.
On suppose que l'émission est gérée par programme sans utiliser les interruptions, et que
l'accès à un registre du contrôleur série prend 300 ns. On négligera le temps d'exécution
des autres instructions de la boucle.
 Donner le pourcentage du temps processeur passé en attente.
On suppose que le contrôleur série est toujours prêt lorsque le programme consulte le
registre d'état et donc qu'il n'est pas limité en débit.
 Dans ces conditions donner le débit maximum possible qu'atteindrait l'émission.
4
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
On suppose maintenant que l'émission est gérée sur interruptions, et que le déroutement
en interruption, l'exécution du programme d'interruption (sans compter l'accès au
controleur série) et le retour d'interruption représente 200 ns. On suppose également que
le débit de l'émission est de 64 Kbits/s.
 Donner le pourcentage du temps processeur passé pour gérer l'émission..
 Dans ces conditions donner le débit maximum possible qu'atteindrait l'émission.
On suppose maintenant que l'émission est gérée en utilisant l'accès direct mémoire et
que l'initialisation de l'ADM par le processeur prend 2,5 µs.
 Déterminer le nombre d'octets à partir duquel la gestion de l'émission avec ADM
occupe moins de temps processeur que la gestion de l'émission sur interruptions.
6. Emission modulée en largeur avec interruption
On dispose d'un port parallèle sur 8 bits et d'un temporisateur (timer) programmable,
permettant de générer une interruption lorsque le temps programmé est écoulé.
Le registre donnée du temporisateur reçoit la constante définissant le temps au bout
duquel sera générée l'interruption.
Le registre d'état du temporisateur fournit l'indication suivante :
- bit IT_TEMPO à 1 => le temps est écoulé.
Ce bit est remis à 0 lorsqu'on écrit dans le registre donnée du temporisateur.
Le registre de contrôle du temporisateur permet les actions suivantes :
- bit M_IT_TEMPO
à 0, masque l'interruption "temps écoulé".
à 1, autorise l'interruption "temps écoulé".
On veut émettre, en série, un octet sur le bit D0 du port parallèle selon le codage suivant
:
- absence d'émission, D0 est à l'état 1
- émission d'un bit à 0, D0 à 0 pendant 25 µs puis D0 à 1 pendant 75 µs
- émission d'un bit à 1, D0 à 0 pendant 75 µs puis D0 à 1 pendant 25 µs
- les bits de l'octet sont émis dans l'ordre bit0, bit1, . . . . . ,bit7
La durée du bit émis est toujours de 100 µs. Un bit est émis toutes les 100 µs, le temps
nécéssaire à l'émission d'un octet est donc de 800 µs.
100 µs
25
75
100 µs
75
bit à 0
bit à 1
5
25
Université Pierre et Marie Curie
Master ACSI
UE : Gestion des Périphériques
Année 2006/2007
Les constantes T25MS et T75MS correspondent respectivement aux temps de 25 et 75
microsecondes.
 Donner l'algorithme du programme initialisant l'émission d'un octet.

Donner l'algorithme du programme d'interruption permettant d'émettre un octet.
6
Téléchargement