FR 2873468 A1 20060127 FR 0506265 A 20050621 BUS DE DONNÉES PARALLÈLE L'invention concerne un bus de données parallèle ayant un io dispositif de commutation de modes de fonctionnement de bus et un procédé pour faire fonctionner un bus de données parallèle de ce genre. Lors de la transmission de données par un bus parallèle, il est nécessaire, en général, de protéger les données pendant la transmission de toutes falsifications. Des falsifications peuvent se produire en raison d'erreurs de transmission ou de manipulations délibérées. Notamment pour des applications ayant de grandes exigences en matière de sécurité de données, comme par exemple des cartes à puce, il est absolument nécessaire d'assurer l'intégrité des données. La propriété essentielle de cartes à puce consiste en ce qu'elles offrent un environnement sûr pour des données et des programmes. S'il était possible, sans grandes dépenses, de lire des données dans les cartes à puce sans y être autorisé, elles ne se distingueraient plus que d'une manière négligeable d'un support de mémoire. Pour être sûr que des données, qui sont mémorisées ou traitées sur un contrôleur de cartes à puce, ne peuvent pas être manipulées, les fabricants de cartes à puce consentent une dépense considérable. Afin de pouvoir reconnaître des agressions sur le plan physique, par exemple des capteurs sont insérés dans le contrôleur de carte à puce. Ceux-ci peuvent détecter des modifications, par exemple de la température, de la tension d'alimentation, de la fréquence d'horloge ou de l'incidence de la lumière à l'intérieur d'un contrôleur. Comme autre mesure de protection, on utilise des recouvrements spéciaux de puce, ce que l'on appelle des Shields, comme couche de protection qui, lors d'une agression, sont endommagés. Le dommage entraîne une modification de résistance ou de capacité qui peut être détectée et exploitée.. Si l'on constate une agression, on peut prendre des contre-mesures correspondantes qui rendent impossible, par exemple, la lecture de données pertinentes du point de vue de la sécurité, comme par exemple de clés secrètes. Une autre possibilité d'assurer l'intégrité de données consiste à utiliser des codes de reconnaissance d'erreur (EDC Error Detection Code). Pour empêcher l'accès à des contenus de données sensibles comme des codes de programme, des clés, des conditions d'accès, des structures de pointeur et autres, on associe une somme de contrôle aux données transportées sur des bus. Cette somme de contrôle est transmise ensemble avec les données à contrôler et après la transmission est comparée à la lo somme de contrôle nouvellement calculée des données reçues. Si les données sont modifiées par la transmission par le bus, les sommes de contrôle se distinguent dans le cas idéal et on peut déclencher une alerte ou rejeter des données et les retransmettre. Un procédé à somme de contrôle simple et donc très répandu est le contrôle de parité (Parity Check). Dans ces procédés, on forme pour chaque mot un bit de parité et on le transmet. On met le bit de parité de façon à ce que, pour une parité impaire, il y ait toujours un nombre impair de bits sur 1 et pour une parité paire toujours un nombre pair de bits. Comme un nombre pair de bits modifiés n'est pas reconnu par le contrôle de parité, on a besoin, en pratique, de sommes de contrôle OU exclusifs qui sont calculées par la combinaison de OU exclusifs logiques successifs de tous les octets de données et qui sont connues aussi sous le nom de contrôle de sommes longues. On ne peut pas reconnaître toutefois un échange de deux octets ou une erreur multiple sur la même position de bit. Pour surmonter ces inconvénients, on utilise des sommes de contrôle CRC (Cyclic Redundancy Check). La somme de contrôle est produite par un registre à décalage cyclique à réaction et permet aussi de reconnaître des erreurs multiples. Dans la cryptologie, on connaît aussi des signatures assez complexes, comme par exemple MAC (Message Authentification Code), mais qui ne peuvent être contrôlées que si l'on connaît, à cet effet, la clé secrète. L'inconvénient de l'utilisation de capteurs pour assurer l'intégrité de données est qu'il faut, en règle générale, un grand coût de développement pour l'entretien, la transposition et le perfectionnement des capteurs dans des familles de produits et en dehors de celles-ci. Pour des capteurs analogiques se pose, en outre, le problème de les étalonner de façon à ce que le fonctionnement normal du circuit soit assuré dans des conditions ambiantes fluctuantes tout en détectant cependant de manière sûre des agressions. Si l'on veut détecter, par exemple, une agression provoquée par une sous-tension, il faut choisir la limite de tension suffisamment haute de manière à détecter de façon sûre cette sous-tension. Cette limite ne doit, dans le même temps, pas être si haute que le circuit ne soit plus apte à fonctionner en raison du salissement des contacts. Fixer le seuil de réponse de capteurs est rendu plus difficile, en outre, par des dispersions de fabrication et de technologie. Des capteurs de ce genre nécessitent de plus une surface qui n'est pas négligeable lors de l'intégration sur une puce, ce qui augmente les coûts de la puce. L'inconvénient lors de l'utilisation de sommes de contrôle pour assurer l'intégrité des données est que des lignes supplémentaires sont nécessaires pour la transmission de l'information de sommes de contrôle. Suivant la qualité des signatures, on a besoin d'un nombre qui n'est pas négligeable de bits supplémentaires, ce qui, en particulier dans le cas de bus parallèle, emporte une augmentation significative de la surface dont on a besoin et ainsi que des coûts. La transmission supplémentaire d'un bit de parité pour un mot de huit bits exige 12,5 % de surface de plus, tandis qu'une signature de huit bits pour un bus de 32 bits a déjà besoin de plus de 25 % de surface de puce supplémentaire. L'invention vise un bus de données parallèle et un procédé pour faire fonctionner un bus de données parallèle par lesquels on peut assurer l'intégrité des données à transmettre à un coût minimum. On y parvient par le fait que le bus de données parallèle a un dispositif de commutation de modes de fonctionnement du bus qui commute entre une transmission de données ayant un grand débit de transmission de données et une transmission de données ayant une grande intégrité de données. Comme des lignes déjà existantes d'un bus parallèle peuvent, suivant le mode de fonctionnement du bus, être utilisées pour la transmission tant de données utiles qu'aussi de données de contrôle, on obtient à l'intégration sur une puce une utilisation extrêmement efficace de la surface de puce prévue pour le bus. Lors de transmissions de données à un grand débit de données, et sans grandes exigences de sécurité, on n'a pas besoin de surface de puce supplémentaire pour des lignes de contrôle inutilisées. Lors de transmissions de données à grandes intensités de données et à petits volumes de données, on peut utiliser avantageusement des lignes de bus déjà présentes, de sorte que dans ce cas aussi on évite des coûts de surface supplémentaires de puce. Dans un mode de réalisation avantageux, pour un grand débit de transmission de données, la transmission de données s'effectue par toutes les lignes mises à disposition dans le bus. On utilise aussi ainsi des lignes pour la transmission de données qui ne transmettraient sinon que des données de contrôle. io Suivant un perfectionnement de l'invention, pour une grande intégrité de données, une partie des lignes de bus est utilisée pour transmettre des données utiles et l'autre partie des lignes de bus pour transmettre des données de contrôle appartenant aux données utiles. On n'a pas besoin ainsi de lignes supplémentaires pour la transmission de données de contrôle; on utilise avantageusement, à cet effet, une partie des lignes d'un bus déjà existant. De préférence, lorsque la transmission de données ayant une grande intégrité de données par le bus, il est prévu des générateurs de données de contrôle pour la production de données de contrôle à partir des données utiles. Les générateurs de contrôle permettent de calculer automatiquement diverses données de contrôle à partir des données utiles et de reconnaître ainsi des modifications de données pendant la transmission par l'intermédiaire du bus. Suivant un perfectionnement, il est prévu un comparateur de données de contrôle qui compare des données de contrôle transmises aux données de contrôle des données utiles transmises. On peut ainsi déterminer l'intégrité des données transmises et, le cas échéant, prendre les mesures nécessaires. Avantageusement, des lignes de bus, qui sont prévues pour la transmission de données de contrôle, sont occupées par un générateur de données de contrôle par des bits, de sorte qu'à chaque transmission par le bus d'un mot correspondant à la largeur du bus, chaque mot a un nombre aussi égal que possible de bits ayant des états hauts et bas. Par le fait que dans chaque mot de données sont transmis autant que possible exactement 16 bits ayant un état haut et un état bas, on rend plus difficile l'espionnage de données par analyse d'un profil de courant, par exemple par une analyse de puissance simple ou différentielle (Differential Power Analysis DPA). Dans un mode de réalisation avantageux, la répartition des lignes de bus entre des lignes de données de contrôle et de données utiles est flexible. Il existe ainsi un grand nombre de possibilités utiles de combinaisons. Les données utiles peuvent être transportées ensemble par un bus de 32 bits en ayant une largeur réduite de mot de données de 24 bits et une signature d'une largeur de 8 bits. L'invention a également pour objet un procédé pour faire io fonctionner un bus de données parallèle, caractérisé en ce qu'après avoir constaté un mode de fonctionnement du bus, on choisit entre une transmission de données ayant un grand débit de transmission de données et une transmission de données ayant une grande intégrité de données. De préférence, le procédé est tel que: - après avoir choisi un mode de fonctionnement du bus, on utilise pour la transmission de données ayant un grand débit de transmission de données toutes les lignes du bus pour transmettre des données utiles; - après avoir choisi un mode de fonctionnement du bus pour transmettre des données ayant une grande intégrité de données, on utilise une partie des lignes du bus pour transmettre des données utiles et on utilise le reste des lignes pour transmettre des données de contrôle qui sont obtenues à partir des données transmises par les autres lignes; - les données de contrôle correspondent à des signatures des données utiles; - les lignes pour des données de contrôle sont occupées par des bits de façon à ce que, pour chaque transmission par le bus d'un mot correspondant à la largeur du bus, chaque mot ait un même nombre de bits ayant des états hauts et des états bas. L'invention sera explicitée d'une manière plus précise dans ce qui 30 suit au moyen d'un exemple de réalisation en se reportant aux dessins dans lesquels: la Figure 1 représente un bus de données parallèle ayant un dispositif de commutation de mode de fonctionnement de bus dans le mode de transmission ayant un grand débit de transmission de données; la Figure 2 représente un bus de données parallèle ayant un dispositif de commutation de mode de fonctionnement du bus dans le mode de transmission ayant une grande intégrité de données; la Figure 3 représente un bus de données parallèle ayant un dispositif de commutation de mode de fonctionnement de bus dans le mode de transmission ayant une grande intégrité de données avec possibilité d'une correction d'erreur; la Figure 4 représente un exemple de réalisation d'un bus de données parallèle ayant un dispositif de commutation de mode de io fonctionnement du bus. La Figure 1 représente un exemple de réalisation d'un bus de données parallèle dans le mode de transmission ayant un grand débit de transmission de données. Les données à transmettre sont reliées par l'entrée 1 de données à l'unité 5 de préparation de données. Les données sont ensuite transmises par les lignes 6 de bus à l'unité 7 de récupération des données et apparaissent à la sortie 2 des données. Le mode de fonctionnement du bus est choisi par le signal 3 de mode de fonctionnement, une logique 4 de contrôle commande l'unité 5 de traitement des données et l'unité 7 de récupération des données en conséquence. Dans le mode de fonctionnement représenté à la Figure 1, les données apparaissant à l'entrée 1 de données sont transmises à un débit de transmission des données aussi grand que possible par les lignes 6 de bus à la sortie 2 des données. On utilise donc toutes les lignes 6 de bus pour le transport de données utiles. Par cycle de transfert, on transporte, respectivement, tout un mot de données avec, respectivement, un bit par ligne de bus. Comme on ne transmet pas de données de contrôle, toute la capacité de transmission du bus est ainsi disponible pour des données utiles. Pour la protection des données, on peut chiffrer les données dans l'unité 5 de préparation des données avant la transmission par les lignes 6 de bus et les déchiffrer ensuite dans l'unité 7 de récupération des données. Un scrambling des lignes de bus, de façon à ce qu'une association des bits sans informations d'arrière-plan ne soit plus possible, est tout aussi bien possible. L'agencement des lignes 6 de bus peut, à cet effet, être échangé dynamiquement ou statiquement par l'unité 4 de contrôle, de l'unité 5 de préparation des données et de l'unité 7 de récupération des données. Une compression des données dans l'unité 5 de préparation des données par procédé habituel de compression et une décompression des données ensuite dans l'unité 7 de récupération des données est également possible. Pour protéger les données d'une manipulation, on peut utiliser, en outre, les mesures mentionnées dans l'introduction comme des capteurs et des Shields. Le mode de fonctionnement du bus ayant un grand débit de transmission de données est approprié pour la transmission de données d'un grand volume et ayant de petites exigences d'intégrité de données ou pas d'exigences à cet égard. Des exemples de données de ce genre seraient, par exemple, des fichiers MP3 ou des images d'une caméra numérique. Pour la io transmission de données clans lesquelles les exigences en matière d'intégrité de données sont très grandes, ce mode de fonctionnement ne convient pas toutefois. La logique 4 de contrôle peut être adaptée par le signal 3 de mode de fonctionnement de façon à commuter le bus parallèle dans le mode de transmission de données ayant une grande intégrité de données. Dans ce mode, on peut alors transmettre de manière sûre, par exemple, des mots de passe ou des clés. Le débit de transmission plus petit dans ce mode de fonctionnement de bus ne devrait pas constituer une grande limitation puisque des mots de passe et des clés ont le plus souvent de petits volumes de données. La Figure 2 représente un bus de données parallèle dans le mode de transmission ayant une grande intégrité de données. L'agencement est analogue à celui représenté à la Figure 1, les mêmes signes de référence désignant donc de mêmes objets. La différence essentielle par rapport à la Figure 1 réside dans le fait que les lignes 6 de bus de la Figure 1 sont utilisées maintenant comme lignes de bus pour des données 6a utiles et comme lignes de bus pour des données 6b de contrôle. Les lignes de bus présentes ne transmettent maintenant plus exclusivement des données utiles, mais aussi les données de contrôle appartenant aux données utiles. La logique 4 de contrôle commande l'unité 5 de préparation de données et l'unité 7 de récupération de données, de sorte qu'en fonction des données de contrôle à transmettre tout le nombre des lignes est subdivisé en lignes pour des données 6a utiles et en lignes pour des données 6b de contrôle. Si l'on choisit, par exemple, pour les données de contrôle un bit de parité, on peut transmettre des données utiles par 31 lignes pour un bus d'une largeur de 32 bits et par une ligne pour le bit de parité. Si l'on utilise un procédé complexe de calcul des données de contrôle et si l'on calcule, par exemple, une somme des contrôles CRC ou une signature MAC, on dispose par la logique 4 de contrôle d'un nombre plus grand adapté aux données de contrôle à transmettre de lignes pour des données de contrôle, de sorte que l'on peut transmettre les données de contrôle simultanément avec les données utiles associées. Dans une autre variante, on divise 32 lignes de bus en 16 lignes pour des données utiles et en 16 lignes pour des données de contrôle. On choisit les données de contrôle de façon à transmettre dans chaque mot de données exactement 16 bits dans un état haut et 16 bits dans un état bas. Si les données utiles sont constituées, par exemple, de 10 bits à l'état haut et de 6 bits à l'état bas, on choisit les données de contrôle de manière à ce qu'elles contiennent 10 bits à l'état bas et 6 bits à l'état haut. Comme on transmet chaque fois un même nombre de bits à l'état haut et à l'état bas, on rend ainsi plus difficile d'espionner les données au moyen de l'analyse d'un profil de courant, par exemple au moyen de DPA (Differential Power Analysis). D'autres possibilités de répartition des lignes 6 de bus en lignes pour des données utiles et pour des données de contrôle sont, bien entendu, possibles. Si l'on a transmis dans ce cas jusqu'ici les données de contrôle en même temps que les données utiles, il est aussi possible de les transmettre séquentiellement, c'est-à-dire de transmettre d'abord les données, par exemple, par bloc et ensuite les données de contrôle associées. On pourrait utiliser aussi les procédés décrits dans la description de la Figure 1 comme le chiffrement, le scrambling ou d'autres mesures pour assurer la sécurité des données en plus ou en combinaison avec les données de contrôle. Dans la répartition donnée jusqu'ici des lignes de bus en lignes pour des données 6a utiles et pour des données 6b de contrôle, on ne peut reconnaître qu'une erreur, mais on ne peut pas effectuer une correction d'erreur. S'il est détecté une falsification ou une erreur de transmission, les données erronées sont, en règle générale, rejetées par le dispositif décrit à la Figure 2 et on invite à retransmettre des données ou on déclenche une alerte. La répartition flexible des lignes 6 de bus par la logique 4 de contrôle ensemble avec l'unité 5 de préparation des données et l'unité 7 de récupération de données permet toutefois aussi une correction d'erreur des données à transmettre comme le montre la Figure 3. À cet effet, les lignes 6 de bus sont subdivisées, par exemple, en trois bus 6x, 6y et 6z parallèles et des données identiques sont transmises par chacun des trois sous-bus 6x, 6y et 6z. Au moyen d'une décision 2 à partir de 3 , on peut déterminer, non seulement avec une grande probabilité, celui des trois sous-bus 6x, 6y et 6z sur lequel les données ont été modifiées, mais aussi décider ensuite ceux des trois sous-bus qui ont des données non modifiées et transmettre alors ces données. Dans une autre variante, les données sont transmises non pas trois fois mais en double, mais, respectivement, ensemble avec des données de contrôle comme décrit à la Figure 2. Des algorithmes de correction d'erreurs, comme par exemple le procédé Reed-Solomon, peuvent être utilisés aussi io pour corriger des erreurs. Dans les Figures 2 et 3, l'unité 5 de préparation de données et l'unité 7 de récupération de données assument plusieurs fonctions. Les données se formant à l'entrée 1 de données sont mémorisées dans un registre et subdivisées en fonction de la largeur de mot des données utiles. Un mot de 32 bits peut être, par exemple, subdivisé en deux sous-mots de 16 bits qui sont ensuite transmis séquentiellement, respectivement, ensemble avec leurs données de contrôle. Afin de pouvoir calculer à partir des sous-mots des données de contrôle, l'unité 5 de préparation de données dispose de multiplexeurs par lesquels on peut choisir ceux des sous-mots qui doivent être acheminés également dans les générateurs de données de contrôle contenus dans l'unité 5 de préparation de données. Le générateur de données de contrôle calcule alors les données de contrôle souhaitées comme par exemple le bit de parité ou une signature. Les données de contrôle sont alors transmises ensemble avec les données utiles par un pilote de bus parallèlement aux lignes 6 de bus. Dans l'unité 7 de récupération de données, les données de contrôle sont comparées aux données de contrôle calculées à partir des données utiles transmises. Si elles sont identiques, on n'a pas détecté d'erreurs de transmission et l'on rassemble à nouveau les sous-mots en un mot que l'on achemine à la sortie 2 de données. Dans le cas où l'on détecte une falsification des données transmises, on peut déclencher une alerte, exiger une nouvelle transmission de données, interrompre une opération ou rejeter des données. La Figure 4 représente un exemple de réalisation dans lequel 35 l'unité 5 de préparation de données et l'unité 7 de récupération de données sont représentées en détail. Dans l'exemple, il est transmis un mot de i0 données d'une largeur de 32 bits, 16 bits pour des données utiles et 16 bits pour des données de contrôle étant utilisés pour une transmission de données ayant une grande intégrité. Bien entendu, on pourrait utiliser aussi d'autres largeurs de mot de données et une autre répartition des lignes 6 entre des données utiles et des données de contrôle. Il est aussi possible, sans autres difficultés, d'utiliser encore des éléments de chiffrement ou de brouillage des lignes 6 de bus et de compression de données; mais par souci de clarté, cela n'a pas été représenté tout comme la logique 4 de contrôle. On décrit tout d'abord au moyen de la Figure 4 le mode de io fonctionnement du bus ayant un grand débit de transmission des données. Un mot d'une largeur de 32 bits est subdivisé en des sous-mots Dl et D2 de 16 bits et est mémorisé intermédiairement dans le registre R1. La logique 4 de commande commande les multiplexeurs M1 et M2 de façon à ce que le sous-mot Dl soit transmis par M1 et le sous-mot D2 par M2 au pilote B de bus. Le is mot de données initial de 32 bits est ainsi transmis sans modification par les lignes 6 de bus à l'unité 7 de récupération de données et y est mémorisé intermédiairement dans le registre R2. Le demi-mot D2 est acheminé par le multiplexeur M3 au registre R3 et le mot de données initial de 32 bits constitué des sous- mots Dl et D2 est émis à la sortie 2 de données. II ne se produit pas de calcul de données de contrôle et des erreurs de transmission ne peuvent donc pas être détectées. Mais comme toutes les lignes 6 sont utilisées pour la transmission de données, un grand débit de transmission de données est possible. On décrit maintenant la transmission de données dans le mode de fonctionnement du bus ayant une grande intégrité de données. Le mot de données de 32 bits est mémorisé intermédiairement à nouveau dans le registre R1. La transmission du mot Dl de données de gauche, ensemble avec les données de contrôle associées, et du mot D2 de données de droite avec les données de contrôle associées a lieu séquentiellement. Si les données ne sont pas lors de la transmission par les lignes 6 de bus modifiées par falsification ou par erreur de transmission de données, les demi-mots D1 et D2 sont rassemblés à nouveau dans le registre R3 en un mot de 32 bits et sont émis à la sortie 2 de données. On décrira maintenant d'une manière détaillée au moyen de la 35 Figure 4 les divers stades de la transmission de données dans le mode de fonctionnement du bus ayant une grande intégrité de données. Tout d'abord 2873468 Il le mot Dl de données de gauche est transmis par le multiplexeur M1 et une copie en est transmise au générateur S1 de données de contrôle. Les données de contrôle calculées sont acheminées plus loin par le multiplexeur M2, de sorte qu'il y a dans le pilote de bus ayant le registre B le demi-mot Dl de données et les données de contrôle appartenant au demi-mot Dl de données. Après la transmission par les lignes 6 de bus, il est calculé dans l'unité 7 de récupération de données à nouveau la signature du demi-mot Dl de gauche dans un deuxième générateur S2 de données de contrôle et elle est comparée dans un comparateur S de données de contrôle aux données de contrôle transmises. Si les données de contrôle sont différentes, il est émis une erreur ou il est déclenché une alerte. Par le multiplexeur M3, on peut alors écrire soit le demi-mot Dl soit les données de contrôle associées dans la moitié droite du registre R3. Ce qui est mémorisé dans la moitié de mot à droite du registre R3 à cet instant est sans importance puisque le contenu sera écrasé ultérieurement. L'important est qu'il est mémorisé dans le demimot de gauche par le registre R3 le demi-mot Dl de gauche d'origine. Dans un deuxième stade, le demi-mot D2 de droite du mot de données d'origine est acheminé depuis le registre R1 par l'intermédiaire du multiplexeur M1. Une copie en est envoyée à nouveau au générateur S1 de données de contrôle et par le multiplexeur M2 est envoyée au pilote B de bus. Dans le pilote B de bus se trouvent maintenant les données D2 et les données de contrôle associées. Les données sont transmises à nouveau par les lignes 6 de bus à l'unité 7 de récupération des données et sont mémorisées dans le registre R2. À partir du contenu du registre de gauche, il est alors produit à nouveau les données de contrôle dans un autre générateur S2 de contrôle et ces données sont comparées dans le comparateur S de données de contrôle aux données de contrôle transmises de D2. Si elles sont identiques, elles sont acheminées plus loin, sinon une indication d'erreur est déclenchée. La moitié gauche du registre R3 est bloquée pour des accès en écriture puisqu'elle contient déjà la moitié de mot D1 de gauche des données d'origine. La moitié de mot D2 de droite des données d'origine est mémorisée par le multiplexeur M3 dans la moitié de mot droite du registre R3, de sorte qu'il y a maintenant dans le registre R3 les deux moitiés de mot D1 et D2 qui peuvent être émises à la sortie 2 de données. Au lieu de la moitié gauche du registre après le premier stade pour des accès en écriture, on peut aussi mémoriser le mot de données Dl de gauche d'origine dans une autre mémoire et le rassembler ultérieurement avec le demi-mot D2 de droite en un mot de données de 32 bits. La logique 4 de contrôle non représentée commande les registres R1, R2 et R3, le pilote B de bus et les multiplexeurs M1, M2 et M3, de sorte que, suivant le mode de fonctionnement du bus, les données ayant un grand débit de transmission de données ou ayant une grande intégrité de données sont transmises. La répartition des lignes de données en lignes de lo données utiles et en lignes de données de contrôle correspond au type des données de contrôle, comme par exemple pas de données de contrôle, bit de parité, CRC ou signature, et est prescrite par le signal 3 de mode de fonctionnement et est inversée par la logique 4 de contrôle. La logique 4de contrôle commande, en outre, les divers stades décrits ci-dessus de la transmission de données et fixe leur déroulement dans le temps. ÉNUMÉRATION DES SIGNES DE RÉFÉRENCE Entrée de données Sortie de données Signal de mode de fonctionnement Logique de commande Unité de préparation de données Lignes de bus Données utiles Données de contrôle Données pour une décision 2 à partir de 3 Unité de récupération de données Pilote de bus avec registre Mot de données de gauche Mot de données de droite Multiplexeur Registre Comparateur de données de contrôle Générateur de données de contrôle 1 2 3 4 5 6 6a 6b 6x, 6y, 6z 7 B Dl D2 a M1, M2, M3 R1, R2, R3 S S1, S2 REVENDICATIONS 1. Bus de données parallèle comprenant un certain nombre de lignes de données, caractérisé par un dispositif de commutation de modes de fonctionnement du bus, qui commute entre une transmission de données ayant un grand débit de transmission de données et une transmission de données ayant une grande intégrité de données. 2. Bus de données parallèle suivant la revendication 1, caractérisé en ce que, pour un grand débit de transmission de données, la transmission de données s'effectue par toutes les lignes (6) mises à disposition dans le bus. 3. Bus de données parallèle suivant la revendication 1, caractérisé en ce que pour une grande intégrité de données, une partie des lignes (6a) de bus est utilisée pour transmettre des données utiles et l'autre partie des lignes (6b) de bus pour transmettre des données de contrôle appartenant aux données utiles. 4. Bus de données parallèle suivant la revendication 1 ou 3, caractérisé en ce que, lorsque la transmission de données ayant une grande intégrité de données par le bus, il est prévu des générateurs (Si, S2) de données de contrôle pour la production de données de contrôle à partir des données utiles. 5. Bus de données parallèle suivant la revendication 4, caractérisé en ce qu'il est prévu un comparateur (S) de données de contrôle qui compare des données de contrôle transmises aux données de contrôle des données utiles transmises. 6. Bus de données parallèle suivant la revendication 4 ou 5, caractérisé en ce que des lignes (6b) de bus, qui sont prévues pour la transmission de données de contrôle, sont occupées par un générateur (Si) de données de contrôle par des bits, de sorte qu'à chaque transmission par le bus d'un mot correspondant à la largeur du bus, chaque mot a un nombre aussi égal que possible de bits ayant des états hauts et bas. 7. Bus de données parallèle suivant l'une des revendications précédentes, caractérisé en ce que la répartition des lignes (6) de bus entre des lignes de données (6b) de contrôle et de données (6a) utiles est flexible. 8. Procédé pour faire fonctionner un bus de données parallèle, caractérisé en ce qu'après avoir constaté un mode de fonctionnement du bus, on choisit entre une transmission de données ayant un grand débit de transmission de données et une transmission de données ayant une grande intégrité de données. 9. Procédé suivant la revendication 8, caractérisé en ce qu'après lo avoir choisi un mode de fonctionnement du bus, on utilise pour la transmission de données ayant un grand débit de transmission de données toutes les lignes (6) du bus pour transmettre des données utiles. 10. Procédé suivant la revendication 8, caractérisé en ce qu'après avoir choisi un mode de fonctionnement du bus pour transmettre des données ayant une grande intégrité de données, on utilise une partie des lignes du bus (6a) pour transmettre des données utiles et on utilise le reste des lignes (6b) pour transmettre des données de contrôle qui sont obtenues à partir des données transmises par les autres lignes. 11. Procédé suivant l'une des revendications 8 à 10, caractérisé en 20 ce que les données de contrôle correspondent à des signatures des données utiles. 12. Procédé suivant la revendication 10, caractérisé en ce que les lignes pour des données (6b) de contrôle sont occupées par des bits de façon à ce que, pour chaque transmission par le bus d'un mot correspondant à la largeur du bus, chaque mot ait un même nombre de bits ayant des états hauts et des états bas.