FR 2574575 A1 19860613 FR 8418896 A 19841211 PROCESSEUR DE TRACE DE VECTEUR La présente invention a pour objet un pro- cesseur de tracé de vecteur pour lire et pour inscrire un vecteur dans une mémoire d'image d'un système in- formatique. En informatique, la transmission d'informa- tions du système informatique vers L'opérateur est souvent réalisée par affichage sur un terminal de vi- sualisation. Pendant Longtemps, les capacités des ter- minaux de visualisation ont éfé Limitées à l'affichage de caractères alphanumériques ou semi-graphiques. Pour répondre aux besoins de nombreux domai- nes tels que la conception assistée par ordinateur, ces terminaux de visualisation sont de plus en plus remplacés par des terminaux graphiques qui ont une résolution de 256 x 256 points ou davantage. Ces ter- minaux graphiques sont particulièrement intéressants dans les domaines o une information peut être avanta- geusement représentée par une image, tels qu'en méde- cine, en cartographie, en météorologie, en reconnais- sance des formes ou autre. Un terminal graphique comporte essentielle- ment une mémoire d'image, un processeur graphique et un écran de visualisation. Le processeur graphique, ou contrôleur d'écran graphique, comprend un processeur de calcul pour mettre à jour le contenu de la mémoire d'image en fonction des données reçues du système in- formatique, un générateur vidéo pour- délivrer à l'écran de visualisation un signal vidéo correspondant au contenu de la mémoire d'image, et un moyen de com- mande pour gérer les accès à la mémoire par le proces- seur de calcul et le générateur vidéo. Les processeurs graphiques connus sont réa- lisés sous forme de circuit intégré en technologie NMOS. Ils présentent à cet égard une limitation quant à La résoLution maximaLe de L'image affichabLe, qui est de l'ordre de 1024 x 1024 points. En effet, pour des images comportant un nombre de points plus impor- tant, le débit de données de La mémoire d'image vers L'écran de visuaLisation nécessite L'emploi des compo- sants TTL Les plus rapides (famiLle FAST), et pour des images de plus de 2000 x 2000 points, seuLe La techno- Logie ECL permet de réaLiser Le sériaLiseur du généra- teur vidéo. Ainsi, dans les processeurs graphiques en technologie NMOS, l'accès à la mémoire est pratique- ment accaparé par Le générateur vidéo, dès Lors que la résolution de l'image est importante. Ceci Limite La vitesse d'inscription en mémoire par le processeur de caLcuL dont l'accès à La mémoire d'image est pratique- ment réduit au temps de retour de trame du signal vidéo. En conséquence, La vitesse maximaLe d'inscrip- tion en mémoire n'est guère supérieure à 106 points/s. La vitesse d'inscription pourrait être aug- mentée par l'utilisation d'un processeur graphique en technologie ECL. Cependant une telle solution présen- terait L'inconvénient d'être coûteuse. Il parait plus judicieux, compte tenu de la très grande différence entre les débits de données supportés par le générateur vidéo et le processeur de calcul, de séparer ces deux moyens et de réaLiser, par exemple, le générateur vidéo en technologie ECL et le processeur de calcul en technologie NMOS. Ceci permet de diminuer les contraintes d'accès du processeur de calcul à la mémoire d'image, sans qu'il en résulte une augmentation de coût impor- tante pour le processeur graphique. En particulier, certaines configurations du générateur vidéo peuvent permettre un accès du processeur de calcul à la mémoire d'image,non seulement pendant le temps de retour de trame, mais aussi une ou plusieurs fois par ligne d'image. L'invention concerne un processeur de tracé de vecteur, ou processeur de calcul, réalisé sur un support distinct du générateur vidéo. L'originalité du processeur de tracé de vecteur de l'invention réside dans une architecture particulière, fondée sur une représentation de type connu d'un vecteur à tracer. Cette architecture autorise une vitesse d'inscription très importante, pouvant atteindre, par exemple, 5.106 pts/s en période de retour de la trame du signaL vidéo et en absence de rafraichissement de la mémoire d'image. Cette vitesse d'inscription est donnée à titre indicatif. Il est clair en effet que les perfor- mances du processeur de tracé de vecteur de l'inven- tion sont liées à la mémoire d'image utilisée, notam- ment au type de cycle d'accès (lecture-écriture ou lecture-modificationécriture) et à la présence ou l'absence de rafraîchissement. De manière précise, l'invention a pour objet un processeur de tracé de vecteurpour lireetinscrireun vecteur dans une mémoire d'image organisée en lignes et en colonnes, ledit vecteur étant défini par des coordonnées d'origine, une direction et une longueur, ledit processeur étant caractérisé en ce qu'il com- prend: - un registre d'adresse ligne et un registre d'adresse colonne, lesdits registres comprenant des entrées de commande d'incrémentation et de décrémentation, - un moyen de commande d'adresse comprenant un regis- tre d'octant et un registre de direction, ledit moyen de commande d'adresse délivrant des signaux aux entrées de commande des registres d'adresse, - un moyen de comptage, - un moyen de cadencement délivrant un signal de syn- chronisation desdits registres et moyens et recevant du moyen de comptage un signal d'autorisation Lorsque Le contenu du moyen de comptage est différent d'une valeur prédéterminée, - un circuit d'interface relié auxdits registres et moyens pour charger initialement les registres d'adresse avec les coordonnées de l'origine du vec- teur, le registre d'octant avec L'octant de la di- rection du vecteur, le registre de direction avec la forme canonique du vecteur selon le code de ROTHMAN et le moyen de comptage avec la longueur du vecteur. L'utilisation du code de ROTHMAN pour indi- quer les points élémentaires constituant le vecteur à tracer offre la possibilité de tracer les segments de droite, mais aussi tout autre type de courbes: cer- cle, caractère ou autre. Le processeur de tracé de vecteur de l'invention est plus souple sur ce point que les processeurs graphiques connus dont le tracé de vecteur est fondé sur la méthode de BRESENHAM qui est surtout intéressante pour le tracé de segments de droite. Selon un mode de réalisation préféré, le processeur de tracé de vecteur de l'invention comprend un registre de données à entrée parallèle et à sortie série, ledit registre de données étant chargé initia- lement par le circuit d'interface avec l'état des points élémentaires du vecteur, la sortie dudit regis- tre étant reliée à l'entrée de données de la mémoire d'image, le moyen de cadencement rythmant la sortie des données dudit registre. De manière préférée,-le registre de données comporte en outre une entrée série reliée à la sortie de données de la mémoire d'image et une sortie paral- lèle reliée au circuit d'interface. Avec cette structure, le processeur de tracé de vecteur peut simultanément Lire et écrire un vec- teur. Ceci permet L'effacement sélectif d'une partie d'une image inscrite antérieurement. IL suffit en effet, lors de L'écriture d'un vecteur dans la mémoire d'image, de lire et sauvegarder le vecteur mémorisé qui est remplacé par Ledit vecteur écrit dans la mé- moire d'image. Pour effacer ensuite Ledit vecteur écrit, il suffit de réinscrire Le vecteur sauvegardé. Cette possibilité d'effacement sélectif n'existe par dans les processeurs graphiques connus qui effectuent uniquement l'opération d'écriture d'un vecteur mais qui ne peuvent pas Lire un vecteur de La mémoire d'image. Selon une caractéristique de L'invention, pour une mémoire d'image à n plans paraLLèLes, o n est un entier Le processeur de tracé de vecteur com- prend n registres de données, chaque registre de don- nées étant associé à un plan d'image. SeLon un mode de réalisation préféré, Le moyen de comptage est un décompteur, Ledit décompteur émettant Le signal d'autorisation au moyen de cadence- ment tant que son contenu n'est pas nuL. De manière préférée, Le moyen de commande d'adresse comprend une matrice de transcodage à quatre entrées et quatre sorties, les sorties étant reliées aux entrées de commande d'incrémentation et de décré- mentation d'adresse, trois entrées étant reliées au registre d'octant et la quatrième entrée au registre de direction. Les caractéristiques et avantages de l'in- vention ressortiront mieux de la description qui va suivre donnée à titre illustratif mais non timitatif, en référence aux dessins annexés sur lesquels: - la figure 1 illustre schématiquement un système informatique comprenant un processeur graphi- que pour L'affichage d'une image numérique sur un écran de visuaLisation, Ledit processeur graphique comportant un processeur de tracé de vecteur conforme à L'invention, - les figures 2a et 2b représentent respectivement La forme numérisée d'un vecteur sur un écran de visuaLisation et La décomposition en octant des di- rections possibles d'un vecteur dans te plan de l'écran de visualisation, - La figure 3 représente schématiquement un mode de réalisation du processeur de tracé de vecteur de l'invention, et - La figure 4 illustre les commandes d'in- crémentation et de décrémentation des registres d'adresse en fonction du numéro d'octant et du contenu du registre de direction. On a représenté sur La figure 1 un terminal de visuaLisation comprenant un processeur graphique 2 relié par une voie bidirectionneLle 4 à un calculateur 6, et relié par une voie 8 à un écran 10. La voie bidirectionnelle 4 comprend un bus d'adresse, un bus de données et des Lignes de commande pour gérer ta transmission entre le calcuLateur 6 et Le processeur graphique 2. -Le processeur graphique 2 comprend princi- palement un processeur de tracé de vecteur 12, confor- me à l'invention, un générateur vidéo 14 et un moyen de commande 30. IL est relié à une mémoire d'image 16. Cette mémoire 16 est organisée en lignes et en colonnes. Elle peut comprendre un ou plusieurs plans parallèles, chaque plan comportant un bit par point d'image. L'accès à cette mémoire est réalisé par le processeur 12 et le générateur vidéo 14 par deux bus d'adresse 18, 20 utilisés respectivement pour dé- signer l'abscisse et l'ordonnée d'un point de l'image. Un moyen de gestion d'adresse 22 relié à la mémoire 16 par un bus d'adresse 24 traduit lesdites abscisse et ordonnée en une adresse physique. Le transfert de données entre le processeur 12 ou le générateur vidéo 14 et la mémoire 16 est réalisé par un bus de données bidirectionnel 26. Le processeur 12 peut ainsi lire ou écrire un vecteur dans la mémoire d'image 16. Le moyen de commande 30 du processeur gra- phique est relié par une première voie bidirectionnel- Le 32 au processeur de tracé de vecteur 12 et par une seconde voie bidirectionnelle 34 au générateur vidéo 14. Par ces voies, le moyen de commande 30 reçoit les demandes d'accès à la mémoire 16 du processeur 12 et du générateur 14 et renvoie des signaux d'acquittement lorsque l'accès à la mémoire est autorisé. En cas de conflit d'accès entre le processeur 12 et le généra- teur video 14, le moyen de commande 30 donne l'accès au générateur vidéo. Le moyen de commande 30 est en outre relié à la mémoire 16 par une voie 36 qui permet d'indiquer le type d'accès: lecture, écriture, remise à zéro ou autre. La mémoire d'image 16 est de préférence une mémoire dynamique fonctionnant en mode "nibble" pour accélérer la lecture. Ce mode consiste à lire plu- sieurs mots d'adresses successives en un seul cycle d'accès. Ces mots sont écrits dans un registre tampon du générateur vidéo 14. Ce registre tampon rend- asyn- chrone la lecture de la mémoire par le générateur vi- déo 14 et la sortie vidéo. Il permet donc d'intercaler un accès à la mémoire 16 en lecture ou en écriture par le processeur 12 entre deux cycles d'accès par le gé- nérateur vidéo. Le processeur 12 peut ainsi accéder à la mémoire d'image 16 plusieurs fois par ligne d'écran. A titre d'exemple, pour une image comportant 1728 points par ligne, et organisée en mot de 64 bits, une ligne d'écran correspond à 27 mots. Si chaque accès, en mode "nibble", permet la lecture de 4 mots, il suffit de 7 accès pour lire une ligne d'écran. Le processeur de tracé de vecteur 12 peut donc accéder à la mémoire d'image 16 pendant le temps de retour de trame, mais aussi plusieurs fois par ligne d'image. Ceci est un facteur autorisant une grande vitesse d'inscription d'un vecteur dans la mémoire 16 par le processeur 12. La structure particulière du processeur de tracé de vecteur 12 de L'invention contribue également à une grande vitesse d'inscription d'un vecteur dans la mémoire. On décrira en référence à la figure 3 un mode de réalisation particulier de ce processeur 12. On va tout d'abord indiquer La forme sous Laquelle un vecteur est mémorisé dans le processeur 12. Un vecteur est défini par plusieurs paramè- tres qui peuvent être ses coordonnées d'origine, abs- cisse et ordonnées, une direction, une longueur et, éventuellement, l'état (niveau de gris) de chaque point d'image constituant le vecteur. A titre d'exem- ple, on a représenté sur la figure 2a un vecteur dont l'abscisse d'origine est égale à 4, l'ordonnée d'ori- gine est égale à 1 et la- longueur est égale à 10. La direction est obtenue par combinaison d'un numéro d'octant et de la décomposition du vecteur selon le code de ROTHMAN. Le numéro d'octant associé à un vecteur cor- respond au secteur de l'espace contenant la direction de ce vecteur. Cette décomposition en secteurs est représentée sur la figure 2b. L'octant associé au vec- teur représenté sur la figure 2a est L'octant 2. Cette décomposition en octants est connue de l'homme de 257-4575 l'art. Elle permet de simplifier le tracé d'un vecteur car celui-ci peut être ramené dans tous les cas dans un octant de base, en généraL l'actant 0, par des symétries.autour des axes X et Y. Le tracé d'un vec- teur quelconque ramené dans L'actant de base peut être réalisé très rapidement par des algorithmes connus tels que l'algorithme de BRESENHAM. L'octant définit la direction générale du vecteur. La décomposition de ROTHMAN définit quant à elle la position relative de deux points successifs du vecteur. Ce code consiste à associer une première va- Leur lorsque l'on passe dans L'actant de base d'un point du vecteur au point successif par un déplacement horizontal c'est-à-dire par incrémentation de l'abs- cisse et une seconde valeur si l'on passe d'un point de vecteur au point successif par un déplacement en diagonale, c'est-à-dire par incrémentation de l'abs- cisse et de l'ordonnée. A titre d'exemple, si on note "0" la première valeur et "1" ta deuxième valeur, le vecteur représenté sur la figure 2a a pour décomposi- tion la séquence 0 1 0 I I 0 0 0 O. Le processeur de tracé de vecteur de l'in- vention utilise cette décomposition de ROTHMAN et le découpage en octant. On va maintenant décrire en réfé- rence à la figure 3 un mode de réalisation de ce pro- cesseur. Ce processeur de tracé de vecteur 12 com- prend principalement: - un registre d'adresse ligne 40 pour délivrer sur le bus d'adresse 18 l'abscisse d'un point d'image, le- dit registre comportant une entrée INC de commande d'incrémentation de son contenu et une entrée DEC de commande de décrémentation de son contenu, un registre d'adresse colonne 42 délivrant sur le bus d'adresse 20 l'ordonnée d'un point d'image, Ledit registre comportant également une entrée INC de commande d'incrémentation de son contenu et une entrée DEC de commande de décrémentation de son contenu, - un moyen de commande d'adresse 44 comportant un re- gistre d'octant 46 et un registre de direction 48 pour mémoriser La direction du vecteur à inscrire dans la mémoire seLon le code de ROTHMAN, - un moyen de comptage 50 pour mémoriser La Longueur du vecteur à traiter. - 10. Les registres d'adresse 40 et 42 et le re- gistre d'octant 46 sont des tampons à entrée et sortie paralLèle. Le registre de direction 48 est un registre à décalage à entrée paralLèle et à sortie série. Dans Le mode de réalisation représenté sur La figure 3, Le processeur de tracé de vecteur 12 com- porte également un registre de données 52. Ce registre permet L'inscription dans La mémoire d'un vecteur constitué d'une séquence quelconque de bits, ce qui facilite L'inscription en mémoire de vecteurs discon- tinus (traits mixtes, pointillés ou autre). Le registre de données 52 est associé à une mémoire dans LaqueLLe un bit est associé à un point d'image, c'est-à-dire dans LaquelLe L'image mémorisée est bicolore. Dans le cas d'une mémoire o un ensemble de n bits est associé à chaque point d'image, la mé- moire peut avantageusement être constituée de n plans parallèles, chaque plan mémorisant un bit de chaque point d'image. Le processeur de tracé- de vecteur 12 comporte alors un ensemble de n registres de données 52 commandé en parallèLe. Dans le cas de cette mémoire multiplan, Les registres d'adresse et le registre de commande d'adresse restent uniques. Le registre de données 52 est de préférence un registre à décalage comprenant des entrées et des sorties parallèles et série tel que le circuit 54AS877 de TEXAS INSTRUMENTS. L'entrée et la sortie série sont utiLisées pour le transfert en Lecture ou en écriture avec La mémoire d'image 16. L'entrée et ta sortie pa- rallèLes servent au transfert vers le système' informa- tique auquel est relié Le processeur graphique. Dans Le cas o Le registre de données 52 est omis, l'inscription d'un vecteur dans la mémoire d'image consiste à forcer la valeur des éLéments bi- naires de la mémoire correspondant aux points du vec- teur avec une valeur prédéterminée. L'inscription du vecteur peut également être réalisée au moyen d'un opérateur, par exemple de type OU-EXCLUSIF dont une entrée reçoit la valeur des éLéments binaires de la mémoire correspondant aux points du vecteur, l'autre entrée reçoit soit une va- leur prédéterminée soit des données délivrées par le registre de données 52, et dont la sortie, reliée à la mémoire d'image, délivre La valeur effective des points du vecteur à inscrire. Les différents registres du processeur de tracé de vecteur 12 sont chargés avec des données re- çues d'un calculateur par le bus bidirectionnel 4. Un circuit d'interface 54 reçoit lesdites données et des signaux de commande du calculateur et délivre ces don- nées sur un bus 56 interne au processeur 12. Le cir- cuit d'interface 54 peut comprendre notamment un re- gistre tampon en entrée pour mémoriser pLusieurs don- nées ou commandes reçues du calculateur et des moyens pour sélectionner chacun des registres du processeur 12. Le moyen de commande d'adresse 44 reçoit du circuit d'interface 54 d'une part un mot représentant la forme canonique du vecteur à inscrire selon le code de ROTHMAN, ce mot étant mémorisé dans le registre de direction 48, et d'autre part, le numéro d'octant qui est mémorisé dans le registre d'octant 46. Dans le mode de réalisation représenté sur la figure 3, un vecteur à tracer est décomposé en seg- ments de 32 bits. Un mot de 8 bits peut donc indiquer simultanément la longueur d'un segment et l'octant dans lequel est contenu le vecteur. Ce mot est reçu par le circuit d'interface 54 et mémorisé dans un re- gistre tampon 58. Les 5 bits correspondant à la longueur du segment sont ensuite chargés dans le moyen de comptage 50 et les 3 bits correspondant au numéro d'octant sont chargés dans le registre d'octant 46. Le moyen de comptage 50 est du type décomp- teur. Son contenu est décrémenté en synchronisme avec un signal d'horloge issu d'un moyen de cadencement 60. Ce moyen de cadencement 60 est relié de manière clas- sique aux différents éléments du processeur de tracé de vecteur 12. Ce moyen de cadencement a pour r8le de synchroniser le traitement des données par les diffé- rents éléments du processeur. Les signaux d'horloge sont délivrés sur ré- ception d'une autorisation délivrée par Le moyen de commande 30 et sont bloqués sur un signal reçu du moyen de décomptage. Le r8le de ce moyen de cadence- ment étant bien connu de l'homme de l'art, on n'a pas jugé utile de représenter les liaisons acheminant les signaux d'horloge de ce moyen de cadencement vers les éléments du processeur de tracé de vecteur 12.- Lorsque, par suite du décomptage, le contenu du moyen de comptage 50 devient nul, celui-ci émet sur une ligne 51 un signal vers le moyen de cadencement 60 pour stopper l'émission des signaux d'adresse et de donnée vers la mémoire d'image. Ce signal, ou un si- gnal dérivé, peut également être émis vers le circuit d'interface 54 pour signifier au calculateur que le segment de vecteur a été traité. On va maintenant expLiquer Le fonctionne- ment du processeur de tracé de vecteur 12. Dans un premier temps, Le circuit d'interface 54 charge les registres d'adresse 40 et 42 avec les coordonnées du point d'origine du segment, le registre de données 52 avec la valeur à inscrire dans la mémoire, le registre de direction 48 avec la forme canonique du vecteur selon le code de ROTHMAN et Le registre 58 avec la longueur du segment à inscrire et le numéro d'octant correspondant à la direction de ce segment. Le passage d'un point d'image à un autre est obtenu d'une part en commandant un décalage du contenu du registre de données 52 et d'autre part en modifiant les contenus des registres 40 et 42 en fonction du contenu du registre de direction 48 et du numéro d'oc- tant contenu dans le registre 46. Pour réaliser cette mise à jour, le moyen 44 de commande d'adresse com- prend un tampon 62 pour mémoriser le bit délivré par le registre 48 lors d'un décalage, et une matrice de codage 64 à 4 entrées et 4 sorties. Les entrées de cette matrice sont reliées respectivement à la sortie du tampon 62 et aux 3 sorties du registre d'octant 46; ces sorties sont reliées respectivement aux en- trées de commande d'incrémentation et de décrémenta- tion des registres d'adresse 40 et 42. On a représenté sur la figure 4 la table de vérité de cette matrice. Dans cette table, on a indi- * qué respectivement le numéro d'octant, le code binaire correspondant, la valeur du bit RD contenu dans le tampon 62 et l'action correspondante sur le contenu des registres d'adresse 40 et 42. REVENDICATIONS 1. Processeur de tracé de vecteur pour ins- crire un vecteur dans une mémoire d'image (16) organi- sée en Lignes et en coLonnes, Ledit vecteur étant dé- fini par des coordonnées d'origine, une direction et une Longueur, Ledit processeur étant caractérisé en ce qu'il comprend: - un registre d'adresse ligne (40) et un registre d'adresse colonne (42), lesdits registres compre- nant des entrées de commande d'incrémentation et de décrémentation, - un moyen de commande d'adresse (44) comprenant un registre d'octant (46) et un registre de direction (48), ledit moyen-de commande d'adresse délivrant des signaux aux entrées de commande des registres d'adresse, - un moyen de comptage (50), - un moyen de cadencement (60) recevant du moyen de comptage un signaL d'autorisation Lorsque Le contenu z20 du moyen de comptage est différent d'une vaLeur pré- déterminée et délivrant un signal de synchronisation de sortie des données desdits registres et moyens; Ledit signal de synchronisation n'étant actif qu'en présence du signal d'autorisation, - un circuit d'interface (54) relié auxdits registres et moyens pour charger initialement les registres d'adresse avec les coordonnées de l'origine du vec- teur, le registre d'octant avec L'octant de la di- rection du vecteur, le registre de direction avec la forme canonique du vecteur selon le code de ROTHMAN et le moyen de comptage avec la longueur du vecteur. 2. Processeur de tracé de vecteur selon la revendication 1, caractérisé en ce qu'il comprend un registre de données (52) ledit registre de données (52), ledit registre de données étant chargé initiale- ment par le circuit d'interface avec l'état des points élémentaires formant le vecteur, la sortie dudit re- gistre étant reliée à l'entrée de données de la mémoi- re d'image, le moyen de cadencement rythmant la sortie des données dudit registre. 3. Processeur de tracé de vecteur selon la revendication 2, caractérisé en ce que le registre de données (52) comprend en outre une entrée série reliée à la sortie de données de la mémoire d'image et une sortie parallèle reliée au circuit d'interface. 4. Processeur de tracé de vecteur selon l'une quelconque des revendications 2 et 3, pour une mémoire d'image (16) à n plans parallèLes o n est un entier caractérisé en ce qu'il comprend n registres de données (52), chaque registre de données étant associé à un plan d'image. 5. Processeur de tracé de vecteur selon l'une quelconque des revendications I à 4, caractérisé en ce que le moyen de comptage (50) est un décompteur, ledit décompteur émettant le signal d'autorisation au moyen de cadencement tant que son contenu n'est pas nul. 6. Processeur de tracé de vecteur selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le moyen de commande d'adresse comprend une matrice de transcodage (64) à quatre entrées et quatre sorties, les sorties étant reliées aux entrées de com- mande d'incrémentation et de décrémentation des regis- tres d'adresse (40, 42), trois entrées étant reliées au registre d'octant (46) et la quatrième entrée au registre de direction (48).