DE69126898T2 - Vorrichtung und Verfahren zum Steuern eines Cache-Speichers - Google Patents
Vorrichtung und Verfahren zum Steuern eines Cache-SpeichersInfo
- Publication number
- DE69126898T2 DE69126898T2 DE69126898T DE69126898T DE69126898T2 DE 69126898 T2 DE69126898 T2 DE 69126898T2 DE 69126898 T DE69126898 T DE 69126898T DE 69126898 T DE69126898 T DE 69126898T DE 69126898 T2 DE69126898 T2 DE 69126898T2
- Authority
- DE
- Germany
- Prior art keywords
- task
- task code
- memory
- tasks
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 128
- 238000000034 method Methods 0.000 title claims description 15
- 238000011010 flushing procedure Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Steuern eines Cache-Speichers. Insbesondere bezieht sich die vorliegende Erfindung auf eine Vorrichtung und ein Verfahren zum Steuern eines Gache-Speichers für virtuelle Adressen, der einen Datenspeicher zum Speichern einer Kopie eines Teils von Daten, die in einem Hauptspeicher gespeichert werden, und einen Kennzeichenspeicher zum Speichern einer virtuellen Adresse der gespeicherten Daten als Kennzeichen enthält.
- Wie man weiß, ist ein Cache-Speicher grob in zwei Systeme unterteilt, von denen eines ein Cache-System für virtuelle Adressen ist, in welchem eine virtuelle Adresse als Kennzeichen gespeichert wird, und von denen das andere ein Cache-System für physikalische Adressen ist, in welchem eine physikalische Adresse oder reale Adresse, die durch Übersetzen einer virtuellen Adresse mittels einer Adressen- Übersetzungseinheit gewonnen wird (die auch als Speicher Managementeinheit: MMU bezeichnet wird), gespeichert wird.
- Ersteres hat den Vorteil, daß es möglich ist, rasch auf einen Cache-Speicher zuzugreifen, da der Zugriff auf den Cache-Speicher bewirkt wird, indem man eine virtuelle Adresse verwendet, die von einem Prozessor unverändert ausgegeben wird, doch hat es den Nachteil, daß es notwendig ist, einen Cache-Speicher bei jeder Zeitabstimmung zu entleeren, wenn eine Aufgabe oder ein Prozess, der durch den Prozessor ausgeführt werden soll, umgeschaltet wird, das heißt, wenn eine Kontext-Umschaltung auftritt.
- Da die Beständigkeit der Information zwischen einem Cache- Speicher und einem Hauptspeicher gesichert wird, ist es andererseits bei letzterem nicht notwendig, den Cache-Speicher bei jeder Zeitabstimmung zu entleeren, wenn eine Kontext-Umschaltung stattfindet; da eine Übersetzung einer virtuellen Adresse in eine physikalische Adresse oder eine reale Adresse erforderlich ist, wird jedoch der Zugriff auf den Cache-Speicher um eine Zeit verzögert, die für eine solche Adressenübersetzung notwendig ist.
- Darüber hinaus ist in der japanischen Patentanmeldungsoffenlegung Nr. 62-144257, die am 27. Juni 1987 offengelegt wurde, ein Cache-Speichersystem offenbart, bei dem ein Cache-Speicher in eine Vielzahl von Blöcken unterteilt ist, von denen jeder ausschließlich durch jeweils eine Vielzahl von Programmen oder Aufgaben verwendet wird oder durch eine Vielzahl von Programmen oder Aufgaben gemeinsam verwendet wird. Bei diesem Stand der Technik wird gelehrt, daß der Zugriff auf einen Hauptspeicher in einer Mehrfach-Programmierumgebung durch eine andere Aufgabe nicht verhindert werden kann; allerdings mangelt es der japanischen Patentanmeldungsoffenlegung Nr. 62-144257 insgesamt an Konkretheit, und daher ist es für den Durchschnittsfachmann nicht offensichtlich, inwieweit der Cache-Speicher gesteuert werden muß.
- Außerdem wird in der japanischen Patentanmeldungsoffenlegung Nr. 62-125449, die am 6. Juni 1987 offengelegt wurde, ein Cache-Speichersystem, bei dem ein Cache-Speicher für jedes Programm (Aufgabe) vorgesehen ist, und ein durch eine Art eines Programms bestimmter Cache-Speicher entleert. Bei diesem Stand der Technik besteht der Vorteil, daß eine Schleifenverarbeitung wirkungsvoll durchgeführt werden kann, da die Daten in einem Cache-Speicher im Hinblick auf ein Programm eines Schleifenprozesses unter Verwendung des Cache-Speichers gehalten werden; allerdings ist es notwendig, Cache-Speicher für alle Programme oder Arten der Programme vorzusehen, und daher ist eine große Kapazität eines Cache-Speichers erforderlich. Außerdem ist bei diesem Stand der Technik eine spezifische Konstruktion zum Bereitstellen eines Cache-Speichers für jede Programmart und eine Maßnahme für einen Fall, bei dem die Anzahl der Programme eine Kapazität des Cache-Speichers überschreitet, für den Durchschnittsfachmann nicht offensichtlich.
- Darüber hinaus wird in der japanischen Patentanmeldungsoffenlegung Nr. 60-79446, die am 7. Mai 1985 offengelegt wurde, eine Mehrfach-Datenverarbeitungsvorrichtung für virtuell gespeicherte Daten offenbart, und die Mehrfach-Datenverarbeitungsvorrichtung ist mit einer Bezeichnungseinrichtung zum Bezeichnen eines Identifizierers ausgestattet, der auf eine Ausführungsumgebung eines Programms hinweist, das gerade ausgeführt wird, und ein Cache-Speicher ist mit einer Tabelle zum Halten logischer Adressen der Daten und Identifizierer ausgestattet, die darstellen, daß die Daten in der jeweiligen Programmausführungsumgebung enthalten sind. Dann wird, nur wenn ein Satz, demzufolge eine logische Adresse, auf die mittels einer Verarbeitungseinheit zugegriffen wird, und ein Identifizierer, der durch die Bezeichnungseinheit bezeichnet wird, miteinander zusammenfallen, in der Tabelle vorhanden ist, bestimmt, daß die Daten, auf die durch die Verarbeitungseinheit zugegriffen wird, in dem Cache-Speicher gespeichert werden. In diesem Stand der Technik ist es notwendig, spezielle Strukturen bereitzustellen, um zu bestimmen, ob die herauszuschiebenden Daten zu irgendeinem der Programme gehören, wenn die Daten in dem Cache-Speicher herausgeschoben werden, und, falls eine solche Struktur nicht vorgesehen ist, ist es daher unmöglich, die in diesem Stand der Technik erwarteten Vorteile zu erzielen.
- Es ist daher eine Hauptaufgabe der vorliegenden Erfindung, eine neuartige Vorrichtung und ein Verfahren zum Steuern eines Cache-Speicher bereitzustellen.
- Eine andere Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung und ein Verfahren zum Steuern eines Cache-Speichers bereitzustellen, bei dem es möglich ist, die Anzahl der Entleerungen eines Cache-Speichers zu verringern, wobei der Vorteil des raschen Zugriffs in einem Cache-Systems für virtuelle Adressen beibehalten wird.
- Eine weitere Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung und ein Verfahren zum Steuern eines Cache- Speichers bereitzustellen, die in der Lage sind, die Verarbeitungseffizienz ohne Erhöhung der Kapazität eines Cache- Speichers zu erhöhen.
- Eine Steuerungsvorrichtung gemäß der vorliegenden Erfindung steuert einen Cache-Speicher, der einen Datenspeicher zum Speichern einer Kopie eines Teils von in einem Hauptspeicher gespeicherten Daten und einen Kennzeichenspeicher zum Speichern eines ersten Teils einer virtuellen Adresse der in dem Datenspeicher als Kennzeichen gespeicherten Daten sowie zum Speichern eines gültigen Bits, das die Gültigkeit der Daten anzeigt, enthält und einen zweiten Teil einer von einem Prozessor ausgegebenen virtuellen Adresse als Adresse davon empfängt, wobei die Steuerungsvorrichtung aufweist: einen Prozessor, der eine Vielzahl von Aufgaben ausführen kann, wobei eine vorbestimmte Anzahl von Aufgabencodes, die jeweils unterschiedlich voneinander sind, einer vorbestimmten Anzahl von Aufgaben zugewiesen werden, die aus der Vielzahl von Aufgaben ausgewählt werden; Aufgabencode-Erzeugungsmittel zum Erzeugen eines Aufgabencodes, der für eine Aufgabe repräsentativ ist, die zur Ausführung durch den Prozessor bestimmt ist; und Anwendungsmittel zum zusätzlichen Anwenden des durch die Aufgabencode-Erzeugungsmittel erzeugten Aufgabencodes auf die Adresse des Cache- Speichers.
- Da ein Aufgabencode, der für eine Aufgabe oder einen Prozess repräsentativ ist, der durch den Prozessor ausgeführt werden soll, zu dem zweiten Abschnitt der virtuellen Adresse durch die Anwendungsmittel addiert wird, wird der Cache-Speicher in eine Vielzahl von Bereichen in Übereinstimmung mit dem Aufgabencode unterteilt, und ein von einem anderen Bereich unterschiedlicher Bereich wird für jeden Prozess oder jede Aufgabe verwendet. Soweit eine Aufgabe oder ein Prozess, für den ein Aufgabencode zugeordnet wird, ausgeführt wird, ist es daher nicht notwendig, den Cache- Speicher zu entleeren. Da die vorliegende Erfindung grundsätzlich ein Cache-System für virtuelle Adressen verwendet, wird außerdem ein Hochgeschwindigkeitszugriff des Cache- Speichers nicht blockiert.
- In einem Ausführungsbeispiel gemäß der vorliegenden Erfindung werden Aufgabencodes, die jeweils aus (m+n) Bits bestehen und sich voneinander unterscheiden, an bis zu 2m+n einzelne Aufgaben zugewiesen (m und n sind jeweils natürliche Zahlen), die von der Vielzahl von Aufgaben ausgewählt werden, die durch den Prozessor ausgeführt werden können, und das Ausführungsbeispiel umfaßt Mittel zum zusätzlichen Speichern eines m-Bit-Teiles des Aufgabencodes, der durch die Aufgabencode-Erzeugungsmittel als die Adresse des Cache-Speichers erzeugt wird, und das Ausführungsbeispiel umfaßt außerdem erste Vergleichsmittel zum Vergleichen des ersten Teils der von dem Prozessor ausgegebenen virtuellen Adresse und des m-Bit-Teils des Aufgabencodes mit einem von dem Kennzeichenspeicher gelesenen Kennzeichen.
- Da in diesem Ausführungsbeispiel der Cache-Speicher in 2n Bereiche unterteilt ist und jeder unterteilte Bereich durch eine Aufgabengruppe verwendet wird, die aus 2m Aufgaben besteht, ist es selbst dann nicht notwendig, den Cache-Speicher zu entleeren, wenn eine Kontext-Umschaltung zwischen zwei willkürlichen Aufgaben, die in den 2m+n Aufgaben enthalten sind, auftritt. Außerdem kann man lediglich einen der oben beschriebenen unterteilten Bereiche entleeren, wenn Notwendigkeit zum Entleeren auftritt, und daher können Cache-Daten der anderen unterteilten Bereiche unverändert effektiv verwendet werden.
- Außderdem umfaßt das oben beschriebene Ausführungsbeispiel weiterhin Ungültigkeitsaufgabencode-Erzeugungsmittel zum Erzeugen eines Ungültigkeitsaufgabencodes aus (m+n) Bits, der für eine Aufgabe repräsentativ ist, für die Daten des Cache-Speichers ungültig sein sollen; und zweite Vergleichsmittel zum Vergleichen eines m-Bit-Teils des Aufgabencodes, der in einem Bereich des Kennzeichenspeichers gespeichert ist, der durch einen n-Bit-Teil des Ungültigkeitsaufgabencodes festgelegt wird, mit einem m-Bit-Teil des Ungültigkeitsaufgabencodes, wodurch Daten des Bereichs des Cache-Speichers, für den die beiden miteinander als Ergebnis des Vergleiches durch die zweiten Vergleichsmittel übereinstimmen, ungültig gemacht werden.
- Da es in einem Fall, bei dem die zweiten Vergleichsmittel verwendet werden, außerdem möglich ist, die Cache-Daten in Verbindung mit nur einer gewünschten Aufgabe innerhalb eines unterteilten Bereichs zu entleeren, ist es möglich, die Cache-Daten weiterhin effektiv zu verwenden.
- Die Aufgaben sowie weitere Aufgaben, Merkmale, Gesichtspunkte und Vorteile der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung der Ausführungsbeispiele der vorliegenden Erfindung anhand der begleitenden Zeichnung.
- Fig. 1 ist ein Blockdiagramm, das ein direkt-abgebildetes Cache-System als ein erfindungsgemäßes Ausführungsbeispiel zeigt.
- Fig. 2 ist eine veranschaulichende Ansicht, die jeweilige Felder einer virtuellen Adresse und deren Inhalt zeigt.
- Fig. 3 ist eine veranschaulichende Ansicht, die eine Tabelle zeigt, die eine Beziehung zwischen einer Aufgaben-ID-Zahl und einem Aufgabencode darstellt.
- Fig. 4 ist eine veranschaulichende Ansicht, die eine Beziehung zwischen einem Cache-Speicher und einem Aufgabencode zeigt.
- Fig. 5 ist ein Flußdiagramm, das ein Beispiel eines Teils eines Betriebssystems (OS) zeigt, das in einem Hauptspeicher in dem Ausführungsbeispiel von Fig. 1 gespeichert ist.
- Fig 6 ist ein Blockdiagramm, das ein direkt-abgebildetes Cache-System als ein weiteres erfindungsgemäßes Ausführungsbeispiel zeigt.
- Fig. 7 ist eine veranschaulichende Ansicht, die eine Tabelle zeigt, die eine Beziehung zwischen einer Aufgaben-ID-Zahl und einem Aufgabencode in dem Ausführungsbeispiel von Fig. 6 darstellt.
- Fig. 8 ist ein Blockdiagramm, das einen Hauptabschnitt eines abgewandelten Beispiels des Ausführungsbeispiels von Fig. 6 zeigt.
- In Fig. 1 steuert eine Steuerungsvorrichtung 10 dieses Ausführungsbeispiels einen Cache-Speicher 12 für virtuelle Adressen, der einen Datenspeicher 14 und einen Kennzeichenspeicher 16 enthält. Eine Mikroprozessoreinheit (MPU) 18 gibt eine virtuelle Adresse VA oder eine physikalische Adresse PA durch einen Adressenbus aus, und die virtuelle Adresse VA wird in einer MMU-(Speichermanagementeinheit) 20 in eine physikalische Adresse übersetzt, woraufhin die physikalische Adresse PA einem Multiplexer (MUX) 22 zusammen mit der von der MPU 18 ausgegebenen physikalischen Adresse PA zugeführt wird. Auf einen Hauptspeicher 24 wird durch die physikalische Adresse zugegriffen, die von dem MUX 22 ausgegeben wird. Außerdem speichert der Datenspeicher 14 des Cache-Speichers 12 eine Kopie eines Teils von Daten, die in dem Hauptspeicher 24 gespeichert sind, und der Kennzeichenspeicher 16 enthält einen Kennzeichenbereich und einen Bit-Gültig-Bereich.
- In dem Hauptspeicher 24 ist ein Betriebssystem (OS) der MPU 18 gespeichert, durch welches ID-(Identifikation)-Zahlen einer Vielzahl von Aufgaben zugewiesen werden. Ein erstes Register 26 ist ein Register, in welchem eine ID-Zahl einer durch die MPU 18 auszuführenden Aufgabe enthalten ist. Da in diesem gezeigten Ausführungsbeispiel die Anzahl der Arten von Aufgaben, denen ID-Zahlen zugewiesen werden, 112561 ist, ist das erste Register 26 durch ein Acht-Bit-Register aufgebaut. Eine Ausgabe des ersten Registers 26 wird in die MMU 20 eingegeben, in welchem eine virtuelle Adresse VA in Übereinstimmung mit einer durch die MPU 18 auszuführenden Aufgabe in eine physikalische Adresse PA übersetzt wird, die dem Hauptspeicher 24 als Adresse hierfür zugeführt wird. Außerdem wird ein Versatz der in Fig. 2 gezeigten virtuellen Adresse VA unverändert einer unteren Adresse des Hauptspeichers 24 zugeführt.
- Außerdem werden in diesem gezeigten Ausführungsbeispiel vier willkürliche Aufgaben von den 256 Aufgabenarten gemäß dem OS ausgewählt, und es werden serielle Aufgabencodes "00", "01", "10" und "11", die voneinander verschieden und Zwei-Bit-Codes sind, den jeweiligen Aufgaben zugewiesen, und die Aufgabencodes werden in dem Hauptspeicher als eine Tabelle 28 gespeichert, wie in Fig. 3 gezeigt. Dann soll eine gegebene Aufgabe durch die MPU 18 ausgeführt werden, wobei der für die Aufgabe repräsentative Aufgabencode in dem zweiten Register 30, welches aus zwei Bits besteht, durch die MPU 18 eingestellt wird.
- Ein Indexfeld der virtuellen Adresse VA, wie in Fig. 2 gezeigt, wird jeweils dem Datenspeicher 14 und dem Kennzeichenspeicher 16 des Cache-Speichers 12 als untere Adressen davon zugeführt, und eine Ausgabe (zwei Bit) des zweiten Registers 30 wird als obere Adressen dorthin gegeben. Außerdem wird ein Kennzeichenfeld der virtuellen Adresse VA, wie in Fig. 2 gezeigt, in dem Kennzeichenspeicher 16 als Kennzeichen gespeichert. Außerdem wird in dem Kennzeichenspeicher 16 ein gültiges Bit, das für die Gültigkeit von in dem Datenspeicher 14 gespeicherten Daten repräsentativ ist, ebenfalls gespeichert, und durch Rücksetzen des gültigen Bits VB werden die dem gültigen Bit entsprechenden Daten herausgeschoben, das heißt, ungültig gemacht.
- Die Bezugsziffern 32, 34 und 36 stehen für Puffer, welche die Verbindung des Buses in Fig. 1 steuern. Dann wird in einem Komparator 40 das Kennzeichenfeld der von der MPU 18 ausgegebenen virtuellen Adresse mit dem von dem Kennzeichenspeicher 16 gelesenen Kennzeichen verglichen. Eine Ausgabe des Komparators 40 wird zusammen mit dem von dem Kennzeichespeicher 16 gelesenen gültigen Bit VB in ein UND-Gatter eingegeben. Das UND-Gatter 42 gibt "1" oder "0" aus, die für einen Zustand, bei dem die Cache-Daten getroffen werden (ein getroffener Zustand), oder einen Zustand, bei dem die Cache-Daten nicht getroffen werden (ein nicht-getroffener Zustand), repräsentativ sind. Eine CLC (Steuerungslogikschaltung) 44 ist eine Schaltung zum Steuern der Puffer 32 bis 36 als Reaktion auf die Ausgabe des UND-Gatters 42 und Steuern einer Rücksetzung des gültigen Bits VB des Kennzeichenspeichers 16 als Reaktion auf eine Entleerunganweisung von der MPU 18. Außerdem wählt ein Multiplexer (MUX) 46 eine durch die CLC 44 erzeugte logische Adresse nur dann aus, wenn das gültige Bit rückgesetzt werden soll, und der zuvor erwähnte MUX 22 wählt die durch die MPU 18 ausgegebene physikalische Adresse PA nur dann aus, wenn ein Überwachungsmodus eingestellt ist.
- Anschließend wird, wie oben beschrieben, das OS einschließlich der Tabelle 28, wie in Fig. 3 gezeigt, in einem spezifischen Bereich des Hauptspeichers 24 als residentes Programm gespeichert, und auf das OS wird durch die physikalische Adresse PA, die von der MPU 18 im Überwachungsmodus ausgegeben wird, direkt zugegriffen.
- Einer Adresse des Cache-Speichers wird ein Aufgabencode von dem zweiten Register 30 zu dem oberen Teil davon zugeführt, und da der Index der virtuellen Adresse VA einem unteren Teil davon zugeführt wird, werden der Datenspeicher 14 und der Kennzeichenspeicher 16 jeweils in vier Bereiche 14a bis 14d und 16a bis 16d als Reaktion auf die zwei Bits des Aufgabencodes unterteilt, wie in Fig. 4 gezeigt. In jedem unterteilten Bereich werden Daten sowie ein Kennzeichen in der durch den Index adressierten Eingabe gespeichert, und die Daten sowie das Kennzeichen werden von der Eingabe gelesen.
- Wenn in einem Fall, bei dem Aufgabencodes den ID-Zahlen der jeweiligen Aufgaben zugewiesen werden, wie in Fig. 3 gezeigt, die MPU 18 eine Aufgabe ausführen will, deren ID- Zahl z. B. "50" ist, setzt im Betrieb z. B. die MPU 18 die ID-Zahl "50" in das erste Register 26, wobei der Aufgabencode "01" in der Tabelle 28 zugewiesen wird, um der ID-Zahl "50" in dem zweiten Register 30 zu entsprechen.
- Dann wird die virtuelle Adresse VA ausgegeben, die durch den Index des unterteilten Bereichs 14b adressierten Daten werden in der MPU 18 von dem Datenspeicher 16 durch den Puffer 34 geholt, und das durch den Index des unterteilten Bereichs 16b adressierte Kennzeichen wird von dem Kennzeichenspeicher 16 gelesen. Das Kennzeichen wird mit dem Kennzeichenfeld der von der MPU 18 in dem Komparator 40 ausgegebenen virtuellen Adresse VA verglichen.
- Wenn beide Kennzeichen miteinander in dem Komparator 40 übereinstimmen und das Gültig-Bit davon gültig, das heißt "1" ist, sind die Cache-Daten getroffen, und daher bestimmt die MPU 18, daß die von dem Datenspeicher 14 geholten Daten korrekt sind, und verwendet diese als Reaktion auf die Ausgabe "1" des UND-Gatters 42. Wenn eine Nichtübereinstimmung in dem Komparator 40 erfaßt wird, das heißt, wenn die Cache-Daten nicht getroffen sind, werden als Reaktion auf die Aufgabe "0" des UND-Gatters 42 die der virtuellen Adresse entsprechenden Daten in der MPU 18 von dem Hauptspeicher 24 durch den Puffer 32 auf der Grundlage der physikalischen Adresse PA geholt, die durch die MMU 20 ersetzt wird. Außerdem werden die Daten und das Kennzeichenfeld der hierzu entsprechenden virtuellen Adresse jeweils in den Eintritten gespeichert, die durch den Index der unterteilten Bereiche 14b und 16b in dem Datenspeicher 14 und dem Kennzeichenspeicher 16 adressiert werden. Wenn zu diesem Zeitpunkt das Gültig-Bit der gespeicherten Daten rückgesetzt ist, wird dieses gesetzt.
- Somit wird der Cache-Speicher 12 durch vier Aufgaben verwendet, deren ID-Zahlen "1", "50", "100" und "125"" sind. Daher ist es, selbst wenn eine Kontext-Umschaltung zwischen zwei willkürlichen Aufgaben dieser vier Aufgaben auftritt, nicht notwendig, die Cache-Daten herauszuschieben.
- Insbesondere, wie in Fig. 5 gezeigt, tritt eine Kontext-Umschaltung auf, das OS sucht ab, ob eine durch die MPU 18 als nächste auszuführende Aufgabe in der Tabelle 28 zugewiesen ist oder nicht, und, falls die Aufgabe in der Tabelle 28 enthalten ist, wird die ID-Zahl der Aufgabe in dem ersten Register 26 gesetzt, und der hierzu entsprechende Aufgabencode wird in dem zweiten Register 30 in Übereinstimmung mit dem OS gesetzt, ohne den Cache-Speicher zu entleeren.
- Wenn eine Aufgabe, die innerhalb der Tabelle 28 nicht zugewiesen wird, als eine solche Aufgabe eine ID-Zahl von z. B. "70" ausgeführt werden soll, wird außerdem jeder Bereich (z. B. die unterteilten Bereiche 14a und 16a) der zuvor erwähnten unterteilten Bereiche 14a bis 14b und 16a bis 16d des Cache-Speichers 12 insgesamt entleert. Insbesondere wird ein Aufgabencode, der einem zu entleerenden Bereich entspricht (Ungültigkeitsaufgabencode) in dem zweiten Register 30 gesetzt, und der CLC 44 wird eine Entleerungsanweisung von der MPU 18 zugeführt. Daraufhin gibt die CLC 44 sequentiell logische Adressen aus, die einen gesamten Bereich des unterteilten Bereichs abdecken können, und gibt Rücksetzsignale aus, um alle gültigen Bits des unterteilten Bereichs mittels Hardware rückzusetzen und zu entleeren.
- Daraufhin wird nach dem Entleeren eines unterteilten Bereichs ein Aufgabencode von z. B. "00", der dem unterteilten Bereich entspricht, einer Aufgaben-ID-Zahl ("70" in dem obigen Beispiel) der Aufgabe zugewiesen, die erneut ausgeführt werden soll, um den Inhalt der Tabelle 28 zu ändern. Daraufhin werden, ähnlich wie in dem vorherigen Fall, die Aufgaben-ID-Zahl und der Aufgabencode jeweils in dem ersten Register 26 und dem zweiten Register 30 gesetzt.
- Fig. 6 ist ein Blockdiagramm, das ein weiteres Ausführungsbeispiel gemäß der vorliegenden Erfindung zeigt, und dieses gezeigte Ausführungsbeispiel ist ähnlich zu dem Ausführungsbeispiel von Fig. 1 mit Ausnahme der folgenden Punkte. Deshalb wird hier eine doppelte Beschreibung weggelassen.
- In dem Ausführungsbeispiel von Fig. 6 ist ein zweites Register 30' durch ein 6-Bit-Register aufgebaut, und es werden untere n Bits einer Ausgabe des zweiten Registers 30' der Adresse des Cache-Speichers 12 zugeführt, und obere m Bits des zweiten Registers 30' werden dem Kennzeichenspeicher 16 und einem Eingang eines Komparators 40' zugeführt. Dann wird in dem Kennzeichenspeicher 16 das Kennzeichenfeld der virtuellen Adresse als untere Bits eines Kennzeichens gespeichert, und die oberen m Bits werden als obere Bits des Kennzeichens gespeichert. In dem Ausführungsbeispiel von Fig. 1 vergleicht der Komparator 40 das Kennzeichenfeld der virtuellen Adresse und das von dem Kennzeichenspeicher 16 gelesene Kennzeichen; in dem Komparator 40' werden jedoch das Kennzeichen der virtuellen Adresse und die oberen m Bits der Ausgabe des zweiten Registers 30' mit dem von dem Kennzeichenspeicher 16 gelesenen Kennzeichen verglichen. Außderdem ist ein Speicher 38 zwischen der Ausgabe des zweiten Registers 30' und dem Kennzeichenspeicher 16 eingefügt.
- Insbesondere wird in diesem gezeigten Ausführungsbeispiel anstelle der Tabelle 28, wie in Fig. 3 gezeigt, eine Tabelle 28', wie in Fig. 7 gezeigt, verwendet. In der Tabelle 28' sind ID-Zahlen von 2m+n Aufgaben, die von einer Vielzahl von Aufgaben ausgewählt werden, die durch die MPU 18 ausgeführt werden können, enthalten, und serielle Aufgabencodes, von denen jeder aus (m+n) Bits besteht und die sich voneinander unterscheiden, werden bezüglich jeder der Aufgaben-ID-Zahlen gesetzt. In einem in Fig. 7 gezeigten Fall werden z. B 64 (= 2&sup4;&spplus;²) Aufgaben aus 256 Aufgaben ausgewählt, die durch die MPU 18 ausgeführt werden können, und es werden jeweilige entsprechende Aufgabencodes "000000", "000001",..., "111111" den jeweiligen Aufgaben-ID-Zahlen zugewiesen. Daher ist in diesem Fall, wie oben beschrieben, das in Fig. 6 gezeigte zweite Register 30' als ein 6-Bit- Register aufgebaut.
- In diesem Ausführungsbeispiel werden einer Adresse des Cache-Speichers 12 untere n Bits (2 Bits in dem Ausführungsbeispiel) des Aufgabencodes von dem zweiten Register 30' zu einem oberen Teil davon zugeführt, und da der Index der virtuellen Adresse VA ähnlich wie bei dem Ausführungsbeispiel von Fig. 1 in einem unteren Teil davon zugeführt wird, werden der Datenspeicher 14 und der Kennzeichenspeicher 16 jeweils in vier Bereiche 14a bis 14d und 16a bis 16d, wie in Fig. 4 gezeigt, in Übereinstimmung mit dem unteren n-Bit-Teil des Aufgabencodes unterteilt. In jedem unterteilten Bereich werden die Daten und das Kennzeichen in der durch den Index adressierten Eingabe gespeichert, und die Daten sowie das Kennzeichen werden von der Eingabe gelesen.
- Da, wie oben beschrieben, das zweite Register 30' ein 6- Bit-Register ist, und der Rest (mit Ausnahme von zwei Bits, die als die Adresse des Cache-Speichers 12 verwendet werden) vier Bits sind, können in jedem unterteilten Bereich 14a bis 14d und 16a bis 16d die Cache-Daten für eine Aufgabengruppe, welche 16 (= 2&sup4;) Aufgaben enthält, gespeichert werden. Um dann die Cache-Daten entsprechend der Aufgabe zu identifizieren, wird ein oberer m-Bit-Abschnitt (4 Bits in diesem Ausführungsbeispiel) des Aufgabencodes verwendet.
- Wenn in einem Fall, bei dem Aufgabencodes den jeweiligen Aufgaben-ID-Zahlen zugewiesen werden, wie in Fig. 7 gezeigt, die MPU 18 beabsichtigt, eine Aufgabe der ID-Zahl "41" durchzuführen, setzt die MPU 18 die ID-Zahl "41" in dem ersten Register 26 und den Aufgabencode "010001" entsprechend der ID-Zahl in dem zweiten Register 30'.
- Wenn dann die virtuelle Adresse VA ausgegeben wird, werden durch den Index adressierte Daten von dem unterteilten Bereich 14b in der MPU 18 durch den Puffer 34 geholt, und von dem Kennzeichenspeicher 16 wird ein durch den Index des unterteilten Bereichs 16b adressiertes Kennzeichen gelesen. Das Kennzeichen wird mit den oberen m Bits (4 Bits) des zweiten Registers 30' und dem Kennzeichenfeld der virtuellen Adresse VA, die von der MPU 18 in dem Komparator 40' ausgegeben wird, verglichen.
- Wenn beide Kennzeichen miteinander in dem Komparator 40' übereinstimmen und das Gültig-Bit davon gültig, das heißt, "1" ist, sind die Cache-Daten getroffen, und als Reaktion auf "1" von dem UND-Gatter 42 bestimmt die MPU 18 die von dem Datenspeicher 14 geholten Daten als korrekt und verwendet sie. Wenn die Nicht-Übereinstimmung in dem Komparator 40' erfaßt wird, das heißt, wenn die Cache-Daten nicht getroffen werden, werden als Reaktion auf "0" von dem UND- Gatter 42 Daten entsprechend der virtuellen Adresse von dem Hauptspeicher 24 in der MPU 18 durch den Puffer 32 auf der Grundlage der physikalischen Adresse PA gelesen, die durch die MMU 20 übersetzt wird. Außerdem werden die Daten und die oberen m Bits (4 Bits) des zweiten Registers 30' und das Kennzeichenfeld der virtuellen Adresse entsprechend den Daten in einer Eingabe gespeichert, die durch den Index der unterteilten Bereiche 14b und 16b in dem Datenspeicher 14 und dem Kennzeichenspeicher 16 jeweils adressiert wird. Wenn zu diesem Zeitpunkt das gültige Bit der gerade gespeicherten Daten rückgesetzt wird, wird dieses gesetzt.
- Somit wird der Cache-Speicher 12 in 2n Bereiche (vier in diesem gezeigten Ausführungsbeispiel) unterteilt, und jeder unterteilte Bereich wird durch jede von vier Aufgabengruppen verwendet, die jeweils maximal 16 Aufgaben enthalten. Was ein Kontext-Umschalten zwischen zwei willkürlichen Aufgaben innerhalb der 2m+n Aufgaben betrifft, (64 in diesem gezeigten Ausführungsbeispiel), die in diesen vier Aufgabengruppen enthalten sind, ist es daher nicht notwendig, die Cache-Daten herauszuschieben. Außerdem ist eine Steuerung durch das OS genau dieselbe wie die von Fig. 5.
- Desweiteren wird in diesem Ausführungsbeispiel, ähnlich wie in dem Ausführungsbeispiel von Fig. 1, ein unterteilter Bereich insgesamt entleert; wenn jedoch ein zweiter Komparator 46 und eine CLC 44A, wie in Fig. 8 gezeigt, anstelle der in Fig. 6 gezeigten CLC 44 verwendet werden, ist es möglich, nur die Cache-Daten in Verbindung mit einer Aufgabe innerhalb eines unterteilten Bereichs herauszuschieben.
- Insbesondere vergleicht in dem Ausführungsbeispiel von Fig. 8 der zweite Komparator 46 die oberen m Bits des zweiten Registers 30' und die oberen m Bits des Kennzeichens des Kennzeichenspeichers 16. Außerdem hat die CLC 44A dieselbe Funktion wie die CLC 44 (Fig. 6) mit der Ausnahme, daß die CLC 44A ein Rücksetzsignal als Reaktion auf ein Übereinstimmungssignal von dem zweiten Komparator 46' erzeugt, weshalb zum Herausschieben der Cache-Daten in Übereinstimmung mit einer gegebenen Aufgabe die CLC 44A den Aufgabencode der Aufgabe in dem zweiten Register 30' setzt. Obwohl in Fig. 8 alle Eingaben innerhalb des unterteilten Bereichs, der durch die unteren zwei Bits (n Bits) des zweiten Registers 30' in dem Kennzeichenspeicher 16 bezeichnet ist, durch die logischen Adressen sequentiell adressiert werden, wird nur ein Gültig-Bit der Eingabe, für welche der Vier-Bit-(m-Bit)-Abschnitt des Aufgabencodes mit dem Kennzeichen übereinstimmt, rückgesetzt. Daher werden nur die Cache-Daten im Zusammenhang mit der Aufgabe, deren Aufgabencode in dem zweiten Register 30' gesetzt wird, herausgeschoben. Daher ist es möglich, die Cache-Daten in Verbindung mit anderen Aufgaben effektiv zu nutzen.
- In dem oben genannten wird außerdem ein Ausführungsbeispiel, welches das erste Register 26 und das zweite Register 30 (oder 30') hat, bei dem die ID-Zahl der auszuführenden Aufgabe und der Aufgabencode getrennt gesetzt werden, beschrieben; allerdings ist es durch Verwenden einer vorbestimmten Anzahl von Bits des ersten Registers 26 als Aufgabencode möglich, das zweite Register 30 oder 30' wegzulassen. Im Falle des Ausführungsbeispiels von Fig. 1 können die unteren zwei Bits des ersten Registers 26 zum Setzen eines Aufgabencodes verwendet werden; allerdings muß jede der Aufgaben, deren untere zwei Bits der Aufgaben- Identifikationszahlen "00" wird, wie z. B. "0", "4", "8", ..., "252", dem Aufgabencode "00" zugewiesen werden. Ähnlich ist es notwendig, eine Aufgabe, deren untere zwei Bits der Aufgaben-ID-Zahl "01", "10" oder "11" wird, dem Aufgabencode "01", "10" oder "11" zuzuweisen. Im Falle des Ausführungsbeispiels von Fig. 6 wird eine Ausgabe der unteren 6 Bits des ersten Registers 26 anstelle der Ausgabe des zweiten Registers 30 oder 30' verwendet; allerdings muß jede der Aufgaben, deren untere 6 Bits der Aufgaben-ID-Zahlen "000000" werden, wie z. B. "0", "64", "128", "192", z. B. dem Aufgabencode "000000" zugewiesen werden. Trotz der Einschränkung, daß eine willkürliche Aufgaben-ID- Zahl einem Aufgabencode nicht zugewiesen werden kann, wird somit ein Schaltungsaufbau einfach.
- Desweiteren erübrigt es sich zu sagen, daß die vorliegende Erfindung nicht nur für das oben beschriebene direkt-abgebildete Cache-System, sondern auch als ein assoziatives Cache-System mit einer n-Wege-Gruppe verwendet werden kann.
Claims (15)
1. Steuerungsvorrichtung, die einen Cache-Speicher (12)
steuert, welcher einen Datenspeicher (14) zum Speichern
einer Kopie eines Teiles in einem Hauptspeicher (24)
gespeicherter Daten und einen Kennzeichenspeicher (16) zum
Speichern eines ersten Teiles einer virtuellen Adresse der in
dem Datenspeicher gespeicherten Daten und eines gültigen
Bits, das die Gültigkeit der Daten anzeigt, aufweist und
einen zweiten Teil einer von einem Prozessor ausgegebenen
virtuellen Adresse als Adresse davon empfängt, wobei die
Steuerungsvorrichtung aufweist:
einen Prozessor (18), der eine Vielzahl von Aufgaben
ausführen kann, wobei eine vorbestimmte Anzahl von
Aufgabencodes, die jeweils unterschiedlich voneinander sind, einer
vorbestimmten Anzahl von Aufgaben zugewiesen werden, die
aus der Vielzahl von Aufgaben ausgewählt werden;
Aufgabencode-Erzeugungsmittel zum Erzeugen eines
Aufgabencodes, der für eine Aufgabe repräsentativ ist, die zur
Ausführung durch den Prozessor bestimmt ist; und
Anwendungsmittel zum zusätzlichen Anwenden des durch die
Aufgabencode-Erzeugungsmittel erzeugten Aufgabencodes auf
die Adresse des Cache-Speichers.
2. Steuerungsvorrichtung nach Anspruch 1, bei welcher der
Hauptspeicher eine Tabelle enthält, um Beziehungen zwischen
der vorbestimmten Anzahl von Aufgaben und der vorbestimmten
Anzahl von Aufgabencodes zu halten.
3. Steuerungsvorrichtung nach Anspruch 2, welche
weiterhin Mittel aufweist, um einen durch irgendeinen der
vorbestimmten Aufgabencodes identifizierten Bereich des Cache-
Speichers zu entleeren, wenn ein Aufgabencode, der für eine
durch den Prozessor auszuführende Aufgabe repräsentativ
ist, nicht in der Tabelle enthalten ist.
4. Steurungsvorrichtung nach Anspruch 3, welche weiterhin
Mittel aufweist, um die Beziehung zwischen einem
Aufgabencode und einer Aufgabe innerhalb der Tabelle zu verändern.
5. Steuerungsvorrichtung nach einem der Ansprüche 1 bis
4, bei welcher aus (m+n) Bits bestehende und voneinander
unterschiedliche Aufgabencodes bis zu 2m+n einzelnen
Aufgaben zugewiesen werden, wobei m und n natürliche Zahlen
sind und die Aufgaben aus der Vielzahl von Aufgaben
ausgewählt werden, die durch den Prozessor ausgeführt werden
können, und ein Aufgabencode aus (m+n) Bits von den
Aufgabencode-Erzeugungsmitteln erzeugt wird und die
Anwendungsmittel einen n-Bit-Teil des durch die
Aufgabencode-Erzeugungsmittel erzeugten Aufgabencodes auf die Adresse des
Cache-Speichers anwenden.
6. Steuerungsvorrichtung nach Anspruch 5, welche
weiterhin aufweist:
Mittel zum zusätzlichen Speichern eines m-Bit-Teiles des
durch die Aufgabencode-Erzeugungsmittel erzeugten
Aufgabencodes in dem Kennzeichenspeicher; und
erste Vergleichsmittel zum Vergleichen des ersten Teiles
der von dem Prozessor ausgegebenen virtuellen Adresse und
des m-Bit-Teiles des Aufgabencodes mit einem aus dem
Kennzeichenspeicher ausgelesenen Kennzeichen.
7. Steuerungsvorrichtung nach Anspruch 6, welche
weiterhin aufweist:
Ungültigkeitsaufgabencode-Erzeugungsmittel zum Erzeugen
eines Ungültigkeitsaufgabencodes, der für eine Aufgabe
repräsentativ ist, deren Daten in dem Cache-Speicher ungültig
gemacht werden sollen; und
zweite Vergleichsmittel zum Vergleichen eines m-Bit-Teiles
des Aufgabencodes, der in einem Bereich des
Kennzeichenspeichers gespeichert ist, der durch einen n-Bit-Teil des
Ungültigkeitsaufgabencodes identifiziert wird, mit einem m-
Bit-Teil des Ungültigkeitsaufgabencodes; wobei Daten des
Bereichs des Cache-Speichers, für den die beiden
miteinander als Ergebnis des Vergleiches durch die zweiten
Vergleichsmittel übereinstimmen, ungültig gemacht werden.
8. Steuerungsvorrichtung nach Anspruch 7, bei welcher die
Aufgabencode-Erzeugungsmittel und die
Ungültigkeitsaufgabencode-Erzeugungsmittel ein gemeinsames Register
enthalten.
9. Steuerungsvorrichtung nach einem der Ansprüche 1 bis
8, welche weiterhin ID-Zahl-Einstellmittel aufweist, um
eine Aufgabe-ID-Zahl einzustellen, die für eine durch den
Prozessor auszuführende Aufgabe repräsentativ ist.
10. Steuerungsvorrichtung nach Anspruch 9, bei welcher die
ID-Zahl-Einstellmittel ein erstes Register enthalten.
11. Steuerungsvorrichtung nach Anspruch 9, bei welcher die
Aufgabencode-Erzeugungsmittel ein zweites Register
enthalten.
12. Steuerungsvorrichtung nach Anspruch 9, bei welcher die
ID-Zahl-Einstellmittel und die
Aufgabencode-Erzeugungsmittel ein gemeinsames Register enthalten.
13. Steuerungsverfahren zum Steuern eines Cache-Speichers,
welcher einen Datenspeicher zum Speichern einer Kopie eines
Teiles in einem Hauptspeicher gespeicherter Daten und einen
Kennzeichenspeicher zum Speichern eines ersten Teiles einer
virtuellen Adresse der in dem Datenspeicher gespeicherten
Daten und eines gültigen Bits, das die Gültigkeit der Daten
anzeigt, aufweist und einen zweiten Teil der von einem
Prozessor ausgegebenen virtuellen Adresse empfängt, wobei das
Steuerungsverfahren die folgenden Schritte aufweist:
(a) Zuweisen einer vorbestimmten Anzahl voneinander
unterschiedlicher Aufgabencodes an eine vorbestimmte Anzahl
von Aufgaben, die von einer Vielzahl von Aufgaben
ausgewählt werden, die durch den Prozessor ausgeführt werden
können;
(b) Erzeugen eines Aufgabencodes, der für eine durch den
Prozessor auszuführende Aufgabe repräsentativ ist; und
(c) zusätzliches Anwenden eines im Schritt (b) erzeugten
Aufgabencodes auf die Adresse des Cache-Speichers.
14. Steuerungsverfahren nach Anspruch 13, welches
weiterhin einen Schritt (d) aufweist, um die Zuweisung der
Aufgabencodes zu Aufgaben zu ändern.
15. Steuerungsverfahren nach einem der Ansprüche 13 oder
14, welches die folgenden Schritte aufweist:
(a) Zuweisen einer vorbestimmten Anzahl von
Aufgabencodes, die jeweils aus (m+n) Bits bestehen und sich
voneinander unterscheiden, an bis zu 2m+n einzelne Aufgaben, wobei
m und n natürliche Zahlen sind, wobei die Aufgaben aus
einer Vielzahl von Aufgaben ausgewählt werden, die durch den
Prozessor ausgeführt werden können;
(b) Erzeugen eines Aufgabencodes aus (m+n) Bits, der für
eine durch den Prozessor auszuführende Aufgabe
repräsentativ ist;
(c) zusätzliches Anwenden eines n-Bit-Teiles des im
Schritt (b) erzeugten Aufgabencodes auf eine Adresse des
Cache-Speichers;
(d) zusätzliches Speichern eines m-Bit-Teiles des im
Schritt (b) erzeugten Aufgabencodes als ein Kennzeichen des
Kennzeichenspeichers; und
(e) Vergleichen eines ersten Teiles der durch den
Prozessor ausgegebenen virtuellen Adresse und des m-Bit-Teiles
des Aufgabencodes mit einem aus dem Kennzeichenspeicher
ausgelesenen Kennzeichen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2033054A JPH03235143A (ja) | 1990-02-13 | 1990-02-13 | キャッシュメモリ制御装置 |
JP2033055A JP2846697B2 (ja) | 1990-02-13 | 1990-02-13 | キャッシュメモリ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69126898D1 DE69126898D1 (de) | 1997-09-04 |
DE69126898T2 true DE69126898T2 (de) | 1998-03-05 |
Family
ID=26371689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69126898T Expired - Fee Related DE69126898T2 (de) | 1990-02-13 | 1991-02-13 | Vorrichtung und Verfahren zum Steuern eines Cache-Speichers |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0442474B1 (de) |
DE (1) | DE69126898T2 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
GB2311880A (en) * | 1996-04-03 | 1997-10-08 | Advanced Risc Mach Ltd | Partitioned cache memory |
DE60041444D1 (de) | 2000-08-21 | 2009-03-12 | Texas Instruments Inc | Mikroprozessor |
JP4022040B2 (ja) * | 2000-10-05 | 2007-12-12 | 松下電器産業株式会社 | 半導体デバイス |
KR100985239B1 (ko) * | 2003-02-24 | 2010-10-04 | 엔엑스피 비 브이 | 인스트럭션 캐시 관리 방법, 캐시 메모리, 집적 회로 및저장 매체 |
JP4753549B2 (ja) | 2004-05-31 | 2011-08-24 | パナソニック株式会社 | キャッシュメモリおよびシステム |
WO2006024323A1 (en) * | 2004-08-31 | 2006-03-09 | Freescale Semiconductor Inc. | A virtual address cache and method for sharing data using a unique task identifier |
WO2006027643A1 (en) * | 2004-09-07 | 2006-03-16 | Freescale Semiconductors, Inc | A virtual address cache and method for sharing data stored in a virtual address cache |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4264953A (en) * | 1979-03-30 | 1981-04-28 | Honeywell Inc. | Virtual cache |
GB2210480B (en) * | 1987-10-02 | 1992-01-29 | Sun Microsystems Inc | Flush support |
-
1991
- 1991-02-13 EP EP91102021A patent/EP0442474B1/de not_active Expired - Lifetime
- 1991-02-13 DE DE69126898T patent/DE69126898T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0442474B1 (de) | 1997-07-23 |
EP0442474A2 (de) | 1991-08-21 |
EP0442474A3 (en) | 1992-05-06 |
DE69126898D1 (de) | 1997-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69637294T2 (de) | Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE60003273T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse | |
DE112005003863B3 (de) | Verwalten von Prozessorressourcen während Architekturereignissen | |
DE69707181T2 (de) | Architektur und Verfahren zur gemeinsamen Benutzung von TLB-Einträgen | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE3932675C2 (de) | ||
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE69030945T2 (de) | Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE68928812T2 (de) | Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
DE69032276T2 (de) | Verfahren und Anordnung zur Verbesserung der Datenspeicherungsgeschwindigkeit eines Computersystems | |
DE3151745C2 (de) | ||
DE69323863T2 (de) | Verfahren und Vorrichtung zur Adressübersetzung | |
DE2260353A1 (de) | Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung | |
DE10002120B4 (de) | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung | |
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
DE2807476A1 (de) | Speichereinrichtung mit mehreren virtuellen adressraeumen | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE19526960A1 (de) | Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung | |
DE3833933A1 (de) | Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion | |
DE2948668A1 (de) | Puffereinheit | |
DE69130942T2 (de) | Vorrichtung zur Erhöhung der Leistung eines Adressenübersetzungspuffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |