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