DE112006002600T5 - Verschachtelter virtueller lokaler Speicher für einen Grafikprozessor - Google Patents

Verschachtelter virtueller lokaler Speicher für einen Grafikprozessor Download PDF

Info

Publication number
DE112006002600T5
DE112006002600T5 DE112006002600T DE112006002600T DE112006002600T5 DE 112006002600 T5 DE112006002600 T5 DE 112006002600T5 DE 112006002600 T DE112006002600 T DE 112006002600T DE 112006002600 T DE112006002600 T DE 112006002600T DE 112006002600 T5 DE112006002600 T5 DE 112006002600T5
Authority
DE
Germany
Prior art keywords
memory
graphics
channels
system memory
graphics processor
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.)
Ceased
Application number
DE112006002600T
Other languages
English (en)
Inventor
Randy Beaverton OSBORNE
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112006002600T5 publication Critical patent/DE112006002600T5/de
Ceased 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/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Input (AREA)
  • Multi Processors (AREA)
  • Image Generation (AREA)
  • Memory System (AREA)

Abstract

Vorrichtung, die aufweist:
einen oder mehrere Kanäle eines lokalen Speichers für Grafik;
einen oder mehrere Kanäle eines Systemspeichers; und
einen Grafikprozessor, der so betreibbar ist, daß er verschachtelnd auf den einen oder die mehreren Kanäle des lokalen Speichers für Grafik und den einen oder die mehreren Kanäle des Systemspeichers zugreift.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft einen virtuellen lokalen Speicher für einen Grafikprozessor. Genauer betrifft die Erfindung das Verwenden eines physikalischen Adreßraumes für einen Grafikprozessor, der Adressorte sowohl im Systemspeicher als auch im lokalen Speicher für die Grafik aufweist.
  • HINTERGRUND DER ERFINDUNG
  • Viele Anwendungen bei Rechengeräten, die Grafik und Video hervorheben, sind bei den heutigen Grafikprozessoren komplex und speicherintensiv geworden. Zusätzlich sind viele Rechengeräte in Größe und Preis aus Gründen der Mobilität ebenso wie aus vielen anderen Gründen drastisch verringert worden. Obwohl die Leistungsfähigkeit und Preisfaktoren sich anscheinend ausgleichen, erwarten Endbenutzer weiter hohe Leistungsfähigkeit bei der Grafik zu einem angemessenen Preis.
  • Rechengeräte zu mäßigen Preisen zeigen typischerweise aus einer Anzahl von Gründen gegenüber Spitzengeräten eine Verringerung in der Leistungsfähigkeit, was die Grafik betrifft. Ein Grund liegt darin, daß der zentrale Prozessor in einem Gerät Systemspeicher mit dem Grafikprozessor gemeinsam nutzen muß, um die Kosten für Speicherkomponenten einzufrieren. Grafiksysteme am oberen Ende haben typischerweise ihren eigenen getrennten lokalen Speicher für die Grafik, dessen Speichergröße kleiner ist, der jedoch üblicherweise eine viel größere Bandbreite hat als ein Systemspeicher. Weiterhin haben grafikintensive Anwendungen zunehmend nicht nur einen hochleistungsfähigen Speicher erfordert, sondern auch größere Mengen desselben.
  • Somit haben Computerbenutzer heute eine Wahl, wenn es um die grafische Leistungsfähigkeit bei Rechengeräten geht, entweder die hohen Kosten zu zahlen, die mit lokalem Speicher für Grafik verbunden sind, oder Leistungsfähigkeit bei der Grafik zu verlieren, wenn weniger für ein Rechengerät nur mit einem Systemspeicher gezahlt wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird beispielhaft veranschaulicht und ist nicht durch die Figuren der beigefügten Zeichnungen beschränkt, in denen gleiche Bezugsziffern ähnliche Elemente angeben und in denen:
  • 1 ein Blockschaubild eines Computersystems ist, das eine Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert.
  • 2 ist ein Blockschaubild eines Computersystems, das eine Ausführungsform des virtuellen lokalen Speichers für einen Grafikprozessor implementiert.
  • 3 ist ein Blockschaubild eines Computersystems, das noch eine weitere Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert.
  • 4 ist ein Blockschaubild eines Computersystems, das noch eine weitere Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert.
  • 5 beschreibt eine Ausführungsform des Speichereinsatzes eines Computersystems, das einen virtuellen lokalen Speicher für einen Grafikprozessor implementiert.
  • 6 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für einen Grafikprozessor, der auf einen Systemspeicher und auf einen lokalen Speicher für Grafik in einer zufälligen, verschachtelnden Reihenfolge zugreift.
  • 7 beschreibt eine Ausführungsform eines virtuellen lokalen Speichers für Grafik, der in 50% lokalen Speicher für Grafik und 50% aus Systemspeicher aufgeteilt ist.
  • 8 beschreibt eine Ausführungsform eines virtuellen lokalen Speichers für Grafik, der in 75% lokalen Speicher für Grafik und 25% aus Systemspeicher aufgeteilt ist.
  • 9 beschreibt eine Ausführungsform eines virtuellen lokalen Speichers für Grafik, der in 67% lokalen Speicher für Grafik und 33% Systemspeicher aufgeteilt ist.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Ausführungsformen eines virtuellen lokalen Speichers für einen Grafikprozessor werden offenbart. In der folgenden Beschreibung sind zahlreiche bestimmte Einzelheiten aufgeführt. Es wird jedoch verstanden, daß Ausführungsformen ohne diese bestimmten Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen sind gut bekannte Elemente, Spezifikationen und Protokolle nicht in Einzelheiten diskutiert worden, um das Verschleiern der Erfindung zu vermeiden.
  • Das Implementieren eines virtuellen lokalen Speichers für einen Grafikprozessor kann in effektiver Weise das Problem milder, daß es einem Benutzer abfordert, zwischen den hohen Kosten einer Rechenvorrichtung mit lokalem Speicher für Grafik und der geringen Leistungsfähigkeit einer Rechenvorrichtung nur mit Systemspeicher zu wählen. Ausführungsformen eines virtuellen lokalen Speichers geben dem Grafikprozessor die Möglichkeit, sowohl lokalen Speicher für Grafik als auch Systemspeicher gleichzeitig zu verwenden, um einen guten Ausgleich bei den Kosten für Grafik und die Leistungsfähigkeit zu erzeugen. Ein virtueller lokaler Speicher synthetisiert die äquivalente Bandbreite eines reinen lokalen Grafikspeichers für Grafik, z. B. mit zwei Kanälen, indem eine geringere Menge an Grafikspeicher, z. B. ein Kanal, und Systemspeicher verwendet wird. Bei der einfachsten VLM-Option kommt eine Hälfte der erforderlichen Bandbreite vom Kanal des lokalen Grafikspeichers und eine Hälfte kommt vom Systemspeicher.
  • Das Konzept hinter dem virtuellen lokalen Speicher ist dasselbe wie bei einer vereinheitlichten Speicherarchitektur (System + Grafikspeicher), welche physikalische Ressourcen zwischen Prozessor und Grafik gemeinsam nutzt, um die Kosten zu verringern, wobei die Tatsa che ausgenutzt wird, daß Prozessor und Grafik nicht immer gleichzeitig die Spitzenbandbreite benötigen. Jedoch hat ein virtueller lokaler Speicher zwei wichtige Unterschiede gegenüber der vereinheitlichten Speicherarchitektur.
  • Zunächst trägt ein virtueller lokaler Speicher einen gewissen physikalischen Speicher bei, der ausschließlich für Grafik verfügbar ist, um die Anzahl der erforderlichen Kanäle mit doppelter Datenrate (DDR – Double Data Rate) zu verringern. Ein Kanal mit doppelter Datenrate für Grafik (GDDR – Graphics Double Data Rate) liegt in der Geschwindigkeit zwischen dem 1.5-fachen und dem 2-fachen eines DDR-Kanals (für vergleichbare Technologien) und ist leichter auf einer Plattform unterzubringen, und dies zu geringeren Kosten als für zwei Ersatzkanäle eines DDR-Speichers. Zweitens, obwohl ein virtueller lokaler Speicher die physikalischen Ressourcen von Prozessor und Grafik gemeinsam nutzt, nutzt er nicht gleichzeitig den Adreßraum. Der Prozessor und die Grafik haben getrennte Adreßräume.
  • 1 ist ein Blockschaubild eines Computersystems, das eine Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert. Bei einer Ausführungsform enthält das Computersystem einen zentralen Prozessor 100 und einen Chipsatz 102. Eine Verbindung 104, die sowohl mit dem zentralen Prozessor 100 als auch mit dem Chipsatz 102 gekoppelt ist, wird für die Kommunikation zwischen diesen beiden Agenten eingesetzt. Die Verbindung 104 umfaßt bestimmte Verbindungsleitungen, die Information über Schiedsverhandlungen, Adressen, Daten und Steuerung senden (nicht gezeigt). Bei einer weiteren Ausführungsform gibt es mehrere zentrale Prozessoren, die mit der Verbindung 104 gekoppelt sind (in dieser Figur sind mehrere Prozessoren nicht gezeigt).
  • Ein Controller 106 für den Systemspeicher, bei einer Ausführungsform auf dem Chipsatz 102 integriert, sorgt für den Zugriff des zentralen Prozessors 100 auf das Untersystem 108 des Systemspeichers durch eine Verbindung 110. Bei einer Ausführungsform ist ein Grafikprozessor 112 auf dem Chipsatz 102 integriert. Weiter sorgt bei einer Ausführungsform ein Controller 114 für den lokalen Speicher für die Grafik, auch auf dem Chipsatz 102 integriert, für den Zugriff des Grafikprozessors 112 auf das Untersystem 116 des lokalen Speichers für die Grafik durch eine Verbindung 118.
  • Bei einer Ausführungsform hat das Computersystem zwei Kanäle für den Systemspeicher 108 (Ch 1 und Ch 2) und zwei Kanäle für den lokalen Speicher 116 für die Grafik (Ch 1 und Ch 2). Bei verschiedenen Ausführungsformen kann der Controller 106 für den Systemspeicher mit einem, zwei, drei, vier oder mehr Kanälen des Systemspeichers gekoppelt sein und der Controller 114 für den lokalen Speicher für die Grafik kann mit einem, zwei, drei, vier oder mehreren Kanälen des lokalen Speichers für die Grafik gekoppelt sein. Die Verbindungen 110 und 118 umfassen bestimmte Verbindungsleitungen, die Information über Schiedsverfahren, Adressen, Daten und Steuerung senden (nicht gezeigt). Information, Befehle und weitere Daten können in den Kanälen 1 und 2 des Systemspeichers 108 zur Verwendung von dem zentralem Prozessor 100, dem Grafikprozessor 112 ebenso wie von anderen möglichen Vorrichtungen gespeichert sein. Weiterhin können Information, Befehle und weitere Daten in den Kanälen 1 und 2 des lokalen Speichers 114 für die Grafik zur Verwendung von dem Grafikprozessor 110 gespeichert sein. Bei einer weiteren Ausführungsform gibt es keinen lokalen Speicher 114 für die Grafik, somit sind die Kanäle 1 und 2 des Systemspeichers 108 der einzige Speicherplatz, den der Grafikprozessor 112 verwenden kann. Diese Ausgestaltung ist für die Leistungsfähigkeit des Grafikspeichers nicht optimal, da die Verbindung 110 die einzige Verbindung zwischen dem Grafikprozessor 112 und dem Systemspeicher 108 ist. Bei dieser Ausführungsform werden die Verbindung 110 und der Systemspeicher 108 gemeinsam mit dem zentralen Prozessor 100 benutzt, somit hat der Grafikprozessor 112 weder besonderen Speicherkanäle, noch hat er einen schnellen Speicher (ein Systemspeicher hat im allgemeinen eine geringere Bandbreite als ein lokaler Speicher für Grafik bei Schnittstellen gleicher Bereite). Daher ist es aus Gründen der Leistungsfähigkeit hilfreich, wenn der Grafikprozessor 112 einen oder mehrere besondere Kanäle des lokalen Speichers für Grafik verwendet.
  • Somit hat bei einer Ausführungsform das Computersystem einen lokalen Speicher für Grafik und der Grafikprozessor 112 nutzt nur den lokalen Speicher 116 für Grafik zum Speichern von Information. Um diesen Grafikprozessor mit angemessener Speicherbandbreite zu ver sorgen, kann es ein Erfordernis nach zwei oder mehr Kanälen des lokalen Speichers für Grafik geben, so daß es vom Speicher her keine Beschränkung der Leistungsfähigkeit gibt. Lokaler Speicher für Grafik hat im allgemeinen eine höhere Bandbreite für eine Schnittstelle gleicher Breite als ein Systemspeicher (wie oben diskutiert), somit ist er üblicherweise bezogen auf ein Megabyte teurer als eine gleiche Größe an Systemspeicher. Daher ist diese Lösung für die Leistungsfähigkeit des Grafikspeichers hilfreich, würde jedoch im allgemeinen mehr kosten als die Ausführungsform, die nur den Systemspeicher implementiert.
  • Somit verwendet bei einer weiteren Ausführungsform der Grafikprozessor 112 sowohl den Systemspeicher 108 als auch den lokalen Speicher 116 für Grafik, um Information zu speichern. Bei dieser Ausführungsform zieht der Grafikprozessor 112 seinen Nutzen aus der Geschwindigkeit eines oder mehrerer Kanäle des lokalen Speichers für Grafik, die von dem einen oder den mehreren Kanälen des Systemspeichers unterstützt werden, um die Gesamtanzahl der nötigen Kanälen des lokalen Speichers für Grafik klein zu halten. Daher ermöglicht es das Verwenden von Bandbreite des Systemspeichers, um die Bandbreite des lokalen Speichers für Grafik zu unterstützen, dem Computersystem, weniger lokalen Speicher für Grafik zu haben, während die Gesamtforderung an Bandbreite für Grafik eingehalten wird, um die Leistungsfähigkeit zu halten.
  • 2 ist ein Blockschaubild eines Computersystems, das eine weitere Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert. Die Beschreibung des Computersystems der 1 gilt weitgehend ebenso für die 2. Weiterhin beschreibt die 2 ein System mit einem einzigen Chip. Bei dieser Ausführungsform sitzen der zentrale Prozessor 202 und der Chipsatz 204 auf demselben Chip 200. Ansonsten arbeitet das Computersystem der 2 ähnlich wie das Computersystem, das in Einzelheiten in der 1 beschrieben ist.
  • 3 ist ein Blockschaubild eines Computersystems, das noch eine weitere Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert. Die Beschreibung des Computersystems in 1 gilt weitgehend ebenso für die 3. Weiterhin beschreibt die 3 ein Computersystem, das einen zentralen Prozessor 302 und einen Grafikprozessor 304 auf einem einzigen Chip 300 enthält. Der zentrale Prozessor 302 und der Grafikprozessor 304 kommunizieren mit einem Chipsatz 306 durch eine Verbindung 308. Der Controller 310 des Systemspeichers und der Controller 316 des lokalen Speichers für Grafik befinden sich beide auf dem Chipsatz 306, um für Zugriff auf den Systemspeicher durch die Verbindung 314 bzw. auf den lokalen Speicher 318 für Grafik durch die Verbindung 320 zu sorgen.
  • 4 ist ein Blockschaubild eines Computersystems, das noch eine weitere Ausführungsform eines virtuellen lokalen Speichers für einen Grafikprozessor implementiert. Bei einer Ausführungsform enthält das Computersystem einen zentralen Prozessor 400. Bei dieser Ausführungsform ist der Controller 402 des Systemspeichers auf dem zentralen Prozessor 400 integriert, um durch die Verbindung 406 für Zugriff auf dem Systemspeicher 404 zu sorgen. Bei einer Ausführungsform enthält das Computersystem auch einen Chipsatz 408. Die Verbindung 410 stellt eine Kommunikationsverbindung zwischen dem zentralen Prozessor 400 und dem Chipsatz 408 zur Verfügung. Bei einer Ausführungsform ist ein Grafikprozessor 412 auf dem Chipsatz 408 integriert. Bei einer Ausführungsform ist auch ein Controller für den lokalen Speicher für Grafik auf dem Chipsatz 408 integriert, um für den Zugriff auf den lokalen Speicher 416 für Grafik durch die Verbindung 418 zu sorgen. Die Verbindungen 406, 410, und 418 werden alle für die Kommunikation zwischen Komponenten verwendet. Diese Verbindungen umfassen bestimmte Verbindungsleitungen, die Information über Schiedsverhandlungen, Adressen, Daten und Steuerung senden (nicht gezeigt). Wieder gibt es bei einer weiteren Ausführungsform mehrere zentrale Prozessoren, die sich in dem Computersystem befinden und mit Verbindungen 406 und 410 gekoppelt sind (in dieser Figur sind mehrere Prozessoren nicht gezeigt).
  • Bei einer weiteren Ausführungsform befinden sich der Grafikprozessor und der Controller für den lokalen Speicher für Grafik auf demselben integrierten Chip wie der zentrale Prozessor (nicht gezeigt). Bei dieser Ausführungsform hat der lokale Speicher für Grafik eine direkte Verbindung zu diesem integrierten Chip. Bei dieser Ausführungsform befindet sich der Con troller für den Systemspeicher auf dem Chipsatz und der Systemspeicher hat eine direkte Verbindung zu dem Chipsatz. Zusätzlich kommuniziert bei dieser Ausführungsform der integrierte Chip (der den zentralen Prozessor, den Grafikprozessor und den Controller für den lokalen Speicher für Grafik enthält) mit dem Chipsatz (welcher den Controller für den Systemspeicher enthält) über eine gemeinsame Verbindung, die mit beiden Bauelementen gekoppelt ist.
  • 5 beschreibt eine Ausführungsform des Speichereinsatzes in einem Computersystem, das einen virtuellen lokalen Speicher für einen Grafikprozessor implementiert. Bei dieser beispielhaften Ausführungsform hat der Grafikprozessor alleinige Verwendung sowohl des Kanals 1 für den lokalen Speicher für Grafik als auch des Kanals 2 des lokalen Speichers für Grafik (wie es mit den schraffierten Orten 0 bis x für beide Kanäle gezeigt ist). Zusätzlich hat der Grafikprozessor die alleinige Verwendung eines Teiles des Systemspeichers (wie es mit den schraffierten Orten m bis m + n für beide Kanäle gezeigt ist). Somit ist bei dieser Ausführungsform, beginnend am Ort m in jedem Kanal des Systemspeichers, ein Block von n Orten des Systemspeichers für die alleinige Verwendung durch den Grafikprozessor reserviert. Der Adreßraum des virtuellen lokalen Speicher für Grafik zeigt die virtuellen Adressorte, die der Grafikprozessor links (0 – z bei diesem Beispiel) und die physikalischen Adressorte rechts sieht, die den tatsächlichen Orten in den Kanälen des lokalen Speichers für Grafik und den Kanälen des Systemspeichers entsprechen. Somit entspricht die virtuelle Adresse 0 dem Kanal 1 des lokalen Speicher für Grafik-Adresse 0, die virtuelle Adresse 1 entspricht dem Kanal 2 des lokalen Speichers für Grafik-Adresse 0, virtuelle Adresse 3 entspricht dem Kanal 1 des Systemspeichers-Adresse m und so weiter. In diesem Fall ist n = x. Bei diesem Beispiel würde für einen linearen Zugriffsstrom der Grafikprozessor im Mittel mit ungefähr 50% aller Speicherzugriffe auf den lokalen Speicher für Grafik zugreifen und mit den verbleibenden 50% aller Speicherzugriffe auf den Systemspeicher zugreifen. Die Prozentanteile sind basierend auf der Nutzung des virtuellen Speicherraums, der bei dieser beispielhaften Ausführungsform implementiert ist, abgeschätzt. Die Zugriffsmuster auf Systemspeicher und lokalen Speicher für Grafik sind gemittelt, da es kein zeitlich basiertes sequentielles Muster gibt, das sie exakt machen würde. Die Prozentanteile für den Zugriff auf Speicherkanal würden exakt sein, wenn die gesamten virtuellen Speicherorte belegt waren und wenn es ein gleichförmiges Zugriffsmuster gäbe, das auf alle virtuellen Speicherorte gleich oft zugreifen würde. Bei einer Anwendung in der tatsächlichen Welt ist ein gleichförmiges Zugriffsmuster selten der Fall, somit wird ein mittlerer Prozentanteil für den Zugriff basierend auf einer Verteilung der Orte des Kanals des lokalen Speichers für Grafik und der Orte des Kanals des Systemspeichers in einem virtuellen Adreßraum abgeschätzt. Somit stellen diese mittleren Prozentanteile für den Zugriff ein verschachteltes Muster der Zugriffe durch den Grafikprozessor auf den einen oder die mehreren Kanäle des Systemspeichers und den einen oder die mehreren Kanäle des lokalen Speichers für Grafik dar. Eine Aufteilung der Bandbreite zwischen dem lokalen Speicher für Grafik und dem Systemspeicher ist das Ergebnis. Ein Fachmann wird erkennen, daß das Verschachteln der Adressen über die Einheitsortgranularität, die gezeigt ist, hinaus verallgemeinert werden kann, um weitere Granularitäten des Verschachtelns einzuschließen, z. B. mit Blöcken für zwei Orte.
  • 6 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für einen Grafikprozessor, auf Systemspeicher und lokalen Speicher für Grafik in einer zufälligen, verschachtelten Reihenfolge zuzugreifen. Dieses Verfahren wird durch Prozeßlogik durchgeführt, die Hardware (Schaltung, besondere Logik usw.), Software (so wie sie auf einem universellen Computersystem oder einer besonderen Maschine läuft) oder eine Kombination aus beiden aufweisen kann. Bei einer Ausführungsform befindet sich die Prozessorlogik innerhalb eines Chipsatzes, der einen integrierten Grafikprozessor hat. Mit Bezug auf die 6 beginnt das Verfahren damit, daß die Prozeßlogik eine Anfrage auf Speicherzugriff für einen Ort in dem Adreßraum des virtuellen lokalen Speichers für Grafik empfängt (Prozeßblock 600). Als nächstes verarbeitet die Prozeßlogik die Zugriffsanfrage, indem die physikalische Adresse nachgeschlagen wird, die durch die Adresse des virtuellen lokalen Speichers dargestellt ist (Prozeßblock 602). Die Beziehung zwischen der physikalischen Adresse und der Adresse des virtuellen lokalen Speichers ist oben mit Bezug auf die 5 beschrieben. Dann erhält die Prozeßlogik die Nachschlageergebnisse und stellt fest, ob der angefragte Zugriff auf einen Kanal des Systemspeichers oder einen Kanal des lokalen Speichers für Grafik geschehen soll (Prozeßblock 604). Wenn die Prozeßlogik feststellt, daß der Zugriff auf einen Kanal des lokalen Speichers für Grafik geschehen soll, dann verschiebt die Prozeßlogik die virtuelle Adresse an die entsprechende Adresse des lokalen Speichers für Grafik und schließt den Speicherzugriff ab (Prozeßblock 606). Ansonsten, wenn die Prozeßlogik feststellt, daß der Zugriff auf einen Kanal des Systemspeichers geschehen soll, dann verschiebt die Prozeßlogik die virtuelle Adresse an die entsprechende Adresse des lokalen Speichers für Grafik und schließt den Speicherzugriff ab (Prozeßblock 608), und der Prozeß ist beendet.
  • Die 7 bis 9 beschreiben unterschiedliche beispielhafte Ausführungsformen möglicher Aufteilungen von lokalem Speicher für Grafik und Systemspeicher im virtuellen Adreßraum. Die Beschreibung des Computersystems gemäß 4 gilt ebenso für die Computersysteme gemäß den 79. Die 79 haben alle die Speichercontroller und die Funktionalität, die in 4 beschrieben ist, sie sind jedoch aus Gründen der Zweckmäßigkeit vereinfacht.
  • 7 beschreibt eine Ausführungsform eines aktuellen lokalen Speichers für Grafik, der in 50% lokalen Speicher für Grafik und 50% Systemspeicher aufgeteilt ist. Bei dieser Ausführungsform kommt die Hälfte der Bandbreite für Grafik von dem lokalen Speicher des Grafikprozessors und die Hälfte kommt vom Systemspeicher über eine Verbindung 700. Bei einer Ausführungsform besteht der Systemspeicher 702 aus zwei Kanälen eines DDR3(doppelte Datenrate 3 – Double Data Rate 3)-Speichers und der lokale Speicher 740 für Grafik besteht aus einem Kanal GDDR(doppelte Datenrate für Grafik – Graphics Double Data Rate)-Speicher. Bei einer Gestaltung dieser Ausführungsform hat der GDDR-Kanal das Doppelte der Bandbreitenkapazität jedes Kanals des DDR3-Speichers für die Nutzung durch den Grafikprozessor (d. h. wenn GDDR eine Einheit Bandbreite ist, dann ist jeder DDR3 0.5 Einheiten Bandbreite). Somit kommt bei dieser Gestaltung 50% der Speicherbandbreite des Grafikprozessors von den beiden Kanälen des DDR3-Systemspeichers und die anderen 50% kommen von dem einen GDDR-Kanal des lokalen Speichers für Grafik. Diese besondere Gestaltung hat zwei Nachteile: Die Spitzenbandbreite bei jedem der Kanäle des Grafikspeichers muß das Zweifache der jedes Kanals des Systemspeichers sein; und wenn die Grafik die volle Bandbreite nutzt, gibt es keine Systembandbreite, die für die CPU verfügbar wäre. Der erste Nachteil kann behandelt werden, indem irgendeine Kombination der Geschwindigkeiten des Ka nals des Systemspeichers (z. B. DDR3) und des Kanals des Grafikspeichers (z. B. GDDR) verwendet wird. In diesem Fall jedoch kann entweder der Systemspeicher oder der Grafikspeicher unterfordert sein, abhängig von dem Anteil der Bandbreite von Grafik zu Systemspeicher. Der zweite Nachteil kann behandelt werden, indem die Spitzenbandbreite des Kanals des Systemspeichers größer als die Hälfte der Spitzenbandbreite des Kanals des Grafikspeichers gemacht wird. Wenn somit der lokale Speicher für Grafik voll genutzt wird, wird es noch Kapazität bei der Bandbreite geben, die von den Kanälen des Systemspeichers genutzt werden kann ist, um die CPU zu bedienen.
  • 8 beschreibt eine Ausführungsform eines virtuellen lokalen Speichers für Grafik, der in 75% lokalen Speicher für Grafik und 25% Systemspeicher aufgeteilt ist. Somit kommen bei dieser beispielhaften Ausführungsform drei Viertel der Grafikbandbreite von dem Speicher, der für den Grafikprozessor lokal ist, und ein Viertel kommt von dem Systemspeicher über eine Verbindung 800. Bei dieser beispielhaften Ausführungsform besteht ein Systemspeicher 802 aus zwei Kanälen des DDR3-Speichers, und der lokale Speicher 804 für Grafik besteht aus einem Kanal des DDR-Speichers und einem Kanal des GDDR-Speichers. Diese Ausführungsform fügt mehr Speicherbandbreite hinzu, die für den Grafikprozessor lokal ist, um Störungen bei dem zentralen Prozessor zu verringern.
  • Bei dieser beispielhaften Ausführungsform hat der GDDR-Kanal das Doppelte der Bandbreitenkapazität des DDR-Kanals des lokalen Speichers für Grafik, die der Grafikprozessor verwenden kann (d. h. wenn GDDR eine Einheit Bandbreite ist, dann ist der DDR des lokalen Speichers für Grafik 0.5 Einheiten Bandbreite). Dieser DDR des lokalen Speichers kann billiger als der GDDR sein, da er weniger Bandbreite hat, und gleichzeitig billiger als ein Kanal des Systemspeichers, da weniger Kapazität für den Systemspeicher erforderlich ist und somit weniger Speichereinheiten erforderlich sind. Weiterhin liefert jeder DDR3-Kanal des Systemsspeichers die Hälfte der Bandbreite des DDR-Kanals des lokalen Speichers für Grafik, die der Grafikprozessor verwenden kann (d. h. wenn der DDR des lokalen Speichers für Grafik 0.5 Einheiten Bandbreite ist, dann liefert jeder DDR3-Kanal des Systemspeichers 0.25 Einheiten Bandbreite). Somit kommen bei dieser beispielhaften Ausführungsform 25% der Speicherbandbreite des Grafikprozessors von den beiden DDR3-Kanälen des Systemspeichers und die anderen 75% kommen von dem GDDR-Kanal des lokalen Speichers für Grafik und dem DDR-Kanal des lokalen Speichers für Grafik. Bei diesem Beispiel, da die DDR3-Kanäle nur 25% der gesamten Bandbreite des Grafikspeichers liefern, gibt es potentiell mehr Bandbreite, die für die CPU verfügbar ist, da die Spitzenbandbreite des DDR3-Kanals des Speichers ungefähr die Hälfte der Spitzenbreite des GDDR-Kanals des Speichers ist. Weitere Variationen sind auch möglich, bei denen der DDR des lokalen Grafikspeichers ein langsamerer, billigerer Speicher als der Systemspeicher ist, so daß die Systemkosten verringert werden.
  • 9 beschreibt eine Ausführungsform eines virtuellen lokalen Speichers für Grafik, der in 67% lokalen Speicher für Grafik und 33% Systemspeicher aufgeteilt ist. Somit kommen bei dieser beispielhaften Ausführungsform zwei Drittel der Bandbreite für Grafik von einem Speicher, der für den Grafikprozessor lokal ist, und ein Drittel kommen über eine Verbindung 900 vom Systemspeicher. Bei dieser beispielhaften Ausführungsform besteht der Systemspeicher 902 aus zwei Kanälen des DDR3-Speichers, und der lokale Speicher 904 für Grafik besteht aus zwei Kanälen des GDDR-Speichers. Diese Ausführungsform fügt wieder mehr Speicherbandbreite hinzu, die für den Grafikprozessor lokal ist, um das Leistungsvermögen der Grafik zu verbessern.
  • Bei dieser beispielhaften Ausführungsform hat jeder GDDR-Kanal des lokalen Speichers für Grafik das Doppelte der Bandbreitenkapazität jedes der DDR3-Kanäle des Systemspeichers, die der Grafikprozessor nutzen kann (d. h. wenn ein GDDR-Kanal eine Einheit Bandbreite ist, dann ist jeder DDR3-Kanal 0.5 Einheiten Bandbreite). Somit kommen bei dieser beispielhaften Ausführungsform 33% der Speicherbandbreite des Grafikprozessors von den beiden DDR3-Kanälen des Systemspeichers und die anderen 67% kommen von den zwei GDDR-Kanälen des lokalen Speichers für Grafik. Wie im Zusammenhang mit der 7 kann diese Ausführungsform verallgemeinert werden, so daß sie jedes Verhältnis von Bandbreiten von GDDR- zu DDR3-Kanal haben kann.
  • Alle gezeigten Optionen können für irgendeine der Topologien wiederholt werden, die in den 1 bis 4 gezeigt und im Zusammenhang mit diesen Figuren beschrieben sind.
  • Somit werden Ausführungsformen eines virtuellen lokalen Speichers für einen Grafikprozessor offenbart. Diese Ausführungsformen sind mit Bezug auf bestimmte beispielhafte Ausführungsformen beschrieben. Es wird jedoch den Personen, die den Nutzen aus dieser Offenbarung ziehen, offensichtlich sein, daß verschiedene Modifikationen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne daß man sich vom weiteren Gedanken und Umfang der hierin beschriebenen Ausführungsformen entfernt. Die Beschreibung und die Zeichnungen sollen demgemäß veranschaulichend anstatt in einem einschränkenden Sinne betrachtet werden.
  • ZUSAMMENFASSUNG
  • Eine Vorrichtung, ein Verfahren und ein System werden offenbart. Bei einer Ausführungsform weist die Vorrichtung einen oder mehrere lokale Kanäle für einen lokalen Grafikspeicher, einen oder mehrere Kanäle eines Systemspeichers und einen Grafikprozessor auf, der so betrieben wird, daß er auf den einen oder die mehreren Kanäle des lokalen Grafikspeichers für die Grafik und auf den einen oder die mehreren Kanäle des Systemspeichers verschachtelnd zugreift.

