DE102013105772A1 - Effizientes Cache-Vorladen - Google Patents

Effizientes Cache-Vorladen Download PDF

Info

Publication number
DE102013105772A1
DE102013105772A1 DE102013105772A DE102013105772A DE102013105772A1 DE 102013105772 A1 DE102013105772 A1 DE 102013105772A1 DE 102013105772 A DE102013105772 A DE 102013105772A DE 102013105772 A DE102013105772 A DE 102013105772A DE 102013105772 A1 DE102013105772 A1 DE 102013105772A1
Authority
DE
Germany
Prior art keywords
graphics
preload
pixels
preload table
lines
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.)
Withdrawn
Application number
DE102013105772A
Other languages
English (en)
Inventor
Michael Soegtrop
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 Deutschland GmbH
Original Assignee
Intel Mobile Communications GmbH
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 Mobile Communications GmbH filed Critical Intel Mobile Communications GmbH
Publication of DE102013105772A1 publication Critical patent/DE102013105772A1/de
Withdrawn legal-status Critical Current

Links

Images

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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Es werden Verfahren, Vorrichtungen und Software angegeben, die beispielsweise das folgende durchführen. Eine Vorladetabelle kann ermittelt werden, basierend auf einem zu verarbeitenden Grafik-Element. Das Grafik-Element kann eine Vielzahl von Grafik-Zeilen beinhalten. Die Vorladetabelle kann ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angeben. Für jede der Grafik-Zeilen des Grafik-Elements können die Bildpunkte verarbeitet werden und die Cachezeilenvorladeoperation kann entsprechend der Vorladetabelle durchgeführt werden.

Description

  • Viele moderne Mikroprozessoren bieten eine Methode für das Vorladen von Daten in den Cache (oder Zwischenspeicher) an bevor diese benötigt werden. Auf diese Weise können Speicherzugriffslatenzen versteckt werden. Wenn jedoch ein Vorladen des Caches nicht auf eine effiziente Art und Weise erfolgt, kann das Vorladen den gesamten Ablauf sogar eher abbremsen als beschleunigen. Dies kann sowohl für triviale Fälle (wie beispielsweise einen Wort-zu-Wort Speicherkopieren) als auch bei weit komplexeren Fällen (wie beispielsweise ein bilineares Skalieren von Grafiken) zutreffen. Ein Faktor, der möglicherweise das Vorladen sogar weniger effizient macht, ist, dass bei einigen Prozessoren, wie beispielsweise bei fortgeschrittenen RISC-Maschinen (ARM) Prozessoren, Vorlade-Anweisungen nicht abhängig gemacht werden können. Dies kann zu einem Vorladeverhalten führen, das eher unvorhersehbar und ineffizient ist.
  • Sogar dort, wo ein Vorladen eines Caches eingesetzt wird, wird es typischerweise in einer vereinfachten, jedoch ineffizienten Art eingesetzt. Beispielsweise wird bei einem Ansatz eine vorbestimmte Anzahl von Bildpunkten (oder Pixeln) immer vorgeladen, bevor die Bildpunkte zur Verarbeitung benötigt werden. Bei einem derartigen Ansatz werden nach dem Laden der Daten für den Bildpunkt „i” die Daten für den Bildpunkt „i + n + 1” vorgeladen, wobei n die Anzahl von Bildpunkten ist, die während des Vorladens von einer Cachezeile verarbeitet werden können. Jedoch kann von solch einem Ansatz nicht erwartet werden, das dieser einen großen Vorteil, wenn überhaupt, bringt, da Daten nach dem Ende der Zeile von Bildpunkten vorgeladen werden, aber nie benutzt werden, während hingegen Daten am Anfang der Zeile nicht vorgeladen sind. Aus diesen und anderen Gründen werden Cachevorladeanweisungen in der Praxis nicht häufig verwendet.
  • Verschiedene Aspekte sind hierin offenbart. Beispielsweise sind einige Aspekte auf ein Verfahren gerichtet, aufweisend: Ermitteln, durch einen Computer (oder Computervorrichtung), einer Vorladetabelle basierend auf einem Grafik-Element, wobei das Grafik-Element eine Vielzahl von Grafik-Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operationen für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer.
  • Gemäß einem Aspekt dieser Offenbarung weist das Verarbeiten der Bildpunkte wenigstens zum Teil das Verarbeiten einer der Folgenden auf: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation.
  • Gemäß einem Aspekt dieser Offenbarung weist die Vorladetabelle Paare von Werten auf, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile der vorzuladen ist.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder grafischen Zeile des grafischen Elements auf.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle basierend auf einer Länge von jeder Grafik-Zeile des Grafik-Elements auf.
  • Gemäß einem Aspekt dieser Offenbarung ist die Länge jeder Grafik-Zeile die gleiche.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkten vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten grafischen Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der momentanen grafischen Zeilen.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkten enthält.
  • Weitere Aspekte sind auf ein computerlesbares Speichermedium gerichtet, das computerausführbare Anweisungen speichert zum Ausführen einen Verfahrens, das Verfahren aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei das Grafik-Element eine Vielzahl von Grafik-Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer.
  • Gemäß einem Aspekt dieser Offenbarung weist das Verarbeiten der Bildpunkte als Teil wenigstens das Verarbeiten eines der Folgenden auf: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation.
  • Gemäß einem Aspekt dieser Offenbarung weist die Vorladetabelle Paare von Werten auf, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile die vorzuladen ist.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder Grafik-Zeile des Grafik-Elements auf.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle basierend auf einer Länge von jeder Grafik-Zeile des Grafik-Elements auf.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkten vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten Grafik-Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der momentanen Grafik-Zeilen.
  • Gemäß einem Aspekt dieser Offenbarung weist das Ermitteln das Ermitteln der Vorladetabelle auf, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkten enthält.
  • Noch weitere Aspekte sind auf ein Verfahren gerichtet, das aufweist ein Ermitteln, durch einen Computer, einer Vorladetabelle basierend auf einem Grafik-Element, wobei die Vorladetabelle angibt, wie viele Bildpunkte vor einer Cachezeilen-Vorlade-Operation zu verarbeiten sind; und für jede der Vielzahl von Grafik-Zeilen des Grafik-Elements, Wiederverwenden der Vorladetabelle durch den Computer zum Verarbeiten der Bildpunkte der Grafik-Zeile und Durchführen des Cachevorladens.
  • Gemäß einem Aspekt dieser Offenbarung weist das Verarbeiten der Bildpunkte als Teil wenigstens das Verarbeiten eines der Folgenden auf: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation. Gemäß einem Aspekt dieser Offenbarung weist das Wiederverwenden der Vorladetabelle für jede der Grafik-Zeilen das Verwenden der Vorladetabelle als einen Satz von Anweisungen auf, und Durchführen der Bildpunktverarbeitung und Cachevorladen gemäß den Anweisungen.
  • Das Folgende stellt eine vereinfachte Übersicht dar, um ein grundlegendes Verständnis von einigen Aspekten dieser Offenbarung zur Verfügung zu stellen. Die Übersicht stellt keinen ausführlichen Überblick über die Offenbarung dar. Es ist in keiner Weise beabsichtigt, Schlüsselelemente oder wesentliche Elemente der Offenbarung, noch den Umfang der Offenbarung zu beschreiben. Die Übersicht stellt lediglich einige Konzepte der Offenbarung in einer vereinfachten Form, als ein Vorspiel der Beschreibung unterhalb, dar.
  • Ein besseres Verständnis der vorliegenden Offenbarung und mögliche Vorteile der verschiedenen Aspekte die hierin beschreiben sind, können durch Bezugnahme auf die folgende Beschreibung unter Berücksichtigung der nebenstehenden Figuren erfasst werden, bei denen gleiche Bezugszeichen gleiche Merkmale angeben und wobei:
  • 1 ein Blockdiagramm eines beispielhaften Computers ist, der verwendet werden kann, jedes der hierin beschriebenen und in den Figuren dargestellten Elemente zu verkörpern;
  • 2 ist ein Blockdiagramm einer beispielhaften Konfiguration eines Cache eines Computers gemäß einem oder mehreren hierin beschrieben Aspekten;
  • 3 ist ein Blockdiagramm, das einen beispielhaften Transfer zwischen Nicht-Cachespeicher und Cachespeicher gemäß einem oder mehreren hierin beschrieben Aspekten zeigt;
  • 4 ist ein Screenshot, mit einem vergrößertem Ausschnitt zur Darstellung, eines beispielhaften grafischen Elements, oder eines Teil davon, das gemäß einem oder mehreren hierin beschrieben Aspekten verarbeitet werden kann;
  • 5 ist ein Flussdiagramm, das beispielhafte Schritte zeigt, die gemäß einem oder mehreren hierin beschrieben Aspekten durchgeführt werden können;
  • 5 bis 10 sind Blockdiagramme die einen beispielhaften zeitlichen Ablauf zeigen, wie ein Grafik-Element vorgeladen werden kann und gemäß einem oder mehreren hierin beschrieben Aspekten verarbeitet werden kann; und
  • 11A bis 11C sind Flussdiagramme, die beispielhafte Schritte zeigen, die gemäß einem oder mehreren hierin beschrieben Aspekten durchgeführt werden können.
  • Es wird darauf hingewiesen, dass eine oder mehrere der Figuren nicht maßstabsgetreu dargestellt sein können.
  • 1 ist ein Blockdiagramm eines beispielhaften Computers (oder Computervorrichtung oder Computergerät) 100, der für jede oder alle der hierin beschriebenen Funktionen und Merkmale verwendet werden kann. Der Computer 100 kann Hardware enthalten, die z. B. durch Ausführen von Software zum Durchführen bestimmter Funktionen betrieben werden kann. Die Software, wenn überhaupt, kann auf einem greifbaren und/oder nicht dauerhaft computerlesbaren Medium 102 in der Form von computerlesbaren Anweisungen gespeichert sein. Der Computer 100 kann diese computerlesbaren Anweisungen lesen, und als Antwort darauf verschiedene Schritte ausführen, die durch diese computerlesbaren Anweisungen definiert sind. Daher können alle Funktionen, Schritte, Berechnungen, Bestimmungen die hierin zum Ausdruck gebracht werden durch den Computer 100 implementiert werden, wie durch Lesen und Ausführen computerlesbarer Anweisungen zur Durchführung dieser Funktionen, und/oder durch jedes Hardware-Subsystem (z. B. einen Prozessor 101) aus dem der Computer 100 aufgebaut ist. Zusätzlich oder ergänzend, kann jede der zuvor genannten Funktionen durch die Hardware des Computers 100 mit oder ohne das Ausführen von Software implementiert sein. Beispielsweise kann der Computer 100 ein oder mehrere Mikroprozessoren, zentrale Recheneinheiten (CPUs) und/oder jede andere Art von Schaltung sein oder beinhalten, die eingerichtet ist einige oder alle der Funktionen, die dem Computer 100 zugewiesen sind auszuführen. Bei solchen Ausführungsformen kann der Prozessor 101 implementiert sein als, oder anderenfalls den einen oder die mehreren Mikroprozessoren, CPUs, ASICSs und/oder andere Arten von Schaltungen beinhalten.
  • Der Computer kann jedes elektronische, elektro-optische, und/oder mechanische Bauteil oder System von multiplen physikalisch separierten oder integrierten derartigen Bauteile beinhalten, die in der Lage sind, Informationen, wie in der Form von Daten zu Verarbeiten oder zu Verändern. Nichteinschränkende Beispiele für einen Computer beinhalten einen oder mehrere Personalcomputer (z. B. Desktop, Tablet oder Laptop), Mainframes, Server, zellulare Telefone (die „Smartphones” sein können) Persönliche digitale Assistenten (PDAs) und/oder Systeme dieser, in jeder Kombination oder Unterkombination. Zusätzlich kann sich ein angegebener Computer physikalisch vollständig an einem Ort befinden oder er kann über eine Vielzahl von Orten verteilt angeordnet sein (d. h. er kann verteiltes Rechnen durchführen). Ein Computer kann ein Universal-Computer und/oder ein zweckbestimmter Computer, eingerichtet um nur bestimmte begrenzte Funktionen auszuführen, sein oder anderenfalls beinhalten.
  • Das computerlesbare Medium 102 kann nicht nur ein einzelnes greifbares und/oder nicht-dauerhaftes Medium oder einzelnen Typ von einem solchen Medium beinhalten, sondern auch eine Kombination eines oder mehrerer derartiger Medien und/oder Typen von Medien. Beispielhafte Ausführungen von computerlesbarem Medium 102 beinhalten, sind aber nicht hierauf beschränkt, ein oder mehrere Speicher (z. B. ROM, RAM und/oder Flashspeicher), Festplatten, optische Scheiben (wie z. B. CDs oder DVDs), magnetische Scheiben oder magnetische Bandlaufwerke. Das computerlesbare Medium 102 kann ein physikalischer Bestandteil von, oder anderenfalls zugänglich von dem Computer 100 sein, und kann die zuvor aufgeführten computerlesbaren Anweisungen (z. B. Software) und/oder computerlesbare Daten (d. h. Informationen, die ausführbar oder nicht-ausführbare sein können) speichern.
  • Der Computer 100 kann auch eine Benutzer-Eingabe/Ausgabe-Schnittstelle 103 zum Empfangen von Eingaben von einem Benutzer (z. B. über Geräte 106, wie z. B. einer Tastatur, Maus, Berührungsbildschirm, einem Mikrofon, Kamera, und/oder Fernbedienung) und/oder zum Bereitstellen von Ausgaben an den Benutzer (z. B. über einen Bildschirm 105, einen Lautsprecher oder piezoelektrischen Elementen, eine Anzeigeleuchte, einem Drucker usw.) beinhalten.
  • Der Computer 100 kann weiter eine Kommunikations-Eingabe/Ausgabe-Schnittstelle 104 zur Kommunikation mit anderen Geräten über Draht oder drahtlos beinhalten. Eine derartige Kommunikation mit anderen Geräten kann direkt oder indirekt über ein drahtgebundenes und/oder drahtloses Netzwerk erfolgen.
  • Wie in 2 dargestellt, können ein Cache (oder Zwischenspeicher) 202 und/oder Cache 201 als Teil des computerlesbaren Mediums 102 und/oder integriert mit dem Prozessor 101 beinhaltet sein. Alle Bezugnahmen auf einen Cache sind gedacht, einen oder beide dieser Cache zu beinhalten, als auch jede andere Art von Cachekonfigurationen.
  • Wie in 3 dargestellt, können in einem Cache (dargestellt in 3 als Cachespeicher (oder Pufferspeicher) 302 gespeicherte Daten zu einem Nicht-Cachespeicher (oder Nicht-Pufferspeicher) 301 (der z. B. das computerlesbare Medium 102 oder der andere Cache 202 sein kann) übertragen werden, und umgekehrt. Vorladen des Caches kann daher beispielsweise das Übertragen (z. B. Kopieren oder Verschieben) von Daten von dem Nicht-Cachespeicher 301 zu dem Cachespeicher 302 aufweisen. Ferner können die Daten nachträglich zurück zu dem Nicht-Cachespeicher 301 übertragen (z. B. kopiert oder verschoben) werden. Daten, die gespeichert oder übertragen werden, können jede Art von Daten sein, inklusive aber nicht beschränkt auf Grafik-Daten, die ein Grafik-Element repräsentieren. Beispielsweise können die Grafik-Daten ein Bitmap und/oder eine Vektormenge die das Grafik-Element repräsentieren oder können das Grafik-Element in jedem anderen Format kodieren können. Wenn die Grafik-Daten ein Bitmap (oder Punktgrafik) sind, kann das Bitmap jeden Pixelwert (oder Bildpunktwert) (z. B. Farbe, Farbton, Sättigung, und/oder andere Eigenschaften des Bildpunkts) zu jedem Bildpunkt innerhalb des Grafik-Elements abbilden.
  • 4 ist ein Screenshot mit einem vergrößerten Ausschnitt zur Darstellung eines beispielhaften Grafik-Elements 401, oder eines Teils davon, der gemäß einem oder mehreren hierin beschriebenen Aspekten verarbeitet werden kann. Das Grafik-Element 401 kann von dem Computer 100 dargestellt werden, z. B. auf dem Bildschirm 105. Das Grafik-Element 401 kann beispielsweise ein diskretes Icon, ein Teil eines größeren Grafik-Elements (wie z. B. ein Teil eines angezeigten Fotos oder grafisch gerenderten Designs, usw.) sein. Die Bildpunkte des Grafik-Elements 401 sind in 4 dargestellt, und ein Teil davon ist zum Zweck der Erklärung vergrößert dargestellt. Wie zu erkennen ist, ist das Grafik-Element 401 in einer rechteckigen Anordnung von Bildpunkten in Zeilen und Spalten gerendert. Dies ist lediglich anschaulich und andere Renderings des Grafik-Elements 401 können ausgeführt und dargestellt werden. Wie beispielhaft in dem vergrößerten Bereich von 4 dargestellt ist, können die Zeilen des Grafik-Elements jeweils als eine separate Grafik-Zeile (grafische Zeile 1, grafische Zeile 2, grafische Zeile 3 usw.) angesehen werden. Alternativ kann jede Spalte als Grafik-Zeile angesehen werden. Wie weiter unten beschrieben wird, kann eine Vorladetabelle (oder Preload-Tabelle) erzeugt und verwendet werden, die berücksichtigt, welche Grafik-Zeile des Grafik-Elements 401 momentan verarbeitet und/oder vorgeladen wird. Allgemein kann die Vorladetabelle auf Grundlage von einem oder mehreren der Folgenden erzeugt werden: der Länge der ursprünglichen Grafik-Zeilen, der Ausrichtung der ursprünglichen Grafik-Zeilen (Position des ersten Bildpunkts in einer Grafik-Zeile in der ersten Cachezeile für die Grafik-Zeile), der Länge der Zielzeilen, einem Skalierungsfaktor (der durch die ursprünglichen und die Zielzeilen ermittelt werden kann), und/oder einer Vorladedistanz (der Wert „n”, wie weiter unten erwähnt, der ermittelt werden kann, die Anzahl von Bildpunkten zu sein, die verarbeitet werden können, während des Vorladens einer Cachezeile, oder zwei Cachezeilen, für den Fall von bilinearer Interpolation).
  • Wie zuvor behandelt, gibt es verschiedene potentielle Probleme und Komplikationen bei der Verwendung von Vorladebefehlen. Um diese möglicherweise zu überwinden, kann ein tabellenorientierter Ansatz für rechteckige zweidimensionale grafische Verfahren verwendet werden. Um den tabellenorientierten Ansatz umzusetzen, kann eine Vorladetabelle erzeugt werden, die Cachevorladen für eine einzelne Grafik-Zeile des Grafik-Elements 401 (oder jedes anderen zu verarbeitenden Grafik-Elements) beschreibt. Die Tabelle kann einmal für das Verfahren erzeugt werden und dann für einige oder alle der Grafik-Zeilen in dem Verfahren oder späteren Verfahren wiederverwendet werden. Jeder Eintrag in der Tabelle kann beispielsweise die Anzahl der zu rendernden Zielbildpunkte und dem Index der Cachezeile (z. B. relativ zu dem Anfang der momentanen Zeile) beinhalten, die für das Cachen (oder Puffern) verwendet werden.
  • Angenommen, ein Vorladen einer Cachezeile benötigt erwartungsgemäß weniger Zeit als die Verarbeitung von n Bildpunkten, kann die Vorladetabelle beispielsweise in Übereinstimmung mit folgenden Regeln erzeugt werden:
    • a) Jede Cachezeile wird n Bildpunkte (oder Pixel) vorher geladen, bevor die Cachezeile benötigt wird (z. B. wenigstens eine vorbestimmte Anzahl von Bildpunkten, bevor ein in die Cachezeile vorgeladener Bildpunkt für eine Zielzeile verarbeitet wird). Die vorbestimmte Anzahl von Bildpunkten kann beispielsweise n Bildpunkte sein, wobei „n” die Anzahl von Bildpunkten ist, die verarbeitet werden können (z. B. als Teil einer Alphablendingoperation (inklusive, aber nicht beschränkt auf, Porter-Duff-Mischen), eine Interpolationsoperation, wie z. B. eine bilineare Interpolationsoperation, eine Farbformatkonvertierungs-Operation wie z. B. Farbeffekte oder andere künstlerische Filter) während des Vorladens der Cachezeile.
    • b) Die erste Cachezeile, die für die nächste Grafik-Zeile verwendet wird, wird vorgeladen, nach dem Vorladen der letzten Cachezeile der momentanen Grafik-Zeile. Dies kann nach dem Vorladen der letzten Cachezeile der momentanen Grafik-Zeile und/oder vor der Verarbeitung der nächsten Grafik-Zeile durchgeführt werden.
    • c) Falls die erste Cachezeile, die in b) vorgeladen wurde, weniger als eine vorbestimmte Anzahl (z. B. n) von Bildpunkten enthält, wird die nächste (zweite) Cachezeile auch vorgeladen, während die vorherige Grafik-Zeile verarbeitet wird.
    • d) Vorladungen (oder Preloads), die entsprechend b) durchgeführt wurden, sind, wenn möglich, auf einen früheren Zeitpunkt verschoben, so dass der Abstand zwischen aufeinanderfolgenden Vorladungen wenigstens eine vorbestimmte Anzahl von Bildpunkten (z. B. n Bildpunkte) beträgt.
    • e) Nur Cachezeilen die momentan benötigt werden, werden vorgeladen.
    • f) Wenn das letzte Vorladen einer Grafik-Zeile der ersten Cachezeile der nächsten Grafik-Zeile dient, wird das letzte Vorladen einer vorbestimmten Anzahl von Bildpunkten (z. B. n Bildpunkte) vor dem Ende der Grafik-Zeile ausgeführt. Wenn das letzte Vorladen der Grafik-Zeile für die zweite Cachezeile der nächsten Grafik-Zeile dient, wird das letzte Vorladen einer kleineren vorbestimmten Anzahl von Bildpunkten vor dem Ende der Grafik-Zeile ausgeführt. Die kleinere vorbestimmte Anzahl von Bildpunkten kann beispielsweise m – n Bildpunkte vor dem Ende der Grafik-Zeile sein, wobei m die Anzahl der Bildpunkte ist, die zum Beginn der nächsten Grafik-Zeile gerendert werden können, ohne auf Daten der zweiten Cachezeile für die nächste Grafik-Zeile zuzugreifen.
  • Die obigen Regeln sind nur ein Beispiel. Andere, einfachere Regelsätze, oder andere komplexere Regelsätze können verwendet werden. Bei anderen Beispielen können einige der Regeln zugunsten eines einfacheren Regelsatzes (ungeachtet dessen, dass möglicherweise eine weniger effiziente Grafik-Operation bereit gestellt wird) verworfen werden, wie beispielsweise, aber nicht beschränkt auf, die verworfenen Regel d). Des Weiteren können die Regeln ausgeführt werden oder nicht ausgeführt werden, oder anderenfalls in der oben angegebenen Reihenfolge befolgt werden; diese Regeln in jeder gewünschten Reihenfolge befolgt werden.
  • Ein erstmaliges Vorladen des Cache (z. B. die erste oder die ersten beiden Cachezeilen) für die erste Grafik-Zeile kann vor dem Erzeugen der Vorladetabelle initiiert werden, so dass die Vorladezeit mit der Zeit zum Erzeugen der Vorladetabelle überlappen kann. Dies ist beispielhaft bei 5 dargestellt, bei dem erstmaliges Vorladen bei Schritt 501 initiiert werden kann. Sobald das Vorladen initiiert ist (und potentiell während das Vorladen weiterhin ausgeführt wird), kann die Vorladetabelle bei Schritt 502 ermittelt werden. Sobald das erstmalige Vorladen abgeschlossen ist und die Vorladetabelle bei Schritt 502 ermittelt ist, kann dann bei Schritt 503 das Grafik-Element verarbeitet werden und entsprechend der Vorladetabelle vorgeladen werden. In manchen Fällen, wie beispielsweise bei bilinearen Interpolationsfällen, bei dem zwei Grafik-Zeilen bei der Eingabe verwendet werden, kann das Cachevorladen für beide, sowohl die momentane Grafik-Zeile als auch die nächste Grafik-Zeile durchgeführt werden. Das Ausführen der Vorladetabelle bei Schritt 503 kann beispielsweise das folgende Verfahren (beispielhaft unter Verwendung von Pseudocode dargestellt) beinhalten:
    Figure 00140001
  • Die Vorladetabelle kann in Form von Daten durch den Computer 100 gespeichert werden, wie beispielsweise in dem computerlesbaren Medium 102 und/oder in dem Cache. Die Vorladetabelle kann Informationen beinhalten, die beispielsweise anzeigen, an welchem Punkt(en) in einer Grafik-Zeile eine Cachezeile vorgeladen werden soll, und welche Cachezeile die sein soll, die vorgeladen werden soll; ein Hinweis, wie viele Bildpunkte vor dem Ausführen einer Cachevorladeoperation verarbeitet werden sollen; und/oder ein Hinweis eines Musters der Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen. Die Hinweise können absolute oder relative Ausdrücke sein, und können auf jede gewünschte Art formatiert sein. Zum Beispiel kann, falls die Vorladetabelle anzeigen würde, dass ein einzelner Bildpunkt des Grafik-Elements 401 zu verarbeiten ist, gefolgt von einem Vorladen eine Cachezeile #1, gefolgt von einen Verarbeiten von drei Bildpunkten des Grafik-Elements 401, gefolgt von einem Vorladen einer Cachezeile #2, die Vorladetabelle Bytes in der folgenden Reihenfolge enthalten: [1 1 3 2]. Bei diesem Beispiel würden die übrigen Bytes die Anzahl der zu verarbeitenden Bildpunkte repräsentieren, und die Bytes selbst würden identifizieren, welche Cachezeilen vorzuladen sind. Es gibt viele andere Wege derartige Informationen darzustellen, und es ist vorgesehen, dass dies nur ein nicht-einschränkendes Beispiel ist. Die Vorladetabelle kann ein eindimensionaler linearer Satz (z. B. Liste) von Werten, ein zweidimensionales Array von Werten, und/oder jede andere Anordnung von Werten sein. Ungeachtet des Formats kann die Vorladetabelle für wenigstens einige, und vielleicht alle der Grafik-Zeilen des Grafik-Elements verwendet werden, um zu ermitteln, wann und wie Bildpunkte des Grafik-Elements vorzuladen sind. Zum entsprechenden Ausführen der Vorladetabelle, kann die Vorladetabelle effektiv durch den Computer als vereinfachter ausführbarer Satz von Anweisungen angesehen werden, bei dem die Anweisungen der Vorladetabelle beispielsweise das Verarbeiten von X Bildpunkten oder das Vorladen von Ort Y für den Cache Z repräsentieren können.
  • 6 bis 10 sind Blockdiagramme, die einen beispielhaften zeitlichen Ablauf zeigen, wie ein Grafik-Element, wie das Grafik-Element 401, vorgeladen werden kann und gemäß einem hierin beschrieben tabellenbasierten Ansatz verarbeitet werden kann. Daher wird, bei diesem Beispiel, 10 nach 9 ausgeführt, die nach 8 ausgeführt wird, die nach 7 ausgeführt wird, die nach 6 ausgeführt wird. Bei jeder der 6 bis 10 sind zwei Quellzeilen (oder Sourcezeilen oder Ursprungszeilen) (Quellzeile 1 und Quellzeile 2) einer Quelldatenspeicherposition relativ bezüglich zweier Zielzeilen (oder Destinationzeilen) (Zielzeile 1 und Zielzeile 2) einer Zieldatenspeicherposition dargestellt. Der Vorgang besteht nun darin, Bildpunktdaten von der Quelldatenspeicherposition zu der Zieldatenspeicherposition zu verarbeiten. Eine solche Verarbeitung kann als Teil von beispielsweise den Kopier-, Verschiebe(Bewege)- oder Umwandlungsoperationen des Grafik-Elements erfolgen. Bei einigen Beispielen können die Quellzeilen 1 und 2 die Grafik-Daten des Grafik-Elements, wie dem Grafik-Element 401, sein. Insbesondere kann die Quellzeile 1 die erste Grafik-Zeile des Grafik-Elements repräsentieren, und die Quellzeile 2 kann die zweite Grafik-Zeile des Grafik-Elements repräsentieren. Natürlich kann es auch noch weitere Quellzeilen (z. B. Quellzeile 3, Quellzeile 4, usw.) geben. Jedoch sind hier nur zwei Quellzeilen dargestellt, um eine einfachere Erklärung zu ermöglichen. Ebenso kann es, auch wenn nur zwei Zielzeilen (Zielzeile 1 und Zielzeile 2) in den 6 bis 10 dargestellt sind, weitere Zielzeilen (z. B. Zielzeile 3, Zielzeile 4, usw.) geben. Wiederum sind hier nur zwei Zielzeilen dargestellt, um eine einfachere Erklärung zu ermöglichen. Es kann auch sein, dass es weitere Quell- und/oder Zielzeilen zwischen den Quellzeilen 1 und 2 und/oder den Zielzeilen 1 und 2 gibt. Bei einem solchen Fall, kann die Quellzeile 2 als die letzte Quellzeile des Grafik-Elements angesehen werden, und die Zielzeile 2 kann ebenso als letzte Zielzeile angesehen werden. Bei anderen Beispielen können die Quell- und Zielzeilen in der Tat, abhängig von dem Grafik-Element, nur zwei Zeilen beinhalten.
  • Bei 6 bis 10 repräsentiert jede kleinere Box einen Bildpunkt (oder Pixel). Bei diesem Beispiel sind, nur zur Erläuterung, die Bildpunkte zu einer Menge von acht Bildpunkten gruppiert, die die Größe einer jeden Zeile sein kann. Bei anderen Ausführungsformen kann jede Zeile eine kleinere oder größere Anzahl von Bildpunkten beinhalten; Cachezeilen mit einer Länge von acht Bildpunkten sind lediglich Teil eines Beispiels. Auch wenn jede der Quell- und Zielzeilen, die gezeigt sind, drei Sätze von acht Bildpunkten (24 Bildpunkte) enthalten, ist dies lediglich ein Beispiel. Die Quell- und Zielzeilen können jede Länge von Bildpunkten aufweisen. Dort, wo ein Cache in Bezug auf die 6 bis 10 bezeichnet wird, kann der Cache ein jeder Cache sein, wie beispielsweise, aber nicht beschränkt auf, den Cache 201 und/oder den Cache 202, und kann allgemein bezeichnet werden als Cachespeicher 302. Darüber hinaus können die Quell- und/oder Zielzeilen Teil eines beispielsweise Nicht-Cachespeichers 301 sein, ebenso können die Quell- und/oder Zielzeilen auch wenigstens teilweise in den Cachespeicher 302 gespeichert sein. Wie bei 6 gezeigt, können die ersten beiden Sätze von acht Bildpunkten der Quellzeile 2 in den Cache vorgeladen werden, wie durch die Schattierung der ersten beiden Sätze von acht Bildpunkten der Quellzeile 1 (Schritt 0) angedeutet. Dies kann beispielsweise durchgeführt werden, bei dem erstmaligen (oder initialen) Vorladen bei Schritt 501. Während das erstmalige Vorladen durchgeführt wird, kann die Vorladetabelle basierend auf den Eigenschaften des zu verarbeitenden Grafik-Elements (z. B. der grafischen Zeilenlänge, des Grafik-Zeilenoffsets, und/oder der Anzahl der Grafik-Zeilen des Grafik-Elements) erzeugt werden. Wie zuvor erörtert, kann die Erzeugung der Vorladetabelle beispielsweise bei Schritt 502 durchgeführt werden. Die restliche Erörterung der Operationen in Bezug auf 6 bis 10 kann bei Schritt 503 durchgeführt werden.
  • Bei diesem besonderen Beispiel, wie in 6 gezeigt, bestimmt die erzeugte Vorladetabelle, dass der erste vorgeladene Bildpunkt der Quellzeile zu kopieren ist (in diesem Fall, ist der erste Bildpunkt innerhalb der Quellzeile 1 verschoben, um der fünfte Bildpunkt der Quellzeile 1 zu sein), und nach einem solchen Kopieren, hat das nächste Cachevorladen zu erfolgen. Dieses Kopieren (oder Bewegen) ist in 6 durch einen durchgehenden Pfeil dargestellt und die diagonalen Streifen des ersten Bildpunkts der Zielzeile 1, zu dem der erste Bildpunkt von der Quellzeile 1 verarbeitet ist. Das Auslösen des nächsten Cachevorladens wird durch den Verlauf des unterbrochenen Pfeils angezeigt, der von der rechten Ecke des kopierten Bildpunkts in der Zielzeile 1 auf den Anfang des nächsten Satzes von acht Bildpunkten (der Größe der Cachezeile) zeigt. Daher beginnt, bei dem momentanen Beispiel, die Vorladetabelle bei dem Instruieren des Computers, den ersten Bildpunkt (Schritt 1) zu verarbeiten und anschließend ein Vorladen (Schritt 2) einer Cachezeile von Bildpunkten der Quellzeile.
  • Als nächstes, wie in 7 dargestellt, bestimmt die Vorladetabelle, dass die nächsten drei vorgeladenen Bildpunkte (Schritt 3) von der Grafik-Zeile (in diesem Fall Quellzeile 1) zu der Zielzeile (in diesem Fall Zielzeile 1) zu verarbeiten sind. Entsprechend der Vorladetabelle wird, sobald diese drei Bildpunkte zu dem Ziel verarbeitet worden sind begonnen, den nächsten Satz von acht Bildpunkten in den Cache vorzuladen (Schritt 4). Wiederum wird ein Auslösen des Kopierens und Vorladens durch durchgehende und unterbrochene Pfeile und durch Schattierung und diagonale Streifen in der gleichen Art und Weise wie in 6 dargestellt. Bei diesem Fall kann, da die Quellzeile 1 bereits vollständig vorgeladen ist, das Vorladen der Quellzeile 2 initiiert werden, so dass die Quelldaten der Quellzeile 2 bereits verfügbar sind, wenn die Verarbeitung der Quellzeile 2 beginnt.
  • Als nächstes werden, wie in 8 dargestellt, die nächsten drei vorgeladenen Bildpunkte von der Quellzeile 1 zu der Zielzeile 1 verarbeitet (Schritt 5), entsprechend der Vorladetabelle. Nach dem Verarbeiten dieser drei Bildpunkte bestimmt die Vorladetabelle, dass ein weiterer Vorladebefehl für die nächste Menge von Bildpunkten ausgegeben wird (Schritt 6), die in eine Cachezeile passen (wiederum, bei diesem Beispiel, die nächsten acht Bildpunkte von Daten). Wiederum wird ein solches Auslösen des Verarbeitens und Vorladens durch durchgehende und unterbrochene Pfeile und durch Schattierung und diagonale Streifen in der gleichen Art und Weise, wie in 6, angezeigt. Bei diesem Beispiel verwendet jede Quellzeile nur zwei Bildpunkte der ersten Cachezeile der entsprechenden Quellzeile. Da das Vorladen der Cachezeile genau so lang dauert, wie das Verarbeiten von drei Bildpunkten (bei diesem Beispiel), kann nicht erwartet werden, dass die zweite Cachezeile rechtzeitig vorgeladen ist, falls das Vorladen der Cachezeile am Ende der vorherigen Grafik-Zeile nicht beendet wäre. Dies ist beispielhaft in 8 dargestellt. Dann, wie in 9 gezeigt, wird bei Schritt 7 der letzte Bildpunkt der Quellzeile 1, ohne das Ausgeben eines Vorladebefehls, verarbeitet. An diesem Punkt endet die Vorladetabelle für diese Grafik-Zeile (Quellzeile 1).
  • Die Vorladetabelle wird nun (begonnen wiederum am Anfang der Vorladetabelle) für die nächste Grafik-Zeile (Quellzeile 2) wiederum ausgeführt. Daher wird, wie in 9 dargestellt, ein weiterer vorgeladener Bildpunkt (dieses Mal der erste Bildpunkt der von der Quellzeile 2 zu verarbeiten ist) zu der Zielzeile 2 verarbeitet (Schritt 8), entsprechend der Vorladetabelle. Am Ende des Verarbeitens dieses Bildpunkts, bestimmt die Vorladetabelle, dass ein weiterer Vorladebefehl für die nächste Menge von Bildpunkten ausgegeben werden soll (Schritt 9), die in eine Cachezeile passen (wiederum, bei diesem Beispiel, die nächsten acht Bildpunkte von Daten). Wiederum, wird ein solches Auslösen des Verarbeitens und Vorladens durch durchgehende und unterbrochene Pfeile und durch Schattierung und diagonale Streifen in der gleichen Art und Weise, wie in 6, angezeigt. Dies ist ähnlich zu der Situation bei 6, mit Ausnahme, dass es für die zweite Cachezeile ist.
  • Das zuvor beschrieben Muster kann, wenn erforderlich, für jede der Grafik-Zeilen wiederholt werden. Als nächstes werden, wie in 10 dargestellt, die verbleibenden vorgeladenen Bildpunkte von der Quellzeile 2 zu der Zielzeile 2 verarbeitet (Schritt 10). Bei diesem Beispiel wird, da Quellzeile 2 die letzte Grafik-Zeile des Grafik-Elements repräsentiert, kein weiteres Cachevorladen durchgeführt oder benötigt. Falls es noch weitere zu verarbeitenden Quellzeilen gibt (anders ausgedrückt, falls Quellzeile 2 nicht die letzte Grafik-Zeile war), werden die weiteren Quellzeilen rekursiv vorgeladen und verarbeitet auf eine identische Art und Weise wie Quellzeile 1 vorgeladen und verarbeitet wurde.
  • Wie zuvor erörtert, kann die Vorladetabelle, für eine gegebene Quellzeile, Regeln dafür definieren, wann und/oder wie Teile der Quellzeile in den Cache vorgeladen werden sollen. Dort, wo das Grafik-Element, an dem agiert wird, ein rechteckiges Element ist (was eine übliche Situation dort ist, wo das Grafik-Element ein Icon ist), wird angenommen, dass die Quellzeilen alle die gleiche Länge haben. Dort, wo das Grafik-Element kein rechteckiges Element ist (z. B. unregelmäßige Ränder hat), wird das Grafik-Element als ein rechteckiges Element behandelt, indem transparente (leere) Bildpunkte um das Grafik-Element hinzugefügt werden, um die Ränder des Grafik-Elements, wenn nötig, zu erweitern, um rechteckige Begrenzungen zu erhalten. Solche Randergänzungen können auch bei Grafik-Elementen durchgeführt werden, die bereits rechteckig sind. Beispielsweise kann es, in jedem Fall, effizienter sein, wenn die Länge der Grafik-Zeilen auf ein Vielfaches der Länge der Größe der Cachezeile gebracht wird. Bei diesem Fall können die Regeln, die durch die Vorladetabelle definiert sind, wiederholt für einige oder alle der Grafik-Zeilen des Grafik-Elements eingesetzt werden. Da die Vorladetabelle möglicherweise nur einmal für das Grafik-Element berechnet werden kann, jedoch nun wiederholt für jede der grafischen Zeilen des grafischen Elements, oder sogar für Grafik-Elemente, verwendet werden kann, kann die Möglichkeit der Wiederverwendung der Vorladetabelle potentiell die Anzahl der Berechnungen, die für die Operationen benötigt werden, die mit dem Cachevorladen zusammenhängen, reduziert werden. Die Möglichkeit der Wiederverwendung der Vorladetabelle kann auch die Notwendigkeit des bedingten Vorladebefehle vermeiden.
  • Während die Vorladetabelle auf jegliche Art und Weise ermittelt werden kann, ist das Folgende ein Beispiel eine Algorithmus, der verwendet werden kann zur Ermittlung des Inhalts der Vorladetabelle, dargestellt durch Pseudocode. Der Pseudocode kann sich allgemein einigen oder allen der zuvor aufgelisteten Beispielregeln a) bis f) anschließen.
    Figure 00210001
    Figure 00220001
    Figure 00230001
    Figure 00240001
    Figure 00250001
    Figure 00260001
  • Natürlich können viele andere Wege zur Erzeugung und/oder Ausführung der Vorladetabelle, abhängig von dem verwendeten Regelsatz und der erwünschten Komplexität, durchgeführt werden.
  • 11A bis 11C sind Flussdiagramm die beispielhafte Schritte zeigen, die gemäß einem oder mehreren hierin beschrieben Aspekten durchgeführt werden können, als ein weiteres Beispiel wie eine Vorladetabelle erzeugt werden kann. Die Schritte folgen üblicherweise dem obigen Pseudocode. Die hierbei verwendeten jeweiligen Werte und Bezeichnungen sind nur Beispiele und sollen nicht einschränkend sein. Der Vorgang der 11A bis 11C kann durch den Computer, wie beispielsweise durch den Prozessor 101, ausgeführt werden.
  • Beginnend mit dem Beispiel von 11A, wird bei Schritt 1101, die Vorladetabelle auf Leer gesetzt, der Wert von iPixelPrev wird auf Null gesetzt, und der Wert von iCachePrev wird auf GetCacheLineOffsetFirst() gesetzt. GetCacheLineOffsetFirst ist eine Funktion, die verschiedene implementierungsabhängige Parameter, wie die Anzahl der Bytes pro Bildpunkt und den Startoffset der Quellzeile, verwenden kann und den Quellzeilenoffset des ersten Bildpunkts, der von der Quellzeile verwendet wird, ermittelt. Der Cachezeilenoffset ist hierbei der Offset der Cachezeile relativ zu dem Beginn einer Grafik-Zeile, die die Quelle in Einheiten von Cachezeilen (nicht Bildpunkten) enthält. Bei Schritt 1102 wird der Wert von nFirst ermittelt, wobei nFirst die Anzahl der Bildpunkte ist, die zu Beginn einer Zeile verarbeitet werden können, wobei nur Daten der ersten Quellcachezeile verwendet werden. Bei Schritt 1103 wird ermittelt ob der Wert von nFirst kleiner ist als der Wert von nPreload (beispielsweise, der Wert n wie zuvor oberhalb beschrieben). Falls nicht, geht das Verfahren direkt zu Schritt 1104 über, bei dem der Wert von iPixel auf Null gesetzt wird, das den Beginn einer Zeile anzeigt. Falls dem so ist, kann die zweite Cachezeile nicht vorgeladen werden während die nFirst Bildpunkte verarbeitet werden, so dass diese am Ende der vorherigen Zeile vorgeladen werden müssen. In diesem Fall geht das Verfahren zu Schritt 1105 über, bei dem der Wert von iCachePrev auf iCachePrev + 1 gesetzt wird, um anzuzeigen, dass zwei Cachezeilen bereits vorgeladen wurden, wenn eine Zeile beginnt. Anschließend geht das Verfahren zu Schritt 1104 über.
  • Als nächstes, bei Schritt 1106, wird durch Vergleichen des Werts von iPixel mit dem von iPixel – 1 ermittelt, ob iPixel der Index des letzten Bildpunkts einer Zeile ist, wobei nPixel die Anzahl der Bildpunkte in der Zielzeile ist. Falls nicht geht das Verfahren zu Schritt 1108 über, bei dem ermittelt wird ob der momentane Bildpunkt iPixel eine neue Cachezeile benötigt, durch Testen ob der Wert von iCache größer ist als der Wert von iCachePrev. Falls bei Schritt 1108 ermittelt wird, dass der Wert von iCahce nicht größer ist als der Wert von iCachePrev geht das Verfahren zu Schritt 1107 über. Bei Schritt 1107 wird der momentane Bildpunkt auf den nächsten Bildpunkt der Zielzeile durch setzten des Wertes von iPixel auf den Wert von iPixel + 1 vorwärts bewegt. Nach dem Schritt 1107 geht das Verfahren zu Schritt 1106 zurück. Falls bei Schritt 1108 ermittelt wird, dass der Wert von iCache größer ist als der Wert von iCachePrev, geht das Verfahren zu Schritt 1109 über. Bei Schritt 1109 wird ein Eintrag mit dem Cachezeilenwert von iCache und der Anzahl der Bildpunkte von iPixel – iPixelPrev zu der Vorladetabelle hinzugefügt. Als nächstes wird, bei Schritt 1110, der Wert von iPixelPrev auf iPixel gesetzt und der Wert von iCachePrev wird auf iCache gesetzt. Das Verfahren geht dann zu Schritt 1107 zurück. Falls bei Schritt 1106 ermittelt wird, dass der Wert von iPixel der gleiche ist wie der von iPixel – 1 geht das Verfahren zu Schritt 1111 über. Anders ausgedrückt, geht das Verfahren über jeden Zielbildpunkt und ermittelt für jeden Zielbildpunkt, welche Quellbildpunkte verwendet werden. Falls die entsprechende Cachezeile noch nicht vorgeladen ist, wird die Cachezeile zu der Vorladetabelle hinzugefügt.
  • Bei Schritt 1111 werden die Cachezeilen, die nicht benötigt werden, d. h. Cachezeilen, die Daten nach dem Ende der Quellzeile enthalten vom Ende der Tabelle entfernt. Als nächstes wird bei Schritt 1112 an die Tabelle ein Eintrag mit einem Cachezeilenwert „der ersten Cachezeile der nächsten Zeile” und eine Anzahl von Bildpunkten von „nPixels – iPixelPrev” hinzugefügt. Das Verfahren geht dann zu Schritt 1113 weiter. Bei Schritt 1113 wird ermittelt, ob zwei Cachezeilen Am Anfang einer Zeile vorgeladen sind, durch Testen ob der Wert von nFirst kleiner ist als der Wert von nPreload. Falls nicht, geht das Verfahren direkt zu Schritt 1114 über, bei dem ein Eintrag mit einem Cachezeilenwert von „Terminieren” und eine Bildpunkteanzahl von Null zu der Tabelle hinzugefügt wird. Falls dem so ist, geht das Verfahren zu Schritt 1115 über, bei dem ein Eintrag mit einem Cachezeilenwert von „zweite Cachezeile der nächsten Zeile” und einen Bildpunktzähler von null zu der Tabelle hinzugefügt wird. Das Verfahren geht dann zu Schritt 1114 über und weiter zu Schritt 1116.
  • Alle Einträge sollten wenigstens nPreload Bildpunkte zu verarbeiten haben, mit Ausnahme des ersten und des letzten Eintrags. Vor dem ersten Eintrag gibt es kein Vorladen, so dass der erste Eintrag 0 Bildpunkte haben kann. Auch nach dem letzten Eintrag erfolgt kein Vorladen. Falls nFirst < nPreload wahr ist, lädt der letzte Eintrag die zweite Cachezeile der neuen Zeile vor. In diesem Fall müssen die durch den vorletzten Eintrag vorgeladenen Daten nicht verfügbar sein bevor die zweite Cachezeile benötigt wird. Um den Algorithmus zu vereinfachen werden zusätzliche Bildpunkte zu dem ersten und dem letzten Eintrag hinzugefügt und später subtrahiert, so dass alle Einträge auf nPreload Bildpunkte gebracht werden können. Dies ist in 11B dargestellt, beginnend mit Schritt 1116, wobei nPreload Bildpunkte zu der Bildpunktanzahl des erste Eintrags hinzugefügt werden. Als nächstes wird bei Schritt 1117 ermittelt, ob der Wert von nFiles kleiner ist als der Wert von Preload. Falls nicht, geht das Verfahren direkt zu dem Schritt 1119 über. Falls dem so ist, geht das Verfahren zu Schritt 1118 über. Bei 1118 werden nFirst Bildpunkte zu der Bildpunktanzahl des letzten Eintrags in der Tabelle hinzugefügt, und das Verfahren geht zu Schritt 1119 über. Bei Schritt 1119 beginnt das Verfahren des Verteilens der Bildpunkteanzahl über die Tabelleneinträge, so dass, falls möglich, alle Tabelleneinträge eine Bildpunkteanzahl von nPreload oder mehr haben. Dies erfolgt durch Auffinden von iPlus-Einträgen, die nicht genügend Bildpunkte aufweisen und von iMinus-Einträgen, die zusätzliche Bildpunkte aufweisen und durch Bewegen von Bildpunkten vom Tabelleneintrag iMinus zu dem Tabelleneintrag iPlus. Als erstes wird der Wert von iPlus auf den letzten Eintrag der Tabelle gesetzt. Als nächstes wird bei Schritt 1120 ermittelt, ob iPlus der erste Eintrag der Tabelle ist. Falls das so ist, geht das Verfahren direkt zu Schritt 1129 über (11C). Falls nicht, geht das Verfahren zu Schritt 1121 über. Bei Schritt 1121 wird ermittelt, ob die Anzahl von Bildpunkten des Tabelleneintrags iPlus kleiner ist als der Wert von nPreload. Falls nicht, hat der Tabelleneintrag iPlus ausreichend Bildpunkte und das Verfahren geht zu Schritt 1128 über. Falls das so ist, geht das Verfahren zu Schritt 1122 über. Bei Schritt 1122 wird der Wert von iMinus auf den vorherigen Eintrag von iPlus gesetzt und das Verfahren geht zu Schritt 1123 über.
  • Bei Schritt 1123 wird ermittelt, ob der Wert von iMinus größer ist als, oder gleich 0 ist, was der Fall ist, falls iMinus nicht über den Beginn der Tabelle hinausgeht. Falls nicht, können keine weiteren Bildpunkte zu dem iPlus-Eintrag hinzugefügt werden und das Verfahren geht zu Schritt 1128 über. Falls das so ist, geht das Verfahren zu Schritt 1124 über. Bei Schritt 1124 wird ermittelt ob die Anzahl von Bildpunkten des Tabelleneintrags iMinus größer ist als der Wert von nPreload. Falls das so ist, geht das Verfahren zu Schritt 1125 über. Bei Schritt 1125 wird die minimale Anzahl von Bildpunkten von iMinus abzüglich dem Wert von nPreload und dem Wert von nPreload abzüglich der Anzahl von Bildpunkten von iPlus ermittelt, und diese Anzahl von Bildpunkten wird von dem Tabelleneintrag von iMinus zu dem Tabelleneintrag von iPlus verschoben. Das Verfahren geht dann zu Schritt 1126 über, bei dem ermittelt wird, ob die Anzahl von Bildpunkten des Tabelleneintrags iPlus gleich ist zu dem Wert von nPreload. Falls nicht, geht das Verfahren zu Schritt 1127 über, um nach einem anderen Eintrag von iMinus zu suchen. Falls das so ist, dann hat der Eintrag iPlus ausreichend Bildpunkte erhalten und das Verfahren geht zu Schritt 1128 über. Falls bei Schritt 1124 ermittelt wird, dass die Anzahl von Bildpunkten des Tabelleneintrags des Wertes iMinus nicht größer ist als der Wert von nPreload, geht das Verfahren zu Schritt 1127 über. Bei Schritt 1127 wird der Wert von iMinus auf den vorherigen Eintrag von iMinus gesetzt. Das Verfahren geht dann zurück zu Schritt 1123. Falls bei Schritt 1123 ermittelt wird, dass der Wert von iMinus nicht größer ist oder gleich 0 ist, geht das Verfahren zu Schritt 1128 über. Bei Schritt 1128 wird der Wert von iPlus auf den vorherigen Eintrag von iPlus gesetzt. Das Verfahren geht dann zurück zu Schritt 1120.
  • Bei Schritt 1129 (11C) und den folgenden (Schritten) werden die zusätzlichen bei Schritt 1116 und 1118 oberhalb hinzugefügten Bildpunkte subtrahiert. Bei Schritt 1129 werden nPreload Bildpunkte von der Bildpunktanzahl des ersten Eintrags subtrahiert. Das Verfahren geht dann zu Schritt 1130 über. Bei Schritt 1130 wird ermittelt, ob der Wert von nFirst kleiner ist als der Wert von nPreload. Falls nicht, endet das Verfahren. Falls das so ist, geht das Verfahren zu Schritt 1131 über. Bei Schritt 1131 werden nFirst Bildpunkte von der Bildpunkteanzahl des letzten Eintrags subtrahiert. Dann endet das Verfahren.
  • In Anbetracht der hierin enthaltenen Offenbarung, enthalten nicht-beschränkende Beispiele von Aspekten die beansprucht werden können wenigstens Folgendes:
    • (1) Ein Verfahren, aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei das Grafik-Element eine Vielzahl von Grafik-Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer. Das Verarbeiten der Bildpunkte kann wenigstens zum Teil das Verarbeiten einer der folgenden aufweisen: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation. Die Vorladetabelle kann Paare von Werten aufweisen, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile die vorzuladen ist. Das Ermitteln kann das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder Grafik-Zeile des Grafik-Elements aufweisen. Die Länge jeder Grafik-Zeile kann die gleiche sein. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkten vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten Grafik-Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der aktuellen Grafik-Zeilen. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkten enthält.
    • (2) Ein computerlesbares Speichermedium, das computerausführbare Anweisungen speichert zum Ausführen einen Verfahrens, das Verfahren aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem grafischen Element, wobei das grafische Element eine Vielzahl von grafischen Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer. Das Verarbeiten der Bildpunkte als Teil kann wenigstens das Verarbeiten eines der folgenden aufweisen: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation. Die Vorladetabelle kann Paare von Werten aufweisen, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile die vorzuladen ist. Das Ermitteln kann das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder Grafik-Zeile des Grafik-Elements aufweisen. Das Ermitteln kann das Ermitteln der Vorladetabelle basierend auf einer Länge von jeder Grafik-Zeile des Grafik-Elements aufweisen. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkte vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten Grafik-Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der aktuellen Grafik-Zeilen. Das Ermitteln kann das Ermitteln der Vorladetabelle aufweisen, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkte enthält.
    • (3) Ein Verfahren aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei die Vorladetabelle angibt, wie viele Bildpunkte vor einer Cachezeilenvorladeoperation zu verarbeiten sind; und für jede der Vielzahl von Grafik-Zeilen des Grafik-Elements, Wiederverwenden der Vorladetabelle durch den Computer zum Verarbeiten der Bildpunkte der Grafik-Zeile und Durchführen-Zeile sein, wobei m die Anzahl der Bildpunkte ist, die zum Teil wenigstens das Verarbeiten eines der Folgenden aufweisen: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation. Das Wiederverwenden der Vorladetabelle für jede der Grafik-Zeilen kann das Verwenden der Vorladetabelle als einen Satz von Anweisungen aufweisen, und Durchführen der Bildpunktverarbeitung und Cachevorladen gemäß den Anweisungen.
  • Aspekte der Offenbarung wurden unter Bezugnahme auf illustrative Ausführungsformen beschrieben. Während illustrative Systeme und Verfahren die hierin beschrieben sind verschiedene Aspekte der Offenbarung darstellen, sollte von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass die Offenbarung nicht auf diese Ausführungsformen beschränkt ist. Änderungen können durch den Fachmann, insbesondere im Sinne der vorherigen Lehre vorgenommen werden. Beispielsweise kann jedes Merkmal der zur aufgeführten illustrativen Beispiele alleine oder in Kombination oder Teilkombination mit Elementen der anderen Beispiele verwendet werden, und jedes der zuvor beschriebenen Systeme, Verfahren oder Teile davon können mit den anderen zuvor beschriebenen Systemen, Verfahren oder Teilen davon kombiniert werden.
  • Bei einem oder mehreren Anordnungen kann jeder und/oder alle der Schritte der zuvor hierin beschriebenen Beispiele durch einen Computer (z. B. Computer 100) ausgeführt werden, durch eine Vielzahl von Computern, die als ein Computersystem arbeiten (z. B. ein Netzwerk) ausgeführt werden, und/oder als computerausführbare Anweisung zum Ausdruck gebracht werden, gespeichert auf einem oder mehreren nicht dauerhaft und/oder greifbaren computerlesbaren Speichermedium (z. B. eine Festplatte, eine optische Disk, ein austauschbare Disk, Speicher, usw.). Darüber hinaus, kann derjenige, der mit dem Fachgebiet vertraut ist, erkennen, dass die Schritte, die in den illustrativen Beispielen gezeigt sind, in einer anderen als der dargestellten Reihenfolge ausgeführt werden können, und dass einer oder mehrere der Schritte in Übereinstimmung mit Aspekten der Offenbarung optional sein können. Es wird auch erkannt und verstanden werden, dass Änderungen vorgenommen werden können, ohne von dem wahren Wesen und Umfang der Erfindung abzuweichen. Die Beschreibung ist daher als veranschaulichend anzusehen und nicht als einschränkend.

