Brevet FR2509071A1 — publié le 19830107

Dispositif de commande de mémoire La présente invention concerne un dispositif de commande de mémoire pour un ordinateur destiné à traiter des données d'images bi-dimenssionnelles et elle a trait, plus particulièrement, à un dispositif de commande de mémoire utilisé pour extraire uniquement une partie nécessaire de données d'exploration d'images bi-dimensionnelles à une vitesse élevée de manière à l'emmagasiner dans des zones continues ou discontinues d'un dispositif de mémorisation et pour synthé- tiser les données d'images partielles emmagasinées dans le dispositif de mémorisation à l'endroit d'une partie déterminée d'une donnée d'image bi-dimensionnelle. Il est connu d'explorer des données de références ou de documents à l'aide d'un facsimilê pour inscrire ces données dans une mémoire d'un ordinateur Une opération consistant à choisir uniquement une donnée concernant une image partielle parmi les données d'image de document inscrites dans la mémoire et à la transférer dans une autre zone de la mémoire est appe- lée: une extraction partielle d'image Comme on peut le voir sur la figure 1, une donnée partielle 2 d'image d'une zone hachurée d'une donnée 1 d'image bi-dimensionnelle emmagasinée dans la mémoire est extraite et chargée dans des zones continues d'une mémoire L'opération opposée est appelée: une synthèse* L'opération d'extraction/synthèse des données d'images bi-dimensionnelles a, jusqu'à présent, été effectuée à l'aide de moyens logiciels ou de programmation demandant un long temps de traitement En supposant que le pouvoir de résolution des lignes explorées du facsimilé soit de huitlignes/mm, le supplé- ment pour chaque transfert de données soit d'une milliseconde et la vitesse de transfert de données soit d'un niégabytes/ seconde, il faut habituellement cinq secondes ou plus pour extraire 60 blocs de données d'images partielles d'une super- ficie de 1 cm X 10 cm. La présente invention a pour objet principal un dispositif de commande de mémoire capable d'extraire et de synthétiser des données d'images de documents à une vitesse élevée. La présente invention a encore pour objet un dispositif de commande de mémoire capable d'extraire et de synthétiser des données d'images de documents sans entraîner un encombrement des bus, c'est-à-dire des lignes omnibus, grâce à une diminution du nombre de fois qu'a lieu le transfert de ces données d'images de documents à travers un bus de données. La présente invention a encore pour objet un dispositif de commande de mémoire capable d'extraire et de synthétiser des données d'images de doruments et de déplacer une image partielle par un transfert des données emmagasinées dans des zones continues ou discontinues d'un dispositif de mémorisation jusqu'à d'autres zones continues ou discontinues Pour obtenir les objets ci-dessus, conformément à la présente invention, on branche le dispositif de commande de mémoire entre le dispositif de mémorisation et un processeur, c'est-à-dire un dispositif de traitement, de telle sorte que les opérations lecture/écriture de la mémoire soient effectuées de façon sélective en un seul ou en deux modes Dans un premier mode de-fonctionnement, les données sont transférées entre le processeur et le dispositif de mémorisation d'une manière clas- sique Dans un second mode de fonctionnement, les données de certaines zones du dispositif de mémorisation sont transférées dans d'autres zones de ce même dispositif de mémorisation par l'intermédiaire du dispositif de commande de mémoire Dans le second mode de fonctionnement, les fonctions d'extraction et de synthèse de données d'images de documents sont remplies. On va maintenant décrire la présente invention en se référant aux dessins annexés, sur lesquels: la figure 1 illustre des fonctions -d'extraction et de synthèse de données d'images les figures 2 A et 2 B illustrent une relation entre le transfert et le déplacement de données, l'extraction, la synthèse et le transfert de blocs de données d'images; La figure 3 est un schéma synoptique d'un premier mode de réalisation d'un dispositif de commande de mémoire de la présente invention; la figure 4 est un schéma synoptique d'un générateur d'adresse représenté sur la figure 3; la figure 5 est un schéma synoptique d'un organe de commande représenté sur la figure 3; et la figure 6 est un diagramme chronologique pour un signal de synchronisation et un signal lecture/écriture. La figure 2 illustre une fonction de transfert de données d'images de documents Les légendes sur la figure 2 À ont les significations suivantes: A,: adresse de début de source A 2: adresse de début de destination W: longueur latérale des données (données utiles) devant être transférées Il:intervalle entre données utiles %a l'endroit d'une source I 2: intervalle entre données utiles à l'endroit d'une destination N: nombre de répétitions pour le transfert de données utiles (longueur longitudinale des données utiles). Sur la figure 2 A, quand Il > O et I 2 > O,-la position d'une image partielle est déplacée comme représenté en (A) de la figure 2 B Quand Il ? O et I 2 = 0, l'image partielle est extraite comme représenté en (B) de la figure 2 B, et quand I = 0 et I 2 > 0, l'image partielle est synthétisée comme représenté en (C) de la figure 2 B, et quand Il = O et 12 = 0, une opération rapide de transfert de bloc est effectuée. Le dispositif de commande de mémoire de la présente invention effectue n'importe lequel de ces traitements à une vitesse élevée. La figure 3 est un schéma synoptique d'un premier mode de réalisation du dispositif de commande de mémoire de la 2 gô 9671 p,ésente invention Sur cette figure 3, le bloc entouré par une ligne en traits interrompus est un dispositif 5 de commande de mémoire Il se trouve entre une unité de traitement centrale (CPU) 3 et une mémoire 4 et est relié à cette CPU par l'inter- médiaire d'un bus 6 d'adresses, un bus 7 de données et un bus de commande 8. Le dispositif 5 de commande de mémoire comprend un interrupteur 10 d'adresses, un générateur 20 d'adresses, un organe de commande 30, un organe tampon lecture/écriture 40 et un interrupteur lecture/écriture 50. Lorsqu'un signal 501 de mode de fonctionnement émis par l'organe de commande 30 spécifie un mode 1 (dans lequel la mémoire 4 est utilisée comme dispositif de mémorisation princi- pal de la CPU 3), l'interrupteur 10 d'adresses envoie une donnée provenant du bus 6 d'adresses à la mémoire 4 sous forme d'une donnée d'adresse Lorsque le signal 501 de mode de fonctionnement spécifie un mode 2 (dans lequel la mémoire 4 est utilisée pour extraire ou synthétiser une image partielle), l'interrupteur 10 d'adresses env-oi e une donnée 507 provenant du générateur 20 d'adresses à la mémoire 4 sous forme d'une donnée d'adresse. L'organe tampon lecture/écriture 40 est une mémoire tampon dans laquelle est emmagasinée la donnée extraite de la mémoire 4 o U la donnée devant être inscrite dans la mémoire 4 e Il est actionné en deux phases Au cours d'une première phase, la donnée est inscrite dans l'organe tampon lecture/écriture 40 et au cours d'une seconde phase la donnée est extraite Un signal 502 de rythme lecture/écriture envoyé à partir de l'in- terrupteur lecture/écriture 50 détermine la source de la donnée et la destination de cette donnée Quand le signal 501 de mode spécifie le mode 1, le signal de rythme lecture/écriture 502 spécifie l'opération de lecture si la demande faite par la CPU 3 est l'opération de lecture et spécifie l'opération d'écriture si la demande est l'opération d'écriture Dans l'opération de lecture, la donnée est extraite de la mémoire 4 et envoyée à l'organe tampon lecture/écriture 40 au cours de la première phase, puis la donnée est envoyée à la CPU 3 au cours de la seconde phase L'opération d'écriture a lieu de façon inverse. Par contre, lorsque le signal 501 de mode spécifie le mode 2, le signal d'échantillonnage Iecture/écrituir 5 O spécilié alternativement l'opération de lecture et l'opération d'écriture. Au cours de la première phase, la donnée est extraite de la mémoire 4 et envoyée à l'organe tampon lecture/écriture 40 et au cours de la seconde phase la donnée est envoyée à la mémoire p-j 4 au lieu de la CPU 3 On obtient donc le transfert de la donnée dans la mémoire 4 sans que l'acheminement ait lieu par les bus 6 à 8. L'interrupteur lecture/écriture 50 engendre le signal 502 d'échantillonnage lecture/écriture Dans le mode 1, il spécifie l'opération de lecture ou l'opération d'écriture en fonction de la demande de lecture ou de la demande d'écriture de la CPU 3 Dans le mode 2, il spécifie alternativement l'opé- ration de lecture et l'opération d'écriture. Le générateur 20 d'adresses calcule une adresse de source et une adresse de destination dans le mode 2 La figure 4 est un schéma synoptique du générateur 20 d'adresses Sur la figure 4, les chiffres 201 206 désignent des registres ou des compteurs destinés à emmagasiner les paramètres représentés sur la figure 2, ces registres étant constitués par un compteur 201 d'adresses de source, un registre 202 d'intervalles de source, un compteur 203 d'adresses de destination, un registre 204 d'intervalles de destination, un registre 205 de mots et un registre 206 de boucles Ces registres et ces compteurs enre- gistrent une donnée initiale arrivant de la CPU 3 en synchro- nisme avec un signal 503 d'échantillonnage de données inililés arrivant de l'organe de commande 30. Un sélecteur 213 d'adresses sélectionne le contenu du compteur 201 d'adresses de source et la cadence d'un signal de lecture d'un signal 509 de sélection lecture/écriture (voir figure 6) et sélectionne le contenu du compteur 203 d'adresses 250967 1 de destination à la cadence d'un signal d'écriture et envoie la donnée 507 d'adresse sélectionnée à l'interrupteur 10 d'adresses Les compteurs 201 et 203 d'adresses et le compteur 201 de mots sont augmentés d'une unité par chaque impulsion 504 de commande d'adresses représentée sur la figure 6 Lorsque le contenu du compteur 211 de mots et le contenu du registre 205 de mots sont égaux, un comparateur 209 détecte cette égalité et envoie un signal de transfert 505 aux additionneurs 207 et 208, au compteur 211 de mots et au compteur 212-de boucles L'additionneur 207 réagit au signal de transfert 505 en ajoutant le contenu du compteur 201 d'adresses de source au contenu du registre 202 d'intervalles de source et renvoie la somme résultante au compteur 201 d'adresses de source L'addi- tionneur 208 réagit également au signal de transfert 505 en ajoutant le contenu du compteur 203 d'adresses de destination au contenu du registre 204 d'intervalles de destination et renvoie une somme résultante au compteur 203 d'adresses de destination De cette manière, en sautant les contenus du comp- teur 201 d'adresses de source et du compteur 203 d'adresses de destination au cours du transfert de données, la donnée discontinue peut 9 tre transférée d'une façon continue. Le compteur 211 de mots réagit au signal de transfert 505 en remettant à O son contenu Il réagit également au signal de transfert 505 en augmentant d'une unité le contenu du comp- teur 212 de boucles. Ensuite, les opérations ci-dessus sont répétées de sorte que le contenu du compteur 212 de boucles augmente séquentiellement à partir de la valeur initiale 0 Lorsque le contenu atteint celui du registre 206 de boucles, un comparateur 210 détecte cette condition et envoie un signal 506 de fin de transfert à l'organe de commande 30 L'organe de commande 30 commande le générateur 20 d'adresses Ceci apparait en détail sur la figure 5 L'organe de commande 30 comprend un décodeur 501 d'instructions, un générateur 302 de rythme, un générateur lecture/écriture 303, un générateur 304 d'impulsions de compte d'adresses et un générateur 305 de signal d'interruption. Le décodeur 301 d'instructions décode un signal 81 d'instruction arrivant de la CPU 3 par l'intermédiaire du bus de commande 8, détermine le mode du signal de commande, engendre le signal 501 de mode et l'envoie au générateur 302 de rythme, à l'interrupteur 10 d'adresses et à l'interrupteur lecture/écriture 50 Dans le mode 1, le décodeur 301 d'ins- tructions envoie le signal 81 transitant par le bus de commande 8 à l'interrupteur lecture/écriture 50 sans aucune modification ( 510) Dans le mode 2, il décode le signal 81 d'instructions et envoie le signal décodé au générateur 20 d'adresses sous la forme du signal 503 d'échantillonnage de données initiales Le générateur 302 de rythme reçoit le signal 501 de mode de fonc- tionnement arrivant du décodeur 301 d'instructions ainsi qu'une impulsion de rythme 82 arrivant de la CPU 3 par l'intermédiaire du bus de commande 8 Dans le mode 2, il divise l'impulsion de rythme 82 et envoie l'impulsion de rythme divisé au générateur lecture/écriture 303 et au générateur 304 d'impulsions de compte d'adresses sous la forme d'un signal 508 de rythme de fonctionnement Dans le mode 1, le signal de rythme 508 n'est pas engendré. Dans le mode 2, le générateur lecture/écriture 303 spécifie alternativement l'opération de lecture et l'opération d'écriture à l'aide du signal 509 de sélection de lecture/ écriture en synchronisme avec le signal de rythme 508 et l':en- voie au générateur 20 d'adresses et à l'interrupteur lecture/ écriture 50 (voir figure 6). De façon similaire, dans le mode 2, le générateur 304 d'impulsions de compte d'adresses engendre une impulsion 504 de compte d'adresses en synchronisme avec le signal de rythme 508 et l'envoie au générateur 20 d'adresses (voir figure 6). Le générateur 305 d'interruption reçoit le signal 506 de fin de transfert arrivant du générateur 20 d'adresses et le convertit en un signal d'interruption 83 pour la CPU 3 et l'applique au bus de commande 8. Comme on l'a décrit ci-dessus, dans le dispositif 5 de commande de mémoire de la présente invention, tous les signaux de commande et toutes les données sont transférés sans aucune modification entre la CPU 3 et la mémoire 4 dans le mode 1 comme c'est le cas dans le dispositif de mémoire principale classique Par conséquent, dans le mode l, la mémoire 4 joue le même rôle que le dispositif de mémoire principale classique. Par contre, dans le mode 2, la mémoire 4 fonctionne tout d'abord dans le mode lecture et est adressée par le contenu du compteur 201 d'adresses de source de telle sorte que les données de source soient extraites de l'organe tampon lecture/ écriture 40 Au cours de la seconde phase, la mémoire 4 est commutée dans le mode écriture et elle est adressée par le contenu du compteur 203 d'adresses de destination de telle sorte que les données emmagasinées dans l'organe tampon lecture/écriture soient emmagasinées dans ce compteur 203 d'adresses de destination De-cette manière, les données dans la mémoire 4 sont transférées à une vitesse élevée sans utilisation des bus 6-8. Les contenus du compteur 101 d'adresses de source et du compteur 203 d'adresses de destination ne sont pas seulement augmentés dtune unité pour chaque transfert mais également de comptes prédéterminés (h 1, I 2) qui y sont ajoutés à un inter- valle constant pour permettre le transfert des données discon- tinues représentées sur la figure 2. L'extraction et la synthèse de l'image partielle à l'aide du dispositif de commande de mémoire de la présente invention sont exécutées de la façon suivante. (l) Les paramètres nécessaires pour le transfert (l'adresse A 1 de début de source, l'adresse A 2 de début de destination, la longueur F Wl de donnée utile, l'intervalle Il de donnée utile de source, l'intervalle I 2 de donnée utile de destination et le nombre N de transfert) sont déterminés. Les données devant être spécifiées sont établies dans les registres de la CPU 3 et un signal de commande d'établissement de paramètres est envoyé au dispositif 5 de commande de mémoire Du fait que le signal de commande d'établissement de paramètres spécifie le mode 2, le décodeur 301 d'instructions de l'organe de commande 30 décode le signal de commande et engendre le signal correspondant 503 d'échantillonnage de don- nées initiales Les valeurs initiales sont donc inscrites dans les registres et compteurs 201-206 du générateur 20 d'adresses. ( 2) Le signal de commande pour ordonner le début de l'exécution du transfert de données dans le mode 2 est envoyé à partir de la CPU 3 Il en résulte que le générateur 302 de signal de rythme de l'organe de commande 30 commence l'opération et envoie le signal de rythme 508 au générateur 63 de signal lecture/écriture Le transfert de données pour l'extraction ou la synthèse est exécuté en réponse au signal de rythme ou d'horloge 508. ( 3) Lorsque le transfert de données a été répété le nombre de fois spécifié, le contenu du compteur 212 de boucles atteint la valeur (N) du contenu du registre 206 de boucles. Le comparateur 210 détecte cette condition et envoie le signal 506 de fin de transfert à l'organe de commande 30 Le générateur 305 de signal d'interruption de l'organe de commande 30 réagit au signal 506 de fin de transfert de manière à arrêter le fonc- tionnement du générateur 302 de signal de rythme et envoie le signal 83 d'interruption de fin à la CPU 3 La CPU 3 réagit au signal d'interruption de fin de manière à détecter la fin du transfert de données Grâce à la présente invention, on peut obtenir par une seule opération de démarrage l'extraction et la synthèse de l'image partielle ainsi que les autres fonctions de transfert représentées sur la figure 2 B Il en résulte qu'aucun supplément n'est inclus pour le logiciel et que le traitement est exécuté à une vitesse élevée. De plus, aucun encombrement des lignes omnibus n'a lieu car les opérations d'extraction et de synthèse sont exécutées dans la mémoire. REVE Ni DICATIONS 1 Dispositif de commande de mémoire branché entre une mémoire ( 4) destinée à l'emmagasinage de données d'images et un organe de -traitement ( 3), caractérisé par le fait qu'il comprend: (a) un générateur ( 20) d'adresses pour fournir de façon alternée une adresse de lecture de donnée devant être extraite de ladite mémoire et une adresse d'écriture de donnée devant être inscrite dans ladite mémoire; (b) un organe de commande ( 30) pour engendrer un premier signal de mode et un second signal de mode; (c) un moyen ( 10) de commutation d'adresses sensible, d'une part, audit premier signal de mode pour fournir à ladite mémoire un signal d'adresse provenant dudit organe de traitement par l'intermédiaire d'un bus d'adresses et, d'autre part, audit second signal de mode pour fournir à ladite mémoire le s Wignal d'adresse arrivant dudit générateur d'adresses; (d) une mémoire tampon ( 40) reliée à ladite mémoire; et (e) un moyen ( 50) sensible audit second signal de mode pour effectuer de façon alternée et répétée une opération d'extraction de données à l'endroit d'une première zone spéci- fiée par ladite adresse de lecture et d'emmagasinage de la donnée de lecture dans ladite mémoire tampon ainsi qu'une opéra- tion d'écriture de donnée emmagasinée dans ladite mémoire tampqn dans une seconde zone spécifiée par ladite adresse d'écriture. 2 Dispositif de commande de mémoire suivant la revendication 1, caractérisé par le fait que ledit générateur d'adresses comprend un premier compteur ( 201) pour l'emmagasi- nage d'une adresse de début, À d'une première zone, un second compteur ( 203) pour l'emmagasinage d'une adresse de début A 2 d'une seconde zone, des moyens ( 207, 208) pour augmenter les contenus desdits premier et second compteurs à une cadence présentant une relation prédéterminée avec une cadence de il lecture/écriture de données, et un moyen sélecteur ( 213) pour envoyer de façon choisie et alternée les sorties desdits premier et second compteurs audit moyen ( 10) de commutation d'adresses. 3 Dispositif de commande de mémoire suivant la revendication 2, caractérisé par le fait que ledit générateur d'adresses comprend un premier registre ( 205) pour emmagasiner des informations représentant une longueur de bloc de donnée W 1 de données multiblocs emmagasinés dans une première zone, un second registre ( 202) pour emmagasiner des informations représentant un intervalle de bloc de donnée Il, un troisième compteur ( 211) adapté pour 8 tre incrémenté en synchronisme avec lesdits premier et second compteurs, et un moyen pour décaler le contenu dudit premier compteur d'une quantité présentant une relation avec ledit intervalle Il lorsque le contenu dudit premier registre et le contenu dudit troisième compteur sont égaux. 4 Dispositif de commande de mémoire suivant la revendication 2, caractérisé par le fait que ledit générateur d'adresses comprend un premier registre ( 205) pour emmagasiner des informations représentant une longueur de bloc de donnée Y, de données multiblocs emmagasinées dans une première zone, un troisième registre ( 204) pour emmagasiner des informations représentant un intervalle de bloc de donnée I 2 de données devant être emmagasinées dans une seconde zone, un troisième compteur ( 211) adapté pour être incrémenté en synchronisme avec lesdits premier et second compteurs, et un moyen pour dé- caler le contenu dudit second compteur ( 203) d'une quantité présentant une relation avec ledit intervalle I 2 lorsque le contenu dudit premier registre ( 205) et le contenu dudit troi- sième compteur ( 211) sont égaux. Dispositif de commande de mémoire suivant la revendication 2, caractérisé par le fait que ledit générateur d'adresses comprend un premier registre ( 205) pour emmagasiner des informations représentant une longueur de bloc de donnée W 1 de données multiblocs emmagasinées dans une première zone, un second registre ( 202) pour emmagasiner les informations repré- sentant un intervalle de bloc de donnée Il dudit bloc de donnée, un troisième registre ( 204) pour emmagasiner des informations représentant un intervalle de bloc de donnée I 2 de données. devant être emmagasinées dans une seconde zone, un troisième compteur ( 211) adapté pour être incrémenté en synchronisme avec lesdits premier et second compteurs ( 201, 203) et un moyen pour décaler le contenu dudit premier compteur d'une quantité présentant une relation avec ledit intervalle Il et pour décaler le contenu dudit second compteur-d'une quantité présentant une relation avec ledit intervalle 12 lorsque le contenu dudit premierregistre ( 205) est égal au contenu dudit troisième compteur ( 211). 6 Dispositif de commande de mémoire suivant l'une quelconque des revendications 3, 4 ou 5, caractérisé par le fait que ledit générateur d'adresses comprend un quatrième- registre ( 206) pour emmagasiner des informations représentant le nombre N de blocs de données, un quatrième compteur ( 212) pour compter le nombre de coïncidences des contenus respectifs dudit troisième compteur ( 211)eb dudit premier registre ( 205), et un moyen pour mettre fin au transfert de données entre la- dite première zone et ladite seconde zone lorsque le contenu dudit quatrième compteur atteint le contenu dudit quatrième registre.