DE69912034T2 - Bildverarbeitungsgerät - Google Patents

Bildverarbeitungsgerät Download PDF

Info

Publication number
DE69912034T2
DE69912034T2 DE69912034T DE69912034T DE69912034T2 DE 69912034 T2 DE69912034 T2 DE 69912034T2 DE 69912034 T DE69912034 T DE 69912034T DE 69912034 T DE69912034 T DE 69912034T DE 69912034 T2 DE69912034 T2 DE 69912034T2
Authority
DE
Germany
Prior art keywords
data
memory
circuit
texture
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
DE69912034T
Other languages
English (en)
Other versions
DE69912034D1 (de
Inventor
Mutsuhiro Shinagawa-ku Oomori
Yu Shinagawa-ku Kato
Katsuya Yokohama-shi Kita
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 Corp
Original Assignee
Sony Corp
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 Corp filed Critical Sony Corp
Publication of DE69912034D1 publication Critical patent/DE69912034D1/de
Application granted granted Critical
Publication of DE69912034T2 publication Critical patent/DE69912034T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7857Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Semiconductor Memories (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Grafikbild-Verarbeitungsgerät, insbesondere auf das technische Gebiet der Anordnung und Verbindung (Zusammenschaltung) eines Einbauspeichers insbesondere in dem Fall, wo ein DRAM oder ein anderer Speicher und eine Logikschaltung zusammen vorgesehen sind.
  • Computergrafik wird häufig bei einer Vielzahl von CAD-Systemen (computer-unterstütztes Konstruieren) und Spielmaschinen verwendet. Zusammen mit den seit einiger Zeit vorhandenen Fortschritten bei Bildverarbeitungsverfahren haben sich Systeme, bei denen dreidimensionale Computergrafik verwendet wird, schnell verbreitet.
  • Bei dreidimensionaler Computergrafik wird der Farbwert jedes Pixels im Entscheidungszeitpunkt der Farbe jedes entsprechenden Pixels berechnet. Danach wird die Bildaufbereitung durchgeführt, um den berechneten Wert in eine Adresse eines Anzeigepuffers (Rahmenspeicher), der dem Pixel entspricht, zu schreiben.
  • Eines der Bildaufbereitungsverfahren ist das Polygon-Bildaufbereiten. Bei diesem Verfahren wird ein dreidimensionales Modell als eine Zusammensetzung von dreieckigen Einheitsgrafiken (Polygonen) ausgedrückt. Durch Zeichnen unter Verwendung der Polygone als Einheiten werden die Farben der Pixel des Anzeigebildschirms bestimmt.
  • Bei der Polygon-Bildaufbereitung werden Koordinaten (x, y, z), Farbdaten (R, G, B), homogene Koordinaten (s, t) von Texturdaten, welche ein zusammengesetztes Bildmuster zeigen, und ein Wert des homogenen Terms q für die jeweiligen Scheitel des Dreiecks in einem körperlichen Koordinatensystem geliefert, und die Verarbeitung wird durchgeführt, um diese Werte innerhalb des Dreiecks zu interpolieren.
  • Hier bestehen die Koordinaten in einem UV-Koordinatensystem eines tatsächlichen Texturpuffers, nämlich Texturkoordinatendaten (u, v) aus den homogenen Koordinaten (s, t), die durch den homogenen Term q unterteilt sind, um "s/q" und "t/q" zu ergeben, die wiederum mit den Texturgrößen USIZE bzw. VSIZE multipliziert werden.
  • 11 ist eine Ansicht des Systemaufbaus des Basiskonzepts eines dreidimensionalen Computergrafiksystems.
  • Bei dem dreidimensionalen Computergrafiksystem werden Daten zum Zeichnen eines Grafikbilds von einem Hauptspeicher 2 eines Hauptprozessors 1 oder einer I/O-Schnittstellenschaltung 3, um externe Grafikdaten zu empfangen, an eine Bildaufbereitungsschaltung 5, die einen Bildaufbereitungsprozessor 5a und einen Rahmenspeicher 5b hat, über einen Hauptbus 4 geliefert.
  • Der Bildaufbereitungsprozessor 5a ist mit einem Rahmenpuffer 5b verbunden, der dazu dient, Daten zur Anzeige zu halten, und mit einem Texturspeicher 6, um Texturdaten zu halten, die bei der Fläche eines Grafikelements, welches zu zeichnen ist (beispielsweise ein Dreieck), anzuwenden sind.
  • Der Bildaufbereitungsprozessor 5a wird dazu verwendet, die Verarbeitung auszuführen, um ein Grafikelement mit einer Textur zu zeichnen, die auf seine Fläche im Rahmenspeicher 5b für jedes Grafikelement angewandt wird.
  • Der Rahmenpuffer 5b und der Texturspeicher 6 bestehen allgemein aus einem dynamischen Speicher mit wahlfreiem Zugriff (DRAM).
  • Bei dem in 11 gezeigten System sind der Rahmenpuffer 5b und der Texturspeicher 6 als körperlich getrennte Speichersysteme ausgebildet.
  • Seit einiger Zeit ist es möglich geworden, einen DRAM und eine Logikschaltung zusammen vorzusehen. Wenn man Grafikzeichnungs-Bildverarbeitungsgeräte betrachtet, wie in 12 gezeigt ist, gibt es welche, bei denen versucht wird, einen DRAM oder einen anderen Speicher 7a mit einer großen Kapazität auf dem gleichen Halbleiterchip 7 als eine Zeichnungsverwendungs-Logikschaltung 7b bilden, wobei die frühere Struktur der Verwendung eines externen Speichers unverändert beibehalten wird.
  • In diesem Fall wird ein DRAM-Kern, der einen äquivalenten Steuermechanismus wie ein Allzweck-DRAM hat, lediglich im Anschluss an die frühere Grafikzeichnungsbild-Verarbeitungslogikschaltung angeordnet und die beiden werden durch einen einzigen Pfad miteinander verbunden.
  • Es ist gibt lediglich die obigen Arten bei Grafikzeichnungsbild-Verarbeitungsgeräten.
  • Anschließend werden, obwohl das technische Gebiet von dem eines Grafikzeichnungsbild-Verarbeitungsgeräts verschieden ist, die Trends auf dem Gebiet von Mikroprozessoren beschrieben.
  • In der Vergangenheit wurde vorgeschlagen, einen Mikroprozessor und einen Speicher auf einem einzigen Chip vorzusehen. Es wurden außerdem Vorschläge gemacht, die die Anordnung des Speichers auf dem Chip betreffen.
  • Beispielsweise werden in einem PPRAM (ISSCC97/SESSIONI4/PARALLEL Processing RAM), wie in 13 gezeigt ist, DRAMs 8a-1 bis 8a-4, welche als Hauptspeicher dienen, und Mikroprozessoren (P) 8b-1 bis 8b-4 auf dem gleichen Halbleiterchip 8 angeordnet.
  • Es sei angemerkt, dass in 13 die Bezugszeichen 8c-1 bis 8c-4 Speichersteuerungen (Mem CTL) der DRAMs 8a-1 bis 8a-4 zeigen, und 8d-1 bis 8d-4 schnelle Pufferspeicher (Cache) zeigen.
  • Bei diesem Halbleiterchip 8 sind die DRAMs 8a-1 bis 8a-4, welche als Hauptspeicher dienen, in lediglich einer Richtung in Bezug auf die Prozessoren 8b-1 bis 8b-4 angeordnet.
  • 13 zeigt außerdem einen Aufbau, wo mehrere Mikroprozessoren 8b-1 bis 8b-4 auf einzelne DRAMs über die Cache-Speicher 8d-1 bis 8d-4 zugreifen.
  • Wendet man sich den Problemen zu, welche durch die Erfindung gelöst werden sollen, gibt es bei dem obigen herkömmlichen sogenannten Einbau-DRAM-System jedoch, wenn ein Rahmenpufferspeicher und ein Texturspeicher in unterschiedliche Speichersysteme getrennt sind, den Nachteil, dass der Rahmenpuffer, der aufgrund einer Änderung der Anzeigeauflösung geleert wird, für die Textur nicht verwendet werden kann. Wenn dagegen der Rahmenspeicher und der Texturspeicher körperlich kombiniert sind, wird der zusätzliche Platzbedarf des Seitenwechsels des DRAMs usw. im Zeitpunkt eines simultanen Zugriffs auf den Rahmenspeicher und den Texturspeicher groß, so dass es den Nachteil gibt, dass die Leistung beeinträchtigt wird.
  • Auch bei dem Verbindungsverfahren, wo ein DRAM-Kern, der einen Steuermechanismus hat, der äquivalent dem Allzweck-DRAM ist, im Anschluss an eine Grafikbildverarbeitungs-Logikschaltung angeordnet ist und die beiden durch einen einzigen Pfad miteinander verbunden sind, wird die Zugriffsbandbreite trotz der Sorge des Einbauens in den DRAM nicht verbessert und wird zu einem Flaschenhals in der Systemleistung.
  • Außerdem hat der Einbauhauptspeicher-Mikroprozessor die folgenden Nachteile:
  • Der Halbleiterchip 8 hat vier Einheiten mit dem gleichen funktionellen Aufbau, die miteinander fluchten, und überträgt Daten über die Speichersteuerungen. Die Bandbreiten der Übertragung werden durch die Pfadbreiten der Speichersteuerungen und der Verarbeitungsgeschwindigkeiten festgelegt. Der schnellste Pfad ist eine Schnittgerade quer über dem Chip. Die Betriebsgeschwindigkeit wird durch den längsten Pfad bestimmt. Daher wird die Verbesserung der Betriebsgeschwindigkeit schwierig. Lange Pfade nehmen natürlich einen größeren Bereich im Layout ein.
  • Der Trend für die Geschwindigkeit von Mikroprozessoren bestand darin, sich alle 18 Monate zu verdoppeln und außerdem die Speicherkapazität alle 18 Monate zu verdoppeln.
  • Trotz dieser Situation steigt die Zugriffszeit um ungefähr 7% pro Jahr. Um jedoch die Zugriffszeit schneller zu machen, ist es das Schlüsselproblem, die Systemleistung zu verbessern.
  • Bei dem obigen herkömmlichen Verfahren ist es so, dass, je größer der Chip ist, desto länger der kritische Pfad ist, so dass umso mehr die Verarbeitungsgeschwindigkeit behindert wird.
  • Daher wurde die Zugriffszeit zwischen DRAMs nicht verbessert, so dass der Verdienst von Einbau-DRAMs nicht allzu sehr in Erscheinung tritt.
  • Die WO97/35316 A (und die EP 0 889 478 A ) offenbart einen Chip einer integrierten Halbleiterschaltung, der einen Bildprozessor, einen Befehls- /Quellendatenspeicher, der auf einer Seite des Bildprozessors angeordnet ist, und zwei Zeichnungs-/Anzeigespeicher, die auf der anderen Seite des Bildprozessors angeordnet sind, aufweist.
  • Schließlich wird auf WO98/19308 A (und die EP 0 935 252 A ) bezuggenommen, die einen Chip einer integrierten Speicherschaltung offenbart, die eine Innenschaltung sowie vier DRAM-Matrizen und entsprechende SRAM-Matrizen aufweist.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Bildverarbeitungsgerät bereitzustellen, welches in der Lage ist, effektiv eine Speicherschaltung zu nutzen, die zusammen mit einer Logikschaltung vorgesehen ist, und das ermöglicht, die Verarbeitungsgeschwindigkeit zu steigern und dem Leistungsverbrauch zu reduzieren, ohne die Leistungsfähigkeit zu verschlechtern.
  • Die obige Aufgabe wird durch Bereitstellen eines Bildverarbeitungsgeräts gemäß Anspruch 1 gelöst, das dadurch gekennzeichnet ist, dass die Logikschaltung in mehrere Pixelverarbeitungsblöcke unterteilt ist, die den Speichermodulen der Speicherschaltung entsprechen, und dass jeder Pixelverarbeitungsblock eng an das entsprechende Speichermodul angeordnet ist.
  • Die abhängigen Patentansprüche sind weitere Entwicklungen dieses Bildverarbeitungsgeräts.
  • Von einem anderen Blickwinkel her erläutert besteht bei der vorliegenden Erfindung die Speicherschaltung aus mehreren unabhängigen Modulen. Aus diesem Grund steigt das Verhältnis gültiger Daten, welche in einer Bitleitung bei einem Zugriff gehalten werden, an, verglichen mit dem Fall, wo Zugriffe simultan durchgeführt werden müssen.
  • Die mehreren unterteilten Speichermodule sind an den Randbereichen der Logikschaltung angeordnet, um die Grafikzeichnungsverarbeitung usw. auszuführen.
  • Als Folge davon werden die Abstände von den entsprechenden Speichermodulen zur Logikschaltung gleichförmig und die Länge der längsten Pfadzwischenverbindung wird abgekürzt verglichen mit dem Fall, wo alle Module in einer Richtung angeordnet sind. Daher wird die Betriebsgeschwindigkeit insgesamt verbessert.
  • Außerdem ist ein Funktionsblock zum Steuern der Pixelverarbeitung bei der Grafikzeichnung eng an jedem der Speichermodule der Speicherschaltung angeordnet.
  • Daher kann die Lese-/Modifizierungs-/Schreib-/Verarbeitung, die eine extrem häufig bei der Grafikverarbeitung durchgeführt wird, in einem sehr kurzen Zwischenverbindungsbereich durchgeführt werden. Daher wird die Betriebsgeschwindigkeit stark verbessert.
  • In jedem Speichermodul ist ein Sekundärspeicher eng am Modul angeordnet.
  • Aus diesem Grund gibt es, sogar wenn Daten von einer Speicherschaltung zu einem Sekundärspeicher über einen Pfad übertragen werden, der eine sehr große Breite hat, es einen geringen Effekt eines sogenannten Übersprechens. Da außerdem die Zwischenverbindungslänge natürlich kurz ist, wird die Betriebsgeschwindigkeit verbessert. Außerdem wird der Bereich, der durch die Zwischenverbindungen eingenommen wird, ebenfalls sehr klein.
  • Da ein Funktionsblock zum Steuern der Pixelverarbeitung beim Grafikzeichnen zumindest eine Stufe der Pipeline-Verarbeitung darin durchführt, ist es, sogar wenn der Abstand zu einem Block, der eine andere Grafikverarbeitung ausführt, der an der Mitte angeordnet ist, im Durchschnitt lang ist, möglich, den Effekt des Durchsatzes zur Datenverarbeitung zu beseitigen, wodurch die Verarbeitungsgeschwindigkeit verbessert wird.
  • Außerdem sind die Eingangs-/Ausgangsanschlüsse an den Modulen, die an den Randbereichen der Logikschaltung angeordnet sind, um die Grafikzeichnungsverarbeitung usw. auszuführen, um diese zu umgeben, an den inneren Seiten angeordnet, die der Logikschaltung zugewandt sind.
  • Aufgrund dessen ist der Zwischenverbindungsbereich geordnet, und die durchschnittliche Zwischenverbindungslänge wird kürzer.
  • Außerdem werden mehrere Funktionsblöcke zum Steuern der Pixelverarbeitung, sogar, wenn sie für Module gibt, die die gleiche Funktion haben, bezüglich der Positionen ihrer Anschlüsse gewechselt, um Pfade herauszunehmen, um so zu ermöglichen, dass die Pfade optimal zu Funktionsblöcken gelegt werden, die Pfade von den Modulen verwenden.
  • Aufgrund davon können, sogar bei der gleichen Funktion die Anschlüsse der Blöcke an den optimalen Positionen für die Lagen der Anordnung der Blöcke angeordnet sein, so dass die durchschnittliche Zwischenverbindungslänge kürzer wird.
  • Außerdem ist der Block, der die größte Anzahl an Zwischenverbindungen unter den Blöcken hat, die gleich mit allen Speichermodulen verbunden sind, eng an dem mittleren Punkt angeordnet, der durch die Speicherschaltungen umgeben ist.
  • Als Ergebnis wird der Bereich, der durch die Zwischenverbindungen eingenommen wird, kleiner, und die längste Zwischenverbindungslänge wird kürzer. Daher kann die Betriebsgeschwindigkeit simultan ebenfalls verbessert werden.
  • Wenn bei jedem Modul ein Funktionsblock zum Steuern der Pixelverarbeitung in der Grafikzeichnung und ein Sekundärspeicher eng am Speichermodul angeordnet sind, sind die Speichermodule so angeordnet, dass deren Längsrichtungen zur gleichen Richtung werden wie die Spaltenrichtung eines Kerns der Speicherschaltung (beispielsweise DRAM).
  • Als Ergebnis kann verglichen mit der Anordnung in der Reihenrichtung lediglich durch Angeben der Reihenadresse der Wert einer Reihe von Daten entsprechend dieser Reihenadresse in den Sekundärspeicher einmal geladen werden, d. h., dass die Anzahl von Bits äußerst stark ansteigt.
  • Der Pixelverarbeitungsblock und der Sekundärspeicher sind eng zueinander auf der gleichen Seite einer Längsseite des Speichermoduls angeordnet.
  • Als Ergebnis können Daten in bezug auf den Pixelverarbeitungsblock und den Sekundärspeicher den gleichen Abtastverstärker verwenden. Daher kann der Anstieg des Bereichs des Kerns der Speicherschaltung auf einem Minimum gehalten werden und es werden zwei Ports möglich.
  • Diese und weitere Aufgaben und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung der bevorzugten Ausführungsformen deutlicher, die mit Hilfe der beigefügten Zeichnungen angegeben wird, in denen:
  • 1 ein Blockdiagramm des Aufbaus eines dreidimensionalen Computergrafiksystems gemäß der vorliegenden Erfindung ist;
  • 2 eine Ansicht ist, um die Funktion einer DDA-Einrichtungsschaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 3 eine Ansicht ist, um die Funktion einer Dreiecks-DDA-Schaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 4 eine Ansicht ist, um das Sortieren von Scheiteln der Dreiecks-DDA-Schaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 5 eine Ansicht ist, um die Neigungsberechnung in der Horizontalrichtung der Dreiecks-DDA-Schaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 6 eine Ansicht ist, um eine Interpolationsroutine von Scheiteldaten der Dreiecks-DDA-Schaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 7 ein Flussdiagramm ist, um die Interpolationsroutine von Scheiteldaten der Dreiecks-DDA-Schaltung gemäß der vorliegenden Erfindung zu erläutern;
  • 8 eine Ansicht ist, um ein Verfahren zum Speichern von Daten gemäß der vorliegenden Erfindung zu erläutern;
  • 9 eine Ansicht ist, um eine bevorzugte Anordnung, Ausbildung und ein Verbindungsverfahren einer Logikschaltung der Bildaufbereitungsschaltung, des DRAMs und des Sekundärspeichers zu erläutern, die zusammen auf einem Halbleiterchip angeordnet sind, gemäß der vorliegenden Erfindung;
  • 10 eine Ansicht ist, um ein Beispiel des Aufbaus eines DRAM-Moduls gemäß der vorliegenden Erfindung zu erläutern;
  • 11 eine Ansicht des Systemaufbaus des Basiskonzepts eines dreidimensionalen Computergrafiksystems ist;
  • 12 eine Ansicht ist, um die allgemeine Anordnung und den Aufbau in einem Fall zu erläutern, bei dem ein DRAM, der eine große Kapazität hat, und eine Logikschaltung zusammen auf einem Halbleiterchip vorgesehen ist; und
  • 13 eine Ansicht ist, um ein Beispiel des Aufbaus zu erläutern, um einen Mikroprozessor und einen Speicher auf einem Chip vorzusehen.
  • Anschließend wird für die vorliegende Ausführungsform ein dreidimensionales Computergrafiksystem erläutert, welches bei einem Personalcomputer und dgl. angewandt wird, und welches in der Lage ist, ein gewünschtes dreidimensionales Bild irgendeines dreidimensionalen Objektmodells auf einer Anzeigeeinrichtung, beispielsweise einer Kathodenstrahlröhre (CRT), mit einer hohen Geschwindigkeit anzuzeigen.
  • 1 ist eine Ansicht des Systemaufbaus eines dreidimensionalen Computergrafiksystems 10, welches als Bildverarbeitungsgerät gemäß der vorliegenden Erfindung dient.
  • Bei dem dreidimensionalen Computergrafiksystem 10 wird ein dreidimensionales Modell durch eine Zusammensetzung von dreiecksförmigen Einheitsgrafiken (Polygonen) ausgedrückt. Durch Zeichnen der Polygone kann dieses System die Farbe jedes Pixels auf dem Anzeigebildschirm bestimmen und die Polygon-Bildaufbereitung zur Anzeige auf dem Bildschirm durchführen.
  • Bei dem dreidimensionalen Computergrafiksystem 10 wird ein dreidimensionales Objekt so ausgedrückt, dass eine z-Koordinate verwendet wird, um die Tiefe anzuzeigen, zusätzlich zu den (x, y)-Koordinaten, um die Positionen auf einer zweidimensionalen Ebene anzuzeigen. Irgendein Punkt des dreidimensionalen Raums kann durch die drei Koordinaten (x, y, z) ausgedrückt werden.
  • Wie in 1 gezeigt ist, besteht das dreidimensionale Computergrafiksystem 10 aus einem Hauptspeicher 12, einer I/O-Schnittstellenschaltung 13 und einer Bildaufbereitungsschaltung 14, die über einen Hauptbus 15 miteinander verbunden sind.
  • Anschließend wird die Arbeitsweise der entsprechenden Komponenten erläutert.
  • Der Hauptprozessor 11 liest beispielsweise gemäß dem Fortschrittsstatus bei einem Spiel die notwenigen Grafikdaten von dem Hauptspeicher 12 und führt das Schneiden, das Beleuchten, die geometrische Verarbeitung usw. in bezug auf die Grafikdaten durch, um Polygonbildaufbereitungsdaten zu erzeugen. Der Hauptprozessor 11 gibt die Polygonbildaufbereitungsdaten S11 an die Bildaufbereitungsschaltung 14 über den Hauptbus 15 aus.
  • Die I/O-Schnittstelle 13 empfängt als Eingangsbewegungs-Steuerinformation die Polygonbildaufbereitungsdaten von außerhalb gemäß der Notwendigkeit und gibt diese an die Bildaufbereitungsschaltung 14 über den Hauptbus 15 aus.
  • Hier umfassen die Polygonaufbereitungsdaten Daten aller drei Scheitel (x, y, z, R, G, B, s, t, q) des Polygons.
  • Hier zeigen die (x, y, z)-Daten die dreidimensionalen Koordinaten eines Scheitels des Polygons, und die (R, G, B)-Daten zeigen die Luminanzwerte von Rot, Grün und Blau bei den entsprechenden dreidimensionalen Koordinaten.
  • Unter den (s, t, q)-Daten zeigen (s, t) homogene Koordinaten einer entsprechenden Textur und q zeigt den homogenen Term. Hier werden die Texturgröße USIZE und VSIZE entsprechend mit "s/q" und "t/q" multipliziert, um Koordinatendaten (u, v) der Textur zu erhalten. Die Texturkoordinatendaten (u, v) werden dazu verwendet, um auf die Texturdaten, welche im Texturpuffer 147a gespeichert sind, zuzugreifen.
  • Die Polygonbildaufbereitungsdaten zeigen körperliche Koordinatenwerte der Scheitel eines Dreiecks und Farbwerte der Scheitel und der Texturdaten.
  • Die Bildaufbereitungsschaltung 14 wird anschließend ausführlich erläutert.
  • Wie in 1 gezeigt ist, umfasst die Bildaufbereitungsschaltung 14 eine digitale Differentialanalysator-Einrichtungsschaltung 141 (DDA), eine Dreiecks-DDA-Schaltung 142, ein Texturmaschinenschaltung 143, eine Schnittstellenspeicherschaltung I/F 144, eine CRT-Steuerschaltung 145, eine Digital-Analog-Umsetzerschaltung 146 für einen Speicher mit wahlfreiem Zugriff (RAMDAC), einen DRAM 147 und einen statischen Speicher mit wahlfreiem Zugriff (SRAM) 148.
  • Die Bildaufbereitungsschaltung 14 der vorliegenden Ausführungsform ist mit einer Logikschaltung und einem DRAM 147 ausgestattet, um zumindest Anzeigedaten und Texturdaten zusammen in einem Halbleiterchip zu speichern.
  • Der DRAM 147 arbeitet als Texturpuffer 147a, als Anzeigepuffer 147b, als z-Puffer 147c und als Texturfarbnachschlagetabelle-Puffer (CLUT) 147d.
  • Der DRAM 147 ist, wie anschließend erläutert wird, in mehrere Module unterteilt (vier bei dieser Ausführungsform), welche die gleiche Funktion haben.
  • Indizes in Indexfarben und Werte der Farbnachschlagetabelle dafür sind im Textur-CLUT-Puffer 147d im DRAM 147 gespeichert, um mehrere Texturdaten zu speichern.
  • Die Indizes und die Werte der Farbnachschlagetabelle werden für die Texturverarbeitung verwendet. Ein Texturelement wird nämlich normalerweise durch die Gesamtzahl von 24 Bits von den 8 Bits von jeweils R, G und B ausgedrückt. Die Datenmenge schwillt auf diese Weise jedoch an, so dass eine Farbe unter beispielsweise 256 Farben, die vorher ausgewählt wurden, ausgewählt wird, um diese für die Texturverarbeitung zu verwenden. Als Ergebnis können mit 256 Farben die Texturelemente durch 8 Bits ausgedrückt werden. Eine Umsetzungstabelle von den Indizes auf eine aktuelle Farbe ist jedoch notwendig, je höher die Auflösung der Textur ist, um so mehr kompakt die Texturfarben werden können.
  • Aufgrund davon wird die Kompression der Texturdaten möglich und der Einbau-DRAM kann effektiv verwendet werden.
  • Die Tiefeninformation des Objekts, welches zu zeichnen ist, wird im DRAM 147 außerdem gespeichert, um eine verborgene Ebenenverarbeitung simultan und parallel mit dem Zeichnen durchzuführen.
  • Es sei angemerkt, dass als ein Verfahren zum Speichern der Anzeigedaten die Tiefendaten und die Texturdaten, die Anzeigedaten fortlaufend vom Kopf des Speicherblocks gespeichert werden, danach die Tiefendaten gespeichert werden, und dann die Texturdaten in fortlaufenden Adressräumen für jede Art von Textur in dem verbleibenden verkannten Bereich gespeichert werden. Als Folge davon können die Texturdaten wirksam gespeichert werden.
  • DDA-Einrichtungsschaltung 141
  • Die DDA-Einrichtungsschaltung 141 führt die lineare Interpolation in Bezug auf die Werte der Scheitel des Dreiecks auf den körperlichen Koordinaten in einer Dreiecks-DDA-Schaltung 142 in ihrem letzteren Teil durch. Die DDA-Einrichtungsschaltung 141 führt vor dem Erhalten der Information der Farbe in der Tiefe der entsprechenden Pixel innerhalb des Dreiecks einen Einrichtungsbetrieb durch, um die Seiten des Dreiecks und den Unterschied in einer horizontalen Richtung für die Daten (z, R, G, B, s, t, q) zu erhalten, die durch die Polygonbildaufbereitungsdaten S11 gezeigt werden.
  • Insbesondere verwendet dieser Einrichtungsbetrieb Werte des Startpunkts und des Endpunkts und des Abstands zwischen den beiden Punkten, um die Veränderung des Wertes zu berechnen, um die Bewegung für eine Einheitslänge zu finden.
  • Die DDA-Einrichtungsschaltung 141 gibt die berechneten Variationsdaten S141 an die Dreiecks-DDA-Schaltung 142 aus.
  • Die Funktion der DDA-Einrichtungsschaltung 141 wird weiter mit Hilfe von 2 erläutert.
  • Wie oben erläutert wurde, ist die Aufgabe der Hauptverarbeitung der DDA-Einrichtungsschaltung 141, die Änderung innerhalb eines Dreiecks zu erhalten, welches aus drei Scheiteln besteht, die verschiedene Information (Farb- und Texturkoordinaten) an Scheitelpunkten ergeben, die auf körperliche Koordinaten durch die frühere geometrische Verarbeitung reduziert wurden, um so Basisdaten für die spätere lineare Interpolation zu berechnen.
  • Es sei angemerkt, dass die Daten jedes Scheitels des Dreiecks beispielsweise durch 16 Bits von x- und y-Koordinaten, 24 Bits der z-Koordinaten, 12 Bits (= 8 + 4) der Farbwerte für RGB und 32 Bits von fließenden Dezimalwerten (IEEE-Format) der s-, t-, q-Texturkoordinaten gebildet sind.
  • Obwohl das Zeichnen eines Dreiecks auf das Zeichnen einer Horizontallinie reduziert ist, macht es dies nötig, die Startwerte am Startpunkt der Zeichnung der Horizontallinie zu erhalten.
  • Bei Zeichnen der Horizontallinie wird die Zeichnungsrichtung in einem Dreieck konstant gemacht. Wenn beispielsweise von links nach rechts gezeichnet wird, werden das X in bezug auf einen Versatz in der Y-Richtung einer Seite auf der linken und die obigen verschiedenen Änderungen zunächst berechnet, dann werden diese verwendet, die X-Koordinate des äußerst linken Punkts, wenn man sich von einem Scheitel zur nächsten Horizontallinie bewegt, und die Werte der obigen verschiedenen Information zu finden (Punkte auf einer Seitenänderung sowohl in der X- als auch in der Y-Richtung, so dass die Berechnung lediglich von der Neigung der Y-Richtung unmöglich ist.)
  • Lediglich die Position des Endpunkts ist für die Seite rechts erforderlich, so dass lediglich die Änderung von x in bezug auf den Versatz in der Y-Richtung ermittelt werden muss.
  • In bezug auf das Zeichnen einer Horizontallinie werden, da die Neigung in der Horizontalrichtung bei dem gleichen Dreieck gleichförmig ist, die Neigungen der obigen verschiedenartigen Information berechnet.
  • Die gelieferten Dreiecke werden in der Y-Richtung sortiert, und der oberste Punkt wird auf A festgelegt. Anschließend werden die verbleibenden zwei Scheitel hinsichtlich der Positionen in der X-Richtung verglichen, und der Punkt auf der rechten Seite wird auf B festgelegt. Dadurch kann die Verarbeitung auf lediglich in etwa zwei Schritte aufgeteilt werden.
  • Dreiecks-DDA-Schaltung 142
  • Die Dreiecks-DDA-Schaltung 142 verändert die Variationsdaten S141, die von der DDA-Einrichtungsschaltung 141 geliefert werden, um die linearinterpolierten Daten (z, R, G, B, s, t, q) für jedes Pixel innerhalb des Dreiecks zu berechnen.
  • Die Dreiecks-DDA-Schaltung 142 gibt die Daten (x, y) für jedes Pixel und die Daten (z, R, G, B, s, t, q) bei den (x, y) Koordinaten an die Texturmaschinenschaltung 143 als DDA-Daten (Interpolationsdaten) S142 aus.
  • Beispielsweise gibt die Dreiecks-DDA-Schaltung 142 die DDA-Daten S142 von 8 ( = 2 × 4) Pixel, die innerhalb eines Blocks angeordnet sind, der parallel zu der Texturmaschinenschaltung 143 verarbeitet wird, aus.
  • Die Funktion der Dreiecks-DDA-Schaltung 142 wird nun mit Hilfe von 3 erläutert.
  • Wie oben erläutert wurde, wird die Neigungsinformation der obigen verschiedenartigen Information der Seiten und der Horizontalrichtung eines Dreiecks durch die DDA-Einrichtungsschaltung 141 vorbereitet. Die Basisverarbeitung der Dreiecks-DDA-Schaltung 142, welche diese Information empfängt, besteht aus der Berechnung der Anfangswerte der Horizontalzeile, wobei die verschiedenartige Information auf den Seiten des Dreiecks und die verschiedenartige Information auf der Horizontallinie interpoliert werden.
  • Was hier am meisten angemerkt werden muss, ist das, dass die Berechnung von Ergebnissen der Interpolation die Berechnung der Werte in der Mitte eines Pixels erfordert.
  • Der Grund dafür ist, dass, wenn der Wert, der berechnet wurde, von der Mitte des Pixels beabstandet ist, wobei man sich nicht in dem Fall eines Standbildes allzu viel Sorge machen muss, das Flackern des Bilds bei einem Bewegtbild deutlich hervortreten wird.
  • Die verschiedenartige Information an der äußerst linken Seite einer ersten Horizontalzeile (Zeile, die natürlich die Mittelpunkte von Pixeln verbindet) kann durch Multiplizieren der Neigung auf der Seite mit dem Abstand von dem Scheitel zur ersten Zeile erhalten werden.
  • Die verschiedenartige Information am Startpunkt der nächsten Zeile kann durch Addition der Neigung der Seite berechnet werden.
  • Der Wert bei dem ersten Pixel der Horizontalzeile kann durch Addition des Werts, der durch Multiplizieren des Abstands erhalten wird, zum ersten Pixel mit der Neigung in der Horizontalrichtung zum Wert beim Startpunkt der Zeile berechnet werden. Der Wert beim nächsten Pixel der Horizontalzeile kann durch Addition der Neigung in der Horizontalrichtung nachfolgend zum ersten Pixelwert berechnet werden.
  • Anschließend wird das Sortieren (Trennen) von Scheitelpunkten mit Hilfe von 4 erläutert.
  • Durch vorheriges Sortieren der Scheitelpunkte kann das Verzweigen der nachfolgenden Verarbeitung auf ein Minimum reduziert werden, und Unvereinbarkeiten können so sein, dass sie schwerer innerhalb eines Dreiecks auftreten, und zwar so viel wie möglich sogar bei Interpolation.
  • Als Sortierverfahren werden zunächst alle gelieferten Scheitel in der Y-Richtung sortiert, und der oberste Punkt und der unterste Punkt werden als Punkt A bzw. als Punkt C definiert. Der verbleibende Punkt wird als Punkt B definiert.
  • Wenn man so verfährt, wird bei der Verarbeitung die Seite, die sich am längsten in der Y-Richtung erstreckt, eine Seite AC. Zunächst wird die Seite AC und die Seite AB für die Interpolation des Bereichs zwischen den beiden Seiten verwendet, dann wird die Interpolation für den Bereich zwischen der Seite BC und der Seite AC durchgeführt, d. h., dass die Seite AC so wie sie ist gelassen wird, und von der Seite AB gewechselt wird. Wie man verstehen wird, ist es ausreichend, die Verarbeitung in Bezug auf die Seite AC und die Seite BC zur Korrektur auf dem Pixelkoordinatenraster in der Y-Richtung durchzuführen.
  • Da das Verzweigen der Verarbeitung nach dem Sortieren auf diese Weise nicht notwendig wird, kann die Verarbeitung dadurch ausgeführt werden, dass lediglich die Daten geliefert werden, es kann verhindert werden, dass Defekte auftreten, und der Aufbau wird einfach.
  • Da außerdem die Richtung der Interpolation in einem Dreieck konstant gemacht werden kann, indem ein Startpunkt auf der Seite BC festgelegt wird, wird die Interpolationsrichtung (Spanne) in der Horizontalrichtung konstant, und jegliche Berechnungsfehler, welche auftreten, werden von der Seite BC zu anderen Seiten akkumuliert. Da die Richtung der Akkumulation konstant wird, werden Fehler zwischen benachbarten Seiten weniger auffällig.
  • Anschließend wird die Berechnung der Neigung (Inklination) in der Horizontalrichtung mit Hilfe von 5 erläutert.
  • Die Inklination (variabler Wert) der Variablen (x, y, z, R, G, B, s, t, q) innerhalb eines Dreiecks in bezug auf (x, y) wird aufgrund der linearen Interpolation konstant.
  • Folglich wird die Inklination in der horizontalen Richtung, d. h., die Inklination in jeder horizontalen Zeile (Spanne) für alle Spannen konstant, so dass die Inklination vor der Verarbeitung der Spannen erhalten wird.
  • Als Ergebnis des Sortierens der vorgegebenen Scheitel des Dreiecks in der y-Richtung wird die Seite AC wieder so definiert, dass sie die längste sich erstreckende Seite ist, so dass es immer einen Schnittspunkt einer Zeile gibt, der sich von dem Scheitel B in der Horizontalrichtung und der Seite AC erstreckt. Der Punkt wird als D definiert.
  • Danach kann, indem gerade die Änderung zwischen dem Punkt B und D erhalten wird, die Inklination in der Horizontalrichtung, d. h., in der x-Richtung erhalten werden.
  • Insbesondere werden die x- und z-Koordinaten am Punkt D so, wie in den Gleichungen unten gezeigt ist. xd = {(yd – ya)/(yc – ya)}·(xc – xa) zd = {(yd – ya)/(yc – ya)}·(zc – za)
  • Wenn die Inklination der Variablen z in der x-Richtung auf der Basis davon erhalten wird, wird folgendes erhalten: Δz/Δx = (zd – zb)/(xd – xb) = (yd – ya)/(yc – ya)}·(zc – za) – zb]/ [{(yd – ya)/(yc – ya)}·(xc – xa) – xb] = {zb(yc – ya) – (zc – za)(yc – ya)}/ {xb(yc – ya) – (zc – za)(yc – ya)}
  • Anschließend wird ein Beispiel der Routine zur Interpolation von Scheiteldaten mit Hilfe von 6A, 6B und 7 erläutert.
  • Nach der Verarbeitung zum Sortieren der Scheitel werden die Berechnung der Inklination in der Horizontalrichtung und die Berechnung der Inklination in allen Seiten unter Verwendung der Ergebnisse ausgeführt.
  • In Abhängigkeit von der Position des Punkts B spaltet sich die Verarbeitung an einer Spanne in zwei Richtung auf. Der Grund dafür liegt darin, dass man wünscht, die Verarbeitung immer so durchzuführen, dass die Seite, die sich am längsten in der Y-Richtung erstreckt, als Startpunkt verwendet wird, um so zu versuchen, eine Schwierigkeit so weit wie möglich zu verhindern, indem die Sammlungsrichtung von Fehlern zwischen entsprechenden Spannen in der Interpolation innerhalb eines Dreiecks konstant gemacht wird.
  • Wenn der Punkt B in der gleichen Höhe wie der Punkt A ist, wird die erste Hälfte der Verarbeitung übersprungen. Daher kann die Verarbeitung verbessert werden, wobei ein Kippmechanismus bevorzugt zu einem Verzweigmechanismus vorgesehen wird.
  • Wenn versucht wird, die Verarbeitungsfähigkeit durch simultanes Verarbeiten mehrerer Spannen zu verbessern, wird gewünscht, die Inklination in der Y-Richtung zu erhalten, wobei es jedoch notwenig ist, die Verarbeitung wieder vom Sortieren der Scheitel auszuführen. Die Verarbeitung vor der Interpolationsverarbeitung ist jedoch ausreichend, so dass das Verarbeitungssystem insgesamt einfacher wird.
  • Wenn insbesondere der Punkt B nicht in der gleichen Höhe wie der Punkt A ist, wird die Y-Richtungskorrektur von AC und AB (Berechnung der Werte auf einem Pixelgitter) durchgeführt (ST1 und ST2), und die Interpolation auf der Seite AC und die Interpolation auf der Seite AB werden durchgeführt (ST3).
  • Dann wird die Korrektur in der AC-Horizontalrichtung und die Interpolation auf der Horizontalzeile (Spanne) von der Seite AC in der Seite AB-Richtung (ST4) ausgeführt.
  • Die obige Verarbeitung der Schritte ST3 und ST4 wird bis zum Ende der Seite AB (STS) durchgeführt.
  • Wenn die Verarbeitung der Schritte ST2 bis ST4 bis zum Ende der Seite AB abgeschlossen ist oder wenn im Schritt ST1 beurteilt wird, dass der Punkt B die gleiche Höhe hat wie der Punkt A, wird die Y-Richtungskorrektur von BC (Berechnung der Werte auf dem Pixelraster) ausgeführt (ST6) und die Interpolation auf der Seite AC und die Interpolation auf der Seite BC werden ausgeführt (ST7).
  • Dann werden die Korrektur in der AC-Horizontalrichtung und die Interpolation auf der Horizontallinie (Spanne) ausgeführt (ST8).
  • Die Verarbeitung der obigen Schritte ST7 und ST8 wird bis zum Ende der Seite BC (ST9) ausgeführt.
  • Texturmaschinenschaltung 143
  • Die Texturmaschinenschaltung 143 führt die Berechnung von "s/q" und "t/q" durch, die Berechnung der Texturkoordinatendaten (u, v) und das Lesen der Daten (R, G, B) vom Texturpuffer 147a sukzessive in einem Pipeline-Format.
  • Es sei angemerkt, dass die Texturmaschinenschaltung 143 die Verarbeitung in bezug auf die 8 Pixel, die innerhalb eines vorher festgelegten Blocks angeordnet sind, simultan parallel durchführt.
  • Die Texturmaschinenschaltung 143 führt den Betrieb durch, um die Daten s durch die Daten q zu teilen und den Betrieb, um die Daten t durch die Daten q zu teilen, in bezug auf die (s, t, q)-Daten, die durch die DDA-Daten S142 gezeigt werden.
  • Die Texturmaschinenschaltung 143 ist beispielsweise mit 8 nicht gezeigten Unterteilungsschaltungen versehen und führt die Teilung "s/q" und "t/q" simultan bezüglich der 8 Pixel durch.
  • Die Texturmaschine 143 multipliziert außerdem entsprechend die Texturgrößen USIZE und VSIZE mit den Teilungsergebnissen "s/q" und "t/q", um die Texturkoordinatendaten (u, v) zu erzeugen.
  • Die Texturmaschinenschaltung 143 gibt eine Leseanfrage, die die erzeugten Texturkoordinatendaten (u, v) umfasst, an den SRAM 148 oder den DRAM 147 über die Speicher-I/F-Schaltung 144 aus. Als Ergebnis erzielt die Texturmaschinenschaltung 143 die (R, G, B)-Daten S148, die in der Texturadresse gespeichert sind, entsprechend den Daten (s, t), wobei die Texturdaten, welche im SRAM 148 oder im Texturpuffer 147a gespeichert sind, über die Speicher-I/F-Schaltung 144 gelesen werden.
  • Hier werden die Texturdaten, die im Texturpuffer 147a gespeichert sind, im SRAM 148 gespeichert.
  • Die Texturmaschinenschaltung 143 erzeugt Pixeldaten S143, wobei die (R, G, B)-Daten in den gelesenen (R, G, B)-Daten S148 und die (R, G, B)-Daten, die in den DDA-Daten S142 von der Dreiecks-DDA-Schaltung 142 in der vorhergehenden Stufe enthalten sind, multipliziert werden.
  • Die Texturmaschinenschaltung 143 gibt die Pixeldaten S143 an die Speicher-I/F-Schaltung 144 aus.
  • Es sei angemerkt, dass im Texturpuffer 147a MIPMAP (Textur für mehrere Auflösungen) oder andere Texturdaten entsprechend einer Vielzahl von Reduzierraten gespeichert sind. Hier werden Texturdaten, von denen die Reduzierrate zu verwenden ist, für die obige Dreieckseinheit bestimmt, wobei ein vorher festgelegter Algorithmus verwendet wird.
  • Bei einem Vollfarbmodus verwendet die Texturmaschinenschaltung 143 unmittelbar die (R, G, B)-Daten, die vom Texturpuffer 147a gelesen werden.
  • Bei einem Indexfarbmodus liest die Texturmaschinenschaltung 143 eine Farbnachschlagetabelle (CLUT), die vorher vorbereitet wurde, aus dem Textur-CLUT-Puffer 147d, überträgt und speichert diese im Einbau-SRAM und verwendet die Farbnachschlagetabelle, um die (R, G, B)-Daten entsprechend dem Farbindex, der vom Texturpuffer 147a gelesen wurde, zu erzielen.
  • Speicher-I/F-Schaltung 144
  • Die Speicher-I/F-Schaltung 144 vergleicht die z-Daten, die den Pixeldaten S143 entsprechen, die von der Texturmaschinenschaltung 143 geliefert werden, mit den z-Daten, die im z-Puffer 147c gespeichert sind, und beurteilt, ob das Bild, welches durch die Eingangspixeldaten gezeichnet wird, näher an den Sichtpunkt als das Bild positioniert ist, welches in dem Anzeigepuffer 147b das vorherige Mal geschrieben wurde. Wenn beurteilt wird, dass das Bild, welches durch die Eingangspixeldaten S143 gezeichnet wurde, näher positioniert ist, aktualisiert die Speicher-I/F-Schaltung 144 die z-Daten, die im Puffer 147c gespeichert sind, durch die z-Daten, die den Bilddaten S143v entsprechen.
  • Außerdem schreibt die Speicher-I/F-Schaltung 144 die (R, G, B)-Daten in den Anzeigepuffer 147b.
  • Es sei angemerkt, dass auf den DRAM 147 simultan durch die Speicher-I/F-Schaltung 144 für 16 Pixel zugegriffen wird.
  • Der DRAM 147 ist beispielsweise, wie in 8 gezeigt ist, in vier DRAM-Module 1471 bis 1474 bei dieser Ausführungsform unterteilt. Die Speicher-I/F-Schaltung 144 ist mit Speichersteuerungen 1441 bis 1444 versehen, die den entsprechenden DRAM-Modulen 1471 bis 1474 entsprechen, und mit einem Verteiler 1445, um Daten an die Speichersteuerungen 1441 bis 1444 zu verteilen.
  • Die Speicher-I/F-Schaltung 144 ordnet die Pixeldaten, so dass benachbarte Bereiche im Anzeigebereich in unterschiedlichen Modulen sind, wie in 8 gezeigt ist, für die jeweiligen DRAM-Module 1471 bis 1474 um.
  • Wenn als Ergebnis eine Ebene, beispielsweise ein Dreieck gezeichnet wird, ist eine simultane Verarbeitung möglich, so dass Betriebswahrscheinlichkeiten der jeweiligen DRAM-Module sehr hoch werden.
  • CRT-Steuerschaltung 145
  • Die CRT-Steuerschaltung 145 erzeugt eine Adresse zur Anzeige auf einer nicht gezeigten CRT synchron mit den vorgegebenen horizontalen und vertikalen Synchronisationssignalen und gibt eine Anforderung, um die Anzeigedaten vom Anzeigepuffer 147b zu lesen, an die Speicher-I/F-Schaltung 144 aus. Als Antwort auf diese Anforderung liest die Speicher-I/F-Schaltung 144 eine gewisse Menge der Anzeigedaten vom Anzeigepuffer 147b. Die CRT-Steuerung 145 hat eine eingebaute FIFO-Schaltung, um die Anzeigedaten, die vom Anzeigepuffer 147b gelesen werden, zu speichern, und gibt den Indexwert von RGB an die RAMTAC-Schaltung 146 in bestimmten Zeitintervallen aus.
  • RAMDAC-Schaltung 146
  • Die RAMTAC-Schaltung 146 speichert die R, G, B-Daten entsprechend den entsprechenden Indexwerten, überträgt die R, G, B-Daten in einer digitalen Form, die dem Indexwert von RGB entsprechen, der von der CRT-Steuerung 145 geliefert wird, zu einem nicht gezeigten D/A-Umsetzer (Digital-Analog-Umsetzer) und erzeugt R, G, B-Daten in einem analogen Format. Die RAMTAC-Schaltung 146 gibt die erzeugten R, G, B-Daten an eine nicht gezeigte CRT aus.
  • Anschließend werden eine bevorzugte Ausführungsform, Anordnung und ein Zwischenverbindungsverfahren der Logikschaltung der Bildaufbereitungsschaltung 14 und des Sekundärspeichers, der aus dem DRAM 147 und dem SRAM 148 besteht, die zusammen auf dem gleichen Halbleiterchip vorgesehen sind, mit Hilfe von 9 und 10 erläutert.
  • Das obige Zeichnen wird schließlich auf den Zugriff jedes einzelnen Pixels reduziert. Folglich ist es das Ideal, die Zeichnungsleistung für exakte die Anzahl von parallelen Verarbeitungen zu steigern, wobei simultan die Verarbeitung eines jedes Pixels parallel durchgeführt wird.
  • Zu diesem Zweck ist die Speicher-I/F-Schaltung 144, die das Speichersystem bei dem vorliegenden dreidimensionalen Computergrafiksystem bildet, ebenfalls ausgebildet, in der Lage zu sein, simultane Verarbeitung parallel durchzuführen.
  • Bei der Grafikzeichnungsverarbeitung wird, wie oben erwähnt wurde, gelernt, dass eine Pixelverarbeitungsschaltung Daten häufig mit dem DRAM übertragen muss.
  • Daher sind bei der vorliegenden Ausführungsform, wie in 9 gezeigt ist, Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449, welche als Funktionsblöcke dienen, um die Pixelverarbeitung zu steuern, körperlich von der Speichersteuerung getrennt. Die Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449 sind eng an den entsprechenden DRAM-Modulen 1471, 1472, 1473 und 1474 angeordnet.
  • Die Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449 führen die gesamte Lese-/Modifizierungs-/Schreibverarbeitung der (R, G, B)-Farben und die Verarbeitung in bezug auf die Arbeit durch, um die Tiefendaten, die vorher für verborgene Ebenenverarbeitung gezeichnet wurden, mit der Tiefe von Daten zu vergleichen, die von nun an zu zeichnen sind und um diese gemäß dem Ergebnis umzuschreiben.
  • Durch Ausführen dieser Arbeit in den Pixelverarbeitungsmodulen 1446, 1447, 1448 und 1449 kann die Kommunikation mit dem DRAM innerhalb Modulen abgeschlossen werden, die kurze Verbindungslängen zu den DRAM-Modulen 1471, 1472, 1473, 1474 haben.
  • Sogar, wenn die Anzahl von Verbindungen mit dem DRAM, d. h., die Anzahl von Bits zur Übertragung erhöht wird, kann daher das Verhältnis des Bereichs, der durch die Verbindungen eingenommen wird, klein gehalten werden. Damit kann die Betriebsgeschwindigkeit verbessert werden und der Verbindungsbereich reduziert werden.
  • In bezug auf ein Innen-DRAM-Steuermodul 1450 einschließlich eines Verteilers wird die Beziehung mit dem DRAM-Modulen (DRAM + Pixelverarbeitung) stärker verglichen mit einem DDA-Einrichtungsbetrieb der DDA- Einrichtungsschaltung 141, dem Dreiecks-DDA-Betrieb der Dreiecks-DDA-Schaltung 142, der Texturanswendung der Texturmaschinenschaltung 143 und der Anzeigeverarbeitung durch die CRT-Steuerschaltung 145 als Zeichnungsverarbeitung. Die Anzahl von Signalleitungen mit den DRAM-Modulen 1471, 1472, 1473 und 1474 wird am größten.
  • Folglich ist das Inter-DRAM-Steuermodul 1450 in der Nähe der Mitte der DRAM-Module 1471, 1472, 1473 und 1474 angeordnet, um die längste Verbindung so kurz wie möglich zu machen.
  • Wenn man auf die Signaleingangs-/Ausgangsanschlüsse zum Verbindung der Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449 mit dem Inter-DRAM-Steuermodul 1450 schaut, werden, wie in 9 gezeigt ist, die Eingangs- /Ausgangsanschlüsse in den Pixelverarbeitungsmodulen 1446, 1447, 1448 und 1449 nicht gleich ausgeführt. Die Positionen der Signaleingangs-/Ausgangsanschlüsse an den Pixelverarbeitungsmodulen werden eingestellt, so dass die individuellen Pixelverarbeitungsmodule und das Inter-DRAM-Steuermodul 1450 in der geeigneten (kürzesten) Weise verbunden sind.
  • Insbesondere hat das Pixelverarbeitungsmodul 1446 in 9 einen Eingangs-/Ausgangsanschluss T1446a, der auf der rechten Seite des unteren Randbereichs des Moduls gebildet ist. Der Eingangs-/Ausgangsanschluss T1446a ist so angeordnet, dass er dem Eingangs-/Ausgangsanschluss T1450a zugewandt ist, der auf der linken Seite des oberen Randbereichs des Inter-DRAM-Steuermoduls 1450 gebildet ist. Die beiden Anschlüsse T1446a und T1450a sind daher über den kürzesten Abstand miteinander verbunden.
  • Das Pixelverarbeitungsmodul 1446 in 9 hat einen Eingangs- /Ausgangsanschluss T1446b für die Verbindung mit dem DRAM-Modul 1471, welches am mittleren Bereich des oberen Randbereichs gebildet ist.
  • Das Pixelverarbeitungsmodul 1447 in 9 hat einen Eingangs- /Ausgangsanschluss T1447a, der auf der linken Seite des unteren Randbereichs des Moduls gebildet ist. Der Eingangs-/Ausgangsanschluss T1447a ist so angeordnet, dass er den Eingangs-/Ausgangsanschluss T1450b zugewandt ist, der auf der rechten Seite des oberen Randbereichs des Inter-DRAM-Steuermoduls 1450 gebildet ist. Die beiden Anschlüsse T1447a und T1450b sind daher über den kürzesten Abstand miteinander verbunden.
  • Das Pixelverarbeitungsmodul 1447 in 9 hat einen Eingangs- /Ausgangsanschluss T1447b zur Verbindung mit dem DRAM-Modul 1442, welches am mittleren Bereich des oberen Randbereichs gebildet ist.
  • Das Pixelverarbeitungsmodul 1448 in 9 hat einen Eingangs- /Ausgangsanschluss T1448a, welcher auf der rechten Seite des oberen Randbereichs des Moduls gebildet ist. Der Eingangs-/Ausgangsanschluss T1448a ist so angeordnet, dass er dem Eingangs-/Ausgangsanschluss 1450c zugewandt ist, der auf der linken Seite des unteren Randbereichs des Inter-DRAM-Steuermoduls 1450 gebildet ist. Die beiden Anschlüsse T1448a und T1450c sind daher über den kürzesten Abstand miteinander verbunden.
  • Das Pixelverarbeitungsmodul in 9 hat einen Eingangs- /Ausgangsanschluss 1448 zur Verbindung mit dem DRAM-Modul 1473, welches an dem mittleren Bereich des unteren Randbereichs gebildet ist.
  • Das Pixelverarbeitungsmodul 1449 in 9 hat einen Eingangs- /Ausgangsanschluss T1449a, der auf der linken Seite des oberen Randbereichs des Moduls gebildet ist. Der Eingangs-/Ausgangsanschluss T1449a ist so angeordnet, dass er dem Eingangs-/Ausgangsanschluss T1450d zugewandt ist, der auf der rechten Seite des unteren Randbereichs des Inter-DRAM-Steuermoduls 1450 gebildet ist. Die beiden Anschlüsse T1449a und T1450d sind daher über den kürzesten Abstand miteinander verbunden.
  • Das Pixelverarbeitungsmodul 1449 in 9 hat einen Eingangs- /Ausgangsanschluss 1449 zur Verbindung mit dem DRAM-Modul 1474, welches am mittleren Bereich des unteren Randbereichs gebildet ist.
  • Es sei angemerkt, das die Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449 so ausgebildet sind, dass sie für die Verarbeitung, für welche die Verarbeitungsgeschwindigkeitsanforderung nicht erfüllt werden kann, sogar dann, wenn die Pfade von den DRAM-Modulen 1471, 1472, 1473 und 1474 zum Inter-DRAM-Steuermodul 1450 auf die geeignetsten Längen in der obigen Weise gebildet sind, sie zumindest eine Stufe der Pipelineverarbeitung durchführen können, beispielsweise unterteilt durch Register, um zu ermöglichen, dass die gewünschte Verarbeitungsgeschwindigkeit erzielt werden kann.
  • Außerdem sind die DRAM-Module 1471 bis 1474 gemäß der vorliegenden Ausführungsform so aufgebaut, wie in 10 gezeigt ist. Es sei hier angemerkt, dass eine Erläuterung vorgenommen wird, wobei als Beispiel das DRAM-Modul 1471 hergenommen wird, wobei jedoch die anderen DRAM-Module 1472 bis 1474 den gleichen Aufbau haben und folglich auf Erläuterungen dafür verzichtet wird.
  • Das DRAM-Modul 1471 weist, wie in 10 gezeigt ist, einen DRAM-Kern 1480 auf, der Speicherzellen hat, die in einer Matrix angeordnet sind und auf die über nicht gezeigte Wortleitungen und Bitleitungen zugegriffen wird, die auf der Basis einer Reihenadresse RA und einer Spaltenadresse CA ausgewählt werden, einen Reihendecoder 1481, einen Abtastverstärker 1482, einen Spaltendecoder 1483 und einen Sekundärspeicher, der die gleiche Funktion hat wie ein sogenannter Cache-Speicher, der aus einem SRAM besteht.
  • Wie bei der vorliegenden Ausführungsform sind für jedes DRAM-Modul die Pixelverarbeitungsmodule 1446 bis 1449, die als Funktionsblöcke dienen, um die Pixelverarbeitung beim Grafikzeichnen zu steuern, und der Sekundärspeicher 1484 des DRAM-Moduls eng am DRAM-Modul angeordnet.
  • In diesem Fall ist der DRAM so angeordnet, dass dessen sogenannte Längsrichtung zur Spaltenrichtung des DRAM-Kerns 1480 wird.
  • Wenn man auf das wahlfreie Lesen in dem Aufbau von 10 schaut, so werden ein Steuersignal und ein notwendiges Adresssignal S1446 vom Pixelverarbeitungsmodul 1446 zum DRAM-Modul 1471 über einen Adresssteuerpfad, geliefert, die Reihenadresse RA und die Spaltenadresse CA werden auf der Basis der gleichen erzeugt, und die DRAM-Daten, die der gewünschten Reihe entsprechen, werden über den Abtastverstärker 1482 gelesen.
  • Die Daten, welche über den Abtastverstärker 1480 laufen, werden auf die notwenige Spalte gemäß der gewünschten Spaltenadresse CA durch den Spaltendecoder reduziert, und die Daten D1471 des DRAMs, die der gewünschten Reihen/Spalte entsprechen, werden vom Zufallsgegriffsport über einen Pfad zum Pixelverarbeitungsmodul 1446 übertragen.
  • Wenn Daten in den Sekundärspeicher geschrieben werden, werden ein Steuersignal und ein notwendiges Adresssignal S1446 vom Pixelverarbeitungsmodul 1446 über einen Adresssteuerpfad zum DRAM-Modul 1471 geliefert. Lediglich eine Reihenadresse wird auf der Basis der gleichen erzeugt, und der Datenwert einer Reihe wird zu einer Zeit vom DRAM in den Sekundärspeicher 1484 geschrieben, der aus dem SRAM 148 usw. besteht.
  • Da der DRAM so angeordnet ist, dass dessen Längsrichtung die Spaltenrichtung des DRAM-Kerns 1480 ist, kann in diesem Fall der Datenwert einer Reihe entsprechend der Reihenadresse in einem Zeitpunkt in den Sekundärspeicher 1484 geladen werden, indem die Reihenadresse bestimmt wird, d. h., dass die Anzahl von Bits äußerst stark in Vergleich mit dem Fall der Anordnung in der Reihenrichtung ansteigt.
  • Die Daten D1484 werden vom Sekundärspeicher (SRAM) 1484 in die Texturmaschinenschaltung 143 gelesen, die als Texturverarbeitungsmodul dient, wobei ein Steuersignal und ein notwendiges Adresssignal von der Texturmaschinenschaltung 143 über einen Adresssteuerpfad zum DRAM geliefert werden und die entsprechenden Daten D1484 über einen Datenpfad zur Texturmaschinenschaltung 143 übertragen werden.
  • Bei der vorliegenden Ausführungsform werden, wie in 10 gezeigt ist, das Pixelmodul und der Sekundärspeicher des DRAM-Moduls eng aneinander auf der gleichen Seite der langen Seite des DRAM-Moduls angeordnet.
  • Als Ergebnis können Daten zu dem Pixelverarbeitungsmodul und zum Sekundärspeicher den gleichen Abtastverstärker verwenden, so dass der Anstieg des Bereichs des DRAM-Kerns auf ein Minimum gehalten werden kann und zwei Ports realisiert werden können.
  • Anschließend wird der Gesamtbetrieb des dreidimensionalen Computergrafiksystems erläutert.
  • Bei dem dreidimensionalen Computergrafiksystem 10 werden Daten für das Grafikzeichnen usw. vom Hauptspeicher 12 des Hauptprozessors 11 oder von der I/O-Schnittstellenschaltung 13, um Grafikdaten von außerhalb zu empfangen, zur Bildaufbereitungsschaltung 14 über den Hauptbus 15 geliefert.
  • Es sei angemerkt, dass gemäß der Notwendigkeit die Daten zum Grafikzeichnen usw. einer Koordinatenumsetzung, einem Klammern, einem Beleuchten und andere geometrischer Verarbeitung im Hauptprozessor 11 usw. unterworfen sind.
  • Die geometrisch verarbeiteten Grafikdaten werden zu Polygonbildaufbereitungsdaten S11, die aus den Scheitelkoordinaten x, y, z von den entsprechenden drei Scheiteln von Dreiecks-Luminanzwerten R, G, B und Texturkoordinaten s, t, q entsprechend dem zu zeichnenden Pixel bestehen. Die Polygonbildaufbereitungsdaten S11 werden zur DDA-Einrichtungsschaltung 141 der Bildaufbereitungsschaltung 14 geliefert.
  • Die DDA-Einrichtungsschaltung 141 erzeugt Variationsdaten S141, die einen Unterschied zwischen Seiten des Dreiecks und der Horizontalrichtung auf der Basis der Polygonbildaufbereitungsdaten S11 zeigen. Insbesondere verwendet sie Werte eines Startpunkts und eines Endpunkts und einen Abstand zwischen den beiden, um eine Änderung des Änderungsbetrags des erzielten Wertes zu berechnen, wenn um eine Einheitslänge eine Bewegung erfolgt, und gibt das Ergebnis an die Dreiecks-DDA-Schaltung 142 als Variationsdaten 5141 aus.
  • Die Dreiecks-DDA-Schaltung 142 verwendet die Variationsdaten S141, um die linear-interpolierten Daten (z, R, G, B, s, t, q) der Pixel innerhalb des Dreiecks zu berechnen.
  • Die berechneten Daten (z, R, G, B, s, t, q) und die (x, y)-Daten der entsprechenden Scheitel des Dreiecks werden an die Texturmaschinenschaltung 143 als DDA-Daten S142 ausgegeben.
  • Die Texturmaschinenschaltung 143 führt den Betrieb zum Unterteilen der s-Daten durch die q-Daten durch und den Betrieb zum Teilen der t-Daten durch die q-Daten in bezug auf die Daten (s, t, q), die durch die DDA-Daten S142 gezeigt werden. Sie multipliziert die Teilungsergebnisse "s/q" und "t/q" durch die Texturgrößen USIZE und VSIZE, um die Texturkoordinatendaten (u, v) zu erzeugen.
  • Danach wird eine Leseanforderung, die die erzeugten Texturkoordinatendaten (u, v) umfasst, von der Texturmaschinenschaltung 143 über die Speicher-I/F-Schaltung 148 an den SRAM 148 ausgegeben, und die Daten S148 (R, G, B), die im SRAM 148 gespeichert sind, werden über die Speicher-I/F-Schaltung 144 gelesen.
  • Danach multipliziert die Texturmaschinenschaltung 143 die (R, G, B)-Daten der gelesenen Daten (R, G, B) S148 und die (R, G, B)-Daten, die in den DDA-Daten S142 enthalten sind, von der Dreiecks-DDA-Schaltung 142 der vorherigen Stufe, um die Pixeldaten S143 zu erzeugen.
  • Die Pixeldaten S143 werden von der Texturmaschinenschaltung 143 an die Speicher-I/F-Schaltung 144 ausgegeben.
  • Bei einem Vollfarbenmodus können die (R, G, B)-Daten vom Texturpuffer 147a unmittelbar verwendet werden, während bei einem Indexfarbenmodus Daten einer Farbindextabelle, die vorher vorbereitet wurde, von dem Textur-CLUT-Puffer (Farbnachschlagetabelle) 147d zu einem vorübergehendhaltenden Puffer übertragen werden, der aus einem SRAM usw. besteht. Die tatsächlichen Farben R, G und B werden vom Farbindex erhalten, wobei die CLUT des vorübergehend-haltenden Puffers verwendet wird.
  • Es sei angemerkt, dass, wenn die CLUT aus einem SRAM besteht, das Verfahren zum Verwenden eines wird, wo, wenn ein Farbindex an einer Adresse des SRAM geliefert wird, das Ausgangssignal zu den aktuellen R, G, B-Farben wird.
  • Die Speicher-I/F-Schaltung 144 vergleicht die z-Daten, die den Pixeldaten S143 entsprechen, die von der Texturmaschinenschaltung 143 geliefert werden, und die z-Daten, welche im z-Puffer 147c gespeichert sind, um zu beurteilen, ob das Bild, welches durch Eingangspixeldaten S143 zu zeichnen ist, enger an dem Blickpunkt als das Bild positioniert ist, welches in den Anzeigepuffer das letzte Mal geschrieben wurde.
  • Wenn beurteilt wird, dass das Bild, welches durch die Eingangspixeldaten S143 gezeichnet wird, enger positioniert ist, werden die z-Daten, welche im z-Puffer 147c gespeichert sind, durch die z-Daten ersetzt, die den Pixeldaten S143 entsprechen.
  • Anschließend schreibt die Speicher-I/F-Schaltung 144 die (R, G, B)-Daten in den Anzeigepuffer 147b.
  • Die Speicher-I/F-Schaltung 144 berechnet den Speicherblock, der die Textur entsprechend der Texturadresse speichert, in dem Pixel, welches zu zeichnen ist, von der Texturadresse, gibt eine Leseanforderung lediglich an den Speicherblock aus und liest die Texturdaten.
  • In diesem Fall wird auf einen Speicherblock, der nicht entsprechenden Texturdaten hält, nicht zugegriffen, um die Textur zu lesen, so dass eine längere Zugriffszeit zum Zeichnen bereitgestellt werden kann.
  • Beim Zeichnen wird in der gleichen Art und Weise auf den Speicherblock, der die Pixeldaten entsprechend der Pixeladresse speichert, die zu zeichnen sind, zugegriffen, um die Pixeldaten von dieser Adresse zum Modifizieren des Schreibens zu lesen. Nach der Modifizierung des Schreibens werden die Daten zurück auf die gleiche Adresse geschrieben.
  • Wenn die verborgene Ebenenverarbeitung durchgeführt wird, wird wieder auf die gleiche Art und Weise auf den Speicherblock, der die Tiefendaten entsprechend der Pixeladresse, die zu zeichnen ist, speichert, zugegriffen, um Tiefendaten von der entsprechenden Adresse zu lesen. Nach der Schreibmodifizierung werden wenn notwendig diese zurück auf die gleiche Adresse geschrieben.
  • Bei der Datenübertragung mit dem DRAM 147 auf der Basis der Speicher-I/F-Schaltung 144 wird die Mehrzahl an Verarbeitungen bis dahin parallel verarbeitet. Als Ergebnis kann die Zeichnungsleistung verbessert werden.
  • Insbesondere können durch Bereitstellen des Teils der Dreiecks-DDA-Schaltung 142 und der Texturmaschine 143 in der gleichen Schaltung (parallel im Raum) in einer parallel-ausführbaren Form oder durch Einfügen einer engen Pipeline (zeitparallel) für eine teilweise Vergrößerung der Betriebsfrequenz mehrere Pixel simultan berechnet werden.
  • Außerdem sind benachbarte Bereiche der Pixeldaten im Anzeigebereich so angeordnet, dass sie in den unterschiedlichen DRAM-Modulen unter der Steuerung der Speicher-I/F-Schaltung 144 sind.
  • Als Ergebnis wird, wenn eine Ebene, beispielsweise ein Dreieck gezeichnet wird, eine simultane Verarbeitung auf der Ebene ausgeführt. Daher sind die Betriebswahrscheinlichkeiten der entsprechenden DRAM-Module sehr hoch.
  • Wenn das Bild auf einer nicht gezeigten Anzeige angezeigt wird, wird eine Anzeigeadresse synchron mit einer vorgegebenen horizontalen und vertikalen Synchronisationsfrequenz in der CRT-Steuerschaltung 145 erzeugt, und es wird eine Anforderung nach einer Anzeigedatenübertragung an die Speicher-I/F-Schaltung 144 ausgegeben.
  • Gemäß der Anforderung überträgt die Speicher-I/F-Schaltung 144 eine bestimmte Menge der Anzeigedaten zur CRT-Steuerschaltung 145.
  • Die CRT-Steuerschaltung 145 speichert die Anzeigedaten in einem nicht gezeigten Anzeige-FIFO usw. und überträgt Indexwerte von RGB zum RAMDAC 146 in bestimmten Intervallen.
  • Der RAMDAC 146 speichert RGB-Werte entsprechend dem RGB-Index innerhalb seines RAMs und überträgt die RGB-Werte entsprechend dem Indexwert zu dem nicht gezeigten D/A-Umsetzer.
  • Dann wird ein RGB-Signal, welches im D/A-Umsetzer in eine analoge Form umgesetzt wurde, zur CRT übertragen.
  • Wie oben erläutert kann gemäß der vorliegenden Ausführungsform ein DRAM zum Speichern von Bilddaten und eine Logikschaltung zusammen auf dem gleichen Halbleiterchip vorgesehen werden, der DRAM in mehrere unabhängige DRAM-Module 1471 bis 1474 unterteilt werden, die unterteilten DRAM-Module 1471 bis 1474 an Umfangsbereichen der Logikschaltung angeordnet werden, um die Grafikverarbeitung usw. auszuführen, so dass verglichen mit dem Fall, wo Zugriffe simultan ausgeführ werden müssen, das Verhältnis von gültigen Daten, die eine Bitzeile in einem Zugriff besitzen, ansteigt, die Abstände von den jeweiligen DRAM-Module 1471 bis 1474 zur Logikschaltung gleichmäßig werden, und die Länge der längsten Pfadverbindung kürzer ausgeführt werden kann verglichen mit dem Fall, wo die Module in einer Richtung in einer festen Weise angeordnet werden. Daher entsteht der Vorteil, dass die Betriebsgeschwindigkeit verbessert werden kann.
  • Da außerdem die Pixelverarbeitungsmodule 1446 bis 1449 eng als Funktionsblöcke, um die Pixelverarbeitung in der Grafikzeichnung zu steuern, für jedes der DRAM-Module 1471 bis 1474 angeordnet sind, können die Lese- /Modifizierungs-/Schreibverarbeitungen, die mit einer extrem großen Häufigkeit beim Grafikzeichnen durchgeführt werden, in einem sehr kurzem Verbindungsbereich durchgeführt werden. Daher kann die Arbeitsgeschwindigkeit stark verbessert werden.
  • Da außerdem ein Pixelverarbeitungsmodul und ein Sekundärspeicher des DRAM-Moduls eng aneinander auf der gleichen Seite auf der langen Seite eines DRAM-Moduls angeordnet sind, kann, sogar wenn Daten von dem Pixelverarbeitungsmodul zum Sekundärspeicher über einen Pfad übertragen werden, der einen sehr große Länge hat, die Arbeitsgeschwindigkeit verbessert werden, da der Effekt eines sogenannten Übersprechens sehr klein ist und die Verbindungslänge natürlich kurz ist.
  • Daten zu dem Pixelverarbeitungsmodul und zum Sekundärspeicher können außerdem den gleichen Abtastverstärker nutzen. Damit kann der Abstieg des Bereichs des DRAM-Kerns minimal gehalten werden, und es ist möglich, einen Port zu realisieren.
  • Da die Pixelverarbeitungsmodule 1446 bis 1449 zumindest eine Stufe einer Pipelinesteuerung innerhalb ausführen ist es, sogar wenn die Abstände zum Block, welcher in der Mitte angeordnet sein, um weitere Grafikverarbeitung auszuführen, durchschnittlich länger wird, möglich, zu verhindern, dass der Verarbeitungsdatendurchsatz beeinträchtigt wird. Daher kann die Verarbeitungsgeschwindigkeit verbessert werden.
  • Da das Inter-DRAM-Steuermodul 1450 eng an dem mittleren Punkt der DRAM-Module 1471, 1472, 1473 und 1474 angeordnet ist, kann der Verbindungsbereich geordnet gehalten werden, und die Durchschnittverbindungslänge kann kürzer ausgeführt werden.
  • Bezüglich der Signaleingangs-/Ausgangsanschlüsse zum Verbinden der Pixelverarbeitungsmodule 1446, 1447, 1448 und 1449 und des Inter-DRAM-Steuermoduls 1450 ist es, wie es in 9 gezeigt ist, da die Eingangs- /Ausgangsanschlüsse in den Pixelverarbeitungsmodulen 1446, 1447, 1448 und 1449 nicht gleich ausgeführt sind, wobei jedoch die Positionen der Signaleingangs- /Ausgangsanschlüsse der Pixelverarbeitungsmodule eingestellt sind, so dass die jeweiligen Pixelverarbeitungsmodule und das Inter-DRAM-Steuermodul 1450 in der geeigneten (kürzesten) Weise verbunden sind, obwohl die Funktionen die gleichen sind, möglich, die Anschlüsse der Blöcke an der geeignetsten Position für die Positionen einer Anordnung der Blöcke zu positionieren, so dass ein Vorteil darin besteht, dass die durchschnittliche Verbindungslänge abgekürzt werden kann.
  • Da außerdem die Speichermodule der DRAM-Module 1471 bis 1474 so angeordnet sind, dass deren Längsrichtung die Spaltenrichtung des DRAM-Kerns sind, entsteht ein Vorteil darin, dass der Datenwert einer Reihe entsprechend der Reihenadresse in einem Zeitpunkt in den Sekundärspeicher lediglich durch Bestimmen der Reihenadresse geladen werden kann, so dass die Anzahl von Bits dramatisch im Vergleich mit dem Fall ansteigt, wo die Module in der Einrichtung angeordnet sind.
  • Da außerdem der DRAM 147, der im Halbleiterchip eingebaut ist, so konfiguriert ist, Anzeigedaten und die Texturdaten zu speichern, die durch zumindest ein Grafikelement erforderlich sind, können die Texturdaten in einem Bereich gespeichert werden, der sich von dem Anzeigebereich unterscheidet, und der Einbau-DRAM kann effizient verwendet werden. Damit kann ein Bildverarbeitungsgerät, welches in der Lage ist, sowohl eine Hochgeschwindigkeitsverarbeitung als auch eine Reduzierung des Leistungsverbrauchs auszuführen, realisiert werden.
  • Außerdem kann ein Einzelspeichersystem realisiert werden, und die gesamte Verarbeitung kann lediglich in der Einbaustruktur ausgeführt werden. Als Folge davon wird eine große Musterbeispielverschiebung hinsichtlich der Architektur ebenfalls erreicht.
  • Da außerdem der Speicher effizient genutzt werden kann, kann die Verarbeitung lediglich im Einbau-DRAM durchgeführt werden und die Bandbreite zwischen dem Speicher und dem Zeichensystem, die aufgrund des Einbaus erzielt werden kann, kann ausreichend verwendet werden. Außerdem kann eine Spezialverarbeitung im DRAM ebenfalls installiert werden.
  • Außerdem wird eine effiziente Nutzung der Bitleitungen möglich, indem die Anzeigelemente von benachbarten Adressen so angeordnet sind, dass diese in unterschiedlichen Blöcken des DRAMs voneinander in dem Anzeigeadressraum angeordnet sind. Wenn es häufige Zugriffe auf relativ feste Anzeigebereiche wie beim Zeichnen von Grafiken gibt, steigt die Wahrscheinlichkeit an, das Module in der Lage sind, eine Verarbeitung simultan durchzuführen, so dass die Zeichnungsleistungsfähigkeit verbessert werden kann.
  • Da weiter Indizes von Indexfarben und Werte einer Farbnachschlagetabelle dafür innerhalb des Einbau-DRAM 157 gespeichert sind, können, um mehr Texturdaten zu speichern, die Texturdaten komprimiert sind und der Einbau-DRAM kann effektiv genutzt werden.
  • Da außerdem die Tiefeninformation eines zu zeichnenden Objekts im Einbau-DRAM gespeichert ist, kann eine verborgene Ebenenverarbeitung simultan und parallel mit dem Zeichnen durchgeführt werden.
  • Normalerweise wird gewünscht, dass das gezeichnete Bild angezeigt wird, jedoch, da es möglich ist, die Texturdaten und die Anzeigedaten zusammen als vereinter Speicher im gleichen Speichersystem zu speichern, können die Zeichnungsdaten als Texturdaten anstelle dafür verwendet werden, um unmittelbar angezeigt zu werden.
  • Dies ist effektiv, wenn die notwendigen Texturdaten durch Zeichnen wenn notwendig vorbereitet werden. Dies ist außerdem eine wirksame Funktion, um zu verhindern, dass die Menge der Texturdaten anschwillt.
  • Durch Bereitstellen des DRAMs innerhalb des Chips wird außerdem der Hochgeschwindigkeits-Schnittstellenteil innerhalb des Chips beendet, so dass es nicht mehr notwendig ist, einen I/O-Puffer anzusteuern, der eine große zusätzliche Kapazität hat, oder eine Verbindungskapazität zwischen Chips. Daher kann der Leistungsverbrauch verglichen mit dem Nichteinbaufall reduziert werden.
  • Somit ist eine Einrichtung, bei der eine Vielzahl von Verfahren verwendet werden, um zu ermöglichen, dass alles in einem einzigen Chip untergebracht wird, ein wesentliches technisches Element für zukünftige digitale Geräte, beispielsweise tragbare Datenendgeräte.
  • Es sei angemerkt, dass die vorliegende Erfindung nicht auf die obigen Ausführungsformen beschränkt ist.
  • Bei dem obigen dreidimensionalen Computergrafiksystem 10, welches in 1 gezeigt ist, wurde ein Aufbau, bei dem ein SRAM 148 verwendet wird, als Bespiel angegeben, wobei jedoch das System ohne den SRAM 148 konfiguriert sein kann.
  • Weiter wurde bei dem dreidimensionalen Computergrafiksystem 10, welches in 1 gezeigt ist, ein Beispiel angegeben, wo die geometrische Verarbeitung zum Erzeugen von Polygonbildaufbereitungsdaten im Hauptprozessor 11 durchgeführt wurde, wobei jedoch das System auch so konfiguriert sein kann, die geometrische Verarbeitung in der Bildaufbereitungsschaltung 14 durchzuführen.
  • Um die Effekte der Erfindung, wie sie oben erläutert wurden, gemäß der vorliegenden Erfindung zusammenzufassen, kann die Leistungsfähigkeit der Pixelverarbeitung, die am häufigsten bei Grafiken ausgeführt wird, stark verbessert werden, und die Durchschnittsverbindungslänge und die längste Verbindungslänge zwischen den Speichermodulen und den Zeichnungsmodulen kann kürzer ausgeführt werden. Als Folge davon kann ein Bildverarbeitungsgerät, welches einen kleinen Chipbereich hat und eine leichte Verbindungskapazität zum Steuern aufgrund des kleinen Verbindungsbereichs und bei dem die Betriebsgeschwindigkeit verbessert werden kann und der Leistungsverbrauch, realisiert werden.
  • Gemäß der vorliegenden Erfindung können aufgrund der Speicherschaltung, die zusammen mit der Logikschaltung auf dem Halbleiterchip vorgesehen ist, der konfiguriert ist, die Anzeigedaten und die Texturdaten zu speichern, die erforderlich sind, durch zumindest ein Grafikelement, die Texturdaten in Bereichen gespeichert werden, die anders sind als der Anzeigebereich, die Einbauspeicherschaltung kann effektiv genutzt werden, und ein Bildverarbeitungsgerät, welches in der Lage ist, eine Hochgeschwindigkeitsverarbeitung durchzuführen und den Leistungsverbrauch zu reduzieren, kann realisiert werden.
  • Obwohl die Erfindung mit Hilfe der speziellen Ausführungsform, die aus Illustrationszwecken gewählt wurde, beschrieben wurde, ist es klar, dass verschiedene Modifikationen dazu durch den Fachmann durchgeführt werden können, ohne das Basiskonzept und den Rahmen der Erfindung zu verlassen.