Claims (20)

  1. Verfahren, aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei das Grafik-Element eine Vielzahl von Grafik-Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer.
  2. Verfahren nach Anspruch 1, wobei das Verarbeiten der Bildpunkte wenigstens zum Teil das Verarbeiten einer der Folgenden aufweist: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei die Vorladetabelle Paare von Werten aufweist, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile der vorzuladen ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Ermitteln das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder grafischen Zeile des grafischen Elements aufweist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Ermitteln das Ermitteln der Vorladetabelle basierend auf einer Länge von jeder Grafik-Zeile des Grafik-Elements aufweist.
  6. Verfahren nach Anspruch 5, wobei die Länge jeder Grafik-Zeile die gleiche ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkten vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten grafischen Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der momentanen grafischen Zeilen.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkten enthält.
  10. Computerlesbares Speichermedium, das computerausführbare Anweisungen speichert zum Ausführen einen Verfahrens, das Verfahren aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei das Grafik-Element eine Vielzahl von Grafik-Zeilen aufweist, und wobei die Vorladetabelle ein Muster von Bildpunktverarbeitung und Cachezeilen-Vorlade-Operation für eine einzelne der Grafik-Zeilen angibt; und für jede der Grafik-Zeilen, Verarbeiten der Bildpunkte und Durchführen der Cachezeilen-Vorlade-Operation entsprechend der Vorladetabelle durch den Computer.
  11. Computerlesbares Speichermedium nach Anspruch 10, wobei das Verarbeiten der Bildpunkte als Teil wenigstens das Verarbeiten eines der Folgenden aufweist: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation.
  12. Computerlesbares Speichermedium nach einem der Ansprüche 10 oder 11, wobei die Vorladetabelle Paare von Werten aufweist, wobei jedes Paar von Werten eine Anzahl von Bildpunkten angibt, die zu verarbeiten sind und einen Index oder Index-Offset einer Cachezeile die vorzuladen ist.
  13. Computerlesbares Speichermedium nach einem der Ansprüche 10 bis 12, wobei das Ermitteln das Ermitteln der Vorladetabelle basierend auf einem Offset eines ersten Bildpunkts jeder Grafik-Zeile des Grafik-Elements aufweist.
  14. Computerlesbares Speichermedium nach einem der Ansprüche 10 bis 13, wobei das Ermitteln das Ermitteln der Vorladetabelle basierend auf einer Länge von jeder Grafik-Zeile des Grafik-Elements aufweist.
  15. Computerlesbares Speichermedium nach einem der Ansprüche 10 bis 14, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle Anweisungen erkennt, dass jede der Vielzahl von Cachezeilen entsprechend der Vorladetabelle vorgeladen sind, mindestens eine vorbestimmte Anzahl von Bildpunkten vorgeladen sind, bevor ein Bildpunkt der Cachezeile gemäß der Vorladetabelle verarbeitet wird.
  16. Computerlesbares Speichermedium nach einem der Ansprüche 10 bis 15, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle Anweisungen erkennt, dass eine erste Cachezeile, die für eine der nächsten Grafik-Zeilen verwendet wird, vorgeladen wird, beim Vorladen wenigstens einer Cachezeile für eine der momentanen Grafik-Zeilen.
  17. Computerlesbares Speichermedium nach Anspruch 16, wobei das Ermitteln das Ermitteln der Vorladetabelle aufweist, so dass die Vorladetabelle weitere Anweisungen erkennt, die eine zweite weitere Cachezeile auch vorlädt, falls die erste Cachezeile weniger als eine vorbestimmte Anzahl von Bildpunkten enthält.
  18. Verfahren aufweisend: Ermitteln, durch einen Computer, eine Vorladetabelle basierend auf einem Grafik-Element, wobei die Vorladetabelle angibt, wie viele Bildpunkte vor einer Cachezeilenvorladeoperation zu verarbeiten sind; und für jede der Vielzahl von Grafik-Zeilen des Grafik-Elements, Wiederverwenden der Vorladetabelle durch den Computer zum Verarbeiten der Bildpunkte der Grafik-Zeile und Durchführen des Cachevorladens.
  19. Verfahren nach Anspruch 18, wobei das Verarbeiten der Bildpunkte als Teil wenigstens das Verarbeiten eines der Folgenden aufweist: eine Alpha-Blending-Operation, eine Interpolations-Operation, eine Farbformatkonvertierungs-Operation, oder eine Farbverarbeitungs-Operation.
  20. Verfahren nach einem der Ansprüche 18 oder 19, wobei das Wiederverwenden der Vorladetabelle für jede der Grafik-Zeilen das Verwenden der Vorladetabelle als einen Satz von Anweisungen aufweist, und Durchführen der Bildpunktverarbeitung und Cachevorladen gemäß den Anweisungen.
