-
Die
Erfindung betrifft Informationsverarbeitungsgeräte und Informationsverarbeitungsverfahren.
Die Erfindung bezieht sich insbesondere auf eine Informationsverarbeitung,
bei der die Reihenfolge und die Priorität eines Datentransfers gesteuert
wird.
-
Die
Leistung von Heim-Unterhaltungssystemen und Personalcomputern wurde
durch die höheren
Frequenzen der Verarbeitungs-LSIs (large scale integrated circuits)
und durch deren größere Schaltungsintegration
verbessert. Um die Verarbeitungsleistung der Systeme weiter zu steigern,
werden mehrere Verarbeitungsvorrichtungen, wie ein Graphikprozessor
und ein Bildzeichnungsprozessor, in einer einzigen LSI integriert,
um ein System zu implementieren, das eine parallele Verarbeitung
ausführen
kann. Mit einer einzigen derartigen LSI bleibt jedoch die Aufgabe,
die Speicherkosten zu reduzieren. So wird als einer der möglichen
Wege zur Reduzierung der Speicherkosten ein Speicher von den Verarbeitungsvorrichtungen
gemeinsam genutzt. Eine Konfiguration, in der ein Speicher von den
Verarbeitungsvorrichtungen gemeinsam genutzt wird, wird als UMA
(Unified Memory Architecture) bezeichnet.
-
US-A-5
584 011 beschreibt ein dreidimensionales graphisches Anzeigesystem,
in welchem für die
gemeinsame Nutzung ein gemeinsam genutzter Bus und ein gemeinsam
genutzter Speicher zwischen mehreren Verarbeitungselementen vorgesehen
sind.
-
Im
Vergleich zu den größer gewordenen
Betriebsfrequenzen der Verarbeitungs-LSIs und ihrer größeren Schaltungsintegration
hat sich die Speicherkapazität
eines allgemeinen Speichers gegenüber herkömmlichen Speichern, soweit
man von gleichen Kosten ausgeht, nicht so sehr vergrößert, so daß das Problem
auftritt, daß die
Speicherkapazität des
Speichers konstant bleibt, ein Problem, das bei der Leistungsverbesserung
noch zu lösen
bleibt.
-
Außerdem besteht
auch in einer Architektur, wie bei der UMA, in der ein Speicher
von mehreren Prozessoren gemeinsam benutzt wird, das Problem, daß die Geschwindigkeit
des Zugriffs auf den Speicher geringer wird, ein Problem, das bei
der Leistungsverbesserung noch zu lösen bleibt.
-
Im
Hinblick auf die oben beschriebenen Probleme ist es ein Ziel zumindest
eines bevorzugten Ausführungsbeispiels
der vorliegenden Erfindung, ein Informationsverarbeitungsgerät und ein
Informationsverarbeitungsverfahren zur Verfügung zu stellen, die es ermöglichen, Daten
effizient zu verarbeiten, ohne daß eine exzessive Speicherkapazität des Speichers
erforderlich ist, indem in die Daten selbst eine Steuerinstruktion
eingebettet wird.
-
Nach
einem ersten Aspekt der Erfindung ist ein Informationsverarbeitungsgerät vorgesehen,
bei dem
ein Bus und ein Speicher von einer Mehrzahl von Verarbeitungseinheiten
auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Grafikverarbeitung
parallel auszuführen,
wobei
das Informationsverarbeitungsgerät
mit einer Listengeneratoreinrichtung ausgestattet ist, um ein Liste
zu erzeugen, die Daten für
die genannte dreidimensionale Grafikverarbeitung enthält, die
zu den Verarbeitungseinheiten übertragen
werden sollen, sowie einen Befehl zum Steuern der Übertragung
der Daten zu den Verarbeitungseinheiten.
-
Nach
einem Ausführungsbeispiel
der Erfindung ist ein Informationsverarbeitungsgerät vorgesehen,
bei dem
ein Bus und ein Speicher von einer Mehrzahl von Verarbeitungseinheiten
auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Graphikverarbeitung
parallel auszuführen,
und
der Speicher zur Speicherung einer Liste benutzt wird, die Daten
für die
dreidimensionale Graphikverarbeitung enthält, die zu den Verarbeitungseinheiten zu übertragen
sind, sowie eine Instruktion zur Steuerung der Übertragungen der Daten zu den
Verarbeitungseinheiten.
-
Nach
einem Ausführungsbeispiel
der Erfindung ist ein Informationsverarbeitungsgerät vorgesehen,
bei dem
ein Bus und ein Speicher von einer Mehrzahl von Verarbeitungseinheiten
auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Graphikverarbeitung
parallel auszuführen,
wobei
das Informationsverarbeitungsgerät
mit einer Datenübertragungseinrichtung
ausgestattet ist, die zum Auslesen einer Liste dient, die Daten
für die
dreidimensionale Graphikverarbeitung enthält, die zu den Verarbeitungseinheiten
zu übertragen
sind, sowie eine Instruktion für
die Steuerung der Übertragungen
der genannten Daten von dem Speicher zu den Verarbeitungseinheiten,
sowie zum Übertragen der
genannten Daten zu den Verarbeitungseinheiten nach Maßgab der
genannten Instruktion.
-
Nach
einem Ausführungsbeispiel
der Erfindung ist ein Informationsverarbeitungsgerät vorgesehen,
bei dem
ein Bus und ein Speicher von einer Mehrzahl von Verarbeitungseinheiten
auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Graphikverarbeitung
parallel auszuführen,
das
Informationsverarbeitungsgerät
mit einer Listengeneratoreinrichtung ausgestattet ist, die zum Erzeugen
einer Liste benutzt wird, die zu den Verarbeitungseinheiten zu übertragende
Daten für
die dreidimensionale Graphikverarbeitung sowie eine Instruktion
für die
Steuerung der Datenübertragungen
zu den Verarbeitungseinheiten enthält, und die für die Speicherung
der Liste in den Speicher benutzt wird,
und eine Datenübertragungseinrichtung
vorgesehen ist, die zum Auslesen der Liste aus dem Speicher benutzt
wird sowie zum Übertragen
der auf der Liste vorhandenen Daten zu den Verarbeitungseinheiten nach
Maßgabe
der in der Liste enthaltenen Instruktion.
-
Nach
einem zweiten Aspekt der Erfindung ist ein Informationsverarbeitungsverfahren
vorgesehen, bei dem
ein Bus und ein Speicher von einer Mehrzahl
von Verarbeitungseinheiten auf Zeitmultiplexbasis gemeinsam genutzt
werden, um eine dreidimensionale Graphikverarbeitung parallel auszuführen,
wobei
das Informationsverarbeitungsverfahren den Verfahrensschritt umfaßt:
-
Erzeugen
einer Liste, die Daten für
die genannte dreidimensionale Grafikverarbeitung enthält, die
zu den Verarbeitungseinheiten übertragen
werden sollen, sowie einen Befehl zum Steuern der Übertragung
der Daten zu den Verarbeitungseinheiten.
-
Die
Erfindung wird nun beispielhaft beschrieben, wobei auf die anliegenden
Zeichnungen Bezug genommen wird, in denen gleiche Teile durchgehend mit
gleichen Bezugszeichen versehen sind.
-
1 zeigt eine Aufsicht auf
ein typisches Heim-Unterhaltungssystem, bei dem ein Informationsverarbeitungsgerät gemäß der Erfindung
angewendet werden kann,
-
2 zeigt eine Vorderansicht
des Heim-Unterhaltungssystems von 1,
-
3 zeigt eine Seitenansicht
des Heim-Unterhaltungssystems von 1,
-
4 zeigt eine Aufsicht auf
eine typische CD-ROM, von welcher Informationen in dem Heim-Unterhaltungssystem
von 1 wiedergegeben
werden,
-
5 zeigt ein Blockdiagramm
für eine
typische innere elektrische Konfiguration des Heim-Unterhaltungssystems
von 1,
-
6 zeigt ein detailliertes
Blockdiagramm, aus dem die Konfiguration einer in 5 dargestellten Haupt-DMAC, einer Haupt-CPU,
des Hauptspeichers, einer zweiten Vektorverarbeitungsmaschine (VPE1)
und einer GPU hervorgeht,
-
7A und 7B zeigen Diagramme einer Prozedur für die Verarbeitung
von Anzeigelisten, die von mehreren Prozessoren erzeugt werden,
-
8 zeigt ein Blockdiagramm
einer anderen typischen Konfiguration des Heim-Unterhaltungssystems,
in welchem drei Prozessoren die GPU steuern,
-
9 zeigt ein Diagramm eines
typischen Formats einer Meta-Instruktion,
-
10 zeigt ein Diagramm zur
Erläuterung einer
Prozedur zur Übertragung
von Daten nach Maßgabe
von Meta-Instruktionen,
-
11 zeigt ein Diagramm zur
Erläuterung einer
anderen Prozedur zur Übertragung
von Daten nach Maßgabe
von Meta-Instruktionen,
-
12 zeigt ein Diagramm zur
Erläuterung einer
weiteren Prozedur zur Übertragung
von Daten nach Maßgabe
von Meta-Instruktionen,
-
13 zeigt ein Diagramm zur
Erläuterung einer
Prozedur zur Übertragung
von Daten nach Maßgabe
einer Anzeigeliste,
-
14 zeigt ein Diagramm zur
Erläuterung einer
Verzögerungssteuerung.
-
1 bis 3 zeigen schematische Darstellungen eines
typischen Heim-Unterhaltungssystem, in dem ein Informationsverarbeitungsgerät angewendet werden
kann, in dem die vorliegende Erfindung verkörpert ist. Das System umfaßt, wie
dargestellt, eine Haupteinheit 2 des Unterhaltungssystems
zusätzlich zu
einer Bedienungseinheit 17 und einer Aufzeichnungseinheit 18,
die mit der Haupteinheit 2 des Unterhaltungssystems verbunden
werden können.
-
Die
Haupteinheit 2 des Unterhaltungssystems hat, wie in 1 bis 3 dargestellt, eine im wesentlichen quaderförmige Gestalt.
Die Haupteinheit 2 des Unterhaltungssystems besitzt eine
in ihrem Zentrum angeordnete Plattenlade-Untereinheit 3 zum Laden
einer CD-ROM (Compakt-Disk-Nurlesespeicher) 40, ferner
einen in einer geeigneten Position an der Haupteinheit 2 des
Unterhaltungssystems angeordneten Rücksetzschalter 4,
der von dem Benutzer zum beliebigen Rücksetzen einer laufenden Anwendung
benutzt werden kann, einen Stromversorgungsschalter 5,
der von dem Benutzer zum Ein- und Ausschalten einer Stromversorgung
benutzt werden kann, einen Plattenbetätigungsschalter 6,
der von dem Benutzer benutzt werden kann, um eine Platte in der
Plattenlade-Untereinheit 3 zu laden, sowie Verbinder 7A und 7B auf
der rechten und linken Seite, die der Benutzer dazu benutzen kann,
die Haupteinheit 2 des Unterhaltungssystems mit der Bedienungseinheit 17 zu
verbinden, die zur Durchführung von
Operationen verwendet wird, während
eine Anwendung läuft,
bzw. mit einer Aufzeichnungseinheit 38, um die Einstellung
verschiedener Informationsarten der laufenden Anwendung und dgl.
aufzuzeichnen. Es ist zu beachten, daß die CD-ROM eine Art von optischer
Platte ist, wie die in 4 dargestellte Platte.
Die CD-ROM ist eine Platte, die als Aufzeichnungsmedium für eine laufende
Anwendung benutzt wird.
-
Wie 2 und 3 zeigen, ist jeder der Verbinder 7A und 7B in
zwei Ebenen ausgeführt.
In der oberen Ebene jedes Verbinders 7A und 7B ist
ein Aufzeichnungseinsatzteil 8 für die Ver bindung der Haupteinheit 2 des
Unterhaltungssystems mit der Aufzeichnungseinheit 38 vorgesehen.
In der unteren Ebene jedes der Verbinder 7A und 7B ist
hingegen ein Verbinderstifteinsatzteil 12 für die Verbindung
der Haupteinheit 2 des Unterhaltungssystems mit der Bedienungseinheit 17 vorgesehen.
-
Der
Aufzeichnungseinsatzteil 8 besitzt eine horizontale langgestreckte,
rechteckige Einführungsöffnung und
einen Speicheranschluß,
in den die Aufzeichnungseinheit 38 eingesetzt wird. Der
Speicheranschluß ist
innerhalb der Öffnung
angeordnet und in der Zeichnungsfigur nicht dargestellt. Wenn die
Aufzeichnungseinheit 38 nicht mit der Haupteinheit 2 des Unterhaltungssystems
verbunden ist, wird der Aufzeichnungseinsatzteil 8 von
einem Verschlußteil 9 abgedeckt,
um den Speicheranschluß gegen
Staub und dgl. zu schützen,
wie dies in 2 dargestellt
ist. Die Aufzeichnungseinheit 38 enthält ein elektrisch programmierbares
ROM, in welchem die Haupt-CPU 44 Daten der Anwendungssoftware
aufzeichnet.
-
Wenn
die Aufzeichnungseinheit 38 an der Haupteinheit 2 des
Unterhaltungssystems angebracht wird, drückt der Benutzer das Verschlußteil 9 mit
dem Ende der Aufzeichnungseinheit 38 den Aufzeichnungseinsatzteil 8 hinein
und führt
dann die Aufzeichnungseinheit 38 weiter in die Einführungsöffnung hinein,
bis die Aufzeichnungseinheit 38 mit dem Speicheranschluß verbunden
ist.
-
Wie 2 zeigt, umfaßt der Verbinderstifteinsatzteil 12 eine
horizontale langgestreckte, rechteckige Einführungsöffnung und einen Verbinderanschluß 12A zum
Verbinden des Verbindereinsatzteils 12 mit einem Verbinderanschlußteil 26 an
der Bedienungseinheit 17.
-
Wie 1 zeigt, hat die Bedienungseinheit 17 eine
solche Struktur, daß der
Benutzer sie mit beiden Händen
halten und einfassen kann und mit den fünf Fingern jeder Hand frei
bewegen kann. Die Bedienungseinheit 17 umfaßt Bedienungs-Untereinheiten 18 und 19 auf
der rechten und linken Seite, die symmetrisch angeordnet sind, ferner
einen Auswahlschalter 22 und einen Startschalter 23,
die zwischen den Bedienungs-Untereinheiten 18 und 19 liegen, ferner
Bedienungs-Untereinheiten 24 und 25, die vor den
Bedienungs-Untereinheiten 18 bzw. 19 liegen, sowie
einen Verbinder 26 und ein Kabel 27 für den Anschluß der Bedienungseinheit 17 an
der Haupteinheit 2 des Unterhaltungssystems.
-
5 zeigt ein Diagramm, in
dem eine typische innere Schaltungskonfiguration der Haupteinheit 2 des
Unterhaltungssystems dargestellt ist. Wie aus dieser Figur hervorgeht,
besitzt die Haupteinheit 2 des Unterhaltungssystems einen
Hauptbus 21 und einen Sub-Bus 42, die durch ein
Sub-Bus-Interface (SBUSIF) 43 miteinander verbunden sind.
-
Mit
dem Hauptbus 41 verbunden sind eine Haupt-CPU (zentrale
Verarbeitungseinheit) 44, (eine Listengeneratoreinrichtung),
die durch Komponenten, wie einen Mikroprozessor und eine VPE0 (eine erste
Vektorverarbeitungsmaschine) 71 implementiert ist, ferner
ein Hauptspeicher 45, der durch ein RAM (Speicher mit wahlfreiem
Zugriff) implementiert ist, eine Haupt-DMAC (main direct memory
access controller [Hauptsteuerung für den direkten Speicherzugriff]) 46 (eine
Datenübertragungseinrichtung),
einen MDEC (MPEG-(Moving Picture Experts Group)-Dekodierer) 47,
eine VPE1 (eine zweite Vektorverarbeitungsmaschine) 48.
Außerdem
ist eine GPU (graphische Verarbeitungseinheit) 49 ebenfalls über ein
GPUIF (Interface für
graphische Verarbeitungseinheit) 72 mit dem Hauptbus 41 verbunden.
In der GPU 49 ist eine CRTC (CRT-Steuerung [Steuerung für Kathodenstrahlröhre]) 84 vorgesehen.
Außerdem
ist ein mit der GPU 49 verbundener Vollbildspeicher 58 vorgesehen.
-
Auf
der anderen Seite sind mit dem Sub-Bus 42 verbunden eine
Sub-CPU 50, die durch Komponenten, wie einen Mikroprozessor
implementiert ist, ein Sub-Speicher 51, der durch ein RAM
implementiert ist, eine Sub-DMAC 52, ein ROM 53 zur
Speicherung von Programmen, wie eines Betriebssystems, eine SPU
(sound processing unit [Tonverarbeitungseinheit]) 54, eine
Kommunikations-Steuereinheit (ATM) 55, ein CD-ROM-Laufwerk 56,
das auch als die oben beschriebene Plattenlade-Untereinheit 3 dient,
und eine Eingangseinheit 57. Der Verbinderanschluß 12A der
Eingangseinheit 57 ist mit dem Verbinderanschlußteil 26 der
Bedienungseinheit 17 verbunden, wie dies oben beschrieben
wurde.
-
Das
SBUSIF 43, das sowohl mit dem Hauptbus 41 als
auch mit dem Sub-Bus 42 verbunden ist, transportiert Daten,
die von dem Hauptbus 41 kommen, zu dem Sub-Bus 42 und
umgekehrt Daten, die von dem Sub-Bus 42 kommen, zu dem
Hauptbus 41.
-
Wenn
die Haupteinheit 2 des Unterhaltungssystems aktiviert wird,
gibt die Haupt-CPU 44 Instruktionen eines Aktivierungsprogramms
aus dem mit dem Sub-Bus 42 verbundenen ROM 53 über das SBUSIF 43 aus
und führt
die Instruktionen des Aktivierungsprogramms aus, um das Betriebssystem
zu aktivieren.
-
Außerdem liefert
die Haupt-CPU 44 an das CD-ROM-Laufwerk 56 eine
Anforderung zum Auslesen von Daten, um von der in das CD-ROM-Laufwerk 56 geladenen
CD-ROM 40 Daten und ein Anwendungsprogramm zu akquirieren
und das Anwendungsprogramm in den Hauptspeicher 45 zu laden.
-
Weiterhin
erzeugt die Haupt-CPU 44 in Verbindung mit der ersten Vektorverarbeitungsmaschine (VPE0) 71 aus
Daten eines dreidimensionalen Objekts, das eine Mehrzahl von Grundfiguren,
wie Polygonen, umfaßt,
die aus der CD-ROM 40 ausgelesen werden, Daten für die Non-Type-Verarbeitung,
d. h. eine Polygon-Definitions-Information. Ein Beispiel für die Daten eines
dreidimensionalen Objekts sind die Koordinatenwerte von Eckpunkten
oder repräsentativen
Punkten eines Polygons. Die VPE0 (die erste Vektorverarbeitungsmaschine) 71 besitzt
mehrere Verarbeitungselemente für
die Verarbeitung von realen Fließkommazahlen und ist so in
der Lage, Teile von Fließkommaverarbeitungen
parallel auszuführen.
-
Im
Einzelnen führen
die Haupt-CPU 44 und die VPE0 (die erste Vektorverarbeitungsmaschine) 71 eine
geometrische Verarbeitung durch, die detaillierte Operationen in
Polygoneinheiten nach sich zieht. Ein Beispiel für eine solche Verarbeitung
ist die Erzeugung von Daten eines Polygons, die den Schwingungszustand
eines vom Wind bewegten Blatts an einem Baum repräsentieren,
oder der Zustand von Regentropfen, die auf die Windschutzscheibe
eines Wagens auftreffen. Die durch die Verarbeitung ermittelte Eckpunkt-Information
und die Polygon-Definitions-Information, wie eine Information über den
Schattierungsmodus, werden dem Hauptspeicher 45 über den
Hauptbus 41 als Pakete zugeführt.
-
Die
Polygon-Definitions-Information umfaßt eine Information zum Einstellen
des Zeichnungsbereichs und eine Polygon-Information. Die Information zum
Einstellen des Zeichnungsbereichs enthält Offset-Koordinaten in dem
Vollbildspeicher 58 eines Zeichnungsbereichs, d. h. eine
Vollbildspeicheradresse des Zeichnungsbereichs, und Koordinaten
eines Zeichnungsbegrenzungsbereichs zum Löschen einer Operation zum Zeichnen
eines Zeichnungsbereichs, der durch ein Polygon mit außerhalb
des Zeichnungsbereichs liegenden Koordinaten angezeigt wird. Auf
der anderen Seite enthält
die Polygon-Information eine Polygon-Attribut-Information und eine
Eckpunkt-Information. Die Polygon-Attribut-Information ist hier
eine Information, die für
die Spezifizierung eines Schattierungsmodus, eines ALPHA-Mischungsmodus
und eines Texturabbildungsmodus benutzt werden. Auf der anderen
Seite ist die Eckpunkt-Information die Information über Koordinaten
in einem Eckpunkt-Zeichnungsbereich, über Koordinaten
in einem Eckpunkt-Texturbereich und über die Farbe eines Eckpunkts,
um nur einige zu erwähnen.
-
Ebenso
wie die erste Vektorverarbeitungsmaschine (VPE0) 71 besitzt
auch die zweite Vektorverarbeitungsmaschine (VPE1) 48 mehrere
Verarbeitungselemente für
die Verarbeitung von realen Fließkommazahlen und kann so Teile
der Fließkommaverarbeitung
parallel auszuführen.
Die VPE1 48 kann ein Bild nach Maßgabe von Operationen erzeugen,
die mit Hilfe der Bedienungseinheit 17 und von Matrixoperationen
durchgeführt
werden. Das heißt, die
zweite Vektorverarbeitungsmaschine (VPE1) 48 erzeugt Daten
(Polygon-Definitions-Information) für die Typ-Verarbeitung, d.
h. für
eine Verarbeitung, die vergleichsweise einfach genug ist, um durch
die Ausführung
eines Programms in der VPE1 48 durchgeführt zu werden. Beispiele für eine solche
von der zweiten Vektorverarbeitungsmaschine (VPE1) 48 durchgeführte Verarbeitung
sind die radioskopische Umwandlung für ein Objekt, das eine einfache
Form hat, wie ein Gebäude
oder ein Wagen, ferner die Berechnung einer parallelen Licht quelle
und die Erzeugung einer zweidimensionalen gekrümmten Fläche. Die von der VPE1 48 erzeugte
Polygon-Definitions-Information wird dann dem GPUIF 72 zugeführt.
-
Unter
dem Steuereinfluß der
Haupt-CPU 44 empfängt
das GPUIF 72 über
den Hauptbus 41 auch eine Polygon-Definitions-Information
aus dem Hauptspeicher 45. Zu diesem Zweck justiert das
GPUIF 72 die Zeitlage der Verarbeitung so, daß eine Kollision der
von der Haupt-CPU 44 ausgehenden
Polygon-Definitions-Information mit der Polygon-Definitions-Information
verhindert wird, die ihm von der zweiten Vektorverarbeitungsmaschine 48 zugeführt wird
und über
die GPU 49 zu ihm gelangt.
-
Die
GPU 49 zeichnet in dem Vollbildspeicher 58 ein
Bild, das ein dreidimensionales Objekt ausdrückt, wobei ein Polygon benutzt
wird, das auf der Polygon-Definitions-Information basiert, die ihm durch
das GPUIF 72 zugeführt
wird. Ein Bild, das unter Verwendung eines Polygons gezeichnet wird,
um ein dreidimensionales Objekt darzustellen, wird im folgenden
als Polygonbild bezeichnet. Da die GPU 49 den Vollbildspeicher 58 auch
als Texturspeicher benutzen kann, kann die GPU 49 eine
Texturabbildungsverarbeitung durchführen, um in dem Hauptspeicher 58 auf
einem Polygon ein Pixelbild als Textur aufzubringen.
-
Die
Haupt-DMAC 46 dient unter anderem zur Steuerung von DMA-Übertragungen
zu und von einer Vielzahl von Schaltungen, die mit dem Hauptbus 41 verbunden
sind. Außerdem
ist die Haupt-DMAC 46, in Abhängigkeit von dem Zustand des
SPUSIF 43, auch in der Lage, neben anderen Operationen auch
DMA-Übertragungen
zu und von einer Vielzahl von Schaltungen zu steuern, die mit dem
Sub-Bus 42 verbunden sind. Die MDEC 47 arbeitet
konkurrierend mit der Haupt-CPU 44 und dekomprimiert Daten,
die nach einem MPEG-(Moving Picture Experts Group)-System oder einem
JPEG-(Joint Photographic Experts Group)-System komprimiert wurden.
-
Die
Sub-CPU 50 führt
verschiedene Arten von Verarbeitungen durch, indem sie Programme ausführt, die
in dem ROM 53 gespeichert sind. Die Sub-DMAC 52 steuert
unter anderem DMA-Übertragungen
zu und von einer Vielzahl von mit dem Sub-Bus 42 verbundenen
Schaltungen nur dann, wenn das SBUSIF 43 von dem Haupt-Bus 41 und dem
Sub-Bus 42 getrennt ist.
-
Die
SPU 54 liest Tondaten aus einem Tonspeicher 59 aus
und gibt die Tondaten nach Maßgabe
eines aus der Sub-CPU 50 oder der Sub-DMAC 52 empfangenen
Tonbefehls als Audiosignal aus. Das ausgegebene Audiosignal wird
dann über
eine Verstärkerschaltung 201 an
einen Lautsprecher 202 ausgegeben und schließlich von
dem Lautsprecher 202 als Ton abgestrahlt.
-
Die
Kommunikations-Steuereinheit (ATM) 55 ist mit einer öffentlichen
Kommunikationsleitung oder dgl. verbunden und dient zum Senden und
Empfangen von Daten über
die Leitung.
-
Die
Eingangseinheit 57 umfaßt den Verbinderanschluß 12A zum
Verbinden der Bedienungseinheit 17 mit der Haupteinheit 2 des
Unterhaltungssystems, eine Videoeingangsschaltung 82 zur
Zuführung
von Videodaten, die von anderen in der Figur nicht dargestellten
Geräten
stammen, zu der Haupteinheit 2 des Unterhaltungssystems
sowie eine Audioeingangsschaltung 83 zur Zuführung von
Audiodaten, die von den anderen Geräten kommen, zu der Haupteinheit 2 des
Unterhaltungssystems.
-
6 zeigt ein Blockdiagramm,
aus dem die detaillierte Konfiguration der Haupt-DMAC 46,
der Haupt-CPU 44, des Hauptspeichers 45 der zweiten Vektorverarbeitungsmaschine
(VPE1) 48 und der GPU 49 von 5 hervorgeht.
-
Wie 6 zeigt, umfaßt die Haupt-CPU 44 einen
CPU-Kern (CORE) 94, einen Befehls-Cache-Speicher (I$) 95, ein
Zwischenregister-RAM (SPR) 96, einen Daten-Cache-Speicher
(D$) 97 und die erste Vektorverarbeitungsmaschine (VPE0) 71. Der
CPU-Kern 94 führt
vorbestimmte Instruktionen aus. per Befehls-Cache-Speicher 95 dient
zur temporären
Speicherung von Instruktionen, die dem CPU-Kern 94 zugeführt werden
sollen. Das Zwischenregister-RAM 96 dient zur Speicherung
der Resultate der von dem CPU-Kern 94 durchgeführten Verarbeitung.
Der Daten-Cache-Speicher 97 schließlich dient zur temporären Speicherung
von Daten, die bei der Durchführung
der Verarbeitung in dem CPU-Kern 94 benutzt werden sollen.
-
Die
erste Vektorverarbeitungsmaschine (VPE0) 71 umfaßt einen
Mikrospeicher (microMEM) 98, eine FMAC-(Floating Multiple
Adder Calculation)-Einheit 99, einen Teiler (DIV) 100,
eine als VU-MEM bezeichnete Funktionseinheit 101 und einen
Paket-Expandierer (PKE) 102. Der VU-MEM 101 enthält eine
Fließkomma-Vektorprozessoreinheit (VU)
und einen eingebetteten Speicher (MEM). Die Fließkomma-Vektorprozessoreinheit
führt 64-Bit-Mikrobefehle
eines Mikroprogramms aus, die in dem weiter unten beschriebenen
Mikrospeicher 98 gespeichert sind, um Daten zu verarbeiten,
die in internen Registern der VU und dem eingebetteten Speicher
gespeichert sind.
-
Der
PKE 102 expandiert einen Mikrocode, der ihm nach Maßgabe einer
von einer weiter unten beschriebenen Haupt-DMAC 109 ausgeführten Steuerung
zugeführt
wird, zu Mikroinstruktionen, die als Mikroprogramm in dem Mikrospeicher 98 zu
speichern und von der VU auszuführen
sind, und expandiert ein Paket von paketierten Daten, die ihm ebenfalls
nach Maßgabe
der von der Haupt-DMAC 109 ausgeführten Steuerung zugeführt werden,
wobei das expandierte Paket in dem eingebetteten Speicher (MEM)
gespeichert wird, der in dem VU-MEM 101 benutzt wird. Die
FMAC-(Floating Multiple Adder Calculationi-Einheit 99 führt eine
Fließkommaverarbeitung
durch, während
der Teiler (DIV) 100 eine Division ausführt. Wie oben beschrieben wurde,
ist die erste Vektorverarbeitungsmaschine (VPE0) 71 in
der Haupt-CPU 44 eingebettet, die in Verbindung mit der VPE0 71 eine
Non-Type-Verarbeitung ausführt.
-
Ähnlich wie
die erste Vektorverarbeitungsmaschine (VPE0) 71 umfaßt auch
die zweite Vektorverarbeitungsmaschine (VPE1) 48 einen
Mikrospeicher (microMEM) 103, eine FMAC(Floating Multiple Adder
Calculation)-Einheit 104, einen Teiler (DIV) 106,
eine als VU-MEM bezeichnete Funktionseinheit 107 und einen
Paket-Expandierer (PKE) 108. Der VU-MEM 107 enthält eine
Fließkomma-Vektorprozessoreinheit
(VU) und einen eingebetteten Speicher (MEM). Die Fließkomma-Vektorprozessoreinheit führt 64-Bit-Mikrobefehle
eines Mikroprogramms aus, das in dem weiter unten beschriebenen
Mikrospeicher 103 gespeichert ist, um Daten zu verarbeiten, die
in internen Registern der VU und dem eingebetteten Speicher gespeichert
sind.
-
Der
PKE 108 expandiert einen Mikrocode, der ihm nach Maßgabe einer
von der Haupt-DMAC 46 ausgeführten Steuerung
zugeführt
wird, zu Mikrobefehlen, die als Mikroprogramm in dem Mikrospeicher 103 zu
speichern und von der VU auszuführen ist,
und expandiert ein Paket von paketierten Daten, die ihm ebenfalls
nach Maßgabe
der von der Haupt-DMAC 46 ausgeführten Steuerung
zugeführt werden,
wobei das expandierte Paket in dem in dem VU-MEM 107 verwendeten
eingebetteten Speicher (MEM) gespeichert wird. Die FMAC-(Floating
Multiple Adder Calculation)-Einheit 104 führt eine
Fließkommaverarbeitung
durch, während
der Teiler (DIV) 106 eine Division ausführt. Die zweite Vektorverarbeitungsmaschine 48 führt eine
Type-Verarbeitung an den Daten aus, die ihr von dem Hauptspeicher 45 zugeführt werden
und liefert die Ergebnisse der Verarbeitung über das GPUIF 72 an
die GPU 49.
-
Der
Hauptspeicher 45 dient zur Speicherung von Daten eines
dreidimensionalen Objekts und liefert die Daten, falls erforderlich,
an die erste Vektorverarbeitungsmaschine 71 und an die
zweite Vektorverarbeitungsmaschine 48. Eine Anzeigeliste,
die gemeinsam von der Haupt-CPU 44 und der ersten Vektorverarbeitungsmaschine
(VPE0) 71 erzeugt wird, wird temporär in einem in dem Hauptspeicher 45 eingebetteten
FIFO-Speicher (MFIFO) gespeichert, bevor sie über den Hauptbus 41 dem
GPUIF 72 zugeführt
wird. Der Grund, warum die Anzeigeliste temporär in dem FIFO-Speicher gespeichert
wird, besteht darin, daß die
Verarbeitungspriorität
der Haupt-CPU 44 und die Verarbeitungspriorität der ersten
Vektorverarbeitungsmaschine 71 niedriger sind als die Verarbeitungspriorität der zweiten
Vektor verarbeitungsmaschine 48, so daß die Anzeigeliste in dem FIFO-Speicher
gehalten werden muß,
bis die zweite Vektorverarbeitungsmaschine 48 in den Ruhezustand
eintritt.
-
Die
Haupt-CPU 44 und die erste Vektorverarbeitungsmaschine
(VPE0) 71 erzeugen außerdem gemeinsam
eine Matrix, die von der zweiten Vektorverarbeitungsmaschine 48 verarbeitet
werden soll, wobei diese Matrix in dem Hauptspeicher 45 gespeichert
wird. Die zweite Vektorverarbeitungsmaschine 48 erzeugt
dann unter Verwendung der Matrix eine Anzeigeliste.
-
Um
eine Anzeigeliste für
die Non-Type-Verarbeitung, die von der ersten Vektorverarbeitungsmaschine 71 über das
GPUIF 72 zugeführt
wird, und eine Anzeigeliste für
die Type-Verarbeitung,
die von der zweiten Vektorverarbeitungsmaschine 48 zugeführt wird,
zu verarbeiten, speichert die GPU 49 einen graphischen
Kontext (d. h. eine Einstellbedingung für das Zeichnen) unter anderem
eines Zeichnungs-Offsets und eines Begrenzungsbereichs, auf die
beim Zeichnen für
jede der Anzeigeliste Bezug genommen wird. Eine Notation CG0, die
in der folgenden Beschreibung benutzt wird, bezeichnet einen graphischen
Kontext für
die Non-Type-Verarbeitung, während
eine Notation CG1 einen graphischen Kontext für die Type-Verarbeitung bezeichnet,
wie dies weiter unten näher
beschrieben wird.
-
So
expandiert der PKE 102 beispielsweise, wie oben beschrieben
wurde, einen Mikrocode, der der ersten Vektorverarbeitungsmaschine 7i nach Maßgabe der
von der DMAC 109 ausgeführten
Steuerung von dem Hauptspeicher 45 über den Hauptbus 41 zugeführt wird,
in Mikrobefehle, die als Mikroprogramm in dem Mikrospeicher 98 zu
speichern und von der VU auszuführen
sind, und expandiert ein Paket von paketierten Daten, z. B. Daten
eines dreidimensionalen Objekts, die ihm ebenfalls nach Maßgabe der
von der DMAC 109 ausgeführten
Steuerung aus dem Hauptspeicher 45 über den Hauptbus 41 zugeführt werden,
wobei das expandierte Paket in dem in dem VU-MEM 101 verwendeten
eingebetteten Speicher (MEM) gespeichert wird. Die FMAC 99 und der
DIV 100 führen
dann an den Daten des dreidimensionalen Objekts Teile von Verarbeitungen,
wie Matrixverarbeitung, Koordinatentransformation und radioskopische
Umwandlung aus. Dabei wird in Verbindung mit dem CPU-Kern 94 auch
eine komplexe Verarbeitung durchgeführt. Das Ergebnis der Verarbeitung
ist typischerweise eine Anzeigeliste zum Zeichnen eines vom Wind
bewegten Blatts an einem Baum oder des Zustands von Regentropfen,
die auf die Windschutzscheibe eines Wagens auftreffen.
-
Eine
Anzeigeliste (komplexer Strom) zum Zeichnen eines auf diese Weise
erzeugten zweidimensionalen Objekts auf einem Bildschirm wird temporär über den
Hauptbus 41 in dem MFIFO des Hauptspeichers 45 gespeichert,
bevor sie schließlich dem
GPUIF 72 zugeführt
wird.
-
Auf
der anderen Seite expandiert der PKE 108, wie oben beschrieben,
einen Mikrocode, der der zweiten Vektorverarbeitungsmaschine 48 von
dem Hauptspeicher 45 nach Maßgabe der von der Haupt-DMAC 46 ausgeführten Steuerung über den Hauptbus 41 zugeführt wird,
zu Mikrobefehlen, die als Mikroprogramm in dem Mikrospeicher 103 zu speichern
und von der VU auszuführen
sind, und expandiert ein Paket von paketierten Daten, z. B. Daten eines
dreidimensionalen Objekts, die ebenfalls nach Maßgabe der von der Haupt-DMAC 46 ausgeführten Steuerung
von dem Hauptspeicher 45 über den Hauptbus 41 zugeführt werden,
wobei das expandierte Paket in dem in dem VU-MEM 107 verwendeten
eingebetteten Speicher (MEM) gespeichert wird. Die FMAC 104 und
der DIV 106 führen
dann an den Daten des dreidimensionalen Objekts Teile von Verarbeitungen,
wie Matrixverarbeitung, Koordinatentransformation und radioskopische
Umwandlung aus. Auf der Basis einer Matrix und eines graphischen
Kontextes, die von der Haupt-CPU 44 und der ersten Vektorverarbeitungsmaschine 71 gemeinsam erzeugt
und von dem Hauptspeicher 45 über den Hauptbus 41 der
zweiten Vektorverarbeitungsmaschine 48 zugeführt werden,
ist die Verarbeitung eine relativ einfache Type-Verarbeitung.
-
Eine
auf diese Weise erzeugte Anzeigeliste (einfacher Strom) zum Zeichnen
eines zweidimensionalen Objekts auf einem Bildschirm wird schließlich über den
Hauptbus 41 dem GPUIF 72 zugeführt. Die beiden Ströme, d. h.
der komplexe Strom und der einfache Strom, werden dann durch Arbitration
auf Zeitmultiplexbasis der GPU 49 zugeführt.
-
Die
GPU 49 führt
auf der Basis der Anzeigelisten, die ihr von dem GPUIF 72 zugeführt werden, eine
Zeichnungsverarbeitung durch und zeichnet Polygone in dem Vollbildspeicher 58.
Wenn die Anzeigeliste eine Anzeigeliste ist, die von der Haupt-CPU 44 und
der ersten Vektorverarbeitungsmaschine 71 in der Hauptspeichereinheit 45 gemeinsam
erzeugt und dann über
den Hauptbus 41 der GPU 49 zugeführt wird,
führt die
GPU 49 die Zeichnungsverarbeitung unter Verwendung des
oben erwähnten
graphischen Kontextes GC0 aus. Wenn die Anzeigeliste hingegen eine
Anzeigeliste ist, die von der zweiten Vektorverarbeitungsmaschine 48 erzeugt
wird, führt die
GPU 49 die Zeichnungsverarbeitung unter Verwendung des
oben erwähnten
graphischen Kontextes GC1 aus.
-
Ein
in dem Vollbildspeicher 58 gezeichnetes Polygon wird nach
Maßgabe
der von der CRTC 84 ausgeführten Steuerung in ein Ausgangsvideosignal für das Polygon
umgewandelt.
-
7 zeigt ein Diagramm, in
welchem das Timing dargestellt ist, mit dem die beiden Anzeigelisten
verarbeitet werden. Das Geometrie-Subsystem 0 in 7 entspricht der in 6 dargestellten zweiten Vektorverarbeitungsmaschine 48,
während
das Geometrie-Subsystem 1 der Haupt-CPU 44 und der ersten
Vektorverarbeitungsmaschine 71 entspricht. Ein Ren der-Subsystem
entspricht der GPU 49. Es ist zu beachten, daß der schraffierte
Bereich in der Figur anzeigt, daß eine durch einen Task-Namen
gekennzeichnete Task im Ruhezustand ist.
-
7A zeigt ein Diagramm einer
Verarbeitungsstruktur für
den Fall, daß nur
ein Prozessor, d. h. das Geometrie-Subsystem 0 existiert. In diesem Fall
erzeugt das Geometrie-Subsystem 0 eine Anzeigeliste (Liste #0-1)
und liefert die Liste an das Render-Subsystem. Dann fährt das
Geometrie-Subsystem 0 mit der Erzeugung von auf die Liste #0-1 folgenden
Listen fort, d. h. der Liste #0-2 und den nachfolgenden Anzeigelisten.
Das Fiender-System führt die
Zeichnungsverarbeitung nach Maßgabe
der Anzeigeliste (Liste #0-1) aus, die ihm von dem Geometrie-Subsystem
0 zugeführt
wird. Wenn das Geometrie-Subsystem 0 in dem Zeitpunkt, in dem das
Render-Subsystem die Zeichnungsverarbeitung entsprechend der Liste
#0-1 beendet, noch mit der Herstellung der nächsten Anzeigeliste (Liste
#0-2) befaßt
ist, tritt das Render-Subsystem in einen Ruhezustand ein und wartet
darauf, daß das
Geometrie-Subsystem 0 die Erzeugung der nächsten Anzeigeliste (Liste #0-2)
beendet und die Liste dem Render-Subsystem zuführt.
-
Wenn
das Geometrie-Subsystem 0, ganz ähnlich
wie oben beschrieben, in einem Zeitpunkt, in dem das Render-Subsystem
die Zeichnungsverarbeitung entsprechend der laufenden Anzeigeliste
beendet, die Verarbeitung zur Herstellung einer nächsten Anzeigeliste
noch nicht beendet hat, tritt das Render-Subsystem in einen Ruhezustand
ein und wartet, bis das Geometrie-Subsystem 0 die nächste Liste
an das Render-Subsystem liefert.
-
7B zeigt ein Diagramm einer
Verarbeitungsprozedur für
den Fall, daß zwei
Prozessoren, d. h. das Geometrie-Subsystem 0 und das Geometrie-Subsystem
1 existieren. In diesem Fall wird das Render-Subsystem in einen
Ruhezustand versetzt, während
das Geometrie-Subsystem 0 eine Anzeigeliste (Liste #0-1) erzeugt.
Zu diesem Zweck werden dem Render-Subsystem Daten zugeführt, die
mit einer von dem Geometrie-Subsystem 1 bereits erzeugten und in
dem Hauptspeicher 45 gespeicherten Anzeigeliste (Liste
#1-1) verbunden sind. Wenn das Render-Subsystem die erste von dem
Geometrie-Subsystem 1 erzeugte Anzeigeliste (Liste #1-1) empfängt, führt es die
Zeichnungsverarbeitung auf der Basis eines graphischen Kontextes
für das
Geometrie-Subsystem 1 aus, der an die erste Anzeigeliste (Liste
#1-1) angehängt
ist, die dem Render-System von dem Geometrie-Subsystem 1 zugeführt wird.
-
Wenn
das Geometrie-Subsystem 0 die Verarbeitung zur Erzeugung der ersten
Anzeigeliste (Liste #0-1) beendet, liefert das Geometrie-Subsystem
1 die nächste
Anzeigeliste (Liste #1-2)
an das Render-System. In diesem Zeitpunkt ist das Geometrie-Subsystem
1 gezwungen, den Betrieb aufrechtzuerhalten, um die nächste Anzeigeliste
(Liste #1-2) an das Render-System
zu liefern. Somit kann das Geometrie-Subsystem 0 nun die fertiggestellte
erste Anzeigeliste (Liste #0-1) an das Render-Subsystem liefern
und mit der Herstellung der nächsten
Anzeigeliste (Liste #0-2) beginnen. Wenn das Render-Subsystem die
erste Anzeigeliste (Liste #0-1) aus dem Geometrie-Subsystem 0 empfängt, führt es die
Zeichnungsverarbeitung auf der Basis der ersten Anzeigeliste (Liste
#0-1) aus.
-
Wenn
das Render-Subsystem die Zeichnungsverarbeitung auf der Basis der
ersten Anzeigeliste (Liste #0-1) beendet, ist das Geometrie-Subsystem
0 noch mit der Herstellung der nächsten
Anzeigeliste (Liste #0-2) befaßt.
Aus diesem Grund nimmt das Geometrie-Subsystem 1 den suspendierten
Betrieb wieder auf und liefert die nächste Anzeigeliste (Liste #1-2) an das Render-Subsystem.
Andernfalls tritt das Render-Subsystem in einen Ruhezustand ein.
Wenn das Render-Subsystem die von dem Geometrie-Subsystem 1 erzeugte
nächste
Anzeigeliste (Liste #1-2) empfängt,
beginnt es mit der Ausführung der
Zeichnungsverarbeitung auf der Basis der nächsten Anzeigeliste (Liste
#1-21.
-
Anschließend liefert
das Geometrie-Subsystem 1, ganz ähnlich
wie oben beschrieben, eine von ihm erzeugte Anzeigeliste nur dann,
wenn das Geometrie-Subsystem 0 noch mit der Herstellung einer Anzeigeliste
befaßt
ist, und setzt das Render-Subsystem in einen Ruhezustand. Infolgedessen
kann das Render-Subsystem Anzeigelisten, die von mehreren Prozessoren
erzeugt werden, effizient verarbeiten.
-
Um
die Verarbeitung für
die Koordinatentransformation schneller auszuführen, können in jeder von mehreren
Vektorverarbeitungsmaschinen z. B. ein Subprozessor oder ein Koordinatentransformations-Coprozessor
getrennt von der CPU (der oben erwähnten VU) vorgesehen sein,
die eine gemeinsame Zeichnungseinheit, d. h. die GPU 49,
gemeinsam benutzen und von denen jede Anzeigelisten an die GPU 49 ausgibt.
Durch die Verwendung eines solchen Subprozessors oder eines Coprozessors
ist die CPU (der Prozessor) in jeder Vektorverarbeitungsmaschine
nun in der Lage, häufiger
Anzeigelisten an die gemeinsam genutzte GPU 49 zu liefern.
Deshalb muß die
GPU 49 in kurzen Zeitintervallen von einem Prozessor auf
einen anderen umgeschaltet werden. Andernfalls entsteht in einem
lokalen Speicher, der für
jeden Prozessor vorgesehen ist, ein Überlauf. Aus diesem Grund ist
jedem Prozessor, d. h. dem Geometrie-Subsystem 0 und dem Geometrie-Subsystem
1, ein Prioritätsrang
zugeordnet, wie dies in 7B dargestellt
ist. Wenn von einem Master-Prozessor, d. h. einer CPU, die die höchste Priorität hat, oder
im Fall des in 6 dargestellten
Informationsverarbeitungsgeräts,
der in der zweiten Vektorverarbeitungsmaschine 48 verwendeten
CPU oder dem in 7 dargestellten
Geometrie-Subsystem 0, keine Anzeigeliste mehr an die GPU 49 zu übertragen
ist, wird das Recht, auf die GPU 49 zuzugreifen, an einen
Slave-Prozessor weitergereicht, d. h. eine CPU, die gegenüber der
Master-CPU 44 zweite Priorität hat, oder im Fall des in 6 dargestellten Informationsverarbeitungsgeräts an die
in der ersten Vektorverarbeitungsmaschine 71 verwendete CPU
(der VU) oder an das in 7 dargestellte
Geometrie-Subsystem 1.
-
Sobald
der Master-Prozessor die Verarbeitung zur Herstellung einer Anzeigeliste
beendet und für
die Übertragung
der Anzeigeliste zu der GPU 49 bereitsteht, wird der Slave-Prozessor
gezwungen, die Berechtigung zum Zugriff auf die GPU 49 an
den Master-Prozessor zurückzugeben,
selbst wenn noch eine Anzeigeliste fertigzustellen und von dem Slave-Prozessor
zu der GPU 49 zu übertragen
ist.
-
Im
allgemeinen ist der Master-Prozessor in der Lage, die Verarbeitung
mit hoher Geschwindigkeit auszuführen,
er besitzt jedoch einen lokalen Speicher mit relativ kleiner Speicherkapazität. Auf der
anderen Seite führt
ein Slave-Prozessor die Verarbeitung mit einer relativ niedrigen
Geschwindigkeit aus, er besitzt jedoch einen lokalen Speicher mit
einer relativ großen
Speicherkapazität.
-
Wie 8 zeigt, gibt es auch ein
Informationsverarbeitungsgerät,
in dem ein Prozessor 2 vorgesehen ist, der als Slave für einen
Slave-Prozessor 1 dient. In einem solchen Informationsverarbeitungsgerät benötigt ein
Prozessor mit besonders niedriger Priorität einen lokalen Speicher mit
einer noch größeren Speicherkapazität, um eine
größere Anzahl
von Anzeigelisten zu speichern. Zu diesem Zweck wird einem in einem
Hauptspeicher vorgesehenen Hauptprozessor normalerweise eine niedrige
Priorität
zugeteilt. Auf diese Weise dient der Hauptprozessor ebenso als Slave-Prozessor.
-
Bei
der von der GPU 49 durchgeführten Zeichnungsverarbeitung
werden, wie oben beschrieben, beim Zeichnen zusätzlich zu der in einer Anzeigeliste
beschriebenen Eckpunkt-Information Umgebungsparameter oder Zeichnungseinstellbedingungen
benötigt,
die als graphischer Kontext bezeichnet werden, wie ein Zeichnungs-Versatz
und ein Begrenzungsbereich. Das Render-Subsystem (d. h. die GPU 49)
führt die
Zeichnungsverarbeitung auf der Basis von Anzeigelisten durch, die
von jedem Geometrie-Subsystem (d. h. der CPU) nach Maßgabe eines
graphischen Kontextes für
das Geometrie-Subsystem geliefert werden. Wenn die Lieferung der
Anzeigelisten von einem Geometrie-Subsystem auf ein anderes umgeschaltet
wird, ist jedoch ein großer
Arbeitsaufwand erforderlich, um einen graphischen Kontext neu einzustellen.
Um dieses Problem zu lösen,
hält das
Render-Subsystem so viele graphische Kontexte bereit, wie Geometrie-Subsysteme
vorhanden sind.
-
Einer
Anzeigeliste wird, wie in 7 dargestellt,
typischerweise ein graphischer Kontext für jedes Objekt hinzugefügt, das
der GPU 49 zugeführt wird,
um von dieser gezeichnet zu werden. Infolgedessen ist die GPU 49 in
der Lage, die Zeichnungsverarbeitung für jedes Objekt auf der Basis
eines dem Objekt zugeordneten graphischen Kontextes durchzuführen.
-
Die
Geometrie-Subsysteme und das Render-Subsystem nutzen den Hauptbus 41 gemeinsam,
der aus einem Datenbus und einem Adressenbus besteht. Ein Geometrie-Subsystem,
das auf das Render-Subsystem zugreift, sendet die ID des Geometrie-Subsystems
und eine von dem Geometrie-Subsystem erzeugte Anzeigeliste über den Adressenbus
bzw. den Datenbus an das Render-Subsystem. Wenn das Render-Subsystem
die ID und die Anzeigeliste empfängt,
wählt es
einen der ID entsprechenden graphischen Kontext aus und interpretiert
die Anzeigeliste auf der Basis des graphischen Kontextes. Das Render-Subsystem
zeichnet dann ein Bild in den Vollbildspeicher.
-
Wenn
man eine GPU 49 (Render-Subsystem) von mehreren Prozessoren
(Vektorverarbeitungsmaschinen oder Geometrie-Subsystemen) auf einer
Prioritätsbasis
steuern läßt, wie
dies oben beschrieben wurde, kann die Speicherkapazität des lokalen
Speichers, der in den einzelnen Prozessoren für die temporäre Speicherung
einer in dem Prozessor erzeugten Anzeigeliste vorgesehen ist, auf
ein Minimum reduziert werden. Infolgedessen ist es möglich, die
Verarbeitung zur Herstellung von Anzeigelisten in den Prozessoren
parallel auszuführen, ohne
die Kosten für
die lokalen Speicher zu erhöhen. Durch
das Speichern eines graphischen Kontextes für jeden der Prozessoren in
der GPU 49 (dem Render-Subsystem) kann zudem die Zahl an
duplizierten Datenübertragungen,
d. h. der Umfang an Overhead-Aufwand,
der während
der Umschaltung des Kontextes durchgeführt werden muß, reduziert
werden.
-
Genaugenommen
nutzen die Prozessoren den Datenbus und damit den Hauptspeicher
auf einer Zeitmultiplexbasis gemeinsam. Im folgenden wird ein Verfahren
beschrieben, mit dem Daten während
einer Übertragung
der Daten zu der GPU 49 nach Maßgabe einer in den Daten selbst
eingebetteten Meta-Instruktion gesteuert werden.
-
9 zeigt ein typisches Datenformat
einer Meta-Instruktion. Eine Meta-Instruktion ist eine Instruktion,
die vor den zu übertragenden
Daten hinzugefügt
ist. Eine Meta-Instruktion schreibt die Länge der übertragenen Daten vor, ein
Ziel der Datenübertragung
und den Operationscode der Meta-Instruktion. Eine Meta-Instruktion
umfaßt
128 Bits, von denen nur 64 Bits, die in der Figur dargestellt sind,
gültig sind.
Die zu übertragende
Datengröße ist in
dem ersten 16-Bit-Feld QWC angegeben. Der Operationscode dieser
Meta-Instruktion umfaßt
das Feld von dem 24. Bit bis zu dem 31. Bit. Das Feld von dem 32. Bit
bis zu dem 63. Bit dient zur Angabe einer Adresse, an der die zu übertragenden
Daten gespeichert werden oder von der als nächstes eine Meta-Instruktion
ausgelesen werden soll.
-
Die
Datenübertragung
wird nach Maßgabe des
Operationscodes einer in die Daten eingebetteten Meta-Instruktion
folgendermaßen
gesteuert.
-
Wenn
der Operationscode "cnt" lautet, führt der
Prozessor, nachdem so viele Datenwörter übertragen wurden, wie durch
das auf die Meta-Instruktion folgende QWC-Feld angegeben, eine Meta-Instruktion
aus, die an einer auf dieses Paket (d. h. die Meta-Instruktion und
die Daten) folgenden Adresse gespeichert ist. Wenn der Operationscode "cnts" lautet, führt der
Prozessor nachdem so viele Datenwörter durch Ausführung der
Verzögerungssteuerung übertragen
wurden, wie durch das auf diese Meta-Instruktion folgende QWC-Feld
angegeben, eine Meta-Instruktion aus, die an einer auf dieses Paket
folgenden Adresse gespeichert ist. Wenn der Operationscode "next" lautet, führt der
Prozessor, nachdem so viele Datenwörter übertragen wurden, wie durch das
auf diese Meta-Instruktion folgende QWC-Feld angegeben, eine Meta-Instruktion
aus, die an einer in dem Adressenfeld spezifizierten Adresse gespeichert
ist.
-
Die
Verzögerungssteuerung
ist eine Zeitsteuerung, die von einem Prozessor selbst durchgeführt wird,
um einen Zugriff, der von dem Prozessor auf dem Hauptspeicher 45 vorgenommen
wurde, in einen Wartezustand zu versetzen, bis ein von einem anderen
Prozessor vorgenommener Zugriff auf den Hauptspeicher 45 beendet
ist.
-
Wenn
der Operationscode "REF" lautet, wird, führt der
Prozessor eine Meta-Instruktion aus, nachdem so viele Datenwörter übertragen
wurden, wie durch das an einer in dem Adressenfeld spezifizierten
Adresse ADDR angegeben. Wenn der Operationscode "refs" lautet,
führt der
Prozessor, nachdem so viele Datenwörter durch die Ausführung der
Verzögerungssteuerung übertragen
wurden, wie durch das an der in dem Adressenfeld spezifizierten
Adresse ADDR gespeicherte QWC-Feld angegeben, eine Meta-Instruktion
aus, die an einer auf diese Meta-Instruktion folgenden Adresse gespeichert
ist. Wie oben beschrieben wurde, wird eine "REF"-Meta-Instruktion
benutzt, um Daten mit einer Länge,
die in dem QWC-Feld spezifiziert ist, von einer in dem Adressenfeld
spezifizierten Adresse zu übertragen.
-
Wenn
der Operationscode "call" lautet, nachdem
so viele Datenwörter übertragen
wurden, wie durch das auf diese Meta-Instruktion folgende QWC-Feld
angegeben, wird eine auf dieses Paket folgende Adresse in ein Register
als Rückkehradresse
geschoben (oder geladen), und der Prozessor führt eine Meta-Instruktion aus,
die an einer in dem Adressenfeld der Meta-Instruktion spezifizierten Adresse
gespeichert ist. Wenn der Operationscode "ret" lautet,
führt der
Prozessor, nachdem so viele Datenwörter übertragen wurden, wie durch
das auf diese Meta-Instruktion folgende QWC-Feld angegeben, eine
Meta-Instruktion aus, die an einer aus dem Register herausgeholten
(oder ausgelesenen) Adresse gespeichert ist. Es ist zu beachten,
daß die Adresse
während
der Ausführung
einer Meta-Instruktion mit dem "CALL"-Operationscode,
der mit dieser "RET"-Meta-Instruktion
verbunden ist, als Rückkehr adresse
in das Register geschoben wurde. Wenn der Operationscode "end" lautet, wird die
Verarbeitung beendet, nachdem so viele Datenwörter übertragen wurden, wie das auf
diese Meta-Instruktion folgende QWC-Feld angibt.
-
10 zeigt ein Diagramm zur
Erläuterung von
Operationen, die von dem Prozessor ausgeführt werden, wenn der Operationscode
der Meta-Instruktionen "next" lautet, was bedeutet,
daß die
nächsten auf
diese Meta-Instruktion folgenden Daten übertragen werden sollen. Zunächst liest
die Haupt-DMAC 46 ein 1-Wort als Meta-Instruktionswort
aus einer Adresse ADDR0 aus, die in einem Tag-Adressenregister Dn_TADR
gespeichert ist. Es sei angenommen, daß die Meta-Instruktion lautet "NEXT, ADDR = ADDR2,
LEN = 8", was bedeutet,
daß der
Operationscode "next" lautet, das QWC-Feld
angibt, daß die Länge der
zu übertragenden
Daten 8 Quadlet-Wörter (qwords)
beträgt,
wobei 1 qword 128 Bits umfaßt,
und ADDR2 eine in dem Adressenfeld spezifizierte Adresse ist. Somit
werden bei der Ausführung
der Meta-Instruktion "NEXT,
ADDR = ADDR2, LEN = 8" 8 qword-Daten übertragen.
Dann wird eine Meta-Instruktion "NEXT,
ADDR = ADDR1, LEN = 2" ausgeführt, die
an der Adresse ADDR2 gespeichert ist.
-
Aus
dem gleichen Grund werden bei der Ausführung der Meta-Instruktion "NEXT, ADDR = ADDR1,
LEN = 2" 2 qword-Daten
durch die von der Haupt-DMAC 46 durchgeführten Steuerung übertragen.
Dann wird eine Meta-Instruktion "END,
ADDR = -, LEN = 8" ausgeführt, die
an einer Adresse ADDR1 gespeichert ist. Bei der Ausführung der
Meta-Instruktion "END,
ADDR = -, LEN = 8" werden
8 qword-Daten übertragen.
Dann ist die Bearbeitung beendet.
-
11 zeigt ein Diagramm zur
Erläuterung von
Operationen, die von dem Prozessor ausgeführt werden, wenn der Operationscode
der Meta-Instruktionen "REF" lautet. Zunächst liest
die Haupt-DMAC 46 ein 1-Wort als Meta-Instruktionswort
aus einer Adresse ADDR0 aus, die in dem Tag-Adressenregister Dn_TADR
gespeichert ist. Es sei angenommen, daß die Meta-Instruktion lautet "REF, ADDR = ADDR2,
LEN = 2". Bei der
Ausführung
der Meta-Instruktion "REF,
ADDR = ADDR2, LEN = 2" werden
2 qword-Daten übertragen,
die an einer Adresse ADDR2 gespeichert sind. Dann wird eine Meta-Instruktion "REF, ADDR = ADDR1,
LEN = 8" ausgeführt, die
auf diese Meta-Instruktion folgt.
-
Bei
der Ausführung
der Meta-Instruktion "REF,
ADDR = ADDR1, LEN = 8" werden
8 qword-Daten übertragen,
die an einer Adresse ADDR1 gespeichert sind. Dann wird eine auf
diese Meta-Instruktion folgende Meta-Instruktion "END, ADDR = -, LEN
= 8" ausgeführt. Bei
der Ausführung der
Meta-Instruktion "END,
ADDR = -, LEN = 8" werden
8 qword-Daten übertragen.
Dann wird die Verarbeitung beendet.
-
12 zeigt ein Diagramm zur
Erläuterung von
Operationen, die von dem Prozessor durchgeführt werden, wenn die Operationscodes
von Meta-Instruktionen "CALL" und "RET" lauten. Zunächst liest
die Haupt-DMAC 46 ein 1-Wort als Meta-Instruktionswort
von einer Adresse ADDR0 aus, die in dem Tag-Adressenregister Dn_TADR
gespeichert ist. Es sei angenommen, daß die Meta-Instruktion "CALL, ADDR = ADDR1,
LEN = 0" lautet.
(Bei der Ausführung
der Meta-Instruktion "CALL,
ADDR = ADDR1, LEN = 0" werden
keine auf diese Meta-Instruktion folgenden Daten übertragen,
weil LEN = 0 ist. Die Adresse einer Meta-Instruktion "CALL, ADDR = ADDR2,
LEN = 8", die auf
diese Meta-Instruktion folgt, wird als Rückkehradresse in ein erstes
Register geschoben). Nach der Ausführung der Meta-Instruktion "CALL, ADDR = ADDR1,
LEN = 0" wird eine
Meta-Instruktion "CALL,
ADDR = ADDR2, LEN = 8" ausgeführt, die
auf der rechten Seite von 12 dargestellt
und an einer Adresse ADDR1 gespeichert ist. Bei der Ausführung der
Meta-Instruktion "CALL, ADDR
= ADDR2, LEN = 8" werden
8 qword-Daten übertragen,
die auf diese Meta-Instruktion folgen (wobei die Adresse einer Meta-Instruktion "RET, ADDR = -, LEN
= 0", die auf dieses
Paket folgt, in ein zweites Register als Rückkehradresse geschoben wird).
Dann wird eine Meta-Instruktion "RET,
ADDR = -, LEN = 8" ausgeführt, die
an einer Adresse ADDR2 gespeichert ist.
-
Bei
der Ausführung
der Meta-Instruktion "RET,
ADDR = -, LEN = 8" werden
8 qword-Daten übertragen,
die auf diese Meta-Instruktion folgen. Dann wird die Meta-Instruktion "RET, ADDR = -, LEN =
0" ausgeführt, deren
Adresse bei der Ausführung der
auf der rechten Seite dargestellten Meta-Instruktion "CALL, ADDR = ADDR2,
LEN = 8" in das
zweite Register geschoben wurde. Bei der Ausführung der Meta-Instruktion "RET, ADDR = -, LEN
= 0" werden keine
auf diese Meta-Instruktion folgenden Daten übertragen, weil LEN = 0 ist.
Dann wird die Meta-Instruktion "CALL,
ADDR = ADDR2, LEN = 8" auf
der linken Seite ausgeführt,
deren Adresse bei der Ausführung
der Meta-Instruktion "CALL,
ADDR = ADDR1, LEN = 0" in
das erste Register geschoben wurde. Bei der Ausführung der Meta-Instruktion "CALL, ADDR = ADDR2,
LEN = 8" auf der
linken Seite, werden 8 qword-Daten übertragen, die auf diese Meta-Instruktion
folgen (wobei die Adresse einer Meta-Instruktion "END, ADDR = -, LEN
= 0", die auf dieses
Paket folgt, als Rückkehradresse
in das erste Register geschoben wird). Dann wird die Meta-Instruktion "RET, ADDR = -, LEN
= 8" ausgeführt, die
an der Adresse ADDR2 gespeichert ist.
-
Bei
der Ausführung
der Meta-Instruktion "RET,
ADDR = -, LEN = 8" werden
8 qword-Daten, die auf diese Meta-Instruktion folgen, übertragen.
Dann wird die Meta-Instruktion "END,
ADDR = -, LEN = 0" ausgeführt, deren
Adresse bei der Ausführung
der Meta-Instruktion "CALL,
ADDR = ADDR2, LEN = 8" auf
der linken Seite in das erste Register geschoben wurde. Bei der
Ausführung
der Meta-Instruktion "END,
ADDR = -, LEN = 0" werden
keine Daten übertragen,
weil LEN = 0 ist. Dann wird die Verarbeitung beendet.
-
Wie
oben beschrieben wurde, wird die Datenübertragung nach Maßgabe einer
in die Daten eingebetteten Meta-Instruktion gesteuert.
-
13 zeigt ein Diagramm, in
dem ein Zustand dargestellt ist, in dem die Datenübertragung nach
Maßgabe
einer in die Daten eingebetteten Meta-Instruktion gesteuert wird.
Während
die Haupt-CPU 44 eine Anzeigeliste (Anzeigeliste #0) erzeugt,
werden Daten, die einer der Anzeigeliste #0 um ein Vollbild vorangehenden
Anzeigeliste (Anzeigeliste #1) zugeordnet sind, zu der zweiten Vektorverarbeitungsmaschine
(VPE1) 48 übertragen.
-
Zunächst erzeugt
die Haupt-CPU 44 in Verbindung mit der ersten Vektorverarbeitungsmaschine 71 eine
Anzeigeliste (Anzeigeliste #0), die eine Meta-Instruktion mit dem
Operationscode "NEXT", eine Meta-Instruktion
mit dem Operationscode "REF", eine Matrix, eine
Meta-Instruktion
mit dem Operationscode "REF", eine Matrix, eine
Meta-Instruktion mit dem Operationscode "REF",
eine Matrix, eine Meta-Instruktion mit dem Operationscode "REF", eine Meta-Instruktion
mit dem Operationscode "REF", eine Meta-Instruktion
mit dem Operationscode "REF", eine Matrix und
eine Meta-Instruktion mit dem Operationscode "RET" enthält, wie
dies in 13 dargestellt
ist.
-
Während die
Haupt-CPU 44 in Verbindung mit der ersten Vektorverarbeitungsmaschine 71 eine Anzeigeliste
(Anzeigeliste #0) erzeugt, werden, wie oben beschrieben, Daten,
die einer der Anzeigeliste #0 um ein Vollbild vorangehenden Anzeigeliste
(Anzeigeliste #1) zugeordnet sind, in der folgenden Weise zu der
zweiten Vektorverarbeitungsmaschine (VPE1) 48 übertragen.
Zunächst
wird eine Meta-Instruktion mit dem Operationscode "NEXT" an dem Kopf der
Anzeigeliste #1 ausgeführt,
um den nachfolgenden Kontext zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen.
Dann wird eine auf den übertragenen
Kontext folgende erste Meta-Instruktion mit dem Operationscode "REF" ausgeführt, um ein
Programm 0 auszulesen, das in einer Objektdatenbank in dem Hauptspeicher 45 gespeichert
ist (um dann das Programm zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen).
So kann z. B. ein Eckpunkte-Datensatz, d. h. der Inhalt eines in 13 dargestellten Objekts,
irgendwo gespeichert werden und es werden nur Matrizen einer Anzeigeliste
aktualisiert. Auf diese Weise ist es möglich, ein Bild auf der Basis
des Beobachterauges zu erzeugen. So werden Daten, deren Inhalte
sich nicht von Vollbild zu Vollbild ändern, wie ein Programm, aus
einer Anzeigeliste ausgelesen, indem eine Meta-Instruktion benutzt
wird (um die Daten zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen,
ohne daß die Daten
in der Anzeigeliste enthalten sein müssen). Feste Daten, wie Zeichen
und konstante Daten zwischen ihnen, können in verschiedenen Anzeigelisten von
Meta-Instruktionen gemeinsam benutzt werden. Infolgedessen läßt sich
leicht eine Anzeigeliste erzeugen, indem lediglich Positionsdaten
(d. h. Matrizen) einer zuvor erzeugten existierenden Anzeigeliste,
die in der Anzeigeliste enthalten sind, aktualisiert werden, deren
Inhalte sich von Vollbild zu Vollbild ändern.
-
Es
ist zu beachten, daß die
Objektdatenbank dreidimensionale Daten für die Beschreibung eines dreidimensionalen
Objekts (im folgenden auch als Objekt-Eckpunkt bezeichnet) und ein
Programm zum Interpretieren der Objektdaten enthält. Wenn zusätzlich eine
Texturabbildung an einem Ornament eines Objekts durchgeführt wird,
sind auch Bilddaten in der Objektdatenbank gespeichert, die als
Textur (im folgenden als Texturbild bezeichnet) benutzt werden.
-
Dann
wird eine auf die obige erste "REF"-Meta-Instruktion
folgende zweite Meta-Instruktion mit dem Operationscode "REF" ausgeführt, um
dreidimensionale Eckpunkt-Koordinatendaten des Objekts 0, d. h.
Eckpunkt-Koordinaten des Objekts 0, auszulesen (und dann die Eckpunkt-Koordinaten
des Objekts 0 zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen).
Dann wird eine erste Matrix (durch Ausführung einer Meta-Instruktion
mit dem Operationscode NEXT, die auf die zweite "REF"-Meta-Instruktion
an dem Kopf der ersten Matrix folgt) zu der zweiten Vektorverarbeitungsmaschine 48 übertragen.
Anschließend
wird eine dritte Meta-Instruktion mit dem Operationscode "REF", die auf die übertragene
erste Matrix folgt, ausgeführt,
um dreidimensionale Eckpunkt-Koordinatendaten des Objekts 1 auszulesen,
d. h. Eckpunkt-Koordinaten des Objekts 1, (und dann die Eckpunkt-Koordinaten des
Objekts 1 zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen).
-
Dann
wird eine zweite Matrix, die auf die obige dritte "REF"-Meta-Instruktion
folgt, durch Ausführung
einer Meta-Instruktion mit dem Operationscode NEXT, die auf die
dritte "REF"-Meta-Instruktion an dem Kopf der zweiten
Matrix folgt, zu der zweiten Vektorverarbeitungsmaschine 48 übertragen.
Anschließend
wird eine vierte Meta-Instruktion mit dem Operationscode "REF", die auf die übertragene
zweite Matrix folgt, ausgeführt,
um erneut die dreidimensionalen Eckpunkt-Koordinatendaten des Objekts
1, d. h. die Eckpunkt-Koordinaten des Objekts 1, auszulesen (und
dann die Eckpunkt-Koordinaten des Objekts 1 zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen).
Dann wird durch Ausführung
einer Meta-Instruktion mit dem Operationscode NEXT, die auf die
vierte "REF"-Meta-Instruktion
an dem Kopf der dritten Matrix folgt, eine dritte Matrix zu der
zweiten Vektorverarbeitungsmaschine 48 übertragen. Anschließend wird
eine fünfte
Meta-Instruktion mit dem Operationscode "REF",
die auf die übertragene
dritte Matrix folgt, ausgeführt,
um das Programm 3 auszulesen (und dann das Programm zu der zweiten
Vektorverarbeitungsmaschine 48 zu übertragen). Dann wird eine
sechste Meta-Instruktion mit dem Operationscode "REF",
die auf die obige fünfte "REF"-Instruktion folgt,
ausgeführt,
um Texturbilddaten aus dem Vollbildspeicher 58 auszulesen
und die Daten zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen.
-
Wenn
die Texturbilddaten noch nicht in dem Vollbildspeicher 58 gespeichert
sind, werden die Texturbilddaten zu dem Vollbildspeicher 58 übertragen, bevor
die Objektdaten Eckpunkt des Objekts 4 durch die folgende siebte
Meta-Instruktion mit dem Operationscode "REF" übertragen
werden. Wenn die Texturbilddaten Verschmelzungsdaten sind, die aus
der MDEC 47 stammen, oder übertragene Daten, die von dem
Sub-Bus 42 kommen, ändern
sich die Texturbilddaten von Vollbild zu Vollbild. In diesem Fall
wird eine Verzögerungsfunktion
benutzt, um Synchronisation der Datenübertragung herzustellen, wie
dies weiter unten beschrieben wird.
-
Während Bilddaten
zu der zweiten Vektorverarbeitungsmaschine 48 übertragen
werden, wird die von der zweiten Vektorverarbeitungsmaschine 48 ausgeführte Verarbeitung
vorübergehend
suspendiert. Somit ist es notwendig, die Übertragungsperiode von Bilddaten
zu minimieren, indem die von anderen DMA-Kanälen durchgeführten Aktivitäten während dieser
Periode angehalten werden. Das Anhalten der von den anderen DMA-Kanälen durchgeführten Aktivitäten kann
mittels eines vorbestimmten Steuerbits in einer für die Übertragung
von Bilddaten benutzten Meta-Instruktion bestimmt werden. Als solche
Steuerbits werden z. B. das 24. und das 25. Bit einer in 9 dargestellten Meta-Instruktion
verwendet.
-
Dann
wird die letzte (siebte) Meta-Instruktion mit dem Operationscode "REF" ausgeführt, um
dreidimensionale Eckpunkt-Koordinatendaten des Objekts 4 auszulesen
(und dann die Daten zu der zweiten Vektorverarbeitungsmaschine 48 zu übertragen). Dann
wird die letzte (vierte) Matrix zu der zweiten Vektorverarbeitungsmaschine 48 übertragen
(durch Ausführung
einer Meta-Instruktion mit dem Operationscode NEXT, die auf die
siebte "REF"-Meta-Instruktion am Kopf
der vierten Matrix folgt). Schließlich wird eine Meta-Instruktion
mit dem Operationscode "RET" ausgeführt, um
die Übertragungsverarbeitung zu
beenden.
-
14 zeigt ein Diagramm zur
Erläuterung der
oben erwähnten
Verzögerungssteuerung.
Es sei angenommen, daß Daten
von dem Gerät
0 zu einem Hauptspeicher und dann von dem Hauptspeicher zu dem Gerät 1 in ansteigender
Reihenfolge der Datenspeicheradressen in dem Hauptspeicher übertragen werden.
In diesem Fall kann eine Adresse in dem Hauptspeicher, von der Daten
zu dem Gerät
1 übertragen
werden sollen, aus irgendwelchen Gründen in einem Zeitpunkt eine
Adresse in dem Hauptspeicher übersteigen,
zu der weniger kürzlich
Daten von dem Gerät
0 übertragen
wurden. Während
einer solchen Zeit wird die Übertragung
der Daten von dem Hauptspeicher zu dem Gerät 1 in den Verzögerungszustand
gesetzt.
-
Bei
dem in 13 dargestellten
Beispiel für Datenübertragungen
werden Texturbilddaten von einem Speicher in der MDEC 47 zu
dem Hauptspeicher 45 und dann von dem Hauptspeicher zu
der zweiten Vektorverarbeitungsmaschine 48 in einer ansteigenden
Reihenfolge der Datenspeicheradressen in dem Hauptspeicher 45 übertragen.
In diesem Fall kann eine Adresse in dem Hauptspeicher 45,
von welcher Daten zu der zweiten Vektorverarbeitungsmaschine 48 übertragen
werden sollen, aus irgendwelchen Gründen in einem Zeitpunkt größer sein
als eine Adresse in dem Hauptspeicher, zu der weniger kürzlich Daten
von dem Speicher in der MDEC 47 übertragen wurden. Während einer
solchen Zeit wird die Übertragung
der Texturbilddaten von dem Hauptspeicher 45 zu der zweiten
Vektorverarbeitungsmaschine 48 in einen Verzögerungszustand
gesetzt, um Synchronisation der Übertragung
herzustellen.
-
Wie
oben beschrieben wurde, gibt die Haupt-DMAC 46 eine Meta-Instruktion
aus einer Anzeigeliste aus und führt
die Meta-Instruktion aus, um Daten an Prozessoren zu verteilen.
Als Ergebnis können
durch das Programmieren der Reihenfolge und der Form oder der Priorität der Datenübertragung
in den Daten zu der Zeit, zu der der Prozessor im voraus eine Anzeigeliste
erzeugt, die Daten in Abhängigkeit
von den Eigenschaften der Daten optimal übertragen werden. Wenn man
den Prozessor die Reihenfolge der Datenübertragung in Form einer Liste,
wie einer Anzeigeliste, im voraus vorschreiben läßt, muß der Prozessor nicht überflüssige, kopierte Daten
für die Übertragung
in einem Speicher halten. Dadurch wird die Zahl sinnloser Zugriffe
auf den Speicher reduziert, und die Größe der Anzeigeliste wird verringert.
-
Darüber hinaus
müssen
nur jeweils die Daten, die sich von Vollbild zu Vollbild ändern, separat an
zwei Stellen für
individuelle Anzeigelisten übertragen
werden. Ein Abschnitt der Anzeigelisten, der sich nicht von Vollbild
zu Vollbild ändert,
kann in einem Speicherbereich gespeichert werden, der für alle Anzeigelisten
gemeinsam ist. Auf diese Weise kann die Größe des Speichers zum Speichern
der Anzeigelisten reduziert werden. Das heißt, in einem Speicher mit kleiner
Speicherkapazität
kann eine Anzahl von Anzeigelisten gespeichert werden.
-
Da
Daten nach Maßgabe
einer in den Daten eingebetteten Meta-Instruktion übertragen
werden, ist eine Synchronisierung der Operationen zum Auslesen und
Einschreiben von Daten zwischen einer Vielzahl von Prozessoren ohne
weiteres möglich.
Infolgedessen können
viele Prozessoren einen Speicher gemeinsam nutzen, ohne daß in dem
Speicher ein doppelter Puffer vorgesehen sein muß.
-
In
dem Fall des oben beschriebenen Ausführungsbeispiels sind die Daten
auf einer CD-ROM
gespeichert. Es ist jedoch zu beachten, daß ebenso gut auch andere Aufzeichnungsmedien
benutzt werden können.
-
In
dem Informationsverarbeitungsgerät,
das den ersten Aspekt der Erfindung verkörpert, dient die Listengeneratoreinrichtung
zum Erzeugen einer Liste, die Daten für eine dreidimensionale Graphikverarbeitung
enthält,
die zu einer Verarbeitungseinheit übertragen werden sollen, sowie
eine Instruktion für die
Steuerung der Übertragung
der Daten zu der Verarbeitungseinheit. Infolgedessen können die
Daten in Abhängigkeit
von den Eigenschaften der Daten optimal übertragen werden, indem unter
anderem die Reihenfolge oder die Priorität der Datenübertragung im voraus in den
Daten programmiert wird.
-
In
dem Informationsverarbeitungsgerät,
das den zweiten Aspekt der Erfindung verkörpert, dient der Speicher zum
Speichern einer Liste, die Daten für dreidimensionale Graphikverarbeitung
enthält,
die zu einer Verarbeitungseinheit übertragen werden sollen, sowie
eine Instruktion für
die Steuerung der Übertragung
der Daten zu der Verarbeitungseinheit. Infolgedessen können Daten
in Abhängigkeit
von den Eigenschaften der Daten, nach Maßgabe einer zuvor in die Daten
eingebetteten Instruktion optimal verarbeitet werden.
-
In
dem Informationsverarbeitungsgerät,
das den dritten Aspekt der Erfindung verkörpert, dient die Datenübertragungseinrichtung
zum Auslesen einer Liste, die Daten für die dreidimensionale Graphikverarbeitung
enthält,
die zu einer Verarbeitungseinheit übertragen werden sollen, sowie
eine Instruktion zur Steuerung der Übertragung der Daten aus einem Speicher
zu der Datenverarbeitungseinheit und wird für die Übertragung der Daten zu der
Verarbeitungseinheit nach Maßgabe
der Instruktion benutzt. Infolgedessen kann die Speicherressource
den Prozessoren entsprechend den Daten mit einem hohen Grad an Effizienz
zugeteilt werden.
-
In
dem Informationsverarbeitungsgerät,
das den vierten Aspekt der Erfindung verkörpert, und bei dem Informationsverarbeitungsverfahren,
das den fünften
Aspekt der Erfindung verkörpert,
dient die Listengeneratoreinrichtung zum Erzeugen einer Liste, die
Daten für
die dreidimensionale Graphikverarbeitung enthält, die zu einer Verarbeitungseinheit übertragen
werden sollen, un einer Instruktion für die Steuerung der Übertragung
der Daten zu der Verarbeitungseinheit, und wird zum Speichern dieser
Liste in einem Speicher benutzt, und die Datenübertragungseinheit wird zum
Auslesen der Liste aus dem Speicher und zur Übertragung der Daten in der
Liste zu der Verarbeitungseinheit nach Maßgabe der in der Liste enthaltenen
Instruktion benutzt. Infolgedessen können die Daten in Abhängigkeit
von den Daten optimal übertragen
werden, indem unter anderem die Reihenfolge oder die Priorität der Datenübertragung im
voraus in den Daten programmiert wird.