Brevet FR2641630A1 — publié le 19900713

SYSTEME DE BUS UNIVERSEL La présente invention concerne un système de bus universel pour différents périphériques qui sont raccordés par l'intermédiaire de montages d'adaptation à la largeur binaire totale du bus ou aux moitiés de sa largeur binaire. On connaît un système de ce type par l'article de G. Schmitt et W. Weiss "Système de bus universel pour divers types de microprocesseurs", ELECTRONIK 10/21.05.82, pages 99 à 104. Le système qui y figure divise le bus de données en une moitié supérieure et une moitié inférieure pour permettre de raccorder à volonté un processeur ayant le nombre de bits total du bus aux deux moitiés ou un processeur ayant la moitié du nombre total de bits du bus à l'une des deux moitiés sélectionnées. En plus du bus de données, il faut qu'il y ait, dans le système présenté dans ce document, un bus d'adresses, ainsi qu'un bus de commande relativement large. Ce dernier comprend une ligne de confirmation par laquelle il est signalé à tous les processeurs raccordés au bus le moment o le processeur momentanément branché sur le bus a achevé sa transmission de données; un autre processeur peut alors accéder au bus, selon une priorité prescrite au bus. L'inconvénient d'un tel système de bus universel pour divers proceseurs consiste cependant en la capacité de transmission relativement faible des bus. En effet, les processeurs accédant directement aux bus nécessitent un intervalle de temps relativement long pour transférer leurs informations d'un processeur émetteur (source de données) à un processeur récepteur (terminal récepteur). Compte tenu de ces faits, l'invention a pour objet de concevoir un système de bus du type indiqué de façon à pouvoir, avec une indépendance accrue des périphériques à raccorder et une structure plus simple du circuit d'interface ou d'adaptation, proposer un système de bus rapide approprié pour des applications en temps réel dans lequel la durée d'accès de la périphérie au bus soit minimisée et par suite le bus est en général libre pour un accès, donc que sa caractéristique de transmission élevée 2 264 1 30 accès, donc que sa caractéristique de transmission élevée spécifique au bus, puisse aussi être effectivement mise en oeuvre dans la communication entre périphériques. Pour atteindre cet objectif, selon l'invention, on prévoit des circuits d'adaptation homogènes même pour des périphériques différents, qui sont raccordés par deux canaux ayant chacun la moitié de la largeur de bus à un interconnecteur par lequel des mots de données de la moitié du nombre de bits total du bus peuvent être appliqués à volonté à l'un ou l'autre des deux canaux et aust etre commutés directement d'un canal à l'autre canal he ce périphérique, avec mémorisation temporaire des données dans une mémoire rattachée au processeur programmable respectif. Selon cette solution, les circuits programmables relativement lents en ce qui concerne la transmission de données coopèrent par 1' ẻrmédiaire de mémoires vives (RAM) avec leurs circuits d'adaptation, tandis que les montages périphériques à câblage direct, par contre relativement rapides, aboutissent directement à leur circuit d'adaptation au bus. Dans ce cas, la liaison entre les périphériques et leurs circuits d'adaptation respectifs est réalisée dans chaque cas par deux canaux de la moitié de la largeur binaire du bus, et un interconnecteur situé dans le circuit d'adaptation respectif permet de transmettre des données directement, sans occuper le bus, de l'un des canaux à l'autre du même périphérique, lorsque celui-ci comporte, par exemle, deux processeurs ayant chacun la moitié du nombre de bits du bus. Pour un tel transfert de valeurs de consigne à des périphériques frontaux rapides, comme par exemple des circuits de réglage fonctionnant en temps réel, on peut prévoir un troisième canal ou canal de valeurs prescrites, de telle façon que deux canaux ayant chacun la moitié du nombre de bits peuvent être réservés seulement pour l'extraction des valeurs réelles actuelles dans le bus. Ce troisième canal peut ausi servir à l'introduction de données dans des périphériques frontaux; dans la mesure o ceux-ci sont dépourvus d'intelligence propre, la commande de lecture est alors effectuée par l'intermédiaire du circuit d'adaptation. On obtient ainsi grâce à l'invention une structure de bus extrêmement rapide fonctionnant en synchronisme sous la commande des circuits d'adaptation avec des circuits d'adaptation de structure identique, même pour des sources de données et récepteurs de données de rapidités différentes et de largeurs binaires différentes, les récepteurs de données pouvant aussi comporter une intelligence propre. On peut faire fonctionner chaque paire de périphériques de la moitié du nombre de bits seulement, malgré le raccordement au bus par un circuit d'adaptation commun, avec des transmissions de données mutuellement indépendantes, avec un rattachement libre de séries de données de la moitié du nombre de bits à l'une ou l'autre moitié du double canal rattaché au périphérique. De façon appropriée, il est transmis par les canaux et ainsi éventuellement aussipar le bus des informations en séquence par mots et en parallèle par bits, avec l'indication des longueurs des blocs de données et du destinataire des données (en ce qui concerne l'identité du périphérique de réception et les adresses de sa mémoire intermédiaire) dans les mots précédant les séries du données effectives. Une correspondance en bits des différents périphériques en réception permet de transmettre une information à plusieurs périphériques en parallèle, ce qui est prescrit individuellement et par suite commandé par l'intermédiaire du bus de données lui-même lors de la génération des données dans le périphérique émetteur, du fait que cette information se situe, dans l'information transmise, juste avant le mot de données luimême. Le premier mot de données d'une information contient de façon appropriée les critères d'accès au bus, ainsi donc qu'une priorité d'arbitre (éventuellement variable). La structure transparente, réalisée en deux canaux mutuellement indépendants, à l'intermédiaire de chaque circuit d'adaptation, permet la sortie rapide d'information d'une mémoire intermédiaire sur le bus lors de la commande en rythme biphasé pour effectuer sans perturbations des opérations de lecture en écriture sur des flancs éventuellement décalés. D'autres variantes et développements, ainsi que d'autres caractéristiques et avantages de l'invention, ressortent de la description qui va suivre d'un exemple de réalisation préféré de la solution de l'invention, représenté en se limitant à l'essentiel sous la forme d'un shéma-bloc unipolaire trèss abstrait, sur le dessin annexé dont: la figure 1 représente différents périphériques qui sont -raccordés à un bus par des circuits d'adaptation semblables, et la figure 2 est une représentation synoptique détaillée des interconnecteurs respectifs appartenant aux circuits d'adaptation. Le système de bus universel B représenté schimatiquement sur la figure 1, ne comporte pas, pour pouvoir se contenter d'aussi peu de lignes parallèles que possible, de bus de commandes et en particulier de bus d'adresses. Au lieu de cela, il comprend seulement un bus de données de capacité binaire relativement importante, de 32 bits dans l'exemple présenté. A ce bus B se raccordent différents périphériques Pi (i = 0,1,.. ,j) par l'intermédiaire de circuits d'adaptation Ii qui leur sont rattachés individuellement, mais soik mutuellement identiques. De façon générale, on peut caractériser un périphérique Pi, y compris son circuit d'adaptatieA ti, en tant que module de traitement de données DMi. On y réalise la liaison entre les périphériques Pi et leurs circuits d'adaptation Ii par l'intermédiaire d'un à trois canaux Ci, u/l/p ayant chacun la moitié du nombre de bits du bus B. Lorsqu'un périphérique Pi constituant une source de données (émetteur) ou un collecteur de données (récepteur) Si Li dispose d'un processeur Mi d la pleine capacité en bits du bus B, il est raccordé par son circuit d'adaptation Ii par deux canaux Ciu+l de la moitié du nombre de bits du bus chacun à son circuit d'adaptation Ii (sur la figure 1, avec i + 0). Lorsqu'un périphérique Pi dispose d'un ou plusieurs processeurs M qui peuvent fonctionner avec la moitié du nombre total de bits du bus B, chacun est raccordé à son circuit d'adaptation Ii par un canal Ciu ou Cil de la moitié du nombre de bits total du bus (sur la figure 1, avec i = 2). Du fait que cependant, pour des raisons physiques, la vitesse d'écriture ou de lecture (donc la vitesse de sortie des données lors de l'émission ou d'entrée des données de la réception) est relativement faible pour les processeurs M, chaque périphérique P de cette nature dispose encore d'une mémoire R qui peut fonctionner, en accès libre (RAM), en mémoire d'écriture et en mémoire de lecture. Toutes les données D et les informations auxiliaires nécessaires pour la transmission de données, donc toutes les informations N ne sont donc pas transmises directement des processeurs M, par l'intermédiaire des canaux C, au circuit d'adaptation I respectivement correspondant, mais d'abord introduites dans la mémoire rapide R, puis extraites de celles-ci par le circuit d'adaptation I pour la transmission effective, pour ne plus avoir besoin absolument du bus B pour une transmission d'informations, donc pour maintenir aussi faible que possible l'occupation du bus par transfert de données et, par suite, permettre à tous les périphériques P b d'avoir toujours l'accès le plus rapide possible au bus en cas de besoin. On prévoit aussi dans le circuit d'adaptation I une mémoire intermédiaire RAM Zi dans chaque C 3 Ce n'est que pour l'échange de données à partir des ou vers les circuits FE câblés très rapide par rapport à un microprocesseur M (sur la figure 1 pour i = 1) que le..DTD: périphérique Pi ne comporte pas de mémoire d'écriture- lecture R. Ici, les informations N sont directement appliquées au canal de liaison Ci vers le circuit d'adaptation Ii et y sont éventuellement introduites dans la mémoire RA intermédiaire Zi. La source de données émettrice Si est, dans ce cas, par exemple, un appareil de mesure, par exemple le transmetteur de valeurs réelles d'un circuit de réglage dont la série de valeurs de mesure disponible dans une mémoire FIFO F pour l'appel direct à partir du circuit d'adaptation Ii. Dans cet exemple, l'un des canaux Ci ou un autre canal Cib de la moitié du nombre de bits total est prévu pour l'introduction de données, par exemple de valeurs prescrites de circuits de régulation, par l'intermédiaire du circuit d'adaptation Ii, dans le récepteur FE Li. Pour compléter la représentation, on a tenu compte du fait, sur le dessin, qu'on peut aussi raccorder au bus B, par l'intermédiaire d'un circuit d'adaptation I identique, un dispositif d'essai T pour le contrôle courant des erreurs (sur la figure 1, pour i = j). Pour pouvoir se contenter pratiquement d'un bus B pour le nombre de bits de données maximum seulement, on transmet chaque information N de la série de trois mots à bits parallèles Wl...W3 du nombre total de bits du bus. Le rassemblement de l'information N à partir des mots W a lieu dans la mémoire intermédiaire Z du circuit d'adaptation I respectif. Le premier mot W1 d'une information N à transmettre (voir figure 1 en bas) comprend pratiquement seulement une information d'accès au bus qui est fournie par un transmetteur A et, dans le cas le plus simple, peut effectuer une attribution de bus selon une chaîne de priorité pouvant être prescrite par les circuits, symbolisée par exemple par la série des numéros d'identification i. De façon appropriée, en vue d'une exploitation optimale des rythmes de transmission du bus élevés existants, on peut prévoir éventuellement une attribution de bus comprenant des priorités fixes et des priorités variables en fonction des données. Le nombre de bits non occupés dans le premier mot W1 par le transmetteur d'accès au bus A est disponible pour des commandes particulières ou reste libre. Le second mot W2 d'une information N représente, dans cet exemple de réalisation, une adresse de destination combinée pour les données D dont la sortie de la mémoire intermédiaire Z est commandée dans le circuit d'adaptation I, par exemple pour la transmission par l'intermédiaire du bus B dans le cas d'un accès a'u bus donné. Cette adresse comprend l'indication du canal de destination Ciu/l/b; et l'indication de l'adresse de mémoire R de la mémoire Ri correspondant au canal Ci, contenue dans le terminal Pi (pour la mémorisation intermédiaire dans celle-ci jusqu'à l'appel du récepteur Li correspondant, dans le cas o il ne s'agit pas d'un circuit câblé FE qui est alimenté directement par l'intermédiaire du canal de réinfection Cib). L'information de destination dans le mot W2 produit donc le trajet de multiplexeur pour l'information effective suivant alors avec le troisième mot W3, qui est au moins un article de la moitié du nombre total de bits du bus (Du et/ou D1) ou un article du nombre de bits total du bus. Le trajet de transmission des données est produit dans le circuit d'adaptation émetteur et dans le circuit d'adaptation récepteur Ii par l'intermédiaire d'un interconnecteur Ki entre d'une part les canaux de terminaux Ci ou les mémoires intermédiaires Zi, respectivement, et d'autre part les conducteurs de raccordement au bus v. Grâce à une porte d'entrée G, on a la garantie que seul peut recevoir une information N par l'intermédiaire du bus B le circuit d'adaptation Ii pour lequel l'adresse de canal Ci correspondante indique au début du premier mot W2 transmis ce numéro d'identification I. La seconde moitié de ce second mot W2 soit le premier transmis par le bus B) détermine alors, comme on l'a mentionné, sous quelle adresse dans la mémoire de terminal R de ce canal i les données D suivantes (du troisième mot W3) seront placées. Comme il ressort de la description détaillée de la figure 2, il est également possible de détourner les données D présentes sur un canal Ci de la moitié du nombre de bits du bus (par exemple Du dans le cas i = 2 de la figure 1) sans aucunement solliciter le bus B directement dans l'interconnecteur Ki du circuit d'adaptation Ii vers le second canal C, ici le canal inférieur C21; pr exemple lorsque le terminal Pi correspondant dispose de deux processeurs M de la moitié du nombre total de bits du bus, dont le processeur inférieur Lil joue le rôle d'un récepteur et d'un dispositif de traitement ultérieur pour les donées D qui ont été engendrées dans le processeur supérieur Siu constituant une source de données. Pour cela, l'interconnecteur K comprend un circuit de découplage V comprenant chaque fois un ampli- séparateur à fonctionnement directionnel pour l'entrée des données et pour la sortie des données sur chacun des deux canaux C, avec raccordement de sortie de ces canaux C par un multiplexeur croisé M. Par l'intermédiaire de celui-ci, les deux canaux Cu-Cl de la moitié du nombre de bits peuvent être raccordés directement par la partie correspondante du circuit de découplage V, de sorte qu'un échange de données entre ces deux canaux C d'un terminal P est possible sans occuper du tout le bus B pour cela. Le circuit de découplage V comprend en outre un chemin comportant une porte d'entrée E pour un troisième canal Cb qui est nécessaire (comme on l'a expliqué e regard de la figure 1) pour l'attaque rapide directe de circuits frontaux FE. S15 Ainsi, par l'intermédiaire d'un bus B on peut, avec un nombre de conducteurs minimum par rapport à son nombre total de bits (u+l), relier à volonté entre eux des terminaux P très différents, comme par exemple des circuits logiques de traitement de signaux câblés rapides d'une part et, d'autre part, des microprocesseurs par contre lents, pour le traitement des données pour un échange de données extrêmement rapide déterminé par les temps de lecture des mémoires R, le bus B n'étant même pas sollicité dans le cas particulier d'un échange de données à l'intérieur d'un seul terminal P. En règle générale, un terminal P trouve donc un bus B libre pour une transmission d'informations souhaitée, de sorte que les temps d'attente éventuels sont minimisés chaque fois. Le numéro d'identification i du canal de communication C partant du terminal P ou y aboutissant, contenu dans l'information en séquence par mots N contient déjà une indication sur le fait de savoir si les données suivant dans cette information N avec le troisième mot W3 ont la moitié ou la totalité du nombre total de bits, pour préparer le chemin de multiplexage et l'organisation de mémoire corrélativement, sans qu'il faille pour cela des conducteurs de commande à côté du bus de données B lui-même. On obtient ainsi, malgré un nombre minimum de conducteurs, une vitesse de bus que l'on ne pourrait sinon obtenir que dans la grille de rythme fixe du fonctionnement synchrone, mais que l'on doit à présent admettre sans les limitations de fonctionnement usuelles du fonctionnement synchrone rigide. En effet, la commande des chemins de données est rythmée par le circuit d'adaptation I du périphérique P qui veut chaque fois précisément placer une information N, après que l'accès au bus ait été donné au moyen du transmetteur d'accès A, pour relibérer le bus B immédiatement après l'échange de données entre deux mémoires. Cet échange d'informations est, de plus, non seulement plus rapide, mais également plus à l'abri des perturbations que dans le cas du fonctionnement asynchrone des bus, du fait que, dans le cas du procédé d'établissement de liaison (handshake) qui y est utilisé, on ne peut garantir que les processus de commutation sont déjà amortis lorsque la transmission des données commence. En outre, la structure claire du circuit d'adaptation I avec son interconnecteur K est également avantageuse pratiquement en raison de sa structure de canaux claire, peu couplée, cela en raison de sources parasites minimales et surtout en raison de la possibilité de réalisation compacte dans la technologie des composants standards propres à une application (ASIC) REVENDICATIONS 1. Système de bus universel (B) pour différents périphériques (P) qui sont raccordés par l'intermédiaire de circuits d'adaptation (I) à la totalité de la largeur binaire du bus (U+l) ou aux demi-largeurs binaires du bus (U,l), caractérisé en ce que des circuits d'adaptation homogènes (Ii) sont prévus, même pour des périphériques différents, lesquels sont raccordés par l'intermédiaire de deux canaux (C) ayant chacun la moitié de la largeur du bus (U,l) à un interconnecteur (K) par l'intermédiaire duquel des mots de données (D) de la moitié de la largeur totale du bus peuvent être appliqués à volonté à l'un ou à l'autre des deux canaux (C) et également être connectés directement d'un canal (C) à l'autre canal (Ci) de ce périphérique (Pi), avec une mémorisation de données intermédiaires dans une mémoire (Ri) rattachée au processeur programmable (M) respectif. 2. Système de bus selon la revendication 1, caractérisé en ce qu'il peut être transmis par l'intermédiaire du bus (B), entre les circuits d'adaptation (I), des informations (N) en parallèle par bit et en séquence par mot 'N) dans lesquelles des mots de données (D ; W3) de deux is la moitié ou d'une fois le nombre di bits total sonT aYe fois suivis par des mots de commande (W2) pour la t.'lshission multiplexée au(x) périphérique(s) récepteur(s) (pi) lndiqué(s) et sont précédés par leurs adresses de mémoire (Ra) qui suivent elles-mêmes un mot d'accès au bus (Wl) contenant la priorité d'arbitre. 3. Système de bus selon la revendication 2, caractérisé en ce que les circuits d'adaptation (Ii) comportent un troisième canal (Cb) pour la transmission des données à des parties réceptrices d'un circuit cablé (FE) ou à l'échange de données entre parties réceptrices de celui-ci, dans un périphérique (Pi). 4.Système de bus selon l'une des revendications précédentes, caractérisé en ce que l'in.erconnecteur (K) comporte dans le circuit d'adaptation (Ii> un multiplexeur ii 2641630 croisé (KM) avant des circuits de découplage (V) partant des canaux (C). 5. Système de bus selon l'une des revendications précédentes, caractérisé en ce que le circuit d'adaptation (I) comporte une mémoire intermédiaire (Z) pour des données prélevées des canaux (C), comportant des informations de destination (i,a), qui peuvent être complétées par une information d'arbitre avant d'être appelées pour être transférées sur le bus (B).