Claims (17)

  1. Vorrichtung, die aufweist: einen oder mehrere Kanäle eines lokalen Speichers für Grafik; einen oder mehrere Kanäle eines Systemspeichers; und einen Grafikprozessor, der so betreibbar ist, daß er verschachtelnd auf den einen oder die mehreren Kanäle des lokalen Speichers für Grafik und den einen oder die mehreren Kanäle des Systemspeichers zugreift.
  2. Vorrichtung nach Anspruch 1, weiter mit einem zentralen Prozessor, der so betreibbar ist, daß er auf den einen oder die mehreren Kanäle des Systemspeichers zugreift.
  3. Vorrichtung nach Anspruch 2, bei dem der Grafikprozessor und der zentrale Prozessor sich jeweils wechselseitig auschließende Adreßräume des Systemspeichers haben.
  4. Vorrichtung nach Anspruch 1, weiter mit einer Verbindung, die mit dem Grafikprozessor und dem zentralen Prozessor gekoppelt ist.
  5. Vorrichtung nach Anspruch 4, bei der der eine oder die mehreren Kanäle des lokalen Speichers für Grafik und der eine oder die mehreren Kanäle des Systemspeichers mit dem Grafikprozessor gekoppelt sind.
  6. Vorrichtung nach Anspruch 4, bei der der eine oder die mehreren Kanäle des lokalen Speichers für Grafik und der eine oder die mehreren Kanäle des Systemspeichers mit dem zentralen Prozessor gekoppelt sind.
  7. Vorrichtung nach Anspruch 4, bei der der eine oder die mehreren Kanäle des lokalen Speichers für Grafik mit dem Grafikprozessor gekoppelt sind und der eine oder die mehreren Kanäle des Systemspeichers mit dem zentralen Prozessor gekoppelt sind.
  8. Vorrichtung nach Anspruch 1, weiter mit einem Speichercontroller, der so betreibbar ist, daß er für den Grafikprozessor den Zugriff auf die Speicherkanäle zur Verfügung stellt.
  9. Vorrichtung nach Anspruch 1, bei der Grafikprozessor sich physikalisch in einem Chipsatz befindet.
  10. Vorrichtung nach Anspruch 1, weiter mit zwei oder mehr Kanälen des lokalen Speichers für Grafik, wobei wenigstens ein Kanal einen Speicher mit doppelter Datenrate für Grafik umfaßt und wenigstens ein Kanal einen Speicher mit doppelter Datenrate umfaßt.
  11. Verfahren, mit einem Grafikprozessor, der auf einen oder mehrere Kanäle eines lokalen Speichers für Grafik und auf einen oder mehrere Kanäle eines Systemspeichers in einem Verschachtelungsmuster zugreift.
  12. Verfahren nach Anspruch 11, weiter mit einem zentralen Prozessor, der auf den einen oder die mehreren Kanäle des Systemspeichers zugreift.
  13. Verfahren nach Anspruch 12, bei dem der Grafikprozessor und der zentrale Prozessor jeweils sich wechselseitig ausschließende Adreßräume des Systemspeichers haben.
  14. System, das aufweist: einen ersten Bus; einen Systemspeicher, der mit dem Bus gekoppelt ist; einen zweiten Bus; einen lokalen Speicher für Grafik, der mit dem zweiten Bus gekoppelt ist; einen Grafikprozessor, der mit dem ersten Bus und dem zweiten Bus gekoppelt ist; und einen Speichercontroller, der so betreibbar ist, daß er dem Grafikprozessor Speicherzugriff zur Verfügung stellt, indem verschachtelt auf den lokalen Speicher für Grafik und den Systemspeicher zugegriffen wird.
  15. System nach Anspruch 14, weiter mit einem zentralen Prozessor, der so betreibbar ist, daß er auf den einen oder die mehreren Kanäle des Systemspeichers zugreift.
  16. System nach Anspruch 15, bei dem der Grafikprozessor und der zentrale Prozessor sich jeweils wechselseitig ausschließende Adreßräume des Systemspeichers haben.
  17. System nach Anspruch 14, bei dem der Systemspeicher und der lokale Speicher für Grafik jeder aus einem oder mehreren Speicherkanälen aufgebaut ist.
DE112006002600T 2005-09-30 2006-09-26 Verschachtelter virtueller lokaler Speicher für einen Grafikprozessor Ceased DE112006002600T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/242,261 2005-09-30
US11/242,261 US20070076008A1 (en) 2005-09-30 2005-09-30 Virtual local memory for a graphics processor
PCT/US2006/037574 WO2007041121A1 (en) 2005-09-30 2006-09-26 Interleaved virtual local memory for a graphics processor

Publications (1)

Publication Number Publication Date
DE112006002600T5 true DE112006002600T5 (de) 2008-08-14

Family

ID=37708164

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002600T Ceased DE112006002600T5 (de) 2005-09-30 2006-09-26 Verschachtelter virtueller lokaler Speicher für einen Grafikprozessor

Country Status (7)

Country Link
US (1) US20070076008A1 (de)
KR (1) KR20080042152A (de)
CN (1) CN101273380A (de)
DE (1) DE112006002600T5 (de)
GB (1) GB2442411A (de)
TW (1) TW200723162A (de)
WO (1) WO2007041121A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8451279B2 (en) * 2006-12-13 2013-05-28 Nvidia Corporation System, method and computer program product for adjusting a refresh rate of a display
US8284210B1 (en) * 2007-10-04 2012-10-09 Nvidia Corporation Bandwidth-driven system, method, and computer program product for changing a refresh rate
US8537169B1 (en) * 2010-03-01 2013-09-17 Nvidia Corporation GPU virtual memory model for OpenGL
US9116809B2 (en) 2012-03-29 2015-08-25 Ati Technologies Ulc Memory heaps in a memory model for a unified computing system
US9003223B2 (en) * 2012-09-27 2015-04-07 International Business Machines Corporation Physical memory fault mitigation in a computing environment
US9875195B2 (en) * 2014-08-14 2018-01-23 Advanced Micro Devices, Inc. Data distribution among multiple managed memories
CN106066771A (zh) * 2016-06-08 2016-11-02 池州职业技术学院 一种电子存储集成器系统
CN111459864B (zh) * 2020-04-02 2021-11-30 深圳朗田亩半导体科技有限公司 一种存储器件及其制造方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900885A (en) * 1996-09-03 1999-05-04 Compaq Computer Corp. Composite video buffer including incremental video buffer
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6362824B1 (en) * 1999-01-29 2002-03-26 Hewlett-Packard Company System-wide texture offset addressing with page residence indicators for improved performance
US6377268B1 (en) * 1999-01-29 2002-04-23 Micron Technology, Inc. Programmable graphics memory apparatus
US6894691B2 (en) * 2002-05-01 2005-05-17 Dell Products L.P. Dynamic switching of parallel termination for power management with DDR memory
US20040017374A1 (en) * 2002-07-25 2004-01-29 Chi-Yang Lin Imaging data accessing method
US7233335B2 (en) * 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource

Also Published As

Publication number Publication date
GB0801695D0 (en) 2008-03-05
CN101273380A (zh) 2008-09-24
GB2442411A (en) 2008-04-02
TW200723162A (en) 2007-06-16
WO2007041121A1 (en) 2007-04-12
US20070076008A1 (en) 2007-04-05
GB2442411A8 (en) 2008-04-08
KR20080042152A (ko) 2008-05-14

Similar Documents

Publication Publication Date Title
DE112006002600T5 (de) Verschachtelter virtueller lokaler Speicher für einen Grafikprozessor
DE2760322C2 (de)
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE102013106154B4 (de) Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE3810231A1 (de) Digitalrechner mit programmierbarer dma-steuerung
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE2422802A1 (de) Datenverarbeitungsanlage
WO2000063846A1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE102013114256A1 (de) Systeme und Verfahren zur Beibehaltung der Informationskohärenz
DE3535436C2 (de)
WO2005091131A2 (de) Computersystem zur elektronischen datenverarbeitung
DE102020104221A1 (de) System, Vorrichtung und Verfahren zum Vergrössern der Bandbreite von am Rand befindlichen Agenten einer integrierten Schaltung
EP0882267B1 (de) Mehrprozessor-zentraleinheit
DE69726795T2 (de) Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
DE69534890T2 (de) Verfahren zum schnellen Ausmalen und Kopieren von Bildelementen kurzer Wortlänge in einem breiteren Rasterpufferspeicher
DE69912034T2 (de) Bildverarbeitungsgerät
DE112016002891T5 (de) Eine skalierbare Kreuzschienenvorrichtung und ein Verfahren zum Anordnen von Kreuzschienenschaltungen
DE112012005663B4 (de) Vorrichtung, Verfahren und System zur Zuweisung von Prozesen oder Threads an Agenten
DE602004005820T2 (de) Prozessorarray
DE19580638B4 (de) Computersystem und Verfahren zum Steuern eines Peripheriegeräts in einem Computersystem
DE102005010931A1 (de) Mehrtordirektzugriffsspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 12/04 AFI20060926BHDE

8131 Rejection