Claims (8)

  1. Bildverarbeitungsgerät, welches aufweist: eine Speicherschaltung (147), die in mehrere Speichermodule (1471 bis 1474) unterteilt ist, wobei jedes Speichermodul Bilddaten unterschiedlicher Pixel speichert; und eine Logikschaltung, um eine vorher festgelegte Verarbeitung in bezug auf die Bilddaten auf der Basis der gespeicherten Daten der Speicherschaltung (147) durchzuführen, wobei sowohl die Speicherschaltung (147) als auch die Logikschaltung auf einem Halbleiterchip untergebracht sind und die mehreren unterteilten Speichermodule (1471 bis 1474) an Randbereichen der Logikschaltung angeordnet sind, dadurch gekennzeichnet, dass: die Logikschaltung in mehrere Pixelverarbeitungsblöcke (1446 bis 1449) unterteilt ist, die den Speichermodulen (1471 bis 1474) entsprechen, und jeder Pixelverarbeitungsblock (1446, 1447, 1448, 1449) eng an das entsprechende Speichermodul (1471, 1472, 1473, 1474) angeordnet ist.
  2. Bildverarbeitungsgerät nach Anspruch 1, welches außerdem einen Sekundärspeicher (1484) aufweist, der in der Lage ist, gespeicherte Daten eines Speichermoduls (1471) zu speichern und wobei der Sekundärspeicher (1484) eng an diesem Speichermodul (1471) angeordnet ist.
  3. Bildverarbeitungsgerät nach Anspruch 1 oder 2, wobei ein Pixelverarbeitungsblock (1446, 1447, 1448, 1449) zumindest eine Stufe einer Pipelineverarbeitung darin durchführt.
  4. Bildverarbeitungsgerät nach einem der vorhergehenden Ansprüche, wobei die Speichermodule (1471 bis 1474) an Randbereichen der Logikschaltung so angeordnet sind, dass sie die Logikschaltung umgeben, und wobei die Eingangs- /Ausgangsanschlüsse dieser Speichermodule (1471 bis 1474) an den Innenseitenrändern angeordnet sind, die der Logikschaltung zugewandt sind.
  5. Bildverarbeitungsgerät nach einem der vorhergehenden Ansprüche, wobei die mehreren Pixelverarbeitungsblöcke (1446 bis 1449) sogar für Module, die die gleiche Funktion haben, an den Positionen ihrer Anschlüsse gewechselt werden, um Pfade herauszunehmen, um zu ermöglichen, dass die Pfade optimal zu den Pixelverarbeitungsblöcken (1446 bis 1449) gelegt werden, wobei Pfade für die Speichermodule (1471 bis 1474) verwendet werden.
  6. Bildverarbeitungsgerät nach einem der vorhergehenden Ansprüche, welches außerdem einen Steuerblock (1450) aufweist, der entsprechend mit allen mehreren Speichermodulen (1441 bis 1474) verbunden ist, um die Betriebsweise der obigen mehreren Speichermodule (1471 bis 1474) zu steuern, und dass der Steuerblock (1450) eng an einem mittleren Punkt angeordnet ist, der durch die Speichermodule (1471 bis 1474) umgeben ist.
  7. Bildverarbeitungsgerät nach einem der vorhergehenden Ansprüche, wobei: auf die Speicherschaltung (147) auf der Basis eines Reihenadresssignals und eines Spaltenadresssignals zugegriffen wird; es einen Sekundärspeicher (1484) gibt, der in der Lage ist, die gespeicherten Daten eines Speichermoduls (1471) zu speichern, wobei der Sekundärspeicher (1484) in der Nähe eines Speichermoduls (1471) angeordnet ist; das Speichermodul (1471) so angeordnet ist, dass dessen Längsrichtung die Spaltenrichtung seines Kerns ist; und der Pixelverarbeitungsblock (1446) und der Sekundärspeicher (1484) eng zueinander auf der gleichen Seite der langen Seite des Speichermoduls (1471) angeordnet sind.
  8. Bildverarbeitungsgerät nach einem der vorhergehenden Ansprüche, wobei das Gerät ausgebildet ist, eine Bildaufbereitung auszuführen, wobei Polygon-Bildaufbereitungsdaten empfangen werden, die dreidimensionale Koordinaten (x, y, z), R (rot)-, G (grün)- und B (blau)-Daten, homogene Texturkoordinaten (s, t) und einen homogenen Term q für Scheitel einer Einheitsgrafik aufweisen, wobei jedes Speichermodul (1471, 1472, 1473, 1474) Anzeigedaten unterschiedlicher Pixel und Texturdaten speichert, die durch zumindest ein Grafikelement erforderlich sind, und die Logikschaltung zumindest eine Interpolationsdaten-Erzeugungsschaltung aufweist, um Interpolation in bezug auf die Polygon-Bildaufbereitungsdaten der Scheitel der Einheitsgrafik durchzuführen, um Interpolationsdaten von Pixeln zu erzeugen, die innerhalb der Einheitsgrafik angeordnet sind, und eine Texturverarbeitungsschaltung, um die homogenen Texturkoordinaten (s, t) zu unterteilen, die in den Interpolationsdaten enthalten sind, durch den homogenen Term q, um "s/q" und "t/q" zu erzeugen, wobei Texturadressen gemäß den "s/q" und "t/q" verwendet werden, um Texturdaten von der Speicherschaltung (147) zu lesen und um eine Verarbeitung durchzuführen, um die Texturdaten auf die Fläche der Grafikelemente der Anzeigedaten anzuwenden.
