Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 5
Augmentez le débit svp ! Communications par bus
Année 2002-2003

Suite N°1...

5.3 TECHNIQUES COMMUNES AUX BUS

5.3.1 Vitesses, débits, fréquences et performances

 
IL N'Y A PAS DE VITESSE DANS UN BUS.

La célérité du signal (l'expression «vitesse de propagation du signal» est impropre mais ordinairement utilisée) est limitée par l'absolu qu'est la célérité de la lumière. La célérité (vitesse) de l'électricité dans un conducteur est au plus de 200 000 km/s, soit 20 cm/ns.
On ne doit appeler vitesse que la célérité du signal ci-dessus.
Quand l'horloge bat à 100 MHz, un cycle dure 10 ns, le signal parcourt 2 m.
Quand l'horloge bat à 500 MHz, un cycle dure 2 ns, le signal parcourt 40 cm.
Quand l'horloge bat à 2 GHz, un cycle dure 0,5 ns, le signal parcourt 10 cm.

Le débit ou bande passante est le nombre d'unités de données transmises par seconde : bits, octets, mots. Il est fonction de la largeur du chemin et de la fréquence. On distinguera le débit théorique et le débit utile.
Un débit N'EST PAS une vitesse.

La fréquence de fonctionnement est le nombre maximum de transitions par seconde.

Quelques caractéristiques d'un bus sont :

Les performances sont réduites par : MISE EN GARDELa bande passante utile N'EST PAS le produit de la fréquence par la largeur du bus de données. Le transfert d'un item demande en général plus d'un cycle d'horloge. Le bus ISA des PC, 8 MHz et 16 bits de données, transfère 16 bits en 2 ou 3 cycles. Sa fréquence est 8 MHz, sa bande passante théorique ou crête est 16 Mo/s, sa bande passante utile est 8 Mo/s ou 5,33 Mo/s selon le nombre de cycles consommés.

5.3.2 Principes de fonctionnement

Le principe de l'échange électrique est illustré par la figure suivante. On considère deux registres de 4 bits, constitués de 4 bascules B. On a figuré :

Le bus est réduit à 4 fils de données et un seul fil de commande.Le signal d'entrée dans le récepteur est activé par une reconnaissance d'adresse non figurée ici.Les signaux sur un bus peuvent être uni ou bidirectionnels. Tous les circuits étant mis en parallèle, il faut pouvoir isoler ceux qui ne sont pas émetteurs à un instant donné. On utilise pour cela une logique à trois états, 0, 1 et haute impédance (ou inhibition).Exemple : tampon 3 états 74 LD 125, entrées : inhibition et E, sortie S.

5.3.3 Asynchrone ou synchrone

La communication dans l'espace, dans un bus comme ailleurs, demande que l'émetteur et le récepteur soient actifs pendant des durées communes, au délai de transmission près. Par exemple, il faut que l'émetteur affiche les données sur le bus parallèle pendant un certain temps car les délais d'acheminement peuvent être différents d'un fil à l'autre, ou parce que les fils ont des longueurs différentes, ou parce qu'ils ont des charges différentes. L'émetteur doit signaler la présence de la donnée. Si l'émetteur ne connaît pas le temps de prise, le récepteur devra la lui signaler.

Ces opérations sont dites de synchronisation. Elles sont faites de trois façons : synchrone si les événements ont lieu à des moments précis; asynchrone s'ils peuvent avoir lieu à des instants arbitraires; semi-synchrone s'ils peuvent avoir lieu à des instants prédéfinis mais quelconques.

MODE SYNCHRONE.

Dans l'exemple ci-dessous, le signal DP donnée prête (Data Ready ou DR) est émis en même temps que les données. Quatre cycles le séparent de l'arrivée de DA donnée acceptée (DA : Data Accepted). Cet intervalle est prédéfini et fixe, comme l'est l'attente de 2 cycles avant une autre transaction. Il n'y a pas stricto sensu de dialogue entre émetteur et récepteur. Le cycle de bus ou l'intervalle d'attente sont calibrés sur le récepteur le plus lent.

MODE ASYNCHRONE.

La figure suivante illustre le mode asynchrone dit complètement entrelacé.
MODE SEMI-SYNCHRONE. Il est peu utilisé.
On verra dans la conclusion que des travaux importants sont faits sur les circuits asynchrones.5.3.4 L'adressage sur le bus

Pour faire une transaction, le maître doit désigner l'interlocuteur par une adresse unique. On définit cette adresse de deux façons.

5.3.5 Généralités sur les protocolesUn bus est une unité fonctionnelle. Par son utilisation il devient une ressource au sens habituel. C'est une ressource partagée, à ce titre il participe du parallélisme. Même s'il n'y a pas simultanéité de transmission sur le bus, il y a concurrence entre demandeurs potentiels. Il faut donc répondre aux trois questions :

1. Qui prend possession du bus et comment ? Arbitrage et maîtrise du bus.
2. Pour quoi faire ? Nature et objet des requêtes.
3. Comment cela se fait-il ? Forme des requêtes et réponses.

La communication entre A et B branchés sur le bus est faite en plusieurs étapes :

1) L'identification, ou reconnaissance.
.dans un premier cas, l'un des deux est maître par décision d'arbitrage;
.dans un deuxième cas, le maître est un dispositif tiers qui a reçu par scrutation ou autre procédure une demande de l'un des deux dispositifs.
Dans les deux cas, le maître :
.initialise la communication en émettant l'adresse de l'autre élément.
.précise la nature du transfert : émission ou réception,
.indique s'il y a lieu le type d'information qui sera échangée, adresse, donnée, mot d'état, interruption etc.

2) Le transfert.
Après identification, les deux interlocuteurs passent dans l'étape de transfert, par exemple A prêt à émettre et B prêt à recevoir. La transmission d'un mot (au moins) se fera alors par le placement par A du mot sur les voies convenables et l'indication simultanée de la présence de ce mot sur une autre voie. L'ensemble est maintenu pendant un temps suffisant pour que B puisse l'acquérir.

On utilise des techniques diverses et notamment :
.la commande à sens unique: elle est analogue au transfert synchrone, à la différence près que le temps de positionnement de la donnée peut dépendre des caractéristiques du destinataire ou de l'émetteur;
.la commande avec accusé de réception.

Il y a ici interaction pendant la présentation de la donnée, exemple :
.A attend pendant t1 (durée de stabilisation);
.A place la donnée sur la voie;
.A  place le signal Donnée Prête, et le maintient;
.B détecte la présence de DP, acquiert la donnée;
.B place Donnée Acceptée (DA) maintenue pendant un temps fixe, le délai de détection par A.

3) la phase de restitution ou relâchement.
A reçoit DA, désactive le positionnement des données et supprime DP.

Ce moyen est sûr, bien immunisé contre le bruit, beaucoup plus lent que la commande à sens unique.

VARIANTES DE PROTOCOLES

Transferts en rafale (burst mode). Dans une transaction ordinaire simple, un mot est émis. Transférer plusieurs mots successifs nécessite plusieurs transactions. Le transfert en rafale consiste à transférer plusieurs mots en une transaction élargie. L'adresse fournie est celle du premier item, elle doit être accompagnée du nombre d'items. Les items suivants sont appelés à la suite. Ce fonctionnement est analogue à celui du canal d'accès direct à la mémoire déjà ancien. Ici, le bus gère lui-même ce transfert.Transaction éclatée ou transactions imbriquées (split transfer) ou transactions en pipeline ou encore bus à paquets commutés. Elle est détaillée plus loin.
 


Un bus sans protocole est une voie de chemin de fer sans signalisation.
Il n'est pas utilisable.

5.3.6 L'arbitrage

Les principes de l'arbitrage

Le plus simple est qu'un seul élément soit maître en permanence, c'est le cas dans des systèmes où seul le processeur unique est maître. Il n'y a donc pas d'arbitrage entre maîtres. Il peut y avoir besoin d'arbitrage entre demandes, c'est une technique d'interruption.

Dans des systèmes plus complexes, soit parce que comportant plusieurs processeurs, soit parce que des éléments peuvent être élus maîtres (cas des bus MCA et EISA que l'on verra plus loin), l'arbitrage est nécessaire. On connaît ou on pratique :

L'arbitrage statique. Les candidats à la maîtrise sont élus l'un après l'autre, demandeur ou non (analogue au fonctionnement d'un réseau local à jeton). Le maître élu qui n'a pas de transaction à faire fera une transaction de non opération. Cet arbitrage n'est utilisé qu'avec un protocole synchrone et peu de maîtres potentiels. Il est simple mais consomme de la bande passante en pure perte.

Les arbitrages dynamiques. Le bus est alloué sur demande, par une ligne en général nommée BR pour bus request. Le choix de l'élu est fait selon divers algorithmes.

La réalisation de l'arbitrageOn suppose disposer (ce qui est le cas de la plupart des bus) de commandes de base, en général portées par des lignes réservées du bus.

BA bus libre (bus available)
BR demande de bus (bus request)
BB bus occupé (bus busy)
BG bus alloué (bus granted)

Les trois schémas de l'arbitrage centralisé sont :
.la scrutation (polling);
.le chaînage en guirlande ou en pétales de marguerite (daisy chain);
.la demande indépendante (independant request).

La scrutation.

L'arbitre dispose des lignes BR, BAC, d'un groupe de lignes de scrutation qui transmettent une adresse à toutes les unités et de la ligne VAL qui valide une adresse ainsi disposée. La ou les unités demanderesses affichent le signal BR unique qui signifie : une unité au moins a demandé le bus. L'arbitre émet successivement les adresses des unités, selon la priorité choisie, et pour chacune, positionne VAL. L'unité qui reconnaît son adresse répond par BAC qui sera maintenu jusqu'à la libération du bus par l'unité en cause.