DE102013105772A 2012-06-06 2013-06-05 Effizientes Cache-Vorladen Withdrawn DE102013105772A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261656428P 2012-06-06 2012-06-06
US61/656,428 2012-06-06
US13/792,562 US9715715B2 (en) 2012-06-06 2013-03-11 Efficient cache preloading
US13/792,562 2013-03-11

Publications (1)

Publication Number Publication Date
DE102013105772A1 true DE102013105772A1 (de) 2013-12-12

Family

ID=49626008

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013105772A Withdrawn DE102013105772A1 (de) 2012-06-06 2013-06-05 Effizientes Cache-Vorladen

Country Status (3)

Country Link
US (1) US9715715B2 (de)
CN (1) CN103473183B (de)
DE (1) DE102013105772A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2532940B (en) * 2014-12-01 2021-12-15 Advanced Risc Mach Ltd Method of and apparatus for providing an output surface in a data processing system
CN110769273A (zh) * 2018-07-27 2020-02-07 晨星半导体股份有限公司 高速缓存存取系统
CN112380013B (zh) * 2020-11-16 2022-07-29 海光信息技术股份有限公司 缓存预载方法、装置、处理器芯片及服务器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744438B1 (en) * 1999-06-09 2004-06-01 3Dlabs Inc., Ltd. Texture caching with background preloading
US6654022B1 (en) * 1999-09-30 2003-11-25 International Business Machines Corporation Method and apparatus for lookahead generation in cached computer graphics system
US7616209B1 (en) * 2006-06-16 2009-11-10 Nvidia Corporation Prescient cache management
CN101751278B (zh) 2009-12-17 2012-10-03 中兴通讯股份有限公司 一种数据延迟加载方法及装置
US9058685B2 (en) * 2010-03-11 2015-06-16 Broadcom Corporation Method and system for controlling a 3D processor using a control list in memory
US8798386B2 (en) * 2010-04-22 2014-08-05 Broadcom Corporation Method and system for processing image data on a per tile basis in an image sensor pipeline
US20130232304A1 (en) * 2012-03-05 2013-09-05 Qualcomm Incorporated Accelerated interleaved memory data transfers in microprocessor-based systems, and related devices, methods, and computer-readable media

