FR2613100A1 - Processeur graphique perfectionne - Google Patents

Processeur graphique perfectionne Download PDF

Info

Publication number
FR2613100A1
FR2613100A1 FR8703469A FR8703469A FR2613100A1 FR 2613100 A1 FR2613100 A1 FR 2613100A1 FR 8703469 A FR8703469 A FR 8703469A FR 8703469 A FR8703469 A FR 8703469A FR 2613100 A1 FR2613100 A1 FR 2613100A1
Authority
FR
France
Prior art keywords
segment
data
memory
address
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR8703469A
Other languages
English (en)
Inventor
Anthony John Pelham
Walter Robert Steiner
William Scott Didden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of FR2613100A1 publication Critical patent/FR2613100A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

L'INVENTION CONCERNE L'INFOGRAPHIE. L'INVENTION PROPOSE UN PROCESSEUR GRAPHIQUE 10 QUI COMPORTE UN PROCESSEUR INDEPENDANT 32 DESTINE A PARCOURIR UNE BASE DE DONNEES GRAPHIQUES A STRUCTURE HIERARCHISEE. LE PROCESSEUR INDEPENDANT GENERE UN TRAIN D'ADRESSES QUI SONT APPLIQUEES A LA MEMOIRE 16 DANS LAQUELLE LA BASE DE DONNEES EST ENREGISTREE. LA MEMOIRE REAGIT AUX ADRESSES EN EMETTANT UN TRAIN DE DONNEES SUR UNE VOIE DE TRANSMISSION DE DONNEES UNIDIRECTIONNELLE ET RESERVEE 34, DIRIGEE VERS UN PROCESSEUR GEOMETRIQUE 36. APPLICATION AUX SYSTEMES DE CONCEPTION ASSISTEE PAR ORDINATEUR.

Description

La présente invention concerne des processeurs pé-
riphériques, et elle porte plus particulièrement sur des pro-
cesseurs destinés à traiter une structure de données hiérar-
chisée. Les systèmes informatiques comprennent souvent des processeurs périphériques destinés à augmenter la vitesse de calcul du système global. Les processeurs périphériques sont
de façon caractéristique spécialisés pour accomplir efficace-
ment une ou plusieurs fonctions. Un processeur périphérique de ce type consiste en un processeur graphique qui est conçu
pour créer, modifier et visualiser une base de données gra-
phiques sous la commande d'un ordinateur principal ou "hôte".
On utilise des processeurs graphiques dans diverses
applications. Par exemple, les systèmes interactifs de con-
ception assistée par ordinateur (CAO) utilisent souvent des
processeurs graphiques pour enregistrer et visualiser un mo-
dèle du ou des objets à concevoir. Le concepteur dirige le système à l'aide de divers dispositifs d'entrée, pour créer le modèle, en procédant souvent "morceau par morceau". Les
divers morceaux du modèle forment une base de données graphi-
ques qui est enregistrée par le processeur graphique et vi-
sualisée à la demande. Lorsque le concepteur apporte des changements au modèle, le système modifie la base de données
et met à jour l'écran de visualisation pour présenter le mo-
dèle modifié.
Un format pour l'enregistrement d'une base de don-
nées graphiques constitue ce qu'on appelle une "liste de vi-
sualisation hiérarchisée", dans laquelle des données graphi-
ques décrivant divers objets (ou des morceaux des objets) sont
enregistrées dans des "segments". On peut considérer que cha-
que segment représente un objet. Chaque segment peut avoir un ou plusieurs segments qui lui sont associés selon une relation parent/enfant. Le segment "enfant" d'un segment "parent" peut
à son tour être associé à un ou plusieurs segments enfants.
Cette relation parent/enfant entre des segments conduit à une structure hiérarchisée en "arbre" telle que celle représentée
sur la figure 2.
Chaque segment d'une base de données graphiques hiérarchisée contient de façon caractéristique une information de structure qui comprend des "pointeurs" qui désignent des segments parents, enfants et "frères". On appelle segments
frères les segments qui ont le même segment parent. Un "poin-
teur" pour un segment identifie la position de mémoire de dé-
part de ce segment. En plus des données de structure, chaque segment peut également contenir des primitives graphiques et
des attributs de ces primitives. Un primitive graphique con-
siste de façon caractéristique en un objet plan simple tel
qu'un polygone ou un vecteur, défini par une liste de coor-
données dans un système de coordonnées tridimensionnel commode
pour cette primitive graphique particulière. Les données d'at-
tributs pour une primitive graphique pourraient définir la couleur ou d'autres caractéristiques de la primitive, et elles
comprennent également une matrice de transformation qui spéci-
fie la position spatiale et l'orientation de la primitive gra-
phique du segment par rapport au système de coordonnées du
segment parent. Une caractéristique d'une base de données gra-
phiques hiérarchisée consiste en ce que dans le cas o l'in-
formation d'attributs n'est pas différente de celle du segment parent, il n'est pas nécessaire qu'elle soit définie dans le segment enfant, et peut à la place être "héritée" du segment parent.
Sous la dépendance d'ordres provenant de l'ordina-
teur hôte, un processeur graphique peut créer, copier ou sup-
primer des segments de la base de données hiérarchisée qui
est de façon caractéristique enregistrée dans une mémoire sé-
parée du processeur graphique. Le processeur graphique peut en outre supprimer, ajouter ou modifier diverses données gra- phiques telles que des attributs, des primitives graphiques et une matrice de transformation, dans chaque segment, sous la dépendance d'ordres de niveau hôte. Une fois que la base
de données hiérarchisée a été entièrement constituée, le pro-
cesseur lit et traite la base de données graphiques, en pro-
duisant sur l'écran de visualisation des images des objets représentés par la base de données graphiques, tels qu'ils sont vus par une "fenêtre d'observation" qui est définie par l'ordinateur hôte. Pour lire la base de données graphiques,
le processeur graphique "parcourt" la base de données en li-
sant des données dans un segment de la base de données et en
passant ensuite à un segment associé (parent, enfant ou fré-
re) qui est identifié par les pointeurs de segments, confor-
mément à un algorithme de parcours. De cette manière, le pro-
cesseur graphique parcourt l'arbre jusqu'à ce que la liste de
visualisation ait été traitée.
Des processeurs graphiques perfectionnés peuvent accomplir un certain nombre de fonctions de traitement sur les données graphiques des segments. Une fonction importante consiste à tester les primitives graphiques du segment pour déterminer si ces primitives sont contenues dans le champ de vision défini par la fenêtre d'observation. Dans la négative, le segment et ses enfants peuvent être ignorés dans la suite
du traitement.
Un traitement supplémentaire de données graphiques comprend la concaténation de matrices de transformation pour produire pour chaque segment une matrice de transformation
qui peut transformer le système de coordonnées de la primiti-
ve graphique du segment pour donner le système de coordonnées
du segment de fenêtre d'observation, au "sommet" de l'arbre.
Le processeur graphique peut également "couper"' des primitives graphiques partiellement visibles, de façon que les parties de primitives qui s'étendent à l'extérieur du champ de vision ne
soient pas traitées.
Des primitives graphiques qui sont définies en trois dimensions sont de façon caractéristique projetées de l'espace
tridimensionnel vers un plan d'image bidimensionnel de la vi-
sualisation. Les deux principales techniques de projection
sont la projection parallèle et la projection en perspective.
On peut accomplir la projection parallele en ignorant simple-
ment la troisième coordonnée (profondeur) du système de coor-
données tridimensionnel. D'autre part, on peut effectuer une projection en perspective en divisant les composantes des deux premières coordonnées par la troisième composante, pour donner l'effet d'une diminution de taille pour les primitives qui
sont plus éloignées de l'observateur.
Une fois que les primitives graphiques ont été cou-
pées et projetées, le processeur graphique convertit les coor-
donnees en "coordonnées de matériel" qui sont utilisées pour
visualiser les primitives sur l'écran de visualisation. A par-
tir des coordonnées de matériel, les primitives sont soumises à une opération de conversion en format de balayage par trame, qui convertit les coordonnées de matériel des primitives en
ensembles de pixels. Les primitives correspondant à des poly-
gones faisant face vers l'arrière sont supprimées pour tout
traitement ultérieur effectué par le processeur.
On peut en outre établir une "gradation" des carac-
téristiques visuelles des surfaces visibles, en utilisant di-
verses techniques. Une technique consiste à employer simple-
ment l'attribut de couleur qui est défini dans le segment de chaque primitive. Une autre technique de gradation utilise la
profondeur de chaque pixel pour calculer un facteur d'atténua-
tion pour le pixel. Par exemple, des primitives qui sont pro-
ches de l'observateur peuvent être visualisées avec la couleur spécifiée dans les attributs de segments. Plus une primitive est éloignée d'un observateur, plus la teinte de la couleur d'attribut sélectionnée est sombre. Une telle technique de gradation constitue ce qu'on appelle la "sélection de teinte par la profondeur". On réalise un troisième type de gradation en modélisant une source lumineuse et en calculant une inten-
sité de gradation sur la base de lois optiques simples. Lors-
qu'on la met en oeuvre primitive par primitive, cette techni-
que constitue ce qu'on appelle une "gradation à faettes".Lors-
qu'on la met en oeuvre pixel par pixel, la technique consti-
tue ce qu'on appelle une "gradation progressive" ou une"gra-
dation de Gouraud".
Ce qui précède permet de voir qu'un volume de cal-
cul considérable est souvent nécessaire pour traiter et vi-
sualiser une primitive graphique d'un segment. Des modèles complexes peuvent nécessiter une base de données de milliers de segments. Il en résulte qu'un processeur graphique peut nécessiter un temps considérable pour convertir la base de
données en une image sur l'écran.
Pour augmenter la vitesse à laquelle une image peut être générée, de nombreux processeurs graphiques utilisent en
plus d'une unité centraleprincipale, un ou plusieurs co-pro-
processeurs spécialisés, qu'on appelle souvent des "proces-
seurs géométriques", pour accomplir un grand nombre des opé-
rations arithmétiques nécessaires pour les fonctions d'élimi-
nation, de coupure, de tranformation de matrices, etc. Cepen-
dant, avec de nombreux processeurs graphiques antérieurs de ce type, une durée atteignant 20 secondes dans le cas de grandes bases de données, peut toujours être nécessaire pour mettre les images à jour sur l'écran, après un changement des données dans la base de données graphiques. Dans de nombreuses
applications, une telle durée de retard peut nuire considéra-
blement à l'efficacité du processeur graphique. Par exemple, dans des systèmes de conception assistée par ordinateur, le
fait d'attendre 20 secondes pour la mise à jour de la visuali-
sation lorsqu'un changement a été introduit, peut être très
gênant et conduire à une mauvaise utilisation du temps de tra-
vail du concepteur. Pour d'autres applications dans lesquelles des changements dans les données doivent être visualisés d'une manière plus proche du temps réel, un processeur graphique à réponse lente peut être totalement inutilisable. On voit donc qu'une amélioration considérable de la vitesse de traitement
de données graphiques est nécessaire.
Un but de l'invention est de procurer un système de traitement graphique perfectionné dans lequel la vitesse de
traitement de basesde données soit considérablement améliorée.
On atteint ce but et cet avantage, ainsi que d'au-
tres, grace à un processeur graphique ayant une architecture
originale qui facilite le parcours de la base de données gra-
phiques. Dans le mode de réalisation qui est représenté, le processeur graphique comprend un premier processeur destiné à créer et à entretenir une base de données graphiques sous la
dépendance d'ordres provenant d'un ordinateur hôte. Conformé-
ment à l'invention, après avoir été déclenché par le premier processeur, un second processeur parcourt indépendamment la base de données, en lisant rapidement les segments de données graphiques, à une cadence qui est optimisée pour le traitement géométrique. Pour faciliter encore davantage le parcours de la base de données, le processeur graphique comporte une voie de
données réservée directe, qui n'est utilisée que pour des opé-
rations de lecture dans le parcours de la base de données. La voie de données réservée connecte la mémoire du processeur
graphique au second processeur, qui peut comporter un proces-
seur géométrique séparé. On a trouvé qu'une telle configura-
tion augmentait considérablement la cadence à laquelle des données graphiques peuvent être lues dans la base de données
graphiques et traitées.
Selon un autre aspect de l'invention, le second pro-
cesseur comprend une logique de génération d'adresse, qu'on
appelle ici une "logique de parcours d'arbre", qui adresse ra-
pidement la mémoire du processeur graphique, de façon à four-
nir un train de données graphiques sur la voie de données ré-
servée, dirigée vers un processeur géométrique. Le processeur géométrique trie les données et il enregistre les données d'attributs des seuls segments "potentiellement visibles", en les transmettant par un bus de pile qui relie le processeur géométrique à une mémoire à structure de pile qui se trouve dans la logique de parcours d'arbre. Une fois que le dernier segment d'un chemin de parcours a été atteint, la logique de
parcours d'arbre change de direction et repasse en sens in-
verse par les segments visibles du chemin. Pendant le par-
cours en sens inverse, les données d'attributs des segments visibles sont transférées de la pile de parcours d'arbre vers
le processeur géométrique, par l'intermédiaire du bus de pile.
En outre, la logique de parcours d'arbre adresse les primiti-
ves graphiques des segments potentiellement visibles et elle
transfère les primitives graphiques vers le processeur géomé-
trique, par la voie de données réservée, en vue d'un traite-
ment ultérieur. On a trouvé qu'une telle configuration aug-
mentait notablement la cadence d'utilisation d'un processeur géométrique et la cadence de traitement de données du système considéré dans son ensemble. Il en résulte que des images présentées sur l'écran peuvent être mises à jour beaucoup plus rapidement sous l'effet de modifications apportées à la
base de données graphiques.
La suite de la description se réfère aux dessins
annexés qui représentent respectivement:
Figure 1: un schéma d'un processeur graphique con-
forme à un mode de réalisation préféré de l'invention; Figure 2: un schéma d'un exemple d'une base de données hiérarchisée; Figure 3: deux exemples d'objets représentés par
une base de données graphiques, avec des systèmes de coordon-
nées associés; Figure 4: un diagramme d'un bloc de commande de segment de la base de données de la figure 2;
Figure 5: un diagramme d'un bloc de commande de seg-
ment prototype de la base de données de la figure 2; Figure 6: un diagramme d'un bloc de commande de segment d'appel de la base de données de la figure 2, Figure 7: un diagramme d'un paquet de tampon d'élimination ou de tampon de données de la base de données de la figure 2; Figure 8: un schéma du sous-système de traitement géométrique du processeur graphique de la figure 1; Figure 9: un diagramme du format de données de la pile de la logique de parcours d'arbre du processeur graphique de la figure 1;
Figure 10: un schéma de la mémoire de liste de vi-
sualisation du processeur graphique de la figure 1; Figure 11: un diagramme séquentiel illustrant une opération de lecture effectuée par la logique de parcours d'arbre du processeur graphique de la figure i; Figure 12: un diagramme séquentiel illustrant une opération d'écriture effectuée par l'intermédiaire du bus de système du processeur graphique de la figure 1; Figure 13: un schéma synoptique plus détaillé de la logique de parcours d'arbre de la figure 8; Figure 14: un schéma de l'interface de mémoire de liste de visualisation pour la logique de parcours d'arbre de la figure 13; Figures 15A-15C: des schémas de circuits logiques destinés à la réalisation des circuits logiques de commande
de l'interface de mémoire de liste de visualisation de la fi-
gure 14;
Figure 16: un diagramme de transitions d'états ré-
duit pour les circuits logiques de commande des figures 15A-
C; Figure 17: un diagramme séquentiel qui illustre une opération caractéristique de lecture de mémoire de liste
de visualisation par la logique de parcours d'arbre de la fi-
gure 13;
Figure-18: un schéma plus détaillé du circuit con-
trôleur de pile de la logique de parcours d'arbre de la figure 13; Figures 19 et 20: des diagrammes de transitions d'états pour l'automate d'états finis du contrôleur de pile de la figure 18; Figure 21: un diagramme séquentiel illustrant les
relations temporelles pour divers signaux d'adresse et de com-
mande de groupes de registres pendant une opération de trans-
fert de pile; Figures 22A et 22B: des diagrammes séquentiels qui
illustrent respectivement des opérations d'écriture et de lec-
ture de la mémoire à structure de pile de la figure 18.
Figure 23: un diagramme séquentiel qui illustre les relations temporelles pour des signaux d'adresse, de données et de commande du contrôleur de mémoire à structure de pile de la figure 18; Figure 24: un schéma plus détaillé de l'unité arithmétique et logique de la figure 13 Figure 25: un tableau qui illustre le contenu des registres de l'unité arithmétique et logique;
Figure 26: un schéma synoptique du groupe de regis-
tres de mémoire de liste de visualisation et des circuits tam-
pons associés de la figure 13; Figure 27: un tableau qui illustre le contenu du groupe de registres de mémoire de liste de visualisation de la figure 26;
Figure 28: un schéma représentant les circuits lo-
giques de la logique de commande d'adresse de la figure 26;
Figures 29A et 29B: des schémas synoptiques qui re-
présentent le micro-séquenceur, les registres d'état/commande et la mémoire de microprogramme de la figure 13;
Figure 30: un schéma d'un circuit de synchronisa-
tion de l'interface de bus de système de la figure 13
Figure 31: un diagramme de transitions d'états re-
présentant les cycles esclaves externes et de demande d'in-
terruption de l'automate d'états finis de la logique de syn-
chronisation et de commande de la figure 29B; Figure 32: une représentation des circuits logi- ques destinés à réaliser l'automate d'états finis de cycle
d'interruption de la logique de synchronisation et de comman-
de de la figure 29B; Figure 33: une représentation du circuit logique destiné à réaliser l'automate d'états finis de cycle esclave externe de la logique de synchronisation et de commande de la figure 29B;
Figure 34: une représentation du format d'instruc-
tions que la logique de parcours d'arbre reçoit par le bus de système;
Figure 35: un circuit logique d'entrée pour l'au-
tomate d'états finis de la logique de synchronisation et de commande de la figure 29B; Figure 36: une représentation du circuit logique de sortie pour l'automate d'états finis de la logique de synchronisation et de commande de la figure 29B;
Figure 37: une partie de la logique de synchroni-
sation et de commande de la figure 29B, destinée à générer des signaux de commande de demande d'interruption dirigés vers le bus de système;
Figure 38: une partie de la logique de synchroni-
sation et de commande de la figure 29B, destinée à commander la ligne d'horloge du micro-séquenceur;
Figure 39: une partie de la logique de synchroni-
sation et de commande de la figure 29B, destinée à produire un signal de commande de restauration synchrone;
Figure 40: une partie de la logique de synchroni-
sation et de commande de la figure 29B, destinée à retarder le signal de sortie du circuit de commande de la figure 38
Figure 41: une partie de la logique de synchroni-
l sation et de commande de la figure 29B, destinée à produire un signal de commande de dépassement de capacité de pile;
Figure 42: une partie de la logique de synchronisa-
tion et de commande de la figure 29B, destinée à produire un signal de commande d'erreur de bus; et
Figure 43: un schéma du processeur de terminal ap-
partenant au processeur graphique de la figure 1.
En considérant maintenant la figure 1, on voit un système de traitement graphique (qu'on appellera ci-après le "processeur graphique") conforme à un mode de réalisation préféré de l'invention, qui est désigné de façon générale par
la référence 10. Le processeur graphique 10 comprend un pre-
mier processeur 12 qu'on appelle un "processeur de terminal".
Le processeur de terminal 12 exécute des ordres de niveau hôte reçus à partir d'un ordinateur hôte (non représenté), par
l'intermédiaire d'une interface d'hôte 14. La majorité des or-
dres de niveau hôte portent sur la construction et la gestion d'une base de données graphiques, sous la forme d'une liste de
visualisation hiérarchisée qui est enregistrée dans une mémoi-
re 16. Le processeur de terminal 12 communique avec la mémoire de liste de visualisation 16 par un bus de système universel 18 qui, dans le mode de réalisation représenté, est un bus
standard à 32 bits du type "VMEbus". On peut trouver les spé-
cifications du standard VMEbus dans le document VBEbus Speci-
fication Manual, Rev. B, août 1982, VMEbus Manufacturers Group. Les ordres de niveau hôte sont émis par un programme d'application d'ordinateur hôte qui réside dans l'ordinateur hôte. L'utilisateur du programme d'application d'ordinateur hôte peut également introduire directement des données dans le processeur graphique en utilisant divers dispositifs d'entrée graphiques, tels qu'une tablette graphique 20 et un clavier
alphanumérique 22. Il est également possible d'utiliser d'au-
tres dispositifs d'entrée tels que des manches à balai, des
souris et des dispositifs à boutons ou à billes (non représen-
tés). On peut utiliser l'information d'entrée provenant de ces dispositifs pour émettre des ordres graphiques pour modifier la base de données, changer des paramètres d'observation et effectuer des transformations de déplacement panoramique ou de zoom sur l'image graphique que fournit un dispositif de visua- lisation 26. De cette manière, des applications telles que la conception assistée par ordinateur disposent d'une commande
locale interactive du dispositif de visualisation.
Conformément à l'invention, un second processeur est
prévu pour lire rapidement la liste de visualisation hiérar-
chisée qui est enreaistrée dans la mémoire 16. Le second pro-
cesseur comprend un sous-système de traitement géométrique 30 qui comporte une logique de génération d'adresse 32 destinée à adresser la mémoire de liste de visualisation. La logique de
génération d'adresse, qu'on appelle ici la "logique de par-
cours d'arbre" 32, parcourt de segment en segment la liste de visualisation hiérarchisée, en adressant séquentiellement les données de chaque segment. Ce parcours de la liste convertit la structure d'arbre de la liste de visualisation en un train de données sur une voie de données réservée, qu'on appelle le bus de mémoire de liste de visualisation (DLTM) 34. Le bus de DLM 34 dirige le train de données vers la logique de parcours d'arbre 32, et vers un processeur géométrique 36 qui accomplit
les fonctions de traitement d'élimination, de coupure, de pro-
jection et de concaténation de matrices de transformation.
Précédemment, de nombreux processeurs graphiques utilisaient une seule unité centrale de traitement programmée pour remplir les fonctions de création et de gestion de la base de données, ainsi que de parcours de la base de données
pour lire les données graphiques en vue de leur traitement.
Au contraire, on a trouvé que l'architecture de l'invention permettait d'augmenter considérablement la cadence de parcours de la base de données. Selon un aspect, la logique de parcours d'arbre 32 peut générer rapidement les adresses appropriées pour le parcours de la base de données. En outre, le bus de
2 6 13100
ILM 34 procure une voie de données unidirectionnelle et réser-
vée, de la mémoire de liste de visualisation 16 vers la logi-
que de parcours d'arbre 32 et vers le processeur géométrique 36, de façon que ce bus de DLM 34 puisse accepter des cadences de transfert de données extrêmement élevées. Selon un autre aspect de l'invention, une voie de
données bidirectionnelle qu'on appelle le bus de pile 38, con-
necte directement le processeur géométrique 36 à la logique de parcours d'arbre 32. Comme on l'expliquera ci-après de façon plus détaillée, le processeur géométrique 36 ne traite pas complètement chaque primitive graphique avant de passer à la primitive suivante. A la place, le processeur géométrique 36 transfère directement vers la logique de parcours d'arbre, par
le bus de pile 38, des données graphiques telles que des at-
tributs de couleur (voir la figure 9), si pendant le processus
d'élimination ce processeur géométrique détermine que les pri-
mitives graphiques associées sont potentiellement visibles. La logique de parcours d'arbre 32 enregistre dans une mémoire à structure de pile, selon un mode premier entré, dernier sorti,
les données graphiques qui proviennent du processeur géométri-
que. Une fois que la logique de parcours d'arbre a atteint le
dernier segment d'un parcours, elle change de direction et re-
vient en arrière en passant par les segments potentiellement
"visibles", c'est-à-dire les segments qui comportent des pri-
mitives graphiques potentiellement visibles.
Pendant que la logique de parcours d'arbre 32 remon-
* te le chemin de parcours de segment en segment, elle retrans-
fère vers le processeur géométrique 36, par le bus de pile 38, les données graphiques qui sont enregistrées dans la mémoire à structure de pile. Simultanément, la logique de parcours
d'arbre 32 adresse des données graphiques supplémentaires en-
registrées dans la mémoire de liste de visualisation qui, dans
le mode de réalisation considéré, sont les primitives graphi-
ques elles-mêmes. Les primitives graphiques sont transférées vers le processeur géométrique 36 par le bus de DL'- 34. Le processeur géométrique 36 utilise les données provenant de la mémoire à structure de pile de la logique de parcours d'arbre, et de la mémoire de liste de visualisation 16, pour poursuivre le traitement des données en vue de la visualisation. pans le mode de réalisation qui est représenté, le processeur géométrique accomplit des opérations de coupure et de projection pour les primitives graphiques d'un segment, et il effectue une partie des calculs de gradation appropriés. Une fois que
le processeur géométrique a terminé, il transmet les primiti-
ves graphiques accompagnées des attributs hérités (sous la forme d'un "paquet de bord") à un processeur de visualisation , par l'intermédiaire du bus de système 18. Le processeur
géométrique 36 est décrit de façon plus détaillé dans la de-
mande de brevet française déposée le même jour par la deman-
deresse sous le titre "Processeur g6ométrique pour un système d'infographie".
Le processeur de visualisation 14 accomplit la con-
version sous un format de balayage par trame, la suppression
des surfaces cachées et le reste des calculs de gradation.
Pour convertir sous un format de balayage par trame une primi- tive graphique consistant en un polygone, on divise la primi-
tive en une série de segments de lignes qu'on appelle des "plages", qui correspondent aux lignes de trame du dispositif
de visualisation à tube cathodique 26. Les plages sont elles-
mêmes subdivisées en éléments d'image (ou en "pixels") qui
correspondent aux pixels du dispositif de visualisation 26.
Pour des primitives consistant en polygones, la gradation est
calculée de manière incrémentielle le long de chaque plage.
On n'utilise généralement pas de gradation pour des primitives
consistant en vecteurs.
Pour éclairer un pixel, les valeurs de couleur et d'intensité qui ont été calculées pour ce pixel pendant le
trEtement de gradation sont transférées vers une mémoire tam-
pon d'image 42 par un bus vidéo 44. La mémoire tampon d'image
42 comporte une position de mémoire pour chaque pixel du dis-
positif de visualisation vidéo 26. Avant que l'information de pixel soit transférée vers la position de mémoire associée de la mémoire tampon d'image 42, on utilise un algorithme de
"tampon Z" pour accomplir l'élimination des surfaces cachées.
Lorsqu'une primitive est convertie en pixels par une opération de conversion sous un format de balayage par trame, la valeur de profondeur est calculée pour chaque pixel. Cette valeur de
profondeur est comparée à une valeur de profondeur qui est en-
registrée dans un "tampon Z" 46. Le tampon Z 46 comporte une
position de mémoire pour l'enregistrement d'une valeur de pro-
fondeur pour chaque pixel du dispositif de visualisation vidéo.
Le tampon Z enregistre la plus faible valeur de profondeur (c'est-à-dire celle correspondant au pixel le plus proche de
l'observateur) de chaque pixel calculé, pour une position par-
ticulière de pixel d'écran. Si la valeur de profondeur enre-
gistrée dans le tampon Z est supérieure à la valeur de profon-
deur du nouveau pixel, le nouveau pixel se trouve derrière l'ancien (et est donc invisible), et le nouveau pixel est ignoré. Si au contraire, la valeur de profondeur du nouveau
pixel est inférieure à la valeur de profondeur qui est enre-
gistrée dans le tampon Z, le nouveau pixel se trouve devant l'ancien, et les valeurs de couleur et d'intensité qui ont été
calculées pour le pixel sont transférées vers la mémoire tam-
pon d'image 42, pour remplacer les valeurs de l'ancien pixel.
En outre, la valeur de profondeur du nouveau pixel est enre-
gistrée dans la position de mémoire appropriée du tampon Z 46.
L'information de pixel est lue dans la mémoire tampon d'image en synchronisme avec le balayage par trame du tube cathodique, pour produire les images sur le dispositif de visualisation vidéo. Le processeur de visualisation 40, la mémoire tampon
d'image 42 et le tampon Z 46 sont décrits de façon plus dé-
taillée dans la demande de brevet des E.U.A. nc 87 01846 dépo-
sée le 20 février 1987.
Pour permettre une meilleure compréhension du fonc-
tionnement et de la structure du processeur graphique 10, la 2 6D 1 3 10 v
figure 2 montre un exemple simplifié d'une liste de visualisa-
tion hiérarchisée du type en arbre. La liste de visualisation de la figure 2 représente et décrit les objets représentés sur la figure 3, qui comprennent une tasse et une soucoupe, 50, et un cube 52. Ces objets simples n'ont été choisis que dans un but d'illustration. Dans la pratique réelle, on peut modéliser
des objets considérablement plus complexes.
On peut considérer le cube 52 comme un ensemble de six faces 1-6, dans lequel chaque face est représentée par un polygone à quatre côtés ayant une couleur et une gradation particulières, et une relation spatiale particulière avec le cube considéré dans son ensemble. De cette manière, on peut
modéliser des objets complexes en décomposant l'objet en for-
mes simples (primitives graphiques) auxquelles est associée
une information d'attribut.
L'élément de base dans la liste de visualisation de la figure 2 est le segment. Chaque segment peut comporte des primitives graphiques (telles que des polygones, des vecteurs,
etc.), des attributs (tels qu'une couleur de polygone, une ma-
trice de transformation, etc) et une information de structure (telle que des pointeurs désignant des segments connexes). On
appelle également de tels segments des "noeuds".
Le segment racine ou segment supérieur A de la fi-
gure 2 est le segment de "fenêtre d'observation" qui définit l'angle d'observation sous lequel les objets graphiques sont
observés, et le volume de l'espace qui est visible à l'obser-
vateur. A ce segment est associé un système de coordonnées de référence qu'on appelle un système de coordonnées "terrestres" et qui est représenté par les trois axes orthogonaux 54 sur
la figure 3. La relation spatiale entre la tasse et la soucou-
pe 50, et le cube 52, est définie au moyen de leurs coordon-
nées terrestres. L'angle d'observation sous lequel ces objets
sont observés est spécifié par une ligne de visée qui est dé-
finie par un point oculaire 56 et un point de visée 58. Le vo-
lume d'observation est défini par six "plans de coupure" qui
forment de façon caractéristique un tronc de pyramide.
Le point oculaire et le point de visée (spécifiés en coordonnées terrestres), associés à un angle d'inclinaison 9,
définissent un second système de coordonnées, à savoir le sys-
tème de coordonnées "oculaires". L'origine du système de coor- données oculaires se trouve au point oculaire 56, avec l'axe Z dirigé le long de la ligne de visée, dans la direction du point de visée 58. L'angle d'inclinaison 0 définit l'angle de rotation des axes X et Y autour de l'axe Z. De cette manière,
le système de coordonnées oculaires identifie l'angle d'obser-
vation sous lequel les objets seront observés.
Il existe un système de coordonnées connexe qui est le système de coordonnées oculaires pondérées, dans lequel les coordonnées X et Y du système de coordonnées oculaires sont pondérées pour simplifier le processus de coupure. Le segment
de fenêtre d'observation A comporte une matrice de transforma-
tion destinée à transformer des coordonnées dans le système de
coordonnées terrestres en coordonnées dans le système de coor-
données oculaires, et une seconde matrice de fenêtre d'obser-
vation pour convertir les coordonnées oculaires en coordonnées
exprimées dans le système de coordonnées oculaires pondérées.
Au-dessous du segment de fenêtre d'observation A de
la figure 2 se trouve un second segment de la liste de visua-
lisation, qu'on appelle le segment B. Le segment B est un
segment enfant du segment parent A, et il représente l'ensem-
ble tasse-soucoupe 50. Un système de coordonnées de "modèle" est associé à l'ensemble tasse-soucoupe 50, et on définit le système de coordonnées de modèle en plaçant son origine à un emplacement convenable, comme à un sommet d'un polygone de
l'ensemble tasse-soucoupe, et en alignant les axes avec cer-
taines des données de primitives. Toutes les données de pri-
mitives qui sont contenues dans un segment sont rapportées à son système de coordonnées de modèle associé. Le segment B comporte une matrice de transformation qui transforme des points dans le système de coordonnées de modèle du segment B,
2 6 1 3 100
pour les faire correspondre au système de coordonnées du seg-
ment parent A qui est le système de coordonnées terrestres.
Le segment B comporte également des pointeurs diri-
gés vers l'un de ses segments enfants, c'est-à-dire le segment D, et vers son segment frère, c'est-à-dire le segment C, qui représente le cube 52. Comme le segment B, le segment C est également un segment enfant du segment parent A, et il possède
son propre système de coordonnées de modèle 62, ayant une ori-
gine placée à l'un des sommets du cube 60, et trois axes ali-
gnés avec des arêtes du cube. Le segment C comporte à son tour
six segments enfants F-K, pour les six faces de cube 1-6 res-
pectives. Les segments F-K sont tout à fait similaires. A ti-
tre d'exemple, le segment F comporte des pointeurs dirigés vers le segment parent C, le segment frère G et un segment enfant (s'il en existe un). Le segment F possède son propre système de coordonnées dans lequel sont spécifiés les quatre sommets de la face de définition de polygone 1. Ce polygone
quatre côtés est la primitive graphique du segment F. Le seg-
ment F définit en outre la couleur et d'autres attributs de
la primitive graphique.
Chaque segment de la liste de visualisation est pré-
senté sous un format comprenant un certain nombre de tampons qui contiennent les données graphiques, et un bloc de commande qui comporte des pointeurs désignant les positions de mémoire auxquelles se trouvent les tampons. La figure 4 montre un
exemple d'un bloc de commande de segment d'un type caractéris-
tique. Le mot 0 est le pointeur de frère qui désigne le frère suivant du segment. Le segment de fenêtre de visualisation A de la liste de visualisation de la figure 2 ne comporte pas de
frère, et par conséquent le mot 0 du bloc de commande du seg-
ment A est fixé à une valeur nulle. Le segment B possède ef-
fectivement un frère et, par conséquent, le mot 0 du bloc de commande du segment B spécifie l'adresse de départ du bloc de commande du segment C. Le mot 1 définit un pointeur d'enfant qui désigne le premier segment enfant du segment considéré. Ainsi, par exemple, le mot 1 du bloc de commande du segment A désigne le segment B, qui est le-premier segment enfant du segment A. Le
mot 8 est le pointeur qui désigne le parent du segment.
La position du bloc de commande de segment qu'on appelle le mot 3 contient un pointeur désignant le tampon d'élimination du segment, qui enregistre les attributs des primitives graphiques. Parmi ces attributs figure un "volume de limitation", que le processeur géométrique 36 utilise dans le processus d'élimination. Le volume de limitation est un ensemble de huit points de coordonnées qui définit un volume contenant entièrement toutes les primitives graphiques pour un segment et toutes les primitives graphiques des segments
enfants. Le volume de limitation permet au processeur géomé-
trique 36 et à la logique de parcours d'arbre 32 d'éliminer rapidement des segments qui sont complètement à l'extérieur
du champ de vision.
Chaque fois que le processeur de terminal 12 intro-
duit de nouvelles données graphiques pour un segment ou modi-
fie une matrice de transformation, ce processeur de terminal met à jour les volumes de limitation pour l'ensemble de la liste de visualisation. Par exemple, si un nouveau polygone est introduit dans un segment, ceci peut augmenter la taille
du volume de limitation pour le segment considéré. Si le vo-
lume de limitation du segment augmente, il peut être néces-
saire d'augmenter la taille du volume de limitation du parent pour faire en sorte que le volume de limitation du parent
contienne le nouveau volume de limitation du segment enfant.
Ainsi, des changements dans un segment peuvent remonter pro-
gressivement dans l'arbre de la liste de visualisation, jus-
qu'à ce qu'on arrive à un segment qui n'est pas affecté par le changement. Le bit 24 du mot d'indicateur du mot 2 est instauré lorsque le segment a été modifié, pour indiquer que les volumes de limitation pour la chaine de parents de ce
segment peuvent également devoir être mis à jour.
Outre le volume de limitation, le tampon d'élimina-
tion contient également les données d'attribut qui définissent certaines caractéristiques des primitives graphiques. Si une caractéristique particulière n'est pas définie dans le-tampon d'élimination d'un segment, la définition de cette caractéris-
tique est héritée du segment parent. Par exemple, si le seg-
ment C indique que sa primitive graphique associée (s'il y en
a une) possède la couleur "rouge", tous ses enfants, c'est-à-
dire les segments de face F-K, qui ne définissent pas locale-
ment la couleur de la primitive graphique, hériteront de la
couleur rouge pour la primitive graphique. Cet héritage s'ef-
fectue de façon dynamique pendant le processus de parcours
d'arbre, comme on l'expliquera ci-après de façon plus détail-
1 ée.
Le tampon d'élimination contient également la ma-
trice de transformation destinée à transformer le système de
coordonnées locales (modèle) du segment, pour donner le sys-
tème de coordonnées de son segment parent. Une information de
source lumineuse peut également être enregistrée dans le tam-
pon d'élimination d'un segment de fenêtre d'observation.
Le mot 4 du bloc de commande de segment définit un pointeur qui désigne le tampon de données qui contient les données de primitives. Les primitives graphiques sont définies dans le système de coordonnées de modèle local du segment. Le
nom du segment est défini dans le mot 5.
La structure de liste de visualisation qu'utilise le processeur graphique 10 permet la "mise à disposition" de
segments. Ainsi, une fois qu'un seul segment a été créé, d'au-
tres segments dans la structure de liste de visualisation peu-
vent faire référence un nombre de fois quelconque à ce segment.
A titre d'exemple, un seul segment définissant une face de cube pourrait être appelé par chacun des segments F-K de la figure 2, au lieu de dupliquer cette information pour chaque enfant du segment C, Chaque référence au segment peut modifier les attributs du segment "mis à disposition", du fait que des
attributs peuvent être hérités pendant le parcours de l'arbre.
Ainsi, chaque segment F-K aurait une matrice de transformation différente pour positionner la face "mise à disposition" à
l'emplacement correct pour former le cube 60.
On utilise deux structures de segment spéciales pour
la mise à disposition. On appelle segment "prototype" le seg-
ment qui est capable d'être mis à disposition. Des segments
ordinaires tels que le segment représenté par le bloc de com-
mande de la figure 4 ne sont pas mis à disposition. Le segment
prototype est créé séparément de l'arbre de liste de visuali-
sation. Un segment prototype peut cependant posséder des en-
fants, ce qui fait qu'il peut lui-même être le segment supé-
rieur d'un sous-arbre.
On voit sur la figure 5 que le bloc de commande pour un segment prototype n'est que légèrement différent du bloc de commande normal qui est représenté sur la figure 4. Du fait que le segment prototype peut être appelé plusieurs fois, il
n'a pas un parent unique. Par conséquent, le pointeur de pa-
rent du mot 8 a été remplacé par un pointeur de "possesseur"
qui désigne le premier segment qui appelle le segment proto-
type. De plus, du fait qu'un segment prototype n'a pas de
frères, le pointeur de frère du mot O est nul.
Une fois qu'un segment prototype a été créé, il peut être incorporé dans la liste de visualisation chaque fois qu'il est appelé. L'appel est effectué avec un segment d'appel
de prototype, et le bloc de commande pour ce segment est re-
présenté sur la figure 6. Le segment d'appel fait partie de
l'arbre principal de la liste de visualisation, et il consti-
tue le lien entre l'arbre principal et le segment mis à dispo-
sition. Pendant le parcours de l'arbre, le segment qui est mis à disposition peut hériter des attributs, par l'intermédiaire
du segment d'appel. Si par exemple on utilise la mise à dispo-
sition pour représenter les faces du cube 60, chacun des seg-
ments F-K de la figure 2 est un segment d'appel de prototype.
On n'utilise de façon caractéristique un segment d'appel que pour incorporer un segment prototype dans l'arbre de la liste de visualisation. Il n'y a donc pas de données associées à un segment d'appel. Le mot 4 qui est utilisé en pointeur de tampon de données dans les blocs de commande de segment des figures 4 et 5 est utilisé ici à l.a place en poin- teur de partenaire pour désigner le segment d'appel suivant qui appelle le même segment prototype. Le mot 1 est utilisé
pour désigner le segment prototype.
On voit dans ce qui précède que les blocs de comman-
de d'un segment normal, d'un segment prototype et d'un segment
d'appel sont très similaires. Ces blocs de commande sont ap-
pelés ci-après de façon générale des "blocs d'en-tête d'objet".
Les bits respectifs 20, 19 et 18 du mot d'indicateur (mot 2)
indiquent, lorsqu'ils sont instaurés, le type du bloc d'en-
tête d'objet particulier.
Le mot 9 des blocs de commande des figures 4 et 5 contient le pointeur qui désigne le dernier paquet de données
dans le tampon de données du segment. Dans le mode de réalisa-
tion qui est représenté, toutes les quantités contenues dans la liste de visualisation (y compris les blocs de commande) sont enregistrées dans des paquets de longueur fixe de 16 mots ou de 32 mots, chaque mot comprenant 32 bits. Ces paquets de
longueur fixe facilitent les tâches d'accès en mémoire, d'af-
fectation de mémoire et de libération de mémoire.
La figure 7 représente un paquet caractéristique du tampon d'élimination ou du tampon de données. On utilise des mots de remplissage de la manière nécessaire pour emplir le paquet à 16 ou 32 mots. Des quantités qui ont habituellement une longueur supérieure à 32 mots (comme de nombreux types de données de primitives) sont décomposées en paquets de 16 (ou
32) mots, et enchainées ensemble au moyen de pointeurs de "pa-
quet suivant". Le pointeur de "dernier paquet de tampon de
données" du bloc de commande supprime la nécessité de parcou-
rir la totalité de la liste enchaînée pour trouver le dernier
paquet de tampon afin d'ajouter des données de segment.
21 31v Les segments décrits ci-dessus forment une liste de visualisation hiérarchisee que le processeur de terminal 12 crée et enregistre dans la mémoire de liste de visualisation
16 d'une manière classique. Le processeur de terminal 12 ac-
cède à la mémoire 16 par le bus de système 18. Une fois que la liste de visualisation a été enregistrée dans la mémoire, elle peut être parcourue et traitée pour produire les images
désirées des représentations d'objets qui sont enregistrées.
La figure 8 représente de façon plus détaillée le sous-système de traitement géométrique 30 qui accomplit le processus de parcours de la liste de visualisation et deux sous-processus de base de l'ensemble du traitement de données
graphiques. Le premier sous-processus est le processus "d'éli-
mination" qui détermine essentiellement si l'objet d'un seg-
ment est contenu ou non dans le champ de vision sélectionné.
Comme mentionné précédemment, à chaque segment est associé un volume de limitation qui englobe complètement les primitives graphiques du segment et toutes les primitives graphiques des enfants du segment. Le processeur géométrique 36 accomplit un test pour déterminer la position du volume de limitation par rapport au volume d'observation qui est défini par les six
plans de coupure. Si le test indique que le volume de limita-
tion du segment est complètement à l'extérieur du volume d'observation, toutes les primitives graphiques du segment sont invisibles, et le segment est éliminé. Autrement dit, le segment et tous les enfants du segment sont ignorés et ne font l'objet d'aucun traitement supplémentaire. Si le test indique que le volume de limitation est entièrement ou partiellement à l'intérieur du volume d'observation, les primitives graphiques du segment sont potentiellement visibles. Un autre test qui peut être effectué pendant le processus d'élimination est basé sur la taille projetée du volume de limitation. Si la taille d'écran projetée d'un volume de limitation d'un segment est inférieure (ou supérieure) à un nombre prédéterminé de pixels,
ce segment (et ses enfants) peut également être ignoré.
Si le volume de limitation rencontre un ou plusieurs des plans de coupure, l'opération de coupure des primitives graphiques qui rencontrent les plans de coupure sera effectuée ultérieurement dans le second sous- processus. L'opération de coupure supprime pour tout traitement ultérieur les parties
des primitives qui s'étendent au-delà des plans de coupure.
Le second sous-processus de base qu'accomplit le
processeur géométrique 36 est le traitement de face dans le-
quel des primitives graphiques qui ont été déterminées comme
étant visibles (ou potentiellement visibles) pendant le pro-
cessus d'élimination, sont coupées de la manière nécessaire, et les coordonnées des primitives sont projetées d'un système de coordonnées tridimensionnelles en un système de coordonnées
bidimensionnelles. En outre, des calculs de gradation sont ef-
fectués et les primitives coupées et projetées sont assemblées en paquets de données de bord pour la transmission vers le
processeur de visualisation 40 en vue d'un traitement ulté-
rieur. Pour déclencher le parcours et le traitement de la base de données de la mémoire de liste de visualisation 16, le processeur de termina) 12 émet vers la logique de parcours d'arbre 32 une instruction de démarrage de parcours appelée "START TRAVERSE", qui spécifie l'adresse de départ du segment
de fenêtre d'observation de l'arbre de liste de visualisation.
L'adresse de départ est l'adresse du bloc de commande de seg-
ment de fenêtre de visualisation contenant des pointeurs diri-
gés vers les tampons d'élimination et de données du segment de
fenêtre d'observation, comme décrit ci-dessus.
Le processeurde terminal émet l'instruction START TRAVERSE sur le bus de système 18 vers un contrôleur 102 qui est connecté au bus de système 18 par une interface de bus de système 100 de la logique de.parcours d'arbre 32. L'interface de bus de système 100 comprend des tampons d'adresse et de données et une logique de commande appropriés pour commander l'accès au bus de système 18 qui, dans le mode de réalisation
représenté, est un bus standard du type VMEbus.
Le contrôleur 102 de la logique de parcours d'arbre 32 parcourt la liste de visualisation dans la mémoire de liste de visualisation 16, en adressant séquentiellement les paquets enchainés, conformément à l'algorithme de parcours, et il coordonne l'émission des données de la liste de visualisation vers le processeur géométrique 36. Le contrôleur 102 du mode
de réalisation représenté est réalisé sous la forme d'un con-
trôleur programmable à tranches de bits, comme décrit ci-après de façon plus détaillée. Selon une variante, le contrôleur 102
peut être réalisé au moyen d'un automate d'états finis utili-
sant un matériel spécialisé, ou au moyen d'un microprocesseur
et de circuits intégrés périphériques appropriés.
La logique de parcours d'arbre 32 peut parcourir la
liste de visualisation sans recevoir d'instructions supplémen-
taires provenant du processeur de terminal 12. Le contrôleur 102 place l'adresse du mot 0 du bloc de commande de segment de fenêtre d'observation (figure 4), fourni par le processeur de
terminal 12, sur un bus 104, appelé "DLM ADDRESS", qui est di-
rigé vers la mémoire de liste de visualisation 16. Le contrô-
leur 102 signale ensuite à la mémoirede liste de visualisa-
tion 16, sur une ligne 106 appelée ligne "DLM REQUEST", qu'une opération de lecture en mémoire est demandée et que l'adresse
qui se trouve sur le bus DLM ADDRESS 104 est valide. En répon-
se, la mémoire de liste de visualisation 16 lit l'adresse de
* mémoire de liste de visualisation, ou adresse DLM, et elle in-
dique au contrôleur 102 d'incrémenter l'adresse DLM, au moyen
d'une ligne de signal 110, appelée ligne "DLM ADDRESS INCRE-
MENT", dirigée vers le contrôleur 102. Dans le mode de réali-
sation qui est représenté, la mémoire de liste de visualisa-
tion 16 est une mémoire à structure entrelacée à 4 voies. Com-
me on l'expliquera ci-après de façon plus détaillée, la mémoi-
re 16 peut accepter séquentiellement quatre adresses et accom-
plir quatre opérations de lecture en chevauchement, pour aug-
menter la cadence à laquelle il est possible de lire des don-
nées graphiques dans la mémoire. Apres que les quatre adresses initiales ont été lues, la mémoire de liste de visualisation 16 place le mot 0 (contenant le pointeur de frère) du bloc de commande de segment sur une voie ou un bus de données réservé 107 du bus DLM 34, qui est dirigé vers la logique de parcours d'arbre 32, et signale que les données sont valides, sur une ligne 108 appelée ligne"DATA VALID". La mémoire de liste de visualisation 16 lit ensuite l'adresse suivante en séquence (l'adresse du mot 4) et elle émet le mot suivant en séquence
(mot 1).
Les données graphiques provenant de la mémoire 16 sont enregistrées dans un bloc de registres à accès multiples 112 de la logique de parcours d'arbre 32, à une adresse de registre que la mémoire de liste de visualisation 16 transmet au groupe de registres 112 par un bus d'adresse de registre 114 qui est appelé bus"REGISTER ADDRESS". Le contrôleur 102 continue à incrémenter les adresses DLM et la mémoire de liste de visualisation 116 continue à présenter en sortie les mots enregistrés à ces positions de mémoire, jusqu'à ce que les 16 mots du bloc de commande de seqment aient tous été enregistrés dans le groupe de registres de DLM 112. Pendant ce temps, le contrôleur 102 examine le mot 3 du bloc de commande de segment
(figure 4) pour identifier l'adresse de départ du premier pa-
quet d'élimination du tampon d'élimination du segment de fenê-
tre d'observation. De cette manière, le contrôleur 102 est prêt à émettre l'adresse de départ du premier paquet de tampon d'élimination, dès que le dernier mot du bloc de commande de
segment a été adressé.
Le premier paquet d'élimination de 16 (ou 32) mots est émis vers le groupe de registres de parcours d'arbre 112 et vers un groupe de registres similaire 115 dans le processeur géométrique 36, pour déclencher le processus d'élimination pour
le segment de fenêtre d'observation A. Le contrôleur 102 exami-
ne le pointeur de "paquet suivant" dans le mot 0 (figure 7) du
premier paquet d'élimination, pour déterminer l'adresse de dé-
part du paquet suivant du tampon d'élimination. La logique de parcours d'arbre 32 examine également le "compte de multiplets" du mot 1. Dans le cas de l'indication d'un paquet à 32 mots, la logique de parcours d'arbre augmente de 16 à 32 le nombre de mots à transférer. Une fois que le premier paquet a été chargé dans le registre de DLM 115 du processeur géométrique,
ce fait est transmis au processeur géométrique 36 par le con- trôleur 102, au moyen d'une ligne de signal 116, appelée li-
gne"GP DLM REGISTER LOAD". Le processeur géométrique 36 com-
mence ensuite à traiter les données qui se trouvent dans le paquet d'élimination, et il indique ensuite par une ligne de signal de commande 118 que le groupe de registres de DLM 115
du processeur géométrique est disponible. En réponse, le con-
trôleur 102 transfère le paquet d'élimination suivant vers le
processeur géométrique 16.
Le bus de DLM 34 transfère des adresses et des don-
nées à partir d'une seule source, c'est-à-dire la mémoire de
liste de visualisation 16, et dans une seule direction, c'est-
à-dire vers la logique de parcours d'arbre 32 et le processeur géométrique 36. Par conséquent, le bus de DLM ne présente aucun retard d'arbitrage ou d'établissement de liaison de bus, et il peut donc accepter des cadences de transfert de données
extrêmement élevées. Dans le mode de réalisation qui est re-
présenté, le bus de DLM 34 peut transférer 40 mégamultiplets
de données par seconde, au lieu de 6 mégamultiplets par secon-
de pour le bus VMEbus 18.
La logique de parcours d'arbre 32 émet les paquets de tampon d'élimination un par un de la mémoire 16 vers le
processeur géométrique 36, par l'intermédiaire du bus de don-
nées de DLM 107. Comme le montre la figure 7, chaque paquet d'élimination et de primitives de données comporte un code
opération (bits 8-15 du mot 1), qui indique au processeur géo-
métrique 36 le traitement particulier qui est exigé pour les données du paquet. Le processeur géométrique lit et décode le code opération pour chaque paquet, et il effectue l'opération
appropriée. Les opérations de traitement du processeur géomé-
trique 36 sont décrites brièvement ci-après et sont décrites de façon plus détaillée dans la demande de brevet française précitée intitulée "Processeur géométrique pour un système d'infographie". Dans le mode de réalisation qui est représenté, les
tampons d'élimination contiennent jusqu'à cinq types diffé-
rents de paquets d'élimination, chaque paquet ayant son pro-
pre code opération. Deux de ces paquets ne sont placés de fa-
çon caractéristique que dans le tampon d'élimination du seg-
ment racine (ou de fenêtre d'observation).
Le premier paquet du tampon d'élimination qui est émis vers le processeur géométrique contient les attributs du
segment. Les attributs du segment qui ne sont pas définis lo-
calement dans le paquet d'attributs du segment peuvent être "hérités", par l'obtention des attributs de segment à partir des attributs de parent qui ont été enregistrés précédemment
dans un groupe de registres de pile 120. Le processeur géomé-
trique 36 enregistre un ensemble d'attributs (définis locale-
ment ou hérités) dans un groupe de registres de sortie 122,
pour un transfert ultérieur vers la logique de parcours d'ar-
bre 32, par le bus de pile 38, si le test effectué pendant le traitement d'élimination du segment détermine que le segment est visible. Du fait que le segment de fenêtre d'observation
A ne possède pas un segment parent, tous les attributs enre-
gistrés dans le groupe de registres de sortie 122 pour le
segment A ont été définis localement dans le paquet d'attri-
buts du tampon d'élimination du segment A. Le tampon d'élimination de chaque segment contient
également habituellement un paquet de matrice de transforma-
tion. Le paquet de transformation contient une matrice de transformation locale qui transforme les données du segment pour les faire passer du système de coordonnées locales (de modèle) au système de coordonnées du segment parent. Dans le
cas du segment de fenêtre d'observation, la matrice de trans-
formation locale effectue une transformation qui fait passer du système de coordonnées terrestres au système de coordonnées
oculaires de la fenêtre d'observation considérée.
Le processeur géométrique 36 effectue une concaténa-
tion de matrices qui multiplie la matrice locale par la matri- ce du segment parent, qui a fait l'objet d'une concaténation antérieure, transformant le système de coordonnées du segment parent pour donner le système de coordonnées au sommet de l'arbre de liste de visualisation, c'est-à-dire le système de coordonnées du segment de fenêtre d'observation. La matrice
qui résulte de la concaténation est une matrice de transforma-
tion qui transforme les données graphiques du segment de façon à les exprimer dans le système de coordonnées du segment de
fenêtre d'observation. Cette matrice résultant de la concaté-
nation est enregistrée dans le groupe de registres de sortie, pour être transférée vers la logique de parcours d'arbre 32
au cas o le test effectué détermine que les primitives gra-
phiques du segment sont visibles.
Le paquet de "fenêtre d'observation" est un paquet
de tampon d'élimination qu'on ne trouve de façon caractéris-
tique que dans le segment de fenêtre d'observation. Ce paquet définit la fenêtre d'observation fournissant les termes de
projection (comme le champ de vision, la taille de la projec-
tion parallèle orthogonale, les définitions des plans de cou-
pure, etc), les termes de pondération définissant l'échelle
sur l'écran (comme la taille de l'image finale sur le dispo-
sitif de visualisation à tube cathodique 26) et des bits
d'indicateurs appropriés. Les termes de projection sont enre-
gistrés de façon caractéristique dans une matrice de quatre
sur trois. Lorsque le processeur géométrique 36 reçoit le pa-
quet de fenêtre d'observation, il enregistre la matrice de pondération de fenêtre d'observation d'entrée dans le groupe
de registres de pile 120, et il enregistre les termes de pon-
dération d'entrée et les bits d'indicateurs dans le groupe de registres de sortie 122. En outre, un paquet de définition de fenêtre d'observation est transmis du groupe de registres de sortie 122 vers le processeur de visualisation 40, par le
bus de système 18.
Le paquet de "source lumineuse" est un paquet sup-
plémentaire qui ne se trouve que dans le segment de fenêtre
de visualisation. Une source lumineuse, définie dans le systè-
me de coordonnées terrestres, subit une transformation de ro-
tation la faisant passer dans le système de coordonnées ocu-
laires pondérées, par multiplication des coordonnées de la source lumineuse par la matrice de transformation courante qui est enregistrée dans le groupe de registres de sortie 122,
et les résultats sont sauvegardés.
Le dernier paquet de tampon d'élimination que la
logique de parcours d'arbre 32 émet vers le processeur géomé-
trique 36 est le paquet de volume de limitation. Lorsque le
processeur géométrique 36 reçoit ce paquet, il commence à ef-
fectuer le test de visibilité, si le volume de limitation du segment parent n'était pas totalement visible. Comme mentionné précédemment, le volume de limitation d'un segment englobe complètement les primitives graphiques du segment et de tous les segments enfants du segment. L'utilisation d'un tel volume
de limitation simplifie le test de visibilité.
Si le test qui est effectué indique que le volume de limitation défini par le paquet de volume de limitation se trouve à l'intérieur du champ de vision défini par le paquet
de fenêtre d'observation, et si la taille du volume est com-
prise dans un intervalle défini par l'utilisateur (c'est-à-
dire si l'objet n'est ni trop grand ni trop petit), le proces-
seur géométrique 36 active la ligne de signal 124, qu'on ap-
pelle ligne"CULLED OBJECT VISIBLE", dirigée vers la logique de parcours d'arbre 32, pour indiquer que l'objet contenu dans le volume de limitation est potentiellement visible. On
notera que du fait que le volume de limitation de segment en-
globe les objets ou les primitives graphiques des segments
enfants, il n'est pas nécessaire de répéter le test de visibi-
lité pour les segments enfants d'un segment pour lequel on a
déterminé que le volume de limitation du segment était tota-
lement visible. Si au-contraire le volume de limitation est entièrement à l'extérieur du champ de vision, ou si la taille du volume n'est pas comprise dans l'intervalle défini, la ligne de signal CULLED OBJECT VISIBLE est restaurée. Aucun traitement ultérieur n'est nécessaire pour ce dernier segment
"invisible" et tous ses segments enfants.
Pendant que le processeur géométrique 36 traite les
paquets d'élimination, la logique de parcours d'arbre 32 en-
registre dans une mémoire à structure de pile 126, comme le montre la figure 9, le pointeur de bloc d'en-tête, le pointeur
d'enfant (mot 1) du bloc d'en-tête de la figure 4, et un in-
dicateur de "niveau d'arbre" pour le segment. Le "niveau d'ar-
bre" est le niveau du segment dans la structure hiérarchisée, et il est calculé par le contrôleur 102. Ainsi, par exemple, des segments frères ont le même niveau d'arbre. Le niveau d'arbre pour un segment enfant est incrémenté d'une unité par
rapport au niveau d'arbre du segment parent.
Si le processeur géométrique 36 détermine que l'ob-
jet du segment est visible, la logique de parcours d'arbre 32
copie le mot d'indicateur, la matrice de transformation résul-
tant de la concaténation, et les attributs de l'objet, pré-
sents dans le groupe de registres de sortie 122 du processeur géométrique, pour les enregistrer dans la mémoire à structure
de pile 126, par l'intermédiaire du bus de pile 38. Cette in-
formation est copiée dans des positions de pile situées immé-
diatement au-dessus des données fournies par-la logique de
parcours d'arbre, comme le montre la figure 9.
Si le segment sur lequel porte le traitement d'éli-
mination est un segment enfant du segment ayant subi précédem-
ment le traitement d'élimination, l'information est également copiée ou enregistrée dans le groupe de registres de pile 120 de façon à être disponible pour être héritée. Une ligne de sortie de "copie de données" 127 du processeur géométrique 136
effectue cette copie.
Si le test détermine que l'objet du segment sur le-
quel porte le traitement d'élimination est invisible, la lo-
gique de parcours d'arbre 32 applique au processeur géométri-
que 36 un signal "mémoire chargée" (par l'une des lignes de signal d'établissement de liaison 128), sans transférer les données, pour éviter un transfert de données inutiles. Les attributs relatifs à des objets invisibles ne sont donc pas enregistrés dans la pile 126. Comme on l'expliquera ci-après
de façon plus détaillée, les données graphiques qui sont en-
registrées dans la mémoire à structure de pile 126 pour cha-
que segment pour lequel on a déterminé qu'il existait des objets visibles, seront ensuite retransmises au processeur géométrique par le bus de pile 38, au moment du transfert des primitives graphiques associées de la mémoire de liste de visualisation 16 vers le processeur géométrique 36. Du fait que les attributs relatifs à des objets invisibles ne sont pas enregistrés dans la mémoire de pile 126, ces segments ne
font l'objet d'aucun traitement ultérieur.
Après que le tampon d'élimination d'un segment a été traité, le logique de parcours d'arbre passe à un autre
segment de la liste de visualisation. Dans le mode de réali-
sation qui estreprésenté, la logique de parcours d'arbre uti-
lise un procédé avec priorité au frère, dans lequel cette lo-
gique traite le frère d'un segment avant de traiter l'enfant du segment. Si un segment n'a pas de frères. la logique de
parcours d'arbre traite ensuite le premier enfant du segment.
Par exemple, en considérant la figure 2, on note que le seg-
ment de fenêtre d'observation A ne comporte aucun segment
frère. Par conséquent, après que les données de tampon d'éli-
mination du segment A ont été traitées, la logique de par-
cours d'arbre passe au premier segment enfant, c'est-à-dire le segment B. Après avoir transmis au processeur géométrique
36, en vue de leur traitement, les paquets de tampon d'élimi-
nation du segment B, la logique de parcours d'arbre passe au 6 13 100v segment frère, c'est-à-dire le segment C, et commence à diriger
les paquets de tampon d'élimination du segment C vers le pro-
cesseur géométrique 36. Le segment C n'ayant aucun segment
frère supplémentaire, la logique de parcours d'arbre passe en-
suite au premier segment enfant, c'est-à-dire le segment F, si
la déterminationquia été effectuée indique que le volume de li-
mitation du segment parent C contenant le cube 52 est visible.
La logique de parcours d'arbre 32 continue à parcourir l'arbre
de cette manière en émettant dans l'ordre les paquets de tam-
pon d'élimination des segments frères F-K.
Si un segment n'a aucun autre segment frère, et n'a
pas un segment enfant (ou si le volume de limitation du seg-
ment est invisible), la logique de parcours d'arbre 32 com-
mence le parcours en sens inverse. Par exemple, tous les seg-
ments frères du segment K ont été parcourus lorsque la logique de parcours d'arbre 32 atteint le segment K. Du fait que le
segment K ne possède aucun segment enfant, la phase de traite-
ment d'élimination se termine au segment K. Si le test de vi-
sibilité a déterminé que la face 6 (la primitive graphique du
segment K) était potentiellement visible, la logique de par-
cours d'arbre 32 transfère la matrice de transformation après concaténation et les données d'attributs pour le segment K, du groupe de registres de sortie 122 du processeur géométrique
vers le groupe de registres de pile 120 du processeur géomé-
trique et, en outre, elle commence à transférer les paquets de primitives graphiques (pour la face 6) du tampon de données
de segment vers le processeur géométrique 36, par l'intermé-
diaire du bus de DLM 34, pour le traitement de face.
Comme les paquets de tampon d'élimination, les pa-
quets de tampon de données sont enchaînés par des pointeurs,
comme le montre la figure 7. Chaque paquet de données est co-
pié dans la mémoire de liste de visualisation 16, par l'inter-
médiaire du bus de données de DLM 107, pour être dirigé vers le groupe de registres de DLM 115 (figure 8) du processeur géométrique 36, et vers le groupe de registres de DLM 112 de la logique de parcours d'arbre 32. La logique de parcours d'arbre 32 utilise l'adresse de pointeur de chaque paquet de
données pour obtenir le paquet suivant dans le train. Un poin-
teur nul indique que le paquet de données présent est le der-
nier paquet dans le train de données.
Le processeur géométrique 36 interprète le code opé-
ration de chaque paquet de primitives de données et il sélec-
tionne l'algorithme de traitement de face de paquets de don-
nées approprié. Le processeur géométrique signale qu'il est en état d'accepter le paquet de données suivant en activant la ligne de signal 118, qui est appelée ligne"GP DLM REGISTER
AVAILABLE". Le processeur géométrique 36 effectue le traite-
ment de face en procédant bord par bord et lorsque les données relatives à chaque bord sont établies, elles sont transférées vers le processeur de visualisation 40, par le bus de système
18, selon un format de paquet de bord.
Une fois que le processeur géométrique 36 indique qu'il est prêt pour le traitement de face du segment suivant,
la logique de parcours d'arbre 32 extrait du sommet de la mé-
moire à structure de pile 126 les données d'attributs et de matrice de transformation pour le segment visible suivant, J, et elle transfère ces données, par le bus de pile 38, vers le
groupe de registres de pile 120 du processeur géométrique 36.
La logique de parcours d'arbre 32 utilise le pointeur de bloc
d'en-tête d'objet enregistré, provenant de la mémoire à struc-
ture de pile 126 représentée sur la figure 9, pour adresser en premier le bloc d'en-tête, afin d'obtenir le pointeur de tampon de données pour le segment J. En utilisant le pointeur de tampon de données, la logique de parcours d'arbre adresse
et transmet vers le processeur géométrique 36, pour le traite-
ment de face, par le bus de données de DLM 107, les paquets de tampon de données pour la primitive graphique de la face 5, correspondant au segment J, qui se trouvent dans la mémoire 16. L'algorithme de traitement de face que met en oeuvre le processeur géométrique du mode de réalisation représenté, transforme des sommets (et des normales aux sommets, si on utilise une gradation) en coordonnées d'écran, il supprime le
polygone si la détermination qui est faite indique que le po-
lygone se trouve du côté opposé à l'observateur, et il coupe le polygone pour le limiter aux limites du champ de vision (plans de coupure), si nécessaire. En outre, le processeur
géométrique 36 projette les sommets, par un procédé de projec-
tion en perspective ou parallèle, dans un plan d'image bidi-
mensionnelle, et il pondère les sommets relativement à la fe-
nêtre d'observation.
Pendant le parcours en sens inverse de la liste de visualisation, la logique de parcours d'arbre 132 continue à remonter les segments "visibles", en extrayant de la pile 126
les pointeurs de bloc d'en-tête, les matrices et les attri-
buts, et en émettant les paquets de données et les données de
pile vers le processeur géométrique, pour effectuer le trai-
tement de face des segments, jusqu'à la rencontre d'un segment
enfant "non parcouru". Comme mentionné précédemment, la logi-
que de parcours d'arbre 32 n'examine pas le pointeur d'enfant d'un segment (et ne parcourt donc pas ce segment enfant), si le segment comporte un pointeur de frère, pendant le parcours avec priorité au frère. Par conséquent, si pendant le parcours en sens inverse le segment suivant en ligne qui doit être parcouru comporte un segment enfant et si le segment atteint dans le parcours inverse au moment considéré est le segment frère du segment suivant à parcourir, le segment enfant n'a
pas été parcouru pendant le parcours antérieur. Lorsqu'un seg-
ment enfant non parcouru est rencontré, la logique de parcours d'arbre 32 retourne au parcours de mode d'élimination et elle
parcourt la liste de visualisation en partant du segment en-
fant non parcouru.
A titre d'exemple, après le segment d'élimination B la logique de parcours d'arbre 32 parcourt le segment frère C
et non le segment enfant D, pendant le parcours initial, con-
formément au procédé avec priorité au frère. Pendant le par-
cours en sens inverse, les segments parcourus font l'objet du traitement de face jusqu'à ce que le parcours en sens inverse
ramène la logique de parcours d'arbre au segment C. Le trai-
tement de face se termine après le segment C, du fait que le
segment suivant en ligne qui doit être parcouru en sens in-
verse, c'est-à-dire le segment B, comporte un segment enfant
non parcouru, c'est-à-dire le segment D. La logique de par-
cours d'arbre 32 ne transmet donc pas les données de primiti-
ves pour le segment B en vue du traitement de face et, à la place, elle retourne au parcours de mode d'élimination, le parcours et l'élimination commençant au segment D.
La détection d'un segment enfant non parcouru s'ef-
fectue par l'examen de l'indicateur de niveau d'arbre du mot N+2 (figure 9) du segment courant qui est parcouru en sens inverse, et du niveau d'arbre du segment suivant dans la pile (c'est-à-dire le segment suivant en ligne dans le parcours en sens inverse). Si les deux niveaux d'arbre sont identiques
(c'est-à-dire si les segments sont des frères), et si le seg-
ment suivant dans la pile comporte un pointeur d'enfant vali-
de, ce segment enfant n'a pas été parcouru.
La logique de parcours d'arbre 32 continue à par-
courir la liste de visualisation en sens direct et en sens in-
verse jusqu'à ce que chaque segment ait été éliminé ou ait fait l'objet d'un traitement de face. Le dernier paquet de tampon de données du segment de fenêtre d'observation contient une primitive de "fin de parcours". La logique de parcours
d'arbre émet en dernier vers le processeur géométrique les pa-
quets de tampon de données pour le segment de fenêtre d'obser-
vation. Ainsi, la primitive de fin de parcours sera le dernier paquet transféré vers le processeur géométrique 36. Selon une variante, une fois que la mémoire à structure de pile 26 a été vidée, ce qui indique que l'arbre complet a été parcouru, la logique de parcours d'arbre peut adresser dans la mémoire de liste de visualisation 16 un paquet de "fin de parcours", et
émettre ce paquet vers le processeur géométrique 36. A la ré-
ception de cette information, le processeur géométrique 36 émet à son tour la primitive ou le paquet de fin de parcours vers le processeur de visualisation 40, par le bus de système 18. Le processeur de visualisation 40 commence alors le trai- tement d'écran et il émet une interruption vers le processeur
de terminal 12.
Dans le mode de réalisation qui est représenté, la mémoire de liste de visualisation 16 est constituée par une
carte de mémoire à deux accès et à quatre voies entrelacées.
* La figure 10 montre un schéma synoptique plus détaillé de la mémoire de liste de visualisation 16. La mémoire 16 comprend quatre blocs ou modules de mémoire vive dynamique A-D. On peut accéder à ces mémoires à partir du bus de système 18, par l'intermédiaire d'un premier accès 202 qui comporte des
interfaces de données, d'adresse et de commande portant res-
pectivement les références 230, 232 et 234. On peut également accéder à ces mémoires à partir de la logique de parcours d'arbre 32, par l'intermédiaire d'un second accès 204 qui comprend également des interfaces de données, d'adresse et de commande, portant respectivement les références 205, 206 et
208. Les interfaces des accès 202 et 204 comprennent les tam-
pons habituels d'entrée et de sortie.
Les adresses des mémoires A-D sont entrelacées, de façon que des positions d'adresse 0, 1, 2 et 3 se trouvent respectivement dans les mémoires A, B, C et D, des positions de mémoire 4, 5, 6 et 7 se trouvent respectivement dans les mémoires A, B, C et D, etc. Par conséquent, les 16 (ou 32)
mots de chaque paquet peuvent être enregistrés de cette ma-
nière entrelacée, avec le mot 0, c'est-à-dire le premier mot de chaque paquet, enregistré dans la mémoire A.
Pour lire un paquet de données dans les mémoires A-
D, la logique de parcours d'arbre 32 transmet l'adresse de départ du paquet, c'est-à-dire l'adresse du mot O du paquet, vers l'interface d'adresse de logique de parcours d'arbre 206
de l'accès de logique de parcours d'arbre 204, par l'intermé-
diaire du bus 104, appelé bus"DLM ADDRESS". L'interface d'adresse de logique de parcours d'arbre 206 comprend en outre une logique de sélection de carte. Dans le mode de réalisation qui est représenté, la logique de sélection de carte de l'in- terface 206 examine deux des 24 bits d'adresse que fournit la logique de parcours d'arbre 32, pour déterminer si ces bits coïncident avec un code d'adresse de carte de mémoire DLM qui a été programmé sur la carte de mémoire, par exemple à l'aide
d'interrupteurs à deux rangées de broches ou DIP (non repré-
sentés). En plus de la fonction qui consiste à adresser cor-
rectement la mémoire de liste de visualisation 16, la logique de parcours d'arbre 32 active la ligne 106, appelée ligne "DLM REQUEST" qui provient de l'accès de logique de parcours d'arbre 204, par l'intermédiaire de l'interface de commande
de logique de parcours d'arbre 208. Lorsque ces deux condi-
tions sont remplies, la demande est émise vers un circuit lo-
gique de résolution de priorité 210 qui "arbitre" des demandes en conflit faites par la logique de parcours d'arbre 32 et le bus de système 18. Si l'un ou l'autre des éléments comprenant le bus de système 18 et la logique de parcours d'arbre demande l'accès aux mémoires A-D pendant que l'autre est déjà en train d'accéder à ces mémoires, celui qui demande l'accès reçoit
l'autorisation d'accéder aux mémoires à l'achèvement de l'ac-
cès en cours, avant qu'une nouvelle autorisation d'accès soit
accordée à l'élément qui bénéficiait déjà de l'accès. Cepen-
dant, l'accès peut être refusé conjointement à la logique de
parcours d'arbre 32 et au bus de système 18, si une régénéra-
tion des mémoires A-D est nécessaire.
La figure 11 est un diagramme séquentiel qui illus-
tre le fonctionnement de la mémoire de liste de visualisation 16 pendant une opération de lecture de la logique de parcours
d'arbre. L'adressage correct de la mémoire de liste de visua-
lisation 16 est représenté par la transition positive de la ligne du diagramme séquentiel portant la désignation DLM
2 6 1 3 10
SELECT. L'activation de la ligne DLM REQUEST 106 est représen-
tée par la transition positive de la ligne du diagramme sé-
quentiel portant le même nom sur la figure 11. Une fois que la
mémoire de liste de visualisation 16 a été correctement adres-
sée et que la ligne DLM REQUEST provenant de la logique de parcours d'arbre 32 est active (et que tout accès en cours pour la mémoire de liste de visualisation, à partir du bus de
système 18, a été terminé), la logique de résolution de prio-
rité 210 accorde l'accès à la mémoire, comme le représente la
transition positive de la ligne du diagramme séquentiel por-
tant la désignation PRIORITY RESOLVER. L'adresse du premier
mot du paquet est ensuite émise vers chacun des quatre contrô-
leurs de mémoire A-D pour les mémoires A-D respectives de la figure 10. Chacun des contrôleurs de mémoire A-D peut être
réalisé par exemple au moyen d'un circuit intégré 74S409.
Chaque position de mémoire dans les mémoires A-D
est définie par une adresse de ligne et une adresse de colon-
ne. Une partie des bits d'adresse présentés aux contrôleurs
de mémoire A-D spécifie l'adresse de ligne, et une autre par-
tie des bits d'adresse spécifie l'adresse de colonne. Un si-
gnal de commande de ligne/colonne (R/F) qui est généré- par un circuit logique générateur de signal de commande et décodeur de module 212, et qui est présenté aux contrôleurs A-D, est initialement à l'état haut, comme le montre la figure 11, ce qui fait que les bits d'adresse de ligne sont émis en premier vers les mémoires A-D. A la transition positive suivante d'un train d'impulsions d'horloge à 10 mégahertz, après que le circuit de résolution de priorité 210 ait accordé la priorité à la logique deparcours d'arbre 32, le générateur de signal de commande 212 active un signal d'entrée d'échantillonnage d'adresse de ligne (RASIN) que les contrôleurs A-D utilisent pour générer un signal de validation d'adresse de ligne pour
chacune des mémoires A-D. De cette manière, une ligne de po-
sitions d'adresse est sélectionnée dans chaque mémoire A-D.
Au moment de la transition négative de la même impulsion d'horloge, la ligne de signal de validation de ligne/colonne (R/W), dirigée vers les contrôleurs de mémoire A-D change d'état, ce qui fait que les bits d'adresse de colonne sont
transmis aux mémoires A-D. Cependant, un seul des quatre mo-
dules de mémoire A-D est validé pour lire les.bits d'adresse de colonne après qu'un signal d'entrée d'échantillonnage d'adresse de colonne (CASIN) a été activé par le générateur
de signal de commande 212. La mémoire A-D particulière est sé-
lectionnée par deux bits d'adresse parmi les 24 bits d'adresse
que fournit la logique de parcours d'arbre 32. Le circuit lo-
gique générateur de signal de commande et décodeur de module
212 décode ces deux bits d'adresse et il active l'une des qua-
tre lignes d'entrée d'échantillonnage d'adresse de colonne (CASiN A,, CASIN CASIN C ou TCASIN D), conformément aux bits d'adresse de sélection de module. Du fait que le premier mot du paquet est enregistré dans la mémoire A, le premier signal
d'entrée d'échantillonnage d'adresse de colonne à être sélec-
tionné est le signal d'entrée d'échantillonnage d'adresse de colonne A, ou CASIN, et la sélection se produit au moment
de la transition négative de l'impulsion d'horloge qui a acti-
vé Z=,I Sous l'effet du signal CASIN A, le contrôleur de mé-
moire A valide le module de mémoire A pour permettre l'entrée des bits d'adresse de colonne, ce qui achève l'adressage de la mémoire A. Les bits d'adresse de ligne et de colonne reçus par la mémoire A sélectionnent un mot à 32 bits qui est émis vers un registre A. Au moment o le signal MAIN est activé, la mémoire de liste de visualisation 16 active le signal DLM ADDRESS INCREMENT dirigé vers la logique de parcours d'arbre 32, de façon que cette dernière incrémente l'adresse de DLM pour la faire correspondre à l'adresse du mot suivant du paquet de
DLM qui est enregistré dans la mémoire B. Une période d'horlo-
ge après que la mémoire 16 a accepté la première adresse (pour le mot 0), cette mémoire accepte la seconde adresse (pour le mot 1). Dans le mode de réalisation qui est représenté, chaque mot du paquet possède la même adresse de ligne, et seules les adresses de colonne changent. Par conséquent, une impulsion d'horloge après l'activation du signal TCASIN A, le signal
d'entrée d'échantillonnage d'adresse de colonne pour le con-
trôleur de mémoire B, TCASIN B, est activé comme le montre la figure 11. Sous l'effet du signal de commande CASIN B, le
contrôleur de mémoire B valide la mémoire B pour qu'elle ac-
cepte les bits d'adresse de colonne de la seconde adresse, ce qui fait que le mot de 32 bits qui est adressé (mot 1) est
émis vers un registre de sortie B associé. D'une manière si-
milaire, la mémoire 16 accepte deux adresses supplémentaires, elle dirige respectivement ces adresses vers les mémoires C
et D, et elle émet les mots 2 et 3 du paquet vers les regis-
tres de sortie C et D. Le cycle se répète et la logique de parcours d'arbre 32 adresse séquentiellement les mémoires A-D jusqu'à ce que l'ensemble des 16 (ou 32) mots du paquet aient
été lus.
Les mots sont lus en séquence dans les registres A-D et ils sont enregistrés dans un registre de sortie de
l'interface de données de logique de parcours d'arbre 205.
L'interface de données 205 émet un demi-mot à 16 bits sur le bus de données de DLM 107 à chaque demi-cycle de la période d'horloge. Comme le montre la figure 11, le premier demi-mot est émis sur le bus de DLM 107 au bout d'une durée de l'ordre de 5 impulsions d'horloge après que la mémoire 16 a accepté la première adresse. Cependant, ensuite, la mémoire 16 émet un demi-mot à chaque demi-cycle, jusqu'à ce que tous les mots du paquet aient été lus. La mémoire de liste de visualisation
16 indique que les données sont valides, sur la ligne de sor-
tie 108 dirigée vers la logique de parcours d'arbre 32, une
impulsion d'horloge avant l'apparition des données.
La mémoire de liste de visualisation 16 comporte également un générateur d'adresse de registre 222 qui fournit les adresses de registre du groupe de registres de DLM 112 de la logique de parcours d'arbre, et du groupe de registres de DLM 115 du processeur géométrique (figure 8). Ces adresses de registre identifient les positions auxquelles sont enregistrés les mots de données d.es paquets provenant de la mémoire de liste de visualisation 16. Comme le montre la figure 11, les adresses de groupes de registres sont générées en synchronisme
avec les mots qui sont émis par la mémoire de liste de visua-
lisation 16. Du fait que les adresses sont générées de façon séquentielle, le générateur d'adresse 222 peut par exemple
être réalisé au moyen d'un compteur.
La mémoire de liste de visualisation 16 comporte également un circuit logique de restauration de système et de commande de régénération 214, qui déclenche une régénération
en deux cycles à la fin de chaque demande de lecture de la lo-
gique de parcours d'arbre, ou à la fin de chaque demande de lecture ou d'écriture du bus de système 18, comme le montre la ligne de diagramme séquentiel portant la désignation SYSTEM RESET sur la figure 11. Si aucune demande de lecture ou d'écriture n'est effectuée, un compteur appartenant au circuit
logique de commande de restauration de système et de régénéra-
tion 214 impose une restauration de niveau système après le
comptage de 64 impulsions de l'horloge de système, pour provo-
quer l'accomplissement d'une régénération en deux cycles.
Du fait que la mémoire de liste de visualisation 16
est une mémoire à deux accès, le bus de système 18 peut égale-
ment accéder à cette mémoire par l'intermédiaire de l'accès de bus de système 202. Le processeur de terminal 12 de la figure 1 écrit et entretient les données de la liste de visualisation par l'intermédiaire de l'accès de bus de système 202. Comme
mentionné précédemment, le bus de système 18 est un bus stan-
dard de type VMEbus. Par conséquent, les interfaces 230, 232
et 234 de l'accès de bus de système 202 sont conçues pour ac-
cepter les lignes de signal particulières d'un bus de type VMEbus. Pour accéder à la mémoire de liste de visualisation 16 par l'accès de bus de système 202, les signaux d'adresse et de commande du bus de système 18 doivent satisfaire trois
tests dans le mode de réalisation qui est représenté. Premiè-
rement, les bits d'adresse VME AE22-AE29 du bus d'adresse VME doivent coïncider avec le code de sélection de carte qui a été programmé au moyen d'interrupteurs DIP (non représentés)
sur la carte de mémoire de DLM. Secondement, les bits de mo-
dificateur d'adresse du bus de système VME doivent correspon-
dre à quatre codes fixés à l'avance et, simultanément, le si-
gnal de commande d'accusé de réception d'entrée VME (IACK) doit être à l'état haut, et les bits d'adresse AE30, AE31 doivent être à l'état bas et le signal d'échantillonnage
d'adresse VME (XC) doit être à l'état bas. Troisièmement, si-
multanément à la transition du signal d'échantillonnage d'adresse T-(ou dans un intervalle d'un cycle d'horloge après le passage à l'état bas du signal d'échantillonnage
d'adresse -), le mot long du bus VME, soit AE01, et les si-
gnaux d'échantillonnage de données DSOO et DS01 doivent pas-
ser à l'état bas, faute de quoi une alarme d'erreur de bus (FT3l) apparaît et l'autorisation d'accès n'est pas accordée au bus de système 18. Le fait que ces trois conditions sont satisfaites est représenté par des transitions positives des trois lignes du diagramme séquentiel portant respectivement
les désignations BOARD DECODE, ERROR DECODE et ADDRESS MODI-
FIER DECODE sur la figure 12 qui montre un diagramme séquen-
tiel d'une opération d'écriture de données caractéristique
par le bus de système.
Si les trois conditions décrites ci-dessus sont toutes satisfaites, la demande de mémoire du bus de système
est émise vers le circuit de résolution de priorité 210 (fi-
gure 10). Le circuit logique de résolution de priorité 210 accorde immédiatement l'accès, sauf si la mémoire de liste de visualisation est en cours de mise à jour par la logique de
parcours d'arbre 32.
L'autorisation d'accès accordée au bus de système 18 est représentée par la transition positive de la ligne
2 613I 1 V 0
PRIORITY RESOLVER du diagramme séquentiel de la figure 12.
L'adresse d'entrée du bus de système est introduite dans des registres d'entrée (non représentés) de l'interface d'adresse
de bus de système 232 sur le front d'horloge négatif précé-
dent. Les signaux d'horloge appliqués aux registres d'entrée d'interface d'adresse sont ensuite bloqués par le signal de
sortie du circuit de résolution de priorité, jusqu'à l'achève-
ment de l'opération correspondant à la demande d'accès en mé-
moire. A la transition positive suivante de l'horloge après que la priorité a été accordée au bus de système, le signal d'entrée d'échantillonnage d'adresse (RASINl) est activé par le circuit logique générateur de sianal de commande 212, ce qui valide les mémoires A-D pour l'acceptation des bits d'adresse
de ligne. Un demi-cycle d'horloge plus tard, le signal de va-
lidation de ligne/colonne (R/C) est commuté à l'état bas pour changer les données d'adresse que les contrôleurs A-D émettent vers les mémoires A-D, de façon à les faire passer des bits
d'adresse de ligne aux bits d'adresse de colonne. La transi-
tion positive suivante de l'horloge déclenche le signal de commande d'entrée d'échantillonnage d'adresse de colonne
(CASIN) que le circuit logique générateur de signal de comman-
de et décodeur de module 212 utilise pour générer l'un des quatre signaux d'échantillonnage de colonne spécifiques d'un
module, CASI, CAS B IN C ou TCASIN D, qui sont dési-
gnés par AB03 sur la figure 12. Le circuit générateur de si-
gnal de commande et décodeur de module 212 décode les bits d'adresse de VME AB02 et AB03 de l'adresse du bus de système, pour déterminer lequel des signaux d'échantillonnage d'adresse
de colonne, CASIN A, TCASIN CASIN C ou CASIN D, est généré.
La transition négative du signal d'échantillonnage de colonne spécifique d'un module, CASIN X, introduit les bits d'adresse de colonne dans le module de mémoire approprié, A,
B, C ou D. Dans l'opération d'écriture de données dans la mé-
moire 16, le signal de commande d'écriture (7l)pa9e àl'état ba? au début de cette opération. Le circuit logique générateur de signal de commande et décodeur de module 212 génère un signal de commande de validation spécifique d'un module, W-E,. F, WEC ou ME-, qui est désigné par =T sur la figure 12, pour les quatre contrôleurs de mémoire A-D. Un demi-cycle d'horloge après que le signal de commande CASIN X est passé à l'état bas, le signal de validation d'écriture WX associé pour la mémoire A-D sélectionnée passe à l'état bas, ce qui autorise l'écriture des données fournies par le bus de système 18 dans
la mémoire A-D sélectionnée, à la position de mémoire sélec-
tionnée. A la fin de l'impulsion de validation d'écriture WEX, le signal d'accusé de réception de données VME, c'est-à-dire DTACK, dirigé vers le maître du bus de système passe à l'état
bas, ce qui indique l'achèvement du cycle d'écriture.
Pour une opération de lecture, le signal d'accusé de réception de données DTACK passe à l'état bas une période d'horloge après le retour à l'état haut du signal d'entrée
d'échantillonnage d'adresse de colonne CASIN X. Dans l'opéra-
tion de lecture comme dans l'opération d'écriture, les signaux de commande DSOO et DS01 du bus de système VME passent à
l'état haut avant la terminaison du signal d'accusé de récep-
tion de données DTACK, et une restauration du système a lieu.
Le front correspondant à la transition positive du
signal CASIN X charge dans les registres de sortie A-D appro-
priés les données qui sont lues dans la mémoire, et la sortie
à trois états du registre est validée jusqu'à ce que la res-
tauration du système soit déclenchée par le passage à l'état
haut des signaux de commande de bus de système DSOO ou DS01.
Comme mentionné précédemment, une restauration du système dé-
clenche une régénération en deux cycles à la fin de chaque
demande de lecture ou d'écriture. Une demande de bus de sys-
tème relative à la mémoire de liste de visualisation 16 peut être effectuée à des intervalles de 15 périodes d'horloge pour écrire des données, et de 16 périodes d'horloge pour lire des données. Les accès effectués par le bus de système sont plus
longs que les accès effectués par la logique de parcours d'ar-
bre, à cause du retard introduit par le circuit logique de ré-
solution de priorité et des temps de restauration du système.
Les mémoires à deux accès et à quatre voies entrela-
cées sont bien connues dans la technique. L'homme de l'art
pourra donc aisément réaliser la logique combinatoire spécifi-
que nécessaire pour générer les signaux de commande des figu-
res 11l et 12.
La figure 13 montre un schéma plus détaillé du con-
trôleur 102 de la logique de parcours d'arbre 32. Le contrô-
leur 102 comprend un micro-séquenceur 300 qui, lorsqu'il est validé, exécute le programme enregistré dans une mémoire de
microprogramme 302. Le micro-séquenceur 300 commande le fonc-
tionnement des divers dispositifs de la logique de parcours
d'arbre 32. Selon une variante, on pourrait remplacer le mi-
cro-séquenceur 300 et les dispositifs périphériques associés
par un microprocesseur ou un automate d'états finis.
Le micro-sequenceur 300 émet divers signaux de com-
mande par l'intermédiaire d'un ensemble de registres d'état et de commande 304. Le micro-sequenceur 300 reçoit également
des signaux d'état par les registres 304. Un circuit d'inter-
face de mémoire de liste de visualisation (DLM) 306 est un dispositif qui reçoit des signaux de commande provenant du micro-séquenceur 300 et qui émet des signaux d'état vers ce
dernier. Dans le mode de réalisation qui est représenté, l'in-
terface de DLM 306 est un "pico-contrôleur" qui génère un groupe d'adresses de mémoire de visualisation contiguës pour
lire les paquets de données dans la mémoire de liste de visua-
lisation 16. Comme on l'expliquera ci-après de façon plus dé-
taillee, une opération de lecture dans la mémoire de liste de
visualisation est déclenchee par le micro-sequenceur 300.
L'interface de DLM 306 charge une adresse de paquet de départ, transféree par le micro-sequenceur 300 à partir d'un bus de
donnees local 308 de la logique de parcours d'arbre 32. L'in-
terface de DLM 306 peut générer les adresses restantes du pa-
quet sans intervention ultérieure du micro-séquenceur 300.
Les paquets qui sont lus dans la mémoire de liste
de visualisation 16 sont transférés à la fois vers le proces-
seur géométrique 36 et vers le groupe de registres de DLM 112 de la logique de parcours d'arbre 32. Le groupe de registres de DLM 112 du mode de réalisation représenté est un groupe de registres à accès multiples qui permet au micro-séquenceur
300 d'examiner les résultats initiaux d'un transfert de don-
nées à partir de la mémoire de liste de visualisation 16, pen-
dant que le transfert est en cours. Plus précisément, le mi-
cro-séquenceur 300 peut obtenir l'adresse de départ du paquet suivant, à partir du paquet qui est enregistré dans le groupe de registres de DLM 112, comme décrit précédemment. L'adresse
de départ du paquet suivant est transférée par le bus de don-
nées local 308 vers l'interface de DLM 306, pour déclencher une autre opération de lecture de paquet. Comme on le décrira ci-après de façon plus détaillée, le groupe de registres 112
permet également des échanges de données rapides entre la lo-
gique de parcours d'arbre 32 et le processeur géométrique 36,
et il fait fonction de tampon de données pendant des trans-
ferts de pile entre le processeur géométrique 36 et la mémoire
à structure de pile 126 de la logique de parcours d'arbre 32.
Comme décrit précédemment, la mémoire de pile 126
constitue une mémoire tampon entre des opérations de traite-
ment de données successives correspondant à des parcours en
sens direct et en sens inverse. Ainsi, dans le mode de réali-
sation qui est représenté, les données obtenues pendant le parcours d'élimination sont enregistrées dans la mémoire à structure de pile 126 jusqu'à ce qu'elles soient retransférées vers le processeur géométrique, pendant le parcours en sens inverse de la liste de visualisation, pour le traitement de face.
Des transferts de données entre le processeur géo-
métrique 36 et la mémoire à structure de pile 126 de la logi-
que de parcours d'arbre 32 ont lieu sur le bus de pile 38,
par l'intermédiaire d'un tampon de données de pile bidirection-
nel 310. Du fait que ces transferts de données sont indépen-
dants des transferts de paquets de données sur le bus de DLM 34, le bus de DLM 34 du mode de réalisation représenté peut être un bus unidirectionnel, ce qui simplifie le fonctionnement
du bus de DLM 34, et augmente donc considérablement sa vitesse.
En outre, les deux bus séparés, c'est-à-dire le bus de pile 38 et le bus de DLM 34, doublent effectivement la largeur de bande
d'entrée du processeur géométrique 36. Ainsi, le temps de char-
gement des données et le temps inactif pour le processeur géo-
métrique 36 sont réduits de façon correspondante.
La commande des opérations de transfert pour la mé-
moire à structure de pile est assurée par un contrôleur de
pile 312 qui est lui-même commandé par le micro-séquenceur 300.
Le micro-séquenceur 300 fournit, par le bus de données local 308, l'adresse de départ, le nombre de mots à transférer, la direction et la destination du transfert de pile. Le contrôleur de pile 312 peut accomplir le transfert de pile sans action de
commande ultérieure du micro-séquenceur.
La logique de parcours d'arbre 32 comprend également une unité arithmétique et logique 314 de type classique. Sous la commande du microséquenceur 300, l'unité arithmétique et logique 314 assure les fonctions d'addition, de soustraction,
de décalage, de masquage et d'enregistrement de données.
La figure 14 représente de façon plus détaillée l'in-
terface de DLM 306. L'interface de DLM 306 comprend un compteur à 24 bits, 314, qui génère des adresses contiguës à 24 bits pour adresser la mémoire de liste de visualisation 16. Les 20 bits de plus fort poids de l'adresse de départ d'un paquet à lire dans la mémoire de liste de visualisation 16 sont chargés dans les 20 positions de bits de plus fort poids du compteur d'adresse de DLM 314, à partir des lignes de données 25- 6 (25:6) du bus de données local 308. Dans le mode de réalisation
qui est représenté, les paquets sont enregistrés dans la mémoi-
re de liste de visualisation 16 de façon que les quatre bits de
2 613 10
moindre poids de l'adresse de départ de chaque paquet aient tous la valeur zéro. Par conséquent, les quatre positions de bit de moindre poids du compteur d'adresse de DLM 314 sont initialement fixées à 0. Un circuit amplificateur-émetteur (tel qu'un circuit intégré AS374) 316 connecte la sortie du compteur d'adresse de DLM 314 au bus d'adresse de la mémoire de liste de visualisation 104. Une fois que la mémoire de liste de visualisation 16 a accepté l'adresse initiale, le compteur d'adresse de DLM 314 est incrémenté pour fournir à la mémoire de liste de visualisation 16 l'adresse contiguë
suivante du paquet.
Les signaux de commande destinés à charger les 20 bits d'adresse de plus fort poids à partir du bus de données local 308, et à incrémenter le compteur d'adresse de DLM 314, sont fournis par un circuit logique 318 qui est réalisé au
moyen de circuits consistant en réseaux logiques programmés.
Les schémas logiques des figures 15A-15C représentent une ma-
nière selon laquelle on peut programmer les réseaux logiques programmés. Les circuits logiques 318 et le compteur d'adresse de DLM 314 forment conjointement un automate d'états finis dont les transitions entre etats logiques sont représentées sur la figure 16. Le diagramme de transitions d'états logiques de la figure 16 représente les transitions vers l'état suivant, réduites à une forme fondamentale. On note évidemment qu'il est possible de concevoir d'autres automates d'états finis pour produire les signaux de commande appropriés de l'interface
de DLM 306.
Comme le montre la figure 16, l'automate d'états
finis comporte quatre états ou modes de base, portant respecti-
vement les désignations RESET (restauration), COUNT (comptage), EXTEND (extension) et END (fin), qui sont représentés par deux variables d'état, "G" et "F'. L'état RESET (GF =00) apparait à la mise sous tension. Le passage à cet état a lieu lorsque la ligne d'entrée de restauration synchrone (SYNCH RESET) dirigée vers les circuits logiques 318 (figures 14 et 15A-15C) est à
2 613 100
l'état actif. Le signal de commande SYNCH RESET est fourni par
l'interface de bus de système 100 (figure 13).
Le réseau logique programmé de la figure 15A com-
prend quatre bascules 320-323 qui, lorsqu'elles -sont ilstau-
rées, indiquent respectivement les quatre états RESET, COUNT, EXTEND et END. Les entrees des bascules d'état 320-323 sont connectées aux sorties d'une logique combinatoire appropriée qui utilise divers signaux d'entrée de commande, comprenant le
signal SYNCH RESET, appliqués à l'interface de DLM 306.
* Dans l'état RESET, les états des variables d'état logique, G et F, sont égaux à 0, comme le montre la figure 17 qui est un diagramme séquentiel illustrant le transfert d'un paquet de données de la mémoire de liste de visualisation 16
vers la logique de parcours d'arbre et le processeur géométri-
que. Le passage à l'état COUNT s'effectue sous l'effet de l'activation de l'une ou l'autre des deux lignes de validation de "chargement de paquet" qui proviennent des registres d'état/ commande 304 et qui sont dirigées vers les circuits logiques 318. La première ligne de validation de chargement de paquet,
désignée par DLM IF LD W/O GP, déclenche un transfert de don-
nees de la mémoire de liste de visualisation 16 vers la logique
de parcours d'arbre 32 seulement. La seconde ligne de valida-
tion de chargement de paquet, désignée par DLM IF LU W/GP, dé-
clenche un transfert de données dirigé conjointement vers la
logique de parcours d'arbre 32 et le processeur géométrique 36.
Dans l'exemple de la figure 17, c'est le signal DLM IF LD W/GP qui est active, ce qui fait que les paquets sont transférés à
la fois vers la logique de parcours d'arbre et vers le proces-
seur géométrique.
Un transfert de données vers le processeur géométri-
que 36 par le bus de DLM 34 exige que le groupe de registres
de DLM 115 du processeur géométrique (figure 8) soit diponible.
La disponibilité du groupe de registres de DLM 115 du proces-
seur géométrique est indiquee sur une entrée de signal de com-
mande GP DLM REG AVL 118 des circuits logiques 318, qui est
attaquée par le processeur géométrique 36.
Chaque signal de validation de chargement de paquet provoque le chargement des 20 bits de plus fort poids de l'adresse de paquet de DLM de départ dans le compteur d'adresse de DLM 314 de la figure 14. Ce signal de validation de charge- ment d'adresse est généré par une logique combinatoire ayant un signal de sortie désigné par SO (figure 15B) et appliqué au compteur d'adresse 314 (figure 14). L'activation du signal de commande de validation de chargement d'adresse SO est également
représentée dans le diagramme séquentiel de la figure 17.
Au moment de la transition positive du signal de com-
mande de chargement de paquet DULM IF LD W/GP, une bascule 324 (figure 15B) des circuits logiques d'interface de DLM 318 est instaurée comme l'indique la ligne de diagramme séquentiel
W/GP Q de la figure 17, ce qui signale que le transfert de pa-
quet doit être effectué conjointement vers le processeur géomé-
trique et la logique de parcours d'arbre. (Si l'autre signal de validation de chargement de paquet, DLM IF LD W/O GP, avait été activé, une seconde bascule 325 aurait été instaurée pour
indiquer que le transfert de données ne devait pas être effec-
tué vers le processeur géométrique 36.) De plus, la variable
d'état de transition F est instaurée pour indiquer une transi-
tion vers l'état COUNT, comme le montrent les figures 16 et 17. Dans le mode de réalisation qui est représenté, les circuits logiques d'interface de DLM 318 des figures 15A-15C sont synchrones et utilisent un signal d'horloge de système à dix mégahertz pour assurer la compatibilité avec les entrées des groupes de registres de DLM respectifs 112 et 115 de la logique de parcours d'arbre 32 et du processeur géométrique 36. Ainsi, au moment de la transition négative de l'impulsion
d'horloge à la terminaison du signal de validation de charge-
ment de paquet DLM I/F LD W GP, le signal de commande DTT REQUEST est activé, ce qui indique à la mémoire de liste de visualisation 16 que l'adresse fournie par l'interface de DLM
2 61310 0
306 est valide. Le signal de commande DLM REQUET est généré par une logique combinatoire des circuits logiques d'interface
de DLM 318 de la figure 15B. Du fait que le transfert de don-
nées chargera les données dans le groupe de registres de DLM 115 du processeur géométrique 36, le signal de commande de disponibilité de registres du processeur géométrique, GP REG
-V[, doit être actif avant que le signal de commande de deman-
de de DLM soit activé par les circuits logiques d'interface de
DLM 318.
Pendant l'état COUNT, l'interface de DLM 306 attend l'activation du signal de commande d'incrémentation d'adresse
de DLM (DLM ADR INC), provenant de la mémoire de liste de vi-
sualisation 16. Au moment de la transition positive de la pre-
mière impulsion d'horloge faisant suite à l'activation du si-
gnal d'incrémentation d'adresse de DLM, un signal de valida-
tion d'impulsion EN--, généré par les circuits logiques d'in- terface de DLM 318 de la figure 15B, provoque le commencement de
l'incrémentation du compteur d'adresse de DLM 314 de la figure 14, comme le montre la figure 17. Le compteur d'adresse 314 continue à incrémenter les adresses qui sont appliquées à la mémoire de liste de visualisation 16, jusqu'à ce que la 16ième adresse de paquet ait été transmise, ou bien jusqu'à ce que 32 adresses aient été transmises si un transfert étendu a
été déclenché.
Comme mentionné précédemment, les paquets du mode de réalisation qui est représenté ont tous une longueur de 16 ou 32 mots. On déclenche un transfert étendu en activant l'un ou
l'autre des signaux de validation de chargement de paquet pen-
dant qu'un transfert de données est en cours. Ainsi, comme le montrent les figures 16 et 17, la seconde transition positive du signal de commande de chargement de paquet DLM IF LD W/GP provoque une transition positive de la variable d'état G, ce
qui place l'automate d'états finis dans l'état EXTEND (exten-
sion). Comme le montre la figure 14, les cinq bits d'adresse
de moindre poids EDCBA de la sortie du compteur 314 sont ren-
voyés vers les circuits logiques 318 pour autoriser ces cir-
cuits à déterminer le moment auquel la 32ième (ou la 16ième) adresse a été transmise. Une fois que la 32ième adresse (ou la 16ième adresse dans le cas d'un transfert sans extension) a été transmise, les circuits logiques d'interface de DLM 318
mettent fin aux signaux de commande LM REQUE7T et r-NP. L'au-
tomate d'états finis accomplit également une transition vers
l'état END (fin), comme le montrent les figures 16 et 17.
L'interface de DLM 306 reste dans l'état END jusqu'à ce que
le signal DATA VALID provenant de la mémoire de liste de vi-
sualisation 16 se termine, ce qui restaure l'interface de DLM 306.
Au début du transfert de données à partir de la mé-
moire de liste de visualisation 16, les circuits logiques d'interface de DLM 318 appliquent un signal GP DLM REGISTER
L5-D au groupe de registres de DLM 115 du processeur géométri-
que 136 pour autoriser ce groupe de registres à charger le paquet de données. Une fois que le transfert de données a été achevé, les circuits logiques d'interface de DLM 318 activent
un signal de commande DLM I/F DONE qui est reçu par les regis-
tres d'état/commande 304 de la figure 13. Les registres d'état/commande 304 reçoivent également les bits d'adresse de
DLM de moindre poids provenant de l'interface de DLM 306. Ce-
ci permet à la logique de parcours d'arbre d'examiner le compte de mots d'un paquet, une fois qu'un transfert de paquet a été déclenché, et d'augmenter le nombre de mots dans le
transfert de paquet, si nécessaire.
Si un paquet de 32 mots ne s'étend pas dans les li-
mites normales de 32 mots, on peut utiliser un circuit spécial qui est représenté sur la figure 15C. Le circuit de la figure C modifie le bit d'adresse d'entrée de plus fort poids E qui est dirigé vers le circuit logique de commande 318. Le bit E sera toujours un O au début d'un cycle de transfert. Après que
la 16ième adresse a été transmise, la sortie du circuit chan-
gera d'état et passera à l'état 1. Le signal de sortie de ce circuit est substitué au bit de plus fort poids E de l'adresse de DLM provenant du compteur d'adresse de DLM 314 de la figure
14. Cependant, si les paquets de données restent dans les li-
mites d'une seule page, le circuit de la figure 15C est inuti-
le. Du fait que l'interface de DLM 306 peut générer les
16 (ou 32) adresses du paquet de données sans action de com-
mande ultérieure du micro-séquenceur 300, une fois que ce der-
nier a fourni l'adresse de départ, le micro-séquenceur peut passer à d'autres tâches pendant que le paquet est lu de façon automatique dans la mémoire de liste de visualisation 16. Ceci augmente encore davantage la cadence de traitement de données globale du parcours en sens direct et inverse de la liste de visualisation. La figure 18 est un schéma qui représente de façon
plus détaillée le contrôleur de pile 312 et ses interconne-
xions avec la mémoire à structure de pile 126 et le tampon de données de pile 310. Il y a deux modes de transfert principaux des données de pile. Dans le premier mode, des données sont transférées entre la mémoire à structure de pile 126 et le processeur géométrique 36. Des transferts de données entre la mémoire à structure de pile 126 et le groupe de registres de DLM 112 (figure 13) de la logique de parcours d'arbre 32 sont
effectués dans le second mode de transfert de données de pile.
Dans le mode de réalisation qui est représenté, des données sont écrites dans la mémoire à structure de pile 126
à partir du groupe de registres 112 et du processeur géométri-
que 36 pendant le parcours et le traitement d'élimination de la liste de visualisation qui est enregistrée dans la mémoire de liste de visualisation 16. Plus précisément, les mots de pointeur d'enfant, de pointeur de bloc d'en-tête d'objet et
de niveau d'arbre sont transférés à partir du groupe de regis-
tres 112, et le mot d'indicateur, la matrice de transformation et d'autres attributs sont transférés à partir du processeur géométrique, pour des objets qui ont été déterminés comme
étant potentiellement visibles au cours du traitement d'élimi-
nation. Le processus est inversé pendant la partie de traite-
ment de face de la liste de visualisation, dans laquelle les mots de pointeur et de niveau d'arbre sont renvoyés vers le groupe de registres 112 pour permettre à la logique de par- cours d'arbre de déterminer si le segment comporte un segment enfant qui n'a pas été examiné. Si c'est le cas, la logique de parcours d'arbre retourne au mode d'élimination, et elle
accomplit le traitement d'élimination pour l'enfant du seg-
ment. Dans le cas contraire, la logique de parcours d'arbre transfère les paquets de données du segment vers le processeur géométrique 36, par l'intermédiaire du bus de DLM 34, pour le traitement de face. En outre, la logique de parcours d'arbre transfère la matrice de transformation et d'autres mots de données d'attributs de la mémoire à structure de pile 126 vers le processeur géométrique 36, pour le traitement de face de
l'objet du segment.
Comme mentionné précédemment, les opérations de
transfert de la mémoire à structure de pile pour chaque seg-
ment peuvent se dérouler indépendamment, une fois qu'elles ont été déclenchées par le micro-séquenceur 300 (figure 13). Le contrôleur de pile 312 comprend un compteur d'adresse 330 qui
génère les adresses séquentielles pour les opérations de lec-
ture ou d'écriture de la mémoire de pile 126. Le micro-séquen-
ceur 300 charge l'adresse de départ dans le compteur d'adresse
330, à partir du bus de données local 308. L'adresse est char-
gée à partir des registres d'état/commande 304 (figure 13),
par un signal de chargement d'adresse de pile de bus de don-
nées local (LDBSTKADLD).
L'adresse de mémoire à structure de pile (STKMEMAD) que génère le compteur d'adresse 330 est appliquée aux entrées d'adresse de ligne/colonne (R, C) d'un circuit contrôleur de mémoire 332. Dans le mode de réalisation qui est représenté, le circuit contrôleur de mémoire 332 est un circuit intégré
74S409 qui contient le compteur de régénération, les multiple-
xeurs d'adresse et les émetteurs de ligne appropriés pour per-
mettre le fonctionnement de la mémoire vive dynamique qui constitue la mémoire à structure de pile 126. Le signal de sortie d'adresse de mémoire à structure de pile du compteur d'adresse 330 peut également être renvoyé vers le micro-sé- quenceur 300, par l'intermédiaire d'un tampon de renvoi 334,
sous l'effet de l'activation d'un signal de sélection d'adres-
se de pile de bus de données local (LDBSTKADSEL) provenant des
registres d'état/commande 304 (figure 13). L'unité arithméti-
que et logique (ALU) 314 peut comparer l'adresse renvoyée pour détecter une condition de dépassement de capacité imminent
pour la pile.
Le nombre de mots à transférer est défini par 5 bits d'un mot de commande à 8 bits. Le mot de commande est chargé
dans un registre de mot de commande 336 sous l'effet de l'ac-
tivation d'un signal de commande de chargement de compteur de
mots de pile de bus de données local (LDBSTKWDCNTLD), prove-
nant des registres d'état/commande 304. Trois autres bits du mot de commande définissent la destination (soit le processeur géométrique 36, soit le groupe de registres 112), le sens (lecture ou écriture) et le mode de copie (c'est-à-dire si les
données provenant du groupe de registres de sortie 122 du pro-
cesseur géométrique doivent également être copiées ou non dans le groupe de registres de pile 120 du processeur géométrique
36). Le mot de commande peut être renvoyé vers le micro-sé-
quenceur 300 par le bus de données local 308, sous l'effet de l'activation d'un signal de commande de sélection de compteur
de mots de pile de bus de données local (LDBSTKWDCNTSEL), pro-
venant des registres d'état/commande 304.
Les trois bits de commande de transfert du mot de commande sont appliqués à un circuit logique de commande de pile 338 qui, en combinaison avec des registres d'état 340, constitue un automate d'états finis qui détermine la séquence de commande du contrôleur 312. Le circuit logique de commande de pile 338 et les registres d'état 340 génèrent les signaux de commande appropriés pour le contrôleur de mémoire 332, le tampon de données de pile 310, le compteur d'adresse 330 et un compteur de mots 342. Le compteur de mots 342 charge le compte de mots à 5 bits (en complément à deux) provenant du registre de mots de commande 336, et ce compteur est incrémenté chaque fois qu'un mot est transféré. Un comparateur 346 contrôle le signal de sortie du compteur de mots 342 et il
applique un signal de fin de transfert (1'-N-D) au circuit lo-
gique de commande de pile 338 lorsque le signal de sortie du compteur de mots (WDCNT) atteint un état ne comportant que des 1, ce qui indique que le nombre de mots spécifié a été transféré. Le signal de sortie du compteur de mots, WDCNT, fournit également les adresses de registre pour le groupe de registres de DLM 112 de la logique de parcours d'arbre 32, et
pour les groupes de registres 120 et 122 du processeur géomé-
trique 36. Le micro-séquenceur 300 peut également contrôler le compte de mots par l'intermédiaire des registres d'état/
commande 304.
La mémoire à structure de pile 126 du mode de réali-
sation qui est représenté est une mémoire vive dynamique d'une capacité de 256 K mots de 32 bits. Comme le montre la figure 9, 23 mots sont enregistrés dans la mémoire à structure de
pile pour chaque objet qui est déterminé comme étant poten-
tiellement visible au cours du processus d'élimination. La mé-
moire à structure de pile 126 peut ainsi accepter plus de
11000 objets au cours d'une seule passe de parcours, sans dé-
passement de capacité. Les données sont de préférence enregis-
trées dans la mémoire à structure de pile 126 de façon que
chaque accès séquentiel porte sur une seule page de 256 demi-
mots (multiplets). Si cette condition n'est pas remplie, il peut être nécessaire d'interrompre un transfert de données pour permettre un changement de page. Le compteur d'adresse
330 signale une telle condition de changement de page au cir-
cuit logique de commande de pile 338 de la figure 18, par
l'intermédiaire d'une ligne de signal de sortie de report si-
multané de compteur (qui porte la désignation "ROLLOVER"). Si une interruption de changement de page se produit, la ligne de sortie de validation d'adresse de ligne (RAS), dirigée du contrôleur 332 vers la mémoire 126, est portée à l'état haut et ensuite à l'état bas au moment o une nouvelle adresse de ligne provenant du compteur d'adresse 330 est placée sur le
bus d'adresse de mémoire à structure de pile (STKMEMAD), di-
rigé vers le contrôleur de mémoire 332.
Le groupe de registres de logique de parcours d'ar-
bre, 112, du mode de réalisation représenté, reçoit et émet des données à 16 bits en multiplex temporel. Le tampon de
données de pile 310 est un tampon bidirectionnel qui enregis-
tre en tampon les données de sortie de la mémoire à structure de pile 126 pour réaliser l'adaptation au cycle de bus de données en multiplex temporel du bus de données de pile 38,
qui est dirigé vers le groupe de registres de logique de par-
cours d'arbre 112 et vers le processeur géométrique 36.
L'automate d'états finis du circuit logique de com-
mande de pile 38 et des registres d'état 340 comporte cinq
états principaux auxquels on donne respectivement les dési-
gnations RESET (restauration), IDLE/REFRESH (état inactif/ régénération), LOADED/REFRESH (état chargé/régénération), START (démarrage) et MEMORY CYCLE (cycle de mémoire), comme le montre la figure 19. Les états principaux sont appelés états de "mode" et ils sont définis par les variables d'état F, E et D. Chaque état de mode peut comprendre jusqu'à 6 états secondaires ou de "compteur", définis par les variables d'état C, B et A, et représentés sur la figure 20. On utilise les états de mode et de compteur de l'automate d'états finis pour générer les signaux de commande qui sont émis par les
registres d'état 340 de la figure 18.
Le passage à l'état de mode RESET s'effectue au mo-
ment de la mise sous tension, et l'automate d'états finis du contrôleur de pile passe ensuite immédiatement à l'état de mode IDLE/REFRESH, comme le montre la figure 19. Dans cet état, l'automate d'états finis du contrôleur de pile régénère de façon cyclique la mémoire à structure de pile 126 tout en attendant que le micro-séquenceur 300 déclenche un transfert de données de pile. Un transfert de données est déclenché au moment auquel le micro-séquenceur 300 active un signal de com- mande de démarrage de mémoire à structure de pile de bus de données local (LDBSTKMEMSTRT), qui est dirigé vers le circuit logique de commande de pile 338 et le compteur de mots 342 de la figure 18. Si le processeur géométrique est sélectionné en
tant que destination ou source, et s'il n'est pas prêt à rece-
voir ou à émettre des données, l'automate d'états finis de contrôleur de pile est aiguillé en attente vers l'état de mode
LOADED/REFRESH (figure 19), dans lequel l'action de régénéra-
tion de la mémoire à structure de pile 126 est poursuivie jusqu'à ce que le processeur géométrique soit prêt. L'état prêt du processeur géométrique est indiqué par un signal de commande d'état prêt de processeur géométrique (GPRDY), qui est fonction des bits de destination, de sens et de copie du registre de mot de commande 336, et des lignes de commande GP OUTPUT REGISTER LOADED (registre de sortie du processeur géométrique chargé) et GP REGISTER AVAILABLE (registre de processeur géométrique disponible) (figure 29A) du bus de pile 38, provenant du processeur géométrique 36. L'activation du signal de commande de démarrage de mémoire de pile (STKMEMSTRT) commande au compteur de mots 342 de charger le compte de mots
qui provient du registre de mot de commande 336.
Une fois que le processeur géométrique 36 a indiqué qu'il était prêt (signal GPRDY actif), l'automate d'états finis de contrôleur de pile passe à l'état principal START, comme le montre la figure 19. La transition vers l'état START est également représentée sur la figure 21 qui est un diagramme séquentiel illustrant la génération des adresses de groupes de registres pour une opération de lecture caractéristique dans la mémoire à structure de pile 126, et pour une opération d'écriture caractéristique dans la mémoire à structure de pile 126. A partir de l'état principal START, l'automate d'états finis du circuit logique de commande de pile 338 et les registres d'état 340 passent à un cycle de mémoire (MEMCYCLE) au cours duquel est effectué l'accès aux données se trouvant dans la mémoire à structure de pile 126. Les données lues dans la mémoire à structure de pile 126 sont écrites dans le groupe de registres de DLM 112 de la logique de parcours
d'arbre et/ou dans le groupe de registres de pile 120 du pro-
cesseur géométrique 36 (figure 8). Les adresses de groupes de registres sont fournies par les cinq bits de plus fort poids du signal de sortie à 6 bits (WDCNT) du compteur de mots 342
(figure 18). Pendant le cycle de mémoire (MEMCYCLE), l'auto-
mate d'états finis de pile génère un signal de commande d'im-
pulsion de validation de compteur de mots de la mémoire à
structure de pile ((STKWDCNTE7), qui est dirigé vers le comp-
teur de mots 342, pour incrémenter ce compteur jusqu'à ce que le nombre de mots désigné aient été lus dans la mémoire à structure de pile 126. Chaque groupe de registres charge un mot à 32 bits dans deux demi-mots de 16 bits séquentiels, à chaque adresse "paire" (bit de moindre poids de WDCNT à l'état inactif), à partir de la sortie du compteur de mots 342. Des
transferts vers les groupes de registres du processeurs géomé-
trique et à partir de ces groupes de registres sont retardés
d'un cycle d'horloge. Dans le mode de réalisation qui est re-
présenté, le groupe de registres de DLM 112 de la logique de
parcours d'arbre 32 est un circuit intégré de groupe de regis-
tres à accès multiples du type Weitek 1066. Le groupe de re-
gistres de pile 120 et le groupe de registres de sortie 122
du processeur géométrique 36 sont réalisés au moyen d'un cir-
cuit intégré de groupe de registres à accès multiples du type MEC. Comme le montre la figure 21, les groupes de registres de pile et de sortie du processeur géométrique sont adressés une période d'horloge à 10 mégahertz après l'adressage du groupe
de registres de DLM 112. Par conséquent, les signaux de vali-
2 6 1 310
dation de lecture ou d'écriture de pile du processeur géométri-
que (GP STACK READ ENB ou GP STACK WRITE ENB) que génère l'au-
tomate d'états finis de pile de la figure 18, coïncident avec
l'activation du bit de moindre poids ("adresse impaire") du si-
gnal de sortie WDCNT du compteur de mots 342. Si les données qui sont lues dans la mémoire à structure de pile 126 sont
écrites dans le groupe de registres de DLM de logique de par-
cours d'arbre 112, un signal de commande de validation de lec-
ture de pile (STK RDEN), émis par les registres d'état 340 (figure 18), est activé. Si les données sont écrites dans la mémoire à structure de pile 126 à partir du groupe de registres de DLM 112, un signal de sortie de validation d'écriture de pile (STK WRITE ENB) des registres d'état 340 est activé. Une fois que tous les mots ont été transférés, le signal de sortie
END du comparateur 346 est activé.
La figure 22A illustre une opération d'écriture ca-
ractéristique dans la mémoire à structure de pile 126, à partir du groupe de registres de DLM de logique de parcours d'arbre, 112. Pendant le cycle LOAD, les signaux de commande appropriés (comprenant l'adresse), sont appliqués au groupe de registres de DLM 112. Un cycle d'horloge plus tard au cours du cycle
START, l'autorisation d'accès est accordée aux cellules de mé-
moire du groupe de registres, et les données sont produites un cycle d'horloge plus tard, en deux demi-mots de 16 bits en multiplex temporel (ces demi-mots correspondent respectivement aux bits de fort poids (MSB) et aux bits de faible poids (LSB)). Dans le mode de réalisation qui est représenté, l'adresse est appliquée une seconde fois une période d'horloge après son application initiale, ce qui fait que les données sont fournies à nouveau une période d'horloge après que les données initiales ont été fournies. Les adresses relatives aux mots suivants du transfert de données sont appliquées au groupe
de registres de DLM 112 pendant le cycle de mémoire.
L'automate d'états finis du circuit logique de com-
mande de pile 338 et des registres d'état 340 génère les si-
gnaux de commande F, CBA (transfert synchrone de B vers A) et
CAB (transfert synchrone de A vers B), pour le tampon de don-
nées de pile bidirectionnel 310 de la figure 18. Le tampon de
données de pile 310 transmet les données du groupe de:egis-
tres de DLM 112 vers un bus A 347 qui connecte l'entrée/sortie A du tampon 310 à la mémoire à structure de pile 126. Comme
représenté sur la figure 22A, l'activation du signal de trans-
fert synchrone de B vers A provoque l'émission du multiplet de fort poids MSB du groupe de registres de DLM 112 sur le bus A, pendant environ un cycle d'horloge à 10 mégahertz. Une seconde activation du signal de transfert synchrone de B vers A (CBA) place le multiplet de faible poids LSB sur le bus A pendant une durée approximativement égale à un autre cycle d'horloge
de 10 mégahertz. Ces multiplets sont chargés par l'accès d'en-
trée de données de la mémoire à structure de pile 126 pendant
la moitié considérée en dernier du cycle d'horloge à 10 méga-
hertz, comme le montre la figure 22A. La figure 22B illustre le transfert de données dans l'autre sens, c'est-à-dire qu'il s'agit d'une opération de lecture qui transfère des données à partir de la mémoire à structure de pile 126 vers le groupe de registres de logique de parcours d'arbre 112 et/ou le groupe
de registres de pile 120 du processeur géométrique, par l'in-
termédiaire du tampon de données de pile bidirectionnel 310.
La figure 23 montre les caractéristiques temporelles
de la génération des signaux d'entrée appropriés pour le con-
trôleur de mémoire à structure de pile 332, par l'automate d'états finis de la figure 18. Les signaux de sortie que le contrôleur de mémoire 332 génère pour accéder à la mémoire à structure de pile 126 sont également représentés sur la figure 23. L'Annexe A présente les équations d'état pour les états principaux ou de "mode" et les états secondaires ou de "compteur", qui sont représentés sur les figures 19-22B. Comme le montrent ces équations, la variable d'état de mode Test fonction non seulement des variables d'état principales F-D et
261310 0
des variables d'état secondaires C-A, mais également des condi-
tions désignées par "MT", "ROLLOVER", et "RESET". La condition " " se produit au moment d'un dépassement de capacité du compteur de mots 342 de la figure 18, ce qui indique que le transfert du nombre de mots désigné a eu lieu. La condition ROLOVER se produit lorsque le compteur d'adresse 330 de la
figure 18 indique que la fin d'une page a été atteinte. Les va-
riables d'état principales E et F sont également fonction d'une condition désignée par "ST1TBT", qui est elle-même fonction
de la condition "TT-T" qui apparaît lorsque le micro-séquen-
ceur active le signal STK MEM STRT pour déclencher un trans-
fert de mémoire à structure de pile. La génération des signaux de commande d'entrée pour le contrôleur de mémoire à structure de pile 332 et pour le tampon de données de pile bidirectionnel 310 est également définie dans l'Annexe A. L'unité arithmétique et logique (ALU) 314 accomplit les opérations arithmétiques et logiques du micro-séquenceur
300 de la figure 13. Ces fonctions comprennent les tests de dé-
termination de pointeurs nuls, les opérations d'incrémentation
et de dêcrémentation de valeurs, le test de dépassement de ca-
pacité de pile et les tests des bits d'indicateurs. Comme le montre la figure 24, l'unité arithmétique et logique 314 est constituée par cinq circuits intégrés d'unité arithmétique et logique à 4 bits (du type AMD 2901), portant les références 350a-350e, interconnectés selon une structure à tranches de bits classique, pour former une unité arithmétique et logique à 20 bits. Le fonctionnement de la structure à tranches de bits de la figure 24 est expliqué de façon plus détaillée dans une documentation technique de la firme Advanced Micro Devices intitulée Bipolar Microprocessor Logic and Interface (1983),
pages 5-5 à 5-31.
Les éléments d'unité arithmétique et logique (ALU) 350a-350e contiennent 16 registres de mémoire et un élément de décalage. Le micro-séquenceur 300 de la figure 13 commande le fonctionnement de ces éléments. Un mot d'instruction d'ALU à 17 bits (ALUINST), provenant des registres d'état/commande 304, spécifie le registre de source, l'opération à effectuer, le registre de destination et les sélections relatives aux registres A et B. Les sorties des éléments d'ALU 350a-350e sont connectées au bus de données local 308. Ces sorties sont validées par un signal de sélection de registre de source d'ALU de bus de données local (LDBALUSRCSEL), provenant des registres d'état/commande 304, lorsque des données doivent être écrites
dans le groupe de registres de DLM 112.
On a réduit le temps de propagation de report de l'unité arithmétique et logique 314 en employant un circuit de
report anticipé à 3 étages, constitué par des circuits inté-
grés de report anticipé du type AMD 2902, portant les référen-
ces 352a-352c. Le circuit de report anticipé à 3 étages réduit
à un seul cycle d'horloge le temps de propagation du report.
Une seule unité à réseau logique programmé 354 cons-
titue une unité de commande de décalage avec "enroulement"
pour l'unité arithmétique et logique 314. Les signaux d'en-
trée de l'unité à réseau logique programmé 314 comprennent le bit sept du mot d'instruction d'unité arithmétique et logique (ALUINST) provenant des registres d'état/commande 304, qui spécifie si le décalage doit être effectué vers le haut ou vers le bas. Le réseau logique programmé 314 reçoit également
le bit de sortie de fort poids de l'unité arithmétique et lo-
gique (ALU MSB) et un mot d'instruction de décalage (SHIFT INST) a deux bits (SO, Sl), qui indique si le décalage est du type "zéro", "un", "rotation" ou "arithmétique". Ces fonctions sont définis à la page 5-22 de la documentation technique de
la firme AMD mentionnée précédemment. Les équations de comman-
de qui définissent les sorties de réseau logique programmé 01-
04 de l'unité 354 sont présentées dans l'Annexe C. Les regis-
tres d'état/commande 304 de la figure 13 forment un multiple-
* xeur de conditions de test, qui permet de tester le bit de
fort poids de l'ALU (ALU MSB), ou des indicateurs de dépasse-
ment de capacité (ALUOVR), de zéro (ALUZERO) ou de report
(ALUCARRY).
La figure 25 identifie les données enregistrées dans
les registres des éléments d'ALU 350a-350e du mode de réalisa-
tion représenté. La manière selon laquelle ces données sont utilisées pour les opérations de parcours en sens direct et en sens inverse est expliquée ci-après de façon plus détaillée en
relation avec la description du fonctionnement du micro-sé-
quenceur 300. Dans le mode de réalisation qui est représenté, le groupe de registres de
DLM 112 de la figure 13 est réalisé au
moyen d'un circuit intégré du type Weitek 1066. Comme le mon-
tre la figure 26, le groupe de registres de DLM 112 comporte un accès d'écriture ZO-Z15 qui est connecté par un tampon de
données 356 au bus de données de DLM 107 du bus de DLM 34.
Les 16 premiers mots de chaque paquet lu dans la mémoire de liste de visualisation 16 pendant les opérations de traitement
d'élimination et de face sont enregistrés aux adresses de re-
gistre 00-OF, comme le montre la figure 27 qui illustre l'af-
fectation des positions de mémoire du groupe de registres 112.
Les adresses de registre pour les mots de paquet de DLM sont
introduites par l'intermédiaire d'un accès de commande C18-
C22 connecté par un tampon d'adresse 358 au bus d'adresse de
registre 114, provenant de la mémoire de liste de visualisa-
tion 16.
Comme mentionné précédemment, les mots de paquet qui sont enregistrés dans le groupe de registres de DLM 112 et qui
proviennent de la mémoire de liste de visualisation 16, con-
tiennent des pointeurs désignant d'autres données. Ainsi, par
exemple, un bloc de commande de segment tel que celui repré-
senté sur la figure 4 comporte des pointeurs dirigés vers des segments frères et enfants, et vers des tampons d'élimination et de données. De façon similaire, chaque paquet de tampon d'élimination ou de données comporte un pointeur qui désigne le paquet suivant du tampon. Le groupe de registres de DLM
2 6 1 3100
112 comporte un accès de lecture/écriture à 32 bits, DO-D31, qui est connecté au bus de données local 308. Des pointeurs sont transférés par le bus de données local 308 vers l'unité arithmétique et logique 314, pour déterminer s'il existe des pointeurs nuls, et en vue d'un enregistrement temporaire des pointeurs. Des pointeurs peuvent également être transférés par le bus de données local 308 vers l'interface de DLM 306,
pour déclencher un transfert d'un paquet à partir de la mé-
moire de liste de visualisation 16. Pendant que la logique de
parcours d'arbre parcourt la liste de visualisation de la mé-
moire de liste de visualisation 16, divers pointeurs sont en-
registrés dans les positions d'adresse de registre 10-lD, comme le montre la figure 27, conformément à l'algorithme de parcours.
Le groupe de registres de DLM 112 comporte égale-
ment un accès de lecture à 16 bits WO-W15 et un accès d'écri-
ture à 16 bits YO-Y15 qui sont connectés au bus de données de pile 38. Des pointeurs d'adresse contrôlés et enregistrés
dans l'unité arithmétique et logique 314, et le niveau d'ar-
bre (mot OA de l'ALU) calculé par l'unité arithmétique et lo-
gique 314, sont transférés vers la mémoire à structure de pi-
le 126 par l'intermédiaire du groupe de registres de DLM 112, pour des segments qui, d'après la détermination faite pendant
le processus d'élimination, sont potentiellement visibles.
Des données sont lues dans l'unité arithmétique et logique 314 sous la forme d'un mot de 32 bits, par l'intermédiaire de
l'accès de lecture WO-W15, et elles sont écrites dans la mé-
moire à structure de pile 126 par l'intermédiaire de l'accès d'écriture YO-Y15, selon un format de multiplexage temporel
à 16 bits.
Le groupe de registres de DLM 112 lit par l'inter-
médiaire de l'accès de lecture WO-W15 des données provenant de la mémoire à structure de pile 126. Le signal de sortie du compteur de mots 342, représentant les adresses de registre pour les données qui sont lues dans la pile, est appliqué aux
2 613100
entrées de commande C6-C10 et C24-C28 du groupe de registres de DLM 112. Des mots provenant de la mémoire à structure de pile sont enregistrés dans des positions d'adresse de registre
1D-1F, comme le montre la figure 27.
Le groupe de registres 112 est également adressé par
la mémoire de microprogramme 302 du micro-séquenceur 300 (fi-
gure 13). Des adresses provenant de la mémoire de micropro-
gramme 302 transitent par un tampon d'adresse 360 et sont ap-
pliquées à un accès de commande C12-C16 et C30-C33 du groupe de registres de DLM 112. La logique de commande d'adresse 362 qui est représentée de façon plus détaillée sur la figure 28 comprend un ensemble de portes OU 363. La logique de commande d'adresse 362 reçoit le signal de commande de données valides de DLM (DLM DAT VAL) et le bit 4 des adresses de registre de DLM, à partir de la mémoire de liste de visualisation 16, les signaux de commande de validation de lecture de pile(STK RD EN) et de validation d'écriture de pile (STK WR EN), provenant des registres d'état 340 du contrôleur de pile de la figure 18, et le signal de commande de restauration sycnhrone (SYNCH
RESET) et un signal de commande de sélection de groupe de re-
gistres (REGFILE SEL) provenant des registres d'état/commande
304, pour générer les signaux de commande de groupes de regis-
tres appropriés, qui sont appliqués aux entrées de signaux de
commande Cll, C17, C23, C29, C34-C35 et C33.
Les figures 29A et 29B montrent de façon plus dé-
taillée le micro-séquenceur 300, l'interface de bus de système , la mémoire de microprogramme 302 et les registres d'état/ commande 304. Le micro-séquenceur 300 du mode de réalisation qui est représenté est réalisé au moyen d'un circuit intégré
micro-séquenceur du type AMD 2910. Les registres d'état/com-
mande 304 et le micro-séquenceur 300 sont organisés selon une
configuration pipeline à un seul niveau, dont le fonctionne-
ment général est décrit de façon plus détaillée dans la docu-
mentation technique précitée de la firme AMD, aux pages 5-123
à 5-139.
Sous la dépendance de son état interne et d'une ins-
truction à quatre bits reçue sur un accès d'entrée I3-I0, le microséquenceur 300 émet une adresse de microprogramme à 12 bits (MICAD) sur un bus 364, vers la mémoire de microprogramme 302. Dans le mode de réalisation qui est représenté, la mémoi- re de microprogramme 302 consiste en une mémoire vive statique organisée en 2 K x 64 bits. La mémoire de microprogramme 302 constitue ce qu'on appelle également une mémoire de commande
avec possibilité d'écriture.
En réponse à l'adresse de microprogramme provenant du micro-séquenceur 300, la mémoire de microprogramme 302 émet un mot de commande à 64 bits vers des registres à structure
pipeline 366 des registres d'état/commande 304. Le mot de com-
mande provenant de la mémoire de microprogramme 302 commande le fonctionnement de la logique de parcours d'arbre 32 par l'intermédiaire des sorties des registres à structure pipeline 366. Les registres à structure pipeline 366 comportent 24
lignes de sortie (LDB (29:6)) connectées au bus de données lo-
cal 308. Des données peuvent être chargées sur le bus de don-
nées local 308 à partir des registres à structure pipeline 366
sous l'effet de l'activation d'un signal de commande de sélec-
tion de microprogramme de bus de données local (LDBMICKSEL),
provenant d'un démultiplexeur de commande de source du regis-
tre d'état/commande 304. Le démultiplexeur de commande de source 368 comporte 12 lignes de sortie (0-11), et chacune d'elles peut être activée, à raison d'une à la fois. Un grand nombre des sorties de signaux de commande du démultiplexeur de commande de source 368 permettent à un dispositif particulier tel que les registres à structure pipeline 366 d'émettre des données sur le bus de données local 308. La ligne de sortie particulière qui est activée est déterminée par quatre bits du mot de commande de sortie de registres à structure pipeline qui est désigné par le signal de sélection de source du bus de données local (LDBSRCSEL (3:0)) , apparaissant sur les figures
29A et 29B.
Un démultiplexeur de commande de destination 370 per-
met à un dispositif particulier de recevoir les données prove-
nant du bus de données local 308. La sortie particulière du dé-
multiplexeur de commande de destination 370 qui est validée est sélectionnée par les bits de sélection de destination du bus de
données local (LDBDESTSEL (3:0)) de la sortie de mot de comman-
de des registres à structure pipeline 366.
Les registres d'état/commande 304 comprennent en ou-
tre des registres d'indicateur et de condition 372 qui reçoi-
vent des signaux d'indicateur et de condition à partir de di-
vers dispositifs de la logique de parcours d'arbre 32, et éga-
lement à partir du processeur géométrique 36. Ces signaux com-
prennent les signaux de commande de zéro de l'ALU (ALUZERO), de dépassement de capacité de l'ALU (ALU OVR), de report de l'ALU (ALUCARRY), et de bit de plus fort poids de l'ALU (ALUMSB), qui proviennent de l'unité arithmétique et logique (ALU) 314 de la figure 24. Le micro- séquenceur 300 contrôle ces
signaux pour commander l'exécution du microprogramme. Le micro-
séquenceur 300 lit les signaux d'indicateur et de condition des
registres 372, un à la fois, par l'intermédiaire d'un multiple-
xeur d'indicateur et de condition 374. Le signal particulier qui est transmis au micro-séquenceur 300 est sélectionné par les bits de sélection de condition (CONDSEL) du mot de commande
de microprogramme des registres à structure pipeline 366. Cha-
que signal provenant des registres d'indicateur et de condition 372 peut être inversé (ou non inversé), conformément au bit de polarité de condition (CONDPOL) de la sortie de mot de commande
de microprogramme des registres à structure pipeline 366.
Le mot d'instruction d'unité arithmétique et logique
qui définit la source, l'opération, la destination et les sé-
lections de registre A et de registre B, est fourni par les bits ALUINST du mot de commande de microprogramme des registres à structure pipeline 366. Le bit sept du mot d'instruction d'unité arithmétique et logique détermine si les décalages sont effectués vers le bas ou vers le haut. Le mot d'instruction de
décalage d'unité arithmétique et logique (SHIFT INST) qui dé-
finit le type de décalage (zéro, un, arithmétique ou rotation) est également fourni par le mot de commande de microprogramme des registres à structure pipeline 366. Le mic.ro-séquenceur
300 place le signal de sortie de l'unité arithmétique et logi-
que 314 sur le bus de données local 308 en activant la ligne de sortie de signal de commande de sélection de l'ALU en tant
que source pour le bus de données local (LDBALUSRCSEL), du dé-
multiplexeur de commande de source 368 des registres d'état/
commande 304.
Le micro-séquenceur 300 déclenche une lecture d'un paquet de données dans la mémoire de liste de visualisation 16 en appliquant sur le bus de données local 308 et à l'interface de DLM 306 l'adresse de départ de DLM, qui provient du groupe de registres de DLM 112, ou de l'unité arithmétique et logique 314. Le micro-séquenceur 300 active également soit la ligne de
commande de chargement d'interface de mémoire de liste de vi-
sualisation sans copie vers le processeur géométrique (DLM I/F
LDWO GP), soit la ligne de commande de chargement de l'inter-
face de mémoire de liste de visualisation avec copie vers le processeur géométrique (DLM I/F LDW GP), du démultiplexeur de
commande de destination 370, selon que le paquet doit être co-
pié ou non dans le processeur géométrique. Le transfert du pa-
quet de données est contrôlé par l'intermédiaire des registres
d'indicateur et de condition 372 et du multiplexeur de regis-
tres d'indicateur et de condition 374. Les trois bits de fort poids des adresses du groupe de registres de DLM (DLM REGAD), et les signaux de données valides de DLM (DLM DAT VAL), que
fournit la mémoire de liste de visualisation 16, sont intro-
duits dans les registres d'indicateur et de condition 372 par
l'intermédiaire d'un tampon 376. Le signal de commande d'achè-
vement de transfert de données de DLM (DLMI/F DONE), que génè-
re l'interface de DLM 306, et la variable d'état de mode "E" que génèrent les registres d'état 340 du contrôleur de pile 312, sont charges directement par les registres d'indicateur
et de condition 372.
Pour transférer des données vers la mémoire à struc-
ture de pile 126 ou à partir de celle-ci, le micro-séquenceur 300 charge tout d'abord l'adresse de pile de départ dans le compteur d'adresse 330 du contrôleur de pile 312 de la figure 18. L'unité arithmétique et logique 314 calcule l'adresse de pile, et cette adresse est chargée à partir du bus de données local 308 sous l'effet de l'activation du signal de commande de chargement d'adresse de pile de bus de données local
(LDBSTKADLD), provenant du démultiplexeur de commande de des-
tination 370. Le micro-séquenceur 300 charge également dans le
registre de mot de commande de pile 336 le mot de commande dé-
finissant le nombre de mots à transférer, la destination et le mode de copie, sous l'effet de l'activation de la ligne de commande de chargement de compteur de mots de pile de bus de données local (LDBSTKWDCNTLD) du démultiplexeur de commande de
destination 370.
Pour des transferts dirigés du groupe de registres
de sortie de processeur géométrique 122 (figure 8) vers la mé-
moire à structure de pile 126, le processeur géométrique 36
active un signal d'état chargé des registres de sortie du pro-
cesseur géométrique (GP OTLDED), qui est dirigé vers les re-
gistres d'indicateur et de condition 372. Le transfert effec-
tif est déclenché par l'activation de la ligne de sortie de commande de démarrage de transfert pour la mémoire à structure de pile (STKMEM STRT), provenant du démultiplexeur de commande
de source 368. Une fois que le transfert est terminé, la logi-
que de parcours d'arbre 32 active la ligne de sortie de comman-
de de disponibilité des registres de sortie du processeur géo-
métrique (GPOUTMEMAVL), qui est une ligne de sortie du démulti-
plexeur de commande de source 368.
Un transfert de données à partir du processeur géo-
métrique n'a lieu que si l'objet du segment est indiqué comme étant potentiellement visible sur la ligne de commande d'objet visible après traitement d'élimination (GP OBJ VIS), qui est
dirigée du processeur géométrique 36 vers le registre d'indi-
cateur et de condition 372. Pendant le traitement de face, des données de pile sont transférées vers le groupe de registres de pile 120 du processeur géométrique. Une fois que le groupe de registres 120 est chargé, ce fait est signalé au processeur
géométrique 36 par l'activation de la ligne de sortie de com-
mande TT GP STK MEMLDED du démultiplexeur de commande de sour-
ce 368.
Pour la lecture en retour du signal de sortie d'adresse du compteur d'adresse 330, on active la ligne de commande de sortie de sélection d'adresse de pile de bus de données local (LDBSTKADSEL) du démultiplexeur de commande de source 368. L'activation de la ligne de sortie de signal de commande de sélection de compteur de mots de pile de bus de données local (LDBSTKWDCNTSEL) du démultiplexeur de commande de source 368, permet le renvoi par le bus de données local 308 de l'information de sortie de mot de commande du registre
de mot de commande 336, pour la lecture en retour.
Pour adresser le groupe de registres de DLM 112, on
active la ligne de commande de sélection de groupe de regis-
tres (REGFILE SEL) qui est dirigée des registres à structure pipeline de microprogramme 366 vers la logique de commande d'adresse 362 de la figure 26. L'adresse est fournie par 16 bits du bus de données de mot de commande de microprogramme
(MICDATA) provenant de la mémoire de microprogramme 302.
L'adresse est fournie 2 cycles avant que les données associées ne soient disponibles. Pour transférer des données vers le groupe de registres de DLM 112, ou à partir de celui-ci, sur le bus de données local 308, on active la ligne de sortie de commande de sélection de groupe de registres de bus de données local (LDBRGFLESEL), du démultiplexeur de commande de source 368. Cinq bits du mot de commande de microprogramme des registres à structure pipeline 366 contiennent l'instruction de microprogramme suivante (MICINST) pour le micro-séquenceur 300. En réponse au mot d'instruction de microprogramme reçu
par l'intermédiaire d'une porte logique 378, le micro-séquen-
ceur 300 émet l'adresse de microprogramme suivante (MICAD) vers la mémoire de microprogramme 302. Le mot de commande de
microprogramme qui est adressé est lu dans la mémoire de mi-
croprogramme 302 et est enregistré dans les registres à struc-
ture pipeline 366, pour fournir le jeu suivant de signaux de commande pour le fonctionnement de la logique de parcours
d'arbre.
L'Annexe B présente une description en langage de
conception de programme du microprogramme de la logique de
parcours d'arbre qui est enregistré dans la mémoire de micro-
programme 302. Le microprogramme de la logique de parcours
d'arbre comprend un programme "Principal" et sept sous-pro-
grammes ou procédures. Les commentaires relatifs au micropro-
gramme sont donnés sous la forme suivante: /ecommentairew/.
La première étape du programme Principal (pagell) a pour fonction d'initialiser les registres et les indicateurs, comme l'indique le commentaire de la ligne 2. Comme le montre la figure 25, le mot de registre de mémoire de données d'unité arithmétique et logique OC comporte un indicateur "inversion
et traitement" (bit 1) qui est instauré si la logique de par-
cours d'arbre doit passer au mode de traitement de face. En
outre, un bit de mode "traitement de face" (bit 19) est ins-
tauré si une face particulière doit être traitée. Ces deux
bits sont initialement restaurés au début du parcours d'élimi-
nation de la liste de visualisation.
Le premier segment a être parcouru est le segment de
fenêtre d'observation. La fenêtre d'observation est initiali-
sée par l'émission vers le processeur de visualisation 40 (figure 1) du paquet de fenêtre d'observation du segment de
fenêtre d'observation.
Le groupe de registres de DLM 112 (figure 13) com-
porte un certain nombre de positions de registre 10-lB (figure
27) pour enregistrer des pointeurs de segment et de tampon pen-
dant le parcours d'élimination et le parcours en sens inverse de traitement de face de la liste de visualisation. Dans les positions d'adresse de registre de DLM 10-13, les pointeurs de frère, d'enfant, de tampon d'élimination et de bloc d'en-tête sont enregistrés pour le dernier objet de segment qui a été
déterminé comme étant visible (ou potentiellement visible) pen-
dant la procédure d'élimination. Cependant, initialement, les
pointeurs du premier segment (c'est-à-dire le segment de fené-
tre d'observation) sont chargés dans les registres de mémorisa-
tion du dernier objet visible, comme indiqué aux lignes 5 et 6
du programme principal.
Le compteur d'adresse 330 du contrôleur de pile est un pointeur de pile qui désigne la position de mémoire courante dans la mémoire à structure de pile 126. Si le pointeur de pile retourne à la première position de la mémoire à structure de pile 126, ceci indique que tous les segments (objets de l'arbre) ont été parcourus et reparcourus, ce qui fait que la liste de visualisation est épuisée. Si tous les objets de la liste de visualisation ont été épuisés, le bit d'indicateur 17 du mot d'ALU OC (figure 25) est instauré. A la ligne 9, le programme Principal contrôle ce bit d'indicateur appelé "objets de l'arbre épuisés", et il accomDplit la pDrocédure d'exrécution d'une boucle de la ligne 9 jusqu'à ce que les objets de l'arbre soient épuisés (c'est-à-dire jusqu'à ce que le bit "objets de
l'arbre épuisés" soit instauré).
Une autre procédure de bouc2e indiquée aux lignes 12-24 est emboltée dans la procédure de boucle de la ligne 9
(c'est-à-dire la procédure "objets de l'arbre épuisés"). La pro-
cédure des lignes 12 -24 est répétée jusqu'à ce que le bit de mode "inversion et traitement de face" (mot d'ALU OC, bit 1), soit instauré. Ce bit de mode est instauré lorsqu'un segment visible n'ayant pas de segment frère ou parent est rencontré au cours du parcours d'élimination. Dans ces conditions, la logique de parcours d'arbre passe au parcours de la liste de - visualisation en sens inverse pour le traitement de face. En supposant que le bit de mode "inversion et traitement de face"
n'ait pas été instauré, le programme Principal(ligne 14) con-
trôle le pointeur de pile pour déterminer si la capacité ma-
ximale de la pile a été dépassée, ce qui indique une condition de "dépassement de capacité de pile". Dans la'négative, le
programme Principal transfère la commande à la Procédure "Eli-
mination d'Objet" qui est indiquée à la page 112 de l'Annexe B. L'unité arithmétique et logique 314 entretient un autre bit d'indicateur (mot d'ALU OC, bit 3), qui indique si "le dernier objet a été exploré". Les pointeurs de frère, d'enfant, de tampon d'élimination et de bloc d'entête pour un segment auquel le processus d'élimination doit être appliqué
sont enregistrés respectivement aux positions d'adresse de re-
gistre de "dernier objet exploré", 14-17, du groupe de regis-
tres de DLM 112 de la figure 27. Ce segment constitue ce qu'on
appelle le "dernier objet exploré". Si on détermine ultérieu-
rement que le segment est potentiellement visible, pendant le traitement d'élimination, ces pointeurs sont transférés vers les positions de "dernier objet visible", corresoondant aux adresses 10-13 du groupe de registres de DLM 112. Le segment
est alors appelé le "dernier objet visible".
Si l'indicateur de "dernier objet exploré"
n'est pas instauré, la Procédure d'Elimination d'Objet trans-
fère la commande à la procédure "Sélection du Dernier Objet Exploré" de l'Annexe B, page 119.Si le dernier objet visible
comporte un segment frère (c'est-à-dire si le pointeur de fré-
re est valide), la procédure de Sélection du Dernier Objet
Exploré obtient (ligne o) le pointeur de frèreà partir du regis-
tre de dernier objet visible (adresse 10), et elle enregistre le pointeur de frère dans le registre de pointeur de bloc d'en-tête du dernier objet exploré (adresse 17) de la figure
27. Ce pointeur de bloc d'en-tête du segment frère est trans-
féré vers l'interface de DLM 306 (figure 13), pour déclencher
un transfert du paquet de bloc d'en-tête vers le groupe de re-
gistres de DLM 112. A partir de ce paquet de bloc d'en-tête, les pointeurs de frère, d'enfant et de tampon d'élimination (figure 4) du segment frère sont transférés vers les registres
appropriés de pointeur du dernier objet exploré (adresses 14-
16) de la figure 27. La logique de parcours d'.arbre émet en-
suite (ligne lD) le pointeur de tampon d'élimination vers l'in-
terface de DLM 306, pour déclencher un transfert des paquets de tampon d'élimination du segment frère vers le processeur géométrique 36, pour le traitement d'élimination. Ensuite, l'indicateur de dernier objet exploré ( bit 3 du mot d'ALU OC) est instauré, et un indicateur de "frère/enfant du dernier objet exploré" (mot d'ALU OC, bit 5) est instauré pour
indiquer que le dernier objet exploré était le frère du der-
nier objet visible.
Si le dernier objet visible ne comporte pas un seg-
ment frère mais comporte effectivement un segment enfant, la
logique de parcours d'arbre prélève le bloc d'en-tête du seg-
ment enfant et elle transfère ensuite le tampon d'élimination du segment enfant vers le processeur géométrique 36, pour le
traitement d'élimination, en enregistrant les pointeurs appro-
priés du segment enfant dans les registres de dernier objet exploré (1417) Si le dernier objet visible ne comporte ni segment
frère ni segment enfant, la logique de parcours d'arbre a at-
teint l'extrémité d'un chemin de parcours d'élimination, et elle instaure le bit de mode de traitement de face (mot d'ALU
OC, bit 19). En outre, l'indicateur de dernier objet ex-
ploré et un indicateur "d'objet exploré suivant " (cor-
respondant respectivement aux bits 3 et 4) sont restaurés.
La procédure de Sélection du Dernier Objet Exploré
rend ensuite la commande à la ligne 6 de la procédure d'Eli-
mination d'Objet de la page 113 de l'annexe, qui rend elle-
même la commande à la ligne 23 du programme Principal. En supposant que la capacité de la pile n'a pas été dépassée, la procédure de boucle des lignes 12-24 appelle à nouveau la
procédure d'Elimination d'Objet.
Le dernier objet ayant été exploré (c'est-à-dire que
la procédure d'élimination a été appliquée au segment),lalogi-
* que de parcours d'arbre détermine à la ligne 8 de la procédure d'Elimination d'Objet si le processeur géométrique a terminé
le traitement d'élimination du dernier objet explore, et a en-
registré les données d'attributs de segment dans le groupe de registres de sortie 122 du processeur géométrique 36 (figure 8). Si l'information de sortie du processeur géométrique n'est pas disponible (ligne 8), la logique de parcours d'arbre
détermine si les pointeurs désignant l'objet suivant à explo-
rer ont été chargés dans les registres de pointeurs d'objet exploré suivant 18-1B de la figure 27. Dans la négative, la procédure d'Objet Exploré Suivant de la page 118de l'Annexe B
est appelée, et cette procédure met à jour (ligne 7) le poin-
teur de bloc d'en-tête "d'objet exploré suivant" (adresse lB du groupe de registres de DLM), pour le faire correspondre au pointeur de frère du "dernier objet exploré" (adresse 14 du
groupe de registres de DLM) si le pointeur de frère est vali-
de, c'est-à-dire si le "dernier objet exploré" possède un frère. Si le segment correspond au "dernier objet exploré" ne possède pas un frère, le pointeur d'enfant du "dernier objet exploré" est transféré vers le pointeur de bloc d'en-tête
"d'objet exploré suivant", s'il est valide.
Le pointeur de bloc d'en-tête d'objet exploré sui-
vant fournit l'adresse de départ pour le bloc d'en-tête du segment suivant à parcourir. Ce pointeur de bloc d'en-tête est transféré (ligne 9 ou 17) vers l'interface de DLM 306 (figure 13), pour déclencher un transfert du bloc d'en-tête vers le groupe de registres de DLM 112. A partir du paquet de bloc d'en-tête, les pointeurs de frère, d'enfant et de tampon
d'élimination sont copiés vers les positions d'adresse respec-
tives 18-1A (figure 27) des registres d'objet exploré suivant.
L'indicateur "d'objet exploré suivant" (mot d'ALU OC, bit 4)
est également instauré (ligne 3), ce qui indique que ce seg-
ment a déjà été exploré. Si le dernier objet exploré ne possè- de ni un pointeur de frère valide ni un pointeur d'enfant va-
lide, la logique de parcours d'arbre applique le traitement d'élimination aux registres appropriés parmi les registres d'objet exploré suivant, et elle instaure le bit d'indicateur de "face à traiter". Ceci achève la procédure "Objet Exploré Suivant". En retournant à la procédure "Elimination d'Objet",
on note que si l'information de sortie du processeur géométri-
que est disponible, la logique de parcours d'arbre teste (li-
gne 20) la ligne de sortie de commande 124 indiquant le carac-
tère visible d'un objet après traitement d'élimination (GP OBJ VIS), qui est dirigée du processeur géométrique vers le registre d'indicateur et de condition 372 (figure 29A), pour déterminer si le processeur géométrique 36 a déterminé que
l'objet était potentiellement visible, au cours de la procédu-
re d'élimination. Si c'est le cas, la logique de parcours
d'arbre commence à accomplir la procédure "Mise à Jour Incon-
ditionnelle" qui est indiquée à la page 1.1 de l'annexe B. Dans cette procédure, après l'incrémentation du pointeur de niveau d'arbre si l'indicateur de dernier frère/enfant exploré est
fixé à "enfant", la première étape (ligne 7) consiste à enre-
gistrer dans la mémoire à structure de pilel26 les pointeurs de dernier objet exploré, comme le montre la figure 9. De plus, les pointeurs de dernier objet exploré sont transférés vers les registres de pointeurs de dernier objet visible, 10-13, de la figure 27. Si le dernier objet exploré était un frère, le processeur géométrique transfère les données d'attributs du groupe de registres de sortie de processeur géométrique 122
vers la mémoire à structure de pile 126 (figure 8) seulement.
Si au contraire le dernier objet exploré était un segment en-
fant, les données sont également enregistrées (ligne 16) dans
le groupe de registres de pile de processeur géométrique 120.
Comme mentionné précédemment, les données qui se trouvent dans
le groupe de registres de pile 120 sont utilisées pour l'héri-
tage d'attributs.
La logique de parcours d'arbre restaure ensuite (li-
gne 20) les registres de pointeurs de dernier objet exploré 14-17 (figure 27). Si les pointeurs de l'objet suivant à ex- plorer sont disponibles et valides, la logique de parcours d'arbre enregistre (ligne 24) les pointeurs d'objet suivant exploré (adresses de registre 18-lB) dans les registres de pointeurs de dernier objet exploré (adresses 14-17). Apres la restauration de l'indicateur d'objet exploré suivant (mot
d'ALU OC, bit 4) (ligne 27), le tampon d'élimination du nou-
veau dernier objet exploré est émis vers le processeur géomé-
trique 36.
La commande retourne à la ligne22, page L3 de la procédure "Elimination d'Objet". Si le dernier objet exploré a été signalé invisible par le processeur géométrique 36, ce
segment et tous ses descendants sont ignorés et ne font l'ob-
jet d'aucun traitement ultérieur. Par conséquent, dans la
procédure "Elimination d'Objet", la logique de parcours d'ar-
bre remplace (ligne 4) le pointeur de frère (position 10 du groupe de registres de DLM) du dernier objet visible par le
pointeur de frère du dernier objet explore, si le dernier ob-
jet exploré était un frère. Dans le cas contraire, le pointeur d'enfant du dernier objet visible est remplacé par le pointeur de frère du dernier objet exploré. De plus, l'indicateur de
visibilité du dernier objet exploré est restauré.
Si l'objet suivant en ligne a parcourir a été explo-
ré, les registres de pointeurs de dernier objet exploré sont mis à jour au moyen des pointeurs d'objet exploré suivant, si
l'objet suivant est le frère du dernier objet exploré. Cepen-
dant, si l'objet suivant est l'enfant du dernier objet explo-
re, l'objet suivant n'est pas soumis à la procédure d'élimina-
tion, du fait qu'on a déterminé que son objet parent était in-
visible. De plus, l'indicateur de traitement de face est ins-
tauré. La ligne 3, page 115, de la procédure "Elimination
2 61 310 0
d'Objet" ramène la commande au programme Principal.
Sauf en cas de dépassement de capacité de la pile,
le programme Principal continue à exécuter des boucles cor-
respondant à la procédure de boucle des lignes 12-24, en ap-
pliquant le traitement d'élimination aux segments de la liste de visualisation, jusqu'à ce que le bit de traitement de face soit instauré, ce qui indique que la logique de parcours d'arbre a rencontré un segment n'ayant aucun segment frère ou enfant. A ce point, le programme Principal (ligne 2, page 112) appelle la procédure "Inversion et Traitement de Face",
sous l'effet de laquelle la logique de parcours d'arbre par-
court en sens inverse la liste de visualisation, en appliquant le traitement de face aux objets potentiellement visibles des
segments du chemin de parcours auxquels le traitement d'élimi-
nation a été appliqué.
Si pendant le traitement d'élimination, la mémoire à structure de pile 126 présente effectivement un dépassement de capacité, le programme Principal (lignes 14-20, page 1!1) instaure une bascule de dépassement de capacité et une bascule de demande d'interruption de l'interface de bus de système 100 (figure 13). Ces bascules sont instaurées par l'activation d'une ligne de sortie de commande de dépassement de capacité
de pile (ST V FL ST) du démultiplexeur de commande de desti-
nation 370 de la figure 29A. La logique de parcours d'arbre se
branche ensuite sur une boucle infinie pour attendre une ac-
tion du processeur de terminal 12, en réponse à la demande
d'interruption émise par la logique de parcours d'arbre 32.
Brièvement, la procédure de traitement de face com-
prend le rechargement dans le groupe de registres de pile de processeur géométrique 120 (figure 8), à partir du sommet de la pile, des attributs et de la matrice de transformation pour
le dernier objet potentiellement visible qui a subi le traite-
ment d'élimination, et le transfert des paquets de tampon de
donnes pour l'objet vers le groupe de registres de DLM de pro-
cesseur géométrique 115, pour que le processeur géométrique 36 261310 l0
accomplisse le traitement de face de l'objet. Lorsque le trai-
tement de face est achevé pour le dernier objet ayant subi le traitement d'élimination, les objets restants ayant subi le traitement d'élimination, qui sont enregistrés dans la pile, sont traités de façon similaire par la procédure "Inversion
et Traitement de Face", dans l'ordre inverse dée celui dans le-
quel ils ont subi le traitement d'élimination et ont été enre-
gistrés dans la pile, c'est-à-dire selon un mode "premier en-
tré, dernier sorti". Le traitement de face des objets poten-
tiellement visibles ayant subi le traitement d'élimination se poursuit jusqu'à la rencontre d'un objet de la pile ayant
un pointeur d'enfant valide. A ce point, un indicateur "d'en-
fant devant subir le traitement d'élimination" est instauré
et la procédure "Inversion et Traitement de Face" est abandon-
née, avec retour de la commande au programme Principal.
La procédure "Inversion et Traitement de Face" est présentée aux pages 120l à 123 de l'Annexe B. A la première étape (ligne 5), la procédure "Extraction de Données de la Pile" de la page 124 est appelée. La procédure "Extraction de Données de
la Pile" transfère vers le groupe de registres de DLM 112 (fi-
gure 8) les quatre premiers mots contenant le pointeur-d'en-
fant, le pointeur de bloc d'en-tête d'objet, le niveau d'arbre
et le mot d'indicateur (voir la figure 9), de l'objet se trou-
vant au sommet de la pile. Le mot d'indicateur est transféré
vers l'unité arithmétique et logique 314 (ligne 14) pour dé-
terminer si la procédure d'élimination a établi que l'objet était potentiellement visible. Si le mot d'indicateur indique (ligne 16) que l'objet est potentiellement visible, la logique
de parcours d'arbre émet (ligne 17) le pointeur de bloc d'en-
tête d'objet vers l'interface de DLM 306 (figure 13), pour dé-
clencher le transfert du bloc d'en-tête vers le groupe de re-
gistres de DLM 112. Si le bloc d'en-tête comporte un pointeur de tampon de données valide, la logique de parcours d'arbre
(ligne 23) transfère les attributs et la matrice de transfor-
mation pour l'objet de la mémoire à structure de pile 126 vers le processeur géométrique 36, par l'intermédiaire du bus de
pile 38, pour l'opération de traitement de face de l'objet.
Si le bloc d'en-tête d'objet ne comporte pas un pointeur de tampon de données valide, ce qui indique que le segment ne possède pas de primitives, l'adresse de pile (.mot d'ALU OD) est décrémentée (ligne 28), pour désigner l'objet suivant
dans la pile. De façon similaire, si le mot d'indicateur d'ob-
jet indique qu'il a été déterminé que l'objet était localement invisible(ligne 3,pagel25),l'adres de pile est décrémentée. Si (ligne 6) la décrémentation de l'adresse de pile provoque un dépassement de capacité par valeur inférieure, c'est que la procédure de traitement de face est retournée au sommet de la pile, et l'indicateur "arbre épuisé" est instauré. Ceci achève la procédure "Extraction de Données de la Pile" et ramène la commande à la ligne 7 de la procédure "Inversion et Traitement
de Face".
Si le bloc d'en-tête d'objet est un bloc de commande d'appel (ligne 8), le pointeur de partenaire (mot 4, figure 6)
est fixé à une valeur nulle (ligne 9). Si le pointeur de tam-
pon de données est valide (ligne 13), ce qui indique que l'ob-
jet possède des primitives de données, et si l'indicateur de
visibilité locale (mot 2 du paquet d'attributs de tampon d'éli-
mination) indique que ces primitives sont potentiellement visi-
bles, la logique de parcours d'arbre déclenche (ligne 23) le transfert des paquets de données qui sont enregistrés dans la mémoire de liste de visualisation pour l'objet. La logique de parcours d'arbre émet le pointeur de tampon de données vers l'interface de DLM 306, qui émet les 16 premiers mots du paquet vers le groupe de registres de DLM 112 et vers le groupe de registres de DLM 115 du processeur géométrique 36. Si le paquet a une longueur de 32 mots, les 16 mots supplémentaires sont transférés (ligne7,pagell)versle groupederegistres de DLM 115 du processeur géométrique 36. Pour transférer le paquet suivant à partir du tampon de données, la logique de parcours d'arbre
extrait (ligne 4) le pointeur de paquet suivant du premier pa-
- 83 quet enregistré dans le groupe de registres de DLM 112 de la logique de parcours d'arbre, et elle transfère le pointeur vers l'interface de DLM 306, pour déclencher le transfert du paquet suivant. Ce processus se poursuit (lignelO, page J21) jusqu'à ce que le pointeur de tampon de données suivant soit
nul, ce qui indique qu'il n'existe pas de paquet supplémen-
taire pour l'objet dans le tampon de données. En utilisant les paquets de données qui proviennent de la mémoire de liste
de visualisation 16, et les attributs et la matrice de trans-
formation qui proviennent de la mémoire à structure de pile 126, le processeur géométrique 36 accomplit le traitement de face pour l'objet. La logique de parcours d'arbre restaure ensuite (lignel4, pagel2l) l'indicateur d'enfant devant subir
la procédure d'élimination (mot d'ALU OC, bit 2), et l'indica-
teur d'inversion et de traitement de face (mot d'ALU OC, bit 1).
Toujours à la page 121, la logique de parcours d'ar-
bre détermine ensuite si l'objet suivant dans la pile doit subir le traitement de face (s'il est visible), ou doit être sauté (s'il est invisible), ou si cette logique de parcours
d'arbre doit retourner au mode de traitement d'élimination.
La logique de parcours d'arbre calcule tout d'abord (ligne 22 l'adresse de pile de l'objet suivant dans la pile. Le niveau d'arbre et le pointeur d'enfant pour cet objet suivant sont
transférés (lignes23 et 25 vers l'unité arithmétique et logi-
que 314. Si l'unité arithmétique et logique détermine (ligne 27que le niveau d'arbre de l'objet courant (l'objet ayant subi précédemment le traitement de face) n'est pas égal au
niveau d'arbre de l'objet suivant de la pile, c'est que l'ob-
jet suivant de la pile est le parent de l'objet traité pré-
cédemment (objet courant). Si l'objet suivant de la pile
n'est pas un segment d'appel (ligne 2.page 122),1'indicateur d'in-
version et de traitement de face est instauré (ligne 14), et le pointeur d'enfant du dernier objet exploré et le pointeur de frère du dernier objet exploré sont placés à une valeur nulle pour amener la logique de parcours d'arbre à retourner à la procédure "Inversion et Traitement de Face", pour traiter
la face de l'objet suivant de la pile. (Il apparaîtra à la lo-
gique de parcours d'arbre qu'elle a rencontré un segment n'ayant pas de segments enfants ou frères, et elle passera en- suite automatiquement à la procédure "Inversion et Traitement de Face", comme décrit précédemment. ) Si le niveau d'arbre de l'objet courant est égal au niveau d'arbre de l'objet suivant de la pile, les objets sont des frères (ligne 3 pagel22). Si l'objet suivant de la pile possède un pointeur d'enfant valide (ligne28), la logique de
parcours d'arbre retourne au parcours de traitement d'élimi-
nation (pour faire subir le traitement d'élimination au seg-
ment enfant de l'objet suivant de la pile), en fixant à une valeur nulle le pointeur de frère du dernier objet exploré, en fixant le pointeur d'enfant du dernier objet exploré à la valeur du pointeur d'enfant de l'objet suivant de la pile, et en instaurant l'indicateur d'enfant devant subir le traitement d'éliminationOignes 2-I1,pagel23).Silobjetsuivant de la pile ne possède pas un pointeur d'enfant valide, l'objet suivant de la pile est soumis au traitement de face par l'instauration des
indicateurs et des pointeurs (lignes 13-21) de façon à rappe-
ler la procédure "Inversion et Traitement de Face", comme dé-
crit ci-dessus La logique de parcours d'arbre continue à rappeler la procédure "Inversion et Traitement de Face", et à accomplir le traitement de face pour chaque segment visible ayant subi le traitement d'élimination, jusqu'à ce qu'un objet visible de la pile avec un pointeur d'enfant valide soit rencontré (ou jusqu'à ce que la pile soit épuisée). A ce point, la procédure "Inversion et Traitement de Face" est abandonnée et, sauf si la pile est épuisée, la logique de parcours d'arbre retourne
au parcours de traitement d'élimination, en commençant à l'en-
fant de l'objet considéré de la pile.
En considérant maintenant la figure 13, on note que l'interface de bus de système 100 de la logique de parcours d'arbre 32 réagit à des demandes externes provenant du bus de système 18. Dans le mode de réalisation qui est représenté,
ces demandes proviennent du processeur de terminal 12. L'in-
terface de bus de système 100 décode les lignes d'adresse,
les lignes de modificateur d'adresse et les signaux d'éta-
blissement de liaison du bus de système 18, pour déterminer l'opération exigée pour la logique de parcours d'arbre, et pour élaborer les signaux d'établissement de liaison de bus
de système appropriés de la logique de parcours d'arbre.
Dans la mesure o le bus de système 18 est du type VMEbus,
l'interface de bus de système 100 permet à la logique de par-
cours d'arbre 32 de remplir les fonctions d'un dispositif
esclave de VME et d'un dispositif d'interruption de VME.
Le matériel et les formats d'établissement de liai-
son de l'interface de bus de système 100 sont conformes aux
exigences d'une interface VME de type standard, qui sont in-
diquées dans le document de spécifications du bus VMEbus, mentionné précédemment. L'interface de bus de système 100 met en oeuvre les options VME A24, D32 et de transfert de mot
long. Dans le mode de réalisation qui est représenté, l'in-
terface de bus de système 100 ne met pas en oeuvre la mode
d'adressage séquentiel ni les transferts de mot court. La lo-
gique de parcours d'arbre 32 reconnaît les codes de modifica-
teur d'adresse de type "non Entrée/Sortie" recommandés (09,
OA, OD, et OE) pendant des demandes du bus de système.
Les demandes ou les instructions émises par le bus
VME et dirigées vers la logique de parcours d'arbre 32 peu-
vent être divisées en trois catégories. Chaque catégorie con-
tient des instructions qui sont mises en oeuvre d'une manière similaire. Les trois catégories sont les suivantes:
1. Opérations de lecture et d'écriture pour la mé-
moire de microprogramme ou mémoire de commande avec possibi-
lité d'écriture (WCS)
2. Opérations de halte du micro-sequenceur, de re-
démarrage du micro-séquenceur et de restauration de la logique de parcours d'arbre; et
3. Opérations de démarrage du micro-séquenceur.
Au démarrage du système, le processeur-de terminal 12 émet une série d'instructions d'écritures de WCS qui trans- mettent un microprogramme du bus de système 18 vers la mémoire de microprogramme 302 de la logique de parcours d'arbre. Comme le montre la figure 29B, une ligne de sortie de commande de mémoire de microprogramme/validation de VME (MICS/VMEEN), qui
est une ligne de sortie d'une logique de commande et de syn-
chronisation d'interface de VME 380 de l'interface 100, est connectée à une entrée du micro-séquenceur 300 de la figure 29A. Lorsque la ligne de commande MICS/VMEEN est active, les sorties d'adresse du micro-séquenceur 300 sont forcées dans un
état à haute impédance qui permet à l'interface de bus de sys-
téme 100 de prendre la commande du bus d'adresse de micropro-
gramme (MICAD) et de transférer un microprogramme vers la mé-
moire de microprogramme 300, par le bus de données de micro-
programme (MICDATA). Les instructions de lecture et d'écriture
pour la mémoire de commande avec possibilité d'écriture arrê-
tent immédiatement le micro-séquenceur 300 s'il est en cours de fonctionnement. Le signal d'écriture de bus de système VME (WRITE) définit la direction de la circulation des données entre la mémoire de microprogramme 302 et un tampon de données
de WCS 382 qui est connecté au bus de système 18.
La logique de commande et de synchronisation d'in-
terface VME 380 est constituée par un automate d'états finis
comprenant plusieurs dispositifs consistant en réseaux logi-
ques programmables. L'automate d'états finis décode les ins-
tructions d'interruption et de demande de dispositif esclave provenant du processeur de terminal 12, qui sont transmises
par le bus d'adresse de VME (VA) du bus de système 18. L'auto-
mate d'états finis de la logique de commande et de synchroni-
sation d'interface VME 380 décode en outre des signaux d'état
locaux qui proviennent de l'intérieur de la logique de comman-
de 380, et il génère des signaux locaux pour commander l'in-
terface 100 et le micro-séquenceur 300.
L'information d'adresse de VME (VA) qui provient du bus de système 18 est mémorisée dans un registre d'adresse de VME 384, au moment de la montée du signal de validation d'adresse de VME (AS). L'adresse est ensuite transmise sur le bus d'adresse d'interface VME (VADBUS), à partir duquel elle est chargée dans un ensemble de registres d'adresse 386 pour le bus d'adresse de microprogramme (MICAD), le bus de données
local (LDB) et un bus d'adresse de branchement de microprogram-
me (MICBRAD).
Les données de VME entrantes provenant du bus de don-
nées de VME (VDATABUS) sont mémorisées dans des tampons d'émet-
teurs-récepteurs de bus bidirectionnel 388, et elles sont
transmises sur le bus de données interne d'interface VME 389.
A partir du bus de données interne 389, les données sont char-
gées dans le tampon de données de WCS 382, ou dans un registre de bus de données local (LDB) 390. Pendant des interruptions, les indicateurs d'état de la logique de parcours d'arbre, tels que DLM I/F DONE et STK OVFL, sont disponibles pour le bus de données 389, à partir d'un tampon de données d'interruption 392. Le tampon de données de WCS 382 et le registre de bus de données local 390 sont bidirectionnels, ce qui fait que les données provenant de la logique de parcours d'arbre 32 peuvent
également être appliquées au bus de système 18.
Les bus d'adresse et de données de VME externes du bus de système 18 sont asynchrones par rapport au signal d'horloge à 10 mégahertz qui fait fonctionner la logique de
parcours d'arbre 32. La logique de commande et de synchronisa-
tion d'interface VME 380 comprend un circuit de synchronisation d'impulsions 380a (figure 30), qui synchronise les signaux d'établissement de liaison de VME asynchrones du bus de système VME 18, avec l'automate d'états finis d'interface VME. Comme le
montre la figure 30, le circuit de synchronisation 380a com-
prend un ensemble d'inverseurs 502, une paire de circuits inté-
grés de synchronisation d'impulsions 504 et 506, du type 74120, et un circuit intégré de registre 508, du type AS 374,
qui utilise une horloge inversée. Ainsi, le front actif du si-
gnal d'horloge appliqué au registre 508 apparait au milieu du cycle d'horloge. Les signaux synchronisés ne sont pas inversés mais sont retardés d'un minimum de 50 nanosecondes après la réception du signal d'origine. Le circuit de synchronisation
380a utilise les signaux d'adresse stable de VME (AS), les si-
gnaux d'échantillonnage de données combinés (DSO et DS1) et
les signaux d'entrée d'accusé de réception (IACKIN). Les si-
gnaux de sortie synchronisés associés sont désignés avec le
suffixe "374Q".
Comme mentionné précédemment, les instructions de lecture/écriture de la mémoire de commande avec possibilité
d'écriture arrêtent le fonctionnement du micro-séquenceur 300.
L'automate d'états finis de la logique de commande 380 arrête le microséquenceur en restaurant la bascule d'horloge de
micro-séquenceur 514 de la figure 38, ce qui invalide le si-
gnal d'horloge de micro-séquenceur MSEQCLK. L'interface de DLM 306 et le contrôleur de pile 312 de la figure 13 ne sont
pas arrêtés mais peuvent au contraire poursuivre leur fonc-
tionnement pour empêcher une perte ou une altération des don-
nees dans la pile et dans l'interface de DLM, à cause de cy-
cles interrompus.
Le micro-séquenceur 300 est laissé dans un état
arrêté à la fin d'une opération relative à la mémoire de com-
mande avec possibilité d'écriture (WCS). Le micro-séquenceur 300 redémarre sous l'effet de l'émission d'une instruction de
démarrage ou de redémarrage.
Les instructions de redémarrage et de halte du mi-
cro-séquenceur ont respectivement pour effet d'instaurer et de restaurer la bascule d'horloge de micro-séquenceur (figure 38). L'instruction de restauration de la logique de parcours d'arbre active la ligne de signal de restauration (SYNC RESET)
de la logique de parcours d'arbre 32. Le signal de restaura-
tion de VME ('-S RESET) et l'instruction de restauration de la logique de parcours d'arbre arrêtent le signal d'horloge
(MSEQCLK) du micro-séquenceur 300.
La troisième catégorie d'instructions comprend les instructions de démarrage qui, dans le mode de réalisation re- présenté, donnent lieu à un fonctionnement très similaire. Les instructions de démarrage permettent au bus de système 18 de
lire ou d'écrire en diverses positions de la logique de par-
cours d'arbre 32. Ces instructions de démarrage comprennent des opérations de lecture ou d'écriture dans la mémoire à
structure de pile 126; de lecture ou d'écriture dans le comp-
teur d'adresse de pile 330 (figure 18) du contrôleur de pile 312; de lecture dans le compteur de mots de pile 342 ou d'écriture dans le registre de commande 336 du contrôleur de
pile 312 (figure 18); de lecture ou d'écriture dans les re-
gistres de l'unité arithmétique et logique 314 (figure 13); de lecture ou d'écriture dans les registres d'état de bus de données local; de lecture ou d'écriture dans les registres
d'indicateur de bus de données local; de lecture ou d'écri-
ture dans le groupe de registres de DLM 112 (figure 13) pour déclencher le traitement d'élimination/traitement de face et les opérations de prélèvement/identification; de lecture de
* l'état de l'interface de DLM 306; et de démarrage du micro-
séquenceur 300 à une nouvelle adresse.
Dans l'exécution d'une instruction de démarrage du micro-séquenceur, l'automate d'états finis d'interface VME instaure la bascule d'horloge de micro-séquenceur (MSEQCLK)
pour valider le signal d'horloge de micro-séquenceur (MSEQCLK).
L'automate d'états finis de VME enregistre également l'adresse de VME et il la met à la disposition du bus de données local
(LDB). Si une opération de démarrage d'écriture est sélection-
née, le mot de données de VME provenant du bus de données de
VME (VDATABUS) est également enregistré et est mis à la dispo-
sition du bus de données local.
A titre d'exemple, une instruction importante de
démarrage d'écriture est l'instruction qui déclenche le traite-
ment d'élimination/traitement de face et l'opération de prélè-
vement/identification. Dans cette instruction, le mot de don-
nées de VME qui est appliqué au bus de données local contient l'adresse de paquet du segment racine de la mémoire de liste
de visualisation, et l'interface de DLM 306 l'utilise pour dé-
clencher ces opérations. Si une opération de lecture est sé-
lectionnee, toutes les données provenant du bus de données lo-
cal qui sont placées dans le registre de données de VME 390 seront retournées au bus de données de VME du bus de système 18. Dans une instruction de démarrage, l'automate d'états
finis instaure une ligne de sortie de commande (JUMP000) diri-
gee vers la porte 378, qui impose un saut vers la position OOOH du microsequenceur, et place les bits de faible poids de l'adresse de VME sur le bus d'adresse de micro-branchement (MICBRAD) dirigé vers le registre de topographie mémoire du micro-séquenceur. Le micro-sequenceur 300 accomplit alors une instruction de saut dirigée par la topographie mémoire (code opération 2 du micro-sequenceur), en direction d'une procédure de service d'instruction. Cette procédure est enregistrée dans la mémoire de micro-programme à l'adresse identifiée par les 12 bits de faible poids de l'adresse de VME qui est fournie par le bus d'adresse de micro-branchement (MICBRAD). Cette
adresse est suffisante pour sélectionner n'importe quelle po-
sition de microprogramme de la logique de parcours d'arbre.
L'adresse de micro-branchement peut également être fournie par un second registre à structure pipeline 394 qui enregistre une partie du mot demicroprogramme provenant de la mémoire de microprogramme 302. La source particulière de
l'adresse de micro-branchement est sélectionnée par l'informa-
tion de sortie d'instruction de micro-programme (MICINST) des
registres à structure pipeline 366, qui est appliquée à un in-
verseur 396. L'inverseur 396 comporte lui-même deux sorties, VBRAD et VINSTBR, qui valident alternativement les sorties
respectives du registre d'adresse 386 et du registre à struc-
ture pipeline 394.
Une instruction de démarrage spéciale est une ins-
truction de piégeage qui impose au micro-sequenceur 300 d'exe-
cuter une boucle à une position et de renvoyer vers le bus de
données de VME l'adresse à laquelle il accomplit sa boucle.
L'instruction de piégeage sélectionne la zone multifonction, qui contient la position de branchement, en tant que source de données. Le registre de données de VME 390 est également
sélectionné en tant que destination. De cette manière, l'ins-
truction de piégeage retourne en tant que résultat l'adresse
courante du micro-séquenceur.
L'automate d'états finis d'interface VME de la lo-
gique de commande et de synchronisation d'interface VME 380 accomplit des cycles passant par des états en un nombre allant jusqu'à quatre, sous la dépendance d'une demande de dispositif esclave de VME, et en un nombre allant jusqu'à trois pour une demande d'interruption. La figure 31 montre une représentation
sous forme de diagramme d'états des cycles de demande de dis-
positif esclave de VME externe et de demande d'interruption de VME. Comme mentionné précédemment, l'automate d'états finis de la logique de commande et de synchronisation 380 de la figure
29B peut être réalisé au moyen de circuits consistant en ré-
seaux logiques programmables. Dans la réalisation au moyen de
réseaux logiques programmables des figures 32 et 33, une bas-
cule individuelle 510a-510h est affectée à chacun des huit états logiques représentés dans le diagramme de transitions d'états de la figure 31. A l'initialisation, la bascule d'état
de repos (000) 510a est prépositionnée. Toutes les autres bas-
cules 510b-510h sont restaurées. Ainsi, l'état logique un se
propagera jusqu'à la bascule d'état de commande active.
Si la logique de commande 380 détecte une demande d'interruption, l'automate d'états finis d'interface VME suit
le chemin représenté du côté gauche de la figure 31, qui com-
prend les états 001, 011 et 010. Pendant un cycle d'interrup-
tion, les trois bits d'adresse de VME de faible poids sont placés aux valeurs correspondant à l'adresse d'interruption, et la ligne d'accusé de réception d'interruption (VME IACK) est placée à l'état bas. La ligne d'adresse stable (AS) est ensuite placée à l'état bas. Bien que ceci soit suffisant pour
confirmer un accusé de réception d'interruption, ceci ne con-
firme pas que ce dispositif esclave particulier a accusé ré-
ception de l'interruption. La confirmation du fait que ce dis-
positif esclave particulier a accusé réception de l'interrup-
tion comprend également le passage à l'état bas de la ligne
IACKIN.
L'automate d'états finis d'interface VME détermine si ces conditions ont été satisfaites et si l'interruption de
logique de parcours d'arbre a été instaurée, avant de réagir.
Si toutes les conditions sont satisfaites, l'automate d'états finis d'interface VME maintient à l'état haut le signal de
sortie d'accusé de réception d'interruption (IACKOUT), il at-
tend le signal de validation de données de VME (S374Q), et il autorise ensuite le transfert vers le bus de données de VME 389 du multiplet d'état/ID qui est enregistré dans le tampon de données d'interruption 392. Si une condition quelconque n'est pas correcte, l'automate d'états finis d'interface VME transmet le signal IACKIN du bus de système 18 par la sortie
IACKOUT, vers le bus de système 18.
Les bits de moindre poids du multiplet d'état/ID
contiennent l'information d'état de logique de parcours d'ar-
bre, par exemple les conditions RUN/HALT, DLM I/F DONE, STK RUNNING et STK OVFL. Les quatre bits de plus fort poids sont l'identificateur (ID) de logique de parcours d'arbre, qui est égal à 1000 (en binaire) dans le mode de réalisation qui est représenté. La figure 32 montre la réalisation logique de la
partie de traitement de demande d'interruption 380b de l'au-
tomate d'états finis d'interface VME de la logique de commande 380. Si une instruction de dispositif esclave de VME (transfert de données) est détectée, l'automate d'états finis d'interface VME suit le chemin représenté du côté droit de la
figure 31, qui comprend les états 101, 111, 100 et 110. L'au-
tomate passe à l'état 111 si l'instruction est une instruction d'écriture. Il passe au contraire à l'état 100 si l'instruc-
tion est une instruction de lecture. Dans les deux cas, l'in-
formation d'adresse de VME est mémorisée dans un décodeur à réseau logique programmable, dont une réalisation logique est représentée sur la figure 33. L'information d'adresse de VME
est également mémorisée dans les registres d'adresse de micro-
séquenceur, de branchement de micro-séquenceur et de bus de données local, 386. Du fait que la logique de parcours d'arbre 32 transfère des données par le mode de mot long, le bit de moindre poids du mot d'adresse de VME est toujours 0 dans le mode de réalisation qui est représenté. La fonction d'esclave particulière, représentée par l'adresse de VME, est décodée pendant le cycle correspondant à l'état 101. Le format de ces
instructions est indiqué sur la figure 34. Les fonctions déco-
dées comprennent les instructions précitées de démarrage, d'arrêt, de redémarrage et de restauration du micro-sequenceur,
et les instructions de lecture/écriture de la mémoire de com-
mande avec possibilité d'écriture, qui sont définies par les
bits de code opération 17 et 18.
Pendant l'exécution de ces instructions, l'automate d'états finis d'interface -VME autorise l'application de la partie de faible poids (bits 1-13) de l'adresse de VME sur le bus d'adresse de micro-séquenceur (MICAD). Si une opération
WCS de lecture est sélectionnée, l'automate d'états finis dé-
code le bit de faible poids suivant (bit 14) en tant que sé-
lection de section de mot, soit par exemple les bits de faible
poids (0-31) ou les bits de fort poids (32-63) du mot de don-
nées de microprogramme (MICDATA). Les tampons appropriés parmi les tampons d'émetteur-récepteur de données 382 sont validés
pour émettre les bits sélectionnés.
Les registres de données de VME 388 sont validés lorsque les signaux de validation de données (DS374Q) sont
actifs. Les registres de VME 388 sont invalidés lorsque l'accu-
sé de réception de transfert de VME est reçu (le signal de va-
lidation de données DS374Q retourne à l'état haut).
Si une opération WCS d'écriture est sélectionnée, l'automate d'états finis d'interface VME décode l'adresse de
VME et il valide le transfert sur le bus de données de micro-
programme (MICDATA), vers la mémoire de microprogramme 302,
des données de VME qui sont enregistrées dans le tampon de don-
nées WCS 382. Simultanément, l'automate d'états finis invalide la sortie de la mémoire de microprogramme 302 et il sélectionne la ligne de commande de validation d'écriture de mémoire de commande avec possibilité d'écriture de VME (VWCSWRTENB). Ces lignes de commande d'écriture sont sélectionnées à la fin du cycle d'instruction de mémoire de commande avec possibilité d'écriture. Comme on l'a mentionné précédemment, une
instruction de démarraqe d'écriture du micro-séquen-
ceur force le Passaae du micro-séquenceur 300 à l'adresse contenue dans les bits de faible poids de l'adresse de VME, et fait passer à l'état de marche la bascule d'horloge (figure 38) du micro-séquenceur 300. Les bits de faible poids de l'adresse de VME sont disponibles dans le registre d'adresse de branchement des tampons 386. Ces bits sont fournis par le
bus d'adresse de branchement de microprogramme (MICBRAD) lors-
que le signal de commande d'automate d'états finis VBRAD est
activé. Le mot de données de VME qui contient l'adresse de dé-
part de la mémoire de liste de visualisation pour les opéra-
tions de traitement d'élimination/traitement de face et les opérations de prélèvement/identification, est disponible dans le tampon de bus de données local 390. Le mot de données et l'adresse de VME peuvent être transmis sélectivement sur le bus de données local (LDB) sous la commande du micro-séquenceur (c'est-à-dire des sorties de démultiplexeur de commande de
source LDVBDATASEL ou LDVADSEL (figure 29A)).
Les instructions de démarrage de lecture sont très similaires aux instructions de démarrage d'écriture, avec quelques exceptions. En testant le bit de plus fort poids de l'adresse de VME, c'est-à-dire le signal d'écriture deoVME, le micro-séquenceur 300 peut discriminer entre des instruc-
tions de lecture et d'écriture de dispositif esclave de VME.
Sous l'effet des instructions de lecture, le micro-séquenceur 300 écrit un mot de données dans le tampon de bus de données local 390. L'automate d'états finis d'interface de VME détecte l'opération d'écriture du bus de données local et il valide
l'émission des données vers le bus de système 18, par l'inter-
médiaire du registre de données de VME 388. L'automate
d'états finis invalide le registre 388 lorsque le bus de sys-
tème 18 accuse réception du transfert de données.
Pour réduire le nombre de termes d'entrée pour les circuits de réseaux logiques programmables d'automate d'états
finis des figures 32 et 33, un grand nombre des signaux d'en-
trée provenant du bus de système sont tout d'abord appliqués à un circuit à réseau logique programmable qui est représenté par-le circuit logique 380d de la figure 35, pour produire des signaux de sortie réduits ME, IRQX*INTRPT, IACKOUT, WCS et START. Ces signaux de sortie sont utilisés à leur tour en tant
que signaux d'entrée par les circuits à réseaux logiques pro-
grammables d'automate d'états finis des figures 32 et 33, ain-
si que par des circuits à réseaux logiques programmables sup-
plémentaires, décrits ci-après, pour produire les signaux de
commande de la logique de commande et de synchronisation 380.
L'Annexe D présente les équations logiques de com-
mande de sortie pour les signaux des lignes de validation et d'horloge de la logique de commande et de synchronisation 380, qui commandent les registres d'adresse 386, le registre de VME/LDB 390, le tampon de données de WCS 382, le tampon de données d'interruption 392 et le registre de données de VME 388. La figure 36 montre un circuit logique constituant une réalisation des équations logiques de commande de sortie de
registre de l'Annexe D. Comme le montre cette figure, la logi-
que de commande de sortie de registre 380e combine une infor-
mation d'état de commande de l'automate d'états finis des fi-
gures 32 et 33, ainsi qu'une information de condition sélec-
tionnée provenant de la logique de réduction d'entrée 380d de la figure 35, pour produire les signaux de commande pour les
registres précités de l'interface VME 100.
La figure 37 montre une partie 380f de la logique
de commande et de synchronisation 380, qui est destinée à gé-
nérer le signal de commande de demande d'interruption (IRQX) dirigé vers le bus de système 18. La logique de commande 380f comprend une bascule 512 qui peut être instaurée par le signal de sortie de commande de sélection d'interruption de bus de
données local (LDB INTERRUPT SELECT), provenant du démultiple-
xeur de commande de source 368 (figure 29A) du micro-séquen-
ceur 300. La bascule 512 est restaurée lorsque le bus de sys-
tème 18 accuse réception de l'interruption.
Comme le montre la figure 38, une partie 380g de la
logique de commande et de synchronisation 380 commande la li-
gne d'horloge de micro-séquenceur MSEQCLK. Le circuit de com-
mande 380g comprend une bascule 514 qui est restaurée lorsque l'horloge de micro-séquenceur doit être invalidée, et qui est instaurée lorsque l'horloge de micro-séquenceur est autorisée
à fonctionner. La bascule 512 peut être restaurée par le si-
gnal de restauration synchrone de logique de parcours d'arbre SYNCH RESET, et elle est également commandée par le bit 16 de l'adresse de VME, comme le montre la figure 34. Lorsqu'une instruction de VME de logique de parcours d'arbre valide est reçue, la bascule 512 est instaurée conformément au bit d'adresse de VME 16, lorsque l'interface VME 100 achève l'instruction, c'est-à-dire lorsque l'interface 100 quitte le
mode 110 qui est représenté sur la figure 31.
Le signal de restauration synchrone, SYNCH RESET, de la logique de parcours d'arbre 32 est généré par le circuit de commande 380h de la figure 39. Une bascule 516 peut être instaurée par le signal derestauration synchrone de bus de système, ou par le bit 15 d'une instruction de VME (voir la figure 34). Le signal-de restauration synchrone de logique de
parcours d'arbre ne restaure que la logique de parcours d'ar-
bre 32. L'opération de restauration de logique de parcours d'arbre commence si le bit d'adresse de VME 15 est instauré, et après l'achèvement de l'instruction, pour permettre à l'interface VME de logique de parcours d'arbre 100 d'achever
le cycle d'instruction présent.
Un compteur 518 est incorporé dans le circuit de
commande de restauration 380h pour imposer une durée de res-
tauration minimale de 255 périodes d'horloge, ou 25,5 microse-
condes. Ainsi, dans le mode de réalisation qui est représenté, la logique de parcours d'arbre 32 n'accepte pas des ordres de VME avant l'écoulement d'une durée de 25,5 microsecondes après
qu'une restauration de système de VME a eu lieu.
La figure 40 montre une bascule 520 d'une partie de
circuit logique 380i de la logique de commande et de synchro-
nisation 380, qui est destinée à retarder d'une période d'hor-
loge le signal de sortie de marche RUN du circuit de marche/ halte 380g de la figure 38. Si le signal RUN non retardé est appliqué aux portes ET d'entrée d'instruction 378 (figure 29A) le micro-séquenceur 300 recommence à fonctionner. Si à la place le signal de sortie retardé DELAYED RUN de la bascule
520 est appliqué aux portes ET d'instruction de micro-séquen-
ceur 378, une instruction O est forcée immédiatement après le
démarrage ou le redémarrage du micro-séquenceur 300. L'ins-
truction O (restauration du micro-séquenceur) provoque un saut vers l'instruction OOOH, et on l'utilise à la manière d'une
interruption du micro-séquenceur, comme décrit précédemment.
Le bit d'adresse de VME 18 (figure 34) détermine si le signal
RUN retardé ou non retardé est sélectionné.
Si un dépassement de capacité de pile est détecté, le micro-séquenceur 300 active une ligne une ligne de commande de sortie de dépassement de capacité de pile (ST OVFL ST) du démultiplexeur de commande de destination 370 de la figure 29A. Ce signal instaure une bascule de dépassement de capacité de pile 522 d'une partie 380j de la logique de commande et de synchronisation, qui est représentée sur la figure 41. De plus, le micro-séquenceur 300 génère une interruption après la détection d'un dépassement de capacité de pile. Le processeur de terminal 12 accuse réception de l'interruption et il reçoit l'indicateur de dépassement de capacité en tant que bit 3 du
multiplet d'état/ID qui est enregistré dans le tampon de don-
nées d'interruption 392 (figure 29B). Le dernier état (010) du cycle d'accusé de réception d'interruption de l'automate
d'états finis d'interface VME restaure la bascule de dépasse-
ment de capacité 522. Le multiplet d'état/ID est chargé dans le tampon de données de VME 388 pendant l'état précédent (011)
et il peut ensuite être modifié dans le dernier état (010).
De plus, la bascule de dépassement de capacité de pile 522 peut être restaurée par le signal de restauration synchrone
(SYNCH RESET).
Une erreur de bus de système de VME est détectée lorsque l'une quelconque des conditions suivantes apparait:
1. Un accusé de réception d'interruption avec le si-
gnal de commande de VMEbus, =D, à l'état bas; 2. Un transfert de données autre qu'un transfert de mot long de VMEbus;
3. Un transfert de mot long sans que les deux si-
gnaux de validation de données de VMEbus ( -S, -T) soient à l'état bas; ou 4. Un transfert de mot long avec le bit d'adresse
de VME A01 à l'état haut.
Une partie 380k de la logique de commande et de synchronisa-
tion 380 destinée à générer des signaux de commande d'erreur de bus est représentée sur la figure 42. Une bascule d'erreur de bus 524 est instaurée lorsqu'une erreur de bus est détectée
pendant un cycle d'instruction ou un cycle d'accusé de récep-
tion d'interruption de l'automate d'états finis d'interface VME. La bascule 524 est restaurée lorsque le cycle courant se
termine, ou pendant une restauration.
Si la mémoire de microprogramme 302 est programmée pour donner lieu à une instruction de démarrage de lecture, la logique de parcours d'arbre 32 doit renvoyer la valeur des données vers le tampon de bus de données local 390. En outre, le processeur de terminal 12 doit laisser un temps suffisant à la logique de parcours d'arbre 32 pour qu'elle exécute une instruction de démarrage particulière, avant d'émettre une
autre instruction.
Le processeur de terminal 12 du mode de réalisation représenté est un micro-ordinateur universel réalisé sur une seule carte. La figure 43 montre un schéma plus détaillé du processeur de terminal 12 de la figure 1. Le processeur 12 comprend une sous-section de processeur 400 qui est constituée par un microprocesseur et des circuits intégrés périphériques associés. Dans le mode de réalisation qui est représenté, le
microprocesseur peut être constitué par une puce d'unité cen-
trale (CPU) du type NS 32032 de National Semiconductor, et les
puces de périphériques peuvent comprendre une unité arithméti-
que à virgule flottante (FPU) du type NS 32081 de National Semiconductor, une unité de gestion de mémoire (MMU) du type NS 32082 de National Semiconductor, et une unité de commande
de synchronisation (TCU) du type NS 32201 de National Semi-
conductor.
Le processeur 400 communique avec d'autres compo-
sants du processeur de terminal 12 par l'intermédiaire d'un bus de données local à 32 bits 402 et d'un bus d'adresse local
à 24 bits 404. Des données sont transférées entre le proces-
seur 400 et le bus de données 402 par l'intermédiaire d'émet-
teurs-récepteurs de données du processeur 400. Le processeur 400 comporte également des bascules destinées à mémoriser des
adresses devant être placées sur le bus d'adresse 404.
Le processeur de terminal 12 comprend également une sous-section de mémoire 406 qui est constituée par une mémoire
vive dynamique (DRAM) et une mémoire morte (ROM). Des opéra-
tions de lecture et d'écriture de données entre la mémoire 406 et les bus d'adresse et de données locaux 402 et 404 sont effectuées par l'intermédiaire d'une interface de bus de la mémoire 406. L'accès à la mémoire vive peut être effectué de préférence soit par le processeur 400, soit par un dispositif
d'accès direct en mémoire (DMA) externe.
Le processeur de terminal 12 comporte quatre inter-
faces pour communiquer avec des dispositifs externes. La pre-
mière interface est une interface de bus de système 408 qui connecte le bus de système 18 aux bus de données et d'adresse locaux 402 et 404 du processeur de terminal. Comme mentionné
précédemment, le bus de système 18 du mode de réalisation re-
présenté est un bus du type VMEbus standard. L'interface de bus de système 408 est une interface maitre et esclave VME qui comprend une logique d'arbitrage pour l'ensemble du bus
VMEbus. La partie esclave de l'interface 408 possède des pos-
sibilités d'accès direct en mémoire en ce qui concerne la partie de mémoire vive du sous-système de mémoire 406. En
tant qu'interface avec le bus de système VMEbus, 18, l'inter-
face 408 comprend les fonctions habituelles de commande de voies d'adresse et de données, comprenant les fonctions d'établissement de configuration pipeline pour l'écriture, de libération de lecture, de translation de cycle et d'échange de multiplets. L'interface 408 comporte un module de gestion
d'interruption, un module de temporisation ainsi que des cir-
cuits logiques appropriés de décodage d'adresse, d'arbitrage de bus local et de synchronisation et de commande pour le bus VMEbus. Une seconde interface 410 constitue une interface série intelligente avec quatre lignes série asynchrones 412, ayant chacune un débit programmable, deux au moins d'entre elles ayant de préférence des moyens de commande de modem de type standard. La tablette graphique 20, le clavier 22 et le visuel 26 qui sont représentés sur la figure 1 peuvent être connectés au processeur de terminal 12 par l'intermédiaire de
ces accès série.
La commande de l'interface 410 est assurée par un microprocesseur qui dans le mode de réalisation -représenté est constitué par une unité centrale (CPU) du type 6809. L'uni-
té centrale de l'interface 410 commande des émetteurs/récep-
teurs asynchrones universels doubles (DUARTS SCN68681). Les
accès série 412 sont connectés aux unités DUARTS par l'intermé-
diaire de circuits d'attaque et de réception qui, dans le mode de réalisation représenté, sont compatibles avec le protocole RS232. Les données qui sont échangées avec l'interface 410
passent par une mémoire vive (RAM) à deux accès qui est connec-
tée à un bus de périphériques à 8 bits, 414. Une interface de bus de données d'adaptation 32 bits/8 bits, 416, connecte le bus de périphériques à 8 bits 414 au bus de données local à 32
bits 402 du processeur de terminal 12.
L'interface 410 comporte en outre une interface pa-
rallèle qui, dans le mode de réalisation qui est représenté, est conçue de façon à correspondre au standard Centronics. Un accès Centronics 417 de l'interface 410 peut donc être connecté
à une imprimante.
Une interface Ethernet 418 connecte le processeur de terminal 12 à un ordinateur hôte. L'interface Ethernet 418 comprend un contrôleur d'accès direct en mémoire, qui connecte
l'interface 418 au bus d'adresse local à 24 bits 404. Les don-
nées provenant de l'interface Ethernet 418 passent par un dis-
positif du type AM7990 de Lance, pour être dirigéesvers un bus
de périphériques à 16 bits 420 qui est connecté au bus de don-
nées local à 32 bits 402 par une interface de bus de données
d'adaptation 32 bits/16 bits, 422.
Dans le mode de réalisation qui est représenté, l'in-
terface Ethernet 418 est implantée sur une carte amovible sé-
parée. Dans le cas d'un ordinateur hôte nécessitant un type d'interface différent, on peut retirer l'interface Ethernet
410 et la remplacer par une autre carte d'interface.
Une interface pour un petit système informatique
(SCSI) 424 peut être prévue pour connecter une unité de dis-
ques (non représentée) au bus de périphériques à 8 bits du processeur de terminal 12. L'interface SCSI 424 comprend un contrôleur d'accès direct en mémoire (DMA) qui est connecté
au bus d'adresse local à 24 bits 404.
Une unité de commande d'interruption 426 traite les signaux d'interruption entrants pour les divers dispositifs périphériques, ainsi que pour la logique de parcours d'arbre 32 et le processeur géométrique 36, qui sont connectés au processeur de terminal. Le processeur de terminal comporte également une horloge de temps réel 428 et des temporisateurs
programmables 430. Un générateur 432 génère des signaux d'ac-
cusé de réception de données "DTACK" pour les contrôleurs d'accès direct en mémoire (DMA) de l'interface d'ordinateur
hôte 418 et l'interface SCSI 424, les temporisateurs program-
mables 430, la mémoire vive à deux accès de l'interface série/ Centronics intelligente 410, les bascules d'état et la mémoire
morte programmable électriquement (EPROM) de la mémoire 406.
Des programmes permettant d'écrire des données gra-
phiques dans une mémoire, et des micro-ordinateurs équipés
d'interfaces pour les dispositifs périphériques décrits ci-
* dessus sont bien connus dans la technique. A titre d'exemple, un ouvrage bien connu intitulé Fundamentals of Interactive Computer Graphics, par Foley et Van Dam, édité par Addison Wesley, présente au Chapitre 9 un certain nombre d'algorithmes
pour écrire des données graphiques dans une structure hiérar-
chisée.
On voit à la lecture de ce qui précède que l'inven-
tion procure une architecture originale qui facilite le par-
cours d'une base de données graphiques. La logique de parcours
d'arbre 32, travaillant indépendamment du processeur de termi-
nal qui crée et entretient la base de données, génère rapide-
ment un train d'adresses pour la mémoire de liste de visualisa-
tion, et elle parcourt la base de données jusqu'à ce que cette
dernière ait été complètement traitée. La voie-de données ré-
servée 107 qui connecte un accès de sortie de la mémoire de
liste de visualisation 16 au processeur géométrique 36 pré-
sente des exigences minimales en ce qui concerne la procédure d'établissement de liaison, ce qui établitun bus ayant une
largeur de bande de données extrêmement élevée entre la mé-
moire 16 et le processeur géométrique 36. Le bus de pile bi-
directionnel 38 entre la logique de parcours d'arbre 32 et le
processeur géométrique 36 augmente encore la cadence de trai-
tement de données globale.
On notera évidemment que les divers aspects de l'invention peuvent faire l'objet de modifications, certaines
n'apparaissant qu'après une étude mais n'exigeant qu'un tra-
vail de routine de la part d'un spécialiste de la conception de circuits électroniques. On pourrait par exemple utiliser un bus d'un type autre que le VMEbus pour le bus de système 18.
ANNEXE A
EQUATIONS D'ETAT DE MODE
w = F*Ea BT + FxE± C + F4EiU * B + F"E*: * ENDeROLLOVER
+ RESET
+ F* B
+ TE D- C
+ F D- T TD *T
+ F*E*îl1 C*B E ND
+ RESET
F = FED
+ Fe "D*D STARTBIT + Fa D C
+ 1' D' B
+ V D *P
+ F'E'u ' C* n'u
+ RESET
EQUATIONS D'ETAT DE COMPTEUR
%. Tum7 (1)
+ B
+ C
+ RESET
B= B*A
+ C*T
+ F*E*D* T
+ RESET
+ C*B
+ F*E*DxC
+ C4 A
+ RESET
STASTBRIT =
START*STARTBIT
+ F*E*D*
+ RESET
Note (1) Le signal 1'MHz est le signal d'horloge à 10 MHz inversé
et retardZ613100
EQUATIONS DE SIGNAL DE CONTROLEUR DE MEMOIRE
STK.MEM.RASIN =
F D -fiC - A
F# D C A
+ l'* D * Ba
+ FE*D 1* A
+ F*E-,D T B
+ F"E*: + C
+ F*E*: * B
+ F*E*1 * ENDSROLLOVER* STK.MEM.R77
+ F*E*F* D.END*ROLLOVER*STK.MEM.R/W
STK.MEM.CASIN =
F*E*D BF
+ F-E-D ' i * X + FxEg C' * END*ROLLOVER*STK.MEM.R/W
+ F*E*: * C*^* D.END*ROLLOVER*STK.MEM.R/W
+ F *E *1Y
STK.MEM.RFRSH =
F* D *r + r* D * B
+ * D * GPRDY
+ F*E **C*1 * *
+ r*'*D* START BIT EQUATIONS DE SIGNAL DE CONTROLEUR DE MEMOIRE (suite)
STK.MEM.ADS
r* D * C
+ D* DSTARTT
+ D* B
+ F* D* GPRDY
+ F*E*D B**
+ F*E* * B A
-+ F*E**C*-B'* END
+ F*E*U* '*B
+ F*E*D * C
+ F*E*'*C*B*'*ROLLOVER*END
STK.MEM.R/C =
F*E*D * * B
+ F*E*D* C
+ F*E*D * B
+ F*E*D * END*ROLLOVER *sTKr.MEM.R/W
+ F*E*D * D.END*ROLLOVER*STK.MEM.R/W
STK.MEM.WIN =
F*E * B* STK.MEM.R/W
+ F*E*: * E * STK.MEM.R/[W
+ F*E*U * STK.MEM.R/W*END
+ F*E*D * STK.MEM.R/W*ROLLOVER
+ F*E*'*B* STK.MEM.R/W
EQUATIONS DE SIGNAL DE CONTROLEUR DE MEMOIRE (suite)
STACK.B=S.O=
F*E*D *
+ F* E*17
STACK.BUS.DIR =
STACK.MEM.R/W
STACK.BUS.CAB.ENB = &&
F*E*I* i*U X * STK.MEM.R/W + F*E*:* i B*A * STK.MEM.R/W
STACK.BUS.CBA.ENB &&
F*E*D*W* A * STK.MEM.R/W
+ F*E*'* C**-* STK.ME.R*
+ F*E*U* *B* * STK.MEM.R/W*END*ROLLOVER
GPRDY=
STK.MEM.R/W * GP.STACK.REG.FILE AVAIL * STK.MEM.COPY
+ STK.MEM.R/W * GP.STACK.OUTPUT.R.F.LOADED*STK.MEM. COPY
+ STK.MEM.DESTINATION
+ STK.MEM.RW * GP.STACK.OUTPUT.R.F.LOADED*STK.MEM.COPY
ÀGP.STACK REG.FILE AVAIL
Note
&& Ce signal est un précurseur du signal désiré.
EQUATIONS DE SIGNAL DE CONTROLEUR DE MEMOIRE (suite)
STK.MEM.ADDR.ENP =
F* E*' * C
STK.MEM.WD.CNT.ENP =
F.*E*'
+ '* D
+ F*E*D* STK.MEM.R/W
+ F*E* D* C*B*T* STK.MEM.R/W
+ F*E*U* i*A* STK.MEM.R/W
+ F*E*D* ROLLOVER *STK.MEM.R/W
+ F*E*U *ROLLOVER BIT*STK.MEM.R/W
STACK.MEM.WRITE.ENB =
F*E*l<* A *STK.MEM.R/W * DESTINATION
STACK.MEM.READ.ENB =
F*E*D * r*B*K*STK.MEM.R/W *DESTINATION
+ F*E*D * C*B-**STK.MEM.R/W *DESTINATION
+ F*E*7* Z*B*A*STK.MEM.R/W *DESTINATION*END*ROLLOVER BIT
+ F*E*l* C*B*K*ROLLOVER BIT*STK.MEM. R/W*DESTINATION
+ F*F*D*B*]*START*-P-Y*DESTINATION*STK.MEM.RT-
+ F-*E*D*B*r*iPrDY*DESTINATION*STK.MEM.R/W Note:
&& Ce signal est un précurseur du signal désiré.
ANNEXE B
DESCRIPTION EN LANGAGE DE CONCEPTION DE PROGRAMME
DU MICROPROGRAMME DE LA LOGIQUE DE PARCOURS D'ARBRE
INDEX Pages Programme Principal 111-112 Procédure "Elimination d'objet" 112 à 115 Procédure "Mise à Jour Inconditionnelle" 116-117 Procédure "Objet Exploré Suivant" 118 Procédure "Sélection du Dernier Objet Exploré" 119 Procédure "Inversion et Traitement de Face" 120 à 123 Procédure "Extraction de Données de la Pile" 124-125
PROGRAMME PRINCIPAL
/* initialisation des registres de données et des indicateurs */ instaurer/restaurer les bits de mode de traitement de face (mot d'ALU OC, bits 19 et 1) initialiser la fenêtre d'observation charger l'information du premier paquet dans les registres de mémoire du dernier objet visible (positions 10-13 du groupe de registres de DLM) faire jusqu'à ( objets de l'arbre épuisés) (mot d'ALU OC, bit 17) / pointeur de pile = première position m/ faire jusqu'à (inversion et traitement de face) (mot d'ALU OC, bit 1)
si le pointeur de pile est supérieur à la valeur maxi-
male de la pile: / dépassement de capacité de la pile m/ instaurer la bascule de dépassement de capacité de pile instaurer la bascule de demande d'interruption effectuer un branchement vers une boucle infinie /e attente d'une action du processeur de terminal m/ fin/si
DEBUT DE LA PROCEDURE "ELIMINATION D'OBJET"
FIN DE LA PROCEDURE "ELIMINATION D'OBJET"
fin/faire /* traitement des faces */ PROGRAMME PRINCIPAL (suite)
DEBUT DE LA PROCEDURE "INVERSION ET TRAITEMENT DE FACE"
FIN DE LA PROCEDURE "INVERSION ET TRAITEMENT DE FACE"
restaurer l'indicateur d'inversion et de traitement de face fin/faire /x les objets de l'arbre sont épuisés t/ instaurer l'indicateur d'interruption de VME effectuer un branchement vers une boucle infinie /* attente d'une action du processeur de terminal a/
PROCEDURE "ELIMINATION D'OBJET"
DEBUT DE LA PROCEDURE "ELIMINATION D'OBJET"
si (le dernier objet n'a pas été exploré (mot'd'ALU OC, bit 3)):
DEBUT DE LA PROCEDURE "SELECTION DU DERNIER OBJET EXPLORE"
FIN DE LA PROCEDURE "SELECTION DU DERNIER OBJET EXPLORE"
sinon /* indicateur d'exploration du dernier objet m/ si (l'information de sortie du processeur géométrique n'est pas disponible): /* localisation de l'objet suivant / si (l'objet suivant n'a pas été exploré)
DEBUT DE LA PROCEDURE " OBJET EXPLORE
SUIVANT"
FIN DE LA PROCEDURE " OBJET EXPLORE SUIVATT"
sinon /x l'objet suivant a été exploré e/ fin/si /* l'objet suivant a été exploré m/
fin/si /e l'information de sortie du processeur géométri-
que est disponible */ attendre la réception des résultats de l'élimination si (le dernier objet exploré est visible)
DEBUT DE LA PROCEDURE "MISE A JOUR INCONDITIONNELLE"
FIN DE LA PROCEDURE "MISE A JOUR INCONDITIONNELLE"
PROCEDURE "ELIMINATION D'OBJET"(suite) sinon /* le dernier objet exploré est invisible */ si (le dernier objet exploré était un frère):
remplacer le pointeur de frère du dernier objet visi-
ble par le pointeur de frère de l'objet visible exploré en dernier sinon /* le dernier objet exploré était un enfant */
remplacer le pointeur d'enfant du dernier objet visi-
ble par le pointeur de frère de l'objet exploré en dernier fin/si /* frère/enfant du dernier objet exploré */ restaurer l'indicateur de visibilité du dernier objet exploré si (objet suivant à explorer): si (l'objet suivant était le frère du dernier objet exploré):
mettre à jour les pointeurs du dernier objet explo-
ré appliquer le traitement d'élimination au nouveau dernier objet exploré sinon /* l'objet suivant était un enfant du dernier objet exploré x/ /* élimination de l'objet suivant; le parent est invisible m/ restaurer l'indicateur d'objet exploré suivant instaurer l'indicateur de traitement de face d'objet fin/si /* frère/enfant de l'objet suivant m/ fin/si /e objet suivant exploré */ fin/si /* visibilité du dernier objet exploré a/ PROCEDURE "ELIMINATION D'OBJET" (suite) fin/si /* dernier objet exploré */
FIN DE LA PROCEDURE "ELIMINATION D'OBJET"
PROCEDURE "MISE A JOUR INCONDITIONNELLE"
DEBUT si (l'indicateur de frère du dernier objet exploré désigne un enfant): incrémenter le niveau d'arbre courant fin/si enregistrer les pointeurs de dernier objet exploré (DLM RF (14-17) dans la pile 126 enregistrer les pointeurs de dernier objet exploré dans les pointeurs de dernier objet visible (DLM RF 10-13) si (l'indicateur de frère du dernier objet exploré désigne un frère (mot d'ALU OC, bit 5))
transférer les données de sortie du processeur géométri-
que vers la pile 126 sinon /* le dernier objet exploré est un enfant à/
transférer les données de sortie du processeur géométri-
que vers la pile 126 et le groupe de registres de pile de processeur géométrique 120 fin/si
restaurer le pointeur de dernier objet exploré (DLM RF (14-
17)) si (l'objet suivant a été exploré):
DEBUT DE LA PROCEDURE "MISE A JOUR DE L'OBJET SUIVANT"
enregistrer les pointeurs de l'objet exploré suivant (DLM RF (18-lB)) dans les pointeurs du dernier objet exploré
(DLM RF (13-17))
restaurer l'indicateur d'objet exploré suivant (mot d'ALU OC, bit 4) PROCEDURE "MISE A JOUR INCONDITIONNELLE" (suite)
transmettre au processeur géométrique 36 les primitives ré-
sultant du traitement d'élimination du (nouveau) dernier objet exploré
FIN DE LA PROCEDURE "MISE A JOUR DE L'OBJET SUIVINT"
fin/si /* l'objet suivant a été exploré m/ FIN
PROCEDURE "OBJET EXPLORE SUIVANIT"
DEBUT instaurer l'indicateur d'objet exploré suivant (mot d'ALU OC, bit 4) si (le pointeur de frère du dernier objet exploré est valide) mettre à jour le pointeur d'en-tête et l'indicateur d'objet suivant
prélever le bloc d'en-tête de l'objet suivant à explo-
rer placer à l'état "frère" l'indicateur de frère de l'objet suivant (bit 4) sinon si(lepointeur d'enfant du dernier objet exploré est valide) mettre à jour les pointeurs d'en-tête et l'indicateur de l'objet suivant
prélever le bloc d'en-tête de l'objet suivant à explo-
rer instaurer l'indicateur d'objet exploré suivant
restaurer à l'état "enfant" l'indicateur de frère/en-
fant de l'objet suivant sinon /* pas de frères ou d'enfants y/
annuler les pointeurs de frère, d'enfant et d'élimina-
tion de l'objet suivant annuler le pointeur du dernier objet exploré instaurer le bit de face à traiter (bit 19) restaurer l'indicateur d'objet exploré suivant (bit 4) fin/si FIN
2 1310 0
PROCEDURE "SELECTION DU DERNIER OBJET EXPLORE"
DEBUT /* sélection du dernier objet visible dans les À/ /* pointeurs de dernier objet visible m/ si (le pointeur de frère du dernier objet visible existe) instaurer l'indicateur.de dernier objet exploré (mot d'ALU, OC, bit 3) placer à l'état "frère" l'indicateur de frère/objet du dernier objet exploré prélever le bloc d'en-tête de l'objet frère à explorer
appliquer le traitement d'élimination au tampon d'élimi-
nation de l'objet frère à explorer (mot d'ALU OC, bit ) sinon, si (le pointeur d'enfant existe) instaurer l'indicateur d'exploration du dernier objet restaurer à l'état "enfant" l'indicateur de frère/enfant du dernier objet exploré prélever le bloc d'en-tête de l'objet enfant à explorer
appliquer le traitement d'élimination au tampon d'élimi-
nation de l'objet enfant à explorer sinon /* il n'existe aucun pointeur de frère ou d'enfant m/ restaurer l'indicateur d'objet exploré suivant (bit 4) restaurer l'indicateur de dernier objet exploré (bit 3) instaurer l'indicateur de traitement de face pour l'objet (bit 19) fin/si /* un objet suivant existe a/ FIN
PROCEDURE "INVERSION ET TRAITEMENT DE FACE"
/* le dernier objet est enregistré dans la pile et n'a ni a/ /* frère ni enfant; le dernier objet n'est pas un appel m/ /* (les appels ont des enfants). m/
DEBUT DE LA PROCEDURE "EXTRACTION DE DONNES DE LA PILE"
/* charge des attributs et transforme la matrice m/
FIN DE LA PROCEDURE "EXTRACTION DE DONNES DE LA PILE"
si le bit d'appel est instauré: remplacer le pointeur de partenaire par un pointeur de données nul fin/si /* bit d'appel */ /* prélèvement du pointeur de tampon de données m/
si le pointeur de tampon de données est valide et l'indica-
teur de visibilité locale est instauré: /e l'objet possède des primitives de données m/ commencer la procédure de traitement des primitives
/e décomposition des primitives et transfert vers le pro-
cesseur géométrique m/ faire jusqu'à ce que le pointeur de tampon de données soit nul instaurer l'indicateur de lecture de mémoire et de copie vers le processeur géométrique lire le bloc de données dans la DLM /* utilisation du pointeur de DLM de tampon de m/ /* données; départ à la position du pointeur m/ /* le bloc de données contient le compte de mots, */ /* le pointeur de bloc suivant, des indicateurs m/ de code opération et N mots de données / PROCEDURE "INVERSION ET TRAITEMENT DE FACE (suite) /* le compte de mots maximal est de 32 mots par a/ /x bloc */
remplacer le pointeur de bloc de données par le poin-
teur de bloc de données suivant si le nouveau compte de mots du bloc de données est 32, étendre le transfert de DLM jusqu'à 32 fin/si vérifier que le transfert de DLM a été achevé fin/faire /l le pointeur de bloc de données est nul*/ fin de la procédure de traitement de primitives sinon /t l'objet ne possède pas de données de primitives*/ fin/si /* le traitement de face de l'objet est terminé a/ restaurer les indicateurs d'enfant devant subir le traitement d'élimination, et d'inversion et de traitement de face faire jusqu'à ( découverte d'un enfant devant faire l'objet d'un traitement d'élimination, ou procédure d'inversion de traitement de face, ou épuisement de l'arbre) /* détermine si l'objet suivant peut être soumis à un m/ /* traitement de face, sauté ou soumis à un traitement */ /* d'élimination pour un enfant / calculer l'adresse de pile de l'objet suivant obtention du niveau d'arbre de l'objet suivant de la pile obtention du pointeur d'enfant de l'objet suivant de la pile si le niveau d'arbre de l'objet courant n'est pas égal au niveau d'arbre de l'objet suivant de la pile: /* l'objet de la pile est un parent de l'objet traité a/ /* précédemment / PROCEDURE "INVERSION ET TRAITEMENT DE FACE (suite) si l'objet de la pile est un appel: /* saut de l'appel de parent et répétition des */ /* tests m/ niveau de pile courant = niveau de pile courant -1 /* incrémentation du compteur m/ changer le pointeur de pile /* pour désigner une autre pile m/ sinon /* le parent est un objet normal; il peut subir le traitement de face */ changer le pointeur de pile /* pour désigner un objet de la pile a/ instaurer l'indicateur d'inversion et de traitement de face donner une valeur nulle au pointeur d'enfant du dernier objet donner une valeur nulle au pointeur de frère du dernier objet
/* fait pénétrer dans la procédure en boucle d'in-
version et de traitement de face e/ fin/si /* type d'objet de la pile a/ sinon /* le niveau d'arbre de l'objet courant est égal au niveau d'arbre de l'objet suivant de la pile m/ /* l'objet de la pile est un frère de l'objet m/ /* traité précédemment; il ne peut pas être un m/ /* appel /
si le pointeur d'enfant de l'objet de la pile est va-
lide:
Z 613100
PROCEDURE "INVERSION ET TRAITEMENT DE FACE (suite) /* préparation pour un traitement d'élimination pour un enfant m/ donner une valeur nulle au pointeur de frère du dernier objet donner au pointeur d'enfant du dernier objet une valeur égale au pointeur d'enfant de l'objet de la pile restaurer les indicateurs de dernier objet exploré et d'objet exploré suivant instaurer l'indicateur d'enfant devant subir le traitement d'élimination sinon /* le pointeur d'enfant de l'objet de la pile est invalide m/ /* l'objet de la pile ne possède pas d'enfant et m/ /* peut subir le traitement de face */ instaurer l'indicateur d'inversion et de traitement de face donner une valeur nulle au pointeur d'enfant du dernier objet donner une valeur nulle au pointeur de frère du dernier objet fin/si /* pointeur d'enfant du dernier objet de la pile m/ fin/si /* niveau d'objet courant */ fin/faire /* enfant devant subir un traitement d'élimination,
ou inversion et traitement de face, ou épuise-
ment de l'arbre e/
FIN DE LA PROCEDURE "INVERSION ET TRAITEMENT DE FACE"
PROCEDURE "EXTRACTION DE DONNEES DE LA PILE"
Cette procédure extrait de la pile le dernier article qu'elle
contient, pour le transférer vers l'entrée du processeur géo-
métrique, et elle transfère les données de la pile vers la logique de parcours d'arbre. La procédure prélève ensuite le
pointeur de tampon de données dans l'adresse de bloc d'en-
tête. Cette procédure est appelée par la procédure "Inversion
et Traitement de Face".
DEBUT DE LA PROCEDURE "EXTRACTION DE DONNEES DE LA PILE"
transférer quatre mots de l'objet supérieur de la pile vers
le groupe de registres de DLM 112 de la logique de par-
cours d'arbre mettre à jour le niveau d'arbre courant prélever le mot d'indicateur d'objet de la pile prélever le pointeur d'en-tête d'objet de la pile si (le mot d'indicateur indique la visibilité): lire le bloc d'entête dans la DLM si (l'objet est un appel): donner une valeur nulle au pointeur de données fin/si si le bloc d'en-tête comporte un pointeur de tampon de données valide: transférer vers le processeur géométrique les données extraites de la pile
/* charge des attributs et une matrice de transforma-
* tion dans le processeur géométrique m/ sinon décrémenter l'adresse de pile PROCEDURE "EXTRACTION DE DONNEES DE LA PILE" (suite) fin/si /* le pointeur de données est valide */ sinon /* le mot d'indicateur indique l'invisibilité'*/ décrémenter l'adresse de pile fin/si /* test de visibilité du mot d'indicateur m/ si (dépassement de capacité par valeur inférieure pour l'adresse de pile): instaurer le bit d'épuisement de l'arbre fin/si
FIN DE LA PROCEDURE "EXTRACTION DE DONNEES DE LA PILE"
ANNEXE C
EQUATIONS LOGIQUES DE COMMANDE DE DECALAGE
AVEC ENROULEMENT
O1 04 * i SO + Sl *' 02 = 03 ST e SO +ALUMSB * Si * SO
+ S1 *
03 = 02 a T SO + 04 a Si a SO
+ S1 * 3-
04 = 01 * ST * SO
+ 03 * S1 a SO + S1 a
01 OE = INST (7)
02 OE = INST (7)
03 OE = INST (7)
04 OE = T:w 7 NOTE: OE = "OUTPUT ENABLE" (validation de sortie) 2 61310 l 0
ANNEXE D
Equations Logiques de Commande de Sortie des Registres d'Interface de VME Données de VME/Tampon de données de WCS 382 G bas (Mode 100 + Mode 111 + Mode 110) * WCS *
VME.Addr 14 -
G haut = (Mode 100 + Mode 111 + Mode 110) * WCS * VME.Addr 14 Adresse de VME/Tampon d'Adresse de Microprogramme 386 Validatior: = (Mode 100 + Mode 111 + Mode 110) a WCS Multiplet d'Etat/Tampon de Données d'Interruption 392 Validation= Mode 011 Bus de Données de VME/Tampon de Bus de Données Local 390 Local Data Bus Read Load = 10MHz a Local Data Bus Select Local Data Bus Write Load= 10MHz * Mode 111
GAB = DS374Q * START * WRITE
GBA = Local Data Bus VME Data Select Données de VME/Tampon de Bus de Données de VME 388 VME Data Write Load = DS374Q * WRITE VME Data Read Load = WCS * Mode 100 * 10 MHz VME Data Select = Start * (Mode 100 + Mode 110) Note
Le signal T10 MHz est un précurseur de l'horloge à 10 MHz.

Claims (21)

REVENDICATIONS
1. Processeur graphique destiné à visualiser des ob-
jets et prévu pour l'utilisation avec un processeur hôte, ce processeur graphique (10) ayant une mémoire (16) qui comporte un ensemble de positions de mémoire, chaque position ayant une
adresse, ces positions de mémoire étant prévues pour enregis-
trer des segments de données graphiques qui représentent des objets à visualiser, et les segments de données graphiques étant arrangés en une structure hiérarchisée dans laquelle les données graphiques de chaque segment comprennent au moins un pointeur représentant l'adresse d'un autre segment; et des moyens de traitement (12), fonctionnant sous la dépendance du processeur hôte, de façon à écrire les segments de données
graphiques dans la mémoire (16); caractérisé en ce qu'il com-
prend: des seconds moyens de traitement (30) fonctionnant sous la dépendance des premiers moyens de traitement (12), pour lire séquentiellement les données graphiques enregistrées dans la mémoire (16) et pour visualiser des images d'objets représentés par les données graphiques qui sont lues par les seconds moyens de traitement, ces seconds moyens de traitement (30) comprenant des moyens (32) destinés à lire un pointeur dans la mémoire (16) et à lire les données graphiques qui sont
enregistrées aux adresses de segment désignées par les poin-
teurs lus.
2. Processeur graphique selon la revendication 1, caractérisé en ce que les données graphiques de chaque segment sont enregistrées en paquets de plusieurs mots ayant des adresses séquentielles, et en ce que les seconds moyens de traitement (30) comprennent un compteur destiné à générer des adresses séquentielles et des moyens destinés à initialiser le compteur pour qu'il présente en sortie l'adresse du premier
mot d'un paquet.
3. Processeur graphique selon la revendication 1, caractérisé en ce que plusieurs segments ont chacun un segment frère au même niveau hiérarchique, un pointeur de frère qui représente l'adresse du segment frère, un segment enfant à un
niveau hiérarchique inférieur et un pointeur d'enfant qui re-
présente l'adresse du-segment enfant, et en ce que les.seconds moyens de traitement (30) comportent des moyens d'élimination (36) destinés à déterminer si l'objet représenté par un seg- ment est à l'extérieur d'un volume prédéterminé, et les moyens de lecture (32) des seconds moyens de traitement comportent
des moyens destinés à exclure les données graphiques du seg-
ment enfant si les moyens d'élimination ont déterminé que le
segment traité est à l'extérieur du volume prédéterminé.
4. Processeur graphique destiné à visualiser des objets et prévu pour l'utilisation avec un processeur hôte,
caractérisé en ce qu'il comprend: un bus de système (18) com-
prenant un ensemble de lignes de commande, de données et d'adresse; un bus de lecture (34) comprenant un ensemble de
lignes de données; une mémoire (16) connectée au bus de sys-
téme (18) et au bus de lecture (34), et comportant un ensemble de positions de mémoire, chaque position ayant une adresse, ces positions de mémoire étant prévues pour enregistrer des segments de données graphiques qui représentent des objets à visualiser, les segments de données graphiques étant arrangés
en une structure hiérarchisée dans laquelle les données gra-
phiques de chaque segment comprennent au moins un pointeur re-
présentant l'adresse d'un autre segment; des premiers moyens
de traitement (12) connectés au bus de système (18) et fonc-
tionnant sous la dépendance du processeur hôte, pour écrire les segments de données graphiques dans la mémoire (16), par l'intermédiaire du bus de système (18), et pour fournir une
adresse de segment de départ; et des seconds moyens de trai-
tement (30), connectés au bus de système (18) et au bus de lecture (34) et fonctionnant sous la dépendance des premiers moyens de traitement (12), de façon à lire séquentiellement
par le bus de lecture (34) des données graphiques qui sont en-
registrées dans la mémoire (16), en partant de l'adresse de segment qui est fournie par les premiers moyens de traitement
2613100'
(12), et de façon à visualiser des images d'objets représentés par les données graphiques qui sont lues par les seconds moyens de traitement, ces seconds moyens de traitement (30) comprenant des moyens (32) destinés à lire un pointeur dans la mémoire (16) et à lire les données graphiques qui sont enre- gistrées aux adresses de segment désignées par les pointeurs lus.
5. Processeur graphique destiné à visualiser des objets et prévu pour l'utilisation avec un processeur hôte, caractérisé en ce qu'il comprend: un bus de système (18) qui comprend un ensemble de lignes de commande, de données et d'adresse; un bus de lecture (34) qui comprend un ensemble de
lignes de données; une mémoire (16) connectée au bus de sys-
tème et au bus de lecture, et comportant un ensemble de posi-
tions de mémoire, chaque position ayant une adresse, ces posi-
tions de mémoire étant prévues pour enregistrer des segments
de données graphiques qui représentent des objets à visuali-
ser, les segments de données graphiques étant arrangés en une structure hiérarchisée dans laquelle les données graphiques
de chaque segment comprennent au moins un pointeur représen-
tant l'adresse d'un autre segment; des moyens de gestion de base de données (12) connectés au bus de système (18) et fonctionnant sous la dépendance du processeur hôte, de façon à écrire les segments de données graphiques dans la mémoire (16), par l'intermédiaire du bus de système (18), et à fournir une adresse de segment; des moyens d'adressage (32) qui sont connectés à la mémoire et qui fonctionnent sous la dépendance des moyens de gestion de base de données, de façon à adresser séquentiellement des données graphiques qui sont enregistrées dans la mémoire (16), en partant à l'adresse de segment qui est fournie par les premiers moyens de traitement (12), ces moyens d'adressage (32) comprenant des moyens de lecture de pointeur qui sont destinés à lire un pointeur dans la mémoire (16) et à adresser les données graphiques enregistrées aux adresses de segment désignées par les pointeurs lus; et des moyens de traitement de données graphiques (36), connectés au
bus de lecture (34) pour lire par le bus de lecture les don-
nées graphiques qui sont adressées par les moyens d'adressage (32), et pour visualiser des images d'objets représentes par les données graphiques lues.
6. Processeur graphique selon la revendication 5, caractérisé en ce que chaque segment possède un pointeur de frère qui représente l'adresse d'un segment se trouvant au
même niveau hiérarchique, et un pointeur d'enfant qui repré-
sente l'adresse d'un segment se trouvant à un niveau hiérar-
chique inférieur, en ce que chaque segment est associé à un
volume de limitation qui contient entièrement l'objet du seg-
ment et tous les objets des pointeurs d'enfant associés, en
ce que les moyens de traitement de données graphiques compor-
tent des moyens d'élimination (36) destinés à déterminer si un volume de limitation de segment est contenu à l'intérieur d'un volume prédéterminé, et en ce que les moyens d'adressage
utilisant des pointeurs (32) comprennent des moyens qui fonc-
tionnent sous la dépendance des moyens de traitement de don-
nées graphiques (36) de façon à adresser les données graphi-
ques associées à un pointeur d'enfant de segment, uniquement si la détermination qui est faite indique que le volume de
limitation du segment se trouve à l'intérieur du volume prédé-
terminé.
7. Processeur selon la revendication 6, caractérisé
en ce que chaque segment comportant un pointeur d'enfant défi-
nit un segment parent, et en ce que chaque segment est associé à un système de coordonnées et chaque segment enfant possède
une matrice de transformation destinée à transformer le systé-
me de coordonnées du segment enfant pour donner le système de coordonnées du segment parent, et ce processeur comprend en outre un troisième bus (38) ayant des lignes de données qui
connectent les moyens d'adressage (32) aux moyens de traite-
ment de données graphiques, ces moyens de traitement de don-
nées graphiques (36) comportant des moyens destinés à effec-
tuer la concaténation de la matrice de transformation du seg-
ment enfant avec la matrice de transformation du segment pa-
rent, les moyens d'adressage (32) comportant des moyens qui
sont destinés à enregistrer la matrice résultant de la conca-
tenation pour un segment, si la détermination qui est faite indique que l'objet du segment se trouve à l'intérieur du
volume prédéterminé.
8. Processeur selon la revendication 7, caractérisé
en ce que les données graphiques de chaque segment d'un en-
semble de segments comprennent en outre des donnees de coor-
donnees représentant au moins une primitive graphique, et les moyens d'adressage (32) comportent des moyens destinés à
adresser les données de coordonnées d'un segment et à trans-
férer vers les moyens de traitement de données graphiques (36) la matrice enregistrée qui résulte de la concaténation, pour le segment considéré, ces moyens de traitement de données graphiques (36) comportant des moyens destinés à multiplier les données de coordonnées de primitive graphique du segment par la matrice résultant de la concaténation pour le segment, de façon à transformer les données de coordonnées pour les
faire correspondre à un autre système de coordonnées.
9. Processeur graphique destiné à visualiser des
images d'objets représentés par des segments de données gra-
phiques qui sont enregistrées dans une mémoire (16), chaque segment contenant l'adresse d'un autre segment, caractérisé en ce qu'il comprend: un bus de données unidirectionnel (34) connecté à une sortie de la mémoire (16), pour transférer des
données graphiques lues dans la mémoire; des moyens d'adres-
sage (32) connectés au bus de données (34) et à la mémoire
(16), pour adresser les données graphiques qui sont enregis-
trees dans la mémoire (16) et pour lire des données graphiques sélectionnées, par le bus de données (34), pour déterminer l'adresse d'un autre segment de données graphiques; et des
moyens de traitement géométrique (36) connectés au bus de don-
nées (34) pour traiter les données graphiques qui proviennent
du bus de données (34).
10. Processeur selon la revendication 9, caractérisé en ce qu'il comprend en outre une mémoire à structure de pile
(126) destinée à enregistrer des données graphiques, et un se-
cond bus de données (38) connecté aux moyens d'adressage (32), aux moyens de traitement géométrique (36) et à la mémoire à
structure de pile (126), pour transférer des données graphi-
ques entre les moyens de traitement géométrique (36) et la mé-
moire à structure de pile (126), et entre les moyens d'adres-
sage (32) et la mémoire à structure de pile (126).
11. Processeur selon la revendication 10, caractéri-
sé en ce que les moyens de traitement géométrique (36) com-
prennent des moyens d'élimination destinés à déterminer si un
objet d'un segment de données graphiques se trouve à l'inté-
rieur d'un volume prédéterminé, et en ce que les moyens d'adressage (32) comportent des moyens destinés à transférer
sur le second bus de données (38) et à enregistrer dans la mé-
moire à structure de pile (126) des données graphiques d'ob-
jets pour lesquels la détermination qui a été faite indique
qu'ils se trouvent à l'intérieur du volume prédéterminé.
12. Processeur selon la revendication 11, caractéri-
sé en ce que les moyens d'adressage (32) comportent des moyens destinés à retransférer par le second bus de données (38), vers les moyens de traitement géométrique (36) les données graphiques qui sont enregistrées dans la mémoire à structure de pile (126), en vue d'un traitement ultérieur par les moyens
de traitement géométrique (36).
13. Processeur selon la revendication 12, caractéri-
sé en ce que les moyens d'adressage (32) comportent des moyens destinés à adresser des données graphiques supplémentaires, et les moyens de traitement géométrique (36) comportent des
moyens destinés à traiter les données graphiques supplémentai-
res, en combinaison avec les données graphiques qui ont été
retransférées à partir de la mémoire à structure de pile (126).
14. Processeur selon la revendication 13, caractéri-
sé en ce que les données graphiques supplémentaires sont des primitives graphiques représentant les objets, et les moyens
de traitement géométrique (36) conçus pour traiter les don-
nées graphiques supplémentaires, comprennent des moyens de coupure qui sont destinés à couper les primitives graphiques
en correspondance avec le volume prédéterminé.
15. Processeur graphique destiné à visualiser des objets et prévu pour l'utilisation avec un processeur hôte, ce processeur comportant une mémoire (16) ayant un ensemble de positions de mémoire, chaque position ayant une adresse, les positions de mémoire étant prévues pour enregistrer des segments de données graphiques qui représentent des objets à
visualiser, et les segments de données graphiques étant ar-
rangés en une structure hiérarchisée dans laquelle les don-
nées graphiques de chaque segment comprennent au moins un
pointeur représentant l'adresse d'un autre segment; caracté-
risé en ce qu'il comprend: un bus de lecture (34) qui com-
prend un ensemble de lignes de données pour établir une voie de données pour des données graphiques qui sont lues dans la mémoire (16); des moyens d'adressage (32) qui sont connectés
à la mémoire pour adresser séquentiellement des données gra-
phiques enregistrées dans la mémoire (16), ces moyens d'adres-
sage (32) comprenant un groupe de registres (112) qui est connecté au bus de lecture (34), pour enregistrer un pointeur
provenant de la mémoire (16), et des moyens destinés à adres-
ser les données graphiques qui sont enregistrées aux adresses de segment désignées par les pointeurs lus; des moyens de traitement de données graphiques (36) connectés au bus de lecture (34) pour lire par le bus de lecture (34) et pour traiter les données graphiques qui sont adressées par les moyens d'adressage (32); une mémoire à structure de pile (126); un second bus (38) qui connecte la mémoire à structure de pile (126) aux moyens d'adressage (32) et aux moyens de traitement de données graphiques (36); et des moyens de transfert de pile (102) destinés à transférer des pointeurs sur le second bus (38), à partir du groupe de registres (112) des moyens d'adressage, vers la mémoire à structure de pile (126), et à transférer des données graphiques sur le second bus (38) des moyens de traitement de données graphiques (36) vers la mémoire à structure de pile (126).
16. Processeur graphique selon la revendication 15, caractérisé en ce que chaque segment possède un pointeur de frère qui représente l'adresse d'un segment se trouvant au
même niveau hiérarchique, et un pointeur d'enfant qui repré-
sente l'adresse d'un segment se trouvant à un niveau hiérar-
chique inférieur, en ce que chaque segment est associé à un
volume de limitation qui contient entièrement l'objet du seg-
ment et tous les objets des pointeurs d'enfant associés, en
ce que les moyens de traitement de données graphiques compor-
tent des moyens d'élimination (36) destinés à déterminer si un volume de limitation de segment est contenu à l'intérieur d'un volume prédéterminé, et en ce que les moyens d'adressage
utilisant des pointeurs (32) comprennent des moyens qui fonc-
tionnent sous la dépendance des moyens de traitement de don-
nées graphiques (36) de façon à adresser les données graphi-
ques associées à un pointeur d'enfant de segment, uniquement si la détermination qui est faite indique que le volume de
limitation du segment se trouve à l'intérieur du volume prédé-
terminé.
17. Processeur selon la revendication 16, caractéri-
sé en ce que chaque segment comportant un pointeur d'enfant définit un segment parent, et en ce que chaque segment possède un système de coordonnées associé, et chaque segment enfant possède une matrice de transformation destinée à transformer le système de coordonnées du segment enfant pour donner le
système de coordonnées du segment parent, les moyens de trai-
tement de données graphiques (36) comportant des moyens desti-
nés à effectuer une concaténation entre la matrice de trans-
formation du segment enfant et la matrice de transformation du segment parent, et les moyens de transfert de pile comportant des moyens destinés à transférer vers la mémoire à structure de pile (126) la matrice résultant de la concaténation pour un segment, si l'objet du segment est trouvé à l'intérieur du
volume prédéterminé.
18. Processeur selon la revendication 17, caracté- risé en ce que les données graphiques de chaque segment d'un ensemble de segments comprennent en outre des données de
coordonnées représentatives d'au moins une primitive graphi-
que, et les moyens d'adressage (32) comportent des moyens destinés a adresser les données de coordonnées d'un segment, et les moyens de transfert de pile (102) comportent des moyens destinés à transférer de la mémoire à structure de pile (126) vers les moyens de traitement de données graphiques (36) la matrice enregistrée qui résulte de la concaténation pour le
segment considéré, et les moyens de traitement de données gra-
phiques (36) comportent des moyens destinés à multiplier les données de coordonnées de la primitive graphique du segment par la matrice résultant de la concaténation pour le segment, de façon à transformer les données de coordonnées pour les
exprimer dans un autre système de coordonnées.
19. Dansunprocesseur graphique une logique de parcours pré-
vue pour l'utilisation avec une mémoire (16) comportant un ensemble de positions, chaque position ayant une adresse, ces positions de mémoire
étant prévues pour enregistrer des segments de données graphi-
ques qui représentent des objets à visualiser, chaque segment comprenant un ensemble de paquets de données graphiques, et chaque paquet étant enregistré à des positions de mémoire ayant des adresses séquentielles, les données graphiques de chaque paquet comprenant au moins un pointeur qui représente l'adresse d'un autre paquet; et cette logique de parcours étant prévue pour l'utilisation avec un processeur géométrique
(36) qui est destiné à traiter les paquets de données graphi-
ques qui sont lues dans la mémoire; caractérisée en ce qu'el-
le comprend: des moyens à compteur (314) qui réagissent à la réception d'un pointeur en générant des adresses séquentielles 2613100v pour lire un paquet de données graphiques dans la mémoire (16), en partant à une adresse représentée par le pointeur; un groupe de registres (112) destiné à enregistrer des pointeurs lus dans la mémoire; une mémoire à structure de pile (126) destinée à enregistrer des données graphiques de segments; et des moyens de commande (102) pour: 1) transférer vers les moyens à compteur (314) un pointeur enregistré précédemment dans le groupe de registres (112); 2) transférer des pointeurs du groupe de registres (112) vers la mémoire à structure de pile (126), en vue de leur enregistrement; 3) transférer des
données graphiques du processeur géométrique (36) vers la mé-
moire à structure de pile (126) en vue de leur enregistrement, et 4) transférer des pointeurs de la mémoire à structure de pile (126) vers les moyens à compteur (314), pour déclencher
la génération d'adresses séquentielles pour lire un paquet sup-
plémentaire; et 5) transférer des données graphiques de la mé-
moire à structure de pile (126) vers le processeur géométrique
(36) en vue d'un traitement ultérieur.
20. Dans un processeur graphique une logique de parcours selon la revendication 19, est caractérisée en ce que le processeur géométrique (36) comporte des moyens destinés à déterminer si l'objet d'un segment est
potentiellement visible dans une fenêtre d'observation prédé-
terminée, et en ce que les moyens de commande (102) destinés à transférer des données graphiques du processeur géométrique (36) vers la mémoire à structure de pile (126) en vue de leur enregistrement, comportent des moyens qui fonctionnent sous la
dépendance du processeur géométrique (36) de façon à ne trans-
férer de telles données graphiques que pour des objets pour lesquels la détermination qui a été faite indique qu'ils sont
potentiellement visibles.
21. Dans un processeur graphique une logique de par-
cours pour une mémoire (16) comporte un ensemble de positions de mémoire, chaque position ayant une adresse, ces positions de mémoire étant prévues pour enregistrer des segments de données graphiques qui représentent des objets à visualiser, les segments de données graphiques
2 6 1 3 1 00
étant arrangés en une structure hiérarchisée dans laquelle chaque segment comprend un ensemble de paquets de données graphiques, chaque paquet étant enregistré dans des positions de mémoire qui ont des adresses de mémoire séquentielles, les paquets de segment comprenant un bloc d'en- tête qui comporte
un ensemble de pointeurs désignant des segments connexes com-
prenant des segments parents, enfants et frères, et des poin-
teurs qui désignent des tampons d'élimination et de données, chaque tampon d'élimination comprenant un ensemble de paquets de données graphiques définissant des attributs de l'objet du segment, et chaque tampon de données comprenant des paquets de données graphiques définissant une primitive graphique de l'objet, chaque paquet contenant un pointeur qui désigne un autre paquet du tampon; et pour un processeur géométrique (36) destiné à traiter des paquets de tampon d'élimination
pour déterminer si l'objet du segment est potentiellement vi-
sible dans une fenêtre d'observation prédéterminee, et destiné à traiter les paquets de tampon de données en combinaison avec les donnees graphiques d'attributs provenant des paquets de tampon d'élimination traités précédemment, pour traiter la primitive graphique d'un segment; caractérisée en ce qu'elle comprend: des moyens à compteur (314) qui réagissent à la réception d'un pointeur en générant des adresses séquentielles pour lire un paquet dans la mémoire (16), en partant d'une adresse désignée par le pointeur; un groupe de registres (112) destiné à enregistrer des pointeurs lus dans la mémoire
(16); une mémoire à structure de pile (126) destinée à enre-
gistrer des données graphiques de segment; et des moyens de
commande (102) qui fonctionnent sous la dépendance du proces-
seur géométrique (36) pour 1) appliquer un pointeur aux moyens à compteur (314) afin de déclencher la génération d'adresses séquentielles pour lire dans la mémoire un paquet de bloc d'en-tête pour un segment, et pour enregistrer le paquet de
bloc d'en-tête dans le groupe de registres (112); 2) trans-
férer le pointeur de tampon d'élimination du paquet de bloc 2 613l 00 d'en-tête enregistré dans le groupe de registres (112) vers les moyens à compteur (314), pour déclencher la génération d'adresses séquentielles dans le but de lire un paquet de tampon d'élimination du segment, et pour enregistrer le paquet de tampon d'élimination dans le groupe de registres; 3)
transférer le pointeur de paquet de tampon d'élimination sui-
vant du paquet de tampon d'élimination enregistré dans le groupe de registres (112) vers les moyens à compteur (314), afin de déclencher la génération d'adresses séquentielles pour lire le paquet de tampon d'élimination suivant dans la mémoire (16), et pour enregistrer le paquet de tampon d'élimination suivant dans le groupe de registres; 4) répéter l'opération 3 jusqu'à ce que tous les paquets du tampon d'élimination aient été lus pour un segment; 5) transférer le pointeur de bloc d'entête de segment à partir du groupe de registres
(112), et les données graphiques d'attributs d'objet de seg-
ment à partir du processeur géométrique (36), vers la mémoire à structure de pile (126), si le processeur géométrique (36) détermine que l'objet du segment est potentiellement visible;
6) répéter les opérations 1-5 pour le segment frère du seg-
ment, si le segment possède un segment frère; 7) répéter les
opérations 1-5 pour le segment enfant du segment, si le seg-
ment ne possède pas un segment frère et si le segment possède effectivement un segment enfant; 8) répéter les opérations 6 et 7 jusqu'à ce que les paquets de tampon d'élimination pour un segment n'ayant ni segment frère ni segment enfant aient été lus; 9) transférer vers les moyens à compteur (314) le pointeur de bloc d'en-tête d'un segment ayant des données graphiques enregistrées dans la mémoire à structure de pile (126), pour déclencher la génération d'adresses séquentielles,
pour lire le paquet de bloc d'en-tête de segment dans la mé-
moire (16), et pour enregistrer dans le groupe de registres
(112) le paquet de bloc d'en-tête de segment lu; 10) transfé-
rer le pointeur de tampon de données du paquet de bloc d'en-
tête enregistré dans le groupe de registres, vers les moyens 2 61l 10 v à compteur (314), pour déclencher la génération d'adresses séquentielles, pour lire un paquet de tampon de données du segment, et pour transférer dans le groupe de registres (112) le paquet de tampon de données; 11) transférer le pointeur de paquet de tampon de données suivant vers les moyens à compteur (314), à partir du paquet de tampon de données qui est enregistré dans le groupe de registres (112), afin de déclencher la génération d'adresses séquentielles, pour lire le paquet de tampon de données suivant dans la mémoire (16), et pour enregistrer le paquet de tampon de données suivant dans le groupe de registres (112); 12) répéter l'opération 11 jusqu'à ce que tous les paquets du tampon de données de segment aient été lus; 13) transférer les données graphiques d'attributs d'objet du segment, de la mémoire à structure de pile (126) vers le processeur géométrique (36); 14) répéter
les opérations 9-13 pour les segments restants ayant des don-
nées graphiques enregistrées dans la mémoire à structure de
pile (126), jusqu'à la rencontre d'un segment qui est le seg-
ment frère du segment lu précédemment dans la mémoire à structure de pile (126) et qui possède un segment enfant pour lequel les paquets de tampon d'élimination n'ont pas été lus; ) répéter les opérations 1-14 jusqu'à ce que toutes les données graphiques de segment qui sont enregistrées dans lamémoire à structure de pile (126) aient été transférées vers
le processeur géométrique (36).
FR8703469A 1986-03-17 1987-03-13 Processeur graphique perfectionne Pending FR2613100A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/840,459 US4967375A (en) 1986-03-17 1986-03-17 Fast architecture for graphics processor

Publications (1)

Publication Number Publication Date
FR2613100A1 true FR2613100A1 (fr) 1988-09-30

Family

ID=25282437

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8703469A Pending FR2613100A1 (fr) 1986-03-17 1987-03-13 Processeur graphique perfectionne

Country Status (5)

Country Link
US (1) US4967375A (fr)
JP (1) JPS62271066A (fr)
DE (1) DE3708023A1 (fr)
FR (1) FR2613100A1 (fr)
GB (2) GB8706239D0 (fr)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2265802B (en) * 1988-12-05 1994-01-05 Rediffusion Simulation Ltd Image generator
US5182797A (en) * 1989-10-23 1993-01-26 International Business Machines Corporation Multi-processor graphics display system for displaying hierarchical data structures
US5249265A (en) * 1989-10-24 1993-09-28 International Business Machines Corporation Structure storage management in a graphics display device
US6978277B2 (en) * 1989-10-26 2005-12-20 Encyclopaedia Britannica, Inc. Multimedia search system
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5226109A (en) * 1990-04-26 1993-07-06 Honeywell Inc. Three dimensional computer graphic symbol generator
JP2824342B2 (ja) * 1991-03-29 1998-11-11 富士通株式会社 イメージ高速描画装置
WO1992021088A1 (fr) * 1991-05-17 1992-11-26 Eastman Kodak Company Nouvelle structure de bus electrique
CA2066559A1 (fr) * 1991-07-29 1993-01-30 Walter S. Rosenbaum Stockage et extraction d'objets sans texte
US5241631A (en) * 1991-08-23 1993-08-31 Nec Technologies, Inc. Personal computer having a local bus interface to a video circuit
US5367621A (en) * 1991-09-06 1994-11-22 International Business Machines Corporation Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated
GB2259432A (en) * 1991-09-06 1993-03-10 Canon Res Ct Europe Ltd Three dimensional graphics processing
JPH05210481A (ja) * 1991-09-18 1993-08-20 Ncr Internatl Inc 直接アクセス式ビデオバス
WO1993007583A1 (fr) * 1991-10-10 1993-04-15 Hewlett Packard Company Systeme infographique a mise a jour delimitee
WO1993007582A1 (fr) * 1991-10-10 1993-04-15 Hewlett Packard Company Organisation de segments graphiques dans un systeme graphique
GB9303009D0 (en) * 1993-02-15 1993-03-31 Canon Res Ct Europe Ltd Processing image data
US5872570A (en) * 1993-02-15 1999-02-16 Canon Kabushiki Kaisha Method and apparatus for use in generating a rendering order for use in rendering images
EP0612027B1 (fr) * 1993-02-15 2002-11-13 Canon Kabushiki Kaisha Traitement d'image
GB9315852D0 (en) * 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US5432898A (en) * 1993-09-20 1995-07-11 International Business Machines Corporation System and method for producing anti-aliased lines
US5732262A (en) * 1994-01-31 1998-03-24 International Business Machines Corporation Database definition language generator
JPH0816820A (ja) * 1994-04-25 1996-01-19 Fujitsu Ltd 3次元アニメーション作成装置
US5613049A (en) * 1994-10-26 1997-03-18 The Boeing Company Method for creating spatially balanced bounding volume hierarchies for use in a computer generated display of a complex structure
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US6067098A (en) * 1994-11-16 2000-05-23 Interactive Silicon, Inc. Video/graphics controller which performs pointer-based display list video refresh operation
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US5777629A (en) * 1995-03-24 1998-07-07 3Dlabs Inc. Ltd. Graphics subsystem with smart direct-memory-access operation
US5692020A (en) * 1995-06-07 1997-11-25 Discovision Associates Signal processing apparatus and method
US5717875A (en) * 1995-09-22 1998-02-10 Vlsi Technology, Inc. Computing device having semi-dedicated high speed bus
US5657479A (en) * 1995-12-04 1997-08-12 Silicon Graphics, Inc. Hierarchical display list processing in graphics data retrieval system
US5917505A (en) * 1995-12-19 1999-06-29 Cirrus Logic, Inc. Method and apparatus for prefetching a next instruction using display list processing in a graphics processor
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US6184902B1 (en) * 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US5889997A (en) * 1997-05-30 1999-03-30 Hewlett-Packard Company Assembler system and method for a geometry accelerator
WO1999056249A1 (fr) * 1998-04-27 1999-11-04 Interactive Silicon, Inc. Systeme graphique et procede permettant de rendre independants des objets bidimensionnels et tridimensionnels
US6097395A (en) * 1998-04-28 2000-08-01 Hewlett Packard Company Dynamic selection of lighting coordinates in a computer graphics system
KR100298789B1 (ko) * 1998-04-29 2001-09-06 윤종용 그래픽 처리에 있어서 클리핑 처리방법
US6170041B1 (en) * 1998-09-24 2001-01-02 Integrated Silicon Soulution, Inc. Integrated circuit memory with a bus transceiver
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6525738B1 (en) 1999-07-16 2003-02-25 International Business Machines Corporation Display list processor for decoupling graphics subsystem operations from a host processor
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6628836B1 (en) * 1999-10-05 2003-09-30 Hewlett-Packard Development Company, L.P. Sort middle, screen space, graphics geometry compression through redundancy elimination
US6567091B2 (en) 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US6587112B1 (en) * 2000-07-10 2003-07-01 Hewlett-Packard Development Company, L.P. Window copy-swap using multi-buffer hardware support
US7536691B2 (en) * 2001-08-09 2009-05-19 Infineon Technologies Ag Method and apparatus for software-based allocation and scheduling of hardware resources in a wireless communication device
US6747653B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Efficient object storage for zone rendering
US6919896B2 (en) * 2002-03-11 2005-07-19 Sony Computer Entertainment Inc. System and method of optimizing graphics processing
US7450120B1 (en) * 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US20050195186A1 (en) * 2004-03-02 2005-09-08 Ati Technologies Inc. Method and apparatus for object based visibility culling
JP4327175B2 (ja) 2005-07-12 2009-09-09 株式会社ソニー・コンピュータエンタテインメント マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法
US7752427B2 (en) * 2005-12-09 2010-07-06 Atmel Corporation Stack underflow debug with sticky base
GB2442266B (en) * 2006-09-29 2008-10-22 Imagination Tech Ltd Improvements in memory management for systems for generating 3-dimensional computer images
JP5439236B2 (ja) * 2010-03-12 2014-03-12 株式会社日立製作所 計算機システムおよびアプリケーションプログラムの実行方法
KR101993835B1 (ko) * 2013-02-25 2019-06-27 삼성전자주식회사 스택 관리를 위한 방법 및 장치
EP3579219B1 (fr) * 2018-06-05 2022-03-16 IMEC vzw Distribution de données pour projection holographique
CN113760394B (zh) * 2020-06-03 2022-05-13 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562435A (en) * 1982-09-29 1985-12-31 Texas Instruments Incorporated Video display system using serial/parallel access memories

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439762A (en) * 1981-12-28 1984-03-27 Beckman Instruments, Inc. Graphics memory expansion system
SE448789B (sv) * 1983-03-29 1987-03-16 Ericsson Telefon Ab L M Anordning for att i ett datorstyrt presentationssystem generera bilder i raster pa en bildskerm
JPS6079477A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 3次元物体認識表示方式
US4644495A (en) * 1984-01-04 1987-02-17 Activision, Inc. Video memory system
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
US4777651A (en) * 1984-06-25 1988-10-11 Tektronix, Inc. Method of pixel to vector conversion in an automatic picture coding system
US4660029A (en) * 1984-07-06 1987-04-21 Tektronix, Inc. Method of providing raster information for a graphics display employing linked lists
US4673930A (en) * 1985-02-08 1987-06-16 Motorola, Inc. Improved memory control for a scanning CRT visual display system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562435A (en) * 1982-09-29 1985-12-31 Texas Instruments Incorporated Video display system using serial/parallel access memories

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
COMPUTERS AND GRAPHICS. vol. 8, no. 2, 1984, OXFORD GB R. JOSHI ET AL.: 'MULTILEVEL PICTURE SEGMENTATION IN THE GRAPHICS SYSTEM - GRASP' *
IEEE INT. CONFERENCE ON CYBERNETICS AND SOCIETY Novembre 1986, TUCSON, ARIZONA pages 834 - 837; S. TATSUMI ET AL.: 'TULIP II: A FLEXIBLE MULTIPROCESSOR SYSTEM FOR IMAGE PROCESSING BY CONTROLLING THE VIDEO DATA FLOWS' *
IEEE WORKSHOP ON COMPUTER ARCHITECTURE 20 Décembre 1985, MIAMI BEACH, FLORIDA pages 154 - 161; SAKAUCHI M. ET AL.: 'THE AI-MUDAMS: THE DRAWING PROCESSOR DASED ON THE MULTIDIMENSIONAL PATTERN DATA STRUCTURE' *

Also Published As

Publication number Publication date
GB8721639D0 (en) 1987-10-21
GB8706239D0 (en) 1987-04-23
GB2201568B (en) 1990-02-07
DE3708023A1 (de) 1987-10-15
JPS62271066A (ja) 1987-11-25
US4967375A (en) 1990-10-30
GB2201568A (en) 1988-09-01

Similar Documents

Publication Publication Date Title
FR2613100A1 (fr) Processeur graphique perfectionne
US4862392A (en) Geometry processor for graphics display system
CN110147231B (zh) 组合特效生成方法、装置及存储介质
CN110827388A (zh) 硬件中树遍历机制的前进和可编程超时的方法
EP1387287B1 (fr) Appareil de traitement d&#39;image et méthode de traitement d&#39;image
FR2594242A1 (fr) Procede et appareil d&#39;acces direct en memoire
Page Reconfigurable processor architectures
US7333108B2 (en) Entertainment apparatus, object display device, object display method, recording medium and character display method
CN104951358B (zh) 基于优先级的上下文抢占
JP2021099367A (ja) 仮想、拡張、および複合現実システムのための深度感知技法
CN109816773A (zh) 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
JP2000113177A5 (fr)
CN101784980B (zh) 遥控操作装置及遥控操作方法
FR2542470A1 (fr) Systeme de machine a calculer a multiprocesseur pour convertir des elements-objets definis dans une structure de donnees hierarchique en une representation visuelle coloree
FR2492617A1 (fr) Systeme de traitement d&#39;images video
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN109690499A (zh) 使用模式适配器的用于图像和视觉处理块的数据同步
CN112288619A (zh) 用于在渲染图形时预加载纹理的技术
CN110020300A (zh) 一种浏览器页面合成方法及终端
CN107172136B (zh) 体素数据的同步方法和装置
FR2466808A1 (fr) Systeme pour controler la duree de l&#39;intervalle de temps entre blocs dans un systeme de communication calculateur a calculateur
CN111161398A (zh) 一种图像生成方法、装置、设备及存储介质
Ullner Parallel machines for computer graphics
CN106502407A (zh) 一种数据处理方法及其相关设备
CN102880470B (zh) 一种三维游戏引擎内核结构