La demande indépendante.Chaque unité branchée sur le bus a une ligne d'accès à l'arbitre qui reçoit toutes les demandes et choisit selon l'algorithme en vigueur. Les étapes de scrutation ou de passage en chaînage sont évitées au prix de ce câblage supplémentaire.
La guirlande

Le signal BR de requête est partagé, le signal BG d'allocation est propagé de proche en proche. Le premier dans la guirlande des appareils qui a fait une demande se saisit du bus. Il le rend bus en émettant le signal de libération, complémentaire du signal d'occupation BB (bus busy). Un nouveau cycle d'arbitrage commence.Il s'agit d'un cas particulier de la scrutation centralisée qui n'utilise pas des lignes de scrutation mais un câblage de proche en proche. L'algorithme ne peut être que la priorité fixée par le câblage.

Le chronogramme de principe de la guirlande est :

Variante du bus VME

Sa technique d'arbitrage centralisé combine les deux précédentes. L'arbitre de VME a 4 entrées de requêtes, 4 sorties d'allocation et une entrée BB.

Chaque couple requête-allocation reçoit une priorité paramétrable et peut accueillir un jeu d'appareils reliés en guirlande. Le paramétrage autorise 3 tactiques.

Le schéma de l'arbitrage réparti.Quand elle en termine, l'unité détentrice du bus choisit l'unité qui va lui succéder en émettant son adresse. Le successeur prend le contrôle en affichant BB ou bien choisit l'unité qui lui succède.

Le schéma de l'arbitrage distribué.

Le risque attaché à l'arbitrage centralisé est la panne de l'arbitre non dupliqué. L'arbitrage réparti demande une coopération entre appareils. Dans l'arbitrage distribué, chaque appareil dispose de son arbitre local. Pour obtenir le bus, l'arbitre local émet le numéro de priorité de l'appareil sur un jeu de lignes nommé Bus des numéros en faisant le OU de la configuration déjà sur le bus des numéros avec son propre numéro. Le bus des numéros porte ainsi le plus grand de tous les numéros d'appareils qui ont demandé le bus. Chaque arbitre local compare ce numéro avec le sien. S'il y a coïncidence, l'arbitre local lève le signal BB et transmet l'autorisation à son appareil. Cette technique est utilisée dans le Futurebus et le Nubus.

EN CONCLUSION

Les moyens et les techniques employés consistent à choisir parmi plusieurs demandeurs. On retrouvera le même thème pour les interruptions.

5.3.7 Une nouveauté en forme de transfert de technique

Pour accélérer les opérations internes au processeur, on a inventé le pipeline. Le temps de traitement de chaque instruction est augmenté mais le débit l'est aussi. Il faut pour cela une idée et plus d'électronique.

L'imbrication des transactions dans les bus des MIPS R10000, UltraSparc et Pentium est de la même veine.

Le principe :

On constate qu'une transaction est faite en plusieurs opérations successives et consomme donc plusieurs cycles. Certaines de ces opérations peuvent être lancées alors que la transaction en cours n'est pas achevée. Cette idée est très proche et en quelque sorte est dérivée de celle du pipeline de décodage.

Dans le cas d'un bus à plusieurs maîtres, on considère séparément chacune des opérations élémentaires et particulièrement les temps morts entre elles. Par exemple, dans une lecture, il y a temps mort entre la requête de lecture et l'affichage de la réponse. Pendant ce temps, un autre maître peut utiliser le bus. Il y a ainsi imbrication des transactions de ces deux maîtres. Comme dans le pipeline, la durée totale de chaque transaction (parfois nommées latence) sera augmentée mais la bande passante utile du bus le sera aussi.

Ce mécanisme nécessite :

L'imbrication est particulièrement utile dans les systèmes multiprocesseurs à bus commun ou systèmes symétriques où il est normal de considérer que les quelques processeurs identiques sont sur un pied d'égalité en matière d'accès. L'affaire est payée par plus de conducteurs et d'électronique.Présentation simplifiée de l'imbrication du Pentium Pro.

La première notion introduite est celle d'agent. Un agent est un maître éligible. Celui qui détient le bus à l'issue d'une étape d'arbitrage qui a utilisé le bus d'arbitrage, émet une requête en deux cycles consécutifs. Dans le premier il y a émission de l'adresse, du type d'échange, etc. Dans le second, propre à la nouvelle technique est émis l'identificateur de la transaction ID. Deux cycles plus tard, une indication d'erreur peut être présentée pour signaler un défaut de transmission ou une violation du protocole. Si tout va bien, le cycle suivant contient l'acceptation de l'interlocuteur. (En cas d'erreur, le processeur tentera une deuxième fois d'émettre la requête, si l'erreur persiste, un test sera lancé.)
Deux cycles plus tard seront mis en place le signal de données prêtes et les données elles-mêmes.

Dans le schéma suivant, les transactions sont repérées par les numéros 1, 2 et 3. On y voit des requêtes et réponses multiples présentes sur le bus au même instant.

Questionnaire

Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 5
Augmentez le débit svp ! Communications par bus
Année 2002-2003