Also Published As

Publication number Publication date
US9715715B2 (en) 2017-07-25
US20130328903A1 (en) 2013-12-12
CN103473183A (zh) 2013-12-25
CN103473183B (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
DE102017113232A1 (de) Tensorverarbeitung unter verwendung eines formats mit geringer genauigkeit
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE102014004841A1 (de) Grafik auf Kachelbasis
DE102016211642A1 (de) Patch-speichersystem
DE102015116953A1 (de) Weiterleitung von Tiefeninformation in einem Graphikverarbeitungssystem
DE102016011173A1 (de) Erstellen von Zusammenfassungen von Multimediadokumenten
DE102015009820A1 (de) Bildsegmentierung für eine Kamera-Liveeinspielung
DE112005003265T5 (de) Registerdateibereiche für ein Verarbeitungssystem
DE102016011380A1 (de) Bildsynthese unter Verwendung einer Aktivmaske
DE112016001835T5 (de) Blattgenerator für Bildprozessor
DE102013205970A1 (de) Näherungsweises Berechnen der letzten Leseposition in elektronischen Dokumenten
DE112017007656T5 (de) Verschobene aktualisierung von datenbank-hashcode in einer blockchain
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE102013013137A1 (de) Mehrstufige registerumbenennung durch entfernen von abhängigkeiten
DE102017113735A1 (de) Statistische Operationen auf einem zweidimensionalen Bildprozessor
DE112012004809T5 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
DE112016007098T5 (de) Indexierung von voxeln für das 3d-drucken
DE102015115605A1 (de) Techniken zur Weiterleitung von Abhängigkeiten in einer API
DE102013105772A1 (de) Effizientes Cache-Vorladen
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE102019119746A1 (de) Bildsignalprozessor, Verfahren zum Betreiben des Bildsignalprozessors und Anwendungsprozessor mit dem Bildsignalprozessor
DE112010005294T5 (de) Bildanzeigevorrichtung
DE112018007377T5 (de) Informationsverarbeitungsvorrichtung, steuerungsverfahren und programm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee