DE69815482T2 - Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren - Google Patents

Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren Download PDF

Info

Publication number
DE69815482T2
DE69815482T2 DE69815482T DE69815482T DE69815482T2 DE 69815482 T2 DE69815482 T2 DE 69815482T2 DE 69815482 T DE69815482 T DE 69815482T DE 69815482 T DE69815482 T DE 69815482T DE 69815482 T2 DE69815482 T2 DE 69815482T2
Authority
DE
Germany
Prior art keywords
cache
information
pixel data
pixel
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69815482T
Other languages
English (en)
Other versions
DE69815482D1 (de
Inventor
Steven D. Dallas Krueger
Jonathan H. Plano Shiell
Ian Chen (nmi), Santa Clara
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE69815482D1 publication Critical patent/DE69815482D1/de
Application granted granted Critical
Publication of DE69815482T2 publication Critical patent/DE69815482T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Memory System (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegenden Ausführungsformen beziehen sich auf Prozessoren und auf prozessorgestützte Systeme und sind insbesondere, aber nicht ausschließlich, auf Mikroprozessorschaltungen, -systeme und -verfahren mit einer kombinierten chipinternen Cache-Struktur für Bildelemente und nicht für Bildelemente gerichtet.
  • Die Mikroprozessortechnologie schreitet weiter mit schnellem Schrittmaß fort, wobei alle Aspekte der Konstruktion betrachtet werden. Die Konstrukteure sind ständig bemüht, die Leistung zu erhöhen und gleichzeitig die Effizienz zu maximieren. In Bezug auf die Leistung wird eine höhere Gesamtgeschwindigkeit des Mikroprozessors dadurch erzielt, daß die Geschwindigkeit der verschiedenen zusammenhängenden und nicht zusammenhängenden Mikroprozessorschaltungen und -operationen verbessert wird. Ein Gebiet, in dem die Betriebseffizienz verbessert wird, besteht beispielsweise darin, eine parallele und außerordentliche Befehlsausführung bereitzustellen. Als ein weiteres Beispiel wird die Betriebseffizienz außerdem dadurch verbessert, daß ein schnellerer und größerer Zugriff auf Informationen bereitgestellt wird, die Befehle und/oder Daten umfassen. Die vorliegenden Ausführungsformen sind hauptsächlich auf diese Zugriffsfähigkeit und insbesondere auf die Verbesserung und Angleichung des Zugriffs des gleichen Mikroprozessors auf verschiedene Informationstypen einschließlich Befehlen, nicht auf Bildelemente bezogenen Daten und Bildelementdaten gerichtet.
  • Ein üblicher Zugang im Gebiet der modernen Hochleistungs-Datenverarbeitungssysteme besteht darin, das System unter Verwendung eines Einchip-Mikroprozessors als die Zentraleinheit (CPU) und unter Verwendung eines externen Halbleiter-Schreib-Lese-Speichers (Halbleiter-RAMs) als Hauptsystemspeicher zu realisieren. Der Hauptsystemspeicher wird allgemein in Form von Schreib-Lese-Speichervorrichtungen (RAM-Vorrichtungen) wie etwa dynamischem RAM (DRAM) realisiert, die eine hohe Dichte und niedrige Kosten pro Bit besitzen; allerdings sind die Latenzzeit und die Bandbreite des herkömmlichen DRAM-Speichers gelegentlich niedriger, als es wünschenswert oder annehmbar ist, wobei er häufig nicht mit den Taktraten moderner Mikroprozessoren mithalten kann. Wie unten besser klar wird, sind bei der Entwicklung zusätzlicher Aspekte der Systemkonstruktion somit nun weitere Speicherbetrachtungen betroffen.
  • Ein weiterer sehr üblicher Zugang in modernen Computersystemen, der auf die Verbesserung der Zugriffszeit auf Informationen gerichtet ist, besteht darin, eine oder mehrere Ebenen eines Cache-Speichers in das System aufzunehmen, wobei dieser Zugang wesentlich schneller im Vergleich zum Zugriff auf Daten im Hauptspeicher ist. Cache-Speicher sind typischerweise verhältnismäßig kleine Blöcke aus statischem Hochgeschwindigkeits-RAM (Hochgeschwindigkeits-SRAM), die entweder intern bei dem Mikroprozessor oder extern (oder beides) sind und die Inhalte derjenigen Speicherplätze speichern, auf die in naher Zukunft wahrscheinlich zugegriffen wird. Typischerweise speichert der Cache-Speicher auch die Inhalte von Speicherplätzen, die nahe Nachbarn zu einem Speicherplatz sind, auf den kürzlich zugegriffen worden ist; da Mikroprozessoren häufig auf sequentielle Weise auf den Speicher zugreifen, ist es wahrscheinlich, daß aufeinanderfolgende Speicherzugriffe in aufeinanderfolgenden Zyklen auf Speicheradressen zugreifen, die im Speicherraum sehr nahe beieinander sind. Dementsprechend kann ein guter Teil der Speicherzugriffe dadurch, daß der Inhalt des Nachbarspeicherplatzes in einem Cache gespeichert wird, durch den Mikroprozessor auf den Cache anstatt auf den Hauptspeicher erfolgen. Somit wird durch die Realisierung eines oder mehrerer Cache-Speicher die Gesamtleistung des Systems verbessert. Um die Leistung zu optimieren, enthalten die meisten modernen Mikroprozessorsysteme mehrere Ebenen (entweder internen oder externen) Cache-Speicher, wobei die Kapazität des Caches mit jeder aufeinanderfolgenden Ebene steigt (und seine Geschwindigkeit fällt). Typischerweise ist der Cache der untersten Ebene (d. h. derjenige, auf den zuerst zugegriffen wird) kleiner und schneller als der Cache oder die Caches über ihm in der Hierarchie, wobei die Anzahl der Caches in einer gegebenen Speicherhierarchie variieren kann. Auf jeden Fall wird, wenn unter Verwendung der Cache-Hierarchie eine Informationsadresse heraus gegeben wird, die Adresse typischerweise an den Cache der untersten Ebene gerichtet, um zu sehen, ob dieser Cache Informationen speichert, die dieser Adresse entsprechen, d. h., ob es in diesem Cache einen "Treffer" gibt. Falls ein Treffer auftritt, werden die adressierten Informationen aus dem Cache ausgelesen, ohne daß auf einen Speicher zugegriffen werden muß, der in der Speicherhierarchie über ihm ist, wobei dieser Speicher höherer Ordnung in Bezug auf den Zugriff wahrscheinlich langsamer als der Cache-Speicher mit dem Treffer ist. Falls andererseits kein Treffer auftritt, wird gesagt, daß ein Cache-"Fehltreffer" auftritt. Als Reaktion wird die anstehende Adresse an die nächste darüberliegende Speicherstruktur übergeben. Diese Aktion kann nach oder gleichzeitig mit dem Adressieren des Caches einer darunterliegenden Ebene oder gleichzeitig damit stattfinden. Falls diese Speicherstruktur der nächsten darüberliegenden Ordnung ein weiterer Cache ist, kann erneut ein Treffer oder ein Fehltreffer stattfinden. Falls in jedem Cache Fehltreffer auftreten, erreicht der Prozeß schließlich die Speicherstruktur höchster Ordnung in dem System, wobei die adressierten Informationen an diesem Punkt aus diesem Speicher ausgelesen werden können.
  • Als weiterer Hintergrund gibt es eine weitere Art und Weise der Verbesserung der Wirksamkeiten in Bezug auf moderne Computer durch die Verwendung einer sogenannten vereinheitlichten Speicherarchitektur ("UMA"). Insbesondere umfaßt ein Faktor in den Gesamtsystemkosten die verschiedenen Typen und die Anzahl der Speicherstrukturen einschließlich der obenerwähnten Cache-Systeme. Eine weitere Betrachtung ist aber die Implementierung von etwas, das gelegentlich als Videospeicher oder als Bildelementspeicher bezeichnet wird, d. h. desjenigen Speicherbetriebsmitteltyps, der zum Speichern von Bildelementdaten (d. h. Daten zum Ansteuern eines Typs einer Bildanzeige wie etwa eines Katodenstrahlröhrenmonitors oder eines anderen Anzeigetyps) verwendet wird. Gemäß einem UMA-System werden die Bildelementdaten direkt auf den Systemhauptspeicher abgebildet und in ihm gespeichert. Diese Wahl ist eine Alternative zur Bereitstellung eines getrennten Bildelementspeichers, der typischerweise extern von dem Mikroprozessor ist und lediglich für das Ein- und Ausgeben von Bildelementdaten vorgesehen ist. Somit beseitigt das UMA-System die Notwendigkeit oder die Exi stenz dieser zusätzlichen Speicherstruktur in dem System, wobei diese Struktur lediglich für Bildelementdaten vorgesehen ist. Dieser Zugang wird typischerweise als vorteilhaft erkannt, da trotz des potentiell langsameren Zugriffs auf den Hauptspeicher die Kosten des größeren Hauptspeichers typischerweise beträchtlich niedriger sind, als einen getrennten Bildelementspeicher zu fordern. Allerdings wird angemerkt, daß das UMA-System in besonderen Kontexten als mit bestimmten Nachteilen behaftet betrachtet werden kann. Beispielsweise ist ein fester Betrag des Adressenraums des Systemhauptspeichers wegen seiner Direktabbildung der Bildelementdaten für andere Datentypen nicht verfügbar, da dieser Adressenraum notwendig für Bildelementdaten vorgesehen ist. Als ein weiteres Beispiel kann auf den Systemhauptspeicher typischerweise lediglich über einen einzigen Bus zugegriffen werden, so daß ein einzelner Zugriff gleichzeitig lediglich entweder auf die Bildelementdaten oder auf die nicht auf Bildelemente bezogenen Daten, die in der Speicherstruktur gespeichert sind, erfolgen kann.
  • In US-A-5581725 ist ein Cache-Speichersystem beschrieben, das einen ersten und einen zweiten direktabgebildeten Cache-Speicher besitzt, die in einer hierarchischen Struktur organisiert sind. EP-A-0466265 beschreibt eine Steuervorrichtung für einen Datenpuffer mit rekonfigurierbaren Unterteilungsmitteln, die zwischen Daten- und Befehlsinformationen unterscheiden, bezieht sich aber nicht auf die Abbildung des Bildelementspeichers.
  • Angesichts des Obenstehenden haben die Erfinder verschiedene Beschränkungen der obigen Faktoren hinsichtlich Speichersystemen erkannt. Somit werden unten verschiedene erfindungsgemäße Ausführungsformen dargestellt, die gemessen an diesen Nachteilen des Standes der Technik sowie anderen, die für den Fachmann auf dem Gebiet offensichtlich sind, in verschiedenen Kontexten eine verbesserte Effizienz ermöglichen.
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Gemäß einem Aspekt der Erfindung wird ein Computersystem geschaffen, das umfaßt: eine Zentraleinheit, die so konfiguriert ist, daß sie eine Angabe bezüglich einer momentan gewählten Videobetriebsart unter mehreren Videobetriebsarten von einer externen Quelle empfängt;
    eine Speicherhierarchie mit:
    einem ersten Cache-Speicher, der so betreibbar ist, daß er nicht auf Bildelemente bezogene Informationen speichert und Bildelementdaten nicht speichert, wobei die Zentraleinheit auf die nicht auf Bildelemente bezogenen Informationen für eine Verarbeitung zugreifen kann; und
    einem zweiten Cache-Speicher, der sich in der Speicherhierarchie über dem ersten Cache-Speicher befindet, eine Anzahl Speicherplätze besitzt und so betreibbar ist, daß er sowohl nicht auf Bildelemente bezogene Informationen als auch Bildelementdaten speichert; und
    eine Cache-Steuerschaltungsanordnung, die in Reaktion auf die Angabe der Videobetriebsart der Zentraleinheit die Anzahl der Speicherplätze des zweiten Cache-Speichers dynamisch zuteilt, derart, daß eine erste Gruppe der Speicherplätze der Speicherung von nicht auf Bildelemente bezogenen Informationen vorbehalten ist, und derart, daß eine zweite Gruppe der Speicherplätze der Speicherung lediglich von Bildelementdaten vorbehalten ist, und einen Übersetzungs-Lookaside-Puffer enthält, der mehrere Einträge besitzt, wobei jeder der mehreren Einträge einem der Anzahl von Speicherplätzen des zweiten Cache-Speichers entspricht, wobei jeder Eintrag des Übersetzungs-Lookaside-Puffers eine Angabe darüber enthält, ob die an dem entsprechenden Speicherplatz gespeicherten Daten Bildelementdaten oder nicht auf Bildelemente bezogene Informationen sind. Weitere Schaltungen, Systeme und Verfahren werden ebenfalls offenbart und beansprucht.
  • KURZBESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNG
  • 1 zeigt einen elektrischen Blockschaltplan eines Systems, das einen Mikroprozessor auf einem einzigen integrierten Schaltungschip gemäß den vorliegenden Ausführungsformen enthält, wobei der Mikroprozessor drei Ebenen Cache-Speicher enthält und wobei die höchste Ebene des Cache-Speichers zum Speichern sowohl von Bildelementdaten als auch von nicht auf Bildelemente bezogenen Daten betreibbar ist;
  • 2 zeigt eine graphische Darstellung verschiedener Identifizierungsbits, die in einem Übersetzungs-Lookaside-Puffer gespeichert sind und jeder Datenzeile entsprechen, die in der dritten Ebene des Cache-Speichers in dem Mikroprozessor aus 1 gespeichert sind, wobei diese Identifizierungsbits vorzugsweise in einem Übersetzungs-Lookaside-Puffer gespeichert sind, der eine Abbildung auf den Cache der dritten Ebene erzeugt;
  • 3 zeigt einen Ablaufplan eines Verfahrens zum dynamischen Ändern der Zuteilung des Speichers für den L3-Cache in dem Mikroprozessor aus 1; und
  • 4 zeigt einen Ablaufplan eines Verfahrens zum Adressieren der verschiedenen Ebenen des Speichers in dem Mikroprozessor aus 1.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt einen Blockschaltplan eines Computersystems 8 gemäß den vorliegenden Ausführungsformen, das einen allgemein bei 10 gezeigten Mikroprozessor in einer einzigen integrierten Schaltung enthält. Einführend wird angemerkt, daß die Funktionalität des Mikroprozessors 10 in verschiedenen Typen von Mikroprozessorstrukturen enthalten sein kann, die durch den Fachmann auf dem Gebiet feststellbar sind. Um die vorliegende Diskussion zu vereinfachen, werden dementsprechend verschiedene Einzelheiten in Bezug auf einen solchen Mikroprozessor außer in Verbindung mit dem Speicher und weiteren verwandten Komponenten aus 1 weder gezeigt, noch erläutert. Schließlich wird angemerkt, daß, obgleich verschiedene Aspekte des Mikroprozessors 10 als in seiner einzigen integrierten Schaltungskonfiguration enthalten gezeigt sind, verschiedene alternative Ausführungsformen abgeleitet werden können, bei denen einige dieser Merkmale in Schaltungen ausgebildet sind, die extern von dem Mikroprozessor sind.
  • Übergehend zu den in 1 gezeigten Blöcken enthält der Mikroprozessor 10 eine Zentraleinheit ("CPU") 12. Die CPU 12 kann verschiedene Pipeline-Stufen (z. B. Befehlsholen, -decodierung, -planung und -ausführung) enthalten, wobei die Einzelheiten dieser Stufen für die Zwecke der vorliegenden Ausführungsformen aber nicht untersucht zu werden brauchen, während statt dessen bei ihnen lediglich angemerkt wird, daß eine oder mehrere dieser Stufen, wie unten klar wird, allgemein einen Zugriff auf verschiedene Ebenen des Cache-Speichers sowie von verschiedenen Ebenen des Cache-Speichers bereitstellen. Im allgemeinen definieren diese verschiedenen Ebenen des Cache-Speichers plus dem (nicht gezeigten) Hauptspeicher eine Speicherhierarchie, wobei die allgemeinen Konzepte hierarchischer Cache-Speichersysteme im Gebiet bekannt sind. In einer solchen Hierarchie werden Lesevorgänge von Daten aus dem Speicher oder Schreibvorgänge von Daten in den Speicher zunächst von einem Speichersystem unterster Ordnung und fortschreibend nach oben zu Speichersystemen darüberliegender Ordnung versucht, wobei fortgesetzt wird, bis die Daten (oder der Platz, an dem sie gespeichert werden sollen) erfolgreich aufgefunden sind. Wie unten klar wird, unterscheiden sich aber verschiedene Aspekte der Cache-Hierarchie der vorliegenden Ausführungsformen vom Stand der Technik, wobei sie, wie später diskutiert wird, tatsächlich verschiedene Vorteile schaffen.
  • Auf der untersten Ebene der Speicherhierarchie befindet sich ein allgemein mit 16 bezeichneter L1-Cache. Wie im Gebiet bekannt ist, zeigt die Angabe "L1" die Art und Weise der Speicherhierarchie. Genauer liegen Cache-Schaltungen mit einer niedrigeren Zahlenangabe üblicherweise im Vergleich zu Cache-Schaltungen mit einer höheren Zahlenangabe wie etwa den später diskutierten Cache-Schaltungen L2 und L3 näher an der Ausführungseinheit der (nicht gezeigten) Mikroprozessor-Pipeline. Außerdem liefert die Zahlenangabe des Caches eine aufsteigende Angabe der Reihenfolge, in der die Stufen der CPU-Befehlspipeline auf die Caches zugreifen, wenn sie entweder Daten aus den Caches lesen oder Daten in sie schreiben. Somit findet ein solcher Zugriff zunächst auf einen L1-Cache statt, worauf, falls in diesem Cache ein Cache-Fehltreffer auftritt, ein Zugriff auf einen L2-Cache folgt usf. durch die Speicherhierarchie, bis entweder in einem Cache oder in einer anderen Speicherstruktur ein Treffer gefunden wird. In der bevorzugten Ausführungsform ist der L1-Cache 16 in zwei getrennte Speicherstrukturen getrennt, wobei eine erste Struktur einen L1-Datencache 16a bildet, während eine zweite Struktur einen L1-Befehlscache 16b bildet. In einer alternativen Ausführungsform könnten diese zwei Strukturen aber kombiniert sein, so daß sie einen vereinheitlichten Cache bilden. Rückkehrend zum L1-Datencache 16a und zum L1-Befehlscache 16b ist jeder über einen jeweiligen Bus 18a und 18b mit der CPU 12 verbunden. In der bevorzugten Ausführungsform ist sowohl der L1-Datencache 16a als auch der L1-Befehlscache 16b vorzugsweise ein 2-Wege-Mengenassoziativ-Cache, der zum Speichern von insgesamt 8 kBytes Daten in 32-Byte-Blöcken betreibbar ist, wobei jeder Weg zur Ausgabe von 128 Bits (d. h. 16 Bytes) gleichzeitig betreibbar ist. Außerdem wird in Bezug auf die Caches 16a und 16b angemerkt, daß ihr Name jeweils den Typ der durch den entsprechenden Cache gespeicherten Informationen bezeichnet. Insbesondere ist der Datencache 16a darauf beschränkt, vorzugsweise cache-fähige Daten in dem Sinn, wie er in momentanen Mikroprozessoren verwendet wird, zu speichern, aber keine Befehle zu enthalten. Demgegenüber ist der Befehlscache 16b darauf beschränkt, vorzugsweise Befehle zu speichern, die in die CPU 12 zu holen und von ihr auszuführen sind.
  • Ferner enthält ein Mikroprozessor 10 einen vereinheitlichten L2-Cache 20, der über einen Bus 22a mit dem L1-Datencache 16a und über einen Bus 22b mit dem L1-Befehlscache 16b verbunden ist. Es wird angemerkt, daß der L2-Cache als "vereinheitlichter" Cache bezeichnet wird, da er außer Daten (was Adressenübersetzungsinformationen einschließt) Befehle speichert. In der bevorzugten Ausführungsform ist der vereinheitlichte L2-Cache 20 vorzugsweise ein 4-Wege-Men genassoziativ-Cache, der so betreibbar ist, daß er in 64-Byte-Blöcken und 32-Byte-Unterblöcken insgesamt 64 kBytes Informationen speichert, wobei jeder Weg zur Ausgabe von 256 Bits (d. h. 32 Bytes) gleichzeitig betreibbar ist.
  • Nachdem auf die ersten zwei verschiedenen Ebenen der Caches in 1 hingewiesen worden ist, wird ferner darauf hingewiesen, daß jeder solche Cache 16 und 20 außerdem mit einer Adressierungs- und Entscheidungsschaltung 24 verbunden ist. Die Entscheidungsschaltung 24 ist im allgemeinen enthalten, um die Funktionalität einer oder mehrerer Cache-Steuerschaltungen darzustellen, die ermöglichen, durch die CPU 12 auf bekannte Weise die verschiedenen Caches zu adressieren, so daß die Hierarchie richtig aufrechterhalten wird, indem zunächst niedriger priorisierte Caches adressiert werden, während im Fall eines Fehltreffers eines darunterliegenden Caches außerdem Caches darüberliegender Ordnung adressiert werden. Somit können ausgehend von den Darlegungen der Entscheidungs- und/oder Priorisierungsverfahren in diesem Dokument verschiedene Schaltungsrealisierungen verwendet werden, um die Entscheidungsschaltung 24 unter Verwendung von Wissen im Gebiet zu konstruieren. Außerdem wird angemerkt, daß die Entscheidungsschaltung 24 einen Übersetzungs-Lookaside-Puffer ("TLB") 24a enthält. Der TLB 24a arbeitet allgemein wie im Gebiet bekannt, d. h., er speichert zuvor bestimmte Adressenübersetzungen (zusammen mit den entsprechenden Identifizierungskennzeichen), d. h. Übersetzungen logischer Adressen in entsprechende physikalische Adressen. Diese Übersetzungen können darauf gerichtet sein, den L1-Cache 16 und den L2-Cache 20 auf eine im Gebiet bekannte Weise zu adressieren. Außerdem erzeugt der TLB 24a Adressenübersetzungen, wie sie ebenfalls im Gebiet bekannt sind, wobei diese Übersetzungen aber zum Adressieren einer zusätzlichen Cache-Schaltung verwendet werden, die später beschrieben wird und mit der vorliegenden erfindungsgemäßen Ausführungsform konsistent ist. Wie später ausführlich beschrieben wird, werden nochmals weiter die Einträge des TLB 24a, wie sie auf diesen zusätzlichen Cache gerichtet sind, vorzugsweise weiter abgeändert, so daß sie zusätzliche Identifizierungsinformationen enthalten, die verschiedene zusätzliche Funktionalität unterstützen. Letztlich wird angemerkt, daß die Adressierungs- und Entscheidungs schaltung 24 eine zusätzliche Schaltungsanordnung in dem Umfang enthalten kann, der erforderlich ist, um die untenbeschriebene Speicherzugriffsfunktionalität auszuführen, wobei diese zusätzliche Schaltungsanordnung durch einen Fachmann auf dem Gebiet ausgehend von momentanen Cache-Controllern sowie von den in diesem Dokument dargestellten zusätzlichen Funktionsbeschreibungen festgestellt werden kann.
  • Ausgehend von dem Obenstehenden ist für einen Fachmann auf dem Gebiet an diesem Punkt klar, daß die CPU 12 auf hierarchische Weise zwei Ebenen des Cache-Speichers zum Lesen und Schreiben von Informationen (z. B. Daten, Befehlen, Adressenübersetzungsinformationen) adressieren kann. Diesbezüglich kann der Zugriff auf diese Caches auf verschiedene bekannte Weise oder auf andere Weise, die durch Patente gelehrt wird, die ebenfalls auf den Anmelder des aktuellen Patents übertragen worden sind, erfolgen. Wegen eines solchen Beispiels wird der Leser auf EP-A-0840231 verwiesen.
  • Es wird nun angemerkt, daß die vorliegende Ausführungsform außer den zwei bisher eingeführten Ebenen des Cache-Speichers ferner eine dritte Ebene des Cache-Speichers enthält, die allgemein als der L3-Cache 26 bezeichnet ist. In der bevorzugten Ausführungsform ist der L3-Cache 26 ein direktabgebildeter Speicher, um ausgehend von seiner Größe die Struktur zu vereinfachen (d. h. im Gegensatz zu einer Mengenassoziativ-Struktur wie es die oben eingeführten Cache-Strukturen sind), wobei er zum Speichern von insgesamt 5 MBytes Informationen betreibbar ist. Außerdem ist der L3-Cache 26 in der bevorzugten Ausführungsform seitenorientiert, so daß jeder seiner Blöcke 4 kBytes Informationen speichert. Außerdem wird angemerkt, daß einige Autoren solche Blöcke in einem nicht in Unterblöcke unterteilten Cache als Cache-Zeile bezeichnen. Auf jeden Fall ist jeder der 4 kBytes-Blöcke vorzugsweise in Unterblöcke unterteilt, so daß seine Unterblöcke an die Blockgröße des L2-Caches 20 angepaßt sind; somit enthält jeder Block im L3-Cache 26 24-Bytes-Unterblöcke, was insgesamt 64 Unterblöcke pro Block (d. h. 64-Bytes-Unterblock·64 Unterblöcke = 4 kBytes) ergibt. Somit ist der L3-Cache 26 in der bevorzugten Ausführungsform zur Ausgabe von einem von 64 dieser 64-Bytes-Unterblöcke in einem einzigen Zugriff betreibbar, wobei angemerkt wird, daß ein einziger Zugriff mehr als einen Zyklus erfordern kann. In Bezug auf das Ausgeben von Informationen aus dem L3-Cache 26 wird angemerkt, daß er seine Ausgabe an eines von drei verschiedenen Zielen liefern kann. Zunächst kann der L3-Cache 26 bis zu 64 Unterblöcke, einen pro Zyklus, über einen Bus 28 an den L2-Cache 20 ausgeben. Zweitens kann der L3-Cache 26 bis zu 64 Unterblöcke mit mehreren Unterblöcken pro Zyklus über einen Bus 30 an einen Bildelement-Ausgabe-FIFO 32 ausgeben. Der Bildelement-Ausgabe-FIFO 32 ist eine Speichervorrichtung, die so betreibbar ist, daß sie auf parallele Weise mehrere Blöcke Informationen eingibt, während sie ferner so betreibbar ist, daß sie diese Informationen aus später offensichtlichen Gründen in serieller Weise ausgibt. Drittens kann der L3-Cache 26 über einen Bus 34 bis zu 64 Unterblöcke, einen pro Zyklus, an ein Umgehungsregister 36 ausgeben. Das Umgehungsregister 36 ist ein Standard-Speicherregister, das so betreibbar ist, daß es entweder einen Teil einer Gruppe von Informationen oder die gesamte Gruppe von Informationen auf parallele Weise ein- und ausgibt. Schließlich wird angemerkt, daß der Bus 34 bidirektional ist und somit Informationen vom Umgehungsregister 36 in den L3-Cache 26 geschrieben werden können.
  • Zur Vervollständigung der Erläuterung von 1 ist der L3-Cache 26 allgemein ferner über einen Bus 44 mit einer Busschnittstelleneinheit ("BIU") 46 verbunden, die mit einem Bus B verbunden ist. Der Bus B verläuft extern von dem Mikroprozessor 10 und kann somit die Kommunikation zwischen dem Mikroprozessor 10 und weiteren von dem Mikroprozessor externen Elementen einschließlich einem externen Speicher, der in der Speicherhierarchie über dem L3-Cache 26 (und natürlich ebenfalls über den Caches unterer Ebenen) liegt, steuern und ausführen. An diesem Punkt sind irgendwelche zusätzlichen Elemente, die extern von dem Mikroprozessor sind, der Einfachheit halber nicht ausführlich dargestellt, wobei Beispiele solcher Elemente durch den Fachmann auf dem Gebiet leicht feststellbar sind.
  • Nachdem die physikalische Größe und die Verbindungen des L3-Caches 26 eingeführt worden sind, ist in Verbindung mit den vorliegenden Ausführungsformen entdeckt worden, daß es vorteilhaft ist, den L3-Cache 26 in der Weise auszubilden, daß er zwei verschiedene Speicherbereiche 26a und 26b enthält. Obgleich die Gesamtgröße des L3-Caches 26 (z. B. mit 5 MBytes) festgesetzt ist, ist diese feste Größe in der bevorzugten Ausführungsform genauer zwischen zwei verschiedenen Speicherbereichen 26a und 26b zugeteilt. Was zwischen diesen zwei Speicherbereichen 26a und 26b unterscheidet, ist der Typ der Informationen, die in jedem solchen Bereich geschrieben werden dürfen. Insbesondere ist der Speicher 26a in der bevorzugten Ausführungsform so betreibbar, daß er lediglich einen Typ von Informationen speichert, die im vorliegenden Gebiet als Videodaten oder genauer als Bildelementdaten bezeichnet werden. Wie im Gebiet bekannt ist, ist Bildelement eine Abkürzung für einen Bildpunkt, der einen einzelnen Punkt für die Anzeige wie etwa auf einem Computermonitor oder auf einer anderen Anzeigevorrichtung darstellt. In Systemen des momentanen Standes der Technik werden diese Bildelementdaten extern von einem Mikroprozessor wie etwa in einem UMA-System oder in einer anderen von dem Mikroprozessor externen Speicherstruktur wie etwa einem Speicher auf einer Videographikkarte gespeichert. Demgegenüber kann dieser Typ von Bildelementdaten in der vorliegenden Ausführungsform in der mit 26a bezeichneten Struktur gespeichert werden, so daß diese im folgenden als ein Bildelementdaten-Speicherbereich 26a bezeichnet wird. Im Gegensatz dazu ist der Speicherbereich 26b aber zum Speichern von Informationen, die von Bildelementdaten verschiedenen sind, betreibbar, wobei dies der Typ von Informationen ist, die gemäß der heutigen Technologie typischerweise in Cache-Strukturen gespeichert werden (z. B. Befehle, Adressenübersetzungen, nicht auf Bildelemente bezogene Operanden usw.). Somit wird die Struktur 26b im folgenden als ein Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen bezeichnet. Nachdem das getrennte Wesen der Bereiche 26a und 26b eingeführt worden ist, wird schließlich weiter angemerkt, daß die Darstellung dieser Bereiche als voneinander getrennt vorzugsweise auf logische anstatt auf physikalische Weise realisiert wird. Mit anderen Worten, der Speicherbereich 26 ist in seiner Gesamtheit ein einziger Speicherbereich, wobei aber entweder zu sammenhängende oder nicht zusammenhängende Plätze dieses Bereichs entweder dem Bildelementdaten-Speicherbereich 26a oder dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen zugewiesen werden können. Dieses Zuweisen des Adressenraums sowie der Menge des für jeden der Speicherbereiche 26a und 26b verfügbaren Speichers wird unten diskutiert.
  • Als ein zusätzlicher Aspekt des L3-Caches 26 wird angemerkt, daß die Zuteilung des Speicherraums zwischen den Speicherbereichen 26a und 26b gemäß den vorliegenden Ausführungsformen vorzugsweise dynamisch konfigurierbar ist. In der bevorzugten Ausführungsform beruht die dynamische Konfiguration auf der Videoeinstellung der Computerumgebung, in der der Mikroprozessor 10 implementiert ist. Genauer wird jetzt angemerkt, daß der Mikroprozessor 10 ferner in der Weise verbunden ist, daß er mit einer Videosteuerschaltung 38 kommuniziert, und daß insbesondere die CPU 12 des Mikroprozessors 10 auf diese Weise verbunden ist. In der bevorzugten Ausführungsform repräsentiert die Videosteuerschaltung 38 eine oder mehrere Schaltungen, die typischerweise durch einen Videomikrocontroller implementiert sind (der gelegentlich als ein Graphik-Control-1er bezeichnet wird), wobei sie somit in der Weise betreibbar ist, daß sie verschiedene Funktionen im Zusammenhang mit der Verwendung von Bildelementdaten wie etwa die Adressen- und Videozeitgebungssignalerzeugung ausführt. Vorzugsweise ist die Videosteuerschaltung 38 programmierbar, womit sie, obgleich dies nicht gezeigt ist, Register zum Speichern von Parametern zum Programmieren ihrer Funktionalität enthält, wobei diese Register diese Informationen von Leiterbahnen oder von einem Bus wie etwa vom Bus B empfangen (obgleich die Verbindung ebenfalls nicht gezeigt ist). Obgleich die Videosteuerschaltung 38 extern von dem Mikroprozessor 10 gezeigt ist, wird außerdem angemerkt, daß entweder ein Teil ihrer Funktionalität oder ihre gesamte Funktionalität in der einzigen integrierten Schaltung, die den Mikroprozessor 10 bildet, enthalten sein könnte. Außerdem wird in diesem Kontext und aus Gründen, die später offensichtlich werden, weiter angemerkt, daß der Bildelement-Ausgabe-FIFO 32 mit einer extern gelegenen herkömmlichen Digital/Analog-Umsetzerschaltung ("DAC"-Schaltung) 40 verbunden ist. Der DAC 40 arbeitet auf die im Videoge biet bekannte Weise als Vorrichtung, die häufig als Video-RAM-DAC bezeichnet wird, d. h. als eine Vorrichtung, die digitale Bildelementdaten auf serielle Weise von einem RAM empfängt und diese Daten umsetzt, um entsprechende analoge Signale an eine Anzeigevorrichtung zu liefern. In dieser letzten Beziehung wird in der bevorzugten Ausführungsform angemerkt, daß der DAC 40 in der Weise verbunden ist, daß er sein Ausgangssignal an eine Anzeigevorrichtung 42 liefert, die, wie durch einen Fachmann auf dem Gebiet festgestellt werden kann, aus verschiedenen Typen von Anzeigevorrichtungen gewählt werden kann. Tatsächlich wird weiter angemerkt, daß, obgleich 1 dieses Digital/Analog-Umsetzungsattribut zeigt, innerhalb der vorliegenden Lehren eine alternative Ausführungsform konstruiert werden kann, bei der die Anzeige digitale anstelle analoger Signale annimmt, wobei die durch den DAC 40 ausgeführte Umsetzung in diesem Fall nicht erforderlich wäre. Auf jeden Fall und zurückkehrend zu der Verbindung zwischen der CPU 12 und der Videosteuerschaltung 38 erwartet die vorliegende Ausführungsform, daß die CPU 12 Zugriff auf Einstellungen hat, die in Verbindung mit der Videosteuerschaltung 38 vorgenommen werden und die den Typ der Videobetriebsart angeben, der zu irgendeinem gegebenen Zeitpunkt vom Mikroprozessor 10 verwendet werden. Aus diesem Grund werden die Videobetriebsarten unmittelbar nachfolgend mit einer nachfolgenden Diskussion der dynamischen Konfiguration des L3-Caches 26 gemäß der bevorzugten Ausführungsform in Reaktion auf diese Betriebsart eingeführt.
  • In der Videotechnik ist bekannt, daß eine Videobetriebsart eine Menge des notwendigen Bildelementspeichers bei gegebener Anzahl von Bits pro Bildelement definiert. Diesbezüglich wird angemerkt, daß die Bildelementdaten üblicherweise in der Weise gruppiert sind, daß ein einzelnes Bildelement durch 8, 16, 24 oder 32 Bits repräsentiert wird. Gemäß dem Stand der Technik für ein Nicht-UMA-System ist diese Betriebsart typischerweise einer Graphikcomputerkarte mit einer bestimmten Menge hierfür vorgesehenen Speichers zugeordnet. Beispielsweise definiert eine Graphikkarte mit 1 MByte Bildelementspeicher gemäß gegenwärtigen Standards für diesen 1 MByte-Speicher eine 1 MByte-Videobetriebsart. Mit anderen Worten, zum Speichern der Bildelementdaten sind 1 MByte Bildelementspeicher verfügbar, so daß verschiedene Systembedingungen aufrechterhalten werden müssen, um die durch das 1 MByte Speicher auferlegten Beschränkungen nicht zu überschreiten. Da der Speicher auf 1 MByte beschränkt ist, muß die System-Software (entweder automatisch oder über eine Anwenderangabe) als eine solche Beschränkung sicherstellen, daß die Auflösung der Bildelementanzeige ausgehend von der Anzahl der von dem System verwendeten Farben nicht zu hoch ist. Somit kann ein Anwender einer 1 MByte-Videobetriebsart (z. B. Graphikkarte), wenn er ein 8-Bit-Farbschema gewählt hat, daraufhin eine Bildschirmauflösung von 1024 mal 768 Bildelementen wählen, da dies lediglich größenordnungsmäßig 768 kBytes Bildelementspeicher erfordert. Andererseits könnte dieser gleiche Anwender diese gleiche Bildschirmauflösung nicht wählen, wenn er 64 K Farben (d. h. 16 Bits pro Bildelement) gewünscht hätte, da der dadurch benötigte Gesamtspeicher (d. h. etwa 1,5 MBytes) den von der Videobetriebsart bereitgestellten (d. h. 1 MByte) übersteigen würde. Natürlich könnte dieser Anwender eine niedrigere Auflösung wie etwa 800 mal 600 Bildelemente wählen, wobei die 64 k Farben in diesem Fall untergebracht werden könnten.
  • Nachdem die Videobetriebsarten eingeführt worden sind, wird nun auf die Zuteilung des Speicherraums des L3-Caches 26 wie zwischen dem Bildelementdaten-Speicherbereich 26a und dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen Bezug genommen. Zunächst wird daran erinnert, daß die CPU 12 in der Weise geschaltet ist, daß sie beispielhaft von der Videosteuerschaltung 38 eine Angabe der momentanen Videobetriebsart, d. h. derjenigen Videobetriebsart, gemäß der die Videosteuerschaltung 38 dann arbeiten wird, empfangen kann. Zweitens wird außerdem daran erinnert, daß der TLB 24a, wie unten weiter ausführlich geschildert wird, Informationen enthält, die auf die Adressierung des L3-Caches 26 gerichtet sind. Ausgehend von diesen Merkmalen stellt die CPU 12 gemäß der bevorzugten Ausführungsform und in Reaktion auf die erfaßte Videobetriebsart eine Angabe für den TLB 24a bereit, so daß der letztere einen ersten Betrag des Speicherraums für den Bildelementdaten-Speicherbereich 26a zuteilt, während er den verbleibenden Raum des L3-Caches 26 für den Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen zuteilt.
  • Falls der L3-Cache 26 beispielsweise wie oben 5 MBytes beträgt, zeigt die untenstehende Tabelle 1 für eine 1024-mal-768-Anzeige die Zerlegung einer Betriebsart, wie sie durch die Anzahl der Bits pro Bildelement und durch die Zuteilung dieser 5 MBytes Speicher definiert ist.
  • Figure 00160001
    Tabelle 1
  • In Tabelle 1 werden die Buchstaben lediglich zur Bezugnahme auf eine gegebene Videobetriebsart verwendet, wobei die Videosteuerschaltung 38 diese Betriebsart auf verschiedene Weise für die CPU 12 widerspiegeln kann und wobei diese Betriebsart für das vorliegende Beispiel auf der Anzahl der Bits pro Bildelement beruht. Auf jeden Fall wird ausgehend von Tabelle 1 angenommen, daß die CPU 12 von der Videosteuerschaltung 38 erfaßt, daß sie in der Betriebsart A ist. Als Reaktion darauf gibt die CPU 12 ausreichende Informationen an den TLB 24a heraus, so daß die Adressenübersetzungen, die er wie an den L3-Cache 26 gerichtet liefert, die Menge des Speichers für den Bildelementdaten-Speicherbereich 26a auf 0,75 MBytes Bildelementdaten beschränken. Außerdem werden somit die verbleibenden 4,25 MBytes der gesamten 5 MByte-Struktur für nicht auf Bildelemente bezogene Daten zugeteilt, die in dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen zu speichern sind. Es wird angemerkt, daß die Schaltungsanordnung, die diese Änderung ausführt, sowie die durch die Änderung auferlegten Beschränkungen, wie durch den Fachmann auf dem Gebiet festgestellt werden kann, auf verschiedene Weise ausgeführt werden kann. Beispielsweise können in dem TLB 24a verschiedene Register oder Tabellen implementiert sein, die aufgebaut und daraufhin neu aufgebaut werden, um die physikalischen Adressen des L3-Caches 26 richtig zuzuteilen, so daß die gewünschte Aufteilung der Bereiche 26a und 26b aufrechterhalten wird. Auf jeden Fall sind somit die verbleibenden Betriebsarten von B bis D für den Fachmann auf dem Gebiet klar. Außerdem wird angemerkt, daß die Tabelle 1 lediglich beispielhaft ist und daß andere Betriebsarten enthalten sein könnten und daß die Größe des L3-Caches 26 in seiner Gesamtheit ebenfalls abgeändert werden könnte. Auf jeden Fall könnte die bevorzugte Ausführungsform in der Weise abgeändert werden, daß die Zuteilung des L3-Caches 26 in jedem dieser Szenarien in Reaktion auf die Videobetriebsart, gemäß der das System, das den Mikroprozessor 10 und die Videosteuerschaltung 38 enthält, arbeitet, dynamisch änderbar ist.
  • Nachdem der Aspekt der Zuteilung des Speicherraums zwischen den zwei Speicherbereichen des L3-Caches 26 erläutert worden ist, wird die Aufmerksamkeit nun auf den Zugriff auf die in diesen Bereichen gespeicherten Informationen und auf deren Ausgabe gelenkt. Wenn von der CPU 12 ein Informationstyp (d. h. entweder Bildelementinformationen oder nicht auf Bildelemente bezogene Informationen) gewünscht wird, gibt die CPU 12 eine logische Adresse an die Adressierungs- und Entscheidungsschaltung 24 heraus. Außerdem wird angemerkt, daß eine andere Adressierungsvorrichtung eine angeforderte Adresse auf dem Adressenbus anordnen kann und daß die CPU 12 somit lediglich beispielhaft verwendet wird. Wenn nun die Wirkung der logischen Adresse betrachtet wird, ist sie auf den TLB 24a der Adressierungs- und Entscheidungsschaltung 24 gerichtet. Unter der Annahme, daß der TLB 24a früher eine gültige Reaktion auf diese logische Adresse gespeichert hat, gibt er daraufhin als Reaktion eine physikalische Adresse zur Verwendung beim Zugreifen sowohl auf den L1-Cache 16 als auch auf den L2-Cache 20 und außerdem ein Identifizierungskennzeichen für den L3-Cache 26 aus. In einer Ausführungsform geschieht die Anwendung der physikalischen Adresse auf den L1-Cache 16 und auf den L2-Cache 20 in der im Gebiet bekann ten Weise, d. h., es gibt dadurch, daß die physikalische Adresse mit den in einem Identifizierungsspeicher, der dem L1-Cache 16 zugeordnet ist, gespeicherten Adressen verglichen wird, eine Bestimmung, ob es im L1-Cache 16 einen Treffer gibt, wobei die Informationen im Fall eines Treffers von diesem Cache ausgegeben werden; alternativ werden die Informationen, falls es einen Fehltreffer im L1-Cache 16 gibt, vom L2-Cache 20 ausgegeben, falls es in diesem Cache einen Treffer gibt. Während diese darunterliegenden Caches im Gebiet selbstverständlich sind, ist die bevorzugte Ausführungsform weiter auf die dynamisch änderbare Struktur des L3-Caches 26 gerichtet, so daß sich die folgende Diskussion auf die Adressierung und Ausgabe der Informationen von dieser Struktur konzentriert. Außerdem brauchen der L1-Cache 16 und der L2-Cache 20 in einer alternativen Ausführungsform nicht untersucht zu werden, um die adressierten Informationen im L1-Cache 16 und im L2-Cache 20 zu suchen, wenn (z. B. aus dem L3-Cache-Identifizierungskennzeichen) bestimmt wird, daß die adressierten Informationen Bildelementdaten sind, da diese Caches definitionsgemäß keine Bildelementdaten speichern. Somit kann das Verfahren, wie weiter unten weiter klar wird, statt dessen mit einem Zugriff auf den L3-Cache 26 fortgesetzt werden.
  • Unter der Annahme, daß es sowohl im L1-Cache 16 als auch im L2-Cache 20 einen Fehltreffer gibt (oder daß bekannt ist, daß die adressierten Informationen Bildelementdaten sind), identifizieren die Identifizierungsinformationen vom TLB 24a (unter der Annahme, daß diese Identifizierungsinformationen im TLB 24a verfügbar sind), die der anstehenden logischen Adresse entsprechen, diejenigen Informationen im L3-Cache 26, die in Reaktion auf die logische Adresse von der CPU 12 auszugeben sind. Bevor fortgefahren wird, wird angemerkt, daß die Identifizierungsinformationen, die einem Eintrag im L3-Cache 26 entsprechen, in der bevorzugten Ausführungsform vorzugsweise neben anderen später ausführlich in 2 geschilderten Dingen einen Informationstypindikator enthalten, der durch ein einzelnes Bit realisiert sein kann. Wenn der Informationstypindikator in einem ersten binären Zustand (z. B. 0) ist, gibt er an, daß die entsprechenden Informationen nicht auf Bildelemente bezogene Informationen sind, während er, wenn er in einem zweiten binären Zustand (z. B. 1) ist, angibt, daß die entsprechenden In formationen Bildelementdaten sind. Ausgehend von der Existenz des Typindikatorbits in dem Identifizierungskennzeichen des TLB 24a reagiert der Betrieb des L3-Caches 26 in einer ersten Weise für einen Indikator, der zeigt, daß die adressierten Informationen nicht auf Bildelemente bezogene Informationen sind, während er in einer zweiten Weise für einen Indikator reagiert, der zeigt, daß die adressierten Informationen Bildelementdaten sind. Jede dieser Alternativen wird unten diskutiert.
  • Wenn von der CPU 12 eine logische Adresse herausgegeben wird, im L1-Cache 16 und im L2-Cache 20 ein Fehltreffer aufgetreten ist und vom TLB 24a ein gültiges Identifizierungskennzeichen ausgegeben worden ist, das einen Informationstypindikator enthält, der angibt, daß die adressierten Informationen im L3-Cache 26 nicht auf Bildelemente bezogene Informationen sind, hängt der Pfad der adressierten Informationen weiter davon ab, ob die Operationsanforderung, die die Herausgabe der Adresse auf den Adressenbus begleitet, ein Lesen oder ein Schreiben ist. Wenn zunächst der Fall eines Lesens betrachtet wird, werden die adressierten Informationen im L3-Cache 26 durch den L3-Cache 26 vorzugsweise an eines von zwei verschiedenen Zielen übergeben, wobei jedes der Ziele zuvor eingeführt wurde. Bevor auf diese Ziele zurückgekommen wird, wird genauer angemerkt, daß auf die adressierten Informationen, da sie nicht auf Bildelemente bezogene Informationen sind, von dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen des L3-Caches 26, d. h. von demjenigen Abschnitt des L3-Caches 26, der früher zum Speichern lediglich von nicht auf Bildelemente bezogenen Informationen zugeteilt worden ist, zugegriffen wird. Wird nun das erste Ziel der adressierten Informationen im Fall eines Lesens aus dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen betrachtet, kann der L3-Cache 26 die adressierten Informationen über den Bus 28 an das Umgehungsregister 36 ausgeben. Wird nun im Fall eines Lesens das zweite Ziel der adressierten Informationen von dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen betrachtet, kann der L3-Cache 26 die adressierten Informationen über den Bus 28 an den L2-Cache 20 ausgeben. Ausgehend von dem Obenstehenden ist für den Fachmann auf dem Gebiet klar, daß die adres sierten Informationen über das Umgehungsregister 36 sofort für die CPU 12 verfügbar sind oder ausgehend von dem L2-Cache 20 an einen Cache darunterliegender Ebene übergeben werden können. Außerdem wird diesbezüglich angemerkt, daß, obgleich das Umgehungsregister 36 als getrennte Speichervorrichtung gezeigt ist, die diese Funktionalität bereitstellt, ein vergleichbares Ergebnis in einer alternativen Ausführungsform erzielt werden könnte, die eine Umgehungsschaltungsanordnung vom Bus 28 über den Pfad des L2-Caches 20 und des L1-Caches 16 enthält, wobei diese Cache-Strukturen zum sofortigen Zugriff auf die adressierten Informationen durch die CPU 12 umgangen werden könnten. Ausgehend von der obigen Diskussion des Informationspfads für ein Lesen ist für den Fachmann auf dem Gebiet ein Informationspfad für ein Schreiben in der Gegenrichtung klar. Mit anderen Worten, falls die CPU 12 eine Adresse liefert, die zu einem Treffer der nicht auf Bildelemente bezogenen Informationen im L3-Cache 26 führt, und falls der Operationsanforderungstyp ein Schreiben ist, können die nicht auf Bildelemente bezogenen Informationen von der CPU 12 an das Umgehungsregister 36 herausgegeben werden und von diesem Punkt an den Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen übertragen werden.
  • Wenn von der CPU 12 eine logische Adresse herausgegeben wird, im L1-Cache 16 und im L2-Cache 20 ein Fehltreffer aufgetreten ist und vom TLB 24a ein gültiges Identifizierungskennzeichen ausgegeben worden ist, das einen Informationstypindikator enthält, der angibt, daß die adressierten Informationen im L3-Cache 26 Bildelementinformationen sind, hängt der Pfad der adressierten Informationen wieder weiter von der Operationsanforderung ab, die die Herausgabe der Adresse an den adressierten Bus begleitet. Allerdings wird angemerkt, daß es, da Bildelementdaten betroffen sind, außer einer Lese- oder einer Schreiboperation eine dritte Operation geben kann, die hier als eine Anzeigeoperation bezeichnet wird. Außerdem sind die Pfade für die Beispiele des Lesens und des Schreibens die gleichen wie die, die oben für nicht auf Bildelemente bezogene Informationen diskutiert worden sind, wobei eine Ausnahme darin besteht, daß die betreffenden Daten entweder aus dem Bildelementdaten-Speicherbereich 26a anstatt aus dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen gelesen oder in ihn geschrieben werden, während eine weitere Ausnahme darin besteht, daß die Bildelementdaten, wenn sie aus dem Speicherbereich 26a gelesen werden, die CPU 12 vorzugsweise über das Umgehungsregister 36 erreichen und nicht über den L2-Cache 20 und über den L1-Cache 16 übergeben werden, da diese Caches in der bevorzugten Ausführungsform keine Bildelementdaten speichern. Auf jeden Fall wird der Leser wegen weiterer Einzelheiten hinsichtlich des Lesens und des Schreibens somit auf die vorstehende Diskussion verwiesen. Nunmehr übergehend zu dem Fall, in dem die Bildelementdaten für die Anzeigeoperation adressiert sind, werden die adressierten Daten vorzugsweise durch den L3-Cache 26 an den Bildelement-Ausgabe-FIFO 32 übergeben. Hier wird angemerkt, daß auf die adressierten Informationen, da sie Bildelementdaten sind, von dem Bildelementdaten-Speicherbereich 26a des L3-Cache 26 zugegriffen wird, d. h. auf sie von demjenigen Abschnitt des L3-Caches 26 zugegriffen wird, der früher zum Speichern lediglich von Bildelementdaten zugeteilt worden ist. Nunmehr zurückkehrend zu dem Ziel der adressierten Bildelementdaten zum Bildelement-Ausgabe-FIFO 32 ist die Ausgabefähigkeit dieses FIFO für den Fachmann auf dem Gebiet klar. Insbesondere wird angemerkt, daß der Bildelement-Ausgabe-FIFO 32 in der Weise verbunden ist, daß er eines oder mehrere Steuersignale von der Videosteuerschaltung 38 empfängt, während daran erinnert wird, daß die Schaltung 38 u. a. Zeitgebungssteuersignale liefern kann. Somit werden, wenn Bildelementdaten vom L3-Cache 26 an den Bildelement-Ausgabe-FIFO 32 ausgegeben werden, diese Steuersignale in der Weise ausgegeben, daß sie bewirken, daß der Bildelement-Ausgabe-FIFO 32 diese Bildelementdaten an die DAC-Schaltung 40 ausgibt. Wie früher beschrieben wurde, setzt die DAC-Schaltung 40 in Reaktion darauf die seriellen Daten in geeignete analoge Signale um, die die Anzeigevorrichtung 42 ansteuern, und übergibt damit die Bildelementdaten als eine Bildausgabe an einen Anwender. Schließlich wird angemerkt, daß der Bildelement-Ausgabe-FIFO 32 außerdem ein Voll/Leer-Steuersignal (in 1 abgekürzt F/E) an die Adressierungs- und Entscheidungsschaltung 24 liefert. Insbesondere kann der Bildelement-Ausgabe-FIFO 32, wenn er leer ist oder leer wird, diesen Status der Adressierungs- und Entscheidungsschaltung 24 angeben, so daß die nächsten Bildelementdatenadressen an den L3-Cache 26 herausgegeben werden, so daß zusätzliche Bildelementdaten an den Bildelement-Ausgabe-FIFO 32 ausgegeben werden, um sie auf die gleiche Weise wie unmittelbar zuvor beschrieben anzuzeigen.
  • Ausgehend von der obigen Funktionsbeschreibung sind nun für den Fachmann auf dem Gebiet zahlreiche Vorteile der bevorzugten Ausführungsform klar. Als ein erstes Beispiel eines Vorteils der bevorzugten Ausführungsform kann eine CPU (z. B. die CPU 12) im Vergleich zu Systemen des Standes der Technik, die erfordern, daß Bildelementdaten lediglich in Speicherschaltungen gespeichert werden, die extern von dem Mikroprozessor sind, leichter auf diese Daten zugreifen. Mit anderen Worten, in der bevorzugten Ausführungsform werden die Bildelementdaten zu cache-fähigen Daten, während diese Daten gemäß der momentanen Technologie üblicherweise als nicht cache-fähig betrachtet werden und somit nicht zugelassen wird, daß sie entweder in einer internen oder in einer externen Cache-Struktur gespeichert werden. In jenen Systemen, in denen die Bildelementdaten nicht cache-fähig sind, ist der Zugriff auf diese Daten durch Beschränkungen wie etwa durch die Busbeschränkungen und die Zugriffszeiten auf die Nicht-Cache-Strukturen, die die Bildelementdaten speichern, eingeschränkt. Demgegenüber ist leicht klar, daß auf die Bildelementdaten, die in dem Bildelementdaten-Speicherbereich 26a gespeichert sind, in der bevorzugten Ausführungsform so sicher und leicht zugegriffen werden kann wie auf nicht auf Bildelemente bezogene Informationen, die in dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen gespeichert sind. Als ein zweites Beispiel eines Vorteils der bevorzugten Ausführungsform ist die Menge des Speichers, die sowohl für Bildelementdaten als auch für nicht auf Bildelemente bezogene Informationen verfügbar ist, dynamisch änderbar. Dies steht ebenfalls im Gegensatz zum Stand der Technik. Beispielsweise können die für das System verfügbaren Videobetriebsarten in einem System des Standes der Technik, das hierfür vorgesehene oder feste Abbildungen im Speicher für die Bildelementdaten verwendet, beschränkt sein, da der feste Betrag des Bildelementspeichers die Videobetriebsarten, die ausgehend von dem verfügbaren Speicher zulässig sind, beschränken kann. Demgegenüber kann diese Beschränkung gemäß der bevorzugten Ausführungsform und unter der Annahme, daß der L3-Cache 26 ausreichend groß ist, dadurch überwunden werden, daß ein ausreichender Speicherbereich des L3-Caches 26 zum Speichern von Bildelementdaten zugeteilt wird. Außerdem wird angemerkt, daß die Fähigkeit zum dynamischen Ändern der Zuteilung des L3-Caches 26 diesen Vorteil weiter unterstützt sowie weitere Vorteile schafft. Insbesondere kann der L3-Cache 26 zur Anpassung an eine bestimmte Videobetriebsart zugeteilt werden, während er weiter ermöglicht, daß entweder eine verhältnismäßig große oder eine verhältnismäßig kleine Menge des Platzes in dem Cache für nicht auf Bildelemente bezogene Informationen verwendet wird. Dies steht im Gegensatz zu einem hierfür vorgesehenen Bildelementspeicher, der, selbst wenn er zu einem gegebenen Zeitpunkt nicht vollständig genutzt wird, keinen zusätzlichen Speicherplatz für nicht auf Bildelemente bezogene Informationen bereitstellt. Nochmals weiter wird angemerkt, daß, obgleich die bevorzugte Ausführungsform den L3-Cache 26 anhand der momentanen Videobetriebsart zuteilt, möglicherweise weitere Beispiele entstehen könnten, wobei es wünschenswert wäre, ihren Platz wie zwischen Bildelementdaten und nicht auf Bildelemente bezogenen Informationen zuzuteilen, wobei diese Beispiele gleichfalls Vorteile gegenüber dem Stand der Technik schaffen können. Als ein drittes Beispiel eines Vorteils der bevorzugten Ausführungsform werden die verbesserten Videofähigkeiten noch weiter verbessert und sicher abgeändert, während die Fähigkeit zur Konstruktion von internen Speichern weiter verbessert wird. Mit anderen Worten, während der obengegebene 5 MByte-Wert für verschiedene heutige Anwendungen geeignet sein kann, kann die vorliegende Ausführungsform in Zukunft noch weiter verbessert werden, während verschiedene Faktoren zu der Fähigkeit beitragen, die Größe von Speichern, die in der gleichen integrierten Schaltung wie die Mikroprozessorfunktionalität konstruiert sind, annehmbar zu erhöhen, wodurch ein Gesamt-Cache bereitgestellt wird, der weitaus größer als 5 MBytes ist. In diesem Fall kann die größere Struktur in einigen Beispielen eine große Mehrheit ihrer Speicherkapazität für Bildelementdaten zuteilen, während sie außerdem immer noch eine Ersatzposition zusätzlichen Speicher für nicht auf Bildelemente bezogene Informationen bereitstellt. Nochmals weiter sind zusätzliche Vorteile klar, wie sie aus nochmals zusätzlichen Aspekten der bevorzugten Ausführungsformen entstehen, wie sie unten mit Bezug auf Bildelementdaten-Identifizierungsinformationen und weitere Funktionsaspekte des L3-Cache 26 ausführlich geschildert werden.
  • Ein zusätzlicher Aspekt entsteht in Verbindung mit der bevorzugten Ausführungsform in Bezug auf das Abhören von Informationen, die im L3-Cache 26 gespeichert sind. Insbesondere als eine Cache-Struktur ist es wünschenswert, die richtige Speicherkohärenz aufrechtzuerhalten, d. h. sicherzustellen, daß irgendeine Kopie von Informationen im L3-Cache 26 entweder an diejenige angepaßt ist, die in einem Speicher einer darüberliegenden Ebene (z. B. im Hauptspeicher) gespeichert ist, oder daß sie schließlich ausgegeben wird, um die Kopie im darüberliegenden Speicher zu aktualisieren, um die Informationsintegrität zu erhalten. Somit wird diesbezüglich angemerkt, daß die Adressierungs- und Entscheidungsschaltung 24 ferner eine geeignete Schaltungsanordnung enthält, die ein Abhören des L3-Caches 26 ermöglicht, wobei dieses Abhören sowohl auf Bildelementdaten im Bildelementdaten-Speicherbereich 26a als auch auf nicht auf Bildelemente bezogene Informationen im Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen zutrifft. Das Abhören ist im Gebiet bekannt und umfaßt allgemein zwei verschiedene Typen von Abhöranforderungen, von denen jede einem oder mehreren Speicherplätzen zugeordnet ist, die durch eine explizite Adresse identifiziert sind, die die Abhöranforderung begleitet oder ihr entspricht. In Bezug auf die zwei Typen der Anhöranforderungen gibt allgemein ein erster Typ einer solchen Anforderung für einen oder für mehrere Caches (z. B. einschließlich des L3-Caches 26) an, daß die anfordernde Schaltung die adressierten Informationen gemeinsam nutzen möchte. Wenn der L3-Cache 26 keine Kopie der adressierten Informationen besitzt, unternimmt er einfach keine Aktion in Bezug auf die Anforderung. Andererseits gibt der L3-Cache 26, wenn er eine Kopie der adressierten Informationen besitzt und wenn diese Informationen seit dem Zeitpunkt, zu dem sie in dem Cache gespeichert worden sind, abgeändert worden sind, die adressierten Informationen über die BIU 46 und den Bus B an den (in 1 nicht gezeigten) Hauptspeicher aus. Somit kann die anfordernde Schaltung die adressierten Informationen daraufhin aus dem Hauptspeicher lesen (oder sie von dem Bus "stehlen", während sie von dem Cache in den Hauptspeicher geschrieben werden). Der zweite Typ der Abhöranforderung gibt für einen oder für mehrere Caches (einschließlich des L3-Caches 26) an, daß die anfordernde Schaltung die adressierten Informationen sucht und diese Informationen ändern möchte. Noch einmal unternimmt der L3-Cache 26 einfach keine Aktion in bezug auf die Anforderung, falls er keine Kopie der adressierten Informationen besitzt. Falls der L3-Cache 26 andererseits eine Kopie der adressierten Informationen besitzt und wenn diese Informationen seit dem Zeitpunkt, zu dem sie im L3-Cache 26 gespeichert worden sind, abgeändert worden sind (d. h. wenn die Kopie der Informationen, wie es im Gebiet bezeichnet wird, "verfälscht" ist), gibt der Cache außerdem die adressierten Informationen an den Hauptspeicher aus. Allerdings wird angemerkt, daß der L3-Cache 26, da die anfordernde Schaltung die Informationen ändern wird, seine eigene Kopie der Informationen ebenfalls ungültig machen muß, um eine nachfolgende Verwendung der Informationen, die geändert worden sind, zu verhindern.
  • 2 zeigt verschiedene Felder von Informationen, die in jedem Eintrag für den TLB 24a, der einem Eintrag im L3-Cache 26 entspricht, enthalten sein können. Am Anfang wird angemerkt, daß einige Felder der TLB-Informationen, wie aus der folgenden Diskussion ersichtlich wird, sowohl auf Bildelementdaten als auch auf nicht auf Bildelemente bezogene Informationen gerichtet sind, während andere Felder der Informationen lediglich auf Bildelementdaten gerichtet sind. Allgemein zeigt 2 acht Informationsfelder, wobei jedes dieser Felder unter Verwendung eines oder mehrerer Bits pro Feld in binärer Form codiert sein kann. Außerdem beziehen sich die ersten zwei Felder (d. h. diejenigen, die in 2 am weitesten links gezeigt sind) auf die Adressenerfassung, während die verbleibenden sieben Felder die dem TLB-Eintrag entsprechenden Daten kennzeichnen. Jedes dieser Felder wird unten beschrieben.
  • Nunmehr bei Betrachtung der ersten zwei Informationsfelder ist das erste Informationsfeld ein virtueller Adressenkomparator (abgekürzt VA), während das zweite Informationsfeld die entsprechende physikalische Adresse (abgekürzt PA) im L3-Cache 26 ist. Mit anderen Worten, für einen gegebenen TLB-Eintrag identifiziert die physikalische Adresse den besonderen Block (oder die besondere Zeile) im L3-Cache 26, der durch das verbleibende Feld in dem Eintrag beschrieben wird. Es wird angemerkt, daß die Aufnahme dieser physikalischen Adresse (die gelegentlich als Block- und Versatzidentifizierer bezeichnet wird) in den TLB 24 ein nützlicher Aspekt der bevorzugten Ausführungsform ist. Genauer ist beim Zugriff auf den L3-Cache 26 durch die Aufnahme der physikalischen Adresse in den TLB 24 kein getrennter Identifizierungsvergleich erforderlich. Somit gibt es keine zusätzliche erforderliche Zeitdauer, die für einen solchen Identifizierungsvergleich verwendet wird. In der bevorzugten Ausführungsform wird dieser Zugang dadurch realisiert, daß für die virtuelle Adresse die gleiche Länge verwendet wird, die sowohl mit den Cache-Identifizierungskennzeichen als auch mit den Einträgen im TLB 24 verglichen wird.
  • Das dritte Identifizierungsfeld ist der früher beschriebene Einbit-Informationstypidentifizierer. Es wird daran erinnert, daß der Zustand dieses einen Bits angibt, ob der Block der wie im L3-Cache 26 gespeicherten Informationen, die dem TLB-Eintrag entsprechen, entweder Bildelementdaten oder nicht auf Bildelemente bezogene Informationen sind. In Bezug auf die verbleibenden sieben Informationsfelder wird jedes unten diskutiert. Bevor fortgefahren wird, wird aber angemerkt, daß, während 2 acht Informationsfelder für die bevorzugte Ausführungsform zeigt, der Fachmann auf dem Gebiet die TLB-Einträge in der Weise abändern kann, daß sie anhand einer gegebenen Implementierung mehr oder weniger Felder enthalten. Tatsächlich wird diesbezüglich angemerkt, daß es, um die obenbeschriebenen Abhörkonzepte auszuführen, weiter bevorzugt wird, daß jeder Identifizierungseintrag ausreichend Indikatoren wie jene enthält, die zur Implementierung des bekannten MESI-Cache-Kohärenzprotokolls verwendet werden. Außerdem wird ebenfalls bevorzugt, daß die MESI-Informationen für jeden Unterblock im L3-Cache 26 anstatt auf blockweiser Grundlage aufrechterhalten werden.
  • Das vierte Feld der Identifizierungsinformationen in 2 ist vorzugsweise ein Zweibit-Statusfeld. Das Statusfeld gibt die Fähigkeit oder deren Fehlen an, denjenigen Block im L3-Cache 26, der den Identifizierungsinformationen entspricht, entweder zu lesen oder zu schreiben. Wie die folgende Tabelle 2 zeigt, gibt es in der bevorzugten Ausführungsform genauer vier mögliche Statusanzeigen.
  • Figure 00270001
    Tabelle 2
  • Die Bedeutung der vier verschiedenen Statusszenarien ist für den Fachmann auf dem Gebiet aus einer Durchsicht von Tabelle 2 klar. Beispielsweise gibt ein TLB-Statusfeld gleich 00 an, daß der entsprechende Informationsblock im L3-Cache 26 gelesen, geschrieben oder ersetzt werden kann. In Bezug auf den Unterschied zwischen Schreiben und Ersetzen wird angemerkt, daß das Schreiben in den Informationsblock bedeutet, daß die Informationen geändert werden, jedoch lediglich mit anderen Informationen, die der gleichen Adresse entsprechen wie diejenigen Informationen, die überschrieben werden. Demgegenüber bedeutet Ersetzen von Informationen, daß die früheren Informationen in einen Speicher einer darüberliegenden Ebene (z. B. in den Hauptspeicher) gebracht werden, während an ihrer Stelle neue Informationen übergeben werden, die einer anderen logischen Adresse entsprechen. Aus dieser Erläuterung sind nun für den Fachmann auf dem Gebiet auch die verschiedenen Aktivitäten klar, die für die verbleibenden drei Linien aus Tabelle 2 zulässig oder verboten sind.
  • Das fünfte Feld der Identifizierungsinformationen in 2 ist vorzugsweise ein Fehlerkorrekturcode (in 2 abgekürzt "ECC") mit einer ganzen Zahl X von Bits. Das ECC-Feld gibt Standard-Fehlerkorrekturinformationen an, wie sie im Gebiet bekannt sind. Außerdem wird angemerkt, daß der Feldcode ferner durch weitere Fehlerkorrekturtechniken wie etwa durch ein Paritätsfeld oder dergleichen ersetzt oder weiter ergänzt werden kann.
  • Das sechste Feld der Identifizierungsinformationen in 2 ist vorzugsweise ein Abbildungsindikator, der durch ein einzelnes Bit gebildet wird. In der bevorzugten Ausführungsform kann das Abbildungsindikatorfeld in der Weise eingestellt werden, daß es angibt, daß der Identifizierungseintrag (und somit auch der Platz im L3-Cache 26, der diesen Identifizierungsinformationen entspricht) lediglich reserviert worden ist. Mit anderen Worten, falls die Abbildung auf diesen reservierten Zustand (z. B. 0) eingestellt worden ist und ein Zugriff auf diesen Identifizierungseintrag versucht wird, bewirkt die Erfassung der Abbildung des reservierten Zustands vorzugsweise eine Unterbrechung für das Betriebssystem. Als Reaktion kann das Betriebssystem daraufhin informiert werden, eine geeignete Aktion zu unternehmen, um denjenigen Platz im L3-Cache 26, der diesen Identifizierungsinformationen entspricht, mit Daten zu aktualisieren. Wenn diese Aktion unternommen wird, wird natürlich außerdem erwartet, daß der Abbildungsindikator in der Weise geschaltet wird, daß er einen nicht reservierten Zustand angibt (z. B. 1), so daß der nächste nachfolgende Zugriff auf die Identifizierungsinformationen daraufhin erkennt, daß die Identifizierungsinformationen aktualisiert worden sind und entweder die Bildelementdaten oder die nicht auf Bildelemente bezogenen Informationen an dem entsprechenden Platz im L3-Cache 26 richtig kennzeichnet.
  • Das siebente und das achte Feld der Identifizierungsinformationen in 2 gehören im Gegensatz zu nicht auf Bildelemente bezogenen Informationen lediglich zu Bildelementdaten. Somit sind dieses siebente und achte Feld irrelevant und können für andere Zwecke verwendet werden, falls der Einbit-Informationstypidentifizierer (d. h. das erste Feld in den Identifizierungsinformationen) angibt, daß die entsprechenden Informationen nicht auf Bildelemente bezogene Informationen sind. Allerdings stellen das fünfte und das sechste Feld vorzugsweise die unmittelbar nachfolgend beschriebene Funktionalität bereit, wenn der Einbit-Informati onstypidentifizierer angibt, daß die Identifizierungsinformationen Bildelementdaten kennzeichnen.
  • Das siebente Feld der Identifizierungsinformationen in 2 ermöglicht eine Verknüpfungsfunktion zwischen verschiedenen Identifizierungseinträgen im TLB 24a und stellt folglich eine Verknüpfung zwischen verschiedenen Blöcken von Bildelementdaten im Bildelementdaten-Speicherbereich 26a her. Insbesondere identifiziert das Feld in der bevorzugten Ausführungsform, wenn auf einen Identifizierungseintrag zugegriffen wird, das nächste Identifizierungskennzeichen (und somit den nächsten Block von Bildelementdaten), auf das unmittelbar nach dem momentanen Zugriff zugegriffen wird. Auf diese Weise können zahlreiche aufeinanderfolgende Blöcke von Bildelementdaten aus dem Bildelementdaten-Speicherbereich 26a ausgelesen werden, ohne daß die CPU 12 getrennte logische Adressen für jeden solchen Block erzeugen müßte. Folglich können die in Reaktion auf eine solche Verknüpfung ausgelesenen Bildelementdaten einen leichter verfügbaren Strom von Bildelementdaten für die Ausgabe an den DAC 40 und an die Anzeige 42 liefern. Insbesondere wird anhand von 1 daran erinnert, daß der Bildelement-Ausgabe-FIFO 32 einen leeren oder nahezu leeren Status für die Adressierungs- und Entscheidungsschaltung 24 angeben kann. Somit kann das Verknüpfungsfeld, wenn dies geschieht, so, wie es aus dem vorhergehenden Identifizierungskennzeichen ausgelesen und in der Adressierungs- und Entscheidungsschaltung 24 gespeichert werden kann, daraufhin verwendet werden, um die Adresse für den nächsten Block von Bildelementdaten, die an den L3-Cache 26 auszugeben sind, herauszugeben. Außerdem wird angemerkt, daß das Verknüpfungsfeld unter Verwendung verschiedener Verknüpfungstechniken ausgeführt werden kann und daß das Feld somit eine Länge von irgendeiner ganzen Zahl von N Bits haben kann. Schließlich wird angemerkt, daß das Verknüpfungsfeld außer einer Vorwärtsverknüpfung, wie sie oben beschrieben wurde (d. h. bei der die Verknüpfung das Identifizierungskennzeichen des nächsten Blocks, auf den zugegriffen wird, identifiziert), ferner auch eine Rückwärtsverknüpfung enthalten kann, wobei diese Rückwärtsverknüpfung somit das Identifizierungskennzeichen des vorausgehenden Blocks von Bildelementdaten identifiziert. Wie der Fach mann auf dem Gebiet feststellt, können tatsächlich nochmals zusätzliche Verknüpfungen aufgenommen werden.
  • Das achte Feld der Identifizierungsinformationen in 2 ist ein Bildelementgrößenfeld, das für die Bits in dem Block von Bildelementdaten in dem Bildelementdaten-Speicherbereich 26a, die dem Identifizierungskennzeichen entsprechen, eine Angabe der Anzahl der Bits bereitstellt, die ein Bildelement kennzeichnen. Mit anderen Worten, gemäß momentanen Technologien kann zum Kennzeichnen jedes Bildelements eine andere Anzahl von Bits verwendet werden, wobei typischerweise mehr Bits verwendet werden, um für ein gegebenes Bildelement eine größere Anzahl von Farben bereitzustellen. Ausgehend von dieser Kapazität wird in der bevorzugten Ausführungsform beispielhaft angenommen, daß das Bildelementgrößenfeld für eine gegebene Zeile von Identifizierungsinformationen eine 16-Bit-Bildelementkennzeichnung angibt (obgleich auch andere Größen wie etwa 8 Bits, 24 Bits, 32 Bits usw. verwendet werden könnten). Somit ist bestimmt, daß jede Gruppe von 16 Bits für den entsprechenden Block von 4 kBytes von Bildelementdaten im Bildelementdaten-Speicherbereich 26a Daten im Umfang eines einzelnen Bildelements kennzeichnet. Somit können diese Informationen an eine Videosteuerschaltung 38 übertragen und zum Steuern der Darstellung des Bildes auf der Anzeige 42 verwendet werden. Außerdem wird angemerkt, daß die Anzahl der Bits, die von dem Bildelement-Größenfeld verwendet werden, von der Anzahl der verschiedenen darzustellenden Szenarien abhängt. Wenn es beispielsweise vier verschiedene erwartete Bildelementgruppierungen (z. B. 8 Bits, 16 Bits, 32 Bits, 64 Bits) gibt, können irgendwelche von diesen vier in dem Bildelementfeld durch insgesamt 2 Bits dargestellt werden. Natürlich können größere Änderungen eine größere Anzahl von Bits erfordern, während weniger Änderungen weniger Bits erfordern; zum Nachweis dieser Flexibilität zeigt 2 somit, daß das Bildelement-Größenfeld unter Verwendung irgendeiner ganzen Zahl mit einer Länge von T Bits erreicht werden kann. Schließlich wird angemerkt, daß das Bildelementgrößenfeld andere auf Bildelemente bezogene Attribute enthalten könnte oder daß im Eintrag in 2 zusätzliche Felder enthalten sein könnten. Ein Beispiel kann die Farbpalette identifizieren, die den Bildelementdaten entspricht. Weitere Beispiele kann der Fachmann auf dem Gebiet feststellen.
  • Um die vorausgehende Struktur und die vorausgehenden Prinzipien weiter zu erkennen, liefert 3 einen vereinfachten Ablaufplan einiger der Funktionsschritte eines Verfahrens 50 zum Betrieb des Mikroprozessors 10 im Kontext des Zuteilens des L3-Caches 26 sowohl zum Speichern von Bildelementdaten als auch von nicht auf Bildelemente bezogenen Informationen. Das Verfahren 50 beginnt mit Schritt 51, wo der Mikroprozessor 10 eine Änderung der Anforderung zum Zuteilen der Gesamtgröße des im L3-Cache 26 verfügbaren Speichers (z. B. 5 MBytes) erfaßt. In der bevorzugten Ausführungsform und wie es beschrieben wurde, entsteht diese Notwendigkeit, wenn in dem Computer, der den Mikroprozessor 10 implementiert, die Videobetriebsart geändert wird, wobei sich dies durch eine Ausgabe von der Videosteuerschaltung 38 an den Mikroprozessor 10 offenbaren kann. Somit kann der Schritt 51 beim Start ausgeführt werden oder anschließend außerdem erneut auftreten, falls der Anwender die Videobetriebsart ändert. Außerdem wird angemerkt, daß der Schritt 51 beim Erfassen der Änderung die Menge der geforderten Änderung der Zuteilung bestimmt, d. h., ob zusätzlicher Platz für Bildelementdaten oder für nicht auf Bildelemente bezogene Daten erforderlich ist und wieviel von diesem Platz geändert werden muß. In der bevorzugten Ausführungsform sind die Bereiche 26a und 26b zusammenhängend, wobei ein Zeiger oder ein anderer Speicher das momentane Ende eines Bereichs und somit den Beginn des anderen Bereichs (d. h. die Zuordnung zwischen den Bereichen 26a und 26b) verfolgt. Somit wird der neu angeforderte Betrag, wenn er in Schritt 51 erfaßt wird, dazu verwendet, den Wert dieses Zeigers dementsprechend anzupassen. Ausgehend von diesen Informationen sowie einer Angabe der dann aktuellen Zuteilung (wie sie vorzugsweise in der Adressierungs- und Entscheidungsschaltung 24 gespeichert ist) wird das Verfahren 50 wie folgt fortgesetzt.
  • Ausgehend von dem in Schritt 51 erfaßten Ereignis repräsentiert der Schritt 52 einfach eine Änderung in dem Ablauf des Verfahrens 50 anhand des Typs der zum L3-Cache 26 hinzuzufügenden Informationen. Somit wird das Verfahren 50 von Schritt 52 zu Schritt 53 fortgesetzt, falls die Zuordnung des L3-Caches 26 erhöht werden soll, um die Speicherung von mehr Bildelementdaten zu ermöglichen. Umgekehrt wird das Verfahren 50 von Schritt 52 zu Schritt 54 fortsetzt, falls die Zuordnung des L3-Caches 26 erhöht werden soll, um die Speicherung von mehr nicht auf Bildelemente bezogenen Daten zur ermöglichen. Jeder dieser alternativen Pfade wird unten diskutiert.
  • Der Schritt 53 repräsentiert den Beginn einer Schleife in dem Verfahren 50, wenn die Zuteilung des L3-Caches 26 geändert wird, um die Speicherung von mehr Bildelementdaten zu ermöglichen. Es wird angemerkt, daß diese Änderung ausgehend von der festen Gesamtgröße des L3-Caches 26 eine Zunahme der Anzahl der Cache-Blöcke im Bildelementdaten-Speicherbereich 26a und somit eine entsprechende Verringerung der Anzahl der Cache-Blöcke in dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen repräsentiert. Somit wird diese Änderung der Zuteilung dadurch ausgeführt, daß eine geeigneten Anzahl von Blöcken, die momentan nicht auf Bildelemente bezogene Informationen speichern, auf eine Form umgestellt werden, die zum Speichern von Bildelementdaten bereit ist. Daraufhin wird in Schritt 51 diese Anzahl von Blöcken, d. h. diejenige Anzahl, die zur Anpassung an das Ereignis erforderlich ist, das die Änderung der Zuteilung verursachte, identifiziert. Somit gibt es nach dem Schritt 53 zwei Schritte 55 und 56, die darauf gerichtet sind, diese Änderung der Zuteilung vorzunehmen, wobei jeder dieser Schritte auf jeden umzustellenden Block angewendet wird. Jeder dieser Schritte wird unten diskutiert.
  • Der Schritt 55 ist auf die Behandlung von nicht auf Bildelemente bezogenen Informationen im Speicherbereich 26b, die durch neu hinzugefügte Bildelementdaten überschrieben werden, gerichtet. Insbesondere stellt das Verfahren 50 in Schritt 55 die Speicherkohärenz in Bezug auf einen gegebenen Block von nicht auf Bildelemente bezogenen Informationen dadurch sicher, daß es bestimmt, welche der nicht auf Bildelemente bezogenen Informationen in diesem Block, falls überhaupt, verfälscht sind. Diesbezüglich können die obendiskutierten MESI-Bits verwendet werden, um diese Bestimmung vorzunehmen. Wie im Gebiet bekannt ist, repräsentiert eine verfälschte Angabe, daß eine Kopie von Informationen in dem Cache geändert worden ist, wobei die Informationen seit dieser Änderung aber nicht an eine darüberliegende Ebene des Speichers geliefert worden sind. Somit kopiert der Schritt 55 diese verfälschten Informationen an eine darüberliegende Ebene des Speichers. Beispielsweise kann dies durch Zurückschreiben der nicht auf Bildelemente bezogenen Informationen in den Hauptspeicher erzielt werden. Als ein weiteres Beispiel können die nicht auf Bildelemente bezogenen Informationen in eine Cache-Struktur einer darüberliegenden Ebene kopiert werden, falls eine solche zwischen dem L3-Cache 26 und dem Systemhauptspeicher verfügbar ist. Nachfolgend wird das Verfahren 50 von Schritt 55 zu Schritt 56 fortgesetzt.
  • Der Schritt 56 ist auf die Behandlung des TLB-Eintrags gerichtet, der den in Schritt 55 ermittelten nicht auf Bildelemente bezogenen Informationen entspricht. In Schritt 56 löscht das Verfahren 50 die Identifizierungsinformationen in diesem Eintrag des TLB 24a. Diesbezüglich umfaßt diese Löschoperation wenigstens zwei Felder in dem Eintrag des TLB 24a. Für ein erstes Feld stellt der Schritt 56 das gültige Identifizierungskennzeichen, wie es in den MESI-Informationen vorhanden sein kann, auf ungültig ein. Für ein zweites Feld stellt der Schritt 56 das Informationstypbit auf Bildelementdaten ein. Ausgehend von diesen Schritten wird angemerkt, daß der Eintrag des TLB 24a nun bereit ist, Bildelementdaten zu entsprechen, die zum L3-Cache 26 neu hinzuzufügen werden. Nachfolgend wird das Verfahren 50 von Schritt 56 zu Schritt 57 fortgesetzt.
  • Der Schritt 57 schließt die in Schritt 53 begonnene Schleife ab. Somit kehrt das Verfahren 50 von Schritt 57 zu Schritt 55 zurück, falls es einen zusätzlichen Block gibt, der nicht auf Bildelemente bezogene Informationen speichert, die zum Speichern von Bildelementdaten zuzuordnen sind, wobei in diesem Fall die Schritte 55 und 56 für diesen Block erneut wiederholt werden. Somit wird dieses Verfahren fortgesetzt, bis alle L3-Cache-Blöcke, die vom Speichern von nicht auf Bildelemente bezogenen Informationen auf Bildelementdaten umzustellen sind, verarbeitet worden sind. Zu diesem Zeitpunkt setzt der Schritt 57 den Ablauf zu Schritt 58 fort, wodurch das Verfahren 50 abgeschlossen wird.
  • Nachdem die Umsetzung der Blöcke im L3-Cache 26 von der Speicherung von nicht auf Bildelemente bezogenen Informationen auf die Speicherung von Bildelementdaten erläutert worden ist, wird daran erinnert, daß das Entgegengesetzte stattfinden muß, wenn der Schritt 52 den Ablauf zu Schritt 54 fortsetzt. Wird daraufhin der Schritt 54 betrachtet, repräsentiert er somit den Beginn einer Schleife in dem Verfahren 50, wenn die Zuteilung des L3-Caches 26 geändert wird, um die Speicherung von mehr nicht auf Bildelemente bezogenen Informationen zu ermöglichen. Ausgehend von der festen Gesamtgröße des L3-Caches 26 repräsentiert diese Änderung wieder eine Zunahme der Anzahl der Cache-Blöcke in dem Speicherbereich 26b für nicht auf Bildelemente bezogene Informationen und somit eine entsprechende Verringerung der Anzahl der Cache-Blöcke in dem Bildelementdaten-Speicherbereich 26a. Diese Änderung der Zuteilung wird dadurch ausgeführt, daß eine geeignete Anzahl von Blöcken, die momentan Bildelementdaten speichern, in eine Form umgesetzt werden, die zum Speichern von nicht auf Bildelemente bezogenen Informationen bereit ist. Somit ist der Schritt 59 nach Schritt 54 darauf gerichtet, diese Änderung der Zuteilung vorzunehmen, wobei der Schritt 59, wie weiter unten klar wird, auf jeden Block angewendet wird, der umgesetzt wird.
  • Der Schritt 59 ist auf die Behandlung des TLB-Eintrags gerichtet, der Bildelementdaten im Speicherbereich 26a entspricht, die durch die neu hinzugefügten nicht auf Bildelemente bezogenen Informationen überschrieben werden. In Schritt 59 löscht das Verfahren 50 die Identifizierungsinformationen in diesem Eintrag des TLB 24a. Diesbezüglich umfaßt diese Löschoperation die gleichen wenigstens zwei Felder in dem Eintrag des TLB 24a, wie sie in Schritt 55 geändert wurden. Somit stellt der Schritt 59 für das erste Feld das gültige Identifizierungskennzeichen (z. B. von MESI) auf ungültig ein. Das zweite Feld ist wieder das Informationstypbit. Allerdings ist die Änderung des Zustands hier entgegengesetzt zu der, die in Schritt 55 beschrieben worden ist, d. h. der Schritt 59 stellt hier dieses Bit auf nicht auf Bildelemente bezogene Informationen ein. Ausgehend von diesen Schritten wird angemerkt, daß der Eintrag des TLB 24a nun bereit ist, nicht auf Bildelemente bezogenen Informationen zu entsprechen, die neu zum L3-Cache 26 hinzuzufügen sind. Nachfolgend wird das Verfahren 50 von Schritt 59 zu Schritt 60 fortgesetzt. Ausgehend von diesem Ablauf wird außerdem angemerkt, daß es zwischen den Schritten 54 und 60 keinen zu Schritt 55 vergleichbaren Schritt gibt, der eine Umsetzung betrifft, die auf weitere Bildelementdaten vorbereitet. Somit ist für den Fachmann auf dem Gebiet klar, daß es in der bevorzugten Ausführungsform kein Hinauskopieren der Bildelementdaten gibt, wenn Bildelementdaten im L3-Cache 26 gespeichert werden und die Plätze, die diese Informationen speichern, durch nicht auf Bildelemente bezogene Informationen überschrieben werden sollen; statt dessen werden sie lediglich durch die neu hinzugefügten Bildelementinformationen überschrieben.
  • Der Schritt 60 schließt die in Schritt 53 begonnene Schleife ab. Somit kehrt das Verfahren 50 von Schritt 60 zu Schritt 59 zurück, wenn es einen zusätzlichen Bildelementdaten speichernden Block gibt, der zum Speichern von nicht auf Bildelemente bezogene Informationen zuzuordnen ist, wobei der Schritt 59 in diesem Fall für diesen Block erneut wiederholt wird. Somit wird dieses Verfahren fortgesetzt, bis alle Blöcke des L3-Caches, die vom Speichern von Bildelementdaten auf das Speichern von nicht auf Bildelemente bezogene Informationen umgesetzt worden sind, verarbeitet worden sind. Zu diesem Zeitpunkt setzt der Schritt 60 den Ablauf zu Schritt 58 fort, wodurch das Verfahren 50 abgeschlossen wird.
  • Schließlich wird in bezog auf 3 angemerkt, daß gezeigt ist, daß der Ablauf nach Schritt 58 zu Schritt 51 zurückkehrt. Natürlich können zahlreiche weitere Aktivitäten stattfinden, bevor der Schritt 51 erneut auftritt, wobei diese Rückkehr des Ablaufs enthalten ist, um anzudeuten, daß nach einer gegebenen Zuteilung ein weiteres Ereignis (z. B. eine weitere Änderung der Videobetriebsart) stattfinden kann, wobei diese Änderung erneut durch den Schritt 51 erfaßt werden kann und die nachfolgenden Schritte die Zuteilung des L3-Caches 26 wie zwischen Bildelementdaten und nicht auf Bildelemente bezogenen Informationen ändern kann.
  • Nachdem der Zugriff auf Informationen im L3-Cache 26 allgemein diskutiert worden ist, zeigt 4 einen Ablaufplan einiger dieser Schritte, wobei sie weiter ein Verfahren 61 zum Betrieb des Mikroprozessors 10 im Kontext der Adressierung seiner Speicherhierarchie, die den L3-Cache 26 enthält, beschreibt. Das Verfahren 61 beginnt in Schritt 62, wenn eine Einheit wie etwa die CPU 12 eine logische Adresse herausgibt, die auf Informationen gerichtet ist, die in dem Systemspeicher gespeichert sind. Definitionsgemäß können aber Informationen, die im externen Speicher (z. B. im Hauptspeicher oder in einem Festspeicher gespeichert sind) außerdem in einem oder in mehreren der Caches gespeichert sein, auf die die CPU 12 zugreifen kann: Somit zeigen die verbleibenden Schritte, wie diese Informationen aus jenen Caches ausgelesen werden können.
  • In Schritt 64 legt das Verfahren 61 die logische Adresse von der CPU 12 an den TLB 24a an. Der TLB 24a kann auf verschiedene Weise reagieren. Beispielsweise kann der TLB 24a einen Fehltreffer herausgeben und dadurch angeben, daß er momentan keine Adressenübersetzung für die in Schritt 62 durch die CPU 12 herausgegebene logische Adresse speichert. Alternativ kann der TLB 24a eine Adressenübersetzung besitzen, während sein Identifizierungskennzeichen aber angeben kann, daß die Übersetzung als ungültig gekennzeichnet worden ist. Nochmals weiter kann der TLB 24a eine gültige Adressenübersetzung besitzen; in diesem Fall wird angemerkt, daß die gültige Übersetzung eine physikalische Adresse liefert, die daraufhin anzuwenden ist, um zu bestimmen, ob es entweder im L1-Cache 16 oder im L2-Cache 20 einen Treffer gibt, wobei die gültige Übersetzung außerdem einen Index und Identifizierungsinformationen (einschließlich der aus 2) für einen potentiellen Zugriff auf den L3-Cache 26 liefert. Auf jeden Fall wird das Verfahren 61 ausgehend von einer Antwort vom TLB 24a in Schritt 64 in Schritt 66 fortgesetzt.
  • In Schritt 66 bestimmt das Verfahren 61, ob der TLB 24a in Schritt 64 einen Fehltreffer herausgegeben hat. Wenn das der Fall ist, wird das Verfahren 61 zu Schritt 68 fortgesetzt. Der Schritt 68 führt daraufhin einen Speichertabellen-Walk-Through aus, wie er im Gebiet bekannt ist und wie es in Reaktion auf einen TLB- Fehltreffer üblich ist. Mit anderen Worten, der Speicher-Walk-Through identifiziert die richtige Adressenübersetzung, woraufhin sie im TLB 24a gespeichert werden kann. Folglich kehrt das Verfahren 61 nach Schritt 68 zu Schritt 64 zurück, der die herausgegebene Adresse noch einmal an den TLB 24a anlegt und somit jetzt wie in dem vorausgehenden Absatz beschrieben zum Auffinden einer gültigen Übersetzung führen sollte. Entweder wegen dieser gültigen Übersetzung auf der Grundlage dieser Iteration oder wegen eines Treffers von dem Anfangszugriff auf den TLB 24a wird das Verfahren 61 nachfolgend zu Schritt 70 fortgesetzt.
  • In Schritt 70 bestimmt das Verfahren 61, ob der Treffer im TLB 24a gültigen Informationen entspricht. Mit anderen Worten, es wird aus der vorangehenden Diskussion von Schritt 64 daran erinnert, daß, obgleich der TLB 24a eine Adressenübersetzung besitzt, diese Übersetzung auch als ungültig gekennzeichnet sein kann. In diesem Fall richtet der Schritt 70 den Verfahrensablauf zu Schritt 72. In Schritt 72 gibt es einen Hardware-Fehler durch den Mikroprozessor 10 mit einem Seitenfehler, wobei diese Angabe insbesondere auf das Betriebssystem gerichtet ist. Somit unternimmt die Hardware allein an diesem Punkt keine weitere Aktion, während statt dessen auf irgendeine Weise, die das Betriebssystem für annehmbar hält, zu Mitteln gegriffen wird, um den Seitenfehler zu korrigieren. Schließlich, d. h. entweder nach der Korrektur oder unter der Annahme, daß der ursprüngliche Treffer im TLB 24a einer gültigen Übersetzung entspricht, wird das Verfahren 61 zu Schritt 74 fortgesetzt.
  • In Schritt 74 legt das Verfahren 61 die physikalische Adresse von der Übersetzung durch den TLB 24a auf eine im Gebiet bekannte Weise an den L1-Cache 16 und möglicherweise an den L2-Cache 20 an. Um Zeit zu sparen, kann das Anlegen der Adresse beispielsweise an jeden dieser Caches gleichzeitig erfolgen oder kann das Anlegen der Adresse an den L2-Cache 20 alternativ nur dann stattfinden, wenn zunächst im L1-Cache 16 ein Fehltreffer erfaßt wird. Im Ergebnis von Schritt 74 ist entweder in einem dieser zwei Caches ein Treffer auf gültige Informationen aufgetreten oder haben beide zu einem Fehltreffer (oder zu einem Tref fer, aber auf ungültige Informationen) geführt. Somit bestimmt der Schritt 76, welcher dieser zwei Fälle aufgetreten ist. Falls der Schritt 76 bestimmt, daß entweder im L1-Cache 16 oder im L2-Cache 20 ein Treffer auf gültige Informationen aufgetreten ist, werden die Informationen, die der Adresse entsprechen, durch den Cache bereitgestellt, der den Treffer hatte, wobei das Verfahren 61 zu Schritt 62 zurückkehrt, um auf die Herausgabe der nächsten Adresse durch die CPU 12 zu warten. Wenn dagegen sowohl der L1-Cache 16 als auch der L2-Cache 20 mit Fehltreffern auf die physikalische Adresse vom TLB 24a (oder mit einem Treffer ungültiger Informationen) reagierten, wird das Verfahren 61 zu Schritt 78 fortgesetzt.
  • In Schritt 78 wertet das Verfahren 61 das durch den TLB 24a und den entsprechenden L3-Cache 26 herausgegebene Identifizierungskennzeichen aus. Genauer wird bestimmt, ob das Identifizierungskennzeichen als gültig oder ungültig gekennzeichnet ist. Wenn das Identifizierungskennzeichen ungültig ist, wird das Verfahren 61 zu Schritt 80 fortgesetzt. Falls das Identifizierungskennzeichen gültig ist, wird das Verfahren 61 zu Schritt 82 fortgesetzt. Jede dieser Alternativen wird unten diskutiert.
  • In Schritt 80 findet nach der Erfassung eines ungültigen Identifizierungskennzeichens, das dem L3-Cache 26 entspricht, eine von zwei Aktionen statt. Es wird angemerkt, daß als eine erste Aktion in Reaktion auf ein ungültiges Identifizierungskennzeichen das ungültige Identifizierungskennzeichen eine Angabe, die dadurch bestätigt werden kann, daß ein zusätzlicher Indikator (entweder in dem Identifizierungskennzeichen oder anderswo) betrachtet wird, sein kann, daß die Informationen, die der Adresse entsprechen, im Übergang zum L3-Cache 26 sind. Eine Übergangsangabe dieses Typs deutet an, daß die durch die Adresse gesuchten Informationen momentan tatsächlich auf den L3-Cache 26 gerichtet sind und somit wahrscheinlich auf gültige Weise in einer annehmbar kurzen Zeitdauer dort sind. Falls dies der Fall ist, braucht der Schritt 80 lediglich eine gewisse Zeitdauer zu warten und daraufhin erneut auszuwerten, ob das anstehende Identifizierungskennzeichen im TLB 24a jetzt gültig geworden ist (d. h. ob die Informationen, die im Übergang waren, nun vollständig im L3-Cache 26 gespeichert sind). Als eine zweite Aktion in Reaktion auf ein ungültiges Identifizierungskennzeichen liefert der Schritt 80 daraufhin entweder sofort oder in Reaktion auf die Bestimmung, daß sich die gesuchten Informationen nicht im Übergang befinden, einen Hardware-Fehler an das Betriebssystem. Somit unternimmt die Hardware allein an diesem Punkt keine weitere Aktion, während statt dessen auf irgendeine Weise, die das Betriebssystem für annehmbar hält, zu Mitteln gegriffen wird, um das zu korrigieren, was nun als ein Fehltreffer in dem L1-Cache 16 und in dem L2-Cache 20 und in dem L3-Cache 26 betrachtet werden kann.
  • Von Schritt 82 an sollte dem Leser klar sein, daß die verbleibenden Schritte die früher in Verbindung mit 1 beschriebenen Operationen demonstrieren, die die CPU 12 als ein Beispiel einer Schaltung verwenden, die eine Adresse liefert und daraufhin entweder nicht auf Bildelemente bezogene Informationen liest oder schreibt oder Bildelementdaten entweder liest oder schreibt oder eine Anzeigeoperation in Bezug auf sie anfordert. Zusammenfassend sind somit die verbleibenden Schritte ebenfalls in 4 gezeigt, wobei diese unten kurz diskutiert werden.
  • Nachdem in Schritt 82 ein gültiges Identifizierungskennzeichen, das dem L3-Cache 26 entspricht, erfaßt worden ist, wird nachfolgend bestimmt, welcher Informationstyp der anstehenden Adresse entspricht. Mit anderen Worten, es ist jetzt bekannt, daß die gewünschten Informationen im L3-Cache 26 gespeichert sind, so daß ferner durch Durchsicht des Informationstypindikators des Identifizierungskennzeichens (siehe das richtige Feld in 2) bestimmt wird, ob die Informationen Bildelementdaten oder nicht auf Bildelemente bezogene Informationen sind. Als Reaktion wird das Verfahren 61 zu Schritt 84 fortgesetzt, wenn die Informationen Bildelementdaten sind, oder wird das Verfahren 61 alternativ zu Schritt 86 fortgesetzt, wenn die Informationen nicht auf Bildelemente bezogene Informationen sind. Schließlich arbeiten somit die auf die Schritte 84 und 86 folgenden Schritte auf die früher beschriebene Weise und gemäß dem Typ der Informationen. Obgleich die Einzelheiten dieser Aktionen somit aus den früheren Diskussionen nochmals durchgesehen werden können, wird folgendes kurz angemerkt.
  • Der Schritt 84 lenkt den Ablauf des Verfahrens anhand des Operationstyps, der den adressierten Bildelementdaten entspricht. Wenn die Operation die Anzeige der Bildelementdaten ist, wird das Verfahren 61 zu Schritt 88 fortgesetzt, der die adressierten Bildelementdaten aus dem Speicherbereich 26a an den Bildelement-Ausgabe-FIFO 32 übermittelt. Aus der früheren Diskussion wird dann weiter erkannt, daß diese Bildelementdaten vom Bildelement-Ausgabe-FIFO 32 an den DAC 40 und schließlich an die Anzeige 42 ausgegeben werden können. Wenn die Operation für die adressierten Bildelementdaten ein Lesen ist, übermittelt der Schritt 90 die adressierten Bildelementdaten aus dem Speicherbereich 26a an den Anforderer der Daten (z. B. an die CPU 12). Diesbezüglich wird auch aus der früheren Diskussion von 1 daran erinnert, daß diese Übermittlung der adressierten Bildelementdaten über den Bus 28 zum Umgehungsregister 36 erfolgen und somit für die CPU 12 verfügbar sein kann. Ausgehend von dem Obenstehenden ist für den Fachmann auf dem Gebiet klar, daß die adressierten Informationen über das Umgehungsregister 36 sofort für die CPU 12 verfügbar sind oder beginnend mit dem L2-Cache 20 an einen Cache einer darunterliegenden Ebene übergeben werden können. Schließlich übermittelt der Schritt 92 die adressierten Bildelementdaten von der Schreibvorrichtung an den Speicherbereich 26a zurück (was erneut über das Umgehungsregister 36 erfolgen kann), wenn die Operation für die adressierten Bildelementdaten ein Schreiben ist. Nach irgendeinem der Schritte 88, 90 und 92 wird das Verfahren 61 mit dem Schritt 94 abgeschlossen, wobei es zu Schritt 62 zurückkehrt, wo eine neu herausgegebene logische Adresse wieder durch die Schritte des Verfahrens 61 verarbeitet wird.
  • Der Schritt 86 richtet den Ablauf des Verfahrens anhand des Operationstyps, der den adressierten nicht auf Bildelemente bezogenen Informationen entsprach. Falls die Operation für die adressierten nicht auf Bildelemente bezogenen Informationen ein Lesen ist, übermittelt der Schritt 96 die adressierten nicht auf Bildelemente bezogenen Informationen vom Speicherbereich 26b an den Anforderer der Daten (z. B. an die CPU 12). Diese Übermittlung der adressierten nicht auf Bildelemente bezogenen Informationen über den Bus 28 kann wieder zum Umgehungsregister 36 erfolgen und somit für die CPU 12 verfügbar sein oder alternativ über den L2-Cache 20 und daraufhin über den L1-Cache 16 an die CPU 12 übermittelt werden. Umgekehrt übermittelt der Schritt 98 die adressierten nicht auf Bildelemente bezogenen Informationen von der Schreibvorrichtung an den Speicherbereich 26b zurück (was erneut über das Umgehungsregister 36 oder über den L1-Cache 16 und daraufhin über den L2-Cache 20 erfolgen kann), wenn die Operation für die adressierten nicht auf Bildelemente bezogenen Informationen ein Schreiben ist. Nach einem der Schritte 96 oder 98 wird das Verfahren 61 mit dem Schritt 94 abgeschlossen und kehrt zu Schritt 62 zurück, wo wieder eine neu herausgegebene logische Adresse durch die Schritte des Verfahrens 61 verarbeitet werden kann. Abschließend wird zu 4 angemerkt, daß, obgleich der Ablauf in der Weise gezeigt ist, daß er von Schritt 94 zu Schritt 62 zurückkehrt, eine oder mehrere weitere Aktivitäten stattfinden können, bevor der Schritt 62 erneut auftritt; dennoch ist diese Rückkehr des Ablaufs enthalten, um anzudeuten, daß nach einem gegebenen Speicherzugriff weitere Zwischenereignisse stattfinden können, bevor der nächste Speicherzugriff erwünscht ist, wobei das Verfahren 61 aber wieder durch den Schritt 62 begonnen wird, wenn ein solcher Zugriff erwünscht ist.
  • Aus dem Obenstehenden ist klar, daß die obigen Ausführungsformen zahlreiche Vorteile im Kontext von Computersystemen schaffen. Beispielsweise kann ein hierarchisches Speichersystem in dem Computersystem enthalten sein, bei dem einer (oder mehrere) Caches der Hierarchie zum Speichern sowohl von Bildelementdaten als auch von nicht auf Bildelemente bezogenen Daten betreibbar sind. Folglich ermöglicht der kombinierte Cache, daß die CPU(s) des Systems gleichen Zugriff sowohl auf Bildelementdaten als auch auf nicht auf Bildelemente bezogene Informationen haben. Als ein weiteres Beispiel kann das Computersystem dadurch, daß es die Fähigkeit enthält, den Speicherraum des Universal-Cache zuzuteilen, periodisch neu konfiguriert werden, um die dann existierenden Speicheranforderungen mit Schwerpunkt entweder auf Bildelementdaten oder auf nicht auf Bildelemente bezogene Daten anzupassen. Als ein weiteres Beispiel können die verschiedenen obendargestellten Identifizierungsinformationen die effiziente Verwendung der Bildelementdaten, während sie aus dem Universal-Cache ausgelesen werden, weiter erleichtern. Nochmals weitere Beispiele sind dem Fachmann auf dem Gebiet klar. Als ein nochmals letzter Vorteil wird angemerkt, daß, das Obige verschiedene alternative Aspekte veranschaulicht, die dadurch in dem vorliegenden erfindungsgemäßen Umfang verschiedene Ausführungsformen darstellen. Obgleich die vorliegenden Ausführungsformen ausführlich beschrieben worden sind, können somit an den obendargestellten Beschreibungen verschiedene Ersetzungen, Abwandlungen oder Änderungen vorgenommen werden, ohne von dem durch die folgenden Ansprüche definierten erfindungsgemäßen Umfang abzuweichen.
  • Mit Bezug auf die folgenden numerierten Aussagen werden nun weitere und besondere Ausführungsformen beschrieben.
  • 1. Computersystem, das umfaßt:
    eine Zentraleinheit;
    eine Speicherhierarchie mit:
    einem ersten Cache-Speicher, der so betreibbar ist, daß er nicht auf Bildelemente bezogene Informationen speichert, wobei die Zentraleinheit auf die nicht auf Bildelemente bezogenen Informationen für eine Verarbeitung zugreifen kann; und
    einem zweiten Cache-Speicher, der sich in der Speicherhierarchie über dem ersten Cache-Speicher befindet, eine Anzahl Speicherplätze besitzt und so betreibbar ist, daß er sowohl nicht auf Bildelemente bezogene Informationen als auch Bildelementdaten speichert; und
    eine Cache-Steuerschaltungsanordnung, die die Anzahl der Speicherplätze dynamisch zuteilt, derart, daß eine erste Gruppe der Speicherplätze der Speicherung von nicht auf Bildelemente bezogenen Informationen vorbehalten ist, und derart, daß eine zweite Gruppe der Speicherplätze der Speicherung von Bildelementdaten vorbehalten ist.
  • 2. Computersystem nach Aussage 1:
    in dem die Bildelementausgabevorrichtung eine FIFO-Vorrichtung enthält, die die Bildelementdaten von dem zweiten Cache-Speicher empfängt; und
    ferner mit:
    einer Digital/Analog-Umsetzungsschaltung, die die Bildelementdaten von digitalen Bildelementdaten in analoge Bildelementdaten umsetzt; und
    einer Anzeigevorrichtung, die einen analogen Eingang besitzt, der die analogen Bildelementdaten empfängt und eine Anzeige in Reaktion auf die analogen Bildelementdaten darstellt.
  • 3. Computersystem nach Aussage 1 oder 2, das ferner eine Anzeigevorrichtung umfaßt, die einen Eingang besitzt, der die Bildelementdaten empfängt und eine Anzeige in Reaktion auf die analogen Bildelementdaten darstellt.
  • 4. Computersystem nach einer der Aussagen 1 bis 3, bei dem die Cache-Steuerschaltungsanordnung einen Übersetzungs-Lookaside-Puffer umfaßt, der mehrere Einträge besitzt, wobei jeder der mehreren Einträge einem der Anzahl von Speicherplätzen entspricht.
  • 5. Computersystem nach Aussage 4, bei dem jeder der Einträge einen Statusindikator umfaßt, der angibt, ob die Informationen, die in dem entsprechenden einen der Anzahl der Speicherplätze gespeichert sind, geschrieben werden können.
  • 6. Computersystem nach Aussage 4 oder 5, bei dem jeder der Einträge einen Statusindikator umfaßt, der angibt, ob die Informationen, die in dem entsprechenden einen der Anzahl der Speicherplätze gespeichert sind, ersetzt werden können.
  • 7. Computersystem nach Aussage 4:
    bei dem jeder der Einträge einen Informationstypindikator umfaßt, der angibt, ob der entsprechende eine der Anzahl von Speicherplätzen Bildelementdaten oder nicht auf Bildelemente bezogene Informationen speichert; wobei
    jeder der Einträge einen Statusindikator umfaßt, der angibt, ob die Informationen, die in dem entsprechenden einen der Anzahl der Speicherplätze gespeichert sind, geschrieben werden können;
    jeder der Einträge einen Statusindikator umfaßt, der angibt, ob die Informationen, die in dem entsprechenden einen der Anzahl der Speicherplätze gespeichert sind, ersetzt werden können;
    jeder der Einträge, der einem der Anzahl der Speicherplätze entspricht, der Bildelementdaten speichert, einen Verknüpfungsindikator enthält, der so betreibbar ist, daß ein erster Verknüpfungsindikator, der einem ersten der Anzahl der Speicherplätze entspricht, die Bildelementdaten speichern, einen zweiten der Anzahl der Speicherplätze, die Bildelemente speichern, spezifizieren kann, wobei die Bildelementdaten des zweiten der Anzahl der Speicherplätze sofort nach der Ausgabe der Bildelementdaten des ersten der Anzahl der Speicherplätze auszugeben sind; und
    jeder der Einträge, der einem der Anzahl der Speicherplätze entspricht, der Bildelementdaten speichert, einen Bildelementgrößeindikator umfaßt, wovon jeder für die Bildelementdaten in dem zweiten Cache-Speicher, die diesem Eintrag entsprechen, eine Anzahl von Bits in den Bildelementdaten, die einem Anzeigebildelement entsprechen, spezifiziert.
  • 8. Computersystem nach einer der Aussagen 1 bis 7, wobei der zweite Cache-Speicher ein direktabgebildeter Speicher ist.
  • 9. Computersystem nach einer der Aussagen 1 bis 8, das ferner umfaßt: einen dritten Cache-Speicher, der in der Speicherhierarchie über dem ersten Cache-Speicher und in der Speicherhierarchie unter dem zweiten Cache-Speicher steht.
  • 10. Computersystem nach Aussage 9, bei dem der dritte Cache-Speicher einen ersten Speicherbereich zum Speichern von Befehlen und einen zweiten Speicherbereich zum Speichern von von Befehlen verschiedenen nicht auf Bildelemente bezogenen Informationen enthält.
  • 11. Computersystem nach Aussage 9 oder 10, das ferner ein Umgehungsregister enthält, das zwischen die Zentraleinheit und den zweiten Cache-Speicher geschaltet ist, wobei die nicht auf Video bezogenen Informationen und die Videodaten aus dem zweiten Cache-Speicher über das Umgehungsregister an die Zentraleinheit übermittelt werden können.
  • 12. Computersystem nach einer der Aussagen 1 bis 11:
    bei dem die Anzahl der Speicherplätze eine ganze Zahl N von Speicherplätzen ist; und
    die Anzahl der Speicherplätze in der ersten Gruppe von Speicherplätzen gleich N minus der Anzahl der Speicherplätze in der zweiten Gruppe von Speicherplätzen ist.
  • 13. Verfahren zum Betreiben eines Computersystems, das umfaßt:
    Betreiben einer Zentraleinheit;
    erstens Speichern von Informationen in einer Speicherhierarchie, das die folgenden Schritte umfaßt:
    Speichern von nicht auf Bildelemente bezogenen Informationen in einem ersten Cache-Speicher, wobei die Zentraleinheit auf die nicht auf Bildelemente bezogenen Informationen für eine Verarbeitung zugreifen kann; und
    Speichern von nicht auf Bildelemente bezogenen Informationen in einer ersten Gruppe von Speicherplätzen in einem zweiten Cache-Speicher, der in der Speicherhierarchie über dem ersten Cache-Speicher steht;
    Speichern von Bildelementdaten in einer zweiten Gruppe von Speicherplätzen in dem zweiten Cache-Speicher; und
    zweitens dynamisches Neu-Zuteilen einer Anzahl von Speicherplätzen in der ersten Gruppe von Speicherplätzen relativ zu einer Anzahl von Speicherplätzen in der zweiten Gruppe von Speicherplätzen; und
    drittens den Schritt, bei dem:
    nicht auf Bildelemente bezogene Informationen in der dynamisch neu zugeteilten ersten Gruppe von Speicherplätzen in dem zweiten Cache-Speicher gespeichert werden;
    Bildelementdaten in der dynamisch neu zugeteilten zweiten Gruppe von Speicherplätzen in dem zweiten Cache-Speicher gespeichert werden.
  • 14. Verfahren nach Aussage 13, bei dem sich die Zentraleinheit, der erste Cache-Speicher und der zweite Cache-Speicher alle in einer einzigen integrierten Schaltung befinden.
  • 15. Verfahren nach Aussage 13:
    bei dem sich die Zentraleinheit und der erste Cache-Speicher in einer ersten integrierten Schaltung befinden; und
    sich der zweite Cache-Speicher in einer zweiten integrierten Schaltung, extern von der ersten integrierten Schaltung, befindet.
  • 16. Verfahren nach einer der Aussagen 13 bis 15:
    das ferner das Betreiben eines Video-Controllers gemäß mehreren Video-Betriebsarten umfaßt, und
    bei dem der Schritt des dynamischen Zuteilens der Anzahl der Speicherplätze die Anzahl der Speicherplätze in Reaktion auf eine momentan ausgewählte der mehreren Videobetriebsarten dynamisch zuteilt.
  • 17. Verfahren nach Aussage 16, bei dem sich die Zentraleinheit, der erste Cache-Speicher, der zweite Cache-Speicher und der Video-Controller alle in einer einzigen integrierten Schaltung befinden.
  • 18. Verfahren nach Aussage 16:
    bei dem sich die Zentraleinheit, der erste Cache-Speicher und der zweite Cache-Speicher alle in einer ersten integrierten Schaltung befinden; und
    bei dem sich der Video-Controller in einer zweiten integrierten Schaltung befindet, die extern von der ersten integrierten Schaltung ist.
  • 19. Verfahren nach einer der Aussagen 16 bis 18, das ferner das Betreiben einer Bildelementausgabevorrichtung umfaßt, die die Bildelementdaten von dem zweiten Cache-Speicher empfängt.
  • 20. Verfahren nach Aussage 19:
    bei dem die Bildelementausgabevorrichtung eine Zuerst-eingeben/Zuerst-ausgeben-Vorrichtung enthält, die die Bildelementdaten aus dem zweiten Cache-Speicher empfängt; und
    das ferner umfaßt:
    das Umsetzen der Bildelementdaten von digitalen Bildelementdaten in analoge Bildelementdaten; und das Anzeigen der analogen Bildelementdaten und das Darstellen einer Anzeige in Reaktion auf die analogen Bildelementdaten.

Claims (14)

  1. Computersystem (8), das umfaßt: eine Zentraleinheit (12), die so konfiguriert ist, daß sie eine Angabe bezüglich einer momentan ausgewählten Videobetriebsart unter mehreren Videobetriebsarten von einer externen Quelle (38) empfängt; eine Speicherhierarchie mit: einem ersten Cache-Speicher (20), der so betreibbar ist, daß er nicht auf Bildelemente bezogene Informationen speichert und Bildelementdaten nicht speichert, wobei die Zentraleinheit (12) auf die nicht auf Bildelemente bezogenen Informationen für eine Verarbeitung zugreifen kann; und einem zweiten Cache-Speicher (26), der sich in der Speicherhierarchie über dem ersten Cache-Speicher (20) befindet, eine Anzahl Speicherplätze besitzt und so betreibbar ist, daß er sowohl nicht auf Bildelemente bezogene Informationen als auch Bildelementdaten speichert; und eine Cache-Steuerschaltungsanordnung (24), die in Reaktion auf die Angabe der Videobetriebsart der Zentraleinheit (12) die Anzahl der Speicherplätze des zweiten Cache-Speichers (26) dynamisch zuteilt, derart, daß eine erste Gruppe der Speicherplätze (26b) der Speicherung von nicht auf Bildelemente bezogenen Informationen vorbehalten ist, und derart, daß eine zweite Gruppe der Speicherplätze (26a) der Speicherung lediglich von Bildelementdaten vorbehalten ist, und einen Übersetzungs-Lookaside-Puffer (24a) enthält, der mehrere Einträge (2) besitzt, wobei jeder der mehreren Einträge einem der Anzahl von Speicherplätzen des zweiten Cache-Speichers (26) entspricht, wobei jeder Eintrag des Übersetzungs-Lookaside-Puffers eine Angabe (INFO TYP 2) darüber enthält, ob die an dem entsprechenden Speicherplatz gespeicherten Daten Bildelementdaten oder nicht auf Bildelemente bezogene Informationen sind.
  2. Computersystem (8) nach Anspruch 1, das ferner umfaßt: eine Bildelement-Ausgabevorrichtung (32), die die Angabe über die momentan ausgewählte Videobetriebsart empfängt und mit dem zweiten Cache-Speicher (26) verbunden ist, um die Bildelementdaten von der zweiten Gruppe von Speicherplätzen des zweiten Cache-Speichers zu empfangen und um einen seriellen Strom von Bildelementdaten, der der momentan ausgewählten Videobetriebsart entspricht, auszugeben.
  3. Computersystem (8) nach Anspruch 2, bei dem: die Bildelementausgabevorrichtung (32) so konfiguriert ist, daß sie ein Voll/Leer-Statussignal (F/E 2) erzeugt, das eine Menge noch nicht ausgegebener Daten angibt; und die Cache-Steuerschaltungsanordnung (24) so konfiguriert ist, daß sie das Voll/Leer-Statussignal empfängt und den zweiten Cache-Speicher (26) bei Empfang eines Leer-Statussignals so steuert, daß er Bildelementdaten an die Bildelementausgabevorrichtung liefert.
  4. Computersystem (8) nach Anspruch 2, das ferner umfaßt: eine Digital/Analog-Umsetzungsschaltung (40), die den seriellen Strom von Bildelementdaten, der von der Bildelementausgabevorrichtung ausgegeben wird, von digitalen Bildelementdaten in analoge Bildelementdaten umsetzt; und eine Anzeigevorrichtung (42), die einen analogen Eingang besitzt, der die analogen Pixeldaten empfängt und eine Anzeige in Reaktion auf die analogen Pixeldaten darstellt.
  5. Computersystem nach Anspruch 2, das ferner umfaßt: einen Video-Controller (38), der mit der Zentraleinheit (12) und mit der Bildelementausgabevorrichtung (32) verbunden und so konfiguriert ist, daß er die Angabe über die momentan ausgewählte Videobetriebsart an die Zentraleinheit (12) und an die Bildelementausgabevorrichtung (32) liefert und die von der Bildelementausgabevorrichtung (32) ausgegebenen Bildelementdaten entsprechend der momentan ausgewählten Videobetriebsart steuert.
  6. Computersystem (8) nach Anspruch 1, bei dem: jeder der Einträge des Übersetzungs-Lookaside-Puffers, der einem der Anzahl von Speicherplätzen entspricht, der Bildelementdaten speichert, einen Verknüpfungsanzeiger (LINK 2) umfaßt, wovon jeder den Tabellen-Lookaside-Puffereintrag der nächsten Anzahl von Speicherplätzen, die nächste Bildelementdaten speichern, angibt.
  7. Computersystem (8) nach Anspruch 1, bei dem: jeder der Einträge des Übersetzungs-Lookaside-Puffers, der einem der Anzahl von Speicherplätzen entspricht, der Bildelementdaten speichert, einen Bildelementgrößen-Anzeiger (PIXEL SIZE 2) umfaßt, wovon jeder für die Bildelementdaten in dem zweiten Cache-Speicher, die jedem Eintrag entsprechen, eine Anzahl von Bits in den Bildelementdaten, die einem Anzeigebildelement entsprechen, spezifiziert.
  8. Verfahren zum Betreiben eines Computersystems (8), das umfaßt: Betreiben einer Zentraleinheit (12), die so konfiguriert ist, daß sie eine Angabe über einem momentan ausgewählte Videobetriebsart unter mehreren Videobetriebsarten von einer externen Quelle (38) empfängt; erstens Speichern von Informationen in einer Speicherhierarchie, das die folgenden Schritte umfaßt: Speichern von nicht auf Bildelemente bezogenen Informationen und von keine Bildelemente betreffenden Daten in einem ersten Cache-Speicher (20), wobei die Zentraleinheit (12) auf die nicht auf Bildelemente bezogenen Informationen für eine Verarbeitung zugreifen kann; und Speichern von nicht auf Bildelemente bezogenen Informationen in einer ersten Gruppe von Speicherplätzen (26a) in einem zweiten Cache-Speicher (26), der in der Speicherhierarchie höher als der erste Cache-Speicher (20) steht; Speichern von Bildelementdaten in einer zweiten Gruppe von Speicherplätzen (26b) in dem zweiten Cache-Speicher (26); und zweitens Verwenden einer Cache-Steuerschaltungsanordnung (24), die auf die Angabe der Videobetriebsart der Zentraleinheit (12) reagiert und einen Übersetzungs-Lookaside-Puffer (24a) mit mehreren Einträgen (2) enthält, wobei jeder der mehreren Einträge einem der Speicherplätze des zweiten Cache-Speichers (26) entspricht, wobei jeder Eintrag des Übersetzungs-Lookaside-Puffers eine Angabe (INFO TYP 2) darüber enthält, ob an dem entsprechenden Speicherplatz gespeicherte Daten Bildelementdaten oder nicht auf Bildelemente bezogene Informationen sind, um eine Anzahl von Speicherplätzen in der ersten Gruppe von Speicherplätzen (26b) relativ zu einer Anzahl von Speicherplätzen in der zweiten Gruppe von Speicherplätzen (26a) dynamisch neu zuzuteilen; und drittens den Schritt, bei dem: nicht auf Bildelemente bezogene Informationen in der dynamisch neu zugeteilten ersten Gruppe von Speicherplätzen (26b) in dem zweiten Cache-Speicher (26) gespeichert werden; Bildelementdaten in der dynamisch neu zugeteilten zweiten Gruppe von Speicherplätzen (26a) in dem zweiten Cache-Speicher (26) gespeichert werden.
  9. Verfahren nach Anspruch 8, das ferner umfaßt: Empfangen der Angabe über die momentan ausgewählte Videobetriebsart bei einer Bildelementausgabevorrichtung (32), Empfangen der Bildelementdaten von der zweiten Gruppe von Speicherplätzen des zweiten Cache-Speichers und Ausgeben eines seriellen Stroms von Bildelementdaten, der der momentan ausgewählten Videobetriebsart entspricht.
  10. Verfahren nach Anspruch 9, das ferner umfaßt: Erzeugen eines Voll/Leer-Statussignals (F/E 2), das eine Menge von noch nicht ausgegebenen Daten angibt, in der Pixelausgabevorrichtung (32); und Empfangen des Voll/Leer-Statussignals in der Cache-Steuerschaltungsanordnung (24) und Steuern des zweiten Cache-Speichers (26), damit er bei Empfang eines Leer-Statussignals Bildelementdaten an die Bildelementausgabevorrichtung liefert.
  11. Verfahren nach Anspruch 9, das ferner umfaßt: Umsetzen des seriellen Stroms von Bildelementdaten, die von der Bildelementausgabevorrichtung ausgegeben werden, von digitalen Bildelementdaten in analoge Bildelementdaten; und Empfangen der analogen Bildelementdaten und Darstellen einer Anzeige in Reaktion auf die analogen Bildelementdaten.
  12. Verfahren nach Anspruch 9, das ferner umfaßt: Liefern der Angabe über die momentan ausgewählte Videobetriebsart von einem mit der Zentraleinheit (12) und mit der Pixelausgabevorrichtung (32) verbundenen Video-Controller (38) zu der Zentraleinheit (12) und zu der Bildelementausgabevorrichtung (32), und Steuern von Bildelementdaten, die von der Bildelementausgabevorrichtung (32) ausgegeben werden, entsprechend der momentan ausgewählten Videobetriebsart.
  13. Verfahren nach Anspruch 8, bei dem: jeder der Einträge des Übersetzungs-Lookaside-Puffers, der einem der Anzahl von Speicherplätzen entspricht, der Bildelementdaten speichert, einen Verknüpfungsanzeiger (LINK 2) umfaßt, wovon jeder den Tabellen-Lookaside-Puffereintrag der nächsten Anzahl von Speicherplätzen, die nächste Bildelementdaten speichern, angibt.
  14. Verfahren nach Anspruch 8, bei dem: jeder der Einträge des Übersetzungs-Lookaside-Puffers, der einem der Anzahl von Speicherplätzen entspricht, der Bildelementdaten speichert, einen Bildelementgrößen-Anzeiger (PIXEL SIZE 2) umfaßt, wovon jeder für die Bildelementdaten in dem zweiten Cache-Speicher, die diesem Eintrag entsprechen, eine Anzahl von Bits in den Bildelementdaten, die einem Anzeigebildelement entsprechen, spezifiziert.
DE69815482T 1997-12-24 1998-12-10 Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren Expired - Lifetime DE69815482T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7144697P 1997-12-24 1997-12-24
US71446P 1997-12-24

Publications (2)

Publication Number Publication Date
DE69815482D1 DE69815482D1 (de) 2003-07-17
DE69815482T2 true DE69815482T2 (de) 2004-04-29

Family

ID=22101380

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69815482T Expired - Lifetime DE69815482T2 (de) 1997-12-24 1998-12-10 Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren

Country Status (4)

Country Link
US (1) US6449692B1 (de)
EP (1) EP0926600B1 (de)
JP (1) JPH11288386A (de)
DE (1) DE69815482T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3690277B2 (ja) * 1998-07-09 2005-08-31 セイコーエプソン株式会社 駆動装置及び液晶装置
US6801207B1 (en) 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US7206344B1 (en) * 2000-01-05 2007-04-17 Genesis Microchip Inc. Method and apparatus for displaying video
US6801208B2 (en) * 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
CN100533403C (zh) * 2004-07-14 2009-08-26 奥普提克斯晶硅有限公司 高速缓冲存储器管理系统和方法
US7589738B2 (en) * 2004-07-14 2009-09-15 Integrated Device Technology, Inc. Cache memory management system and method
WO2006087665A2 (en) * 2005-02-15 2006-08-24 Koninklijke Philips Electronics N.V. Enhancing performance of a memory unit of a data processing device by separating reading and fetching functionalities
US7764289B2 (en) * 2005-04-22 2010-07-27 Apple Inc. Methods and systems for processing objects in memory
US9131004B2 (en) * 2009-04-26 2015-09-08 Jeffrey Alan Carley Method and apparatus for network address resolution
US10599433B2 (en) * 2013-07-15 2020-03-24 Texas Instruments Incorported Cache management operations using streaming engine
US9954533B2 (en) 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US11398453B2 (en) 2018-01-09 2022-07-26 Samsung Electronics Co., Ltd. HBM silicon photonic TSV architecture for lookup computing AI accelerator
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems
US11625332B2 (en) * 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
FR2664719A1 (fr) 1990-07-10 1992-01-17 Philips Electronique Lab Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
US5544306A (en) * 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
US5579473A (en) * 1994-07-18 1996-11-26 Sun Microsystems, Inc. Interface controller for frame buffer random access memory devices
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US6038645A (en) * 1996-08-28 2000-03-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods using a combined writeback queue and victim cache

Also Published As

Publication number Publication date
JPH11288386A (ja) 1999-10-19
EP0926600B1 (de) 2003-06-11
US6449692B1 (en) 2002-09-10
EP0926600A1 (de) 1999-06-30
DE69815482D1 (de) 2003-07-17

Similar Documents

Publication Publication Date Title
DE69815482T2 (de) Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE3688192T2 (de) Seitenorganisierter cachespeicher mit virtueller adressierung.
DE69025302T2 (de) Hochleistungsrasterpuffer- und -cachespeicheranordnung
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3687307T2 (de) Computeranordnungen mit cache-speichern.
DE102013017511B4 (de) Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten
DE69707181T2 (de) Architektur und Verfahren zur gemeinsamen Benutzung von TLB-Einträgen
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE60122155T2 (de) Flashspeicherarchitektur zur implementierung von gleichzeitigen programmierbaren flashspeicherbanken mit host-kompatibilität
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE112006002565T5 (de) Befehlsunterstützte Cache-Verwaltung für den effizienten Einsatz von Cache und Speicher
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE60001170T2 (de) Betriebsystemsseitenplazierung zum maximieren der cachedatenwiederverwendung
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur
DE102018001537A1 (de) System, vorrichtung und verfahren zum selektiven freigeben einer instruktionshandhabung auf lokalitäts-basis
DE112021001345T5 (de) On-demand speicherzuweisung
DE69530720T2 (de) Verzögertes Cachespeicherschreiben eines Speicherungsbefehls
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition