FR 2573888 A1 19860530 FR 8417932 A 19841123 SYSTEME POUR LA TRANSMISSION SIMULTANEE DE BLOCS DE DONNEES OU DE VECTEURS ENTRE UNE MEMOIRE ET UNE OU PLUSIEURS UNITES DE TRAITEMENT DE DONNEES La présente invention concerne un système pour la transmission simultanée de blocs de données ou de vecteurs entre une mémoire et une ou plusieurs unités de traitement de données. Elle concerne plus particulièrement les systèmes dans lesquels les unités de traitement de données fonctionnent et exécutent des program- mes de façon asynchrone les unes par rapport aux autres. Dans les systèmes connus, la communication des données entre plusieurs unités de traitement fonctionnant en parallèle pour exécuter le même programme ou des programmes différents revêt plusieurs formes qui peuvent être regroupées suivant deux modes de fonctionnement différents. Selon un premier mode appelé mode de SIMD qui est l'abrévia- tion de la désignation anglo-saxonne "Single Instruction, Multiple Data Stream" les échanges de données se font en mode synchrone, une seule instruction cadençant tous les processeurs élémentaires. L'accroissement des performances est obtenu en faisant excécuter par un nombre élevé d'unités de traitement la même instruction de sorte qu'il est possible avec les machines réalisées suivant le mode SIMD de travailler non plus sur des scalaires mais sur des vecteurs ou tableaux de données, une seule instruction pouvant par exemple réaliser des opérations sur des suites de nombres appartenant à un tableau. - Selon un deuxième mode appelé mode MIMD qui est l'abréviation du terme anglo-saxon "Multiple Instruction, Multiple Data Stream" l'ac- croissement des performances est obtenu en faisant exécuter plusieurs instructions appartenant à des programmes différents par des unités de traitement différentes, ces instructions étant exécutées simultanément et opérant sur des données différentes. Les systèmes opérant en mode MIMD présentent toutefois de nombreuses difficultés de réalisations qui se situent au niveau du règlement des conflits d'accès aux données partagées entre l'ensemble des unités de traitement, au niveau de la gestion efficace des ressources, des mécanismes de synchronisation à mettre en oeuvre, et au niveau de la gestion des tâches de traitement concurrentes. Ces difficultés conduisent naturellement à une baisse sensible des perfor- mances. Si, a priori les deux modes de réalisation SIMD et MIMD peuvent paraître complémentaires l'opposition entre ces deux techniques fait apparaître une contradiction entre la possibilité qu'offre le premier système d'augmenter le débit des données et celle offerte par le deuxième système qui permet de rendre maximal le nombre d'instructions exécu- tables. En effet un système MIMD permettrait de retirer le plus grand profit du parallèlisme d'exécution d'un programme s'il n'existait pas de conflits entre les accès à la mémoire commune partagée par les unités de traitement. En revanche les systèmes SIMD qui apparaissent plus rigides au niveau de l'enchaînement des instructions, car seules les opérations identiques peuvent être exécutées simultanément, tirent profit de cette contrainte apparente pour paralléliser avec plus d'efficacité l'accès aux données. Lebut de l'invention est de limiter les inconvénients précités. Elle permet notamment d'éviter les conflits d'accès mémoire dans une organi- sation MIMD dans laquelle chaque processeur pourrait fonctionner en mode SIMD. A cet effet, l'invention a pour objet, un système pour la transmis- sion simultanée de blocs de données ou de vecteurs entre une mémoire et une ou plusieurs unités de traitement de données dans lequel les unités de traitement de données fonctionnent de façon asynchrone les unes par rapport aux autres, caractérisé en ce que la mémoire est composée d'un nombre entier N de bancs logiques de mémorisation comportant chacun un nombre entier n quelconque de bancs physiques de q emplacements de mémorisation, le système comprenant un réseau d'interconnexion interpo- sé entre la mémoire et les unités pour établir des connexions entre les bancs de la mémoire et les unités de traitement, un dispositif logique de commande pour commander les chemins de connexion dans le réseau de connexion ainsi qu'un ou plusieurs dispositifs logiques d'adressage com- mandés respectivement par une unité de traitement de données pour effectuer l'adressage des emplacements de la mémoire auquelle chaque unité demande accès et exécuter le transfert par blocs des données contenues dans les emplacements correspondant, les N.n bancs physiques de la mémoire sont juxtaposés et numérotés dans l'ordre des entiers naturels O,...[(N.n)-il pour former une base matricielle ordonnée d'em- placements de mémorisation chaque emplacement de mémorisation dans un banc physique étant à la croisée d'une ligne et d'une colonne de la base matricielle et étant également numérotée sur chaque ligne dans l'ordre croissant des entiers naturels depuis l'emplacement de début de lignes contenu dans le premier banc physique O de la mémoire jusqu'à l'emplace- ment de fin de lignes contenu dans le dernier banc physique lN.n)-j de la mémoire, tous les emplacements de début de ligne de la mémoire étant situés à l'intérieur d'un premier banc physique, chaque dispositif logique d'adressage comprenant des moyens pour déterminer l'adresse du banc physique dans lequel se trouve chaque emplacement en calculant l'adresse modulo (N.n) de son banc physique à partir de son numéro d'ordre dans la mémoire, le dispositif logique de commande comprenant des moyens pour établir une connexion d'une unité de traitement demanderesse sur le banc logique contenant Padresse du début du bloc de données à transférer et des moyens de commutation pour commuter successivement l'unité demanderesse sur les bancs logiques suivants à la fin de chaque transfert de données entre un banc logique de la mémoire et l'unité de traitement de données. La présente invention a pour avantage qu'elle permet d'établir la connexions de toutes les unités de traitement simultanément et sans conflit. Une fois la connexion d'unité de traitement établie le transfert de tout un bloc de données ou vecteur se poursuit sans interruption jusqu'au transfert de la dernière donnée du bloc ou du vecteur. Egalement l'agencement du système selon l'invention a pour avantage de rendre maximale lutilisation de tous les bancs physiques de la mémoire ce qui permet de faire travailler le réseau d'interconnexion avec un débit constant de données. D'autres caractéristiques et avantages de l'invention apparaîtront également à l'aide de la description qui va suivre faite en regard des dessins annexés qui représentent: - la figure I un schéma de principe de réalisation du système de transmission de données selon l'invention. La figure 2 un tableau montrant un exemple d'organisation d'une mémoire de 25 bancs physiques répartis également à l'intérieur de 5 bancs logiques et illustant le principe d'extraction des données de la mémoire selon l'invention. La figure 3 un schéma illustrant le principe d'interconnexion des unités de traitement sur les bancs logiques. La figure 4 représente un exemple de réalisation d'un processeur d'adressage selon l'invention. La figure 5 un exemple de réalisation de la logique de commande. La figure 6 un schéma illustrant sous forme de tableaux le principe de réarrangement de données dans une mémoire tampon du dispositif de réarrangement. La figure 7 un schéma de réalisation d'un dispositif de réarrange- ment des données. Les figures 8A et 8B des schémas de réalisation du dispositif d'adressage et de commande des mémoires tampons d'un dispositif de réarrangement. Le système de transmission de données représenté à la figure 1 comprend une mémoire 1, représentée à l'intérieur d'une ligne fermée en pointillés qui est découpée en N bancs logiques BL0, BL1....BLn_2, BLn_1 représentée à l'intérieur de rectangles notés respectivement de 1o à 1N_ Le système représenté comprend également un ensemble de P+1 unités de traitement de données notées respectivement PCU0, PCUI etc... PCUp 1 et PCUp représentés à l'intérieur de rectangles portant respectivement les références de 20, 21,... 2p_1, 2p. Un réseau d'interconnexion 3 établit les connexions entre les unités de traitement 20 à 2p et les bancs logiques à IN 1 Le réseau d'interconnexion 3 est commandé à partir d'une logique de commande 4. Des processeurs d'adresse notés respectivement PAO, PA1 etc...PAp1, PAp et portant les références 50 à 5p sont reliés aux entrées d'adressage de la mémoire I pour permettre le calcul de l'adresse de chaque élément à extraire dans les bancs de la mémoire 1. Des dispositifs de réarrangement des données extraites désignées respec- tivement par COMI0, COMI1 etc...COMIp_1, COMIp à l'intérieur de rectangles numérotés de 60 à 6 sont interposés entre le réseau d'inter- p connexion 3 et les unités de traitement PCU0, PCU1 à PCU pour réarranger les données extraites de la mémoire 1 dans l'ordre o elles étaient enregistrées dans la mémoire 1. Selon l'invention le découpage de la mémoire I en bancs logiques permet d'obtenir le parallélisme d'accès de toutes les unités de traitement aux bancs de mémorisation de la mémoire, ce parallélisme est obtenu grâce au réseau d'interconnexion qui connecte à un instant donné chaque banc logique à une seule unité de traitement. Chaque banc logique peut toutefois contenir un nombre n de bancs physiques "pipe-lines" ce qui permet à chaque banc logique de ranger n mots o données consécutifs à l'intérieur de ces n bancs physiques. Un exemple de partage d'un espace mémoire en bancs physiques et bancs logiques est représenté à la figure 2. L'espace de la mémoire I qui est représenté sur la figure 2 sous la forme d'une matrice de 25 x q emplacements de mémorisation placés aux intersections de 25 colonnes et de q lignes L0 à Lql, est matérialisé par bancs physiques de q emplacements de mémoire juxtaposés. Chaque ligne comporte 25 emplacements de mémoire numérotés dans l'ordre d'une progression arithmétique de raison 1, le numéro de chaque emplacement marquant le début d'une ligne étant obtenu à partir du dernier numéro de l'emplacement marquant la fin de la ligne précédente augmenté de une unité. La ligne L0 contient les emplacements numérotés de 0 à 24, la ligne L! qui suit, contient les emplacements numérotés de 25 à 49 etc... et la dernière ligne Lq_1 contient les emplacements numérotés de 25(q-1) à 25 q-l. Pour illustrer un mode de fonctionnement du système de transmis- sion de données selon l'invention, on supposera à rl'aide de la figure 2 qu'à un instant donné, une unité de traitement souhaite extraire de l'espace mémoire tous les "articles" ou "données" contenus dans les emplacements de la mémoire dont les numéros sont des multiples de 7 en commençant par l'article ou la donnée de n 0. Dans cette hypothèse l'unité de traitement doit d'abord se connecter sur le banc BL,0 là o se trouve le premier article de n 0 puis successivement sur les bancs logiques suivants BL1 à BL4 pour extraire tous les articles multiples de 7 dont les numéros sont représentés entourés d'un petit cercle sur la figure 2. Durant cette première lecture des bancs logiques BL0 à BL4, l'unité de traitement va extraire, dans l'ordre, les premiers éléments ou articles fournis par chaque banc physique, soit la suite des articles ou données correspondant aux emplacements numérotés 0, 126, 77, 28...154, 98 et 49. A la fin de cette première lecture l'unité de traitement quitte le banc logique BL4 pour retourner par permutation circulaire à une nouvelle lecture du banc logique BL0 puis successivement sur les bancs logiques BL1, BL2, BL3 et BL4 pour extraire durant ce deuxième tour, les articles ou données situés aux emplacements numérotés 175, 301, 252, 203, 329, 273 et 224. Plusieurs lectures des bancs logiques peuvent ainsi être exécutées selon le principe précédemment décrit, par une seule unité de traitement tant que l'ensemble des données ou des articles composant le vecteur ou le bloc de données n'a pas été entièrement transféré. Dans l'exemple qui vient d'être décrit le vecteur extrait de la mémoire est composé par une suite de vecteurs ou scalaires dont la suite des adresses en mémoire suit une progression arithmétique vérifiant la relation Ak=Ao +kR (1) dans laquelle Ak, Ao, k et R désignent respectivement radresse du keme article ou de la kedonnée à l'intérieur du vecteur, Ao l'adresse de début du premier article ou de la première donnée du vecteur, k le rang ou le numéro d'ordre de l'article ou de la donnée dans le vecteur et R la raison. En utilisant ce même principe d'adressage, d'autres vecteurs pourront ainsi être extraits de la mémoire par d'autres unités de traitement travaillant en simultanéité sur des bancs logiques différents. Ces vecteurs seront définis par des adresses de début différentes et des raisons différentes. Des exemples d'interconnexion de plusieurs unités de traitement sur plusieurs bancs logiques sont représentés schématiquement à la figure 3 qui montre des exemples de chemin de connexion établis par un réseau de connexion capable de connecter plusieurs unité de traitement référen- cées respectivement par les lettres A, B, C, D, E, F, G indifféremment sur 7 bancs logiques d'une mémoire notée respectivement 0, 1, 2, 3, 4, 5 et 6. Dans la configuration 7 les unités de traitement A et C sont connectées au temps to respectivement sur les bancs logiques 0 et 3. Au temps t1 suivant, correspondant à la configuration 8, l'unité de traitement B demande l'accès au banc logique 0 pendant que l'unité de traitement A est connectée au banc logique 1 et l'unité de traitement C est connectée au banc logique suivant 4. Au temps t2 suivant, correspondant à la configura- tion 9, l'accès de l'unité de traitement au banc logique 0 est accordé, les unités de traitement A et C sont respectivement connectées aux bancs logiques 2 et 4 suivant, et l'unité de traitement D fait une demande d'accès au banc logique 3. Au temps t3 correspondant à la configuration , les unités de traitement A, 15 et C sont respectivement connectés sur les bancs logiques 3, 1 et 6 mais l'exécution de la connexion de l'unité D au banc logique 3 est différée car le banc logique 3 se trouve être occupé à l'extraction des données contenues dans son banc par l'unité de traite- ment A. Au temps t4, correspondant à la configuration Il suivante, la connexion de l'unité de traitement D sur le banc 3 est accordée du fait de la libération du banc logique 3 par l'unité A qui se trouve connectée à cet instant sur le banc logique 4 suivant. Ainsi de suite, à chaque nouvel instant de commutation, l'ensemble des unités de traitement déjà connec- tées sur un banc logique sont connectées respectivement sur le banc logique suivant à la manière "d'un tourniquet" à partir d'un premier banc logique désigné par elle, et l'accès n'est accordé que si le banc logique qu'elle demande est libre. Une fois le transfert des données effectué, l'unité de traitement concernée par ce transfert se déconnecte. Pour éviter les conflits d'accès qui peuvent se produire, la logique de com- mande 4 gère toutes les demandes d'accès émanant de chaque unité de traitement en veillant à ce que les règles d'accès d'une unité de traitement dans "le tourniquet" soient respectées. En particulier, dans le système selon l'invention, une première règle d'accès consiste à considérer qu'une unité de traitement déjà engagée dans le "tourniquet" est nécessai- rement prioritaire sur le banc logique qu'elle occupe par rapport à d'autres unités voulant entrer dans le tourniquet par le même banc logique. Une deuxième règle d'accès consiste lorsque au moins deux unités de traitement veulent avoir accès à un même banc logique à accorder cet accès en premier à Pl'unité la plus prioritaire, en définissant naturellement la forme que devra revêtir cette priorité pour chaque configuration particulière du système. Et enfin, une troisième règle d'accès consiste à satisfaire les demandes d'accès qui ne sont pas conflictuelles simultanément. L'utilisation de ces règles à d'autres configurations d'accès est illustrée à la figure 3 à l'aide des exemples de configurations 12 à 21 des réseaux d'interconnexion, et leur représentation est supposée suffisam- ment explicite pour qu'il ne soit pas nécessaire de les décrire avec plus de détails. Comme la mémoire est organisée en bancs physiques juxtaposés qui confèrent à celle-ci une structure matricielle o chaque emplacement de mémoire ne peut être repéré ou adressé qu'au croisement d'une ligne et d'une colonne de la matrice et comme dans le système d'adressage par bloc utilisé par l'invention, les emplacements de mémoire contenant les données ou articles de chaque vecteur ou bloc de données ne sont connus que par des adresses vérifiant une progression arithmétique d'adresse d'emplacements de mémoire situés le long de chaque ligne de la mémoire, chaque processeur d'adresse 5O à 5 du système de transmission selon op l'invention à la charge de convertir les adresses en progression arithmétri- que des vecteurs connus par chaque unité de traitement, en une adresse désignant pour chaque donnée ou article à extraire le banc physique qui la contient et son emplacement dans le banc physique. En se référant de nouveau à la structure de l'espace mémoire représenté à la figure 2, il apparait que l'opération de transformation qui permet de connaître dans quel banc se trouve un article ou une donnée connu par son numéro d'emplacement dans la mémoire est une opération qui est le modulo arithmétrique du nombre de bancs physiques contenus de la mémoire. Ainsi sur la figure 2, pour l'élément 147, l'opération 147 mod 25 a pour résultat 22 (22 étant le reste de la division du nombre 147 par le nombre 25) et le nombre 22 correspond au numéro du banc physique dans lequel se trouve rélément 147. Pour obtenir l'adresse de cet élément dans le banc il suffit d'effectuer la division entière du nombre 147 par 25 ce qui donne le quotient 5, et qui correspond, par exemple, au nombre de balayages des bancs logiques BL0 à BL4 qu'il a fallu effectuer pour ranger l'élément 147 dans la mémoire et aussi sur la figure 2 à la ligne 5 de la mémoire. Le rôle par conséquent important de chaque processeur d'adresse est d'effectuer à chaque nouvelle extraction de données ou d'articles en mémoire la division rapide du numéro du premier article ou de la première donnée par le modulo du nombre de bancs physiques. Une seule division apparaît nécessaire à l'initialisation de l'extraction car dans la suite de simples additions suffisent pour l'extraction des données ou articles suivant. En effet, en désignant par x et y les numéros de deux éléments ou articles à extraire d'un même vecteur ou bloc, et en supposant qu'ils sont rangés dans le même banc physique d'une mémoire à 25 bancs physiques, ces numéros vérifient les relations xmod25 = y mod25 (2) soit x-y = a.25 (3) a étant un entier naturel positif. Comme ces éléments ou attributs appartiennent aussi à la même famille d'éléments à extraire ils vérifient aussi la relation x - y = b.7 (4) o b est aussi un entier naturel positif. Par conséquent a= 7b (5) comme 25 et 7 sont premiers entre eux ils vérifient les relations a= 7c (6) et b = 25c (7) c étant aussi un entier naturel positif. Par conséquent, si un jeme élément à extraire est dans un banc i à l'adresse aj on peut dire que le (j+b)eme élément est aussi dans le banc i à l'adresse aj+a. Ainsi par exemple, le 2eme élément à extraire de numéro 7 eme sur la figure 2 est à l'adresse O et le 2+25x1=27ee éléments (numéro 189) est aussi dans le banc 7 à l'adresse 0+7x1=7 en considérant ici que c = I aj=Oa=7 etB=25. Le principe d'adressage qui vient d'être décrit dans le cas d'une mémoire à deux dimensions du type de celle représentée à la figure 2 peut naturellement être étendu à une mémoire à trois dimensions. Dans lPun ou l'autre de ces cas les migrations d'adresse d'article à extraire sont toujours déterminés par la relation AK = A1 + K.R, AK étant l'adresse du keme élément transféré A1 étant Padresse initiale de transfert et R la raison de la suite AK. Dans le cas par exemple, d'une extraction de ligne à partir d'une adresse de départ A1 dans un tableau à deux dimensions la migration d'adresse est réalisée par le transfert des éléments d'adresses AK = A1 +k.I I étant la taille d'une colonne du tableau. Dans le cas d'un tableau à trois dimensions de taille I x 3 x K la migration d'une ligne se traduira par une suite d'adresse AK = A1 + k.(3. K) et dans ce cas la raison sera égale à R = 3.K. Pour extraire un plan A d'un tableau à 3 dimensions représenté par rapport à des directions orthonormées i, j, k, et définies par A(1:1, 1:3, 1:K) si le plan A est parallèle à deux directions i, j orthonormées et a pour coordonnées A(id:if, id:jf, k) l'opération revient à extraire les suites des éléments contigus de ce plan de raison R = I séparées par des sauts de taille I-(if-id). Par contre, si le plan A est parallèle aux directions (i, k) et a pour coordonnées A(id:if, j, kd:kf) l'opération d'extraction revient à extraire les suites d'éléments de raison R = 1, séparées par des sauts d'amplitude I-(if-id)=3.I. Pour réaliser ces migrations il faut donc dans ces cas, déterminer les suites d'adresse avec raison, la raison étant identique pour toutes les suites d'une migration, les amplitudes des sauts et les adresses A1 de départ dans chaque série. Le procédé consiste alors à découper chaque migration complète en sous-ensembles traités de manière identique. Pour chaque sous-ensemble traité un calcul est effectué pour connaître le numéro du banc physique sur lequel commence la migration, l'adresse de début de transfert pour chaque banc physique, et le pas d'adressage entre deux accès consécutifs sur le même banc. A partir du numéro de banc physique de début de transfert et du pas d'adressage un calcul permet également de déterminer l'adresse du début sur chaque banc, soit Adx, ce calcul se faisant en local sur chaque banc par un processeur d'adresse. Chaque processeur cd'adresse relié à chaque banc logique satisfait la requête de migration de manière autonome avec des synchronisations en début de chaque sous-ensemble, s'il y en a. Du côté des unités de traitement les données extraites doivent être ensuite échangées dans l'ordre logique d'organisation des tableaux extraits de la mémoire. Quel que soit le cas d'extraction une migration commence toujours par l'exécu- tion, par l'unité de traitement effectuant cette migration, d'une phase préliminaire de découpage de la requête en sous-ensemble SE. d'éléments d'adresse définis par une relation de la forme SEi = EAK, KE [,Kmaxj; AK = A1 + KRj. Dans cette phase l'unité de traitement détermine la raison R, le nombre Kmax et l'amplitude a des sauts entre deux sous- ensembles consécutifs SEiet SEi+1 L'amplitude des sauts a étant définie par la relation a = (A1)SF-- (AKmax)sE) SEi+î SE1 Ensuite, pour chaque sousensemble SEi la migration est décomposée en trois phases distinctes, une phase d'initialisation (I), un phase de transfert (T) et une phase d'ordonnancement (0). Selon le sens du transfert ces phases n'ont pas lieu dans le même ordre. Pour une migration de la mémoire 1 vers une unité de traitement elles ont lieu dans l'ordre (I)-(T) - (0) et pour une migration dans le sens unité de traitement vers la mémoire 1 elles ont lieu dans le sens (I)-(0)-(T). L'initialisation correspond au calcul de radresse de début de transfert et de la raison pour chaque banc physique. L'ordonnancement correspond à la transformation ordre logique des indices ordre physique dans une tranche de mémoire. La phase d'initialisation consiste à calculer sur chaque banc physique l'adresse de début Adx de la migration ou du transfert. En désignant par Adb l'adresse de début de la migration définie par un mot d'adresse de banc physique Bdb et par abd l'adresse d'un mot dans le banc et par R la raison d'adressage des bancs concernés par la migration avec R = p.b+s, s désignant le déplacement en banc physique et p le déplace- ment dans un banc, un premier calcul est effectué pour connaître le premier commun multiple de la raison R et du nombre de bancs D. Si P désigne le plus petit commun multiple PPCM) obtenu, le nombre P se trouve lié par la raison R et au nombre b par les relations P = J.R = K.b 3 donne le nombre de bancs concernés par la migration et k donne le pas d'adressage sur un banc. Suivant que la raison R est un multiple du nombre de bancs logiques BL, du nombre de bancs physiques par banc logique BP ou du nombre total de bancs physiques B, 3 pourra prendre l'une des trois valeurs 3 = bl, j =p ou 3 = 1. Dans tous ces cas le débit de la migration diminuera d'un facteur b Si par contre R et b sont des nombres premiers alors 3 = b et le débit est nominal et s'effectue par tranche de b éléments, K étant dans ce cas égal à R. Dans ces conditions un banc X est concerné si la relation suivante [(Bdb - X).3J modulo b = 0 L'adresse de début du transfert Adx dans le banc physique X concerné est ensuite calculé en exécutant l'addition Adx = Adb + k. + (K.s)/b avec k = [(X - Bdb).s il modulo b. Un exemple de réalisation d'un processeur d'adresse permettant le calcul de l'adresse du début d'un transfert ou d'une migration est décrit ci- après à l'aide du schéma représenté à la figure 4. Le processeur d'adresse représenté à la figure 4 comprend deux mémoires mortes programmables 22, 23, un circuit multiplieur 24, un opérateur modulo b 25, un circuit- additionneur modulo b 26, deux circuits multiplieurs 27, 29, trois circuits additionneurs 28, 30, 32 et un circuit diviseur 31. L'ensemble constitué par les deux mémoires mortes programmables 22 et 23 et les circuits 24 à 26 exécutent le calcul des numéros d'ordre logique k de l'élement d'adresse Adx sur le banc physique X. La mémoire morte 22 est adressée par le mot d'adresse Bdb et contient une table des différences X - Bdb. La mémoire morte 23 contient une table des inverses des déplacements s en bancs physiques et est adressée par le mot de déplacement s. Le circuit multiplieur 24 exécute 'opération (X - Bdb).s 1 et l'opérateur modulo b , couplé entre la sortie du circuit multiplieur 24 et une entrée d'opérande du circuit additionneur 26, réalise Popération modulo b pour obtenir le numéro d'ordre logique k de l'élément sur le banc physique X. Les circuits 27, 28, 29, 30, 31 et 32 réalisent la fonction [(Bdb + ks)/b] + kp + Adb pour engendrer à la sortie du circuit 32 l'adresse Adx recherchée. Pour mettre en oeuvre le processus d'adressage exécuté par chacun des processeurs d'adresse, la logique de commande 48 place au préalable les commutateurs du réseau d'interconnexion sur les chemins demandés par les unités de traitement. Le rôle de la logique de commande 4 est d'assurer à chaque unité demanderesse l'accès à la mémoire I d'une part, sur le banclogique de départ auquel elle veut accéder et d'autre part, sur les bancslogiques suivants selon le principe du "tourniquet" exposé précédemment pour effectuer la migration d'adresse qu'elle sou- haite réaliser. La logique de commande qui est représentée à la figure 5 permet de gérer toutes les demandes des unités de traitement de manière à éviter les conflits d'accès et son fonctionnement obéit aux trois règles d'accès précédemment énoncées. La logique de commande représentée à la figure comprend une logique de décodage 34 représentée à l'intérieur d'une ligne fermée en pointillés comprenant un registre tampon 35 couplé par ses sorties à un décodeur de demandes 36, à une bascule d'accusé de réception 37 et à un compteur modulo le nombre de bancs logiques 38. la logique de décodage 34 comprend également un décodeur du numéro du banc logique en liaison 39. Le décodeur de demande 36 est relié par ses sorties numérotées de 0 à 6 aux entrées respectives de 6 codeurs de priorité portant respectivement les références 400 à 406. Les codeurs de priorité 400 à 406 sont connectés respectivement par leurs sorties aux entrées d'un décodeur de priorité noté respectivement 410 et 416 chacune des sorties des décodeurs de priorité 410 étant connectée aux entrées crd'un circuit OU logique des bancs occupés 42. Egalement le décodeur du numéro de banc en liaison 39 est connecté par ses sorties à des entrées respectives d'un circuit OU logique de demandes retenues 43. Bien que I'exemple de réalisation de la figure 5 ne fasse apparaître qu'une seule logique de décodage 34 couplée par le registre tampon 31 à une unité de traitement notée PCUA, on comprendra naturellement que d'autres logi- ques de décodage du type de celle qui vient d'être décrite seront nécessaire pour connecter à la logique de commande 4 à chacune des autres unités, PCUB à PCUD par exemple, du système de transmission selon l'invention. Le fonctionnement de la logique de commande représen- té à la figure 5 est le suivant. L'unité de traitement PCUA qui est couplée à la logique de décodage 34 dépose chaque demande d'accès à un banc logique de départ de la mémoire I dans le registre tampon 35. Cette demande contient le numéro du banc logique de départ qui dans la configuration de la figure 5 est codé de façon à permettre l'adressage de 7 bancs logiques, cette demande contient également un bit indiquant le sens du transfert des données ou des articles entre la mémoire 1 et l'unité de traitement PCUA et un bit de commande de connexion. Le numéro du banc logique demandé est décodé par le décodeur de demande 36 et la demande Ai parvient par un fil noté 0 à 6 à l'entrée d'un des codeurs de priorité 40 à 406 qui repoivent, sur leurs autres entrées, les autres demandes d'accès [j6 6,[Di6 fournies par les autres logi- 1-i=0 i=O i=0 ques de décodage couplées à d'autres unités de traitement PCUB à PCUD par exemple. Chaque codeur de priorité 400 à 406 choisit la demande la plus prioritaire et la fournit à l'entrée des décodeurs 410 à 416 correspon- dant o elle est décodée, ce qui permet d'indiquer à l'entrée du circuit OU logique des bancs occupés 42 la demande de l'unité de traitement qui a été acceptée. Le circuit OU 42 exécute le traitement en parallèle de toutes les demandes d'accès. Si dans le cas de la figure 5 la demande de connexion de l'unité de traitement PCUA est acceptée, le circuit OU logique des bancs occupés 42 remet à zéro la bascule de demandes d'accès 37 et celle-ci fournit sur une de ses sorties en direction de runité de traitement PCUA, un accusé de connexion qui inhibe la demande de l'unité de traitement PCUA au niveau des décodeurs de demandes 36 qui devient A désormais inutile. Le compteur modulo le nombre de bancs logique 38 est chargé avec le numéro du banc logique de départ. Le compteur modulo 38 représente le tourniquet précédemment décrit il s'incrémente à chaque changement de bancs logiques dans le sens de la permutation circulaire effectuée sur l'ensemble des bancs logiques et modélise par conséquent l'accès par décalage circulaire à tous les bancs. Le contenu de tous les compteurs modulo le nombre de bancs logiques 38 contenus dans les autres logiques de décodage 34 est décodé par les décodeurs de numéro de bancs en liaison (ou occupés) 39 des autres logiques de décodage et est appliqué sur les entrées du circuit OU logique 43 qui fournit en sortie la liste des bancs occupés ou en liaison. En revenant à l'exemple d'extraction de la figure 2 on peut constater que les éléments ou les articles extraits de la mémoire sont fournis dans le désordre et qu'au premier tour par exemple, l'extraction du premier élément de chaque banc physique, a fourni la suite d'articles 0,126,77,28, 154,...,98 et 49. Pour être exploitable les suites d'articles extraits doivent être remises dans l'ordre, cette mise en. ordre étant effectuée à la manière représentée à la figure 6 par les dispositifs de réarrangement 60 à 6p de la figure 1. Pour effectuer ces réarrangements les dispositifs de réarrangement couplés à chaque unité de traitement possède une mémoire qui pour les besoins d'explications du mécanisme de réarrangement décrits ci-après est structurée dans le cas de la figure 6 pour recevoir 25 mots de données répartis sur 5 bancs de mémorisation. Dans l'exemple représenté à la figure 6 la liste des numéros extraits de la mémoire 1 figure sur la première ligne du tableau, cette liste correspon- dant à la liste des articles extraits de l'exemple d'extraction représenté à la figure 2. La deuxième ligne de la figure 6 renferme les numéros d'ordre des articles extraits de la mémoire 1. Et les deuxième et troisième lignes figurent les listes des adresses d'arrivée et des bancs d'arrivée des articles dans la mémoire du dispositif d'arrangement. Dans le cas de la figure 6 l'adresse d'arrivée d'un article dans la mémoire du dispositif de réarrange- ment est obtenue par une opération modulo 5 effectuée sur le numéro d'ordre de l'article et les numéros du banc d'arrivée est égal au numéro d'ordre divisé par 5. Dans l'exemple représenté l'élément no 154 a comme numéro d'ordre 22 et son banc d'arrivée est obtenu en divisant 22 par 5 ce qui donne le nombre 4 et son adresse d'arrivée est obtenue en effectuant l'opération modulo 5 sur le numéro d'ordre 22 qui consiste à rechercher le reste de la division du numéro d'ordre 22 par le nombre 5 ce qui donne le nombre 2. Selon le mécanisme représenté à la figure 6 la mémoire des dispositifs de réarrangement est remplie au bout de 5 instants successifs de transfert des articles d'arrivée, la mémoire reçoit les 5 premiers articles 0,126, 77, 28 et 154 à Pinstant t = t1 et les range dans la façon précédemment décrite aux adresses indiquées dans les bancs d'arrivée et il fait de même pour les 5 articles suivant à linstant t = t2 puis pour les suivants aux instants t3, t4 et t5 o la totalité des 25 articles est recueillie. Après l'instant t5 l'unité de traitement pourra lire dans la mémoire de son dispositif d'arrangement les articles enregistrés en opérant une migration d'adresse de raison 1. En effectuant cette lecture sur les articles mémorisés à l'instant t5 indiqué à la figure 6 elle pourra constater que les articles lus ont bien été replacés dans l'ordre de la disposition qu'il avait dans la mémoire 1. Un exemple de réalisation du dispositif de réarrangement est représenté à la figure 7, le dispositif représenté comprend un mécanisme d'adresse et de commande 45 couplé à deux mémoires 46 et 47 par l'intermédiaire d'un réseau de commutation 48 et d'un registre d'adresse 49. Le mécanisme d'adresse et de commande 45 comprend un compteur d'adresse 50 et un dispositif de calcul d'adresse 51, un aiguilleur 52 assure l'aiguillage des données entre l'unité de traitement couplée aux dispositifs de réarrangement et les mémoires 46 et 47 de ce dispositif. Dans l'exemple de réalisation représenté à la figure 7 les mémoires 46 et 47 sont organisées selon 7 bancs de mémorisation de 49 mots ce qui permet d'assurer les rarrangements dans une matrice de 7 fois 49 mots. L'adressage des mémoires 46 et 47 est effectué d'une manière similaire à Padressage de la mémoire 1. Comme précédemment l'adresse cd'un élément sur un banc est déterminée à partir d'une raison S et de l'adresse de début Adb des éléments à extraire sur b bancs. L'adresse du banc d'un élément à extraire est définie par la relation à l'aide de la relation Adx= (Adb + KS) modulo b K représente l'ordre logique de l'élément à extraire et K est défini pour chaque banc par la relation K = [(Adx - A db).S-1] modulo b Lorsque deux bancs sont contigus d'adresses Adx et Adx+ l les valeurs de K sont les suivantes Adx >K = [(adx-A db).S modulo b et Adx+L- >K+1 = FAdx + 1 - Adb).S 1].modulo b et K + l =- [K+S] .modulo b Dans le cas de la figure 7, b est un multiple de 7 correspondant à l'organisation des mémoires 46 et 47 composés de 7 bancs de 49 cellules chacun, et les valeurs [Ki]7 désignant les numéros des bancs sont définies par les relations de récurrence K, [(K+S 1)] 7, (K+2.S,)] 7... K+7S-I)] 7 Pour déterminer rl'adresse Ki/7 de chaque article dans un banc il suffit de diviser le numéro du banc par le modulo b du nombre de bancs, soit 7 dans le cas de la figure 7. Un exemple. de réalisation du mécanisme d'adressage et de commande 51 est représenté aux figures 8A et 8B, la S partie du mécanisme d'adressage représentée à la figure 8A comprend un circuit additionneur 53, un circuit multiplieur 54, une mémoire morte programmable 55, un circuit additionneur 57 et une mémoire morte programmable 59 couplés dans cet ordre en série. Il comprend également deux mémoires mortes programmables 56 et 58 couplées dans cet ordre en série ainsi que des mémoires mortes programmables 601, 602 et 607. Les adresses Adx et Adb sont appliquées respectivement aux première et deuxième entrées d'opérande du circuit soustracteur 53 qui applique le résultat de la soustraction effectuée sur les adresses Adx et Adb à une première entrée d'opérande du circuit multiplieur 54. La raison s est appliquée sur les entrées d'adressage de la mémoire morte programmable 56 qui fournit à l'aide d'une table l'inverse S - de la raison appliquée sur ces entrées d'adressage pour l'appliquer sur la deuxième entrée d'opérande du circuit multiplieur 54. Le résultat de la multiplication effectuée par le circuit multiplieur 54 est appliqué sur les entrées d'adressage de la mémoire morte programmable 55 et sur une première entrée d'opérande du circuit additionneur 57. La sortie de la mémoire morte programmable est appliquée sur une deuxième entrée d'opérande de l'additionneurs 57 qui fournit sur sa sortie le nombre K recherché. Le résultat obtenu à la sortie du circuit additionneur 57 est appliqué sur les entrées d'adressage de la mémoire morte programmable 59 qui effectue la division à l'aide d'une table du nombre K par le modulo du nombre de bancs b des mémoires 46 et 47. La mémoire morte programmable 59 fournit la valeur de K correspondant au banc 0 et cette valeur de K est appliquée sur des premières entrées cd'adressage des mémoires mortes programmables de 601 à 607 qui sont adressées sur leur deuxième entrée d'adressage par la sortie de la mémoire morte programmable 58 qui contient une table de tous les inverses modulo 7 du reste s. Les mémoires 60 à 607 contiennent des tables permettant d'effectuer les additions [K+S- | 7, [K + 2S-17... [K + ?SI7 définies precédemment pour définir les numéros des bancs logiques de stockage les éléments ou articles dans les bancs de mémorisation. Les adresses des articles à stocker dans chaque banc de mémori- sation sont déterminées à partir du dispositif de calcul d'adresse représen- té à la figure 8s qui comprend un ensemble de mémoires mortes programmables 631, 632...636 et 637, un ensemble de circuits additionneurs modulo 49 reférences de 641 à 647, un circuit aiguilleur 65 et un registre 66. Les adresses correspondant aux 7 bancs d'une mémoire de mémorisa- tion sont obtenues en sortie des circuits additionneurs 641 à 647. Les premières entrées d'opérande des additionneurs 641 à 647 sont reliées aux sorties des mémoires mortes programmables 631 à 637 qui contiennent des tables des divisions par 7 de l'inverse des nombres S-1, 2S-1...,6S-I et 7S 1 modulo 49. Le quotient par 7 du nombre K0 correspondant au banc 0 est appliqué sur les deuxièmes entrées d'opérande des additionneurs 641 à 647 au travers du circuit aiguilleur 65 et du registre 66. La sortie du circuit additionneur 647 est reliée sur une deuxième entrée du circuit aiguilleur pour assurer la migration des adresses à l'intérieur des mémoires 46 et 47. REVENDICATIONS 1. Système pour la transmission simultanée de vecteurs ou blocs de données entre une mémoire (1) et une ou plusieurs unités de traite- ment de données (20...2p) dans lequel les unités de traitement de données fonctionnant de façon asynchrone les unes par rapport aux autres, caractérisé en ce que la mémoire est composée d'un nombre entier N de bancs logiques de mémorisation comportant chacun un nombre entier n quelconque de bancs physiques de q emplacements de mémorisation, le système comprenant un réseau d'interconnexion (3) interposé entre la mémoire (1) et les unités (20...2p) pour établir des connexions entre les bancs de la mémoire et les unités de traitement, un dispositif logique de commande (4) pour commander les chemins de connexion dans le réseau de connexion (3) ainsi qu'un ou plusieurs dispositifs logiques d'adressage (50...5p) commandés respectivement par une unité de traitement de données (20...2p) pour effectuer l'adressage des emplacements de la mémoire (1) auquelle chaque unité (2o...2p) demande accès et exécuter le transfert des vecteurs ou des blocs de données contenues dans les emplacements correspondant, les N.n bancs physiques de la mémoire étant juxtaposés et numérotés dans l'ordre des entiers naturels 0,... [(N.n)- i] pour former une base matricielle ordonnée d'emplacements de mémorisa- tion, chaque emplacement de mémorisation dans un banc physique étant à la croisée d'une ligne et d'une colonne de la base matricielle et étant également numérotée sur chaque ligne dans l'ordre croissant des entiers naturels depuis l'emplacement de début de lignes contenu dans le premier banc physique 0 de la mémoire jusqu'à l'emplacement de fin de lignes contenu dans le dernier banc physique [(N.n)-] de la mémoire, tous les emplacements de début de ligne de la mémoire étant situés à l'intérieur d'un premier banc physique, chaque dispositif logique d'adressage (50... 5p) comprenant des moyens (22,...32) pour déterminer l'adresse du banc physi- que dans lequel se trouve chaque emplacement en calculant l'adresse modulo (N.n) de son banc physique à partir de son numéro d'ordre dans la mémoire, le dispositif logique de commande (4) comprenant des moyens (34) pour établir une connexion d'une unité de traitement demanderesse sur le banc logique contenant ladresse du début du vecteur ou du bloc de données à transférer et des moyens de commande (43) pour commuter successivement l'unité demanderesse sur les bancs logiques suivants à la fin de chaque transfert de données entre un banc logique de la mémoire (1) et l'unité de traitement de données (20...2p). 2. Système selon la revendication 1, caractérisé en ce que le nombre n de bancs physiques dans un banc logique est égal à 1. 3. Système selon la revendication 1, caractérisé en ce que le nombre N de bancs de la mémoire (1) est un nombre entier premier, divisible que par lui-même. 4. Système selon l'une quelconque des revendications 1, 2 et 3, caractérisé en ce qu'il comprend un dispositif de réarrangement des données extraites 60...6p de la mémoire (1) connecté à chaque unité de traitement de données (20...2p). 5. Système selon l'une quelconque des revendications I à 4, caractérisé en ce que les dispositifs de réarrangements des données extraites (60...6p) sont interposés entre le réseau d'interconnexion (3) et les unités de traitement de données (20...2p) et comprennent chacun deux mémoires de réarrangement (46, 47) organisés en p bancs de q mots chacun, ainsi qu'un dispositif d'adressage et de commande (44) pour ranger les données extraites provenant de la mémoire (1) dans l'ordre logique de leur mémorisation dans la mémoire 1. 6. Système selon la revendication 1, caractérisé en ce que le nombre de bancs physiques Nxn est déterminé pour que le PGCD du nombre de bancs physiques et de la raison R soit limité à un nombre réduit de facteurs premiers.