DE69912034T 1998-06-25 1999-06-25 Bildverarbeitungsgerät Expired - Lifetime DE69912034T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17855998 1998-06-25
JP10178559A JP2000011190A (ja) 1998-06-25 1998-06-25 画像処理装置

Publications (2)

Publication Number Publication Date
DE69912034D1 DE69912034D1 (de) 2003-11-20
DE69912034T2 true DE69912034T2 (de) 2004-07-22

Family

ID=16050610

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69912034T Expired - Lifetime DE69912034T2 (de) 1998-06-25 1999-06-25 Bildverarbeitungsgerät

Country Status (5)

Country Link
US (1) US6480199B1 (de)
EP (1) EP0969411B1 (de)
JP (1) JP2000011190A (de)
CA (1) CA2274391C (de)
DE (1) DE69912034T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995035572A1 (en) * 1994-06-20 1995-12-28 Neomagic Corporation Graphics controller integrated circuit without memory interface
US6972774B2 (en) * 2000-02-21 2005-12-06 Fujitsu Limited Image processing system for inserting plurality of images into composite area, and medium
JP4568950B2 (ja) * 2000-02-29 2010-10-27 ソニー株式会社 グラフィックス描画装置
US20050078118A1 (en) * 2000-05-12 2005-04-14 Microsoft Corporation Table indexing system and method
JP3747859B2 (ja) * 2002-02-06 2006-02-22 ソニー株式会社 画像処理装置およびその方法
KR20060044124A (ko) * 2004-11-11 2006-05-16 삼성전자주식회사 3차원 그래픽 가속을 위한 그래픽 시스템 및 메모리 장치
US8350865B2 (en) 2007-01-25 2013-01-08 Broadcom Corporation Method and system for efficiently organizing data in memory
JP4670887B2 (ja) * 2008-03-31 2011-04-13 ソニー株式会社 画像処理装置
US20100079454A1 (en) * 2008-09-29 2010-04-01 Legakis Justin S Single Pass Tessellation
JP2010097311A (ja) * 2008-10-15 2010-04-30 Panasonic Corp 半導体装置及び半導体集積回路
KR101910893B1 (ko) 2017-04-21 2019-01-04 오스템임플란트 주식회사 클리핑 기능을 이용한 데이터 선택 장치 및 그 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5371519A (en) * 1993-03-03 1994-12-06 Honeywell Inc. Split sort image processing apparatus and method
US5544306A (en) * 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
WO1997035316A1 (fr) 1996-03-21 1997-09-25 Hitachi, Ltd. Processeur a memoire dram integree
EP0935252B1 (de) 1996-10-28 2004-04-21 Mitsubishi Denki Kabushiki Kaisha Integrierte speicherschaltungsanordnung mit logischer schaltungskompatibler struktur
US5867180A (en) * 1997-03-13 1999-02-02 International Business Machines Corporation Intelligent media memory statically mapped in unified memory architecture
US5883814A (en) * 1997-03-13 1999-03-16 International Business Machines Corporation System-on-chip layout compilation
JP3514947B2 (ja) * 1997-06-05 2004-04-05 シャープ株式会社 3次元画像処理装置及び3次元画像処理方法

