-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf Prozessoren und
Speicher, und insbesondere auf einen Mehrweg-Cachespeicher.
-
Hintergrund
der Erfindung
-
Ein
niedrigerer Stromverbrauch hat zunehmend bei dem Mikroprozessor-
und Mikrocontroller-Design aufgrund der weit verbreiteten Anwendung
von tragbaren und von Hand gehaltenen Anwendungen Wichtigkeit gewonnen.
Ein typisches, eingebettetes Steuersystem umfasst im Allgemeinen eine
zentrale Verarbeitungseinheit (CPU) und eine Vielzahl unterschiedlicher
Typen von Speichern und peripheren Vorrichtungen. Die unterschiedlichen Speichertypen
können
extern zu einer integrierten Schaltung vorgesehen sein, die den
Mikrocontroller trägt,
und/oder auf derselben integrierten Schaltung vorgesehen sein, und
einen Cachespeicher, einen ROM (Lesespeicher) und eine Vielzahl
von SRAM- (statischer Speicher mit direktem Zugriff)-Vorrichtungen
umfassen.
-
Eine
erhebliche Menge an Energie und Zeit ist erforderlich, um auf einen
großen
externen Hauptspeicher zuzugreifen. Daher kann ein kleinerer, schnellerer
und effizienterer Speicher, der gelegentlich als Cache bezeichnet
wird, auf der integrierten Schaltung verwendet werden, um die Anzahl
der Zugriffe auf den Hauptspeicher zu reduzieren. Um die Größe der integrierten
Schaltung so klein wie möglich zu
halten, ist nur soviel Speicher, wie notwendig ist, an Bord an der
integrierten Schaltung vorgesehen.
-
Ein
Cache-TAG wird häufig
verwendet, um die Leistungsfähigkeit
des Cache zu erhöhen.
Der Cache-TAG empfängt
eine TAG-Adresse, die an den Mikroprozessor geliefert wird und bestimmt,
ob die angeforderten Befehle und/oder Daten in dem Cachespeicher
vorhanden sind. Wenn ein angeforderter Befehl nicht in dem Cache
liegt, muss der Mikroprozessor dann den Befehl von dem Hauptspeicher
abrufen. Wenn ein Befehl in den Cache eingeschrieben wird, werden
die eine höhere
Ordnung aufweisenden Bits der Adresse des Befehls in einem TAG-Feld
gespeichert. Der Cache-TAG hat auch einen Vergleicher, der eine
von dem Prozessor erzeugte Adresse mit der TAG-Adresse vergleicht.
Wenn die TAG-Adresse und die von dem Prozessor erzeugte Adresse
gleich sind, tritt ein Cache-"Treffer" auf, und ein Übereinstimmungssignal
wird von dem Cache-TAG geliefert, das anzeigt, dass die angeforderten
Daten in dem Cachespeicher liegen. Wenn die von dem Prozessor erzeugte
Adresse und die TAG-Adresse nicht gleich sind, tritt ein Cache-" Fehltreffer " auf, und das Übereinstimmungssignal
zeigt an, dass die angeforderten Daten nicht in dem Cachespeicher
liegen. Zusätzlich
kann ein gültiges
Bit als ein Teil der TAG-Adresse gesetzt werden, um einen gültigen Treffer
der gespeicherten TAG-Adresse während
eines Vergleichszyklus des Cache zu qualifizieren.
-
Mit
herkömmlichen
Cache-Lösungsansätzen kann
in vielen Anwendungen der Wirkungsgrad des Cache dadurch negativ
beeinflusst werden, dass kollidierende Zugriffserfordernisse zu
vielen Cache- Fehltreffern und Zugriffen auf den externen Speicher führen. Zusätzlich wird
bei Niedrigstromanwendungen ein Hauptgewicht auf das wirkungsvolle
Strommanagement für
die Verarbeitungsressourcen gelegt. Es wäre erwünscht, dass ein Cachespeicher
einen erhöhten
Verarbeitungswirkungsgrad, d.h. höhere Cache-Trefferraten kombiniert
mit einem niedrigeren Stromverbrauch liefert.
-
US-Patent
5,553,262 bezieht sich darauf, Wege-Treffersignale und Wege-Zuordnungssignale für jeden
Weg eines Mehrweg-Cache zu bestimmen und diese Signale dazu zu verwenden,
ein Treffersignal und konsistente Signale zu erzeugen, um sicherzustellen,
dass die Daten mit dem Hauptspeicher konsistent bleiben und dass
Datenkollisionen vermieden werden.
-
US-Patent
5,410,669 offenbart einen Datenprozessor mit einem Cachespeicher,
der als lineare RAM-Bank genutzt werden kann.
-
Folglich
gibt es einen Bedarf für
eine verbesserte Cachevorrichtung und Verfahren.
-
Kurze Beschreibung
der Zeichnungen
-
Während die
Erfindung insbesondere in den beigefügten Ansprüchen dargelegt ist, sind andere Merkmale
der Erfindung durch die folgende detaillierte Beschreibung, genommen
im Zusammenhang mit den beigefügten
Zeichnungen, offenbart, in denen:
-
1 ein
Blockdiagramm eines Ausführungsbeispiels
eines Datenverarbeitungssystems ist;
-
2 ein
Blockdiagramm eines Ausführungsbeispiels
eines Abschnitts des Cache von 1 ist;
-
3 ein
Blockdiagramm eines speziellen Ausführungsbeispiels ist, das den
Cache von 2 spezieller zeigt;
-
4 ein
allgemeines Diagramm ist, das ein spezielles Ausführungsbeispiel
des Registers zur Verwendung im Zusammenhang mit dem Cache von 2 zeigt;
-
5 ein
Flussdiagramm ist, das den Zugriffsvorgang des Cache von 2 unter
Verwendung des Registers von 4 zeigt.
-
Detaillierte Beschreibung
des (der) bevorzugten Ausführungsbeispiels
(Ausführungsbeispiele)
-
Im
Allgemeinen bezieht sich die vorliegende Erfindung auf eine Mehrweg-
Cachevorrichtung und Verfahren der Verwendung des Mehrweg-Cache. Entsprechend
einem ersten Aspekt der vorliegenden Erfindung ist die Vorrichtung
eine Vorrichtung mit einem Mehrweg-Cache. Die Vorrichtung umfasst
ein erstes durch den Benutzer steuerbares Element, das ein vorgegebenes,
erstes Attribut hat, das einem ersten Weg des Mehrweg-Cache entspricht;
ein zweites von dem Benutzer steuerbares Element, das ein vorgegebenes,
zweites Attribut hat, das einem zweiten Weg des Mehrweg-Cache entspricht;
einen Leiter zum Übertragen
eines Zugriffsattributs an den Mehrweg-Cache; eine erste Vergleicherschaltung,
die das Zugriffsattribut mit dem vorgegebenen, ersten Attribut vergleicht,
um ein erstes Vergleichsresultat zu liefern; eine zweite Vergleicherschaltung,
die das Zugriffsattribut mit dem vorgegebenen, zweiten Attribut vergleicht,
um ein zweites Vergleichsresultat zu liefern; eine einem ersten
Weg zugeordnete Steuerschaltung, um den ersten Weg des Mehrweg-Cache basierend auf
dem ersten Vergleichsresultat wahlweise freizugeben; und eine dem
zweiten Weg zugeordnete Steuerschaltung, um den zweiten Weg des Mehrweg-Cache
basierend auf dem zweiten Vergleichsresultat wahlweise freizugeben.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung ist die Vorrichtung eine
integrierte Schaltung. Die integrierte Schaltung umfasst einen Cache
mit einem ersten Weg und einem zweiten Weg; einem ersten Speicherelement,
um ein erstes, gespeichertes Attribut für den ersten Weg des Cache zu
speichern; ein zweites Speicherelement, um ein zweites, gespeichertes
Attribut des zweiten Weges des Cache zu speichern; einen Leiter,
um ein Zugriffsattribut zu übertragen;
und eine Steuerschaltung. Die Steuerschaltung vergleicht das Zugriffsattribut mit
dem ersten, gespeicherten Attribut, um ein erstes Vergleichsresultat
zu liefern, und sie gibt den ersten Weg des Cache basierend auf
dem ersten Vergleichsresultat frei. Die Steuerschaltung vergleicht auch
das Zugriffsattribut mit dem zweiten, gespeicherten Attribut, um
ein zweites Vergleichsresultat zu liefern, und sie gibt den zweiten
Weg des Cache, basierend auf dem zweiten Vergleichsresultat frei.
-
Entsprechend
einem anderen Aspekt der vorliegenden Erfindung ist ein Verfahren
zum Betreiben eines Datenverarbeitungssystems mit einem Mehrweg-Cache
offenbart. Das Verfahren umfasst die Schritte: Einleiten eines Zugriffsvorgangs;
Zugreifen auf den Mehrweg-Cache in Antwort auf den Zugriffsvorgang;
Liefern eines bereitgestellten Zugriffsattributs an den Mehrweg-Cache
als Teil des Zugriffsvorgangs; Vergleichen des bereitgestellten
Zugriffsattributs mit einem ersten, gespeicherten Zugriffsattribut,
das einem ersten Weg des Mehrweg-Cache entspricht, Vergleichen des
bereitgestellten Zugriffsattributs mit einem zweiten gespeicherten Zugriffsattribut,
das einem zweiten Weg des Mehrweg-Cache entspricht; wahlweises Freigeben
des ersten Weges des Mehrweg-Cache basierend darauf, ob das bereitgestellte
Zugriffsattribut zu dem ersten, gespeicherten Zugriffsattribut passt;
und wahlweises Freigeben des zweiten Weges des Mehrweg-Cache, basierend
darauf, ob das bereitgestellte Zugriffsattribut zu dem zweiten,
gespeicherten Zugriffsattribut passt. Es ist zu beachten, dass die
speziellen Begriffe und Ausdrücke,
die verwendet werden, und die speziellen, strukturellen und betriebsmäßigen Details,
die in der detaillierten Beschreibung und den beigefügten Zeichnungen
offenbart sind, nur zum Zwecke der Darstellung dienen und nicht
dazu gedacht sind, den Schutzumfang der Erfindung, wie sie in den
beigefügten
Ansprüchen
beschrieben ist, in irgendeiner Weise zu beschränken.
-
Bezug
nehmend auf 1 ist ein Ausführungsbeispiel
des Verarbeitungssystems 10 gezeigt. Das Verarbeitungssystem 10 umfasst
einen Prozessor 12 und einen externen Speicher 14.
Der Prozessor 12 umfasst eine zentrale Verarbei tungseinheit 16, einen
Cachespeicher 18, eine Bus-Schnittstelle 22 und
andere Module 20. Der Prozessor 12 umfasst auch
einen Bus 24 und einen Bus 26. Der Bus 24 verbindet
die CPU 16, den Cache 18, die Bus-Schnittstelle 22 und
die anderen Module 20. Der Bus 26 koppelt die
Bus-Schnittstelle 22 mit dem Speicher 14. Während eine
spezielle, beispielhafte Ausführungsform
des Datenverarbeitungssystems 10 offenbart worden ist,
ist daran gedacht, dass verschiedene Konfigurationen und alternative
Ausführungsbeispiele
solch eines Verarbeitungssystems umgesetzt werden könnten. Beispielsweise
könnte,
während
der Cache 18 als Teil des Prozessors 12 gezeigt
ist, der Cache alternativ außerhalb
des Prozessors 12 angeordnet sein, beispielsweise in dem
externen Speicher 14.
-
Bezug
nehmend auf 2 ist ein spezielles Ausführungsbeispiel
eines Abschnitts des Cache 18 offenbart. Der Abschnitt
des Cache 18 umfasst ein Register 40, ein TAG-Speicherfeld für mehrfache Wege 42-48,
ein Datenspeicherfeld für
mehrfache Wege 50-56 und eine Cachesteuerschaltung 58.
Die Cachesteuerschaltung 58 umfasst ein Register 80, einen
Vergleicher 60 und eine Zugriffssteuerlogik 82. Das
Register 40 empfängt
einen Adressabschnitt von dem Buss 24 und hat einen TAG-Werteabschnitt 64 und
einen Indexabschnitt 66 und einen Wort-Auswahlabschnitt 68.
Der TAG-Abschnitt 64 umfasst TAG-Wertedaten,
die auf dem Mehrweg-TAG-Feld 42-48 bereitgestellt
sind. Die Daten von dem Indexabschnitt 66 werden sowohl
an das Mehrweg-TAG-Feld 42-48 als auch an das Mehrweg-Datenfeld 50-56 geliefert.
Die Daten von dem Wort-Auswahlabschnitt 68 werden an das
Mehrweg-Datenfeld 50-56 geliefert.
Das Mehrweg-Datenfeld ist mit einem Zweirichtungs-Datenabschnitt
des Busses 24 gekoppelt.
-
Jedes
TAG-Feld, beispielsweise das TAG-Feld (Weg 0) 42 liefert
ein Treffersignal an das entsprechende Datenfeld, beispielsweise
das Datenfeld (Weg 0) 50, basierend auf einem Vergleich
zwischen dem TAG-Wert 64 und den Daten, die in Bezug auf
den Indexwert 66 abgelegt sind. Die Cachesteuerschaltung 58 empfängt Zugriffsattribute 87,
Adress- und Steuerdaten von dem Bus 24. In einem alternativen
Ausführungsbeispiel
können
die Zugriffsattribute 87 lokal erzeugt werden, beispielsweise
von innerhalb des Mehrweg-Cache 18. Der Vergleicher 60 wird verwendet,
um die Zugriffsattribute 87 mit gespeicherten Attributenwerten
von dem Register 80 zu vergleichen, um ein Vergleichsresultat 61 zu
erzeugen, das seinerseits durch die Zugriffssteuerlogik 82 verarbeitet
wird, um Lese-Freigabesignale 86 und Schreib-Freigabesignale 89 für jeden
der Vielzahl der Cachewege zu erzeugen. Obwohl nur ein einziger Vergleicher 60 gezeigt
ist, umfasst der Vergleicher 60 eine Vielzahl einzelner
Vergleicher für
jeden der Vielzahl der Cachewege. In einem speziellen Ausführungsbeispiel
umfassen die Zugriffsattribute Datenklassentypen für die abgerufene
Information, beispielsweise einen Befehlstyp oder einen Datentyp der
in dem Speicher gespeicherten Information. Das Register 80 in
diesem Ausführungsbeispiel
umfasst Steuerbits, die dem Freigeben oder Abschalten für jeden
der Datenklassentypen entsprechen. Grundsätzlich kann das Register 80 mehrere
Steuerbits umfassen, um verschiedene Funktionen als freigegeben oder
abgeschaltet für
jeden der Vielzahl der Cachewege auszuwählen. Ein Beispiel solcher
zusätzlichen Steuerbits
sind Steuerbits, um das Entleeren des Cache auf der Basis pro Weg
wahlweise freizugeben. Zusätzlich
steht die Cachesteu erschaltung mit dem TAG-Feld 42-48 und
dem Datenfeld 50-56 über entsprechende Kommunikationswege 62 und 70 in
Verbindung.
-
Die
Cachesteuerschaltung 58 spricht auf die von dem Datenbus 24 empfangenen
Daten an. Ein von einem Benutzer programmierbares Steuerwort, das
von dem Benutzer ausgewählte
Attributensteuerbits für
eine Vielzahl von Cachewegen enthält, kann beispielsweise von
dem Datenbus 24 empfangen und in dem Register 80 gespeichert
werden. Auf diese Weise kann das Register 80 flexibel und
dynamisch Mehrweg-Cachespeicherressourcen
auf der Basis einer speziellen Anwendung oder von Benutzerbedürfnissen
zuordnen.
-
Bezug
nehmend auf 3 ist ein spezielles Ausführungsbeispiel
eines Abschnittes des ersten TAG-Feldweges, beispielsweise das TAG-Feld
(Weg 0) 42, und ein Abschnitt eines entsprechenden Feldweges
für erste
Daten, beispielsweise das Datenfeld (Weg 0) 50, gezeigt.
Der oben beschriebene Abschnitt umfasst das Register 40,
das den TAG-Abschnitt 64, den Indexabschnitt 66 und
den Wort-Auswahlabschnitt 68 hat. Der TAG-Abschnitt 64 wird
unter Verwendung des Vergleichers 65 mit einem Wert verglichen,
der von dem TAG-Feld (Weg 0) 42 über den Indexabschnitt 66 empfangen
wird, um das Treffersignal 72 zu liefern. Das Datenfeld
(Weg 0) 50 umfasst eine Vielzahl von Datenblöcken und
wird sowohl durch den Indexwert 66 als auch durch den Wort-Auswahlwert 68 adressiert.
Das adressierte Datenelement wird aus dem Datenfeld (Weg 0) 50 über einen
Datenbus ausgegeben, der ein Abschnitt von dem Bus 24 ist.
-
Eine
Weg-Steuerschaltung 92 ist ebenfalls offenbart, die Lese-Freigabesignale 86 und Schreib-Freigabesignale 89 an
ihrem Eingang empfängt
und ein Steuersignal 94 an ihrem Ausgang liefert. Das Steuersignal 94 umfasst
Lese- und Schreib-Steuersignale sowohl für das TAG-Feld (Weg 0) 42 als
auch für
das Datenfeld (Weg 0) 50 und auch andere, zugeordnete Steuersignale
für Funktionen,
die auf der Basis pro Weg durchgeführt oder nicht durchgeführt werden
sollen.
-
Bezug
nehmend auf 4 ist eine spezielle, beispielhafte
Ausführungsform
des Registers 80 in der Cachesteuerschaltung 58 gezeigt.
In dieser Ausführungsform
umfasst das Register 80 eine Vielzahl von Datenfeldern,
wobei jedes Datenfeld eine Vielzahl von Datenbits umfasst. Das Register 80 umfasst ein
Cache-Löschfeld 102,
ein Daten-Cache-Freigabefeld 104 und ein Befehls-Cache-Freigabefeld 106. Jedes
der Felder 102-106 kann eines oder mehrere Steuerbits
umfassen. Die Cache-Steuerbits des Feldes 102 sind jeweils
einem unterschiedlichen Cacheweg zuordnet. Für jeden Cacheweg bestimmt ein spezielles
Cache-Steuerbit in dem Feld 102, ob dieser spezielle Cacheweg
geleert oder freigemacht wird. wenn der spezielle Cacheweg gelöscht ist,
werden alle Daten in dem Datenfeld für diesen Weg ungültig gemacht.
-
Für jeden
Cacheweg bestimmt ein spezielles Cache-Steuerbit in dem Feld 104,
ob dieser spezielle Cacheweg benutzt werden kann, um auf Daten zuzugreifen,
die einen Datenklassentyp haben. Auf ähnliche Weise bestimmt für jeden
Cacheweg ein spezielles Cache-Steuerbit in dem Feld 106,
ob dieser spezielle Cacheweg verwendet werden kann, um auf Daten
zuzugreifen, die einen Befehlsklassentyp haben. Während nur
die Klassentypen für
den Daten- und Befehlstyp offenbart wurden, ist daran gedacht, dass das
obige Verfahren pro Weg und die Struktur auf eine Vielzahl von Datenklassen
anwendbar ist. Beispielsweise können
andere Steuerfelder für
alternative Datenklassentyp-Definitionen verwendet wer den, beispielsweise
für einen
Benutzerklassentyp, einen Supervisor-Klassentyp, einen Stapel-Datenklassentyp
und einen Nicht-Stapel-Datenklassentyp.
-
Bezug
nehmend auf 5 ist ein spezielles Verfahren
zum Betreiben eines Datenverarbeitungssystems 10 mit einem
Mehrweg-Cache gezeigt. Das Verfahren umfasst einen ersten Schritt
(Schritt 202) der Einleitung eines Zugriffs, beispielsweise
eines Speicherzugriffs, wo Adress- und Attributinformationen an
einen Mehrweg-Cache geliefert wird. An dem Schritt 204 wird
die bereitgestellte Attributinformation mit gespeicherten Attributsteuerbits
für jeden
Weg des Mehrweg-Cache verglichen. Diese gespeicherten Attributsteuerbits
können
die Steuerbits sein, die in dem Register 80 gespeichert
sind, wie oben beschrieben wurde. Auf der Basis des obigen Vergleichs
werden Freigabesignale, beispielsweise ein Lese-Freigabe- und Schreib-Freigabe-Signal,
für jeden
Weg des Mehrweg-Cache an dem Schritt 206 bereitgestellt.
Die ausgewählten
Wege des Cache werden auf der Basis der Freigabesignale freigegeben,
während
nicht ausgewählte
Wege abgeschaltet bleiben, Schritt 208.
-
Wenn
auf den Cache zugegriffen wird und wenn ein Cachetreffer auftritt,
Schritt 210, wird der Cachezugriff fortgesetzt, wobei nur
die ausgewählten Cachewege
teilnehmen, Schritt 212. Zusätzlich wird eine Austauschfunktion
verwendet, um zu bestimmen, dass eine Cache-Eingabe in einem nachfolgenden
Austauschvorgang ausgetauscht wird. Die Austauschfunktion wird nur
durch die ausgewählten Wege
des Mehrweg-Cache bewirkt. Im Falle eines Cache-Fehltreffers nehmen
nur die ausgewählten Cachewege
an dem Austauschvorgang teil, Schritt 214. Als spezielles
Beispiel sind nur die ausgewählten
Cachewege zum Austausch existierender Blö cke mit dem Datenblock von
einem externen Speicher entsprechend einem geeigneten Zugriffsvorgang
verfügbar.
Der Zugriffsvorgang ist dann abgeschlossen, Schritt 216.
-
Die
vorstehende Mehrweg-Cachevorrichtung und das Verfahren haben viele
Vorteile. Beispielsweise kann bei gewissen Verarbeitungsanwendungen
der Cache-Wirkungsgrad dadurch erhöht werden, dass eine höhere Zuordnung
zu gewissen Datenklassentypen, die öfter für solch eine Anwendung verwendet
werden, bereitgestellt wird. Beispielsweise wird bei gewissen Anwendungsfällen auf einen
höheren
Prozentsatz von Befehlstypdaten zwecks Verarbeitung zugegriffen,
und sie würden
daher von einer höheren
Cacheausnutzung profitieren. Indem eine wahlweise Zuordnung von
Cacheressourcen auf einer Mehrweg-Basis zugelassen wird, kann diese
bevorzugte Cachezuordnung zugewiesen werden. Zusätzlich ergeben sich, da einzelne
Cachewege für
spezielle Datenklassentypen abgewählt werden können, Stromeinsparungen
aus der Nichtverwendung von zugeordneter, stromverbrauchender Schaltung
für die
nicht ausgewählten
Cachewege. Diese Einsparung an Stromverbrauch kann bei vielen Anwendungen
mit geringem Stromverbrauch besonders nützlich sein, beispielsweise
bei in der Hand gehaltenen Vorrichtungen mit niedrigem Stromverbrauch.
-
Somit
wurde hier eine Ausführungsform
mit wenigstens einer bevorzugten Ausführungsform einer verbesserten
Mehrweg-Cachevorrichtung und eines Verfahrens zum Betreiben eines
Datenverarbeitungssystems beschrieben. Die Erfindung ist bestimmt,
wie in den Ansprüchen
angegeben ist.