DE69820143T2 - Datenverarbeitungsgerät und -verfahren - Google Patents

Datenverarbeitungsgerät und -verfahren Download PDF

Info

Publication number
DE69820143T2
DE69820143T2 DE69820143T DE69820143T DE69820143T2 DE 69820143 T2 DE69820143 T2 DE 69820143T2 DE 69820143 T DE69820143 T DE 69820143T DE 69820143 T DE69820143 T DE 69820143T DE 69820143 T2 DE69820143 T2 DE 69820143T2
Authority
DE
Germany
Prior art keywords
data
memory
list
processing
information processing
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.)
Expired - Lifetime
Application number
DE69820143T
Other languages
English (en)
Other versions
DE69820143D1 (de
Inventor
Masakazu Shinagawa-ku Suzuoki
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of DE69820143D1 publication Critical patent/DE69820143D1/de
Application granted granted Critical
Publication of DE69820143T2 publication Critical patent/DE69820143T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • 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.

Claims (11)

  1. Informationsverarbeitungsgerät, bei dem ein Bus (41) und ein Speicher (45) von einer Mehrzahl von Verarbeitungseinheiten (44, 71, 48) auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Grafikverarbeitung parallel auszuführen, wobei das Informationsverarbeitungsgerät mit einer Listengeneratoreinrichtung (44) 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.
  2. Informationsverarbeitungsgerät nach Anspruch 1, bei dem der Speicher (45) zum Speichern der Liste benutzt wird.
  3. Informationsverarbeitungsgerät nach Anspruch 2, ferner mit einer Datenübertragungseinrichtung (46), die für das Auslesen der Liste aus dem Speicher (45) und zum Übertragen der Daten zu den Verarbeitungseinheiten nach Maßgabe des genannten Befehls benutzt wird.
  4. Informationsverarbeitungsgerät nach Anspruch 2, bei dem der Speicher (45) virtuell unterteilt ist in einen ersten Bereich zum Speichern einer vorbestimmten Anzahl der genannten Listen für vorbestimmte Vollbilder und einen zweiten Bereich zum Speichern des Rests der Listen für andere Vollbilder.
  5. Informationsverarbeitungsgerät nach Anspruch 3, bei dem dann, wenn eine Adresse in einem Bereich des Speichers, aus der ein Datenstück von einer der Verarbeitungseinheiten ausgelesen werden soll, größer wird als eine Adresse in dem Bereich des Speichers, an der eine andere der genannten Verarbeitungseinheiten in jüngster Vergangenheit ein anderes Datenstück eingeschrieben hat, die Datenübertragungseinrichtung (46) eine Operation zum Auslesen des Datenstücks, das von der genannten einen der Verarbeitungseinheiten durchgeführt wird, in einen Wartezustand versetzt.
  6. Informationsverarbeitungsgerät nach Anspruch 3, bei dem während Daten einer in dem Speicher gespeicherten Liste nach Maßgabe eines Befehls auf dieser Liste zu einer der genannten Verarbeitungseinheiten übertragen werden, die Datenübertragungseinrichtung (46) einen Zugriff auf diese Daten, der von einer anderen der genannten Verarbeitungseinheiten vorgenommen wird, in einen Wartezustand versetzt.
  7. Informationsverarbeitungsgerät nach Anspruch 4, bei dem eine Kopie nur eines Abschnitts der Liste, der von Vollbild zu Vollbild variiert, angefertigt wird und diese Kopie entweder in dem ersten Bereich oder in dem zweiten Bereich des Speichers (45) gespeichert wird, während der originale Abschnitt in dem zweiten Bereich oder in dem ersten Bereich des Speichers gespeichert wird.
  8. Informationsverarbeitungsgerät nach Anspruch 1, bei dem die Listengeneratoreinrichtung (44), die zum Erzeugen der Liste benutzt wird, ferner zum Speichern der Liste in dem Speicher (45) benutzt wird, wobei das Informationsverarbeitungsgerät ferner aufweist: eine Datenübertragungseinrichtung (46), die für das Auslesen der Liste aus dem Speicher (45) und zum Übertragen der Daten zu den Verarbeitungseinheiten nach Maßgabe des in der Liste enthaltenen Befehls benutzt wird.
  9. Informationsverarbeitungsverfahren, bei dem ein Bus (41) und ein Speicher (45) von einer Mehrzahl von Verarbeitungseinheiten (44, 71, 48) auf Zeitmultiplexbasis gemeinsam genutzt werden, um eine dreidimensionale Grafikverarbeitung 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.
  10. Informationsverarbeitungsverfahren nach Anspruch 9, mit dem weiteren Verfahrensschritt: Speichern der Liste in dem Speicher (45).
  11. Informationsverarbeitungsverfahren nach Anspruch 10, mit den weiteren Verfahrensschritten: Auslesen der Liste aus dem Speicher (45) und Übertragen der Daten auf der Liste zu einer der Verarbeitungseinheiten nach Maßgabe des in der Liste enthaltenen Befehls.
DE69820143T 1997-03-27 1998-03-25 Datenverarbeitungsgerät und -verfahren Expired - Lifetime DE69820143T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7493097 1997-03-27
JP07493097A JP3739888B2 (ja) 1997-03-27 1997-03-27 情報処理装置および方法

Publications (2)

Publication Number Publication Date
DE69820143D1 DE69820143D1 (de) 2004-01-15
DE69820143T2 true DE69820143T2 (de) 2004-10-14

Family

ID=13561575

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69820143T Expired - Lifetime DE69820143T2 (de) 1997-03-27 1998-03-25 Datenverarbeitungsgerät und -verfahren

Country Status (9)

Country Link
US (1) US6219073B1 (de)
EP (1) EP0871142B1 (de)
JP (1) JP3739888B2 (de)
KR (1) KR100562692B1 (de)
CN (1) CN1107923C (de)
AU (1) AU730429B2 (de)
CA (1) CA2232904A1 (de)
DE (1) DE69820143T2 (de)
TW (1) TW394906B (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155798A (ja) * 1998-11-18 2000-06-06 Toshiba Corp 機器制御方法および機器制御システム
JP3780732B2 (ja) * 1999-03-10 2006-05-31 株式会社日立製作所 分散制御システム
US6532018B1 (en) 1999-04-19 2003-03-11 Microsoft Corporation Combined floating-point logic core and frame buffer
US6397132B1 (en) 1999-09-30 2002-05-28 Siemens Automotive Corporation Electronic thronttle control with accident recordal unit
US6807620B1 (en) 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7236998B2 (en) 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7415703B2 (en) 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7382373B2 (en) * 2003-12-19 2008-06-03 Intel Corporation Method and apparatus for producing animation
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP4378572B2 (ja) 2007-06-28 2009-12-09 Necシステムテクノロジー株式会社 データ転送システム、データ転送方法、ホスト装置及び描画装置
KR101826121B1 (ko) 2011-03-25 2018-02-06 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
EP2710481B1 (de) * 2011-05-20 2021-02-17 Intel Corporation Dezentralisierte zuordnung von ressourcen und verbindungsstrukturen zur unterstützung der ausführung von anweisungssequenzen durch mehrere maschinen
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
TWI459201B (zh) 2012-04-27 2014-11-01 Toshiba Kk Information processing device
EP2972836B1 (de) 2013-03-15 2022-11-09 Intel Corporation Verfahren zur emulierung einer zentralisierten gast-flag-architektur mithilfe einer nativen verteilten flag-architektur
JP6021759B2 (ja) 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63226764A (ja) * 1987-03-17 1988-09-21 Fanuc Ltd 高速浮動小数点演算システム
US5010515A (en) * 1987-07-28 1991-04-23 Raster Technologies, Inc. Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload
JPH01181163A (ja) * 1988-01-13 1989-07-19 Seiko Instr & Electron Ltd 図形表示システム
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5187793A (en) * 1989-01-09 1993-02-16 Intel Corporation Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache
EP0389175A3 (de) * 1989-03-15 1992-11-19 Fujitsu Limited Datenvorausladesystem
JPH04219859A (ja) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
US5321505A (en) * 1991-01-11 1994-06-14 Microelectronics & Computer Technology Corporation Computer scalable visualization system
US5250940A (en) * 1991-01-18 1993-10-05 National Semiconductor Corporation Multi-mode home terminal system that utilizes a single embedded general purpose/DSP processor and a single random access memory
US5335322A (en) * 1992-03-31 1994-08-02 Vlsi Technology, Inc. Computer display system using system memory in place or dedicated display memory and method therefor
WO1994002295A1 (en) * 1992-07-17 1994-02-03 Eero Kivimaa An arrangement for fixing the blades of a frame saw
US5325485A (en) * 1992-10-30 1994-06-28 International Business Machines Corporation Method and apparatus for displaying primitives processed by a parallel processor system in a sequential order
JP3304444B2 (ja) * 1992-11-30 2002-07-22 富士通株式会社 ベクトル処理装置
JPH06274578A (ja) * 1993-03-18 1994-09-30 Fuji Facom Corp 画像情報処理方式
US5450542A (en) 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
US5706478A (en) * 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
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
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5996058A (en) * 1996-08-19 1999-11-30 Samsung Electronics Company, Ltd. System and method for handling software interrupts with argument passing

Also Published As

Publication number Publication date
EP0871142A3 (de) 1999-11-03
TW394906B (en) 2000-06-21
CN1198557A (zh) 1998-11-11
KR19980080758A (ko) 1998-11-25
CN1107923C (zh) 2003-05-07
AU730429B2 (en) 2001-03-08
EP0871142A2 (de) 1998-10-14
AU5938898A (en) 1998-10-01
JP3739888B2 (ja) 2006-01-25
CA2232904A1 (en) 1998-09-27
KR100562692B1 (ko) 2006-10-24
DE69820143D1 (de) 2004-01-15
US6219073B1 (en) 2001-04-17
EP0871142B1 (de) 2003-12-03
JPH10269165A (ja) 1998-10-09

Similar Documents

Publication Publication Date Title
DE69820143T2 (de) Datenverarbeitungsgerät und -verfahren
DE69827544T2 (de) Datenverarbeitungsgerät und -Verfahren
DE69132209T2 (de) Anzeigeadapter
DE69824075T2 (de) Informationsverarbeitungssystem, rechnerlesbare Medien, und Entwurfsystem
DE60105510T2 (de) Bilderzeugungsgerät
DE69623242T2 (de) Untersystem zur Peripheriesteuerung für Videospielsystem
DE69132796T2 (de) Verfahren und gerät zur darstellung von grafischen bildern
DE69728002T2 (de) Steuerprozessor für einen drei-dimensionalen Beschleuniger, der die Fähigkeit geometrischer Dekompression besitzt und Verfahren zur Bearbeitung von geometrischen Daten in diesem Beschleuniger
DE69525180T2 (de) Videospielvorrichtung
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE69434014T2 (de) Vorrichtung und verfahren zur bilderzeugung
DE69518811T4 (de) Videospiel/videographisches Programmerzeugungsverfahren mit auf einer Einheit basierter Programmverarbeitung
DE69519844T2 (de) Videospiel/videographisches Programmerzeugungsverfahren und System mit Überlagungssteuerung
DE69518810T4 (de) Videospiel/videographisches Programmerzeugungsverfahren und System
DE69232865T2 (de) Externes Speichersystem mit programmierbaren Graphikprozessor für ein Videospielsystem oder dergleichen
DE69329630T2 (de) Vorrichtung zur Vektorverarbeitung
DE19655235B4 (de) Verfahren zum Aktualisieren eines Terminal-Betriebssystems eines Terminals und zum Anzeigen von Fensterinformation eines Fensteranwendungsprogramms
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE69714336T2 (de) Verfahren und Vorrichtung zur Aktualisierung eines Programms
DE102006041793A1 (de) Verfahren und System zum Liefern von Multimediadaten von verschiedenen Quellen zu verschiedenen Clientanwendungen
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE19733151A1 (de) System und Verfahren für einen virtuellen Gerätezugriff in einem Computersystem
DE69937714T2 (de) Bilderzeugungsgerät, Verfahren zum Umschalten zwischen dargestellten Szenen für das Bilderzeugungsgerät, computerlesbares Aufzeichnungsmedium mit einem Programm zum Umschalten zwischen dargestellten Szenen und Videospielvorrichtung
DE69030724T2 (de) Hauptbus-Video-Schnittstelle in Personalrechnern
DE3888445T2 (de) Graphisches Anzeigesystem mit einem Sekundärbildspeicher für Bildelemente.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition