Brevet FR2759178A1 — publié le 19980807

Circuit de gestion de mémoire dans un environnement multi-utilisateurs avec requête et priorité d'accès. L'invention concerne un circuit de gestion de mémoire dans un environnement multi-utilisateurs avec requête et priorité d'accès. Ce type de circuit est utilisé dans des applications multiprocesseurs possédant chacun une mémoire de travail locale. Les applications sur le traitement d'image ont souvent recours à ce type de système, les traitements de l'image se faisant généralement par blocs qui peuvent être traités séparément. Dans les environnements multiprocesseurs, il est possible d'avoir une mémoire directement accessible par tous les processeurs. Cependant l'arbitrage des accès est relativement lourd à gérer lorsque l'on utilise un nombre de processeurs important. Une solution développée actuellement consiste à associer à chaque processeur ou groupe de processeur une mémoire de petite dimension (quelque kilo-octets) qui est utilisée comme mémoire de travail locale. La mémoire de travail locale contenant une copie d'une partie de la mémoire globale du système. De, plus afin que les processeurs utilisent au mieux leurs capacités de calcul, on utilise des circuits de gestion de mémoire auxquels les processeurs adressent des requêtes simples. Les requêtes servent à simplifier le câblage des systèmes multi-processeurs. Un fil peut suffire si la requête se résume à une demande d'échange d'informations entre la mémoire centrale et la mémoire locale. La demande d'échange d'informations est gérée intégralement par un circuit de gestion de mémoire qui va déterminer en fonction de paramètres correspondant au processeur qui effectue une requête le sens du transfert à effectuer, la taille du bloc à transférer, sa position dans la mémoire centrale, et les éventuelles autorisations d'accès en écriture et/ou en lecture. Le circuit de gestion de mémoire et les processeurs échangent ensuite les données de manière synchronisée réduisant fortement le nombre de fils pour gérer l'échange. Sur un tel système, lorsqu'une requête est en cours de traitement, aucune autre requête ne peut être prise en compte avant la fin de la requête. Un processeur prioritaire peut cependant être autorisé à interrompre la requête en cours pour des besoins prioritaires. En cas d'interruption de la requête, il se produit une désynchronisation des dispositifs utilisateurs par rapport à l'échange de donnée. La désynchronisation rend les données échangées erronées et nécessite de refaire l'échange. Or pour effectuer un nouvel échange, il est nécessaire de présenter une nouvelle requête qui peut passer après d'autres requêtes. Dans un tel système, les mémoires locales sont généralement petites et très rapides et la mémoire centrale est généralement très importante et assez lente. L'utilisation de requêtes élémentaires ayant pour nécessité d'effectuer des transferts de données synchronisés, cela provoque un arrêt des dispositifs utilisateurs pendant l'échange de données avec la mémoire centrale. De plus, le transfert de données doit s'effectuer à la vitesse de la mémoire la plus lente. Chaque dispositif utilisateur est donc ralentit par la mémoire centrale. L'invention a pour objet de proposer une solution qui diminue les possibilités de désynchronisation du transfert de donnée pour les dispositifs utilisateurs. Un autre but de l'invention est de faire fonctionner les dispositifs utilisateurs à une vitesse optimum. Pour ce faire, dans l'invention on utilise une mémoire tampon de type premier entré-premier sorti (FIFO). Une amélioration consiste à supprimer totalement la possibilité de désynchronisation en autorisant les transferts que si le tampon mémoire FIFO est suffisamment plein ou suffisamment vide pour effectuer le transfert sans risque d'interruption de transfert. L'invention a pour objet un système de traitement d'information comportant: - au moins deux dispositifs utilisateurs disposant chacun d'une mémoire locale, la mémoire locale servant de mémoire de travail pour chacun des dispositifs utilisateurs; - au moins un processeur à accès prioritaire; - une mémoire centrale dont le contenu est utilisable aussi bien par l'un des au moins deux dispositifs utilisateurs que par le au moins un processeur; - un circuit de gestion de la mémoire centrale qui reçoit des requêtes de la part des dispositifs utilisateurs et fournit en fonction des requêtes et d'informations internes des signaux pour piloter la mémoire et l'échange de donnée entre la mémoire et les dispositifs utilisateurs; - une mémoire tampon de type premier entré-premier sorti placé d'une part entre le circuit de gestion et la mémoire centrale et d'autre part entre les dispositifs utilisateurs et la mémoire centrale; - un moyen de substitution qui permet au processeur de se substituer à la mémoire tampon afin de piloter directement la mémoire centrale. L'invention a également pour objet un procédé de gestion d'une mémoire centrale partagée entre au moins deux dispositifs utilisateurs disposant chacun d'une mémoire locale à l'aide d'un circuit de gestion de requête pour gérer les échanges de données entre les mémoires locales et la mémoire centrale et au moins un processeur à accès prioritaire, tel que: - les requêtes envoyées par les dispositifs utilisateurs sont des demandes d'échange de données qui sont interprétées par le circuit de gestion de requête pour produire des signaux de commande pour piloter la mémoire durant un échange de données entre la mémoire et l'un des dispositifs utilisateurs, - les signaux de commande sont stockées dans une mémoire tampon de type premier entré-premier sorti qui régule le débit de signaux de commande entre le circuit de gestion de requête et la mémoire, et - le processeur se substitue à la mémoire tampon afin de piloter la mémoire centrale. L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation particulier faite en relation avec les figures annexées parmi lesquelles: la figure 1 représente un système multiutilisateurs utilisant une mémoire centrale selon l'invention, les figures 2 et 3 représentent des organigrammes de fonctionnement. Le système de la figure 1 constitue un système multi-utilisateurs disposant d'une pluralité de dispositifs utilisateurs 1 et 2 comprenant chacun des unités de traitement (non représentées) utilisant une mémoire locale de petite dimension, par exemple 512 octets. Chacun des dispositifs utilisateurs 1 et 2 est connecté à un bus de données central 3 afin de pouvoir échanger des données avec le reste du système. Chacun des dispositifs utilisateurs 1 et 2 est respectivement connecté à une ligne de requête 4 ou 5 pour indiquer au système qu'il désire faire un échange et également pour que le système lui indique qu'il va recevoir ou envoyer des données. Par ailleurs, le système comporte également un circuit de gestion des requêtes 6 qui possède des entrées/sorties de requêtes connectées à chacune des lignes de requêtes 4 et 5. Le circuit de gestion 6 comporte une entrée connectée à un bus de mise à jour 7, une sortie de commande, une sortie d'adresse, une sortie identificatrice, une entrée identificatrice, et des première et deuxième entrées/sorties de contrôle. Le circuit de gestion 6 sert à gérer les échanges de données entre les différents dispositifs utilisateurs 1 et 2 et le reste du système. Dans notre exemple, lorsqu'un dispositif utilisateur 1 ou 2 désire faire un échange de donnée, il va envoyer une impulsion sur la ligne de requête 4 ou 5 qui lui est associée. Le circuit de gestion 6 va mémoriser cette requête. Puis lorsque ce sera le moment de traiter ladite requête, le circuit de gestion 6 va consulter une table indiquant en quoi consiste la requête. En fonction des informations contenues dans la table, le circuit de gestion va ensuite générer une suite d'adresses, correspondant à des adresses dans une mémoire centrale du système, sur sa sortie d'adresse et les différentes commandes de lecture/écriture sur sa sortie de commande. S'il s'agit d'une écriture, le circuit de gestion va indiquer au dispositif utilisateur 1 ou 2 concerné, par l'envoi d'une impulsion sur la ligne de requête 4 ou 5 qui lui est associée, d'envoyer de manière synchrone les données à écrire dans la mémoire centrale; puis la table du circuit de gestion 6 est mise à jour. S'il s'agit d'une lecture, le circuit de gestion va également fournir sur sa sortie identificatrice un identificateur représentatif du dispositif utilisateur 1 ou 2 ayant fait la requête. Par ailleurs, lorsque le circuit de gestion 6 reçoit sur son entrée identificatrice un identificateur, le circuit de gestion 6 envoie, s'il y a lieu, une impulsion sur une ligne de requête 4 ou 5 correspondant au dispositif utilisateur 1 ou 2 désigné par l'identificateur. La table du circuit de gestion 6 sert à connaître le contenu des requêtes. La table peut être constituée d'une mémoire de petite dimension qui est initialisée au début du fonctionnement par un processeur de gestion du système par l'intermédiaire du bus de mise à jour 7. La table est ensuite remise à jour par le circuit de gestion 6 en cours de fonctionnement. Cependant, en cours de fonctionnement, il est également possible que la table soit mise à jour par le processeur de gestion du système. Dans notre exemple, la table comprend des lignes d'accès correspondant à chacun des dispositifs utilisateurs 1 ou 2. Chaque ligne comporte un pointeur d'adresse, par exemple sur 20 bits, une taille de bloc, par exemple sur 4 bits, l'opération à effectuer lors du transfert de donnée (lecture ou écriture) , par exemple sur 1 bit, une valeur d'incrémentation d'adresse dans le bloc, par exemple sur 8 bits, une valeur d'incrémentation de bloc, par exemple sur 8 bits, une commande de prochaine instruction, par exemple sur 12 bits. Un premier groupe d'informations (pointeur d'adresse, taille de bloc, incrémentation dans le bloc, et l'opération à effectuer) sert à générer les adresses et les commandes de la requête en cours de traitement. Un deuxième groupe d'informations (incrémentation de bloc et commande de prochaine instruction) sert à actualiser la table pour la prochaine requête. La commande de prochaine instruction est codée dans notre exemple sur 12 bits et permet par exemple de définir les différentes successions d'adresses et d'instructions entre les différentes requêtes. Un tampon d'entrée 8 de type premier entré-premier sorti (FIFO) comporte quatre entrées de données, quatres sorties de données, une entrée/sortie de contrôle d'entrée et une entrée/sortie de contrôle de sortie. Une première des entrées de données est connectée au bus de données 3 pour recevoir un mot de données par exemple 32 bits. Une deuxième des entrées est connectée à la sortie de commande du circuit de gestion 6 pour recevoir par exemple 1 bit indiquant qu'il s'agit d'une lecture ou d'une écriture en mémoire centrale. Une troisième des entrées est connectée à la sortie d'adresse du circuit de gestion 6 pour recevoir une adresse par exemple sur 20 bits. une quatrième des entrées est connectée à la sortie identificatrice du circuit de gestion 6 pour recevoir un identificateur par exemple sur 6 bits. Dans notre exemple le tampon d'entrée 8 est une FIFO à quatre entrées de données qui est en fait équivalente à une FIFO ayant 59 bits d'entrée répartis en quatre groupes (de même pour les sorties) . Par ailleurs l'entrée/sortie de contrôle d'entrée est connectée à la première entrée/sortie de contrôle du circuit de gestion 6. L'entrée/sortie de contrôle d'entrée fournit un signal indiquant que la FIFO est vide et reçoit un signal d'entrée de donnée dans la FIFO. Un tampon de sortie 9 de type premier entré-premier sorti (FIFO) comporte deux entrées de données, deux sorties de données, une entrée/sortie de contrôle d'entrée et une entrée/sortie de contrôle de sortie. Une première des sorties est connectée à l'entrée identificatrice du circuit de gestion 6 pour fournir un identificateur par exemple sur 6 bits. Une deuxième des sorties de données est connectée au bus de données 3 pour fournir un mot de données par exemple 32 bits. Une première des entrées est connectée à une quatrième des sorties du tampon d'entrée 8 pour recevoir un identificateur. Dans notre exemple le tampon de sortie 8 est une FIFO à deux entrées de données qui est en fait équivalente à une FIFO ayant 38 bits d'entrée répartis en deux groupes, de même pour les sorties. Par ailleurs l'entrée/sortie de contrôle de sortie est connectée à la deuxième entrée/sortie de contrôle du circuit de gestion 6. L'entrée/sortie de contrôle de sortie fournit un signal indiquant que la FIFO est pleine et reçoit un signal de sortie de donnée de la FIFO. Un circuit contrôleur de mémoire 10 sert d'accès à la mémoire centrale. Ce circuit contrôleur 10 dispose de trois groupes d'entrées/sorties: un premier groupe d'entrées/sorties prioritaires connectées à un processeur à accès prioritaire, un deuxième groupe d'entrées/sorties d'utilisateurs connectées aux tampons d'entrée et de sortie 8 et 9, et un troisième groupe d'entrées/sorties de mémoire connectées à différents types de circuits de mémoire 11 à 14. Le premier groupe d'entrées/sorties comporte une entrée/sortie de données, une entrée d'adresses, des entrées de commande de lecture et d'écriture, et une entrée d'interruption. Dans le premier groupe d'entrées/sorties, l'homme du métier remarquera qu'il s'agit essentiellement d'entrées/sorties classiquement utilisées entre processeur et mémoire sauf l'entrée d'interruption qui est une entrée qui sert à indiquer que le processeur prioritaire, par exemple le processeur de gestion globale du système, prend le contrôle direct de la mémoire centrale. Le deuxième groupe d'entrées/sorties comporte une entrée de donnée connectée à une première sortie de données du tampon d'entrée 8, une entrée de commande connectée à une deuxième sortie des sorties de données du tampon d'entrée 8, une entrée d'adresse connectée à une troisième sortie des sorties de données du tampon d'entrée 8, une sortie de donnée connectée à une deuxième entrée des entrées de données du tampon de sortie 9, une première entrée/sortie de contrôle connectée à l'entrée/sortie de contrôle de sortie du tampon d'entrée 8, et une deuxième entrée/sortie de contrôle connectée à l'entrée/sortie de contrôle d'entrée du tampon de sortie 9. Le troisième groupe comporte des entrées/sorties de données, des sorties d'adresses, et différentes sorties de commande et sélection qui peuvent exister sur certains type de mémoire comme connu par l'homme du métier. Le circuit contrôleur 10 a trois fonctions: la première fonction est d'interfacer les tampons d'entrée et de sortie 8 et 9 afin de permettre l'échange avec la mémoire centrale; la deuxième fonction est de servir d'aiguillage entre le processeur prioritaire et les circuits tampon d'entrée et de sortie 8 et 9, l'entrée d'interruption faisant office de commande d'aiguillage substituant ou non le processeur prioritaire aux dispositifs utilisateurs 1 et 2; la troisième fonction est la fonction courante des contrôleurs de mémoire, c'est à dire l'adaptation de différents circuits de mémoire 11 à 14 afin de former une mémoire centrale homogène unique en créant certains signaux spécifiques à certains types de mémoire, par exemple le mode BURST pour les mémoires de forte capacité. Le contrôleur 10 muni des différents de circuit de mémoire 11 à 14 forme la mémoire centrale du système. La deuxième fonction du circuit contrôleur 10 est spécifique à l'invention. En effet, les données, adresses et commandes reçues du tampon d'entrée 8 ou les données envoyées au tampon de sortie 9 sont des signaux standard pour une mémoire mais l'extraction de ces signaux depuis un mémoire FIFO n'est pas classique. Pour pouvoir effectuer les échanges de données avec le tampon d'entrée 8, le circuit contrôleur 10 reçoit sur sa première entrée/sortie de contrôle un signal indiquant que le tampon d'entrée 8 n'est pas vide et fournit également un signal indiquant l'extraction simultanée sur toutes les sorties du tampon d'entrée 8. D'autre part, la deuxième entrée/sortie de contrôle du circuit contrôleur 10 reçoit un signal indiquant que le tampon de sortie 9 n'est pas plein et fournit un signal indiquant l'entrée simultanée sur les entrées de données du tampon de sortie 9. Le fonctionnement des tampons d'entrée et de sortie 8 et 9 sera mieux compris à l'aide des figures 2 et 3, données à titre d'exemple non limitatif, représentant respectivement les organigrammes de fonctionnement des circuits de gestion 6 et contrôleur 10. Sur la figure 2, la première alternative 11 contrôle si le tampon d'entrée 8 est vide. Cette première alternative 11 est réalisée dans le circuit de gestion 6 par consultation de l'information provenant du premier tampon 8. Si le tampon d'entrée 8 est vide alors on aboutit sur une deuxième alternative 12. Cette deuxième alternative 12 est effectuée dans le circuit de gestion 6 qui va consulter des bascules internes ayant mémorisées si les dispositifs utilisateurs 1 et 2 ont fait des requêtes qui ne sont pas encore traitées. Si il y a effectivement des requêtes à traiter alors on effectue une première étape 13 correspondant au traitement de la requête. Le traitement de la requête va s'effectuer comme il a déjà été partiellement expliqué, c'est à dire: génération par le circuit de gestion 6 sur les différentes sorties d'adresse et de signaux de commande et éventuellement, suivant qu'il s'agisse d'une écriture ou d'une lecture, d'un signal de synchronisation d'envoie de données à l'un des dispositifs utilisateurs 1 ou 2 ou d'un identificateur. Après la génération de chaque adresse, faite à la même vitesse que l'arrivée des données d'un dispositif utilisateur 1 ou 2 s'il y a lieu, un signal est envoyé au tampon d'entrée afin que celui-ci fasse rentrer les données, adresses, commandes et identificateurs. L'opération se répète jusqu'à la fin de la requête déterminée à l'aide de la taille du bloc à transférer. L'homme du métier aura noté qu'il est nécessaire que le tampon d'entrée permette de stocker au moins une requête complète de taille maximale. Dans notre exemple, la taille minimale du tampon d'entrée est de 16 mots de 59 bits. Une fois que la première étape 13 a été traitée, on revient à la première alternative 11. Dans le cas où la première alternative 11 aboutit sur un tampon d'entrée qui n'est pas vide, ou dans le cas où la deuxième alternative aboutit sur le fait qu'aucune requête n'est à envoyer alors on est conduit à la troisième alternative 14. Cette troisième alternative 14 consiste à vérifier si le tampon de sortie 9 est plein. Si le tampon de sortie est plein alors on effectue une deuxième étape 15 qui correspond à une extraction des données présentes dans le tampon de sortie 9 en synchronisant le dispositif utilisateur 1 ou 2 correspondant à l'identifiant présent dans le tampon de sortie 9. L'extraction dure jusqu'à ce que le bloc soit sorti du tampon de sortie 9. Une fois que la deuxième étape 15 est traitée, on revient à la première alternative 11. De plus, si le résultat de la troisième alternative 14 est que le tampon de sortie 9 n'est pas plein alors on revient également à la première alternative 11. Tel que décrit, les tampons d'entrée et de sortie 8 et 9 forment une mémoire tampon avec laquelle les dispositifs utilisateurs 1 et 2 peuvent échanger des données sans risque d'être interrompus par le processeur prioritaire. L'homme du métier comprendra facilement que si l'on utilise des tampons d'entrée et de sortie 8 et 9 pouvant au plus contenir une seule requête, alors il existera un temps mort lors de chaque requête de lecture. En effet, dans ce cas le circuit de gestion 6 va envoyer la requête contenant une succession de lecture dans le tampon d'entrée et ne pourra pas envoyer d'autre requête tant que la requête ne sera pas traitée entièrement. De plus, l'extraction ne pourra pas se faire tant que la requête ne sera pas entièrement traitée. Pour éviter ces temps morts, il suffit d'utiliser un tampon d'entrée d'une taille supérieure à la taille du bloc maximal et d'indiquer si le tampon d'entrée est suffisamment vide pour recevoir une requête complète, une requête n'étant traitée que si la mémoire tampon est suffisamment vide pour pouvoir recevoir l'intégralité des commandes de la requête. La même chose peut également être faite sur le tampon de sortie 9, dans ce cas là, on indiquera que le tampon de sortie 9 est suffisamment plein. De cette manière, tout transfert de données entre la mémoire et l'un des dispositifs utilisateurs 1 ou 2 n'a lieu que si la mémoire tampon est suffisamment pleine ou suffisamment vide pour que la totalité de la requête correspondant au transfert de données soit traitée. Préférentiellement, on utilise des tampons d'entrée et de sortie 8 et 9 ayant une capacité correspondant à deux requêtes pour des transferts de bloc de taille maximale. L'organigramme de la figure 3, réalisé dans le circuit contrôleur 10 se déroule tant que le signal d'interruption le permet. Si jamais le signal d'interruption devient actif, alors l'exécution de cet organigramme s'arrête et reprend à l'endroit où cet organigramme s'est arrêté. L'homme du métier pourra réaliser une telle fonctionnalité par exemple en masquant le signal d'horloge qui séquence cet algorithme. Une quatrième alternative 16 est réalisée dans le circuit contrôleur 10. Cette quatrième alternative 16 consiste à vérifier si le tampon d'entrée 8 est vide. Si le tampon d'entrée est vide alors on ne fait rien et on reboucle sur la quatrième alternative 16. Si le tampon d'entrée 8 n'est pas vide alors on effectue la troisième étape 17. La troisième étape 17 consiste à extraire du tampon d'entrée 8 les informations qui y sont contenues et à les stocker dans un buffer, par exemple un registre. Puis on effectue la cinquième alternative 18. Cette cinquième alternative 18 sert à vérifier si la commande à effectuer est une lecture ou une écriture. S'il s'agit d'une écriture alors on effectue la quatrième étape 19; et s'il s'agit d'une lecture alors on effectue la cinquième étape 20. La quatrième étape 19 consiste à écrire la donnée présente dans le buffer à l'adresse indiquée dans le buffer. Une fois que la quatrième étape 19 est terminée, on boucle sur la quatrième alternative 16. La cinquième étape 20 consiste à lire une donnée à l'adresse indiquée dans le buffer et à stocker la donnée lue dans le buffer. Après cette cinquième étape 20 vient une sixième alternative 21. La sixième alternative 21 consiste à tester si le tampon de sortie 9 est plein. Si le tampon de sortie 9 est plein alors le circuit contrôleur 10 attend un bref délai pendant une sixième étape 22 et effectue à nouveau la sixième alternative 21. Si le tampon de sortie 9 n'est pas plein alors on effectue la septième étape 23. La septième alternative 23 consiste à stocker dans le tampon de sortie 9 la donnée présente dans le buffer. A l'issu de la septième étape 23 on reboucle sur la quatrième alternative 16. L'homme du métier remarquera qu'il n'est pas nécessaire de tenir compte de la taille des requêtes pour les accès à la mémoire tampon du coté du circuit contrôleur 10. Les temps d'accès des dispositifs utilisateurs 1 et 2 et de la mémoire centrale sont complètement dissociés, ce qui a pour effet supplémentaire d'optimiser les accès à la mémoire centrale. En effet, la mémoire centrale étant plus lente que les dispositifs utilisateurs 1 et 2, les accès mémoire sont plus étalés dans le temps que les transferts de données avec les dispositifs utilisateurs. Cependant l'homme du métier doit prévoir que les requêtes doivent être envoyées par les dispositifs utilisateurs 1 et 2 à des moments où les données transférées ne risque pas de faire défaut au dispositif utilisateur. De nombreuses variantes et améliorations peuvent être apportées sans changer l'objet de l'invention. I1 est possible d'utiliser des mémoires FIFO disposant de plusieurs indicateurs de contenance afin de savoir par exemple si l'on peut effectuer des requêtes sur des transferts qui ne sont pas forcément de la taille du transfert maximal. L'effet étant d'optimiser l'algorithme de la figure 2 afin qu'il soit plus rapide pour répondre à des lectures sur des blocs de taille inférieure à la taille maximale. On peut également disposer d'une entrée supplémentaire sur le circuit contrôleur 10 afin de recevoir l'identifiant correspondant au dispositif utilisateur 1 ou 2 qui a fait la requête. Cela permet de visualiser dans une table quels sont les blocs de la mémoire centrale qui sont en cours d'utilisation et par quel utilisateur. Dans l'exemple décrit, on utilise des lignes de requête 4 et 5 correspondant à chaque dispositifs utilisateurs 1 et 2. Un intérêt supplémentaire et de pouvoir utiliser ces lignes pour transmettre des signaux de synchronisation de transfert tel qu'une horloge tout en pouvant recevoir d'autre requête sur les autres fils. Une variante pour les lignes de requête 4 et 5 consiste à utiliser un bus de requête lorsque l'on a un nombre de dispositifs utilisateurs 1 et 2 élevé. Le bus de requête devra tenir compte des conflits possibles entre les différents dispositifs utilisateurs 1 et 2 et le circuit de gestion 6. Dans le présent brevet, la prise de décision qui permet de dire quelle requête doit passer avant une autre n'a pas été abordée. Plusieurs possibilité d'algorithme de traitement sont possibles. Une autre possibilité est par exemple d'utiliser un codeur de priorité comme décrit dans la demande EP-A-0 640 926. Le système décrit est particulièrement adapté au traitement des images. En effet, le traitement numérique des images utilise souvent un découpage en blocs correspondant à des carrés de pixels 8x8 ou 16x16. Une requête peut être utilisée pour lire le bloc image dans la mémoire centrale ligne de bloc par ligne de bloc pendant que le processeur de traitement du dispositif utilisateur va commencer les calculs à partir des lignes de bloc précédemment enregistrées. Un intérêt vient également du calcul de filtre glissant pour ajouter du contraste ou supprimer du bruit. L'invention décrite correspond à un mode de réalisation préféré de l'invention qui résout totalement le problème de désynchronisation posé dans le préambule de la présente demande. Néanmoins un premier objectif de l'invention consiste à seulement réduire les risques de désynchronisation. En fait, si l'on utilise une mémoire tampon comportant soit un unique tampon d'entrée 8 ou soit un unique tampon de sortie 9, alors les risques de désynchronisation sont réduit par deux ce qui répond bien au premier objectif de l'invention. Le premier objectif est également rempli si l'on ne teste pas la mémoire tampon. Bien entendu les indications sur les tailles de mots de données, d'adresses, de blocs, ainsi que la totalité des indications numériques peuvent être changées en fonction des besoins de l'homme du métier sans changer l'invention dans sa substance. De plus, dans la description et les schéma, le système ne comporte que deux dispositifs utilisateurs 1 et 2, l'homme du métier aura compris que c'était uniquement dans le but de simplifier la description et qu'un tel système peut utiliser un nombre quelconque de dispositifs utilisateurs. De même, dans la description il est question d'un processeur prioritaire qui peut également être un processeur servant à la gestion globale du système. Il est évident que ce processeur prioritaire puisse être composé de plusieurs processeurs qui apparaissent au contrôleur 10 comme un processeur unique. REVENDICATIONS 1. Système de traitement d'information comportant: - au moins deux dispositifs utilisateurs (1 et 2) disposant chacun d'une mémoire locale, la mémoire locale servant de mémoire de travail pour chacun des dispositifs utilisateurs (1 et 2); - au moins un processeur à accès prioritaire; - une mémoire centrale (10 à 14) dont le contenu est utilisable aussi bien par l'un des au moins deux dispositifs utilisateurs (1 et 2) que par le au moins un processeur; et - un circuit de gestion (6) de la mémoire centrale (10 à 14) qui reçoit des requêtes de la part des dispositifs utilisateurs (1 et 2) et fournit en fonction des requêtes et d'informations internes des signaux pour piloter la mémoire (10 à 14) et l'échange de donnée entre la mémoire (10 à 14) et les dispositifs utilisateurs (1 et 2); caractérisé en ce que ledit système comporte: - une mémoire tampon (8 ou 9) de type premier entré-premier sorti placé d'une part entre le circuit de gestion (6) et la mémoire centrale (10 à 14) et d'autre part entre les dispositifs utilisateurs (1 et 2) et la mémoire centrale (10 à 14), - un moyen de substitution qui permet au processeur de se substituer à la mémoire tampon (8 ou 9) afin de piloter directement la mémoire centrale (10 à 14). 2. Système selon la revendication 1, caractérisé en ce que la mémoire centrale (10 à 14) comporte un contrôleur (10) de mémoire et une pluralité de mémoire (11 à 14), le contrôleur (10) produisant les signaux pour les différentes mémoires (11 à 14) et décodant le plan mémoire. 3. Système selon l'une des revendications 1 ou 2, caractérisé en ce que la mémoire tampon (8 ou 9) comporte au moins un tampon d'entrée (8) dont les sorties de données sont connectées à la mémoire centrale (10 à 14). 4. Système selon la revendication 3, caractérisé en ce que le tampon d'entrée (8) mémorise: - l'adresse mémoire, - l'opération à effectuer dans la mémoire, - éventuellement la donnée à écrire s'il y a lieu. 5. Système selon l'une des revendication 3 ou 4, caractérisé en ce que le tampon d'entrée (8) mémorise un identificateur du dispositif utilisateur (1 ou 2) pour lequel s'effectue l'opération dans la mémoire (10 à 14). 6. Système selon l'une des revendications 1 à 5, caractérisé en ce que la mémoire tampon (8 ou 9) comporte au moins un tampon de sortie (9) dont les entrées de données sont connectées à la mémoire centrale (10 à 14). 7. Système selon la revendication 6, caractérisé en ce que le tampon de sortie (9) mémorise la donnée lue et un identificateur du dispositif utilisateur (1 ou 2) qui doit recevoir la donnée lue. 8. Procédé de gestion d'une mémoire centrale (10 à 14) partagée entre au moins deux dispositifs utilisateurs (1 et 2), disposant chacun d'une mémoire locale, à l'aide d'un circuit de gestion (6) de requête pour gérer les échanges de données entre les mémoires locales et la mémoire centrale (10 à 14) et au moins un processeur à accès prioritaire, caractérisé en ce que: - les requêtes envoyées par les dispositifs utilisateurs (1 et 2) sont des demandes d'échange de données qui sont interprétées par le circuit de gestion (6) de requête pour produire des signaux de commande pour piloter la mémoire (10 à 14) durant un échange de données entre la mémoire et l'un des dispositifs utilisateurs (1 ou 2), - les signaux de commande sont stockées dans une mémoire tampon (8 ou 9) de type premier entré-premier sorti qui régule le débit de signaux de commande entre le circuit de gestion (6) de requête et la mémoire (10 à 14), et - le processeur se substitue à la mémoire tampon (8 ou 9) afin de piloter la mémoire centrale (10 à 14). 9. Procédé selon la revendication 8, caractérisé en ce que une requête n'est traitée que si la mémoire tampon (8) est suffisamment vide pour pouvoir recevoir l'intégralité des commandes de la requête. 10. Procédé selon l'une des revendications 8 ou 9, caractérisé en ce que tout transfert de données entre la mémoire tampon (8 ou 9) et l'un des dispositifs utilisateurs (1 ou 2) n'a lieu que si la mémoire tampon (8 ou 9) est suffisamment pleine ou suffisamment vide pour que la totalité de la requête correspondant au transfert de données soit traitée.