Brevet FR2471652A1 — publié le 19810619

La présente invention concerne les procédé et système d'entrée/sortie de données et elle a trait plus particulièrement à un procédé et un système d'entrée/sortie de données qui con- viennent pour être utilisés pour l'entrée ou la sortie rapide et semipermanente d'une grande quantité de données d'images con- verties numériquement, telles que celles transmises à partir d'une source de données de grande capacité, comme un satellite. Dans un ordinateur de type général, l'entrée et la sortie des données sont synchronisées par la commande d'un programme de l'ordinateur ou bien, comme dans le cas d'une commande de commu- nications, l'entrée et la sortie des données sont effectuées d'une façon semblable après un échange préliminaire de signaux entre plusieurs appareils. Ainsi, dans tous les cas, le programme effectue essentiellement le contrôle de l'entrée et de la sortie des données. Cependant, dans le domaine du traitement drimages de satel- lite, il est d'une pratique courante que les données d'image qui sont transmises par un satellite à la terre soient enregistrées sur une bande magnétique de haute densité ou d'une manière sem- blable, par exemple par un dispositif spécial d'enregistrement rapide de données installé au sol, puis soient reproduites à par- tir de celui-ci dans un ordinateur. Dans ce cas, les moyens d'entrée et de sortie de données sont différents des moyens classiques, c'est-à-dire que l'entrée des données dans l'ordi- nateur est effectuée de façon semi-permanente, et il en résulte que l'ordinateur doit traiter le flux de données sans retard. En d'autres termes, il est nécessaire que l'opération d'entrée/ sortie ne soit pas effectuée sous la commande d'un programme, mais sous la commande d'une source de données de grande capacité telle qu'un satellite. Des avantages et caractéristiques de la présente invention seront mis en évidence dans la suite de la description, donnée à titre d'exemple non-limitatif, en référence aux dessins annexés dans lesquels:- la Fig. 1 est un schéma synoptique d'un exemple de réalisa- tion d'un système classique d'entrée/sortie de données; la Fig. 2 est un diagramme temporel du traitement classique d'entrée/sortie de données; 2 2471652 la Fig. 3 est un schéma synoptique de principe d'un mode de réalisation du système d'entrée/sortie de données conforme à la présente invention; la Fig. 4 montre les contenus d'un registre de commande in- tervenant dans le mode de réalisation de la Fig. 3; la Fig. 5 est un schéma synoptique détaillé du mode de réalisation de la Fig. 3; la Fig. 6 est un organigramme de fonctionnement de la section de commande du système d'entrée/sortie de données de la Fig. 3; la Fig. 7 est un diagramme temporel du fonctionnement du sys- tème selon l'invention; la Fig. 8 est un diagramme temporel de transfert des données dans le cas o la présente invention est appliquée à un transfert de données par accès direct en mémoire; la Fig. 9 montre un agencement particulier d'un appareil d'établissement d'histogramme utilisé dans la présente invention; la Fig. 10 est un diagramme temporel du fonctionnement de l'appareil de génération d'histogramme; la Fig. il est un diagramme chronométrique détaillé corres- pondant au cas o le groupe de compteurs est renouvelé pour ef- fectuer un histogramme. La Figure 1 représente un schéma synoptique d'un exemple de réalisation d'un système classique d'entrée/sortie de données de ce type. On va d'abord décrire brièvement le fonctionnement de ce système. (1) Une entrée de données est amorcée à partir d'une source de données de grande capacité 5 par un processeur 1. (2) Les données d'entrée sont d'abord appliquées, par l'inter- médiaire d'une interface 2, à une première mémoire-tampon 3. (3) Lorsque la première mémoire-tampon 3 est remplie de données d'entrée, le programme établit des adresses qui permettent d'in- troduire les données d'entrée dans une seconde mémoire-tampon 4. (4) Les données mémorisées dans le premier tampon 3 en (2) sont transférées dans une mémoire de grande capacité 6 pendant le temps o des données d'entrée sont appliquées au second tampon 4. (5) Quand le second tampon 4 est rempli de données d'entrée, le premier tampon 3 est à nouveau commuté et, pendant le temps !' 247 1652 o des données d'entrée sont appliquées au premier tampon 3, les contenus du second tampon 4 sont transférés et mémorisés dans la mémoire de grande capacité 6. En conséquence, les données provenant de la source de grande capacité 5 sont introduites dans l'ordinateur par une répétition des opérations décrites ci-dessus, qui sont mises en évidence dans le diagramme chronométrique de la Figure 2. A partir de ce diagramme chronométrique, on se rend compte que, pour exécuter les opérations (1) à (5) ci-dessus sans incident, les deux rela- tions suivantes doivent être satisfaites: (1) Le temps d'intervention (t, + t2) du programme pour les entrées dans le premier ou le second tampon doit être plus court que chacune des périodes de transfert T1 pendant lesquelles les données provenant de la source de grande capacité sont transfé- rées, cela étant exprimé par la relation: tî + t2 premier ou au second tampon 3 ou 4. La seconde relation (2) peut être résolue en utilisant une mémoire de grande capacité qui soit suffisamment rapide. La première relation (1) est telle que les données prove- nant de la source de grande capacité 5 puissent être introduites seulement si la période de transfert de données T1 est plus longue que le temps d'intervention (t1 + t2) du programme d'entrée/sortie prévu du côté du processeur. Ce temps d'intervention (t1 + t2) est habituellement de plusieurs millisecondes dans l'ordinateur courant, alors que le temps T1 intervenant dans ce type d'opérations est normale- ment de l milliseconde ou moins. En conséquence, si-la période de transfert de données Ti est plus courte que le temps d'intervention (t1 + t2), le système classique de la Fig. 1 ne peut pas effectuer l'entrée et la sor- tie des données. En correspondance, on a désigné par 14 sur la Fig. 1 un appareil d'établissement d'histogramme qui est utilisé dans la présente invention et qui sera décrit dans la suite. j. En conséquence, l'invention a pour but de fournir un pro- cédé et un système d'entrée/sortie de données qui soient capables d'assurer l'entrée/sortie de données pendant une courte période pendant laquelle des données sont transférées, tout en éliminant l'inconvénient des réalisations connues. Selon l'invention, il est prévu un procédé et un système d'entrée/sortie de données dans lesquels, lorsque le transfert d'entrée/sortie de données est effectué entre la source de don- nées de grande capacité et la mémoire de grande capacité pendant qu'une information de commande d'entrée/sortie de données est fournie par le processeur, et si le temps réel s'écoulant-entre des informations d'entrée/sortie provenant de la source de don- nées de grande capacité est plus court que le temps déterminé par le programme dans le processeur, un signal d'interruption inter- médiaire est engendré pour la synchronisation d'entrée/sortie de l'unité d'information d'entrée/sortie suivante, en permettant une commande continue du transfert de données d'une unité d'in- formation d'entrée/sortie à la suivante sans faire intervenir le programme se trouvant dans le processeur. On va maintenant décrire dans la suite un mode de réalisa- tion de la présente invention en référence aux Figures 3 à il. La Fig. 3 représente un système d'entrée/sortie de données 7 correspondant à un mode de réalisation de la présente invention et qui- comprend un bus d'entrée/sortie 9 pour le transfert de données entre la source de données de grande capacité 5 et le processeur 1, ainsi qu'une section de commande de-système d'en- trée/sortie 8 assurant la commande du bus 9. La section de com- mande d'entrée/sortie 8 comporte un registre de commande 10 ser- vant à mémoriser les informations effectives de commande d'entrée/ sortie. La Fig. 4 représente un exemple d'une information à mé- moriser dans le registre de commande 10. Cette information est formée d'une COMMANDE, qui comprend un code de commande tel que "remise à zéro", "lecture" et "écriture", un indicateur de chaîne de commande F1 signalant si la commande suivante à exé- cuter est enchaînée ou non ("1" indique la présence d'une chaîne et "0" l'absence d'une chaîne), un indicateur d'interruption F2 pour indiquer si un signal d'interruption doit ou non être ap- pliqué au processeur l quand cette commande a été exécutée - ("1" indique qu'un signal d'interruption est appliqué, et "O"10 in- dique une absence de signal d'interruption), une adresse initiale de données,"ADRESSE DE DONNEES" qui doit être fournie par une mémoire du processeur 1, le nombre de mots de données,"COMPTE DE DONNES" à fournir, une "ADRESSE DE COMMANDE SUIVANTE" indiquant une adresse de la mémoire de processeur qui devient significative seulement quanf F1 = i et dans laquelle l'information de commande d'entrée/sortie suivante à exécuter est mémorisée, et un "FACTEUR D'IeTERRUPTION" qui constitue une information additionnelle pour identifier une information de commande d'entrée/sortie concernant le signal d'interruption, et qui est appliquée au processeur i en même temps que l'information anormale/normale de la commande lors de son interruption. On va maintenant décrire le fonctionnement du système d'entrée/sortie de données 7 en référence aux Fig. 5 à 7, o l'interface 2 de la Fig. 1 est remplacée par le système 7. Le processeur l représenté surla Fig. 5 comprend un tableau circulaire 12 d'informations de commande d'entrée/sortie dans lequel un nombre nécessaire de commandes à exécuter sont répar- ties circulairement, un programme de commande d'entrée/sortie 13 pour traiter l'interruption provenant du système d'entrée/ sortie de données 6, et des mémoires-tampons d'entrée 3' et 4' qui correspondent au premier et au second tampons 3, 4 de la Figure 1. On va maintenant décrire les opérations, en particulier une opération d'entrée: (1) Le programme d'entrée de données est exécuté de façon à appliquer un élément d'enclenchement du système d'entrée/sortie de données 7 à la section de commande d'entrée/sortie 8 (comme indiqué en Q sur la Fig. 5). (2) En relation avec l'organigramme de la Fig. 6, on voit que la section de commande 8 reçoit, par l'intermédiaire du registre de commande 10, la première information de commande d'entrée/ sortie provenant du processeur 1 ( Q), cette information étant transmise à la section de commande d'entrée/sortie de données il t G) o elle est décodée, et on voit que, si F1 = 1, l'infor- mation d'entrée/sortie suivante correspondant à l'ADRESSE DE COMMANDE SUIVANTE est reçue par le registre de commande 10 ( Q), 6 2471652 - ou bien que, si F1 = 0, un signal de fin d'interruption d'entrée/ sortie est adressé au processeur 1 par la section de commande d'entrée/sortie de données il ( @, Q). (3) La commande qui a été transférée du registre de commande 10 dans la section de commande d'entrée/sortie de données Il o elle a été décodée, par exemple la commande LECTURE,.est exécutée de façon que les données contenues dans la source de grande capacité soient lues,- soustl'action de l'instruction "COMPTE DE DONNEES", de manière à être transmises par l'intermédiaire du bus de trans- fert 9 dans la première mémoire-tampon 3' qui est spécifiée par l'"ADRESSE DE DONNEES" ( O., O). (4) Si F2 est égal à "1" dans la section de commande d'entrée/ sortie 11, le FACTEUR d'interruption est appliqué au processeur l en même temps que le signal d'interruption ( @, 0), puis les contenus du registre de commande sont décodés. Ensuite, le sys- tème d'entrée/sortie de données 7 opère en concordance avec l'or- ganigramme de la Fig. 6 pour-continuer l'opération d'entrée/sor- tie par l'instruction contenue dans le registre de commande, indépendamment du processeur 1. (5) Le processeur 1 répond au signal d'interruption fourni par le système d'entrée/sortie de données 7 en commençant le program- me d'entrée/sortie 13. Ce programme 13 effectue la discrimination des contenus du FACTEUR et il renouvelle le tableau circulaire 12 avec les informations de commande d'entrée/sortie éventuellement nécessaires ( Q). Ce processus permet un transfert semi-perma- nent de données. Ce programme de commande d'entrée/sortie 13 transmet simultanément l'information précisant que le premier tampon 3' est rempli de données. (6) Le programme d'entrée de données enclenche le programme de mémorisation de données de manière que les contenus du premier tampon 3' puissent être mémorisés dans la mémoire de grande capa- cité. La Figure 7 représente le diagramme temporel ou chronomé- trique des opérations décrites ci-dessus. Cette figure montre que, pour satisfaire le diagramme chronométrique de la Fig. 2, le temps tc nécessaire pour que le système d'entrée/sortie de données 7 effectue l'enchaînement des commandes respectives doit être plus court que la période de transfert de données T2 à partir de la source de données de grande capacité 5, c'est- à-dire que tc I Le temps tc, qui est au maximum de l'ordre de plusieurs u secondes, est nécessaire pour l'exécution de la séquence des opérations g - h - b - c d - e de la Fig. 6, ces opérations pouvant être exécutées par tous les éléments matériels, y compris les éléments rapides disponibles. En conséquence, le système d'entrée/sortie 7 selon l'invention exerce moins de limitation sur T2 que le système classique. Bien que dans la description faite ci-dessus, on prenne en considération les données d'entrée provenant de la source de données de grande capacité 5, il est également possible d'assurer conformément à la présente invention la transmission de signaux de sortie à la source de données 5. En outre, comme le montre la Fig. 8, si on suppose un accès direct en mémoire (DMA), les temps T1 et T2, qui ont été pris en considération, peuvent être définis par T = (tr td) sur la Fig. 8. Si tc est suffisamment petit et si t td le temps de transfert de données par mot. A cet égard, pour un accès direct en mémoire DMA corres- pondant à 100 kmots/s, on a t 1 1 r 100 kmots/s=10i - Puisque td est généralement d'environ 1 ps, T = tr - td = 9 P5 En conséquence, le temps t, qui est habituellement de plusieurs ps, est inférieur à T. Dans les systèmes connus, la machine à 16 bits effectue des opérations d'entrée/sortie au maximum à une vitesse de 64k-mots/s dans le temps d'intervention du système opérationnel (OS), tandisque le système selon l'invention permet d'effectuer des opérations u'entrée/sortie dans un temps bien plus court. Conformément à la-présente invention, comme décrit ci-dessus, le temps nécessaire pour passer d'une opération de traitement d'entrée/sortie à l'opération suivante d'entrée/sortie peut être rendu bien plus court que dans le système de programmation clas- sique. En outre, le tableau circulaire du registre de commande peut être renouvelé à l'avance par l'interruption, ce qui permet un transfert rapide d'une grande quantité de données, avec une continuité semi-permanente. 8 2471652 On va maintenant décrire la fonction de l'appareil de gé- nération d'histogramme 14 de la Figure 1. Cet appareil de géné- ration d'histogramme est prévu dans un système d'entrée/sortie auquel des données d'image sont appliquées ou par lequel des données d'image sont fournies, cet appareil ayant pour fonction de collecter les données d'histogramme en parallèle au traitement d'entrée/sortie, en vue de réduire apparemment le temps néces- saire à la collecte des données d'histogramme. Un appareil d'établissement d'histogramme semblable a été revendiqué dans le brevet des Etats-Unis d'Amérique No. 3 979-555. On va maintenant décrire de façon détaillée le fonction- nement de l'appareil d'établissement d'histogramme 14 qui est utilisé dans le système selon l'invention. - La Figure 9 montre l'agencement de cet appareil d'établis- sement d'histogramme. L'appareil comprend des parties de couplage 16 et 18 qui sont connectées à la source de données d'image (bande magnétique) et à une unité d'entrée/sortie d'ordinateur (non représentée), un bus 19 de transfert de données d'image, une partie de commande 17 pour fournir des instructions à une partie d'établissement d'histogramme 20 à l'aide des signaux provenant des parties de couplage 16 et 18, un groupe de comp- teurs 23 servant à établir l'histogramme en correspondance à chaque élément d'image, un codeur d'adresse de compteur 21 ayant pour fonction de coder l'adresse correspondante du groupe de compteurs 23 à partir de la valeur d'éléments d'image qui est transmise par le bus de données 19, et une section de com- mande de compteurs22 ayant pour fonction de renouveler les contenus du groupe de compteurs à l'aide de l'instruction pro- venant de la section de commande et des contenus du codeur d'adresse de compteur 21 et de transférer les contenus du groupe de compteurs, par l'intermédiaire du bus de données 19, à une mémoire de processeur 24. On a désigné par 5 une bande magnétique de haute densité de reproduction, qui constitue la source de données de grande capacité de la Figure 1, la mémoire 24 constituant la seule partie de mémorisation du processeur 1. On va maintenant décrire le fonctionnement de ces éléments en référence aux Figures 9 et 10. I 2 47 16 5 2 A l'aide de la commande fournie par le processeur 1, un signal "remise à zéro" est d'abord appliqué par l'intermédiaire de la partie de couplage 18 et de la section de commande 17 à la section de commande de compteurs 22, en vue d'assurer la remise à zéro des contenus du groupe de compteurs 23 ( ( Ensuite, une commande de lecture de données est'fournie par le processeur 1 de façon à amorcer la lecture des données d'image de satellite () . En d'autres termes, un signal provenant de la bande magnétique de haute densité de reproduction 5 est appliqué, par l'intermédiaire de la partie de couplage d'entrée 16, du bus de données 19, de la partie de couplage de sortie 18 et du bus d'entrée/sortie 15, à la mémoire de processeur 24 o il est mémorisé. Ces opérations sont mises en évidence sur le diagramme chronométrique de la Fig. 10, qui est typiquement établi de façon à permettre une compréhension aisée du minutage des opérations, et dans lequel le transfert de données d'image, le renouvellement du groupe de compteurs et la lecture d'histo- gramme sont indiqués dans la direction verticale alors que la génération du signal de remise à zéro, l'enclenchement de la lecture, etc., sont indiqués dans la direction horizontale. Comme dans la description faite ci-dessus, le signal de remise à zéro assure la remise à zéro du groupe de compteurs 23, le signal d'enclenchement de lecture est appliqué par le proces- seur 1 et les données d'image sont transférées. Ensuite, la collecte des données d'histogramme est amorcée par le processeur 1 et, simultanément, un ordre de démarrage est appliqué à la commande de compteur 22 par l'intermédiaire de la partie de couplage de sortie 18 et de la partie de commande 17 ( 18 et de la mémoire-tampon 15. La Fig. 11 représente le diagramme chronométrique ou de minutage qui est utilisé pour expliquer la collecte des données d'histogramme. En (a), des données d'image provenant de la bande magnétique à haute densité de reproduction sont transmises par le bus de données, en (b) les données d'image sont codées par le codeur d'adresse de compteur correspondant, et en (c) les contenus du groupe de compteurs sélectionnés par le signal codé sont renouvelés ou, plus spécifiquement, le groupe de compteurs effectue un comptage croissant de +1 pendant que le signal d'image est lu dans le processeur. En conséquence, quand l'appa- reil d'établissement d'histogramme 14 n'est pas utilisé, la collecte des données d'histogramme est effectuée après que les données d'image ont été mémorisées dans la mémoire de grande capacité et, en conséquence, on voit que l'utilisation de l'ap- pareil de génération d'histogramme décrit ci-dessus procure plus d'avantages que l'utilisation d'un calculateur ou ordinateur rapide.. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés;- elle est suscep- tible de nombreuses variantes accessibles à l'homme de l'art, suivant les applications envisagées et sans que l'on ne s'écarte de l'esprit de l'invention. 1 1 2471652 REVENDICATIONS 1.- Procédé d'entrée/sortie de données, caractérisé en ce que, lorsqu'un transfert d'entrée/sortie de données est effectué entre une source de données de grande capacité (5) et une mémoire de grande capacité (6) à l'aide de mémoires-tampons (3', 41) et en fonction d'une information de commande d'entrée/sortie de données fournie par un processeur (1), si l'intervalle de temps s'écoulant entre des transferts d'unités de données à entrer/sortir par rapport à la source de données de grande capacité (5) est plus court qu'une période d'intervention, qui est nécessaire pour bran- cher lesdites mémoires-tampons (3', 4') dans le transfert d'unités de données à entrer/sortir et qui est déterminée par un programme d'entrée/sortie contenu dans le processeur (1), un signal d'in- terruption est engendré par le processeur (1) de façon à être synchronisé sur l'instant d'amorçage d'entrée/sortie d'une unité de données qui suit celle en cours de traitement, en permettant ainsi la commutation du transfert entre une unité de données à entrer/sortir et la suivante pendant ledit intervalle de temps et indépendamment du programme d'entrée/sortie se trouvant dans le processeur (1). 2.- Procédé d'entrée/sortie de données selon la revendica- tion 1, caractérisé en ce que ladite unité de données à entrer/ sortir est constituée par un mot. 3.- Procédé d'entrée/sortie de données selon la revendica- tien 1, caractérisé en ce que ladite unité de données à entrer/ sortir est constituée de plusieurs mots. 4.- Procédé d'entrée/sortie de données selon la revendica- tion 1, caractérisé en ce que ladite information de commande d'en- trée/sortie de données fait partie d'un système circulaire qui est renouvelé tour à tour par utilisation dudit signal d'interruption de façon à être synchronisé sur l'instant d'amorçage d'entrée/ sortie d'une unité de données. e- Procédé d'entrée/sortie de données selon la revendica- tion 1, caractérisé en ce que la commutation de transfert entre une unité de données à entrer/sortir et l'unité de données sui- vante est effectuée en coïncidence avec la synchronisation sur l'instant d'entrée/sortie de l'unité de données suivante provenant de la source de données de grande capacité (5). 6.- Procédé d'entrée/sortie de données selon la revendica- tion 1, caractérisé en ce que la commutation de transfert entre une unité de données à entrer/sortir et l'unité de données sui- vante est effectuée avant la synchronisation sur l'instant d'entrée/sortie de l'unité de données suivante provenant de la source de données de grande capacité (5). 7.- Système d'entrée/sortie de données (7), caractérisé en ce qu'il comprend: (a) une mémoire (10) servant à recevoir d'un processeur une information de commande nécessaire pour la continuation d'une instruction et d'un transfert d'entrée/sortie de données, et également à mémoriser lesdites données; (b) des moyens (11) pour interpréter séquentiellement des informations mémorisées dans ladite mémoire (10) et pour per- mettre l'entrée/sortie de données par rapport à ladite source de données de grande capacité (5); (c) des moyens (11) pour engendrer un signal d'interruption de manière que, lorsque ledit transfert d'entrée/sortie de don- nées est effectué entre la source de données de grande capacité (5) et une mémoire de grande capacité (6), un signal d'interrup- tion finale d'entrée/sortie soit engendré et, dans ce cas, lors- que l'intervalle réel de commutation de transfert entre une unité de données d'entrée/sortie et l'unité de données suivante par rapport à la source de données de grande capacité (5), est plus court que l'intervalle de temps défini par un programme se trouvant dans le processeur (1), un signal d'interruption est engendré en synchronisme avec l'instant d'amorçage d'entrée/ sortie de ladite unité de donnée suivante. 8.- Système d'entrée/sortie de données selon la revendica- tion 7, caractérisé en ce que les données intervenant dans le processus d'entrée/sortie sont reçues en parallèle pour l'éta- blissement d'un histogramme. 9.- Système d'entrée/sortie de données, caractérisé en ce qu'il comprend: (a) une source de données de grande capacité (5); (b) un processeur (1) pour traiter les données provenant de cette source de données de grande capacité (5); 13 241 1652 (c) une mémoire-tampon (14, 15) incorporée audit processeur (1); (d) une mémoire de grande capacité (6) pour mémoriser les données se trouvant dans ladite mémoire-tampon (14,15); (e) un dispositif d'entrée/sortie de données (9) pour com- mander le transfert des données entre la source de données de grande capacité (5) et la mémoire-tampon (14, 15); et (f) un bus de transfert de données (9) prévu entre la source de données de grande capacité (5) et la mémoire-tampon (14, 15); en ce que ledit processeur (1) comprend un tableau circulaire (12) d'informations de commande d'entrée/sortie, en ce que ledit dispositif d'entrée/sortie (9) comprend un registre de commande (10) pour mémoriser l'information de commande d'entrée/sortie provenant du processeur (1) et une section de commande d'entrée sortie de données (11) pour engendrer un signal d'interruption finale d'entrée/sortie de données et un signal d'interruption intermédiaire en concordance avec l'information de commande pro- venant du registre de commande (10), et en ce que ledit proces- seur (1) contient en outre un programme de commande d'entrée/ sortie (13) pour le renouvellement dudit tableau circulaire (10) par ledit signal d'interruption.