Also Published As

Publication number Publication date
CA2274391C (en) 2010-03-30
EP0969411A1 (de) 2000-01-05
JP2000011190A (ja) 2000-01-14
EP0969411B1 (de) 2003-10-15
DE69912034D1 (de) 2003-11-20
US6480199B1 (en) 2002-11-12
CA2274391A1 (en) 1999-12-25

Similar Documents

Publication Publication Date Title
DE60222175T2 (de) Bildverarbeitungsvorrichtung und dazugehöriges verfahren
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE3587750T2 (de) Peripheriegerät für Bildspeicher.
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE68926571T2 (de) Wirksames verfahren zur aktualisierung eines zeitverschachtelt arbeitenden einzeltor-z-pufferspeichers
DE69722862T2 (de) Bilderzeugungsvorrichtung zur Erzeugung von Pixeldaten für eine Bildanzeige
DE69021429T2 (de) Speicherzugriffssteuerschaltung für Grafik-Steuergerät.
DE69513516T2 (de) Einchipsteuerungsspeicherandordnung und eine speicherarchitektur und verfahren zur inbetriebnahme derselben
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
DE3636394C2 (de) Einrichtung und Verfahren zur Speicherorganisation
DE60105510T2 (de) Bilderzeugungsgerät
DE2617408B2 (de) Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie
DE69624866T2 (de) Speicherschaltung für Texturmuster
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE69912034T2 (de) Bildverarbeitungsgerät
DE3718501A1 (de) Videoanzeigegeraet
DE68925854T2 (de) Anzeigesteuergerät zum Konvertieren mittels Hardware von CRT-Auflösung in Plasmaanzeigetafel-Auflösung
DE3618136A1 (de) Abwechselnd adressierte halbleiterspeichergruppe
DE3713627C2 (de)
DE2912073C2 (de)
DE68929514T2 (de) Integrierter Schaltkreis mit synchronem Halbleiterspeicher, ein Verfahren zum Zugriff auf den besagten Speicher sowie ein System, das einen solchen Speicher beihaltet.
DE68927245T2 (de) Bildverarbeitungssystem
DE69730923T2 (de) Verfahren und Gerät zur Bilderzeugung
DE69522900T2 (de) System und Verfahren zur Verarbeitung von Befehlen ohne Abfrage der Hardware durch die Software
DE3850389T2 (de) Verfahren zum unterteilen einer figur in bereiche in einem graphischen anzeigesystem.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition