Chapitre suivantIndex des CoursChapitre précedentChapitre 4

LES COMPOSANTS D’UN SYSTEME TELEINFORMATIQUES

 

4. 1. INTRODUCTION

Les systèmes téléinformatiques sont particulièrement complexes. Ils mettent en jeu des matériels très différents les uns des autres : les modems, les multiplexeurs, les concentrateurs de terminaux, les contrôleurs de communication. De plus, à ces matériels sont associés la plupart du temps, des logiciels et en particulier des systèmes d'exploitation. Les machines qui seront connectées sur le réseau téléinformatique possèdent elles aussi des systèmes d'exploitation, elles devront être dotées d'une interface permettant la connexion physique. Ce chapitre a pour but de présenter dans une première partie, les caractéristiques principales des matériels téléinformatiques et plus particulièrement des multiplexeurs. Ensuite, une introduction des spécificités des systèmes d'exploitation est présentée pour montrer les difficultés qui seront rencontrées pour effectivement permettre une compréhension réciproque des hôtes connectés sur un réseau. Les propriétés des procédures de communication sont introduites et les mécanismes d'échange des données vers l'hôte sont décrits en détail.

Expliquons tout d'abord les deux modes de transmission : synchrone et asynchrone.

*) Transmission synchrone:

Une suite de données est synchrone lorsque le temps qui sépare les différents instants significatifs est un multiple entier du même intervalle de temps T. Les caractères se suivent les uns les autres, sans séparation.

*) Transmission asynchrone

En particulier lorsque la source des données produit des caractères à instants aléatoires, il est intéressant de les transmettre indépendamment les uns des autres. Ce type de transmission asynchrone nécessite une identification de chaque caractère isolément: un élément Start, dont la durée est celle d'un bit, sert à déclencher, au début du caractère, l'horloge locale qui permet la reconnaissance des bits à l'intérieur du caractère. Un élément Stop, dont la durée peut varier (1, 1,5 ou 2 durées élémentaires) selon les transmissions, sert à arrêter cette horloge et permet, également de détecter les faux Starts (parasite ayant été interprété comme un Start).

4. 2. COMMUNICATION A DISTANCE ET PROCÉDURES DE

COMMUNICATION

4. 2. 1. Introduction

La communication à distance pose deux problèmes :

1)         il n'existe qu'une seule voie physique (la ligne) pour transmettre en série aussi bien les données que les informations de contrôle.

2)         le moyen de communication (la ligne) n'est pas fiable et la réception (des informations de contrôle et des données) n'est pas spontanée.

Les conséquences sont les suivantes :

1)         il faut structurer l'information transmise de façon claire pour distinguer les informations de contrôle des données elles-mêmes,

2)         il faut tenir compte de nouveaux facteurs s'exerçant aussi bien sur les données que sur les informations de contrôle :

-  information perdue,

-  information altérée,

-  information parasitée,

-  information dupliquée.

La méthode générale utilisée pour détecter ou corriger les erreurs est basée sur la transmission d'informations redondantes (codes cycliques, identification de message) ou sur des seuils de tolérance (temporisation, taux résiduel d'erreurs). L'ensemble de ces procédés a toujours pour but de créer chez les deux correspondants une quasi-certitude que chaque message émis a été bien reçu (quasi-certitude seulement car les mécanismes de détection ou de correction d'erreurs utilisent des organes physiques dont la fiabilité n'est pas absolue, leur logique même peut aussi avoir des limites de probabilité de détection et de correction d'erreurs). D'autre part il y a le plus souvent un moyen pour le récepteur de reconnaître le fait qu'un message est arrivé (séquence de synchronisation, interruption sur signal START. Nous y reviendrons plus loin). Ceci constitue une manière particulière pour l'émetteur E de matérialiser un événement EV. Pour le récepteur, l'arrivée d'un message provoquera un changement d'état d'EV mais il est toujours nécessaire d'envoyer un acquittement vers E. L'effet des mécanismes de détection d'erreurs est de rendre aussi peu probable que l'on veut l'acceptation d'un message erroné ou dupliqué ou la perte d'un message. Autrement dit à tout instant il y a un nombre très faible de messages acceptables par les deux correspondants. Ce jeu de contraintes peut être formalisé comme la syntaxe d'un langage. Une séquence de messages acceptables est une production, l'ensemble des productions peut être reconnu par un automate.

En cas de refus d'un message reçu, il faut reprendre l'activité de communication : procédé de reprise sur erreur, consistant à se placer dans un contexte antérieur accepté comme valide, en annulant les effets des opérations refaites en double lors de la reprise (message dupliqué). Une reprise depuis un contexte valide peut aussi échouer : il faudra revenir à un état initial. L'ensemble des règles de reconnaissance des messages valides, de reprise sur erreur et de réinitialisation s'appelle procédure de communication.

4. 2. 2. Le rôle de la procédure

La fonction essentielle de la procédure est de garantir la fiabilité du passage d'information de E à R à travers un moyen de communication dont la fiabilité est insuffisante (ceci implique un passage d'informations de contrôle de R à E, sens qui lui non plus n'est pas fiable). Une procédure de transmission simplex (dans un sens) est constituée de deux machines dans lesquelles on crée un contexte d'exécution permettant de reconnaître les bons messages. Cette procédure doit tenir compte des caractéristiques de la liaison de données, sa complexité dépendra des performances attendues :

-  le temps de propagation, très faible sur câbles, peut devenir très important sur liaison par satellite;

-  la nature de la liaison : unidirectionnelle, bidirectionnelle à l'alternat ou simultanée;

-  le débit binaire utilisé qui définit le temps de transfert d'un bit ou d'un caractère;

-  l'utilisation de circuits commutés qui nécessitent une phase d'établissement (et de libération) avant (et après) le transfert des données.

La procédure va donc prendre en charge :

-  le transfert de l'information; ceci suppose une identification de la source, du destinataire, ...

-  la structuration des données et des séquences de commande;

-  la transparence ou non aux codes utilisés; lorsque la procédure est transparente, il est possible à l'émetteur d'utiliser dans ses messages des configurations réservées aux séquences de commande. Ceci est indispensable lorsqu'on transmet des données binaires;

-  la supervision de la liaison; ceci se traduit par l'enchaînement des commandes des réponses, des accusés de réception aux messages reçus;

-  les reprises en cas d'erreur; lorsqu'un message est erroné, il est réémis. Un nombre maximal de réessais est prévu;

-  la temporisation (time-out); pour éviter de bloquer les échanges, on attend une réponse pendant un temps déterminé à l'avance;

-  la gestion des équipements spécifiques aux transmissions (modem, contrôleur, multiplexeur). La procédure doit donc connaître les caractéristiques du matériel utilisé pour éviter les incompatibilités (temps de retournement du modem à l'alternat, temps d'égalisation, conditions de maintien de la synchronisation).

4. 2. 3. La transmission bidirectionnelle

Habituellement, on veut transmettre de l'information utile dans les deux sens d'une ligne point à point. On dit que la liaison est bidirectionnelle. D'un point de vue historique, les procédures ont été ainsi conçues pour gérer les deux sens de communication. D'autre part les lignes téléphoniques (moyen de communication le plus fréquent) à basse vitesse ne permettent pas toujours la transmission simultanée dans les deux sens. Il faut à tout instant choisir l'un ou l'autre : les procédures anciennes sont à l'alternat (half duplex).

Aujourd'hui il est très courant de disposer de lignes bidirectionnelles simultanées (full duplex). Il n'y a pas de temps à perdre à inverser le sens de la transmission (retournement des modems). En fait il est beaucoup plus simple de considérer qu'une transmission duplex est l'association de deux transmissions simplex (unidirectionnelles). Les deux sens de transmission sont indépendants, on a toute liberté de les utiliser de manière « asynchrone » ou de les coupler pour réaliser par exemple un mode conversationnel. Chaque procédure simplex requiert en fait deux sens de transmission physique : pour une indépendance complète il faudrait 4 voies. Or on n'en dispose en général que de deux. Plutôt que de compliquer les procédures (niveau logique) en y incorporant les problèmes liés au moyen de transmission (niveau physique) il est préférable de séparer les deux domaines : chaque procédure simplex fonctionne avec ses deux voies de transmission comme si elles lui étaient entièrement affectées, mais les émissions et les réceptions physiques ne sont plus sous le contrôle de la procédure. Elle émet seulement des demandes d'émission et prend en compte des messages déjà reçus.

Les demandes d'émission sont prises en compte par un coupleur C1 qui gère la voie d'émission physique et règle les conflits de demande en provenance des deux procédures E1 ou R1. De l'autre côté un coupleur C2 oriente sur E2 ou R2 les messages reçus et vice versa. C1 et C2 ont pour rôle de virtualiser les voies de transmission de manière que chaque procédure utilise les siennes sans se préoccuper des conflits qui peuvent se produire au niveau des voies réelles. C1 et C2 ne sont pas couplés, ils émettent tout ce qui leur est fourni (après délai et conflit) et sont en réception spontanée permanente.

4. 2. 4. Différentes classes de procédures

Les procédures minimales

Elles sont prévues pour gérer des types de terminaux bien déterminés (console, remote batch). Elles sont fortement centralisées, ne laissant pratiquement aucune initiative aux terminaux. Ce type de procédures est souvent défini en fonction du matériel utilisé, d'où un problème de compatibilité avec d'autres matériels que ceux prévus par le constructeur.

Les procédures prévues pour les échanges entre ordinateurs de statuts différents

Ce type de procédures laisse une plus grande initiative au terminal (temporisation, limitation des essais possibles). Ce sont- des procédures le plus souvent point à point prévues pour des débits plus élevés que les précédentes.

Les procédures universelles

Cette famille de procédures permet des échanges bidirectionnels simultanés. Elles sont prévues pour les réseaux d'ordinateurs et offrent une plus grande souplesse d'utilisation car elles ne sont pas définies en fonction d'une application déterminée. Ces procédures sont plus complexes et sont réservées aux ordinateurs et aux terminaux « intelligents », possédant une certaine puissance de traitement.

4. 3. MODEMS ET CONTRÔLEURS

4. 3. 1. Synchronisation et modulation

4. 3. 1. 1. La fonction de synchronisation

Ce problème se pose au niveau d'un récepteur destinataire d'un message: ce message est caractérisé par une suite d'états significatifs lesquels sont séparés par des changements d'états (fréquences, amplitudes ou phases caractériques). Il faut distinguer la synchronisation bit et la synchronisation caractère. Un simple élément sensible aux transitions (changements d'état du signal), placé en tête du récepteur, ne suffit pas pour recueillir l'information : il est nécessaire d'échantillonner la ligne à un certain rythme qui est celui des bits qui arrivent; cet échantillonnage doit être fait à des instants correspondant aux instants significatifs donc à l'échantillonnage il faut ajouter la remise en phase de l'horloge. Si le récepteur contient un registre à décalage commandé par les impulsions d'échantillonnage, il absorbera tous les bits d'information mais la remise en phase de l'horloge doit être déjà faite lorsque se présente le premier bit d'information sinon celui-ci sera mal reconnu ou oublié.

4. 3. 1. 2. Modulation et modems

La modulation consiste à transformer les signaux continus représentant les données binaires par leur polarité en signaux complexes adaptés le mieux possible à la voie de transmission choisie. Le choix d'un principe de modulation dépend du débit et du canal de transmission. Tous les modems que l'on trouve sur le marché respectent les avis du CCITT et plus particulièrement l'avis V24 qui a normalisé les jonctions.

4. 3. 2. La jonction modem-terminal ; avis V24

Dans la mise en oeuvre d'une transmission de données, on ne peut pas admettre que la voie de données est disponible de façon permanente et avec des conditions adéquates. Dans la pratique, au niveau de la ligne et en partant d'un état de repos auquel on reviendra en fin de transmission, on va franchir successivement les étapes suivantes :

*) Etablissement du circuit : Cette étape est nécessaire lorsque la ligne n'est pas affectée de façon permanente à la liaison de données, soit qu'il s'agisse d'un réseau commuté, soit qu'elle puisse être utilisée alternativement par le téléphone et les données.

*) Initialisation : Elle permet aux modems de s'adapter à la ligne : elle comprend l'émission de la porteuse, sa détection à l'autre extrémité et éventuellement la synchronisation des horloges, voire l'apprentissage de l'égaliseur automatique.

*) Transmission : Elle peut s'effectuer jusqu'à ce qu'une des extrémités décide la libération de la ligne.

*) Libération de la ligne : Tout ceci nécessite des échanges de signaux entre le modem et le contrôleur de communications, ne serait-ce que pour éviter d'amputer l'information de ses premiers ou derniers bits.

Ce dialogue va s'établir par l'intermédiaire d'une jonction constituée de circuits binaires. Cette jonction constitue la frontière naturelle entre la partie transmission et la partie traitement d'une liaison de données.

4. 3. 3. Description générale d'un modem

Le modulateur transforme les données en un signal analogique conforme à la transmission, le démodulateur reçoit les signaux analogiques, contient les égaliseurs, travaille avec une bascule pilotée par l'horloge pour reconstituer les bits. Le générateur de rythmes contient les horloges émission et réception à l'aide d'un oscillateur à quartz et de diviseurs de fréquence pour obtenir les différentes horloges (correspondant aux différentes vitesses).

4. 4. MULTIPLEXEURS ET CONCENTRATEURS

4. 4. 1. Introduction

Lorsque plusieurs circuits de données existent en parallèle entre deux points, il peut être intéressant de les concentrer sur un support unique. Il existe deux types de matériels :

- les multiplexeurs;

- les concentrateurs.

Les multiplexeurs sont des machines statiques le plus souvent câblées. Ils effectuent un multiplexage analogique ou temporel et sont transparents vis-à-vis des informations transportées : aucun traitement n'est effectué (sauf dans le cas des multiplexeurs statistiques qui sont des microcalculateurs).

Les concentraleurs sont au contraire des machines qui font de la commutation de message avec traitement des données et gestion des terminaux. Ils ne sont pas transparents aux informations : acquisition d'un message en réception, interprétation des indications de routage, réémission à destination du ou des correspondants désignés dans l'en-tête, traitements annexes comme archivage local, conversion de code, retrait ou addition de certains caractères d'édition, conversions de vitesse...). Ce sont le plus souvent des minicalculateurs à programme enregistré.

4. 4. 2. Structure et caractéristique d'un multiplexeur

La figure 4.1. illustre la structure d'un multiplexeur ainsi que le vocabulaire utilisé. Les caractéristiques qui permettent de comparer les différentes méthodes de multiplexage sont :

*) la rapidité de transfert exprimée en car/s ou en bit/s,

*) l'efficacité.

Les voies basse vitesse (BV) ont un débit Ci car/s et chaque caractère contient Ni bits utiles (sans Start et Stop).

La voie haute vitesse (HV) a un débit D bit/s. L'efficacité : e = D-1

doit être la plus grande possible.

Notons que pour un concentrateur on a en général e ³ 1:

*) L'aptitude à mélanger des voies de caractéristiques différentes (différentes par le code, par la vitesse, par le mode de transmission (synchrone ou asynchrone) ... ).

*) Le transfert de voies.

Figure 4. 1. Structure d'un multiplexeur.

Les données de la voie 2 de A vers C peuvent être soit démultiplexées et remultiplexées en B soit transférées directement, on dit alors que B effectue le transfert de voies BV entre deux liaisons composites. Ceci permet de réduire le coût en matériel.

*) La transmission des signalisations.

Les signalisations sont les informations de test et de maintenance pour le dialogue entre les multiplexeurs ou entre les équipements connectés aux deux extrémités du canal (changement d'état des signaux à la jonction modem-multiplexeur par exemple).

Deux solutions sont possibles :

- hors bande : sur un canal multiplexé séparé, réservé à cet effet appelé canal sémaphore;

- dans la bande : sur le canal lui-même, à la place des données.

4. 4. 3. Multiplexage en fréquence

4. 4. 3. 1. Principe

On utilise la modulation de fréquence pour chaque voie i :

                                                           0 codée par sin 2p (fi + Df) t

                        donnée di(t) =            

                                                           1 codée par sin 2p (fi - Df) t.

Les paires de fréquence (fi ± Df) sont choisies de façon à se répartir sans se chevaucher dans la bande passante d'une voie téléphonique normale (300 - 3400 Hz). A la réception on dispose d'une batterie de filtres passe-bande qui séparent les voies puis de discriminateurs qui restituent les signaux bivalents. Les choix de | fi - fj | et de Df sont dictés par les performances de ces filtres.

4. 4. 3. 2. Normes du CCITT

4. 4. 3. 3. Caractéristiques

L'efficacité est faible (0,25 si D = 4800 bit/s), le mélange de voies est possible à condition de choisir les fréquences convenablement, le transfert de voie est possible en gardant la même fréquence porteuse sur les deux liaisons composites. Certains multiplexeurs permettent la transmission des signalisations en émettant la porteuse (fréquence fi) à la place des deux fréquences fi ± Df.

4. 4. 4. Multiplexage temporel par caractère

4. 4. 4. 1. Principe

Cette technique est particulièrement adaptée à des voies BV asynchrones, elle est non transparente au code et à la vitesse.

Le train de bits de débit D sur la voie HV est divisé en trames de L intervalles de temps (IT).

Chaque IT contient un caractère en provenance d'une voie BV (débarrassé des bits Start et Stop dans le cas asynchrone) plus un bit indiquant la nature du caractère transmis (information ou signalisation). Le rythme d'occurence des trames D/L doit être supérieur au débit maximal des voies BV exprimé en car/s.

Exemple

D = 4 800 bit/s

di = 110 bit/s (10 car/s de 8 bits + 3 bits Start et Stop)

Chaque IT contient : li = 8 + 1 = 9 bits

D/L > 10 soit L = 50 I. T. par exemple.

On crée ainsi 49 (n = L - 1) canaux sur la voie HV d'où une efficacité e » 0,8.

4. 4. 4. 2. Verrouillage de trame

Pour pouvoir reconnaître les IT, il faut reconnaître le début d'une trame le premier IT est réservé, il contient une combinaison particulière. En cours de transmission, le récepteur teste en permanence la présence de ce caractère (appelé caractère de verrouillage de trame). Si le test est négatif deux fois de suite, le récepteur bloque l'émission des données vers les voies BV et génère un signal d'alarme (perte de synchronisation).

4. 4. 4. 3. Caractéristiques

L'efficacité est de l'ordre de 0,8 donc bien meilleure que précédemment. Le mélange de voies est possible : on peut calculer L en fonction du débit le plus faible et affecter plusieurs IT au même canal ou en fonction du débit le moins faible et affecter le même IT successivement à plusieurs canaux. Le transfert de voies est en général possible sur tous les multiplexeurs. Notons que lorsque les multiplexeurs temporels doivent multiplexer des voies BV synchrones, il est obligatoire que la ligne HV et les lignes BV soient synchronisées rigoureusement entre elles (c'est-à-dire que leurs horloges soient toutes des multiples entiers d'une horloge de base). Il doit donc y avoir une horloge unique pilotant l'ensemble du réseau.

4. 4. 5. Multiplexage temporel par bit

4. 4. 5. 1. Principe

Le principe est identique au précédent mais chaque IT ne contient qu'un bit. La longueur de la trame est calculée d'après le débit des voies BV en bit/s. De même que précédemment le premier IT est réservé, il constitue un canal BV non affecté mais transportant en permanence une séquence de plusieurs bits connus.

4. 4. 5. 2. Caractéristiques

Elles sont identiques à celles du multiplexage par caractère sauf en ce qui concerne la transmission des signalisations qui est faite hors bande ou dans la bande suivant les constructeurs avec dans les deux cas un retard important. La signalisation est codée pour chaque voie BV sur 8 bits (5 pour les informations de jonction, 3 pour les commandes de bouclage).

Exemple 1 : Hors bande. Dans la trame on réserve un IT supplémentaire qui permet de transmettre les signalisations successives de chaque voie BV. Cette méthode est complexe pour le transfert de voies.

Exemple 2 : Dans la bande. La signalisation est émise sur le canal lui même précédée d'une séquence spéciale préparatoire. Cette méthode est idéale pour le transfert de voies mais restreint la transparence : le multiplexeur recherche en permanence la séquence spéciale et crée une erreur systématiquement si elle apparaît dans les données (probabilité 10-10).

4. 4. 6. Multiplexage temporel statistique

4. 4. 6. 1. Principe

Cette technique plus moderne s'apparente plus à la concentration qu'au multiplexage et consiste à allouer dynamiquement les IT d'une trame aux canaux qui sont actifs après un codage (statistique) des données. Les silences (70 % du temps de connexion) d'une transmission sont utilisés pour d'autres canaux : important gain d'efficacité mis à profit pour gérer une procédure de transmission avec détection et récupération des erreurs sur la voie HV.

Le flot de bits provenant des voies BV est assemblé en caractères débarrassés des éléments Start, Stop et de parité puis codés selon le codage de Huffman où la longueur des caractères est inversement proportionnelle à leur probabilité d'occurrence : les caractères A, E, espace, qui sont très fréquents sont codés sur 4 ou 5 bits; les caractères W, K... peu fréquents sont codés sur 12 ou 13 bits. On réduit ainsi la longueur moyenne du caractère à 5 ou 6 bits au lieu de 8.

La trame est constituée sur la voie HV de la façon suivante

4. 4. 6. 2. Caractéristiques

L'efficacité de cette méthode est supérieure à 1 (on peut connecter 100 canaux 110 bit/s sur une seule voie HV 4 800 bit/s) mais il y a par contre un risque de saturation de la file d'attente et donc de perte d'information si tous les terminaux deviennent actifs en même temps (mais la probabilité est négligeable dans la plupart des cas). D'autre part du fait de la mémorisation des données avant émission, il y a un retard à la transmission des données plus important que dans les multiplexeurs traditionnels. Par contre ils ont une excellente résistance aux erreurs sur la ligne HV et offrent des possibilités de gestion et de contrôle du réseau.


4. 5. MÉCANISMES DÉCHANGES UTILISÉS DANS LES ENTREES SORTIES

4. 5. 1. Les organes liés aux échanges

La figure qui suit représente les différents organes physiques nécessaires à l'exécution des entrées-sorties.

Figure 4.2 : Schéma général.

Les différents organes représentés sur la figure possèdent les rôles suivants :

*) l'organe d'échanges : gère les échanges entre l'ordinateur et une unité externe. Il peut exister plusieurs organes d'échanges reliés à un même ordinateur; dans ce cas, la nature de l'organe dépend du débit d'information de l'unité externe;

*) le contrôleur : est en fait composé de deux parties : l'organe de commande du périphérique : ensemble électronique spécifique du périphérique, réalisant l'interface entre les ordres de l'ordinateur et la partie électromécanique du périphérique;

*) le coupleur : réalise l'interface entre les signaux reçus de l'organe de commande du périphérique et les signaux reçus de l'ordinateur, c'est-à-dire qu'il adapte les signaux et assure l'échange d'information dans les deux sens, selon un dialogue défini,

*) les périphériques : se composent en général d'ensembles électro-mécaniques mémorisant (ou restituant) l'information sous d'autres formes que celles utilisées dans l'ordinateur.

4. 5. 2. Les interruptions

Le rôle des interruptions est d'interrompre le déroulement du programme en cours de façon à pouvoir exécuter une action plus prioritaire. Plusieurs cas peuvent s'envisager :

- anomalie de fonctionnement,

- événement survenant sur une unité externe,

- prise en compte d'une information fugitive.

On peut prévoir une généralisation de ce système et interrompre à plusieurs niveaux. Examinons ce qui se passe pour la prise en compte d'une interruption pendant l'exécution d'un programme.

4. 5. 2. 1. Remarques préliminaires

L'interruption ne peut se manifester que si le programme en cours d'exécution est interruptible. Cette remarque qui ressemble fort à une lapalissade est néanmoins fondamentale et peut expliquer parfois des pertes inexplicables d'information dans un ordinateur ayant un débit d'entrées-sorties supérieur à ses possibilités réelles. Une interruption peut être : armée ou désarmée, bloquée ou débloquée.

Armement des interruptions

Ce mécanisme permet de sélectionner les interruptions à traiter. Lorsque les interruptions sont armées, toute interruption est mémorisée et pourra être prise en compte. Dans le cas contraire, elles seront désarmées.

Blocage des interruptions

Ce mécanisme n'est mis en oeuvre que lorsque les interruptions sont armées. Lorsque les interruptions sont bloquées, elles sont mémorisées mais ne seront prises en compte qu'au moment du déblocage. Le blocage des interruptions peut se faire automatiquement au moment de l'interruption.

Lorsque les interruptions sont débloquées, l'interruption est prise en compte au moment où elle se manifeste. Le déblocage peut se faire automatiquement avec l'instruction de retour au programme interrompu. Ce mécanisme permet de contrôler le moment de prise en compte des interruptions. Les différentes commandes ci-dessus sont générées à partir d'instructions exécutables en mode maître.

4. 5. 2. 2. Traitement des interruptions

Supposons le programme exécuté en mode interruptible. Lorsqu'une interruption survient, l'instruction en cours est exécutée mais la suivante ne l'est pas. On passe en mode ininterruptible pour exécuter les actions suivantes

-  sauvegarde du compteur ordinal (C.O.),

-  sauvegarde des registres généraux,

-  forçage du C.O. avec une valeur correspondant à l'adresse de début du programme de traitement des interruptions.

Pendant l'exécution de cette séquence, les autres sources d'interruption sont bloquées. A la fin de cette séquence, on peut à nouveau passer en mode interruptible. Après le traitement de la cause de l'interruption, il convient d'exécuter les actions suivantes :

-  restitution des valeurs des registres généraux,

-  retour au programme interrompu,

-  interruptions à nouveau autorisées.

4. 5. 2. 3. Différents types d'interruptions

Les interruptions peuvent survenir pour des causes diverses et à tous les niveaux du traitement. Selon la cause, elles seront traitées à plus ou moins brève échéance et être prioritaires ou non par rapport aux autres causes d'interruption. On distingue deux principaux types d'interruption :

*) Suspensions : ce sont des interruptions prises en compte au niveau du microprogramme. Elles sont employées pour l'exécution de processus hautement prioritaires, qui ne peuvent attendre la fin de l'exécution de l'instruction en cours (par exemple, pour activer le programme de gestion d'un disque rapide ou d'une bande magnétique à gros débit). Les suspensions peuvent être prises en compte de deux façons différentes :

-  à la fin d'une micro-instruction : ceci suppose une sauvegarde câblée du contexte de la micromachine, d'où la nécessité d'adjoindre une zone de travail strictement réservée aux suspensions;

-  à certains endroits précis du microprogramme : cette méthode est plus répandue car elle est facile à employer sans matériel supplémentaire.

*) Interruptions de programme : c'est le type d'interruptions le plus répandu. L'interruption est alors prise en compte à la fin de l'instruction en cours, de la façon que l'on vient d'examiner. Ce mécanisme est accessible au programmeur, alors que le système de suspensions ne l'est pas. Cette méthode est très largement utilisée pour la gestion des entrées-sorties.

4. 5. 2. 4. Hiérarchisation des interruptions

Une hiérarchie des interruptions peut être établie chaque fois qu'il existe plusieurs niveaux d'interruption. Chaque niveau est alors repéré par un numéro ; en général, le chiffre le plus bas correspond au niveau le plus prioritaire. Il peut exister une hiérarchie dans chaque type d'interruption (suspension, interruption de programme). Deux techniques sont utilisées :

- priorité par numéro : on traite en premier le niveau le plus prioritaire, jusqu'à épuisement des niveaux. La priorité n'intervient qu'au moment de la prise en compte des interruptions ;

- priorité au premier arrivé : cette technique suppose un empilement des interruptions, la plus ancienne est alors traitée.

Dans un même système d'interruptions, on peut combiner les deux méthodes.

4. 5. 2. 5. Le programme de traitement des interruptions

Seules les interruptions de programme peuvent être traitées par un programme spécial. Ce programme s'exécute en mode maître et utilise un jeu d'instructions spéciales, comme par exemple :

-           blocage des interruptions,

-           déblocage des interruptions

-           retour au programme interrompu

-           placer dans l'accumulateur le numéro de l'interruption à traiter

-           armer les interruptions

-           désarmer les interruptions

-           sauvegarde du contexte

-           restitution du contexte.

Lorsque le programme de traitement des interruptions est lui-même interruptible, il faut disposer de plusieurs niveaux de priorité d'exécution des programmes. A chaque niveau correspond un degré d'interruptibilité (un niveau donné ne peut être interrompu que par les niveaux plus prioritaires que lui). Le programme usager fonctionne toujours avec la priorité la plus faible.

4. 5. 3. 6. Nature des interruptions

On distingue les interruptions internes et les interruptions externes. Les interruptions externes concernant essentiellement les problèmes d'entrées-sorties. Les interruptions internes peuvent être de trois types :

-  interruptions liées au fonctionnement matériel de l'ordinateur (baisse de tension, boîte à opérations défectueuse, défaut de parité mémoire, etc.);

-  utilisation normale des ressources de la machine (dépassement de capacité de la boîte à opérations, violation mémoire, instruction invalide, etc.);

-  interruptions volontaires participant au fonctionnement normal de la machine (horloge interne, console opérateur, activation de certaines tâches, …

4. 5. 2. 7. Réalisation des mécanismes d'interruption

Il faut bien garder à l'esprit qu'une interruption est d'abord un signal électrique de durée indéterminée. Il faut mémoriser l'arrivée aléatoire de ce signal fugitif dans un registre spécial (registre d'interruptions). Plusieurs dispositifs physiques sont utilisés pour la prise en compte du signal d'interruption.

-  Autant de lignes physiques que de causes possibles d'interruption : ce système permet une rapidité maximum de prise en compte des interruptions.

-  Une seule ligne pour les interruptions externes : ce dispositif nécessite un minimum de matériel. Quand une interruption survient, elle active la ligne qui n'interrompra le traitement que si les interruptions sont autorisées. Cette méthode suppose que l'organe qui a provoqué la montée du signal d'interruption maintient ce signal tant que l'interruption ne peut être prise en compte. Pour gérer les interruptions, on utilisera un seul branchement à une adresse déterminée. Un programme de traitement va reconnaître la cause de l'interruption en interrogeant les différents organes externes.

-  Une seule ligne externe avec câblage de la prise en compte des priorités la réalisation la plus simple consiste à placer les contrôleurs en cascade; ils seront traversés par la ligne d'interruption externe. Le contrôleur le plus proche de l'organe d'échange se trouve le plus prioritaire.

-  Module d'interruptions externe : on utilise alors un périphérique virtuel (généralement appelé périph 0), qui reçoit séparément toutes les interruptions en provenance des périphériques, ainsi que toutes les instructions relatives aux interruptions.

4. 5. 3. La liaison standard

La liaison standard est employée pour les entrées-sorties caractère par caractère ou pour certains transferts par blocs de caractères. La liaison standard est reliée directement au CPU : Les caractères ainsi échangés ne passent pas par la mémoire. Le CPU exécute donc une entrée-sortie comme toute autre opération. Seul le temps de traitement de ces instructions est différent. Généralement, l'information à sortir (entrer) va passer par un registre accessible au programmeur. L'information sera placée sur les lignes d'E/S pour être échangée.

4. 5. 3. 1. Format d'une instruction d'E/S

La figure qui suit représente un format possible pour les instructions d'E/S via la liaison standard.

Figure 4. 3. : Format possible pour les instructions d'E/S.

COP : code opération - précise qu'il s'agit d'une instruction appartenant au groupe des entrées-sorties.

CF : ce code est équivalent à un code opération pour le contrôleur concerné. Il est souvent contenu dans un octet transmis via la liaison standard. Cet octet est décodé par le coupleur; celui-ci provoque l'exécution de l'opération par activation de l'organe de commande. La nature de l'opération à effectuer dépend du périphérique.

NP : numéro du périphérique concerné par l'échange en cours.

AD : adresse de destination (ou d'origine) du ou des caractères à échanger. Cette adresse peut être : le numéro d'un registre, une adresse en mémoire centrale ou en mémoire locale.

On distingue deux types d'entrées-sorties :

-  les E/S bloquantes : avec ce type d'E/S, il faut attendre la fin de l'instruction pour passer à la suivante;

-  les E/S non bloquantes : ce type d'E/S permet la continuation du programme en séquence, tandis que le périphérique travaille de façon autonome. Avec ce type d'E/S, le temps d'une E/S devient égal au temps de connexion du périphérique, augmenté du temps mis pour échanger l'information sur le bus d'E/S. Toute l'attente de positionnement des pièces électromécaniques est supprimée. Pour être efficace, ce type d'E/S suppose l'existence d'un système d'interruptions sur la machine.

4. 5. 3. 2. Prise de l'interface d'E/S

La figure 4.4. décrit un exemple de bus et de signaux de commande. On remarquera que dans cet exemple, l'organe d'échanges est plutôt fantômatique.

Figure 4. 4. : Exemple de bus et de signaux de commande.

Le bus de commande sert à l'envoi de l'octet de commande (code fonction), qui sera décodé par le coupleur. Nous avons représenté ici des bus unidirectionnels (un pour les entrées, un pour les sorties). Naturellement, il est possible de remplacer ces deux bus par un bus bidirectionnel. Dans ce cas, un signal de commande sert à préciser le sens de l'échange. Le bus adresse sert à spécifier le numéro du périphérique concerné par l'échange. C'est également le coupleur qui reconnaît cette adresse. Les différents signaux de contrôle servent à valider les informations échangées ou à lancer l'échange. Certains signaux permettent de signaler une anomalie de fonctionnement. Cet exemple n'a pas la prétention de représenter exactement la réalité car il existe une multitude de variantes qu'il serait fastidieux (et sans intérêt) d'énumérer ici. Nous nous contentons, à travers cet exemple, de préciser les fonctions que doivent assumer les différents organes concernés par l'échange.

4. 5. 3. 3. Déroulement d'une instruction d'E/S

Chaque E/S sera représentée par une instruction représentée ci-dessous.

La prise d'interface sera représentée par les signaux suivants :

Figure 4. 5. : Prise d'interface.

Sortie d'un caractère

Pour sortir un caractère, il convient de respecter la séquence de signaux suivante : émission de l'adresse (validée par le signal E/S), puis émission de la commande (également validée par le signal E/S). Ceci entraîne de la part du coupleur la reconnaissance de son adresse (signalée par le signal OK), puis la mémorisation de l'octet de commande. L'ordinateur considère que l'échange est correct lorsque le signal OK est reçu dans un temps inférieur à un temps déterminé. Lorsque le signal arrive après cet intervalle de temps, l'ordinateur enverra un signal de rejet.

Entrée d'un caractère

La séquence commence toujours par l'envoi de l'adresse et de l'émission de la commande (validées par le signal E/S). Ensuite, le coupleur place sur le bus le caractère demandé (qui peut être un mot d'état ou un caractère d'information). Ce caractère sera validé par le signal OK. Comme pour les sorties, l'échange sera refusé (émission du signal rejet) si le signal OK monte après la limite prévue.

4. 5. 3. 4. Problèmes lors du déroulement d'une E/S

Tentative d'utilisation d'un périphérique non disponible

Si le format de l'E/S ne comporte pas d'adresse de rejet, la deuxième instruction d'E/S est ignorée et le programme continue en séquence. Lorsqu'une adresse de rejet est prévue, l'ordinateur lance l'instruction d'E/S; le contrôleur fournit un signal de réponse qui indique à l'ordinateur si l'instruction d'E/S est ou non prise en compte. Lorsqu'elle n'est pas prise en compte (par exemple, lorsque deux E/S sont trop rapprochées), l'ordinateur exécutera l'instruction suivant l'E/S (donc il y aura branchement à un programme de traitement des rejets). Lorsque l'instruction d'E/S est prise en compte, on saute automatiquement l'instruction de branchement à une adresse de rejet et on continue en séquence.

Comment savoir qu'un périphérique est disponible ?

Plusieurs méthodes peuvent être envisagées :

-  Interrogation périodique : on tente de temps en temps l'instruction d'E/S désirée. Lorsqu'elle est réalisée, il faut prévenir le programme que l'E/S est terminée (ou acceptée) et donc que le périphérique sera bientôt disponible. En général, on prévient le programme par un drapeau qu'il va consulter de temps en temps.

-  Emploi du mot d'état : le mot d'état est le reflet fidèle des événements survenant pendant l'échange. Ceci suppose le rajout dans le coupleur d'une logique de contrôle supplémentaire. Il faut de plus que l'ordinateur puisse le consulter. Cette consultation se fait à l'aide d'une instruction if E/S spéciale, très courte par rapport à une instruction d'E/S normale, puisqu'elle ne met en oeuvre que le coupleur, à l'exclusion de toute partie électromécanique.

-  Emploi des interruptions : l'utilisation des interruptions permet de fonctionner au maximum de la vitesse du périphérique. Néanmoins, pour une bonne gestion des périphériques, il est conseillé d'utiliser le mot d'état pour lancer les instructions appropriées à la situation.

4. 5. 4. Les canaux

L'utilisation de la liaison standard n'est plus possible au-delà d'une certaine vitesse d'échanges. Le CPU est alors limité par le temps de traitement des interruptions et par le temps d'exécution des E/S. La liaison standard ne peut donc plus être utilisée pour les périphériques à gros débit. On a alors recours à un processeur spécialisé dans les E/S, qui décharge le CPU de la gestion des E/S. Le débit maximum sera alors limité seulement par le temps de cycle mémoire. Pour gagner du temps, on utilise des Accès Direct Mémoire (ADM). On se trouve alors en présence de deux processeurs indépendants, pouvant accéder à une ressource commune. Ceci entraîne une possibilité de conflits. Les conflits sont évités en utilisant un organe capable d'attribuer le prochain cycle mémoire à l'un des processeurs, en fonction de leurs priorités respectives. Cet organe est appelé Unité de Contrôle Mémoire (en anglais Store Control Unit (SCU)).

4. 5. 4. 1. Le rôle du canal

Le canal a pour rôle :

-  de gérer les adresses des zones d'E/S, en fonction du déroulement de l'échange;

-  de vérifier si l'échange est terminé ou pas;

-  de réaliser le transfert demandé;

-  de dialoguer avec le contrôleur;

-  de vérifier la validité des informations échangées (ex. : défaut de parité mémoire, ... ).

Le canal peut posséder un organe de commande lui permettant d'exécuter les instructions d'E/S et de les enchaîner automatiquement. Très souvent, l'Unité de Contrôle Mémoire (UCM) et le canal sont physiquement confondus et sont fournis par le constructeur sous le nom de canal d'accès direct à la mémoire. L'ordinateur peut être livré avec plusieurs canaux hiérarchisés entre eux. Le nombre de ces canaux distincts est toujours faible. Pour augmenter le débit des échanges avec la mémoire, on multiplie le nombre de blocs mémoires pouvant fonctionner en parallèle. Ceci permet d'augmenter le débit tout en permettant à l'unité centrale de continuer à travailler (à condition que chacun des processeurs travaillent sur des blocs distincts, sinon l'attente de l'un d'eux ne peut être évitée). La figure 4.6 représente une structure possible d'ordinateur comportant un CPU et trois canaux. Les trois canaux représentés dans la figure précédente matérialisent les trois types de canaux que l'on peut utiliser. Ce sont :

-  Le canal simple (canal 1) : un canal simple est raccordé à un seul contrôleur, toujours le même. Cette solution est intéressante pour l'utilisation permanente de périphériques à gros débit.

-  Le canal multiplexé - direct ou non - (canal 2) : dans ce canal, on a rajouté une logique d'aiguillage, permettant de sélectionner un périphérique parmi plusieurs. Chaque périphérique est connecté au canal via le contrôleur, pour la durée de l'échange d'un bloc de caractères. Une fois le périphérique connecté, l'ensemble travaille comme un canal simple pendant l'échange d'un bloc. Une variante de ce type de canal est le canal flottant (Burroughs), qui est un canal simple pour périphérique à gros débit, que l'on affecte à un périphérique ou à un autre, au lieu d'être affecté toujours au même périphérique. Le canal multiplexé est utilisé pour les périphériques à moyen débit, de façon à utiliser au mieux la logique du canal.

-  Le canal multiplexé pour périphériques lents : ce type de canal est connecté à un contrôleur donné pour la durée d'un caractère. La logique de multiplexage assure la connexion d'un contrôleur au canal puis à la mémoire. Le canal joue le rôle d'organe de commande ayant mémorisé les ordres nécessaires à l'exécution d'une E/S. On a alors un sous-canal par périphérique. Le nombre de sous-canaux possibles est précisé par le constructeur. Chaque sous-canal est en fait constitué de registres logés dans la logique de multiplexage; ces registres doivent contenir les informations suivantes, outre l'adresse courante :

*) adresse de la zone mémoire réservée au sous-canal,

*) adresse de début de zone,

*) adresse de fin de zone.

Dans certains cas, ces informations sont logées dans la mémoire centrale au lieu d'être placées dans des registres spéciaux.

4. 5. 4. 2. Activation des canaux

L'activation des canaux se fait par la liaison standard : chaque organe est repéré par son numéro et par une E/S programmée, on envoie les informations utiles à la mise en marche d'un échange autonome. Les ordres consistent à connecter entre eux les organes concernés, puis à spécifier à chacun le type de travail à réaliser. Une interruption canal prévient le CPU de la fin de l'échange.

4. 5. 4. 3. Les fonctions d'un canal

Les fonctions assumées par un canal sont les suivantes :

-  demande du prochain cycle mémoire,

-  commande de l'échange d'un caractère,

-  incrément de l'adresse courante, comparaison avec l'adresse de fin de zone,

-  en fonction de la comparaison précédente, commander l'échange du caractère suivant ou bien signaler la fin du transfert,

-  détection de fonctionnement anormal (du périphérique, de l'accès mémoire, etc.).

L'initialisation du canal se fait par l'ordinateur, au moyen de la liaison standard, après que l'ordinateur ait demandé au canal son mot d'état. L'arrêt de l'échange peut être soit normal (par une interruption), soit anormal (par suite d'un fonctionnement défectueux d'un des organes).

4. 5. 4. 4. Nature des commandes canal

L'ordinateur peut demander au canal l'exécution des fonctions suivantes :

-  demande d'état du canal (disponible ou pas);

-  demande d'état d'un périphérique sélectionné;

-  activation d'un périphérique particulier;

-  mise en activité du canal lui-même.

Ces différentes fonctions sont transmises à l'aide d'instructions d'E/S, véhiculées sur le canal standard. Le canal doit maintenir le signal d'E/S pendant tout l'échange, alors que le contrôleur ne monte ce signal que lorsqu'il est prêt à échanger un caractère. On voit donc que d'est le contrôleur qui règle le débit des échanges, en imposant sa cadence au canal. D'autre part, nous avons vu que le canal se charge des demandes d'accès à la mémoire. Dès que le signal l'autorisant à utiliser le cycle mémoire est présent, il place dans le registre adresse mémoire l'adresse courante, signale qu'il s'agit d'une lecture ou d'une écriture et connecte le contrôleur au bus d'E/S.

4. 5. 4. 5. Exemples de commandes canal

Le canal peut recevoir de l'ordinateur les ordres suivants :

-  transfert d'un bloc de caractères ;

-  transfert continu sans test d'arrêt ("burst mode") ;

-  transfert avec enchaînement de plusieurs blocs. Dans ce dernier cas, le canal va chercher lui-même les adresses des zones successives dans la mémoire et se charge éventuellement de la commande des E/S.

Figure 4. 6. : Structure d'un ordinateur.

Chapitre précedentIndex des CoursChapitre suivant

Révisé le :23-Sep-2007| ©2007 www.technologuepro.com