Brevet FR2776157A1 — publié le 19990917

"PROTOCOLE ET STRUCTURE DE BUS LOCAL ET MODULE D'INTERFACE METTANT EN îUVRE CE PROTOCOLE" La présente invention concerne un protocole de bus local en extension d'un bus local pour bus VXI ou PXI. Elle vise également une structure de bus local construite autour de ce protocole, ainsi qu'un module d'interface mettant en oeuvre ce protocole. Il existe déjà des architectures de bus local, notamment le bus local pour bus VXI ou PXI désormais largement répandu. Les spécifications du bus local pour bus VXI ou PXI prévoient une structure de connexion en cascade entre un ensemble de slots. Le bus local pour bus VXI ou PXI définit 12 signaux entre chaque slot pour des "backplane" de taille C, extensibles à 33 signaux pour des "backplane" de taille D. Ce bus local peut supporter des signaux TTL, des signaux ECL ou des signaux analogiques. Il n'existe pas de protocole standard ou nominal attaché au bus local pour bus VXI ou PXI mais l'observation et l'analyse des systèmes actuels mettant en oeuvre un bus local pour bus VXI ou PXI ont mis en évidence des limitations en terme de débit de données qui sont dues à une absence d'optimisation des échanges et transferts de données sur ce type de bus local. Le but de la présente invention est de remédier à cet inconvénient en proposant un protocole de bus local qui permette des vitesses de transmission supérieures à celles des protocoles actuels tout en ne requérant pas un recours systématique à des technologies d'implémentation coûteuses telles que la technologie ECL. Cet objectif est atteint avec un protocole de bus local, en extension d'un bus local pour bus VXI ou PXI reliant en cascade un ensemble d'emplacements (slots) et contrôlé par un module de contrôle VXIbus situé dans un premier desdits emplacements de rang extrémal. -2- Suivant l'invention, ce bus local est utilisé comme une liaison monodirectionnelle entre emplacements adjacents, avec des transferts de données effectués selon une direction orientée vers l'emplacement de rang extrémal. Le choix d'une liaison monodirectionnelle pour le bus local utilisé avec le protocole selon l'invention a ainsi permis d'obtenir des débits de données notablement plus élevés que ne le permettent les bus locaux actuels, à technologie constante. Ainsi, on a obtenu avec des technologies compatibles TTL actuelles des débits pouvant atteindre 100 Moctets/s. A fortiori, l'emploi de technologies compatibles ECL pourrait même permettre des débits supérieurs à 100 Moctets/s avec le protocole selon l'invention. Pour atteindre ces performances, les transferts de données d'un emplacement vers l'emplacement suivant sont de préférence synchronisés par la source de données et les signaux de contrôle et de données du bus local pour bus VXI ou PXI sont amplifiés sur chaque emplacement. Dans un mode de réalisation de l'invention, on utilise des trames identifiées pour transférer des données d'un emplacement vers l'emplacement suivant, ces trames comprenant un en-tête et un bloc de données et étant générées par un module Maître. On peut avantageusement prévoir que l'en-tête de la trame comprenne un numéro d'identification d'un module Source (SID), un numéro d'identification d'un module Destination (DID), et un numéro d'identification de diffusion de données à l'ensemble des modules de destination. Ce protocole définit un signal d'horloge (CLK) généré par un module Maître, des signaux de données (DATA), un signal de trame (FR) et un mot de début (SW). Les signaux de données sont générés soit par le module - 3 - Maître lorsqu'il s'agit d'un en-tête, soit par un module Source lorsqu'il s'agit d'un bloc de données. Suivant un autre aspect de la présente invention, il est proposé une structure de bus local implémentant le protocole selon l'invention, caractérisée en ce qu'elle comprend: - un module Maître pour gérer les trames de transferts et générer des signaux de contrôle, - un ou plusieurs modules Source pour envoyer des données au sein de trames identifiées avec leurs propres numéros, - un ou plusieurs modules Destination pour capturer des données au sein de trames identifiées par leurs propres numéros ou avec un numéro d'identification de diffusion. La présente invention concerne également un module d'interface entre un bus d'extension bidirectionnel et un bus local monodirectionnel (CXI) mettant en oeuvre le protocole selon l'invention au sein d'une structure de bus local, caractérisé en ce qu'il comprend un module Maître pour gérer le protocole de bus local, un module Source pour envoyer sur le bus local (CXI) des données, un module Destination pour recevoir des données provenant du bus local (CXI) et un module d'interface hôte avec le bus d'extension pour effectuer les échanges de données entre le bus d'extension et le bus local (CXI). Ce module d'interface comprend en outre de manière avantageuse des premiers moyens pour stocker temporairement des données en provenance du bus d'extension avant leur entrée dans le module Source et des seconds moyens pour stocker temporairement des données en provenance du module Destination avant leur envoi sur le bus d'extension. -4- Ces premiers et seconds moyens de stockage temporaire comprennent en pratique des mémoires FIFO ("First In First Out"). Les premiers moyens de stockage temporaire sont de préférence accessibles uniquement en écriture, tandis que les seconds moyens de stockage temporaire sont accessibles uniquement en lecture. Il est à noter que le module Maître est agencé pour générer des trames sur le bus local (CXI) en réponse à une demande du module d'interface hôte. Le module d'interface selon l'invention comprend en outre des premiers moyens pour connecter le module d'interface selon l'invention au bus d'extension et des seconds moyens pour connecter le module d'interface selon l'invention au bus local (CXI). D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés donnés à titre d'exemples non limitatifs: - la figure 1 illustre un environnement d'interface d'un bus local CXI; - la figure 2 illustre une architecture de bus local pour bus VXI ou PXI; - la figure 3 illustre un exemple d'architecture d'un module d'interface CXI selon l'invention; - la figure 4 est un chronogramme d'un transfert de données sur un bus local CXI selon l'invention; et - la figure 5 est un chronogramme d'un mode de diffusion pour un bus local CXI selon l'invention. On va maintenant décrire un exemple de réalisation d'un protocole de bus local, en même temps qu'un système mettant en ouvre ce protocole, en référence aux figures précitées. Une structure de bus local selon l'invention comprend, en référence à la figure 1, un module d'interface de bus local CXI 1 qui interagit d'une part - 5 - avec un bus local pour bus VXI ou PXI 10 et d'autre part avec un module VXIbus 30 qui supporte ce module d'interface de bus local CXI. Le bus local pour bus VXI ou PXI et le module d'interface de bus local CXI échangent des signaux de bus local pour bus VXI ou PXI "raw a" et "raw c". Le module d'interface de bus local CXI 1 émet des signaux de statut à destination du module VXIbus 30 qui lui transmet des signaux de commande, ces deux modules échangeant des données. Dans une structure de bus local selon l'invention, comme le contrôleur de bus local pour bus VXI ou PXI est généralement situé dans le slot ou emplacement qui constitue un emplacement de rang extrémal, la direction de transfert est nécessairement du slot S(N) vers le slot S(N-1), en référence à la figure 2. On va maintenant décrire un exemple de réalisation d'un module d'interface de bus local CXI selon l'invention, en référence à la figure 3. Le module d'interface 1 selon l'invention comprend: - un module Destination 20 construit autour d'un circuit CPLD et de quatre registres synchrones FIFO 21- 24; - un module Maître 26 réalisé autour d'un circuit CPLD; - un module Source 3 réalisé autour d'un circuit CPLD et de quatre registres synchrones FIFO 31-34; - un module 8 d'interface hôte, réalisé avec un circuit CPLD et assurant l'interface avec le bus d'extension 10. Le module maître 2 génère des trames en réponse à une demande du module interface hôte. Le module maître 2 génère en outre pour l'ensemble de la structure de bus local CXI un signal d'horloge de bus local CXI. Un dispositif d'horloge Robotclock 7 recevant en entrée un signal à 40 MHz génère en retour un signal d'horloge à 80 - 6 - MHz. Le débit maximum obtenu avec ce mode de réalisation est alors de 80 Moctets/s. les quatre registres synchrones FIFO 31-34 reliés au module source 3 sont utilisés pour stocker temporairement les données envoyées sur le bus local CXI. Ces registres FIFO 31-34 sont accessibles uniquement en écriture à partir du bus d'extension 10. Les accès sont systématiquement effectués sur une largeur de 32 bits, du fait que seuls sont stockés et transférés des mots sources de 8, 16 ou 32 bits. Lorsqu'il est actif, le module source 3 retransmet la trame incidente avec un retard de quatre cycles d'horloge. Le module Destination 20 est en pratique implémenté par le circuit CPLD 25 utilisé pour l'implémentation du module Maître 26. Les quatre registres synchrones FIFO 21-24 sont utilisés pour stocker temporairement les données reçues du bus local CXI. Ces registres FIFO 21-24 sont accessibles uniquement en lecture à partir du bas d'extension 10. Des circuits buffers 51-54; 41-44; 9 sont normalement disposés respectivement en amont des registres FIFO 31-34 d'entrée, en aval des registres FIFO 21-24 de sortie, et en liaison avec les ports d'entrée/sortie du module d'interface hôte 8. Des réseaux de résistance de tirage 6, 4 sont également prévus respectivement en sortie du module Source 3, en entrée du bus local CXI et entre le module d'interface 8 et le bus d'extension 10. Les registres de commande et d'état des modules Source, Destination et Maitre sont accessibles à partir du module d'interface 8 au moyens d'un décodage local sur des accès de sélection de mémoire. Tous les accès sont effectués avec un état d'attente sur le bus système à 40 MHz. --7- Le module d'interface hôte 8 a notamment pour fonction de rapporter les informations suivantes: - état des registres Source et Destination, - état de l'activité du bus local CXI, - rapport d'erreur de trame. Le module d'interface hôte 8 permet en outre de générer une interruption sur des conditions d'entrée de trame ou de sortie de trame. Le module d'interface 1 selon l'invention est relié respectivement au bus d'extension 10 et au bus local 100 par deux connecteurs: - un connecteur 120 de bus d'extension pour des transferts de commande et de données, et - un connecteur 110 de bus local. La sortie du module maître est envoyée sur un registre tampon 11 synchronisé par le circuit horloge 7. Un commutateur de bus 5 reçoit en entrée, d'une part le bus d'entrée CXI IN à travers un registre tampon 4, et d'autre part, la sortie du registre tampon 11. La sortie du commutateur de bus 5 est appliquée en entrée du module source 3. La sortie de ce module source 3 est reliée au bus de sortie CXI OUT via un registre tampon 6. Le protocole de bus local selon l'invention utilise des trames identifiées pour transférer des données d'un slot au slot suivant. Les trames comprennent un en-tête et un bloc de données, en référence aux figures 4 et 5. Un en-tête est défini de la façon suivante: - un premier octet contient un numéro d'identification de module source (SID). Jusqu'à 256 modules peuvent être sources de données, mais seul un module peut être source de données sur une trame; - un second octet contient un numéro d'identification de module de destination (DID). Jusqu'à 255 modules peuvent capturer des données sur une trame. Le numéro d'identification 255 est réservé à des fins de diffusion: - 8 - tous les modules capturent des données. Plusieurs modules peuvent partager le même numéro d'identification de destination; - un troisième octet contient la taille de mot (WS) transmis par la trame; - un quatrième octet est utilisé comme cycle d'attente, et permet le décodage de données d'en-tête. Un même module peut supporter plusieurs numéros de source et plusieurs numéros de destination. On peut également prévoir dans le cadre de l'invention un mode de diffusion à l'ensemble des modules Destination de la structure. A ce mode de diffusion correspond par exemple un chronogramme représenté en figure 5. A titre d'exemple pratique non limitatif de réalisation d'un module d'interface de bus local selon l'invention, on peut utiliser les composants suivants: - connecteur de bus local: Samtec SFM-130-01-S- D connecteur de bus d'extension: Samtec SFM-150-01-S-D - commutateur de bus 5: Péricom PI5C3257 - registres FIFO 21-24; 31-34: Cypress CY7C4231-10AC circuit d'horloge 7: Cypress CYB991 - circuits CPLD 3, 25: Cypress CY7C374- 10OAC Le système de contrôle de bus local CXI selon l'invention requiert en pratique une première source d'alimentation de + 5V notamment pour l'alimentation des circuits CPLD et des registres FIFO, et une seconde source d'alimentation de +3,3V. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. Ainsi, la taille des mots et blocs de données transférés et traités n'est pas limitée par la présente invention. Seules des considérations pratiques -9-- et matérielles pourraient en limiter l'extension. Par ailleurs, les indications chiffrées de fréquence d'horloge, de tension d'alimentation ne constituent que des exemples particuliers d'implémentation. - 10 - REVENDICATIONS 1. Protocole de bus local (100), en extension d'un bus local pour bus VXI ou PXI (10) reliant en cascade un ensemble d'emplacements (slots) (S(N-l), S(N), S(N+Il)) et contrôlé par un module de contrôle VXIbus (30) situé dans un premier desdits emplacements de rang extrémal, caractérisé en ce que ce bus local (100) est utilisé comme une liaison monodirectionnelle entre emplacements adjacents, avec des transferts de données effectués selon une direction orientée vers l'emplacement de rang extrémal. 2. Protocole selon la revendication 1, caractérisé en ce que les transferts de données d'un emplacement (S(N+ l), S(N)) vers l'emplacement suivant (S(N), S(N-1)) sont synchronisés par la source de ces données. 3. Protocole selon la revendication 2, caractérisé en ce que les signaux de contrôle et de données du bus local sont amplifiés sur chaque emplacement. 4. Protocole selon la revendication 3, caractérisé en ce qu'il utilise des trames identifiées (40) pour transférer des données d'un emplacement (S(N+l), S(N)) vers l'emplacement suivant (S(N), S(N-l)), ces trames (40) comprenant un en-tête et un bloc de données et étant générées par un module Maître (26). 5. Protocole selon la revendication 4, caractérisé en ce que l'en-tête de la trame (40) comprend un numéro d'identification (SID) d'un module Source (3). 6. Protocole selon l'une des revendications 4 ou 5, caractérisé en ce que l'en-tête de la trame (40) comprend - l1 - en outre un numéro d'identification (DID) d'un module Destination (20). 7. Protocole selon la revendication 6, caractérisé en ce que l'en-tête de la trame (50) comprend en outre un numéro d'identification de diffusion de données (DID) à l'ensemble des modules de destination. 8. Protocole selon l'une quelconque des revendications 4 à 7, caractérisé en ce qu'il définit un signal d'horloge (CLK) généré par le module Maître (26), des signaux de données (DATA), un signal de trame (FR) et un mot de début (SW). 9. Protocole selon la revendication 8, caractérisé en ce que les signaux de données sont générés soit par le module Maître (26) lorsqu'il s'agit d'un en-tête, soit par un module Source (3) lorsqu'il s'agit d'un bloc de données. 10. Structure de bus local implémentant le protocole selon l'une quelconque des revendications précédentes, caractérisée en ce qu'elle comprend: - un module Maître (26) pour gérer les trames de transferts et générer des signaux de contrôle, - un ou plusieurs modules Source (3) pour envoyer des données au sein de trames identifiées avec leurs propres numéros d'identification, - un ou plusieurs modules Destination (20) pour capturer des données au sein de trames identifiées par leurs propres numéros ou avec un numéro d'identification de diffusion. 11. Module d'interface (1) entre un bus d'extension bidirectionnel (10) et un bus local monodirectionnel - 12 - (CXI) (100) mettant en oeuvre le protocole selon l'une quelconque des revendications 1 à 9 au sein d'une structure de bus local selon la revendication 10, caractérisé en ce qu'il comprend un module Maître (26) pour gérer le protocole de bus local, un module Source (3) pour envoyer sur le bus local (100) des données, un module Destination (20) pour recevoir des données provenant du bus local (100) et un module d'interface hôte (8) avec le bus d'extension bidirectionnel (10) pour effectuer les échanges de données entre ledit bus d'extension bidirectionnel (10) et le bus local (100). 12. Module d'interface (1) selon la revendication 11, caractérisé en ce qu'il comprend en outre des premiers moyens (31-34) pour stocker temporairement des données en provenance du bus d'extension (10) avant leur entrée dans le module Source (3) et des seconds moyens (21-24) pour stocker temporairement des données en provenance du module Destination (20) avant leur envoi sur le bus d'extension (10). 13. Module d'interface (1) selon la revendication 12, caractérisé en ce que les premiers et seconds moyens de stockage temporaire (31-34; 21- 24) comprennent des registres FIFO ("First In First Out"). 14. Module d'interface (1) selon l'une des revendications 12 ou 13, caractérisé en ce que les premiers moyens de stockage temporaire (31-34) sont accessibles uniquement en écriture. 15. Module d'interface (1) selon l'une des revendication 12 ou 13, caractérisé en ce que les seconds moyens de stockage temporaire (21-24) sont accessibles uniquement en lecture. - 13 - 16. Module d'interface (1) selon l'une quelconque des revendications 11 à 15, caractérisé en ce que le module Maître (26) est agencé pour générer des trames sur le bus local (CXI) en réponse à une demande du module d'interface hôte (8). 17. Module d'interface (1) selon l'une quelconque des revendications 11 à 16, caractérisé en ce qu'il comprend en outre des premiers moyens (120) pour connecter le module d'interface (1) selon l'invention au bus d'extension (10) et des seconds moyens (110) pour connecter le module d'interface (1) selon l'invention au bus local (CXI) (100). 18. Module d'interface (1) selon l'une quelconque des revendications 11 à 17, caractérisé en ce qu'il met en ouvre une technologie compatible TTL. 19. Module d'interface (1) selon l'une quelconque des revendications 11 à 17, caractérisé en ce qu'il met en oeuvre une technologie compatible ECL. 20. Module d'interface (1) selon l'une quelconque des revendications 11 à 19, caractérisé en ce que les modules Maître (26), Source (3), Destination (20) et Interface hôte (8) sont réalisés en totalité ou en partie avec des circuits de type CPLD. 21. Module d'interface (1) selon la revendication 20, caractérisé en ce que les modules Maître (26) et Destination (20) sont implémentés au sein d'un même circuit CPLD (25).