DE69529374T2 - Datenprozessor mit Teilassoziativer Einheit - Google Patents
Datenprozessor mit Teilassoziativer EinheitInfo
- Publication number
- DE69529374T2 DE69529374T2 DE69529374T DE69529374T DE69529374T2 DE 69529374 T2 DE69529374 T2 DE 69529374T2 DE 69529374 T DE69529374 T DE 69529374T DE 69529374 T DE69529374 T DE 69529374T DE 69529374 T2 DE69529374 T2 DE 69529374T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- bit
- tlb
- entry
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 244
- 238000013519 translation Methods 0.000 claims description 196
- 239000000872 buffer Substances 0.000 claims description 150
- 238000012545 processing Methods 0.000 claims description 106
- 230000036961 partial effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 107
- 230000008569 process Effects 0.000 description 76
- 238000013500 data storage Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 15
- 230000000694 effects Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 102100026191 Class E basic helix-loop-helix protein 40 Human genes 0.000 description 6
- 101710130550 Class E basic helix-loop-helix protein 40 Proteins 0.000 description 6
- 102100026190 Class E basic helix-loop-helix protein 41 Human genes 0.000 description 6
- 101000765033 Homo sapiens Class E basic helix-loop-helix protein 41 Proteins 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 101100042610 Arabidopsis thaliana SIGB gene Proteins 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 101100294408 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MOT2 gene Proteins 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 101150117326 sigA gene Proteins 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100421503 Arabidopsis thaliana SIGA gene Proteins 0.000 description 1
- 101100042613 Arabidopsis thaliana SIGC gene Proteins 0.000 description 1
- 101100042615 Arabidopsis thaliana SIGD gene Proteins 0.000 description 1
- 101100042617 Arabidopsis thaliana SIGE gene Proteins 0.000 description 1
- 101150016268 BLS1 gene Proteins 0.000 description 1
- 101100335694 Oryza sativa subsp. japonica G1L6 gene Proteins 0.000 description 1
- 241001083492 Trapa Species 0.000 description 1
- PMAYSDOKQDPBDC-UHFFFAOYSA-N [3-hexadecanoyloxy-2-(2-phenylacetyl)oxypropyl] hexadecanoate Chemical compound CCCCCCCCCCCCCCCC(=O)OCC(COC(=O)CCCCCCCCCCCCCCC)OC(=O)CC1=CC=CC=C1 PMAYSDOKQDPBDC-UHFFFAOYSA-N 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001960 triggered effect 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/1054—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 physically 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/24—Accessing extra cells, e.g. dummy cells or redundant cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
- G06F2212/2515—Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
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)
- Storage Device Security (AREA)
Description
- Die Erfindung betrifft einen Datenprozessor mit einem Cachespeicher und einem Adressübersetzungspuffer. Genauer gesagt, betrifft die Erfindung einen Datenprozessor wie einen Mikrocomputer mit Techniken, bei denen übliche Datenübertragungsbefehle auf den Cachespeicher und den Adressübersetzungspuffer zugreifen können und durch den die Datenspeicherkapazität des Cachespeichers über eine minimale virtuelle Speicherseitengröße hinaus vergrößert werden kann.
- Bei Anwendungen, bei denen das Betriebssystem (OS = operating system) eine Speicherverwaltung ausführt, ohne dass sich die Benutzer der tatsächlichen Speicherumgebung bewusst werden, muss der unter dem OS laufende Datenprozessor eine Adressübersetzungsfunktion unterstützen. Die Adressübersetzungsfunktion ist eine Funktion, gemäß der jede durch eine logische Verarbeitungseinheit (CPU) erzeugte logische Adresse beim Realisieren eines virtuellen Speichers in eine physikalische Adresse umgesetzt wird. Es existiert der sogenannte Adressübersetzungs-Verweispuffer (TLB = look-aside buffer), der Übersetzungspaare für logische/physikalische Adressen speichert, wodurch die Adressübersetzungsfunktion mit hoher Geschwindigkeit ausgeführt wird. Herkömmlicherweise ist der TLB gemeinsam mit der CPU in den Datenprozessor eingebaut. Der Adressübersetzungspuffer besteht veranschaulichend aus einem assoziativen Pufferspeicher, der in jüngster Zeit verwendete Übersetzungspaare logischer/physikalischer Adressen speichert. Um die Trefferrate des assoziativen Pufferspeichers zu verbessern, kann ein sogenannter teilassoziativer Speicher mit mehreren Gruppen oder Bänken verwendet werden. Im Fall eines TLB-Fehlschlags im Adressübersetzungspuffer wird dem Puffer ein neuer Eintrag zum verfehlten Zugriff hinzugefügt. Dann wird auf Einträge repräsentierende Gültigkeitsbits Bezug genommen, um zu erkennen, ob der Eintrag in jeder der indizierten Bänke gültig ist. Wenn ein ungültiger Eintrag existiert, wird dieser ersetzt. Wenn die Prüfung der Gültigkeitsbits ergibt, dass alle Einträge gültig sind, werden relevante Einträge entsprechend einer geeigneten Logik wie einer LRU(least recently used = am längsten nicht benutzt)-Logik aktualisiert. Wie skizziert, benötigt der Adressübersetzungspuffer die Ausführung von Schreibzugriffsoperationen zur Eintragsaktualisierung und Lesezugriffsoperationen zur Verifizierung von Gültigkeitsbits zusätzlich zur üblichen Adressübersetzung eines Assoziativspeichers. Jede dieser drei Zugriffsoperationen muss dadurch ausgeführt werden, dass der relevante Eintrag in jeder der Bänke bezeichnet wird.
- Bei einem Speicher großer Kapazität und niedriger Geschwindigkeit, der veranschaulichend aus einem DRAM besteht, ist es erforderlich, die Häufigkeit von Zugriffen auf diesen zu verringern, um die Geschwindigkeit von Datenzugriffsoperationen betreffend denselben zu erhöhen. Dem Erfordernis wird durch eine herkömmliche Technik ausreichend genügt, durch die Daten, für die erwartet wird, dass sie durch diesen Speicher häufig gebraucht werden, in einem Cachespeicher aufbewahrt werden, der ein Speicher kleiner Kapazität und hoher Geschwindigkeit, wie ein SRAM, ist. Auch ein derartiger Cachespeicher kann als assoziativer Pufferspeicher ausgebildet sein, der die in jüngster Zeit verwendeten Daten gepaart mit Adressinformation speichert, die die Datenorte anzeigt. Die Trefferrate des Cachespeichers kann dadurch erhöht werden, dass der Speicher mit mehreren Gruppen oder Bänken als Gruppen- oder teilassoziativer Speicher aufgebaut wird. Im Fall eines Fehlschlags im Cachespeicher wird dem Speicher ein neuer Eintrag betreffend den fehlgeschlagenen Zugriff hinzugefügt. Dabei wird auf Einträge repräsentierende Gültigkeitsbits Bezug genommen, um zu erkennen, ob der Eintrag jeder der indizierten Bänke gültig ist. Wenn die Existenz eines ungültigen Eintrags herausgefunden wird, wird dieser Eintrag ersetzt. Wenn sich alle Einträge als gültig herausstellen, werden geeignete Einträge entsprechend einer vorbestimmten Logik wie einer LRU-Logik aktualisiert. Wie skizziert, erfordert ein assoziativer Cachespeicher ebenfalls das Ausführen von Schreibzugriffsoperationen zur Eintragsaktualisierung sowie Lesezugriffsoperationen zur Verifizierung von Gültigkeitsbits zusätzlich zur üblichen Assoziativoperation. Jede dieser Zugriffsoperationen muss ebenfalls dadurch ausgeführt werden, dass der relevante Eintrag in jeder der Bänke bezeichnet wird.
- Der Cachespeicher kann als Primärspeicher angesehen werden, und der Hauptspeicher als Sekundärspeicher. Bei diesem Aufbau müssen die gemeinsam in den zwei Speichern vorhandenen Daten übereinstimmen. Wenn ein Eintrag im Cachespeicher während eines Schreibzugriffsvorgangs bei einem Treffer aktualisiert wird, wird der Inhalt des Eintrags gemäß einem von zwei Verfahren in den Sekundärspeicher rückgeschrieben: Durchschreibverfahren und Rückschreibverfahren. Zum Durchschreibverfahren gehört es, den Cachespeicher zu aktualisieren, während gleichzeitig die zutreffenden Daten in den Sekundärspeicher geschrieben werden. Beim Rückschreibverfahren wird, nachdem der Cachespeicher während einer Schreibzugriffsoperation aktualisiert wurde, der aktualisierte Speicherinhalt bei einem anschließenden Cachefehlschlag, der bewirkt, dass der Eintrag durch einen neuen Eintrag ersetzt wird, in den externen Speicher rückgeschrieben. Gemäß dem Rückschreibverfahren muss die Adresse des Eintragsziels beim Rückschreiben unter Verwendung von zwei Informationsarten erzeugt werden: physikalische Seitenadressinformation, wie sie im Adress-Tag oder der Adressenmarke enthalten ist, wie als rückzuschreibende Cachezeile bekannt, und logische Adressinformation betreffend den Cachefehlschlag.
- Ein assoziativer Pufferspeicher ist veranschaulichend in der japanischen Veröffentlichung "Ultra High-Speed MOS Devices", veröffentlicht von Baifu-Kan Ltd. am 10. Februar 1086 (S. 287-288) beschrieben.
- Ein anderer assoziativer Pufferspeicher ist im Dokument US- 4,580,240 beschrieben, von dem der Oberbegriff des Anspruchs 1 ausgeht. Dieser Speicher ist teilassoziativ, und er beinhaltet ein Adressfeld und ein Datenfeld, die einander entsprechende Einträge enthalten. Wenn dem Speicher eine Adresse zugeführt wird und aus dem Datenfeld Daten zu lesen sind, wird nach demjenigen Eintrag des Adressfelds gesucht, der Information enthält, die zur Adressinformation in der zugeführten Adresse passt, und es werden die Daten aus dem entsprechenden Eintrag im Datenfeld ausgelesen.
- Der Speicher gemäß dieser bekannten Technik kann zum assoziativen Lesen von Daten aus dem Datenfeld gemäß zwei Modi abhängig von einem Modussteuerbit in der zugeführten Adresse verwendet werden: er kann als Cachespeicher oder als lokaler Speicher verwendet werden.
- Die Einträge des Adressarrays enthalten jeweils ein Gültigkeitsbit, das anzeigt, ob der Eintrag gültig ist oder nicht und ob er durch die zugeführte Adresse adressiert werden kann, um in ihm vorab Information zu speichern.
- Die Operationen zum Ungültigmachen von Einträgen in einem Assoziativspeicher wie einem Adressübersetzungspuffer und einem Cachespeicher sind von Assoziativoperationen verschieden. Wenn die Operationen zur Ungültigkeitsmachung dadurch realisiert werden, dass man sich auf spezielle Befehle stützt, müssen die Typen verwendeter Befehlscodes zwangsweise zunehmen. Eine größere Anzahl von im Gebrauch befindlichen Befehlscodetypen bedeutet eine zunehmende Anzahl von Bits, die speziell für die Befehlscodes vorhanden sind. Dies erfordert eine Vergrößerung des Umfangs der Befehlsdecodierlogik, um die Befehle in der CPU zu decodieren.
- Die Erfinder der vorliegenden Erfindung haben so herausgefunden, dass es erforderlich ist, sich effektiv mit Einschränkungen der Computerarchitektur zu beschäftigen, die nach kürzeren Befehlswörtern verlangt. Dem Erfordernis wäre dann genügt, wie es den Erfindern auffiel, wenn auf den Adressübersetzungspuffer und den Cachespeicher für Schreiboperationen in diese und Leseoperationen aus diesen übliche Datenübertragungsbefehle wie der Befehl MOV verwendet würden.
- Die Erfinder der vorliegenden Erfindung untersuchten auch die Beziehung zwischen der Seitengröße des virtuellen Speichers und der Datenspeicherkapazität pro Bank (d. h. pro Weg oder pro Gruppe) des Cachespeichers. Bei einer Assoziativoperation bestimmt die Datenspeicherkapazität einer einzelnen Bank die Anzahl der Adressbits, die zum Auswählen einer Cachezeile im Cachespeicher und zum Auswählen einer Dateneinheit für den Zugriff aus einem Eintrag der ausgewählten Cachezeile erforderlich sind. Dies bedeutet, dass die restlichen Bits in einem Zugriffsadressensignal, neben den obigen Adressbits, einem Vergleichsvorgang mit Eintrags-Adressmarken unterliegen. Wenn dabei die Datenspeicherkapazität einer einzelnen Bank kleiner als die Seitengröße ist, beinhaltet eine Adressmarke immer eine physikalische Seitenadresse. Umgekehrt muss, wenn die Seitengröße kleiner als die Datenspeicherkapazität einer Bank ist, nicht jede Adressmarke die gesamte physikalische Seitenadresse, angesichts der Assoziativoperation des Cachespeichers, enthalten. In derartigen Fällen muss, beim Rückschreibverfahren, die Adresse des Ziels, in das der durch einen neuen Eintrag zu ersetzende Eintrag geschrieben werden muss, die Information der Adressmarke für den fraglichen Eintrag nutzen. So haben die Erfinder herausgefunden, dass in einem Cachespeicher, bei dem eine Datenspeicherkapazität einer einzelnen Bank, die größer als die minimale Seitengröße ist, unterstützt wird, es beim Versuch, für Rückschreiboperationen zu sorgen, erforderlich ist, dass die Adressmarke jedes Cacheeintrags eine physikalische Seitenadresse enthält, die bei der minimalen Seitengröße anwendbar ist.
- Es ist eine Aufgabe der Erfindung, einen Datenprozessor mit einer Teilassoziativeinheit mit Einträgen zu schaffen, auf die für Schreibvorgänge effizient zugegriffen werden kann.
- Diese Aufgabe ist durch den im Anspruch 1 dargelegte Prozessor gelöst. Die Unteransprüche sind auf bevorzugte Ausführungsformen der Erfindung gerichtet.
- Eine bevorzugte Ausführungsform der Erfindung ist ein Datenprozessor zum Erhalten üblicher Datenübertragungsbefehle, wie des Befehls MOV, für den Zugriff auf Assoziativspeicher (Cachespeicher, Adressübersetzungspuffer) in der Cacheeinheit und der Adressübersetzungseinheit, wodurch Einträge ungültig gemacht werden.
- Eine andere bevorzugte Ausführungsform ist ein Datenprozessor, der für Rückschreiboperationen sorgt, wenn die Datenspeicherkapazität einer einzelnen Bank eines teilassoziativen Cachespeichers größer als die logische Seitengröße ist.
- Andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung und den beigefügten Zeichnungen ersichtlich.
- Hauptgesichtspunkte von Ausführungsformen der Erfindung werden wie folgt skizziert.
- Ein Datenprozessor gemäß einer Erscheinungsform verfügt über eine CPU und eine teilassoziative Adressübersetzungseinheit. Die teilassoziative Adressübersetzungseinheit verfügt über einen als Adressübersetzungspuffer wirkenden Assoziativspeicher und eine Steuerung zum Ausführen assoziativer Datenschreiboperationen. Der Assoziativspeicher enthält Adressübersetzungseinträge, und er befindet sich im durch die CPU verwalteten Adressraum, wodurch auf einen Eintrag zugegriffen werden kann, wenn die anwendbare Adresse im Adressraum bezeichnet wird. Die Steuerung erlaubt Schreibvorgänge von Daten an die bezeichnete Adresse im Adressraum, wenn zwischen der gesuchten Adressinformation im Eintrag unter der bezeichneten Adresse und der entsprechenden Information in den Schreibdaten Übereinstimmung besteht; die Steuerung sperrt das Schreiben von Daten im Fall einer Fehlübereinstimmung.
- Ein Datenprozessor gemäß einer anderen Erscheinungsform verfügt über eine CPU und eine teilassoziative Cacheeinheit. Die teilassoziative Cacheeinheit verfügt über einen als Cachespeicher wirkenden Assoziativspeicher und eine Steuerung zum Ausführen assoziativer Datenschreiboperationen. Der Assoziativspeicher enthält Adressmarken als Einträge und die dazugehörige Information, und er befindet sich im durch die CPU verwalteten Adressraum, wodurch auf einen Eintrag zugegriffen werden kann, wenn die anwendbare Adresse im Adressraum bezeichnet wird. Die Steuerung erlaubt ein Einschreiben von Daten an der bezeichneten Adresse im Adressraum, wenn zwischen der gesuchten Adressinformation im Eintrag an der bezeichneten Adresse und der entsprechenden Information in den Schreibdaten Übereinstimmung besteht; die Steuerung sperrt das Schreiben von Daten im Fall einer Nichtübereinstimmung.
- Unter Berücksichtigung des Einschreiben von Testmusterdaten im Vorrichtungstestmodus in den zugehörigen Assoziativspeicher ist es der Adressübersetzungseinheit oder Cacheeinheit erlaubt, zu bestimmen, ob die teilassoziative Schreiboperation ausgeführt wird oder nicht. Wenn die teilassoziative Schreiboperation nicht ausgewählt wird, erfolgt das Einschreiben von Daten unter der bezeichneten Adresse unabhängig von der Übereinstimmung oder Nichtübereinstimmung zwischen gesuchter Adresseninformation im Eintrag unter der bezeichneten Adresse und der entsprechenden Information in den Schreibdaten. Es kann ein Adressformat verwendet werden, bei dem zum Lokalisieren eines Steuerbits in einem geeigneten Feld der Zugriffsadresse im Assoziativspeicher dasselbe dazu bestimmt wird, zu ermitteln, ob die teilassoziative Datenschreiboperation ausgeführt wird oder nicht.
- Ein Datenprozessor gemäß einer weiteren Erscheinungsform der Erfindung unterstützt virtuelle Speicherung durch Einbau eines teilassoziativen Cachespeichers mit mehreren Bänken. In jeder Bank werden logische Adressen teilindiziert, und physikalische Adressen werden als gesuchte Adressinformation in einer Adressmarke registriert. Der Cachespeicher wird durch ein Rückschreibverfahren zum Einschreiben der Daten des aktualisierten Eintrags in einen Sekundärspeicher gesteuert. Wenn die Datenspeicherkapazität jeder der mehreren Bänke größer als die Seitengröße zur Adressübersetzung ist, werden Rückschreiboperationen immer noch durch die Adressmarke garantiert, die alle Bits der dem fraglichen Eintrag entsprechen physikalischen Seitenadresse enthält. Bei der Suche zum Realisieren einer assoziativen Operation wird ein Teil jeder Adressmarke als gesuchte Adressinformation verwendet. Bei einem Rückschreibvorgang werden alle Bits der Adressmarke dazu verwendet, die physikalische Seitenadresse des Ziels zu bezeichnen, in das die Daten rückzuschreiben sind. Als Beispiel sei, wie es in der Fig. 11 dargestellt ist, angenommen, dass eine der den Cachespeicher bildenden Bänke eine Datenspeicherkapazität von zwei Kilobytes (vier Bytes · 4 · 128) aufweist. In diesem Fall müssen zum Bezeichnen von Einheitsdaten für den Zugriff die unteren elf Bits (Bits 10 - 0) innerhalb einer logischen 32-Bit-Adresse verwendet werden). Die Adresse für eine assoziative Vergleichsoperation besteht aus den Bits 31-11. Wenn die Seitengröße vier Kilobytes beträgt, besteht eine Seitenadresse aus den Bits 31 12. Wenn die Seitengröße 1 Kilobytes beträgt, wird eine Seitenadresse durch die Bits 31-10 bezeichnet. Wenn diese Fälle mit berücksichtigt werden, verfügt die Adressmarke TAG über eine physikalische Seitenadresse PPN (Bits 31-10) für die Seitengröße von 1 Kilobyte. Für einen Rückschreibvorgang wird die modifizierte PPN (Bits 31-10) in unmodifizierter Form als physikalische Seitenzahl verwendet, die das Rückschreibziel repräsentiert.
- Wenn der obige Aufbau realisiert ist, wird das Adressfeld des Cachespeichers CACHE-M auf H'FO****** (H' bedeutet hexadezimal und Stern kann eine beliebige Zahl sein) abgebildet, wobei der Cachespeicher ein Assoziativspeicher in der Cacheeinheit ist; das Datenfeld des Cachespeichers wird auf H'F1****** abgebildet; das Adressfeld des Adressübersetzungspuffers TLB wird auf H'F2****** abgebildet, wobei diese TLB als Assoziativspeicher in der Adressübersetzungseinheit wirkt; und das Datenfeld des TLB wird auf H'F3****** abgebildet, wie es in der Fig. 1 dargestellt ist. Das Adressformat ist so bestimmt, dass der mit Sternen aufgefüllte Teil eine Zeile und eine Bank auswählt. Die Steuerung des Cachespeichers CACHE-M und der Adressübersetzungspuffer TLB verfügen über Logikschaltungen zum Empfangen einer Adresse in diesem Format und zum Auswählen der relevanten Bank und Zeile in entsprechender Weise. Wenn eine Adresse im obigen Format vorliegt, kann eine beliebige Zeile einer beliebigen Bank nach Wunsch für jedes beliebige Adressfeld und Datenfeld sowohl im Cachespeicher CACHE-M als auch im Adressübersetzungspuffer TLB adressiert werden. Dieses Schema ermöglicht es, dass auf den Cachespeicher CACHE-M und den Adressübersetzungspuffer TLB unter Verwendung üblicher Datenübertragungsbefehle, wie des Befehls MOV, der in beinahe jedem Befehlssatz enthalten ist, zugegriffen werden kann. In der Fig. 1 wird auf den Cachespeicher CACHE-M oder den Adressübersetzungspuffer TLB veranschaulichend für eine Leseoperation wie folgt zugegriffen: als Erstes wird die Adressinformation zum Bezeichnen der Zieladresse, von der Daten zu lesen sind, mit dem vorbestimmten Adressformat in ein Register R1 eingespeichert. Dann sorgt das Ausführen eines Datenübertragungsbefehls MOV R1, R0 dafür, dass die relevanten Daten von der Zieladresse im Cachespeicher CACHE-M oder im Adressübersetzungspuffer TLB in ein Register R0 übertragen werden; die Quelladresse, von der die relevanten Daten übertragen werden, ist die im Register R1 gespeicherte Zieladresse. Für eine Schreiboperation wird wie folgt auf den Cachespeicher CACHE-M oder den Adressübersetzungspuffer TLB zugegriffen: als Erstes wird die Adressinformation zum Bezeichnen der Zieladresse, in die Daten zu schreiben sind, mit dem vorbestimmten Adressformat in das Register R1 eingespeichert. Dann sorgt das Ausführen des Datenübertragungsbefehls MOV R0, R1 dafür, dass die relevanten Daten in die durch das Register R1 bezeichnete Adresse im Cachespeicher CACHE-M oder im Adressübersetzungspuffer TLB eingeschrieben werden; die an die Zieladresse zu schreibenden Daten werden aus dem Register R0 abgerufen.
- Zur Unterstützung assoziativer Schreiboperationen ist es erforderlich, dass herausgesuchte Adressinformation geprüft wird, und zwar als Bedingung zum Bestimmen, ob die Schreiboperation zulässig ist oder nicht, was getrennt von der üblichen Bezeichnung der Adresse erfolgt. Dies gewährleistet ein fehlerfreies Ungültigmachen von Einträgen.
- Dadurch dass assoziative Schreiboperationen nicht auswählbar gemacht werden, ist die Basis dafür geschaffen, einen Vorrichtungstest für den Assoziativspeicher auszuführen, wobei es zu diesem gehört, vorbestimmte Logikwertdaten in den Speicher zu schreiben und dann die Daten aus ihm auszulesen, um zu erkennen, ob dieselben Logikwertdaten ausgelesen werden. Zum Beispiel wird in der Fig. 1 die assoziative Schreiboperation ausgewählt, wenn herausgefunden wird, dass ein in einer Adresse enthaltenes Assoziationsbit A den logischen Wert 1 hat; die assoziative Schreiboperation wird nicht ausgewählt, wenn herausgefunden wird, dass das Assoziationsbit A den logischen Wert 0 hat.
- Wenn die Datenspeicherkapazität jeder der einen Cachespeicher bildenden Bänke größer als die Seitengröße ist, wird die Verwendung eines Adressmarkenfelds mit einer Größe ausreichend dafür, alle Bits einer der fraglichen Seitengröße entsprechenden physikalischen Seitenadresse unterzubringen, vorgeschlagen. Das heißt, dass die Information zur physikalischen Adresse über die Anzahl der für eine Adressenvergleichsoperation hinaus erforderlichen Bits im Adressmarkenfeld aufrechterhalten wird. Obwohl es aus dem Gesichtspunkt assoziativer Operationen für den Cachespeicher nicht erforderlich ist, dass die gesamte physikalische Seitenadresse in der Adressmarke enthalten ist, erfüllt das erfindungsgemäße Schema das Erfordernis des Erzeugens einer Eintrags-Schreibzieladresse unter Verwendung der Adressmarkeninformation für den fraglichen Eintrag, wobei die Zieladresse diejenige ist, die beim Rückschreibverfahren durch einen neuen Eintrag zu ersetzen ist. Dieses Merkmal ermöglicht es, sowohl eine Adressenvergleichsoperation als auch eine Rückschreiboperation für indizierte Cacheeinträge angesichts einer erhöhten Datenspeicherkapazität des Cachespeichers und auch angesichts variabler logischer Seitengrößen zu bewerkstelligen.
- Fig. 1 ist eine schematische Ansicht eines Beispiels mit einem Cachespeicher und einem Adressübersetzungspuffer mit Speicherabbildung;
- Fig. 2 ist ein Blockdiagramm eines Mikrocomputers, der als Ausführungsform der Erfindung ausgeführt ist;
- Fig. 3(A) und 3(B) sind Abbildungsdiagramme, die einen typichen Adressraum der Ausführungsform zeigen;
- Fig. 4 ist eine Ansicht von Logikadressenformaten mit variablen Seitengrößen und zugeordneten TLB-Einträgen;
- Fig. 5 ist ein Blockdiagramm einer typischen Adressübersetzungseinheit;
- Fig. 6 ist eine schematische Ansicht eines Adressübersetzungspuffers zum Unterstützen mehrerer Seitengrößen;
- Fig. 7 ist eine Ansicht von Formaten für Adressen und Daten in einem speicherstrukturierten Adressübersetzungspuffer;
- Fig. 8 ist ein Flussdiagramm von Schritten zum Ungültigmachen eines Eintrags;
- Fig. 9 ist eine schematische Ansicht eines typischen Cacheeintrags;
- Fig. 10 ist ein Blockdiagramm einer typischen Cacheeinheit;
- Fig. 11 ist eine schematische Ansicht, die zeigt, wie in einem Cachespeicher eine Cachezeile ausgewählt wird;
- Fig. 12 ist eine Ansicht von Formaten für Adressen und Daten in einem speicherstrukturierten Cachespeicher;
- Fig. 13 ist ein detaillierteres Blockdiagramm des die Erfindung realisierenden Mikrocomputers;
- Fig. 14 ist eine Ansicht eines Statusregisters;
- Fig. 15 ist eine schematische Ansicht, die veranschaulicht, wie das Zugriffsrecht bei einer adressierenden Zugriffsoperation für einen Adressübersetzungspuffer und einen Cachespeicher geprüft wird;
- Fig. 16 ist eine schematische Ansicht, die zeigt, wie ein Adressübersetzungspuffer indiziert wird, wobei ein Teil einer verwendeten logischen Seitenadresse unmodifiziert ist;
- Fig. 17 ist eine schematische Ansicht, die zeigt, wie ein Adressübersetzungspuffer unter Verwendung eines Teils einer logischen Seitenadresse und eines Teils einer Prozessnummer indiziert wird;
- Fig. 18 ist eine schematische Ansicht, die zeigt, wie die Bank für den Austausch eines TLB-Eintrags nach Wunsch auf Softwarebasis bestimmt wird;
- Fig. 19 ist eine Ansicht verschiedener Steuerregister für einen Adressübersetzungspuffer;
- Fig. 20 ist ein Blockdiagramm eines anderen die Erfindung verkörpernden Mikrocomputers, wobei dessen Speicherverwaltungseinheit speziell in Einzelheiten dargestellt ist;
- Fig. 21 ist eine Tabelle, die verschiedene Arten von Zugriffsrechten auflistet, wie sie durch ein Schutzbit PR zum Speicherschutz definiert sind;
- Fig. 22 ist ein Hauptflussdiagramm einer Adressübersetzungssteuerung;
- Fig. 23 ist ein Flussdiagramm einer Steuerung zur Auswahl von Indiziertechniken für einen Adressübersetzungspuffer;
- Fig. 24 ist ein Flussdiagramm zur Steuerung von Adressenvergleichsoperationen zum Vergleichen logischer Adressen mit den dadurch indizierten Marken;
- Fig. 25 ist ein Teilflussdiagramm einer Speicherschutzkontrolle unter Verwendung von Prozessnummern zum Speicherschutz bei einem Aufbau mit einem einzelnen virtuellen Speicher;
- Fig. 26 ist ein Flussdiagramm von Schritten zum Erzeugen von physikalischen Adressen entsprechend der Seitengröße;
- Fig. 27 ist ein Flussdiagramm einer Steuerung, das zeigt, wie die Bank zum Ersetzen eines Eintrags im TLB auf Hardwarebasis bezeichnet wird;
- Fig. 28 ist ein Flussdiagramm typischer Schritte, wie sie von einer TLB-Fehlschlag-Handhabungseinrichtung beim Aktualisieren eines TLB-Eintrags ausgeführt werden, wenn der Ausnahmefall eines TLB-Fehlschlags auftritt;
- Fig. 29 ist ein Flussdiagramm, das die erste Hälfte einer Ausnahmeerkennungsverarbeitung in einem Adressübersetzungspuffer mit einem einzelnen virtuellen Speicher zeigt;
- Fig. 30 ist ein Flussdiagramm, das die zweite Hälfte der Ausnahmeerkennungsverarbeitung im Adressübersetzungspuffer mit einzelnem virtuellem Speicher zeigt;
- Fig. 31 ist eine Tabelle, die alle Unterschiede zwischen einem einzelnen virtuellen Speicher und einem virtuellen Mehrfachspeicher auflistet;
- Fig. 32(A) und 32(B) sind Ansichten zum schematischen veranschaulichen virtueller Einzel- und Mehrfachspeicherung;
- Fig. 33 ist ein Schaltbild einer Logikschaltung zum Kontrollieren des Ergebnisses einer Adressenvergleichsoperation, das sich im Treffersignal für jede Bank in einem Adressübersetzungspuffer widerspiegeln soll; und
- Fig. 34 ist ein Blockdiagramm, das einen teilvergrößerten Teil der Ausführungsform der Fig. 20 zeigt.
- Die Fig. 2 ist ein Blockdiagramm eines Mikrocomputers MPU, der als eine Ausführungsform der Erfindung ausgeführt ist. Der Mikrocomputer MPU wird durch bekannte Herstelltechniken für integrierte Halbleiterschaltungen auf einem einzelnen Halbleitersubstrat, das beispielsweise aus einkristallinem Silicium besteht, hergestellt. Der Mikrocomputer MPU verfügt, wobei jedoch eine Beschränkung hierauf besteht, über eine Struktur mit drei Bussen mit einem Systembus (Bus S), einem Cachebus (Bus C) und einem Peripheriebus (Bus P). Die drei Busse sind jeweils mit Signalleitungen versehen, um Daten-, Adressen- und Steuersignale zu handhaben. Der Systembus (Bus S) ist mit einer zentralen Verarbeitungseinheit CPU, einem Multiplizierer MLT, einer Cacheeinheit CACHE und einer Adressübersetzungseinheit (auch als Speicherverwaltungseinheit oder MMU bezeichnet) verbunden. Die Cacheeinheit CACHE ist mit dem Cachebus (Bus C) verbunden, der seinerseits mit einem Rückschreibpuffer WBBUF und einem Buszustandscontrolle BSC verbunden ist. Der Buszustandscontroller BSC, der über eine I/O-Schaltung EXIF mit einem externen Bus (Bus EX) verbunden ist, steuert die Schnittstelle zwischen dem Cachebus (Bus C) und einem mit dem externen Bus (Bus EX) verbundenen externen Speicher MMRY. Wenn es wegen eines in der Cacheeinheit CACHE auftretenden Cachefehlschlags erforderlich wird, den Cacheeintrag zu ersetzen, nimmt der Rückschreibpuffer WBBUF zeitweilig die in den externen Speicher rückzuschreibenden Daten auf, um dadurch dem Schreibvorgang Vorrang zu geben, gemäß dem die zum fraglichen Cachefehlschlag gehörenden Daten in den Cachespeicher zu schreiben sind. Der Ausgang des Rückschreibpuffers WBBUF ist mit dem Cachebus (Bus C) verbunden. Der Buszustandscontroller BSC steuert Buszugriffsoperationen betreffend ein mit dem Peripheriebus (Bus P) verbundenes Peripheriemodul PMDUL. Ein Taktsignalmodul CMDUL erzeugt ein Taktsignals als Bezugssignal gemäß dem der Mikrocomputer MPU arbeitet.
- Die Fig. 13 ist ein detaillierteres Blockdiagramm des die Erfindung realisierenden Mikrocomputers MPU der Fig. 2. In der Fig. 13 ist das Taktsignalmodul CMDUL weggelassen, der Rückschreibpuffer WBBUF ist in der Cacheeinheit CACHE enthalten und der Buszustandscontroller BSC enthält einen Peripherieadapter PADP. Das Peripheriemodul PMDUL der Fig. 2 ist in der Fig. 13 in Form eines Timers TMU, einer Echtzeituhr RTC, einer seriellen Kommunikationsschnittstelle RCI und eines Auffrischcontrollers REFC realisiert. Die Fig. 13 enthält einen Interruptcontroller INTC und einen Benutzerunterbrechungscontroller UBC, die in der Fig. 13 beide weggelassen sind.
- In der Fig. 13 ist der Systembus (Bus S) mit der zentralen Verarbeitungseinheit CPU, dem Multiplizierer MLT, der Cacheeinheit CACHE, der Speicherverwaltungseinheit MMU und dem Benutzerunterbrechungscontroller UBC verbunden. Der Cachebus (Bus C) ist mit dem Cachespeicher CACHE, der Speicherverwaltungseinheit MMU, dem Befehlsunterbrechungscontroller UBC und dem Buszustandscontroller BSC verbunden. Der mit dem Buszustandscontroller BSC verbundene Peripheriebus (Bus P) ist mit derartigen eingebauten Peripheriemodulen mit dem Timer TMU, der Echtzeituhr RTC, die selbst dann weiterhin als Uhr arbeitet, wenn die Versorgung des Taktsignals an die zentrale Verarbeitungseinheit CPU eingestellt wird, dem Auffrischcontroller REFC und der seriellen Kommunikationsschnittstelle SCI verbunden. Der Buszustandscontroller BSC kann über die I/O-Schaltung EXIF mit dem externen Bus (Bus EX) verbunden sein. Der externe Bus (Bus EX) ist mit dem externen Speicher MMRY und einem Hilfsspeicher DISK verbunden. Der Buszustandscontroller BSC steuert den Start von Buszyklen für die eingebauten Peripheriemodule und für externe Ausrüstung, und er steuert andere busbezogene Operationen.
- Der Interruptcontroller INTC empfängt Interruptanforderungen nicht nur von den eingebauten Peripheriemodulen sondern auch von einem externen Interruptanschluss IRLO-IRL3 mit mehreren Bits. Gemäß dem geltenden Prioritätsniveau nimmt der Interruptcontroller INTC eine Prioritätszuteilung für empfangene Anforderungen vor, und er versorgt die zentrale Verarbeitungseinheit CPU mit einem Interruptsignal SIG1. Gleichzeitig versorgt der Interruptcontroller INTC die Speicherverwaltungseinheit MMU mit einem Signal SIG2, das der Letzteren den Grund für die akzeptierte Interruptanforderung anzeigt. Wenn das Interruptsignal SIG1 vorliegt, versorgt die zentrale Verarbeitungseinheit CPU die Speicherverwaltungseinheit MMU mit einem Signal SIG3, das bestätigt, dass der Interrupt akzeptiert wurde. Daraufhin trägt die Speicherverwaltungseinheit NMU den Grund für den Interrupt in ein Unterregister INTEVT ein. Unter Verwendung des in das Grundregister INTEVT eingetragenen Interruptgrunds verzweigt die zentrale Verarbeitungseinheit CPU zur geeigneten Interrupthandhabung.
- Der die Erfindung realisierende Mikrocomputer MPU unterteilt den logischen Adressraum in als logische Seiten bezeichnete Einheiten, und er unterstützt, in Einheiten dieser Seiten, eine virtuelle Speicherung zum Übersetzen logischer Adressen in physikalische Adressen. Die Speicherverwaltungseinheit MMU beinhaltet einen Adressübersetzungspuffer TLB und einen Adressübersetzungspuffer-Controller TLB-C. Der Adressübersetzungspuffer TLB speichert als TLB-Einträge Nummern logischer Seiten gepaart mit Nummern physikalischer Seiten zur Adressübersetzung. Unter Verwendung des Adressübersetzungspuffers TLB übersetzt der Adressübersetzungspuffer-Controller TLB-C jede durch die zentrale Verarbeitungseinheit CPU ausgegebene logische Adresse in eine physikalische Adresse. Im Falle eines TLB-Fehlschlags wird der der fraglichen logischen Adresse entsprechende TLB-Eintrag durch den Controller TLB-C aus einer Adressübersetzungstabelle (Seitentabelle) im externen Speicher MMRY ausgelesen. Der Adressübersetzungspuffer TLB besteht veranschaulichend aus einem teilassoziativen Vierwege-Cachespeicher. Wenn Ausnahmen, wie ein TLB- Fehlschlag betreffend eine Adressübersetzung, auftreten, trägt der Controller TLB-C den Grund für die fragliche Ausnahme in ein Grundregister EXPEVT ein. Gleichzeitig liefert der Controller TLB-C ein Signal SIG4 an die zentrale Verarbeitungseinheit CPU, das der Letzteren anzeigt, dass in Zusammenhang mit einer Adressübersetzung eine Ausnahme (z. B. ein TLB-Fehlschlag, d. h. ein verfehlender Zugriff) auftrat. Daraufhin kann die zentrale Verarbeitungseinheit CPU auf den in das Grundregister EXPEVT eingetragenen Grund Bezug nehmen, was sie aber nicht tun muss, wenn sie direkt auf die relevante Ausnahmehandhabung verzweigt. Die zentrale Verarbeitungseinheit CPU verwendet 32-Bit-Adressen, um, veranschaulichend, einen logischen Adressraum von 4 Gigabytes zu unterstützen. In der Fig. 13 zeigt der Schaltungsblock der zentralen Verarbeitungseinheit CPU u. a. einen Operationsteil, der durch Universalregister R0 bis R15 und eine Arithmetik-Logik-Einheit ALU repräsentiert ist, eine Gruppe von Steuerregistern einschließlich eines Programmzählers PC, der später beschrieben wird, und einen Steuerteil CTRL, der Befehle abruft und decodiert und Befehlsausführungsprozeduren und verschiedene Operationen steuert. Ein Befehlsdecodierer ID im Steuerteil erzeugt durch Decodieren von durch die zentrale Verarbeitungseinheit CPU abgerufenen Befehlen verschiedene Steuersignale. Wenn die zentrale Verarbeitungseinheit CPU einen Befehl aus dem externen Speicher MMRY abruft und den Befehlsdecodierer ID dazu veranlasst, den abgerufenen Befehl zu decodieren, führt sie eine Datenverarbeitung aus, wie sie durch den fraglichen Befehl vorgeschrieben ist. In der Fig. 13 repräsentiert ein Signal SIG5 gattungsmäßig alle von der zentralen Verarbeitungseinheit CPU an die Speicherverwaltungseinheit MMU gelieferten Signale, und auch ein Signal, das der Letzteren den interen Zustand der CPU anzeigt.
- Die Cacheeinheit CACHE verfügt, worauf jedoch keine Beschränkung besteht, über einen als teilassoziativen Vierwegespeicher arbeitenden Cachespeicher CACHE-M und dessen Controller CACHE-C. Der Cachespeicher CACHE-M wird unter Verwendung eines Teils jeder logischen Adresse indiziert. Das heißt, dass die Marke jedes Eintrags eine physikalische Adresse speichert. Die indizierte Marke wird mit jeder physikalischen Adresse verglichen, deren entsprechende logische Adresse durch den Adressübersetzungspuffer TLB übersetzt wird. Dann erfolgt eine Prüfung, um zu erkennen, ob das Ergebnis der Vergleichsoperation ein Fehlschlag oder ein Treffer ist. Im Fall eines Cachefehlschlags wird der den Fehlschlag betreffende Datenwert oder Befehl aus dem externen Speicher MMRY gelesen. Der so gelesenen Datenwert oder Befehl wird als neuer Cacheeintrag im Cachespeicher CACHE-M aufbewahrt.
- Der Benutzerunterbrechungscontroller UBC ist dazu vorhanden, um die Fehlersuchfunktion der Ausführungsform zu verstärken. Dieser Controller führt eine Prüfung zum Erkennen, ob der Zustand des Systembusses (Bus S) zur fraglichen Unterbrechungsbedingung passt, aus. Im Fall einer Übereinstimmung erzeugt der Benutzerunterbrechungscontroller UBC einen Unterbrechungsinterrupt für die zentrale Verarbeitungseinheit CPU. Der Benutzerunterbrechungscontroller UBC beinhaltet ein Benutzerunterbrechungs-Adressregister IBR, in das die Befehlsadresse oder ein anderer Datenwert als Unterbrechungsbedingung eingetragen wird. Vor dem Start einer Fehlersuche oder einer Emulation führt die zentrale Verarbeitungseinheit CFU die relevante Dienstroutine aus, um in das Befehlsunterbrechungs-Adressregister IBR vorab eine gewünschte Befehlsunterbrechungsbedingung wie die erste Adresse oder die Operandenadresse des Befehls, für den für die Unterbrechung ein Interrupt auszuführen ist, einzutragen. Wenn der interen Zustand des Mikrocomputers MPU mit der Befehlsunterbrechungsbedingung übereinstimmt, tritt eine Befehlsunterbrechungsausnahme auf, die später erörtert wird. Die Unterbrechungspumpsteuerung erfolgt auf diese Weise innerhalb des Mikrocomputers MPU.
- Zusätzlich zu den Universalregistern R0 bis R15 mit jeweils 32 Bits verfügt die zentrale Verarbeitungseinheit CPU über System- und Steuerregister wie den Programmzähler PC, ein Statusregister SR, ein Vektorbasisregister VBR, einen Programmsicherungszähler SPC und ein Statussicherungsregister SSR. Der Programmzähler zeigt auf die Startadresse des aktuellen Befehls. Das Zustandssicherungsregister SSR ist ein Register, in dem der aktuelle Wert des Statusregisters SR zu sichern ist. Der Programmsicherungszähler SPC ist ein Register, in dem die Adresse desjenigen Befehls zu sichern ist, der von der zentralen Verarbeitungseinheit CPU auszuführen ist, nachdem eine Erholung vom Ausnahmezustand aufgetreten ist. Das heißt, dass dann, wenn eine Ausnahme auftritt, der Wert des Programmzählers PC mit geeignetem Timing im Programmsicherungszähler SPC gesichert wird. Das Vektorbasisregister VBR speichert die Basisadresse (Vektortabelle-Basisadresse) eines Vektorbereichs für eine Ausnahmehandhabung.
- Wie es in der Fig. 14 dargestellt ist, verfügt das Statusregister SR über ein einen Übertrag, einen Borgewert oder einen Überlaufwert einer Operation anzeigendes Bit T, ein zur Speicherzugriffskontrolle verwendetes Bit S. ein das Maskierungsniveau für eine Interruptanforderung anzeigendes 4-Bit- Maskierungsfeld IMASK; für Dividieroperationen verwendete Bits M und Q; ein zum Spezifizieren der Universalregister R0 bis R15 für Bankzuweisungen verwendetes Registerbankbit RB; ein Blockbit BL; ein Prozessoroperationsmodul-Bit MD und ein Nullbitfeld. Das Blockbit BL wird dazu verwendet, Ausnahmen im privilegierten Modus zu maskieren. Wenn das Blockbit BL auf 1 gesetzt ist, spezifiziert es, dass Ausnahmen zu maskieren sind; wenn es auf 0 gesetzt ist, spezifiziert es, dass Ausnahmen zu akzeptieren sind. Wenn das Modusbit MD auf 1 gesetzt ist, zeigt es dem privilegierten Modus an; wenn es auf 0 gesetzt ist, zeigt es Benutzermodus an. Das Modusbit MD wird durch Ausführen eines geeigneten Befehls entweder auf 0 oder 1 gesetzt. Im Benutzermodus können die Bits M, Q, S und T unter Verwendung spezieller Befehle jeweils gesetzt oder gelöscht werden. Alle anderen Bits können nur im privilegierten Modus gelesen oder geschrieben werden. Das Schreiben von Daten in die Steuerregister wie das Statusregister MR wird unter Verwendung eines Ladesteuerbefehls LDC aktiviert; das Lesen von Daten aus den Steuerregistern wird unter Verwendung eines Speichersteuerbefehls MTC aktiviert. Die zwei Befehle sind Teil der Systemsteuerbefehle oder privilegierter Befehle.
- Die zentrale Verarbeitungseinheit CPU des die Erfindung verkörpernden Mikrocomputers MPU verwendet 32-Bit-Adressen, so dass die MPU einen logischen Adressraum von vier Gigabytes (GB) unterstützt. Die logischen Adressen können unter Verwendung einer Adressraumkennung (Prozessnummer; asid) erweitert werden. Die Fig. 3(A) und 3(B) sind Speicherbelegungsdiagramme, die den Adressraum der Ausführungsform zeigen. In den Figuren unterliegen die als "speicherstrukturiert" markierten Bereiche einer Adressübersetzung, die den Adressübersetzungspuffer TLB nutzt. Auf den Bereich von H'FFFFFFFF bis H'80000000 kann im privilegierten Modus zugegriffen werden; ein Versuch, im Benutzermodus auf diesen Bereich zuzugreifen, führt zu einem Adressfehler. Der als P4 markierte Bereich ist ein Steuerraum, in den ein peripheres Steuerregister, der Adressübersetzungspuffer TLB und der Cachespeicher CACHE-M speichermäßig abgebildet sind. Bereiche P1 und P2 sind Bereiche, in denen die entsprechenden physikalischen Adressen festliegen und keiner Adressübersetzung unter Verwendung des Adressübersetzungspuffers TLB unterliegen. Die logischen Adressen dieser Bereiche P1 und P2 werden jeweils dadurch in eine physikalische Adresse übersetzt, dass zur zu übersetzenden logischen Adresse eine Konstante addiert oder diese abgezogen wird. So tritt, wenn auf den Bereiche P1 oder P2 im privilegierten Modus zugegriffen wird, kein Ausnahmefall wie ein TLB-Fehlschlag in Zusammenhang mit einer Adressübersetzung auf. Es ist zu beachten, dass der Bereich P2 keinen Cacheoperationen unter Einschluss des Cachespeichers CACHE unterliegt. Andererseits unterliegt der Bereich P1 Cacheoperationen.
- Der logische Adressraum ist in als logische Seiten bezeichnete Einheiten unterteilt. Logische Adressen werden in Einheiten dieser logischen Seiten in physikalische Adressen übersetzt. Der die Erfindung verkörpernde Mikrocomputer MPU unterstützt zwei logische Seitengrößen: 4 KB (Kilobyte) und 1 KB. Dadurch ist eine für die Ausführungsform spezifische relationale Bedingung erfüllt. Die Bedingung erfordert es, dass die maximale logische Seitengröße (= 4 KB) dadurch gegeben ist, dass sie minimale Größe (= 1 KB) mit der n-ten Potenz von 2 multipliziert wird und dass die Anzahl der Bänke (= 4) im Adressübersetzungspuffer TLB dem Ergebnis der obigen Multiplikationsoperation entspricht oder größer ist. Wie es in der Fig. 4 dargestellt ist, verfügt jede logische Adresse, wie sie von der zentralen Verarbeitungseinheit CPU erzeugt wird, wenn die logische Seitengröße 1 KB ist, über 32 Bits (vom Bit 0 bis zum Bit 31). Von diesen Bits bilden die Bits 0-9 ein Offsetfeld, und die Bits 10-31 bilden eine logische Seitennummer (logische Seitenadresse) vpn. Wenn die Größe einer logischen Seite 4 KB beträgt, bilden die Bits 0-11 ein Offsetfeld, und die Bits 12-31 bilden eine logische Seitennummer vpn (logische Seitenadresse).
- Seitentabelleneinträge für virtuelle Speicherung beinhalten jeweils Beschreibungen zur Entsprechung zwischen einer logischen Seitennummer VPN und einer physikalischen Seitennummer PPN, zum Zugriffsattribut und zu anderen Faktoren. Die Seitentabelleneinträge werden auf Softwarebasis erzeugt, und sie werden in der Adressübersetzungstabelle im in den Fig. 2 und 13 dargestellten externen Speicher MMRY abgespeichert. Ein Teil der Seitentabelleneinträge wird im Adressübersetzungspuffer TLB der Adressübersetzungseinheit MMU aufbewahrt. Wie es in der Fig. 4 detailliert dargestellt ist, ist das Format der Einträge (d. h. der TLB-Einträge) im Adressübersetzungspuffer TLB in zwei Teile unterteilt: einen Adressenteil, der zweckdienlicherweise im Adressfeld TA-ary platziert ist und einen Datenteil, der im Datenfeld TD-ary untergebracht ist. Der Adressteil verfügt über Information VPS (Bits 31-17) und VPN (Bits 11-10) zur logischen Seitennummer sowie eine Raumnummer ASID (aus 8 Bits). Der Datenteil beinhaltet ein Gemeinsamnutzungsstatusbit SH (1 Bit), ein Größenbit SZ (1 Bit), ein Gültigkeitsbit V (1 Bit), das anzeigt, ob der Eintrag gültig ist oder nicht, eine der logischen Seitennummer entsprechende physikalische Seitennummer PPN (22 Bits), ein Schutzfeld PR (2 Bits) zum Speicherschutz, ein cachebares Bit C (1 Bit) und ein Speichermarkenbit D (1 Bit). Die im Adressteil aufbewahrte Information zur logischen Seitennummer besteht aus den Bits 10-11 und den Bits 17-31 innerhalb des logischen Adressformats von 32 Bits, wobei die Bits zur Indizierung aus der Information ausgeschlossen sind. In diesem Format ist die 2-Segment-Information als VPN (11-10) und VPN (31-17) dargestellt. Das Gemeinsamnutzungsstatusbit SH zeigt an, ob die fragliche Seite von mehreren Prozessen gemeinsam genutzt wird. Wenn das Gemeinsamnutzungsstatusbit SH auf 0 gesetzt ist, zeigt es an, dass die Seite von Prozessen nicht gemeinsam genutzt wird; wenn es auf 1 gesetzt ist, zeigt es an, dass die Seite von Prozessen gemeinsam genutzt wird. Die Raumnummer ASID wird dazu verwendet, zu definieren, dass eine logische Seite zu einem speziellen Prozess gehört. Aus diesem Grund wird die Raumnummer auch als Prozessnummer bezeichnet. Das Schutzfeld PR repräsentiert codierte Daten zum Definieren des Zugriffsrechts auf eine vorgegebene Seite. Die Bitkombination im Schutzfeld PR definiert das Zugriffsrecht. Das Größenbit SZ bezeichnet die Größe der logischen Seite. Wenn das Größenbit SZ auf 1 gesetzt ist, zeigt es die 4-KB-Seitengröße an; wenn es auf 0 gesetzt ist, zeigt es die 1-KB-Seitengröße an.
- In dieser Beschreibung repräsentieren Bezugszeichen in Kleinbuchstaben "vpn", "ppn" und "asid" die Nummer einer logischen Seite, die Nummer einer physikalischen Seite bzw. eine Prozessnummer zur Verwendung bei Zugriffsoperationen. Diese Bezugszeichen sollten von solchen in großen Buchstaben, VPN, PPN und ASID, unterschieden werden, die die Nummer einer logischen Seite, die Nummer einer physikalischen Seite bzw. eine Prozessnummer zur Verwendung in den Einträgen des Adressübersetzungspuffers TLB und des Cachespeichers CACHE-M oder in Seitentabelleneinträgen repräsentieren.
- Wie es in den Fig. 4 und 19 dargestellt ist, verfügen die Einträge in der Adressübersetzungstabelle (d. h. die Seitentabelleneinträge) und die TLB-Einträge jeweils über das Größenbit SZ. Das Größenbit SZ erlaubt es, die Größe einer logischen Seite von einer Seite zu einer anderen zu verändern. Der teilassoziative Vierwege-Adressübersetzungspuffer TLB wird für mehrere Größen logischer Seiten, die variabel eingestellt werden können, gemeinsam genutzt. Der die Erfindung realisierende Mikrocomputer MPU unterstützt zwei Größen logischer Seiten, 1 KB und 4 KB. Die Art zum Bezeichnen einer indexadresse IDX für den Adressübersetzungspuffer TLB ist den zwei Größen logischer Seiten gemeinsam. Wie es in der Fig. 6 dargestellt ist, erzeugt die zentrale Verarbeitungseinheit CPU eine logische 32-Bit-Adresse, in der die Bits 12-16 (d. h. vpn) als Index auf den Adressübersetzungspuffer TLB verwendet werden. Da die Indexadresse über fünf Bits verfügt, können pro Bank (Weg) bis zu 32 Einträge registriert werden. Da der Adressübersetzungspuffer TLB über vier Bänke BNK0 bis BNK3 verfügt, können pro Indexadresse bis zu vier Einträge geliefert werden. Wenn die Seitengröße auf 4 KB eingestellt ist, verfügt die Indexadresse über fünf Bits (vpn; 16-12), die ausgehend vom geringstsignifikanten Bit der fraglichen logischen Seitennummer vpn gezählt werden. Dies bedeutet, dass dann, wenn die Seitengröße 4 KB beträgt, jede Bank bis zu 32 Einträge (128 Einträge insgesamt) für eine vorgegebene logische Seitennummer speichern kann. Wenn die Seitengröße 1 KB beträgt, werden andererseits die ab dem geringstsignifikanten Bit der fraglichen logischen Seitennummer vpn gezählten zwei Bits (vpn; 11-10) nicht für den Index verwendet. Wenn die Größe einer logischen Seite 1 KB ist und eine vorgegebene Bank indiziert wird, zeigt der indizierte Eintrag auf eine von vier logischen Seitennummern (mit jeweils einer Seitengröße von 1 KB), wie durch die 5- Bit-Indexadresse ausgewählt. Die zwei nicht für den Index verwendeten Bits (10-11) werden dazu verwendet, eine der vier ausgewählten logischen Seitennummern zu bezeichnen. So wird, wenn nur eine Bank vorliegt, nur ein Eintrag vier kontinuierlichen logischen Seiten zugewiesen. Bei dieser Ausführungsform ist die maximale Größe einer logischen Seite dadurch gegeben, dass die minimale Größe einer logischen Seite mit der n-ten Potenz von zwei multipliziert wird, und die Anzahl der Bänke entspricht mindestens dem Ergebnis dieser Multiplikationsoperation. Genauer gesagt, beträgt die minimale Größe einer logischen Seite 1 KB, und die maximale Größe einer logischen Seite beträgt 4 KB (= 2 multipliziert mit 2), was auch die Anzahl der Bänke (vier Bänke) ist. Auf diese Weise kann, ungefähr wie im Fall einer Seitengröße von 4 KB der Adressübersetzungspuffer TLB insgesamt 128 Einträge beliebiger logischer Seitennummern aufnehmen, wobei jeder Eintrag einem Umfang bis zur Seitengröße von 1 KB entspricht. Jedoch existiert eine Einschränkung: die logischen Seitennummern, die den in jeder Bank registrierten Einträgen entsprechen, müssen in Einheiten von 4 KB vorhanden sein. Diese Einschränkung hat keine Auswirkung auf die Referate des Adressübersetzungspuffers TLB solange die logischen Seitennummern der durch den TLB registrierten Einträge kontinuier lich sind. Wenn die logischen Seitennummern verteilt sind, wird die Trefferrate etwas beeinflusst. Im letzteren Fall wird der nachteilige Effekt jedoch dadurch beträchtlich verringert, dass die logischen Seiten von 1 KB eine Adressenabbildung in Einheiten von 2 KB erfahren; der schädliche Effekt wird vollständig beseitigt, wenn die logischen Seiten von 1 KB eine Adressenabbildung in Einheiten von 4 KB erfahren. Als Beispiel sei angenommen, dass Übersetzungsinformation mit einer Seitengröße von 1 KB in den Adressübersetzungspuffer TLB eingetragen (eingeschrieben) ist. In diesem Fall aktiviert jede der vier Bänke (BNK0, BNK1, BNK2, BNK3), für einen von vier Einträgen, die jeweils durch eine 5-Bit- Indexadresse bezeichnet sind, Übersetzungsinformation, wenn die zwei Bits vpn (11-10) "00" sind, Übersetzungsinformation, wenn die zwei Bits "O1" sind, Übersetzungsinformation, wenn die zwei Bits "10" sind bzw. Übersetzungsinformation, wann die zwei Bits "11" sind. Durch diese Anordnung wird eine Beeinträchtigung der Trefferrate verhindert.
- Wie unter Bezugnahme auf die Fig. 24 erörtert, muss die Anzahl der Bits für Adressenvergleichsoperationen für die Treffer- oder -fehlschlag-Beurteilung abhängig von der Größe der logischen Seite variiert werden. Wenn die Größe der logischen Seite 1 KB ist, müssen die Bits vpn (11-10) mit den Bits VPN (11-10) verglichen werden, was vom Fall abweicht, wenn die Größe der logischen Seite 4 KB ist. Der Adressübersetzungspuffer TLB verfügt über die Speicherbereiche VPN (Bits 31-17) und VPN (Bits 11-10), die alle überdecken, die möglicherweise verglichen werden, und er verfügt auch über einen 22-Bit-Speicherbereich zum Aufnehmen der physikalischen Seitennummer PPN. Im Adressübersetzungspuffer TLB verfügt der Datenteil jedes Eintrags über das Größenbit SZ, das die unterstützte Größe einer logischen Seite anzeigt. Abhängig vom Wert des Größenbits SZ variiert der Adressübersetzungspuffer TLB die Anzahl der Bits, die zum Ausführen von Adressenvergleichsoperationen für die Treffer- oder Fehlschlag-Beurteilung verwendet werden. Wie unter Bezugnahme auf die Fig. 24 beschrieben, werden, wenn das Größenbit SZ auf 1 (Größe einer logischen Seite = 4 KB) gesetzt ist, die Bits VPN (31-17) mit den entsprechenden Bits in der logischen Adresse verglichen; wenn das Größenbit SZ auf 0 gesetzt ist (Größe einer logischen Seite = 1 KB), werden die Bits VPN (31-17) und VPN (11-10) mit den entsprechenden Bits in der logischen Adresse verglichen. Treffersignale hit1 bis hit4 zeigen jeweils "Treffer"-Beurteilungen für die Bänke BNK0 bis BNK3 an. Diese Signale werden dazu verwendet, einen TLB-Treffer oder -fehlschlag aufzufinden.
- Wie skizziert, verwendet, wenn die Gesamtspeicherkapazität des echten Speichers im System begrenzt ist, der selektiv mehrere Seitengrößen unterstützende Mikrocomputer MPU eine relativ kleine Größe logischer Seiten, um leicht dem Bedarf genügen zu können, den Speichernutzungsfaktor für jeden Prozess anzuheben. In derartigen Fällen wird die maximale Größe logischer Seiten dadurch bestimmt, dass die minimale Größe logischer Seiten mit der n-ten Potenz von zwei multipliziert wird und die Anzahl der Bänke für den teilassoziativen Adressübersetzungspuffer TLB zumindest dem Ergebnis dieser Multiplikationsoperation entspricht. Wenn diese Bedingungen erfüllt sind, nimmt der Adressübersetzungspuffer TLB im Prinzip die Einträge jeglicher logischer Seitennummern auf, unabhängig davon, ob Verfahren zum Bezeichnen der Indexadresse zu einem für die maximale Größe logischer Seiten vereint sind oder nicht und ob die ausgewählte Größe logischer Seiten die maximale oder die minimale Größe ist. Wenn relevante Information zum Anzeigen der Größe der logischen Seite entsprechend einer vorgegebenen logischen Seitennummer geliefert wird und wenn diese Größe dazu verwendet wird, die Anzahl der Bits für Adressenvergleichsoperationen für die Treffer- oder Fehlschlag-Beurteilung zu variieren, ist es einfach, die Größe einer logischen Seite dazu zu verwenden, den Bitzählwert und die Bitpositionen der Information zu variieren, die für assoziative Suche durch den Adressübersetzungspuffer TLB zu vergleichen ist. Wenn der mehrere Seitengrößen unterstützende Adressübersetzungspuffer TLB aus einem teilassoziativen Cachespeicher besteht, benötigt der so realisierte TLB eine Chipfläche, und er weist einen Energieverbrauch auf, die ungefähr halb so groß wie bei einem vergleichbaren Puffer aus einem CAM (content addressable memory = inhaltsbezogen adressierter Speicher = Assoziativspeicher) sind.
- Die Fig. 5 ist ein Blockdiagramm einer typischen Adressübersetzungseinheit MMU. Der Adressübersetzungspuffer TLB besteht veranschaulichend aus einem SRAM (statischer Direktzugriffsspeicher) mit vier Bänken (auch als Wege bezeichnet) BrdK0 bis BNK3, um ein teilassoziatives Vierwegeschema zu realisieren. Jede der Bänke BNK0 bis BNK3 ist in ein Adressfeld Ta-ary und ein Datenfeld TD-ary unterteilt. Das Adressfeld TA-ary speichert den Adressteil von TLB-Einträgen (einschließlich Information zu logischen Seitennummern, die als mit der logischen Seitenadresse zu vergleichende Adressemarke verwendet werden). Das Datenfeld TD-ary enthält den Datenteil der TLB-Einträge (einschließlich Information zur der Adressmarke entsprechenden physikalischen Seite). Jeder TLB- Eintrag ist so untergebracht, dass er sich sowohl über das Adressfeld TA-ary als auch das Datenfeld TD-ary erstreckt. Jede der Bänke BNK1 bis BNK3 enthält 32 TLB-Einträge. So ist die Verwendung einer 5-Bit-Indexadresse IDX erforderlich, um einen Eintrag aus jeder Bank auszuwählen. Die Indexadresse IDX wird den Bänken BNK0 bis BNK3 mit dem Adressfeld TA- ary und dem Datenfeld TD-ary gemeinsam zugeführt. Die in den Bänken BNK0 bis BNK3 auf Grundlage der Indexadresse IDX ausgewählten TLD-Einträge werden über einen Lesepfad R1-pass dem Controller TLB-C zugeführt. Aus den indizierten TLB-Einträgen wird die Adressmarke zum Beurteilen eines TLB-Fehlschlags oder -treffers an Komparatoren CMP0 bis CMP3 für jede der Bänke zugeführt. Für jede Bank vergleichen die Komparatoren CMP0 bis CMP3 die Adressmarke mit der logischen Seitenadresse. Das Ergebnis der Vergleichsoperation pro Bank wird unter Verwendung von Treffersignale hit1 bis hit4 an den Controller TLB-C (TLB-Controller) berichtet.
- Wenn der TLB-Controller TLB-C die so gelesene TLB-Eintragsinformation und die Treffersignale hit1 bis hit4 empfangen hat, führt er entsprechend eine zugehörige Verarbeitung hinsichtlich des TLB-Fehlschlags oder -treffers aus. Im Fall eines TLB-Treffers erzeugt der TLB-Controller TLB-C dadurch eine physikalische Adresse, dass er den Offset der logischen Adresse zur physikalischen Seitennummer addiert wie sie im zum Treffer gehörenden TLB-Eintrag enthalten ist. Wenn ein ThB-Fehlschlag erkannt wird, tritt ein zugehöriger Ausnahmefall ein. Dann wird aus dem externen Speicher MMRY ein neuer ThB-Eintrag geladen, der zum verfehlten Zugriff gehört und die Adressübersetzung wird erneut ausgeführt. Wenn der fragliche Eintrag ersetzt werden muss, wird die Bank zum Ersetzen des Eintrags durch Zufall oder eine LRU(least recently used = am längsten nicht benutzt)-Logik bestimmt.
- Wenn ein neuer TLB-Eintrag zu laden ist oder er auf die oben genannte Weise ungültig gemacht ist, ist es erforderlich, eine Bank für den Zugriff auf einen darin enthaltenen Speicherteil TLB zu spezifizieren. Dieses Merkmal wird durch den Adressübersetzungspuffer TLB realisiert, der eine adressierende Zugriffsoperation erlaubt, die unten beschrieben wird.
- Als Hardwareaufbau für den adressierenden Zugriff auf den Adressübersetzungspuffer TLB verfügt der Controller TLB-C in der Fig. 5 über eine Schreibselektorschaltung WS1, ein Schreibsteuertor GT1, einen Adressdecodierer DEC1 und ein ODER-Gatter OR1. Der Schreibpfad W1-pass verbindet die Schreibselektorschaltung WS1 mit den Bänken BNK0 bis BNK3 des Adressfelds TA-ary und des Datenfelds TD-ary. Die Schreibselektorschaltung WS1 wählt eine der Bänke des Adressfelds TA-ary oder des Datenfelds TD-ary unter Verwendung eines Feldauswählsignals S1-ary und eines Bankauswählsignals S1-BNK aus, die vom Adressdecodierer DEC1 als Decodiersignale geliefert werden. Wenn die Bank ausgewählt ist, wird sie von der Schreibselektorschaltung WS1 mit Schreibdaten versehen. Das Steuertor GT1 versorgt die Schreibselektorschaltung WS1 mit von außen zugeführten Schreibdaten. Wenn der Ausgang des ODER-Gatters OR1 auf Hoch gesteuert wird, liefert das Steuergatter GT1 die Schreibdaten an die Schreibselektorschaltung WS1. Daher wird, wenn ein Assoziationsbit A, das später beschrieben wird, auf Hoch gesteuert wird, das Schreibsteuertor GT1 geöffnet, vorausgesetzt, dass eines der Treffersignale hit1 bis hit4 auf Hoch gebracht wurde. Wenn das Assoziationsbit A auf niedrig gesteuert wird, wird das Schreibsteuertor GT1 unabhängig von den Pegeln der Treffersignale hit1 bis hit4 geöffnet. Die Leseselektorschaltung RS1 empfängt Daten, wie sie im Adressfeld TA-ary und im Datenfeld TD-ary indiziert sind und auf den Lesepfad R1-pass ausgelesen wurden. Unter Verwendung des Feldauswählsignals S1-ary und des Bankauswählsignals S1-bnk vom Adressdecodierer DEC1 erlaubt es die Leseselektorschaltung RS1, von einer der Bänke des Adressfelds TA-ary oder des Datenfelds TD-ary gelesenen Daten nach außen auszugeben. Die Schreibselektorschaltung WS1 wird aktiviert, wenn eine Schreiboperation angewiesen wird, und die Leseselektorschaltung RS1 wird betriebsbereit gemacht, wenn eine Leseoperation angewiesen wird. Die Schreib- oder Leseanweisung wird von der zentralen Verarbeitungseinheit CPU gemeinsam mit einer logischen Adresse ausgegeben. Bei Adressübersetzungsoperationen zum Übersetzen logischer Adressen in physikalische Adressen durchläuft die in den Bänken BNK0 bis BNK3 indizierte Information die Leseselektorschaltung RS1 nicht; die Information wird statt dessen von Steuerlogikschaltungen, die nicht dargestellt sind, im Controller TLB-C dazu verwendet, den Prozess der Übersetzung in physikalische Adressen zu steuern.
- Der Adressübersetzungspuffer TLB ist speichermäßig im oben genannten Bereich P4 des logischen Raums abgebildet. Schreib- und Leseoperationen in den bzw. aus dem Bereich P4 werden dadurch aktiviert, dass ein üblicher Datenübertragungsbefehl vorliegt, wie der Befehl MOV, der eine gewünschte Adresse bezeichnet (speichermäßig abgebildeter TLB). Das Adressfeld TA-ary wird von H'F2000000 bis H'F2FFFFFF abgebildet, und das Datenfeld TD-ary wird von H'F3000000 bis H'F3FFFFFF abgebildet. Wie es in der Fig. 3(A) dargestellt ist, kann im privilegierten Modus, in dem das Betriebssystem und das Systemprogramm laufen, auf den Bereich P4 (H'E0000000-H'FFFFFFFF) zugegriffen werden.
- Die Fig. 7 zeigt Adressformate zum Bezeichnen der Adresse, auf die im Adressübersetzungspuffer TLB zuzugreifen ist. Die Lese/Schreib-Adressbits 31-24 für das Adressfeld TA-ary sind H'F2 (11110010), und die Lese/Schreib-Adressbits 31- 24 für das Datenfeld TD-ary sind H'F3 (11110011). Die Formate erlauben es dem Controller TLB-C der Adressübersetzungseinheit MMU, eine adressierende Zugriffsoperation auf das Datenfeld TD-ary oder das Adressfeld TA-ary zu erkennen. Die Bank (der Weg) auf die zugegriffen wird, wird durch ein 2- Bit-Feld W (Bits 9-8) bezeichnet. Der Eintrag für jede Bank wird durch ein 5-Bit-Feld EINTRAG (Bits 16-12) spezifiziert. Unter Verwendung derartiger Information mit H'F2 oder H'F3 (Bits 31-24) der logischen Zugriffsadresse bezeichnet der Controller TLB-C ein Adressfeld TA-ary oder ein Datenfeld TD-ary auf Grundlage des Signals S1-ary. Entsprechend dem Signal S1-bnk, das dem Bankbezeichnungsbitfeld W entspricht, bezeichnet der Controller TLB-C eine Bank. Außerdem bezeichnet der Controller TLB-C entsprechend der Indexadresse IDX entsprechend dem Eintragsbezeichnungsfeld EINTRAG einen TLB- Eintrag in der Bank. Die obigen Einstellungen ermöglichen es, den gewünschten Eintrag in der gewünschten Bank des Datenfelds TD-ary oder des Adressfelds TA-ary zu adressieren.
- Unter Bezugnahme auf die Fig. 5 folgt eine detailliertere Beschreibung. Die logische Adresse auf dem Systembus (Bus S) wird auch dem Adressdecodierer DEC1 in der Fig. 5 zugeführt. Der Adressdecodierer DEC1 erkennt H'F2 oder H'F3 (Bits 31- 24) in der logischen Adresse, wie es in den Formaten der Fig. 7 dargestellt ist. Die Erkennung erlaubt es dem Adressdecodierer DEC1, eine adressierende Zugriffsoperation auf den Adressübersetzungspuffer zu erkennen. Ein Befehlsdecodierer DCR erzeugt durch Decodieren eines von der zentralen Verarbeitungseinheit CPU ausgegebenen Befehls auf dem Bus S ein Lese/Schreib-Signal R/W. Ob es sich beim Zugriff um eine Lese- oder eine Schreiboperation handelt, wird durch das vom Befehlsdecodierer DCR ausgegebene Lese/Schreib-Signal R/W bestimmt. Wie es durch die Adress- und Datenformate in der Fig. 7 dargestellt ist, bildet der Datenwert, der gemäß dem Befehl aus dem Adressfeld ausgelesen werden soll, Information VPN (31-17), VPN (11-10) zur logischen Seitennummer und eine als Adressmarke gegebene Raumnummer ASID. Ein Datenwert, der gemäß dem Befehl in das Adressfeld geschrieben werden soll, verfügt über ein Gültigkeitsbit V zusätzlich zur Information VPN (31-17), VPN (11-10) zur logischen Seitennummer und zur als Adressmarke gegebenen Raumnummer ASID. Bei der früheren Erörterung unter Bezugnahme auf die Fig. 4 wurde angegeben, dass das Gültigkeitsbit V im Datenfeld TD- ary geliefert wird. Bei einer Schreiboperation betreffend das Adressfeld TA-ary wird das Gültigkeitsbit V auch in das Datenfeld TD-ary geschrieben, wie es durch einen Steuersignalteil im Steuersignal S1-bnk bezeichnet wird. Das Bit V ist so enthalten, dass der fragliche Eintrag dadurch ungültig gemacht werden kann, dass einfach Daten in das Adressfeld geschrieben werden. Ein Datenwert, der gemäß dem Befehl aus dem Datenfeld gelesen werden soll und ein Datenwert, der dorthin geschrieben werden soll, bilden beide PPN, V, PR, SZ, C, D und SH.
- Insbesondere wird, wenn für eine Datenschreiboperation in das Adressfeld TA-ary auf dieses zugegriffen wird, das Bit 7 als Assoziationsbit A zugewiesen, wie es in der Fig. 7 dargestellt ist. Das Assoziationsbit A gibt an, ob die Schreiboperation assoziativ auszuführen ist oder nicht (veranschaulichenderweise durch Vergleichen der logischen Seitennummer mit der Adressmarke). Wenn das Assoziationsbit A auf 1 gesetzt ist, erlaubt es das Einschreiben von Daten in den fraglichen Eintrag, vorausgesetzt, dass das Ergebnis der Adressenvergleichsoperation ein Treffer ist (Daten werden im Fall eines Fehlschlags nicht eingeschrieben). Wenn das Assoziationsbit A auf 0 gesetzt ist, erlaubt dies das Einschreiben von Daten in den durch die Adresse ausgewählten Eintrag, ohne dass eine Adressenvergleichsoperation ausgeführt wurde. Die Adresse, die bei einer assoziativen Schreiboperation in das Adressfeld TA-ary, wie dadurch spezifiziert, dass das Assoziationsbit A den Wert 1 aufweist, zu vergleichen ist, enthält zwei Arten von Information: die logische Seitennummer VPN in den Schreibdaten und die logische Seitennummer VPN im indizierten Eintrag. Eine derartige assoziative Schreiboperation wird veranschaulichend dazu verwendet, das Gültigkeitsbit V auf 0 rückzustellen, um spezielle TLB-Einträge ungültig zu machen. Die Fig. 8 zeigt typische Schritte zum Ungültigmachen von Einträgen. Wenn das Assoziationsbit A auf 1 gesetzt ist, wird der Ausgang des ODER-Gatters OR1 auf Niedrig gehalten, solange nicht, und bis, eines der Treffersignale hit1 bis hit4 auf den Trefferpegel (Hoch) gebracht ist, wie es in der Fig. 5 dargestellt ist. Dies erlaubt es, die Schreibdaten der Schreibselektorschaltung WS1 nur dann zuzuführen, nachdem die Adressenvergleichsoperation zu einem Treffer geführt hat. Bei einer nicht assoziativen Schreiboperation, die dadurch bezeichnet wird, dass das Assoziationsbit A auf 0 gesetzt ist, wird das Schreibsteuertor GT1 unabhängig vom Ergebnis einer Adressenvergleichsoperation geöffnet. So wird eine nicht assoziative Schreiboperation veranschaulichend einfach dazu verwendet, das Adressfeld TA- ary bei Vorrichtungstests zu aktualisieren.
- Die oben erörterte Lesezugriffsoperation auf den Adressübersetzungspuffer TLB mit Adressenabbildung wird unter Verwendung von Datenübertragungsbefehlen wie des Befehls MUV ausgeführt. Der Befehl wird veranschaulichend als MOV R1, R0 geschrieben, wobei R1 die Quelladresse repräsentiert. In das zugehörige Register R1 wird unter Verwendung des in der Fig. 7 veranschaulichten Formats die gewünschte Adresse eingetragen. R0 repräsentiert das Zielregister. Das Ausführen des obigen Befehls MOV R1, R0 sorgt dafür, dass auf den Adressübersetzungspuffer TLB zum Auslesen von Daten zugegriffen wird, wie im Fall anderer Speicher, auf die durch den Befehl MOV zugegriffen werden kann. Die gelesenen Daten werden an das Register R0 übertragen. Der Zugriff auf den Adressübersetzungspuffer TLB zum Einschreiben von Daten in denselben wird auf ähnliche Weise ausgeführt. Für eine Schreiboperation wird der Befehl typischerweise als MOV R0, R1 geschrieben, wobei R1 die Zieladresse repräsentiert. Die gewünschte Adresse wird unter Verwendung des in der Fig. 17 dargestellten Formats in das zugehörige Register R1 eingetragen. R0 ist das Quellregister, das die Schreibdaten enthält. Das Ausführen des Befehls MOV R0, R1 sorgt dafür, dass auf den Adressübersetzungspuffer TLB zugegriffen wird, um in ihn Daten einzuschreiben, wie im Fall anderer Speicher, auf die durch den Befehl MOV zugegriffen werden kann. Der Schreibbefehl kann unter der Bedingung ausgeführt werden, dass die Adressinformation das auf 1 gesetzte Assoziationsbit A enthält und dass die Schreibdaten die logische Seitennummer der VPN des ungültig zu machenden Eintrags enthalten, und dass das Gültigkeitsbit V 0 ist. In diesem Fall wird die Schreiboperation effektiv nur dann ausgeführt, wenn die Adressenvergleichsoperation zu einem TLB-Treffer führt (der fragliche Eintrag wird ungültig gemacht); die Schreiboperation wird nicht ausgeführt, wenn ein TLB-Fehlschlag vorliegt (der fragliche Eintrag wird nicht ungültig gemacht).
- Wenn der Adressübersetzungspuffer TLB in den Adressraum abgebildet ist und auf ihn auf die oben beschriebene Weise zugegriffen werden kann, werden Zugriffsoperationen auf den TLB unter Verwendung üblicher Datenübertragungsbefehle wie des Befehls MOV, der in beinahe allen Befehlssätzen enthalten ist, ausgeführt. Da für den Zugriff auf den Adressübersetzungspuffer TLB keine speziellen Befehle erforderlich sind, kann eine Verringerung der Typen von Befehlscodes erfolgen und die Befehlswörter können verkürzt werden. Anders gesagt, ist es möglich, ohne dass spezielle Befehle verwendet werden müssen, um auf den Adressübersetzungspuffer TLB zuzugreifen, eine Zunahme des Umfangs von Logikschaltungen zu unterdrücken, die den Befehlsdecodierer ID zum Decodieren von Befehlen innerhalb der zentralen Verarbeitungseinheit CPU bilden. Es ist auch einfach, die Architekturerfordernisse des Mikrocomputers zu meistern, die nach einer verkürzten Befehlswortlänge verlangen. Wenn z. B. der die Erfindung realisierende Mikrocomputer MPU Befehle mit der festen Länge von. 16 Bits verwendet, werden die Befehlscodes als wertvolle Ressourcen angesehen, da die Codes relativ kurz sind. So erfordert das Schema, wenn der Adressübersetzungspuffer TLB in den Adressraum abgebildet wird und zugriffsfähig gemacht wird, nur begrenzte Änderungen der Hardware des Befehlsdecodierers ID, ohne dass es erforderlich ist, irgendeinen neuen Befehlscode hinzuzufügen. Da das Adressformat für eine Schreibzugriffsoperation auf das Adressfeld TA-ary das Assoziationsbit A enthält, das nach Wunsch eine assoziative Schreiboperation bezeichnet, ist es einfach, zwei verschiedene Arten von Verarbeitungserfordernissen zu handhaben: zum Ungültigmachen von TLB-Einträgen, die ihrer Art nach Adressenvergleichsoperationen benötigen, und zum Aktualisieren von TLB-Einträgen ohne Erfordernis von Adressenvergleichsoperationen, wie im Fall von Vorrichtungstests.
- Fig. 9 ist eine schematische Ansicht einer typischen Eintragsstruktur im Cachespeicher CACHE-M. Der Adressteil enthält eine 22-Bit-Adressmarke (Bits 31-10) TAG, ein Gültigkeitsbit V, das anzeigt, ob der fragliche Eintrag gültig ist (gültig, wenn V = 1; ungültig, wenn V = 0), ein Aktualisierungsbit U, das anzeigt, ob der fragliche Cacheeintrag aktualisiert ist (aktualisiert, wenn U = 1; nicht aktualisiert, wenn U = 0) sowie ein 6-Bit-LRU-Feld L (in dem Daten entsprechend dem LRU-Algorithmus für den Ersatz von Cacheeinträgen codiert sind). Der Datenteil verfügt über vier 32- Bit-Langwortdatenfelder (16 Bytes).
- Die Fig. 10 ist ein Blockdiagramm der Cacheinheit CACHE. Der Cachespeicher CACHE-M besteht veranschaulichenderweise aus einem SRAM mit vier Bänken (oder Wegen) BNK0 bis BNK3 zum Realisieren des teilassoziativen Vierwegeschemas. Die Bänke BNK0 bis BNK3 sind in zwei Felder unterteilt: ein Adressfeld CA-ary zum Speichern des Adressteils von Cacheeinträgen sowie ein Datenfeld CD-ary zum Aufnehmen des Datenteils der Cacheeinträge. Jeder Cacheeintrag ist so beschaffen, dass er sich sowohl über das Adressfeld CD-ary als auch das Datenfeld CD-ary erstreckt. Jede der Bänke BNK0 bis BNK3 enthält 128 Cacheeinträge. Um einen Eintrag aus jeder Bank auszuwählen, ist somit die Verwendung einer 7-Bit-Indexadresse IDX erforderlich. Da jeder Cacheintrag 16 Bytes an Daten aufnimmt, besteht die Indexadresse aus dem Bits 10-4 in der logischen Adresse. Die Indexadresse IDX wird den Bänken BNK0 bis BNK3 des Adressfelds CA-ary und des Datenfelds CD-ary gemeinsam zugeführt. Die Bits 3-0 der logischen Adresse werden als Information zum Bezeichnen von 16-Byte-Daten in Byteeinheit angesehen.
- Der Cachespeicher CACHE-M verfügt über eine Datenspeicherkapazität von ungefähr 2 KB (16 Bytes · 128) pro Bank oder insgesamt 8 KB (2 KB · 4). Wenn die Seitengröße 4 KB beträgt, wird die Cacheeintrag-Adressmarke TAG mit den Bits 31-11 (ppn) der physikalischen Adresse verglichen, in der das Bit 11 der logischen Adresse (höchstsignifikantes Bit des Offsets der logischen Adresse) mit der physikalischen Seitennummer (ppn) kombiniert ist, die durch die Adressübersetzungseinheit MMU geliefert wird, die die Seitennummer der logischen Adresse übersetzt (Bits 31-12; vpn). Wenn die Seitengröße 1 KB beträgt, wird die Cacheeintrag-Adressmarke TAG mit den Bits 31-11 (ppn) der physikalischen Seitennummer (ppn) verglichen, die von der Adressübersetzungseinheit MMU geliefert wird, die die Seitennummer der logischen Adresse übersetzt (Bits 31-10; vpn). Das Bit 10 der physikalischen Adresse, das Teil der Adressmarke TAG bildet, wird bei der obigen Adressenvergleichsoperation nicht verwendet. Dieses Bit wird, wie es später beschrieben wird, meistens zum Erzeugen einer Rückschreibadresse verwendet. Die Adressenvergleichsoperation wird durch Komparatoren CMP0 bis CMP3 für jede der konfigurierten Bänke ausgeführt. Das Ergebnis der Adressenvergleichsoperation wird unter Verwendung von Treffersignalen hit11 bis hit14 dem Controller CACHE-M zugeführt. Die Fig. 11 ist eine schematische Ansicht, die zeigt, wie Cacheeinträge ausgewählt werden, wenn die Seitengröße 4 KB beträgt.
- In der Fig. 10 erhält der Cachecontroller CACHE-C die auf die oben beschriebene Weise ausgelesene Cacheeintragsinformation sowie die Treffersignal hit11 bis hit14, und er führt eine Verarbeitung entsprechend einem Cache-Fehlschlag oder -treffer aus. Wenn z. B. die Vergleichsoperation mit der Adressmarke TAG während einer Lesezugriffsoperation zu einer Übereinstimmung führt, erfolgt eine Prüfung zum Gültigkeitsbit V. Wenn sich das Gültigkeitsbit als 1 ergibt, wird ein Cache-Treffer erkannt. In diesem Fall wird vom den fraglichen Eintrag bildenden 16-Byte-Datenwert der den Bits 2-3 der logischen Adresse entsprechende 4-Byte-Datenwert auf den Cachebus (Bus C) ausgegeben. Wenn die Vergleichsoperation mit der Adressmarke TAG während einer Lesezugriffsoperation zu einer Fehlübereinstimmung führt oder wenn das Gültigkeitsbit V des ausgewählten Eintrags 0 ist, wird ein Cache- Fehlschlag erkannt. Damit startet ein externer Buszyklus, der dafür sorgt, dass die Zieldaten aus dem externen Speicher MMRY gelesen und als neuer Cacheintrag geladen werden. Die durch den neuen Eintrag zu ersetzende Cachezeile wird veranschaulichend unter Verwendung des LRU-Algorithmus durch Hardware ausgewählt. Wenn sich ergibt, dass das Aktualisierungsbit U im zu ersetzenden Eintrag der Cachezeile den Wert 1 hat, wird dieser Eintrag vor dem Austausch in den Rückschreibpuffer WBBUF eingespeichert. Wenn die Eintragsersetzung abgeschlossen wird, wird der Eintrag an die relevante Adresse des externen Speichers MMRY rückgeschrieben. Diese Anordnung soll dafür sorgen, dass zwischen dem Cachespeicher CACHE-M und dem externen Speicher MMRY Datenübereinstimmung erhalten bleibt. Nach der Schreiboperation wird das Aktualisierungsbit U im neuen Cacheeintrag auf 1 gesetzt, wenn der Austausch von einem Schreibfehler herrührt, aber es wird auf 0 belassen, wenn der Austausch einem Lesefehler zuzuschreiben ist.
- Der Cachespeicher CACHE-M wird für einen Schreibzugriff auf dieselbe Weise wie für einen Lesezugriff indiziert. Im Fall eines Cache-Treffers werden die Schreibdaten in den zum Treffer gehörenden Cacheeintrag geschrieben, während das Aktualisierungsbit U im fraglichen Cacheeintrag gleichzeitig auf logisch 1 gesetzt wird. Wenn während einer Schreibzugriffsoperation ein Cache-Fehlschlag erkannt wird, werden die Schreibdaten in eine neue Cachezeile geschrieben. Wenn sich ergibt, dass das Aktualisierungsbit U im zu ersetzenden Eintrag der Cachezeile den Wert 1 hat, wird dieser Eintrag vor dem Austausch in den Rückschreibpuffer WBBUF eingespeichert. Wenn die Eintragsersetzung abgeschlossen ist, wird der Eintrag an die relevante Adresse im externen Speicher NMRY rückgeschrieben. Das Aktualisierungsbit U im neuen, auf die Ersetzung folgenden Cacheeintrag wird auf logisch 1 gesetzt.
- Wenn ein neuer Cacheeintrag zu laden ist und wenn irgendein Cacheeintrag ungültig zu machen ist oder wenn Daten in das Aktualisierungsbit U zu schreiben oder aus ihm zu lesen sind, ist es erforderlich, eine Bank zu spezifizieren und Zugriff auf den Cachespeicher CACHE-M zu erlangen. Diese Erfordernisse werden dadurch gehandhabt, dass ein adressierender Zugriff auf den Cachespeicher CACHE-M zugelassen wird, wie es unten beschrieben ist.
- Als Hardwareaufbau für den adressierenden Zugriff auf den Cachespeicher CACHE-M verfügt der Controller CACHE-C in der Fig. 10 über eine Schreibselektorschaltung WS2, ein Schreibsteuertor GT2, eine Leseselektorschaltung RS2, einen Adressdecodierer DEC2 und ein ODER-Gatter OR2. Ein Schreibpfad W2- pass verbindet die Schreibselektorschaltung WS mit den Bänken BNK0 bis BNK3 des Adressfelds CA-ary und des Datenfelds CD-ary. Die Schreibselektorschaltung WS2 wählt eine der Bänke des Adressfelds CA-ary oder des Datenfelds CD-ary unter Verwendung eines Feldauswählsignals S2-ary und eines Bankauswählsignals S2-bnk aus, die als Decodiersignale an den Adressdecodierer DEC2 geliefert werden. Wenn die Bank ausgewählt ist, versorgt die Schreibselektorschaltung WS2 dieselbe mit Schreibdaten. Das Steuertor GT2 versorgt die Schreibselektorschaltung WS2 mit von außen zugeführten Schreibdaten. Wenn der Ausgang des ODER-Gatters OR2 auf Hoch gesteuert wird, liefert das Steuertor GT2 die Schreibdaten an die Schreibselektorschaltung WS2. Daher wird, wenn das Assoziationsbit A, das später beschrieben wird, auf Hoch gesteuert wird, das Schreibsteuertor GT2 geöffnet, vorausgesetzt, dass eines der Treffersignale hit11 bis hit14 auf Hoch gebracht wurde. Wenn das Assoziationsbit A auf Niedrig gesteuert ist, wird das Schreibsteuertor GT2 unabhängig von den Pegeln der Treffersignale hit11 bis hit14 geöffnet. Die Leseselektorschaltung RS2 empfängt im Adressfeld CA-ary und Datenfeld CD-ary indizierte Daten, die auf den Lesepfad R2-pass ausgelesen wurden. Unter Verwendung des Feldauswählsignals S2-ary und des Bankauswählsignals S2-bnk vom Adressendecodierer DEC2 erlaubt es die Leseselektorschaltung RS2, Daten aus einer der Bänke des Adressfelds CD-ary oder des Datenfelds CDary zu lesen, die nach außen auszugeben sind. Die Schreibselektorschaltung WS2 wird aktiviert, wenn eine Schreiboperation angewiesen wird, und die Leseselektorschaltung RS2 wird betriebsfähig gemacht, wenn eine Leseoperation angewiesen wird. Die Lese- oder Schreibanweisung wird von der zentralen Verarbeitungseinheit CPU gemeinsam mit einer logischen Adresse ausgegeben. Bei Cacheoperationen durchläuft die in den Bänken BNK0 bis BNK3 indizierte Information nicht die Leseselektorschaltung RS2; statt dessen wird die Information von nicht dargestellten Steuerlogikschaltungen im Controller CACHE-C dazu verwendet, eine Steuerung hinsichtlich CACHE- Fehlschlägen und -treffern auszuführen.
- Die Cacheeinheit CACHE im die Erfindung realisierenden Mikrocomputer MPU verwendet das sogenannte Rückschreibschema (das auch als Rückkopierschema bekannt ist). Bei diesem Schema wird derjenige Inhalt des Cachespeichers CACHE-M, der während einer Schreibzugriffsoperation aktualisiert wurde, in den externen Speicher MMRY rückgeschrieben, wenn der fragliche Eintrag auf einen Cache-Fehlschlag hin durch einen neuen Eintrag zu ersetzen ist. Wenn sich das Aktualisierungsbit U im durch einen neuen Eintrag zu ersetzenden Eintrag als 1 ergibt, wird dieser Eintrag in den externen Speicher MMRY rückgeschrieben. Die Schreibadresse für die Rückschreiboperation muss unter Verwendung von zwei Arten von Information erzeugt werden. Information der Adressmarke TAG für die rückzuschreibende Cachezeile, und Information zur logischen Adresse (insbesondere zum Offset in der logischen Adresse), die zum Cache-Fehlschlag gehört.
- Bei dieser Ausführungsform beträgt die Datenspeicherkapazität pro Bank des Datenspeichers CACHE-M 2 KB, wie oben angegeben. Die Adressen bei der Ausführungsform sind solche auf Byte-Basis. Um den Cachespeicher CACHE-M zu indizieren, um einen Datenwert von Langwortdaten (4 Bytes) in einer Bank zu bezeichnen, ist die Verwendung der Bits 0-10 einer logischen Adresse erforderlich. Die Bits 11-31 der logischen Adresse werden für einen Adressenvergleichsoperation zur Adressmarke TAG verwendet. Anders gesagt, ist es zum Ausführen einer Adrea senvergleichsoperation erforderlich, dass die Bits 31-11 der physikalischen Adresse in der Adressmarke TAG erhalten bleibt. In diesem Zusammenhang kann die Seitengröße des die Erfindung realisierenden Mikrocomputers MPU variabel auf 1 KB oder 4 KB eingestellt werden. Wenn die Seitengröße 1 KB beträgt (kleiner als die Datenspeicherkapazität einer einzelnen Bank), wird die Seitennummer durch die Bits 31-10 der Adresse spezifiziert. Daher ist zum Ausführen einer Rückschreiboperation, wenn die Seitengröße 1 KB beträgt, die Verwendung einer physikalischen Seitenadresse erforderlich, die zumindest durch die Bits 31 -1 0 einer physikalischen Adresse definiert ist. Wenn sich diese Information nicht in der Adressmarke TAG findet, ist es schwierig, die Adresse zu spezifizieren, in die Daten rückzuschreiben sind. Aus diesem Grund verfügt ein Cacheeintrag über ein Feld, in dem alle Bits der physikalischen Seitennummer, die der vom Mikrocomputer MPU unterstützten minimalen Seitengröße entspricht, als Adressmarke TAG registriert sind. Für eine Adressenvergleichsoperation an indizierten Einträgen werden die Bits 31-11 der physikalischen Adresse in der Adressmarke TAG verwendet (das Bit 10 ist weder für die Seitengröße von 1 KB noch diejenige von 4 KB verwendbar). Die Bits 31-10 der physikalischen Adresse im Feld der Adressmarke TAG werden dazu verwendet, die Adresse zu erzeugen, in die Daten rückzuschreiben sind. Wenn die Seitengröße 1 KB beträgt, werden alle Bits 31-10 der physikalischen Adresse in der fraglichen Adressmarke verwendet; wenn die Seitengröße 4 KB beträgt, werden die Bits 31-12 der physikalischen Adresse verwendet.
- Wenn die Seitengröße kleiner als die Datenspeicherkapazität einer einzelnen Bank im Cachespeicher CACHE-M ist, nutzt die Ausführungsform das Feld einer Adressmarke TAG, das ausreichend groß dazu ist, alle Bits der physikalischen Seite aufzunehmen, die der fraglichen Seitengröße entspricht. Information zur physikalischen Adresse wird im Feld über die Anzahl der Bits hinaus registriert, die für die Adressenvergleichsoperation erforderlich sind. Diese Merkmale bilden einen Cachespeicher, wie er dazu erforderlich und ausreichend ist, den Erfordernissen sowohl der Adressenvergleichsoperation als auch der Rückschreiboperation betreffend die indizierten Cacheeinträge zu genügen.
- So wie der Adressübersetzungspuffer TLB ist auch der Cachespeicher CACHE-M in den oben genannten Bereich P4 des logischen Raums abgebildet. Schreib- und Leseoperationen in und aus dem Bereich P4 werden dadurch ermöglicht, dass ein üblicher Datenübertragungsbefehl wie der Befehl MOV, der eine gewünschte Adresse bezeichnet (speicherstrukturierter Cache), zur Verfügung steht. Das Adressfeld CA-ary wird von H'F0000000 bis H'F0FFFFFF abgebildet, und das Datenfeld CD- ary wird von H'F1000000 bis H'F1FFFFFF abgebildet. Wie es in der Fig. 3(A) dargestellt ist, kann auf den Bereich P4 (HE0000000-H'FFFFFFFF) im privilegierten Modus zugegriffen werden, in dem das Betriebssystem und das Systemprogramm lauf en.
- Die Fig. 12 zeigt Adressformate zum Bezeichnen der Adresse, auf die im Cachespeicher CACHE-M zuzugreifen ist. Diese Lese/Schreib-Adressbits 31-24 für das Adressfeld CA-ary sind H'F0(11110000) und die Lese/Schreib-Adressbits 31-24 für das Datenfeld CD-ary sind H'F1 (11110001). Die Formate erlauben es dem Controller CACHE-C der Cacheeinheit CACHE, eine adressierende Zugriffsoperation auf das Datenfeld CD-ary oder das Adressfeld CA-ary zu erkennen. Die Bank (der Weg) auf die zuzugreifen ist, wird durch ein 2-Bit-Feld W (Bits 12- 11) bezeichnet. Der Eintrag für jede Bank wird durch ein 7- Bit-Feld EINTRAG (Bits 10-4) bezeichnet. Unter Verwendung derartiger Information einschließlich H'F0 oder H'F1 (Bits 31-24) der logischen Zugriffsadresse bezeichnet der Controller CACHE-M ein Adressfeld CA-ary oder ein Datenfeld CD-ary auf Grundlage des Signals S2-ary. Entsprechend dem Signal S2-bnk, das dem Bankbezeichnungsbitfeld W entspricht, bezeichnet der Controller CACHE-C eine Bank. Außerdem bezeichnet der Controller CACHE-C entsprechend der Indexadresse IDX, die dem Eintragsbezeichnungsbitfeld EINTRAG entspricht, einen Cacheeintrag (Cachezeile) in der Bank. Die obigen Einstellungen ermöglichen es, den gewünschten Eintrag in der gewünschten Bank des Datenfelds CD-ary oder des Adressfelds CA-ary zu adressieren.
- Nun folgt unter Bezugnahme auf die Fig. 10 eine detailliertere Beschreibung. Die logische Adresse auf dem Systembus (Bus S) wird auf dem Adressdecodierer DEC2 in der Fig. 10 zugeführt. Der Adressdecodierer DEC2 erkennt H'F0 oder H'F1 (Bits 31-24) in der logischen Adresse, wie es in den Formaten der Fig. 12 dargestellt ist. Die Erkennung erlaubt es dem Adressdecodierer DEC2, eine adressierende Zugriffsoperation auf dem Cachespeicher CACHE-M zu erkennen. Der Befehlsdecodierer DCR erzeugt durch Decodieren eines von der zentralen Verarbeitungseinheit CPU ausgegebenen Befehls auf dem Bus S ein Lese/Schreib-Signal R/W. Durch das vom Befehlsdecodierer DCR ausgegebene Lese/Schreib-Signal R/W wird bestimmt, ob der Zugriff einer Lese- oder einer Schreiboperation entspricht. Wie es durch die Adress- und Datenformate in der Fig. 12 dargestellt ist, bilden die in das Adressarray geschriebenen oder aus ihm ausgelesenen Daten die Adressmarke TAG (Bits 31-10), ein LRU-Feld, ein Bit U und ein Bit V. Das Bit V ist so enthalten, dass der fragliche Eintrag dadurch ungültig gemacht wird, dass einfach Daten in das Adressfeld geschrieben werden. Die in das Datenfeld geschriebenen oder aus ihm gelesenen Daten sind 16-Byte-Daten.
- Insbesondere dann, wenn auf das Adressfeld CA-ary zugegriffen wird, um Daten in es zu schreiben, wird dem Bit 3 der Adresse das Assoziationsbit A zugewiesen, wie es in der Fig. 12 dargestellt ist. Das Assoziationsbit A spezifiziert, ob die Schreiboperation durch Assoziation auszuführen ist oder nicht (d. h. durch Ausführen der oben beschriebenen Adressenvergleichsoperation). Wenn das Assoziationsbit A auf 1 gesetzt ist, erlaubt es das Einschreiben von Daten in den fraglichen Eintrag, vorausgesetzt, dass das Ergebnis der Adreasenvergleichsoperation ein Treffer ist (im Fall eines Fehlschlags werden die Daten nicht geschrieben). Wenn das Assoziationsbit A auf null gesetzt ist, erlaubt es das Einschreiben von Daten in den durch die Adresse ausgewählten Eintrag ohne dass eine Adressenvergleichsoperation ausgeführt wird. Die Adresse, die bei einer assoziativen Schreiboperation mit dem durch das Assoziationsbit A spezifizierten Adressfeld zu vergleichen ist, ist die in den Schreibdaten enthaltene Adressmarke TAG. Eine derartige assoziative Schreiboperation wird veranschaulichend dazu verwendet, das Gültigkeitsbit V auf 0 rückzusetzen, um spezielle Cacheeinträge ungültig zu machen. Die Fig. 8 zeigt typische Schritte zum Ungültigmachen von Einträgen. Beim Zugreifen auf das Datenfeld CD-ary wird den Bits 3-2 der Adresse ein Langwort- Auswählbitfeld LS zugewiesen. In zwei Bits spezifiziert das Langwort-Auswählbitfeld LS die Langwortdaten, auf die zuzugreifen sind. Wenn das Assoziationsbit A auf 1 gesetzt ist, wird der Ausgang des ODER-Gatters OR2 auf Niedrig gehalten, solange nicht, und bis, eines der Treffersignale hit11 bis hit14 auf den Trefferpegel (Hoch) gebracht wurde, wie es in der Fig. 10 dargestellt ist. Dies erlaubt es, die Schreibdaten der Schreibselektorschaltung WS2 erst dann zuzuführen, nachdem die Adressenvergleichsoperation zu einem Treffer geführt hat. Bei einer nicht assoziativen Schreiboperation, die dadurch spezifiziert wird, dass das Assoziationsbit A auf 0 gesetzt ist, wird das Schreibsteuertor GT2 unabhängig vom Ergebnis der Adressenvergleichsoperation geöffnet. So wird eine nicht assoziative Schreiboperation veranschaulichend dazu verwendet, einfach das Adressfeld CA-ary bei Vorrichtungstests zu aktualisieren.
- Die oben erörterte Lesezugriffsoperation auf den Cachespeicher CACHE-M mit Adressenabbildung wird unter Verwendung von Datenübertragungsbefehlen wie dem Befehl MOV ausgeführt. Der Befehl ist veranschaulichend als MOV R1, R0 angegeben, wobei R1 die Quelladresse repräsentiert. Eine gewünschte Adresse wird unter Verwendung des in der Fig. 12 dargestellten Formats in das zugehörige Register R1 eingetragen. R0 repräsentiert das Zielregister. Das Ausführen des obigen Befehls NOV R1, R0 bewirkt, dass auf den Cachespeicher CACHE-M zugegriffen wird, um aus ihm Daten zu lesen, wie im Fall anderer Speicher, auf die durch den Befehl MOV zugegriffen werden kann. Die gelesenen Daten werden an das Register R0 übertragen. Auch der Zugriff auf den Cachespeicher CACHE-M zum Einschreiben von Daten in ihn wird ähnlich ausgeführt. Für eine Schreiboperation wird der Befehl typischerweise als MOV R0, R1 geschrieben, wobei R1 die Zieladresse repräsentiert. Eine gewünschte Adresse wird unter Verwendung des in der Fig. 12 dargestellten Formats in das zugehörige Register R1 eingetragen. R0 ist das Quellregister, das die Schreibdaten enthält. Das Ausführen des Befehls MOV R0, R1 sorgt dafür, dass auf den Cachespeicher CACHE-M zugegriffen wird, um die Daten in ihn zu schreiben, wie im Fall anderer Speicher, auf die durch den Befehl MOV zugegriffen werden kann. Der Schreibbefehl kann unter der Bedingung ausgeführt werden, dass die Adressinformation ein auf 1 gesetztes Assoziationsbit A enthält und dass die Schreibdaten die Adressmarke TAG des ungültig zu machenden Eintrags sowie das auf 0 gesetzte Gültigkeitsbit V enthalten. In diesem Fall wird die Schreiboperation effektiv nur dann ausgeführt, wenn die Adressenvergleichsoperation zu einem Cache-Treffer führt (der fragliche Eintrag wird ungültig gemacht); im Fall eines Cache- Fehlschlags wird keine Schreiboperation ausgeführt (der fragliche Eintrag wird nicht ungültig gemacht).
- Wenn der Cachespeicher CACHE-M in den Adressraum abgebildet wird und auf die beschriebene Weise adressierbar gemacht wird, werden Zugriffsoperationen auf den Cachespeicher unter Verwendung üblicher Datenübertragungsbefehle wie des Befehls MUV, der in beinahe allen Befehlssätzen enthalten ist, aus - geführt. Da keine speziellen Befehle dazu erforderlich sind, auf den Cachespeicher CACHE-M zuzugreifen, können die Typen von Befehlscodes verringert werden und die Befehlswörter können verkürzt werden. Anders gesagt, ist es möglich, ohne dass Bedarf an speziellen Befehlen zum Zugreifen auf den Cachespeicher CACHE-M besteht, möglich, einen Zuwachs der Abmessungen von Logikschaltungen zu unterdrücken, die den Befehlsdecodierer ID zum Decodieren von Befehlen innerhalb der zentralen Verarbeitungseinheit CPU bilden. Es ist auch einfach, Architekturerfordernisse des Mikrocomputers zu handhaben, die nach einer verkürzten Befehlswortlänge verlangen. Wenn z. B. der die Erfindung realisierende Mikrocomputer MPU 16-Bit-Befehle fester Länge verwendet, werden die Befehlscodes als wertvolle Ressource angesehen, da die Codes relativ kurz sind. Demgemäß erfordert das Schema, wenn der Cachespeicher CACHE-M in den Adressraum abgebildet ist und adressierbar gemacht ist, nur eingeschränkte Änderungen der Hardware des Befehlsdecodierers ID, ohne dass es erforderlich ist, irgendeinen neuen Befehlscode hinzuzufügen. Da das Adressformat das Assoziationsbit A enthält, das nach Wunsch eine assoziative Schreiboperation spezifiziert, ist es einfache, zwei verschiedenen Arten von Verarbeitungserfordernissen zu genügen: zum Ungültigmachen von Cacheeineträgen, die der Art nach Adressenvergleichsoperationen erfordern, und zum Aktualisieren von Cacheeinträgen, ohne dass Adressenvergleichsoperationen erforderlich sind, wie im Fall von Vorrichtungstests.
- Die Fig. 15 ist ein Blockdiagramm, das zeigt, dass adressierende Zugriffsoperationen auf den Cachespeicher CACHE-M und den Adressübersetzungspuffer TLB nur im privilegierten Modus der zentralen Verarbeitungseinheit CPU möglich sind. In der Fig. 15 ist die Steuerung des Zugriffs auf den Cachespeicher CACHE-M und den Adressübersetzungspuffer TLB mit Konzentration auf die zugehörige Indizierung dargestellt. Der Adressübersetzungspuffer TLB wird mit den Bits 16-12 der logischen Adresse versorgt. Bei einer adressierenden Zugriffsoperation auf den TLB entsprechen diese Bits dem Bankbezeichnungsbitfeldeintrag des Adressformats für die adressierende Zugriffsoperation in der Fig. 7. Der Cachespeicher CACHE-M wird mit den Bits 10-4 der logischen Adresse versorgt. Bei einer adressierenden Zugriffsoperation auf den Cach3-M entsprechen diese Bits dem Bankbezeichnungsbitfeldeintrag des Adressenformats für die adressierende Zugriffsoperation in der Fig. 12. Wie es aus der Speicherkarte der Fig. 3 erkennbar ist, überprüft eine Zugriffsrecht-Prüfschaltung 60 die vier Bits höherer Ordnung der logischen Adresse, um zu erkennen, ob die fragliche logische Adresse in die Bereiche P1 bis P4 fällt, auf die nur im privilegierten Modus zugegriffen werden kann. Wenn die Zugriffsrecht-Prüfschaltung 60 das Modusbit MB empfängt, prüft sie, ob die logische Adresse einen Privilegfehler aufweist (d. h. einen Versuch, im Benutzermodus auf die Bereiche P1 bis P4 zuzugreifen). Wenn ein Privilegfehler erkannt wird, teilt die Zugriffsrecht-Prüfschaltung 60 der zentralen Verarbeitungseinheit CPU einen Adressfehler mit. Als Antwort führt die zentrale Verarbeitungseinheit CPU einen Interrupt für die aktuelle Befehlsausführung aus, und sie verzweigt zu einer Ausnahmehandhabung. Da der Cachespeicher CACHE-M und der Adressübersetzungspuffer TLB in den Bereich P4 abgebildet sind, wie es in den Fig. 7 und 17 dargestellt ist, ist eine adressierende Zugriffsoperation auf diesem Bereich nur im privilegierten Modus möglich. In der Fig. 15 bilden die Register PTEH und NMUCR einen Teil der Steuerregister im Cachecontroller CACHE-C. XOR steht für eine Ausschließlich-ODER-Schaltung, und die Bezugszahl 18 bezeichnet eine Selektorschaltung. Diese Komponenten werden in Zusammenhang mit einer anderen Ausführungsform, die später beschrieben wird, beschrieben.
- In der obigen Beschreibung ist der die Erfindung realisierende Mikrocomputer MPU so konzipiert, dass er mehrere Seitengrößen unterstützt. Bei einer anderen Ausführungsform der Erfindung kann der Mikrocomputer das obige Merkmal mit Funktionen zum Unterstützen mehrerer Indizierverfahren ergänzen, um den Freiheitsgrad beim Ersetzen von TLB-Einträgen zu erhöhen und um sowohl einfache als auch mehrfache virtuelle Speicherung zu unterstützen. Die Zusatzfunktionen der zweiten Ausführungsform werden unten unter Bezugnahme auf die Fig. 16 bis 33 erörtert.
- Die Fig. 20 ist ein Blockdiagramm eines Mikrocomputers, der als zweite Ausführungsform der Erfindung realisiert ist, wobei dessen Speicherverwaltungseinheit MMU speziell im Detail dargestellt ist. Der Mikrocomputer der Fig. 20 wird, worauf jedoch keine Beschränkung besteht, durch bekannte Herstelltechniken für integrierte Halbleiterschaltungen auf einem einzelnen Halbleitersubstrat hergestellt, das veranschaulichend aus einkristallinem Silicium besteht. Die Fig. 20 enthält als Hauptschaltungsblöcke einen Bus VABUS für logische Adressen, einen Bus PABUS für physikalische Adressen, einen Datenbus DBUS, eine zentrale Verarbeitungseinheit CPU, eine Cacheeinheit CACHE, einen als Pufferspeicher wirkenden Adressübersetzungspuffer TLB und einen TLB-Controller TLB-C. Die zentrale Verarbeitungseinheit CPU ruft einen Befehl aus einem nicht dargestellten Programmspeicher ab, sie führt eine Datenverarbeitung entsprechend der Beschreibung des abgerufenen Befehls aus, sie gibt eine logische Adresse auf den Bus VABUS für logische Adressen aus, wenn ein externen Zugriff erforderlich ist, und sie bringt Daten für eine Daten- Eingabe/Ausgabe-Operation auf den Datenbus DBUS. Die Cacheeinheit CACHE ist, worauf jedoch keine Beschränkung besteht, als teilassoziative Vierwege-Speichereinheit konzipiert. Die Indizierung für Bänke erfolgt unter Verwendung eines Teils der vom Bus VABUS für logische Adressen zugeführten logischen Adresse. Die Eintragsmarke enthält eine physikalische Adresse. Die logische Adresse der indizierten Marke wird durch den Adressübersetzungspuffer TLB zum Vergleich mit der physikalischen Adresse übersetzt, die auf den Bus PABUS für physikalische Adressen auszugeben ist. Die Vergleichsoperation führt zur Beurteilung eines CACHE-Fehlschlags oder -treffers.
- Der auf die obige Weise realisierte Mikrocomputer unterteilt clen logischen Adressraum in als logische Seiten bezeichnete Einheiten, und er unterstützt virtuelle Speicherung zum Übersetzen logischer Adressen in physikalische in Einheiten dieser Seiten. Der Adressübersetzungspuffer TLB enthält als TLB-Einträge Übersetzungspaare logischer/physikalischer Adressen, bei denen jeweils eine logische Seitennummer VPN mit einer entsprechenden physikalischen Seitennummer PPN kombiniert ist. Unter Verwendung des Adressübersetzungspuffers TLB übersetzt der TLB-Controller TLB-C jede von der zentralen Verarbeitungseinheit CPU ausgegebene logische Adresse in eine physikalische Adresse. Der Adressübersetzungspuffer TLB besteht aus einem teilassoziativen Vierwege-Cachespeicher mit vier Bänken mit Indexadressen, die gemeinsam gelten. Um eine Verkomplizierung der Darstellung zu vermeiden, zeigt die Fig. 20 nur eine repräsentative Bank BNK0. In der Praxis existieren jedoch andere Bänke BNK1 bis BNK3 desselben Typs wie dem der Bank 0 in der Tiefenrichtung der Fig. 20, wie in der Fig. 6 dargestellt. Die Adressübersetzungsfunktion zum Unterstützen der oben beschriebenen virtuellen Speicherung wird vom Adressübersetzungspuffer TLB, dem TLB-Controller TGB-C, der zentralen Verarbeitungseinheit CPU und dem Systemprogramm oder dem Betriebssystem für Adressenübersetzung und Speicherschutz erbracht.
- Der Adressraum des als zweite Ausführungsform ausgeführten Mikrocomputers ist derselbe wie er bereits unter Bezugnahme auf die Fig. 3(A) und 3(B) erörtert wurde. Es existieren zwei Verfahren, um den Mikrocomputer in den privilegierten Modus zu versetzen: (1) durch Erzeugen eines Ausnahmefalls oder eines Interrupts und (2) durch Ausführen eines Befehls zum Einstellen des privilegierten Modus (TRAPA). Bei einem Zugriff auf den Adressübersetzungspuffer TLB und den Cachespeicher CACHE, wie unter Bezugnahme auf die Fig. 5 und 10 beschrieben, wird der Mikrocomputer unter Verwendung des obigen Verfahrens (2) in den privilegierten Modus versetzt, wobei jedoch keine Beschränkung hierauf besteht. Alternativ ist es möglich, auf den Adressübersetzungspuffer TLB und den Cachespeicher CACHE zuzugreifen, während der Mikrocomputer unter Verwendung des obigen Verfahrens (1) in den privilegierten Modus versetzt wurde. Der privilegierte Modus, in dem die zentrale Verarbeitungseinheit CPU alle Befehle ausführen und auf alle Register zugreifen kann, unterscheidet sich vom Benutzermodus, indem die CPU am Ausführen von Befehlen gehindert ist, die das System schwerwiegend beeinflussen würden, und indem sie an Zugriffen auf die Register und Speicherbereiche unter Systemsteuerung gehindert ist, und sie kann alleine spezielle Befehle ausführen und nur auf spezielle Register und Speicherbereiche zugreifen. Das heißt, dass die CPU im privilegierten Modus im Adressraum eine Zugriffsoperation ausführen kann, die im Benutzermodus als Adressfehler angesehen würde, und dass sie privilegierte Befehle oder Systemsteuerbefehle ausführen kann, die im Benutzermodus nicht ausgeführt werden können. Die zentrale Verarbeitungseinheit CPU ist in den privilegierten Modus versetzt, wenn, veranschaulichender Weise, das Modusbit MD auf 1 gesetzt ist; die MPU ist in den Benutzermodus gebracht, wenn das Modusbit MD auf 0 gesetzt ist.
- Wie bei der ersten Ausführungsform unterstützt der Mikrocomputer der zweiten Ausführungsform zwei Größen logischer Seiten: 4 KB und 1 KB. In ähnlicher Weise wird die Maximalgröße logischer Seiten ( = 4 KB) dadurch bestimmt, dass die Minimalgröße logischer Seiten ( = 1 KB) mit der n-ten Potenz von 2 multipliziert wird, und die Anzahl der Bänke für den Adressübersetzungspuffer TLB entspricht mindestens dem Ergebnis dieser Multiplizieroperation. Bei der zweiten Ausführungsform ist die Beziehung zwischen der Größe logischer Seiten einerseits und dem Offset und der logischen Seitennummer (logische Seitenadresse) andererseits dergestalt, wie es bereits unter Bezugnahme auf die Fig. 4 beschrieben wurde. Unabhängig davon, ob die Seitengröße 4 KB oder 1 KB ist, erfolgt die Indizierung des Adressübersetzungspuffers TLB unter Verwendung von Information in den fünf Bits niedriger Ordnung einer logischen Seitenadresse mit einer Seitengröße von 4 KB (d. h. mit den Bits 12-16 der logischen 32- Bit-Adresse). Die im Adressübersetzungspuffer TLB untergebrachten Einträge sind dieselben, wie sie oben in Verbindung mit der Fig. 4 erörtert sind.
- Nun wird der prinzipielle Unterschied zwischen virtueller Einzelspeicherung und virtueller Mehrfachspeicherung unter Bezugnahme auf die Fig. 32(A) und 32(B) beschrieben. Virtuelle Mehrfachspeicherung beinhaltet ein Qualifizieren oder Erweitern jeder logischen Adresse durch eine Prozessnummer asid, wobei jeder von mehreren Prozessen über individuelle Adressübersetzungsinformation verfügt, die den gesamten Logikraum überdeckt. Demgegenüber gehört zu virtueller Einzelspeicherung eine Qualifizierung oder Erweiterung jeder logischen Adresse durch die Prozessnummer asid, wobei mehreren Prozessen jeweils ausschließlich ein Teil des logischen Adressraums zugewiesen ist und wobei jeder Prozess über Adressübersetzungsinformation zum ihm zugewiesenen logischen Adressraum verfügt. Da bei der Initialisierung für virtuelle Einzelspeicherung mehreren Prozessen jeweils ausschließlich ein Teil des logischen Adressraums zugewiesen wird, verfügt derjenige Teil des logischen Adressraums, der jeden Prozess zugewiesen ist, über seine eigene Adressübersetzungsinformation, wie es in der Fig. 32(B) dargestellt ist. Dies bedeutet, dass nur eine Adressübersetzungstabelle existiert. Wenn eine einzelne Adressübersetzungstabelle in Gebrauch ist, wird eine vorgegebene logische Adresse A eindeutig in ihre entsprechende physikalische Adresse D übersetzt. Bei einer Konfiguration für virtuelle Mehrfachspeicherung werden Teilen des logischen Adressraums mehrere Prozesse auf einander überlappende Weise zugewiesen. Daraus ergibt sich, dass die Adressinformation für jeden Prozess in einer gesonderten Adressübersetzungstabelle enthalten sein muss. Genauer gesagt, kann eine vorgegebene logische Adresse A unter Verwendung verschiedener Adressübersetzungstabellen i und j in verschiedene physikalische Adressen B und C übersetzt werden. Der Prozess, zu dem die zu übersetzende logische Adresse A gehört, wird durch die Prozessnummer der Adresse gekennzeichnet. Wie es in der Fig. 32(A) dargestellt ist, entsprechen die Adressübersetzungstabellen i und j, wenn virtuelle Mehrfachspeicherung verwendet wird, den Prozessnummern i bzw. j. Jede Prozessnummer kann als Kennzahl für jeden von mehreren Prozessen angesehen werden, die denselben logischen Adressraum nutzen (z. B. bei einem Zugriff).
- In der Fig. 20 verfügt der TLB-Controller TLB-C über eine Steuerschaltung (CTRL) 50, ein Seitentabelleneintragsregister hoher Ordnung (PTEH) 51, ein Seitentabelleneintragsregister niedriger Ordnung (PTEL) 52, ein Übersetzungstabellebasis(TTB)-Register 53, ein TLB-Ausnahmeadresse(TEA)-Register 54 und ein Steuer(MMUCR)-Register 55. Wie es später unter Bezugsnahme auf die Fig. 34 erläutert wird, unterliegen diese Register direkten Lese/Schreib-Operationen durch die zentrale Verarbeitungseinheit CPU. Auf die Register 51 bis 53 kann auch direkt durch die zentrale Verarbeitungseinheit CPU zugegriffen werden.
- Wie es in der Fig. 19 dargestellt ist, verfügen das PTEH-Register 51 und das PTEL-Register 52 jeweils über einen Seitentabelleneintragsfeld, in dem ein Eintrag des Adressübersetzungspuffers TLB bei einem TLB-Fehlschlag zu aktualisieren oder hinzuzufügen ist. Durch Ausführen eines geeigneten Programms trägt die zentrale Verarbeitungseinheit CPU die Raumnummer asid für den aktuellen Prozess in das PTEH-Register 51 ein. Im falleines TLB-Fehlschlags ist das PTEH-Register 51 dazu in der Lage, diejenige logische Seitenadresse vpn des TLB-Fehlschlags zu speichern, die von der zentralen Verarbeitungseinheit CPU ausgegeben wird. Der Offset der logischen Adresse von der zentralen Verarbeitungseinheit CPU wird in einer nicht dargestellten Latchschaltung innerhalb der Steuerschaltung CTRL 50 registriert. Das TTB-Register 53 zeigt auch die Basisadresse der aktuellen Seitentabelle. Das TEA-Register 54 beherbergt die logische Adresse, für die eine TLB-Ausnahme oder eine Adressfehleraufnahme auftrat. Das MMUCR-Register 55 verfügt über ein Adressübersetzungsbit AT, das bezeichnet, ob eine Adressübersetzung aktiviert ist oder nicht (1 = aktiviert; 0 = deaktiviert), ein TLB-Räumbit TF, das ein Räumen des Adressübersetzungspuffers TLB spezifiziert, ein 2-Bit-Zufallszählerfeld RC, ein Indexmodusbit IX zum Spezifizieren des Indexmodus und ein Einzel-Virtuell-Bit SV (virtuelle Einzelspeicherung ist ausgewählt, wenn SV = 1 gilt; virtuelle Mehrfachspeicherung ist ausgewählt, wenn SV = 0 gilt). Wenn das Indexmodusbit IX auf 1 gesetzt ist, wählt die Ausführungsform ein Indizierverfahren aus, das die Bits 0-4 der aktuellen Raumnummer asid und die Bits 12-16 der logischen Seitennummer vpn nutzt, wie es in der Fig. 17 dargestellt ist. Wenn das Indexmodusbit IX auf 0 gesetzt ist, wählt die Ausführungsform ein anderes Indizierverfahren aus, das die Bits 12-16 der von der zentralen Verarbeitungseinheit CPU ausgegebenen logischen Seitennummer verwendet, wie es in der Fig. 16 dargestellt ist. Genauer gesagt, ist die wirkende Indexadresse, wenn das Indexmodus IX auf 1 gesetzt ist, das Ausgangssignal eines Exklusiv-ODER-Gatters XOR. Das Exklusiv-ODER-Gatter XOR führt eine ODER-Verknüpfung der Bits 0-4 der im PTEH-Register 51 gespeicherten Raumnummer asid und der Bits 12-16 der von der zentralen Verarbeitungseinheit CPU ausgegebenen logischen Seitennummer vpn aus, wie es in der Fig. 20 dargestellt ist. Der Selektor 18 in der Fig. 20 wählt als Indexadresse entweder das hashcodierte Ausgangssignal des Exklusiv-ODER-Gatters XOR oder die Bits 16-12 der logischen Seitennummer vpn aus. Die Auswahl wird abhängig vom Wert des Indexmodusbits IX gesteuert, und sie wird durch ein Auswählsignal 550 von der Steuerschaltung CTRL 50 ausgelöst.
- Gemäß der Fig. 20 werden von den die logische Seitennummer vpn der von der zentralen Verarbeitungseinheit CPU ausgegebenen logischen Adresse bildenden Bits 31-10 die Bits 12-16 (vpn) dazu verwendet, eine Indexadresse 2 zu verwenden, die den vier Bänken BNK0 bis BNK3 des TLB gemeinsam ist. Da die logische Seitennummer durch fünf Bits angegeben wird, wie bereits genannt, sorgt die gemeinsame Indexadresse 2 dafür, dass einer der 32 Einträge in jeder der Bänke ausgewählt und ausgelesen wird. Jeder der ausgewählten Einträge enthält VPN (Bits 31-17), VPN (Bits 11-10), ASID, SH, SZ, V, PPN (Bits 31-10), PR, C und D. Nach dem Auslesen wird das Feld VPN (Bits 31-17) durch einen Komparator 151 mit dem Feld vpn (Bits 31-17) der von der zentralen Verarbeitungseinheit CPU ausgegebenen logischen Adresse verglichen; das Feld VPN (Bits 11-10) wird durch einen Komparator 152 mit dem Feld VPN (Bits 11-10) der logischen Adresse von der CPU verglichen. Die ausgelesene Prozessnummer ASID wird durch einen Komparator 153 mit der im PTEH-Register 51 registrierten aktuellen Prozessnummer asid verglichen. Nach der Vergleichsoperation führt eine Steuerlogikschaltung 154 eine Prüfung aus, um unter Berücksichtigung des Gemeinsamnutzungs-Statusbits SH, des Seitengrößenbits SZ, des Einzel-Virtuell-Bits SV und des Modusbits MD zu erkennen, ob in der Bank BNK0 ein Fehlschlag oder ein Treffer aufgetreten ist. Die Beurteilung eines Fehlschlags oder eines Treffers in der Bank BNK0 wird durch ein Treffersignal hit1 repräsentiert. Die Komparatoren 151 bis 153 sind in jeder der Bänke BNK0 bis BNK3 vorhanden. Die Fig. 20 zeigt auf repräsentative Weise die jeweiligen Treffersignale hit2 bis hit4 für die Bänke BNK1 bis BNK3. Bei der zweiten Ausführungsform wird der Pegel der Ausgangssignale der Komparatoren 151 bis 153 als Übereinstimmungspegel angesehen, wenn er auf Hoch gebracht ist. Die Treffersignale hit1 bis hit4 nehmen jeweils den Trefferpegel ein, wenn sie auf Hoch gesteuert sind. Die Steuerschaltung 50 erkennt einen TLB-Treffer, wenn eines der Treffersignale hit1 bis hit4 auf den Trefferpegel gebracht ist. Die Bezugszahl 501 in der Fig. 20 entspricht einem TLB-Treffersignal, wie es von der Steuerschaltung 50 dazu verwendet wird, die zentrale Verarbeitungseinheit CPU über das Ergebnis der Treffer- oder -fehlschlagbeurteilung für den TLB zu informieren. Im Fall eines TLB-Fehlschlags wird der Eintrag im Adressübersetzungspuffer TLB ersetzt. Der Inhalt des zu ersetzenden Eintrags wird in das PTEH-Register 51 und das PTEL-Register 52 gegeben. Daraufhin liefern das PTEH-Register 51 und das PTEL-Register 52 Ersetzungsinformation an den Adressübersetzungspuffer TLB. Das Indizierverfahren zum Auswählen des zu ersetzenden Eintrags ist dasselbe wie für die Leseoperation, mit der Ausnahme, dass der Wert RC (MMUCR. RC) im MMCCR-Register 55 die Bank (die Gruppe) bestimmt, in die der fragliche Eintrag einzuspeichern ist.
- Die Fig. 33 ist ein Schaltbild der Steuerlogikschaltung 154. In der Fig. 33 entspricht die Bezugszahl 1541 einem UND-Gatter mit drei Eingängen, 142 einem ODER-Gatter mit zwei Eingängen und 143 einem anderen ODER-Gatter mit zwei Eingängen. Das ODER-Gatter 1542 lässt das Ausgangssignal des Komparators 152 oder das Größenbit SZ des indizierten TLB-Eintrags durch, wobei das Komparator-Ausgangssignal das Ergebnis des Vergleichs zwischen dem Feld VPN (Bits 11-10) im indizierten TLB-Eintrag (durch die Indexadresse ausgewählt und dann ausgelesen) und dem Feld vpn (Bits 11-10) in der logischen Adresse ist. Das Größenbit SZ bezeichnet die Größe logischer Seiten von 4 KB, wenn es auf 1 gesetzt ist. Bei einer Adressenvergleichsoperation für eine TLB-Fehlschlag- oder -treffer-Beurteilung, während die Größe logischer Seiten von 4 KB gilt, ist es nicht erforderlich, das Feld VPN (Bits 11-10) im TLB-Eintrag mit dem Feld vpn (Bits 11-10) von der zentralen Verarbeitungseinheit CPU zu vergleichen. Dies bedeutet, dass dann, wenn das Größenbit SZ auf 1 gesetzt ist, das Ergebnis der Vergleichsoperation an den Adressbits 11-10 nicht im Ausgangssignal hit1 des UND-Gatters 1541 widergespiegelt wird. Andererseits wird die Seite logischer Größen von 1 KB spezifiziert, wenn das Größenbit SZ auf 0 gesetzt ist. Wenn die Größe logischer Seiten von 1 KB gilt, ist für eine TLB- Fehlschlag- oder -treffer-Beurteilung eine Vergleichsoperation an den Adressenbits 11-10 erforderlich. Das Ergebnis der Beurteilung spiegelt sich im Signal hit1 wider.
- Das ODER-Gatter 1543 lässt das Ausgangssignal des Komparators 153 oder das Gemeinsamnutzungs-Statusbit SH im indizierten TLB-Eintrag durch, wobei das Komparator-Ausgangssignal das Ergebnis eines Vergleichs der Prozessnummer ASID im indizierten TLB-Eintrag mit der aktuellen Prozessnummer asid (d. h. der vom PTEH-Register 51 ausgegebenen Prozessnummer) ist. Wenn das Gemeinsamnutzungs-Statusbit SH auf 1 gesetzt ist (d. h., wenn eine logische Seite von Prozessen gemeinsam genutzt wird), ist es bei der Adressenvergleichsoperation für die TLB-Fehlschlag- oder -treffer-Beurteilung erforderlich, Prozessnummern zu vergleichen. So spiegelt sich dann, wenn sich das Gemeinsamnutzungs-Statusbit SH auf 0 gesetzt ist, das Ergebnis der Prozessnummern-Vergleichsoperation im Ausgangssignal hit1 des UND-Gatters 1541 wider.
- Die im TLB-Eintrag registrierte Prozessornummer ASID wird als Speicherschutzinformation (Domänennummer) bei einer Einstellung für virtuelle Einzelspeicherung verwendet. Das heißt, dass das Gemeinsamnutzungs-Statusbit SH anzeigt, ob die logische Seite von Prozessen gemeinsam genutzt wird, und zwar unabhängig davon, ob virtuelle Einzel- oder Mehrfachspeicherung gilt. Wenn bei der Einstellung für virtuelle Mehrfachspeicherung keine gemeinsame Nutzung einer logischen Seite spezifiziert ist, wird eine Fehlübereinstimmung zwischen der aktuellen Prozessnummer asid und der Prozessnummer ASID im TLB-Eintrag als TLB-Fehlschlag interpretiert. Wenn dagegen das nicht gemeinsame Nutzen einer logischen Seite bei einer Einstellung mit virtueller Einzelspeicherung gilt, wird eine Fehlüberstimmung zwischen der aktuellen Prozessnummer asid und der Prozessnummer ASID im TLB-Eintrag dazu verwendet, eine TLB-Schutzfehlerausnahme zu erkennen. Dieses Merkmal wird durch die Steuerschaltung 50 unter Verwendung eines UND-Gatters 502 in der Fig. 33 realisiert, das als Logikschaltung zum Prüfen des Zugriffsrechts wirkt. Das UND- Gatter 502 nimmt drei Eingangssignale auf: das invertierte Ausgangssignal des ODER-Gatters 1543, das Einzel-Virtuell- Bit SV des MUCR-Registers und das invertierte Signal des Modusbit MD vom Statusregister innerhalb der zentralen Verarbeitungseinheit CPU. Darauf gibt das UND-Gatter 502 ein Erkennungssignal 503 zu einer TLB-Schutzfehlerausnahme aus. Das Signal 503 zeigt die Erkennung einer TLB-Schutzfehlerausnahme an, wenn es auf Hoch gesteuert ist. Eine TLB- Schutzfehlerausnahme wird unter Verwendung des Signals 503 unter der Bedingung erkannt, dass zwischen Prozessnummern eine Fehlübereinstimmung besteht, dass die logische Seite nicht gemeinsam von Prozessen genutzt wird (d. h. dann, wenn das Ausgangssignal des ODER-Gatters 1543 Niedrig ist), dass virtuelle Einzelspeicherung gilt (SV = 1) und dass das Benutzermodusbit MD auf 0 gesetzt ist. Das heißt, dass dann, wenn virtuelle Einzelspeicherung gilt, im Fall einer Fehl- Übereinstimmung zwischen Prozessnummern und nicht gemeinsamer Nutzung einer logischen Seite für Prozesse tatsächlich ein TLB-Fehlschlag erkannt wird. Dieser Zustand wird als TLB-Schutzfehlerausnahme angesehen, um für Speicherschutz zu sorgen. Im privilegierten Modus, wie er dann spezifiziert ist, wenn das Modusbit MD auf 1 gesetzt ist, wird keine TLB- Schutzfehlerausnahme erkannt. Dies, da es erwünscht ist, dass im privilegierten Modus vom aktuellen Prozess auch auf logische Seiten zugegriffen wird, die anderen Prozessen zugewiesen sind.
- Die Fig. 22 ist ein Hauptflussdiagramm einer von der Steuerschaltung 50 ausgeführten Adressübersetzungssteuerung. Der Steuerungsablauf verfügt über vier Verarbeitungsniveaus: Niveau L1 zum Indizieren des Adressübersetzungspuffers TLB, Niveau L2 zum Vergleichen von Adressen und zum Prüfen des Bits V, Niveau L3 zum Prüfen des Zugriffsrechts und Niveau L4 zum Erzeugen einer physikalischen Adresse. Diese Prozesse werden durch die zentrale Verarbeitungseinheit CPU und durch den Controller 5 gesteuert.
- Auf dem Verarbeitungsniveau L1, auf dem der Adressübersetzungspuffer TLB indiziert wird, wird die zu verwendende logische Adresse unabhängig von der Größe logischer Seiten durch das Feld vpn geliefert (Bits 16-12). Der Wert IX im MMUCR-Register 55 (MMUCR.IX) bestimmt, ob die Indexadresse aus der logischen Adresse besteht oder nicht, die durch ein Exklusiv-ODER-Gatter XOR unter Verwendung der Teilraumnummer asid (Bits 4-0) einer Hash-Codierung unterzogen wurde. Wie es in der Fig. 23 dargestellt ist, wird dann, wenn der Wert MMUCR.IX auf 1 gesetzt ist, die zu verwendende Adresse unter Verwendung des Felds asid (Bits 4-0) einer Hash-Codierung unterzogen, um die Indexadresse zu erzeugen. Wenn der Wert MMUCR.IX auf 0 gesetzt ist, wird das Feld vpn (Bits 16-12) in unmodifizierter Weise als Indexadresse verwendet. Das erste Indizierverfahren ist in der Fig. 17 veranschaulicht, und das zweite Indizierverfahren ist in der Fig. 16 veranschaulicht. Wenn der Adressübersetzungspuffer TLB indiziert wird, wird einer der 32 Einträge in jeder der Bänke BNK0 bis EPNK3 ausgewählt und ausgelesen. Jeder der ausgewählten Einträge enthält VPN (Bits 31-12), VPN (Bits 11-10), ASID, SH, SZ, V, PPN (Bits 31-10), PR, C und D.
- Auf dem Verarbeitungsniveau L2, auf dem Adressen verglichen und das Bit V geprüft wird, wird die Adressenvergleichsoperation entsprechend der in der Fig. 24 dargestellten Prozedur ausgeführt. Die Prozedur sorgt, auf Grundlage der Logik der Steuerlogikschaltung 154, auch für die Erkennung einer TLB-Schutzfehlerausnahme, wenn die Raumnummer ASID verglichen wird. Unten erfolgt eine Beschreibung dazu, wie der Bereich der Adressenvergleichsoperation zu bestimmen ist, deren Ergebnis sich in den Treffersignalen hit1 bis hit4 widerspiegeln soll. Dia Tatsache, ob das Gemeinsamnutzungs- Statusbit SH auf 1 oder 0 gesetzt ist, bestimmt, ob die Raumnummer für die Adressenvergleichsoperation zu berücksichtigen ist oder nicht. Die Tatsache, ob das Größenbit SZ auf 1 oder 0 gesetzt ist, bestimmt, ob das Feld VPN (Bits 11-10) für die Adressenvergleichsoperation zu berücksichtigen ist oder nicht. Insbesondere wird, wenn virtuelle Einzelspeicherung gilt (SV = 1), der Datenwert im Raumnummerfeld ASID als Speicherschutzinformation verwendet. Wenn jedoch der privilegierte Modus ausgewählt ist (MD = 1), während virtuelle Einzelspeicherung gilt (SV = 1), ist das Raumnummerfeld ASID zu einem speziellen Zweck von der Adressenvergleichsoperation ausgenommen: damit der aktuelle Prozess Zugriff auf logische Seiten erlangen kann, die anderen Prozessen zugewiesen sind, d. h. zum Unterdrücken der Erkennung einer TLB-Schutzfehlerausnahme.
- Nachdem der TLB-Eintrag durch Indizieren des Adressübersetzungspuffers TLB gelesen wurde, wird das Gemeinsamnutzungs- Statusbit SH im ausgelesenen TLB-Eintrag als Basis dazu verwendet, zu bestimmen, ob die Raumnummer ASID für die Adressenvergleichsoperation zu berücksichtigen ist oder nicht. Wenn das Gemeinsamnutzungs-Statusbit SH auf 1 (Zustand mit gemeinsamer Nutzung) gesetzt ist, wird die Raumnummer ASID für die Adressenvergleichsoperation nicht berücksichtigt; wenn das Gemeinsamnutzungs-Statusbit SH auf 0 gesetzt ist (Zustand ohne gemeinsame Nutzung), wird die Raumnummer ASID für die Adressenvergleichsoperation berücksichtigt. Wenn der privilegierte Modus dadurch spezifiziert ist, dass das Modusbit MD des Statusregisters SR (SR. MD) auf 1 gesetzt ist, wobei virtuelle Einzelspeicherung dann ausgewählt ist, wenn das Bit SV des MMUCR-Registers 55 (MMUCR. SV) auf 1 gesetzt ist, wird die Raumnummer ASID zur Erkennung einer TLB- Schutzfehlerausnahme nicht berücksichtigt. Dies, da es die Art des privilegierten Modus erfordert, dass es für den aktuellen Prozess zulässig ist, auf anderen Prozessen zugewiesene logische Seiten zuzugreifen.
- Bei der zweiten Ausführungsform wird entsprechend dem Wert des Größenbits SZ im TLB-Eintrag entweder 1 KB oder 4 KB als Größe logischer Seiten ausgewählt. Wenn die Größe 1 KB logischer Seiten ausgewählt ist, werden die Informationsbits VPN (Bits 31-17) und VPN (Bits 11-10) im indizierten TLB- Eintrag jeder Bank mit den entsprechenden Bits vpn (31-17) und vpn (Bits 11-10) in der logischen Adresse verglichen. Wann die Größe 4 KB logischer Seiten ausgewählt ist, sind die Informationsbits VPN (Bits 11-10) im indizierten TLB- Eintrag jeder Bank und die entsprechenden Bits VPN (Bits 11 - 10) in der logischen Adresse von der Adressenvergleichsoperation ausgenommen.
- Die zu vergleichenden Felder (VPN (Bits 31-17), Bits 11-10), vpn (Bits 31-17, Bits 11-10), ASID, asid) werden auf die oben beschriebene Weise bestimmt, und sie werden der Adressenvergleichsoperation unterzogen. Wenn die Vergleichsoperation für irgendeine Bank zu einer Übereinstimmung führt, gibt diese Bank ein Treffersignal (eines von hit1 bis hit4) aus, das einen TLB-Treffer anzeigt. Wenn von keiner Bank irgendein Treffersignal ausgegeben wird, d. h. im Fall eines Fehlschlags für alle Bänke, wird eine TLB-Fehlschlagsausnahme erkannt. Das Ergebnis wird unter Verwendung des Signals 501 ebenfalls an die zentrale Verarbeitungseinheit CPU geliefert. Daraufhin führt die zentrale Verarbeitungseinheit CPU eine TLB-Fehlschlagsausnahmehandhabung aus, die später beschrieben wird.
- Für das Bit V im indizierten Eintrag jeder Bank (d. h. für das Bit V im durch Indizierung ausgelesenen Eintrag) erfolgt eine Prüfung. Wenn das Bit V des zu einem TLB-Treffer gehörenden Eintrags auf 1 gesetzt ist (ungültig), wird eine TLB- Ungültigkeitsausnahme erkannt, und diese wird an die zentrale Verarbeitungseinheit CPU berichtet. Was die CPU unternimmt, um diese Ausnahme zu handhaben, wird später beschrieben. Im Fall eines TLB-Fehlschlags wird das Ergebnis der Prüfung des Bits V zum Ersetzen des zum Fehlschlag gehörenden Eintrags verwendet, wie dies später beschrieben wird.
- Auf dem Verarbeitungsniveau L3 wird entsprechend dem Inhalt des Schutzschlüsselfelds PR im durch Indizierung ausgelesenen TLB-Eintrag und entsprechend dem Bit MMUCR.SV im MMUCR- Register das Zugriffsrecht geprüft. Zum Beispiel erfolgt, wie es in der Fig. 25 dargestellt ist, als Erstes eine Prüfung zum Erkennen, ob das Bit MMUCR.SV im MMUCR-Register den Wert 1 (virtuelle Einzelspeicherung) oder den Wert 0 (virtuelle Mehrfachspeicherung) hat. Wenn sich herausstellt, dass virtuelle Mehrfachspeicherung gilt (SV = 0), wird der durch die Information im TLB-Eintrag repräsentierte Adressraum entsprechend dem Inhalt des Schutzschlüsselfelds PR in der Fig. 21 geschützt. Wenn sich ergibt, dass virtuelle Einzelspeicherung ausgewählt ist (MMUCR.SV = 1), während der privilegierte Modus gilt (Bit SR. MD = 1 im Statusregister), kann auf den durch die Information im TLB-Eintrag bezeichneten Adressraum ohne Bedingungen zugegriffen werden. Wenn der Benutzermodus ausgewählt ist (SR. MD = 0) während virtuelle Einzelspeicherung gilt, werden die Raumnummer ASID und das Gemeinsamnutzungs-Statusbit SH beim Prüfen des Zugriffsrechts berücksichtigt. Das heißt, dass dann, wenn zwischen der Raumnummer asid im PTEH-Register 51 zum Zugriffszeitpunkt und der aus dem Adressübersetzungspuffer TLB ausgelesenen Raumnummer ASID Übereinstimmung besteht, während das Gemeinsamnutzungs-Statusbit SH 1 ist (Zustand mit gemeinsamer Nutzung), wird der durch die Information im TLB-Eintrag repräsentierte Adressraum entsprechend dem Schutzschlüsselfeld PR geschützt. Wenn dagegen zwischen den Prozessnummern Fehlübereinstimmung besteht, während das Bit SH 0 ist (Zustand ohne gemeinsame Nutzung), wird eine TLB-Schutzfehlerausnahme erkannt. Der Inhalt dieser Ausnahme wird später erörtert. Auch wird auf den Zugriffsrecht-Prüfniveau L3 eine Prüfung zum Zugriffstyp (zum Lesen oder zum Schreiben) ausgeführt, und es erfolgt auch eine Prüfung des Bits D des aus dem Adressübersetzungspuffer TLB gelesenen Eintrags. Wenn der Zugriff durch eine anfängliche Schreiboperation erfolgt (d. h. durch einen anfänglichen Schreibzugriff folgend auf das Einschalten der Spannung oder einen Rücksetzvorgang), wird eine Ausnahme betreffend ein anfängliches TLB-Seitenschreiben erkannt. Anders gesagt, wird eine Ausnahme betreffend ein anfängliches TLB-Seitenschreiben unter der Bedingung erkannt, dass die Speichermarke D im TLB-Eintrag folgend auf einen TLB-Treffer beim Vergleichen der logischen Adresse mit dem indizierten TLB-Eintrag den Wert 0 hat und dass der fragliche Zugriff eine Schreibzugriffsoperation ist. Wie die Ausnahme betreffend anfängliches TLB-Seitenschreiben zu handhaben ist, wird später beschrieben.
- Auf dem Verarbeitungsniveau L4 wird eine physikalische Adresse entsprechend dem Größenbit SZ im indizierten TLB-Eintrag erzeugt, wie es in der Fig. 26 dargestellt ist. Der Offset va (Bits 9-0) der zum Erzeugen der physikalischen Adresse pa verwendeten logischen Adresse VA wird in einer nicht dargestellten Latchschaltung in der Steuerschaltung CTRL aufbewahrt. Wenn das Größenbit SZ 0 ist (d. h. wenn die Größe logischer Seiten 1 KB ist), wird der Offset va (Bits 9-0) der logischen Adresse va von der zentralen Verarbeitungseinheit CPU als Offset pa (Bits 9-0) der physikalischen Adresse pa verwendet. Alle Bits PPN (Bits 31-10) der im Datenteil des TLB-Eintrags des Treffers enthaltenen physikalischen Seitennummer werden als physikalische Seitenadresse pa verwendet (Bits 31-10). Diese physikalische Seitenadresse wird auf ihrer Seite niedriger Ordnung durch den Offset der Adressbits 9-0 ergänzt, wodurch die physikalische Adresse pa erzeugt wird. Wenn das Größenbit SZ 1 ist (d. h., wenn die Größe logischer Seiten 4 KB ist), wird der Offset va (Bits 11-0) der logischen Adresse va von der zentralen Verarbeitungseinheit CPU als Offset pa (Bits 11-0) der physikalischen Adresse pa verwendet. Von den Bits PPn der physikalischen Seitennummer, die im Datenteil des TLB-Eintrags des Treffers enthalten sind, werden die PPN-Bits 31-12 unter Verwerfung der zwei Bits niedriger Ordnung als physikalische Seitenadresse pa (Bits 31-12) verwendet. Diese physikalische Seitenadresse wird auf ihrer Seite niedriger Ordnung durch den Offset der Adressbits 11-0 ergänzt, wodurch die physikalische Adresse pa erzeugt wird.
- Die Fig. 27 ist ein Flussdiagramm von auf Hardware beruhenden Steuerschritten zum Bezeichnen der Bank für eine Eintragsersetzung, wenn auf dem Verarbeitungsniveau L2 (für einen Adressenvergleich und für eine Prüfung des Bits V) eine TLB-Fehlschlagsausnahme erkannt wird. Dieser Steuerungstyp erfolgt einzig durch die Steuerschaltung 50 entsprechend ihrem logischen Aufbau unter Verwendung der Bits MMUCR. RC als Zufallszähler fällt. Die Anzahl der Bits MMUCR. RC multipliziert mit zwei entspricht der Anzahl der Bänke ( = 4) des Adressübersetzungspuffers TLB. Wenn keines der Treffersignale hit1 bis hit4 einen Trefferzustand anzeigt, beurteilt die Steuerschaltung 50, dass im Adressübersetzungspuffer TLB in Zusammenhang mit einem TLB-Fehlschlag ein Eintragsersatz erforderlich ist. Nach der Beurteilung inkrementiert die Steuerschaltung 50 den Inhalt des Felds MMUCR. RC um eins. Dann prüft die Steuerschaltung 50 das Bit V in jedem der vier indizierten Einträge, um zu erkennen, ob einer derselben ungültig ist. Wenn sich ergibt, dass bei einem vorgegebenen Eintrag das Bit V auf 1 gesetzt ist (was bedeutet, dass der indizierte Eintrag der Bank gültige Daten enthält), wird das inkrementierte Ergebnis als Nummer der Bank für den Austausch verwendet und für das Feld MMUCR.RC wird keine Operation ausgeführt. Wenn sich ergibt, dass das Bit V eines vorgegebenen Eintrags auf 0 gesetzt ist (was bedeutet, dass der indizierte Eintrag der Bank keine gültige Daten enthält), wird die Banknummer der Bank mit dem ungültigen Eintrag auf das Feld MMUCR.RC gesetzt, und die Bank, deren Banknummer eingetragen wurde, wird als Bank für die Ersetzung verwendet. Jedes der Bits MMUCR.RC kann durch die zentrale Verarbeitungseinheit CPU, die ein entsprechendes Programm ausführt, eine Wertänderung erfahren. Dies bedeutet, dass die auf die beschriebene Weise in das Register MMUCR eingetragene Banknummer durch Software geändert werden kann. Das heißt, dass als Bank für die Ersetzung jede beliebige Bank ausgewählt werden kann.
- Die Fig. 28 zeigt typische Schritte, wie sie von einem TLB- Fehlschlagshandler beim Aktualisieren eines TLB-Eintrags ausgeführt werden, wenn eine TLB-Fehlschlagsausnahme vorliegt. Ein TLB-Ladebefehl wird dazu verwendet, den Eintrag im Adressübersetzungspuffer TLB zu aktualisieren. Durch Ausführen des TLB-Ladebefehls (auch als LDTLB bezeichnet) sorgt die zentrale Verarbeitungseinheit CPU für die folgende Verarbeitung: die Werte der Register PTEH 51 und PTEL 52 werden als Erstes in einen Eintrag im Adressübersetzungspuffer TLB geschrieben. Der Eintrag, in den die Werte einzuschreiben sind ist, worauf jedoch keine Beschränkung besteht, derjenige, der innerhalb der Bank existiert, die durch die in das Feld MMUCR.RC eingetragene Banknummer spezifiziert ist, und der durch die Indexadresse spezifiziert ist, die aus der im PTEH-Register 51 registrierten logischen Adresse (Bits 12- 16) besteht. Wenn eine TLB-Fehlschlagsausnahme erkannt wird, wird ein Teil der aktuellen logischen Adresse (Bits 10-31) von der zentralen Verarbeitungseinheit CPU im PTEH-Register 51 registriert. So wird der zu ersetzende Eintrag durch die Indexadresse spezifiziert, die denselben Wert hat, wie er im Fall einer aufgetretenen TLB-Fehlschlagsausnahme gilt. Die zur Ersetzung verwendete Bank wird durch die in das Feld MMUCR.RC eingetragene Banknummer bestimmt.
- Wenn der Benutzer eine TLB-Fehlschlagsausnahme handhabt, erstellt er eine Seitentabelle in einem externen Speicher (RAM), wie in der Fig. 34 dargestellt. Veranschaulichend enthält die Seitentabelle auf vorbestimmte Weise eine Anzahl einzelner Übersetzungsinformationen (Seitentabelleneinträge) entsprechend einer Anzahl logischer Adressen. Eine geeignete Adresse in der Seitentabelle (z. B. die Startadresse) wird vorab als Basisadresse in das TTB-Register 53 eingetragen. In der Seitentabelle sind, veranschaulichenderweise, mehrere Seitentabelleneinträge entsprechend den mehreren logischen Adressen auf solche Weise angeordnet, dass jeder der Einträge (jeder enthält die entsprechende physikalische Seitennummer ppn, das Gültigkeitsbit v, das Schutzbit pr, das Größenbit sz, das Cachefähigkeitsbit c, die Speichermarke d und das Gemeinsamnutzungs-Statusbit sh) nachgeschlagen werden kann, wenn eine logische Adresse angegeben ist, und wobei die Basisadresse als Startadresse verwendet wird.
- Der TLB-Fehlschlagshandler wird vom Benutzer beschrieben. Wenn eine TLB-Fehlschlagsausnahme erkannt wird, startet die zentrale Verarbeitungseinheit CPU den TLB-Fehlschlagshand- Ler. Nachdem der TLB-Fehlschlagshandler gestartet wurde, platziert er die Information zur logischen Adresse vpn (Bits 10-31), wie sie zum Zeitpunkt des aufgetretenen TLB-Fehlschlags in Wirkung war, im PTEH-Register 51. Dabei kann das PTEH-Register 51 auch die Raumnummer aufnehmen, wie sie zum Zeitpunkt des TLB-Fehlschlags wirksam war. Die zentrale Verarbeitungseinheit CPU durchsucht unter Verwendung der Basisadresse im Register TTB 53 und der logischen Adresse, wie sie zum Zeitpunkt des TLB-Fehlschlags wirksam war, die Seitentabelle im externen Speicher. Wenn die Suche den Seitentabelleneintrag liefert, der der logischen Adresse entspricht, wie sie zum Zeitpunkt des TLB-Fehlschlags in Wirkung war, wird der Inhalt des erfassten Seitentabelleneintrags in das PTEH-Register 52 geladen. Dann wird ein TLB- Ladebefehl ausgegeben. Dies bewirkt, dass der entsprechende Eintrag im Adressübersetzungspuffer TLB durch die Werte im PTEH-Register 51 und im PTEL-Register 52 aktualisiert wird. Die Informationsbits vpn und asid der logischen Adresse, wie sie zum Zeitpunkt des TLB-Fehlschlags in Wirkung war (diese Bits sind im PTEH-Register 51 registriert), sind als VPN und ASIS zu verwenden, d. h. als Teil des TLB-Eintrags. Wie oben erörtert, ist der zu diesem Zeitpunkt zu ersetzende Eintrag ein solcher, der in der Bank existiert, die durch die in das Feld MMUCR. RC eingetragene Banknummer bezeichnet ist und die durch die Indexadresse bezeichnet ist, deren Wert derselbe wie derjenige ist, der zum Zeitpunkt des aufgetretenen TLB- Fehlschlags in Wirkung war.
- Die oben genannten TLB-Ungültigkeitsausnahme tritt im Fall eines Seitenfehlers folgend auf einen TLB-Treffer auf. Wenn diese Ausnahme erkannt wird, wird der erforderliche Seitentabelleneintrag im externen Speicher wiederhergestellt und das Bit V in diesem Eintrag wird auf logisch 1 gesetzt. Dann wird der fragliche Seitentabelleneintrag von externen Speicher in das PTEL-Register 52 geladen. Wenn der TLB-Ladebefehl ausgegeben wird, wird der fragliche Eintrag im Adressübersetzungspuffer TLB unter Verwendung der Werte im PTEH- Register 51 und im PTEL-Register 52 aktualisiert.
- Wenn die oben genannte Ausnahme betreffend das anfängliche TLB-Seitenschreiben erkannt wird, wird das Bit D im entsprechenden Seitentabelleneintrag im externen Speicher auf logisch 1 gesetzt. Nachdem der fragliche Seitentabelleneintrag vom externen Speicher in das PTEL-Register 52 geladen wurde, wird der TLB-Ladebefehl ausgegeben. Dies bewirkt, dass der fragliche Eintrag im Adressübersetzungspuffer TLB unter Verwendung der Werte im PTEH-Register 51 und im PTEL-Register 52 aktualisiert wird. Die Informationsbits vpn und asid der logischen Adresse, die zum Ausnahmefall führte, werden im PTEH-Register 51 aufrechterhalten. Die Situation, die es erfordert, das Bit D auf 1 zu setzen, tritt bei einer anfänglichen Schreiboperation in den physikalischen Seitenbereich im Hauptspeicher auf. Bei einer Seitenvertauschung beim Konfigurieren des virtuellen Speichers muss der Dateninhalt zwischen einem Hilfsspeicher und dem Hauptspeicher (z. B. dem externen Speicher in der Fig. 34) übereinstimmen. Dies erfordert es, eine Prüfung dahingehend vorzunehmen, dass erkannt wird, ob der Inhalt der im Hauptspeicher einem Austausch zu unterziehenden Seite in den Hilfsspeicher rückzukopieren ist. Für diese Prüfung wird die Speichermarke D verwendet.
- Wenn die oben genannte TLB-Schutzfehlerausnahme erkannt wird, wird die logische Seitennummer vpn der logischen Adresse, die zur Ausnahme geführt hat, in das PTEH-Register 51 geschrieben und die logische Seite wird in das TEA-Register 54 geschrieben. Danach wird der geeignete Handler gestartet, um den Schutzfehler zu lösen. Wenn das Feld MMUCR. RC als Zähler verwendet wird, wie oben erörtert, sollte dieser Zäh- ler vorzugsweise so inkrementiert werden, dass das Einschreiben eines Eintrags in eine neue Bank beim Handhaben einer TLB-Fehlschlagsausnahme möglich ist. Andererseits ist es bevorzugt, das Feld MMUCR. RC beim Handhaben einer TLB-Ungültigkeitsausnahme, einer Ausnahme beim anfänglichen TLB- Seitenschreiben und einer TLB-Schutzfehlerausnahme nicht zu inkrementieren. Dies, das es die letzteren Ausnahmen manchmal erfordern, einfach das Bit D oder V zu ändern, mit dem Ergebnis, dass der TLB wirkungsvoll genutzt wird, wenn die alte Bank dazu verwendet wird, die Änderung aufzunehmen, anstatt dass ein Wechsel auf eine neue Bank ausgeführt wird. Jedoch ist dieses Schema für die Erfindung nicht beschränkend, und es kann durch jedes andere geeignete Verfahren ersetzt werden.
- Die Fig. 29 und 30 zeigen alle Schritte für eine Ausnahmeerkennung hinsichtlich des Adressübersetzungspuffers TLB, wie sie dann arbeitet, wenn das Bit MMUCR.SV im Register MMUCR den Wert 0 hat. Gemäß der Fig. 29 wird der Adressübersetzungspuffer TLB als Erstes unter Verwendung der logischen Seitennummer vpn der logischen Adresse und der aktuellen Raumnummer asid auf geeignete Weise indiziert (Schritt 1). Wenn herausgefunden wird, dass das Gemeinsamnutzungs-Statusbit SH im indizierten Eintrag auf 0 gesetzt ist (was einen Zustand ohne gemeinsame Nutzung anzeigt, im Schritt 2), und wenn für die Raumnummer ASID oder die virtuelle Seitennummer VPN keine Übereinstimmung existiert (Schritt 3), wird eine TLB-Fehlschlagsausnahme erkannt (EX1). Wenn herausgefunden wird, dass das Gemeinsamnutzungs-Statusbit SH des indizierten Eintrags auf 1 gesetzt ist und wenn für die virtuelle Seitennummer VPN keine Übereinstimmung besteht (Schritt 4), wobei für ASID kein Vergleich ausgeführt wird, wird ebenfalls eine TLB-Fehlschlagsausnahme erkannt (EX1). Im Fall eines TLB-Treffers ("JA" in den Schritten 3 und 4), erfolgt eine Prüfung, um zu erkennen, ob das Bit V den Wert 1 hat (Schritt 5). Wenn sich ergibt, dass das Bit V 0 ist (ungültig), wird eine TLB-Ungültigkeitsausnahme erkannt (EX2). Wenn das Bit V 1 ist (gültig), erfolgt eine Prüfung des Modusbits SR.MD im Statusregister, um zu ermitteln, ob der Benutzermodus oder der privilegierte Modus in Wirkung ist (Schritt 6), wie es in der Fig. 30 dargestellt ist. Wenn herausgefunden wird, dass die zentrale Verarbeitungseinheit CPU im Benutzermodus arbeitet, erfolgt eine Prüfung, um zu erkennen, ob der durch Zugriff durch die CPU gelesene Eintrag in seinem Schutzschlüsselfeld PR Information enthält (PR = 00 oder 01), die einen Zugriff im privilegierten Modus erlaubt (d. h., dass der Zugriff im Benutzermodus gesperrt ist). Wenn sich ergibt, dass das Feld PR 00 oder 01 enthält, wird eine TLB-Schutzfehlerausnahme erkannt (EX3). Wenn sich ergibt, dass das Schutzschlüsselfeld PR des durch Zugriff im Benutzermodus gelesenen Eintrags 10 enthält, erfolgt eine weitere Prüfung, um zu erkennen, ob der Zugriff für eine Lese- oder eine Schreiboperation erfolgen soll. Wie es in der Fig. 21 dargestellt ist, in der das Schutzschlüsselfeld PR den Wert 10 enthält, darf der Benutzer nur einen Lesezugriff ausführen. Wenn sich herausstellt, dass der Zugriff durch den Benutzer ein Schreibzugriff ist, sorgt demgemäß der Unterschied im Zugriffstyp ("SCHREIBEN" im Schritt 7) dazu, dass eine TLB-Schutzfehlerausnahme erkannt wird (EX3).
- Wenn sich herausstellt, dass die CPU im privilegierten Modus arbeitet, erfolgt eine Prüfung, um zu erkennen, ob das Schutzschlüsselfeld PR des durch Zugriff von der CPU gelesenen Eintrags die Information 00 oder 10 enthält. Wenn sich ergibt, dass das Feld PR 00 oder 10 enthält, erfolgt eine andere Prüfung, um zu erkennen, ob der aktuelle Zugriffstyp mit dem Inhalt des Felds PR übereinstimmt. Wenn eine Fehlübereinstimmung besteht ("SCHREIBEN" im Schritt 8), wird eine TLB-Schutzfehlerausnahme erkannt (EX4). Der Typ des durch das Feld PR zugelassenen Zugriffsrechts differierte abhängig davon, ob die zentrale Verarbeitungseinheit CPU im Benutzermodus oder im privilegierten Modus arbeitet. In jedem Fall wird eine TLB-Schutzfehlerausnahme erkannt (EX3, EX4), wenn der versuchte Zugriff von anderem Typ als dem durch das Feld PR zugelassenen ist. Wenn der Zugriffstyp der durch das Feld PR zugelassene Schreibzugriff ("SCHREIBEN" im Schritt 9 oder 10) ist und wenn das Bit D im Eintrag 0 ist (d. h., dass in die Seite noch zu schreiben ist), wird eine Ausnahme betreffend anfängliches TLB-Schreiben (EX5) erkannt. Wenn das Bit 17 im Eintrag 1 ist und das Bit C in ihm 1 ist, wird auf die Cacheeinheit CACHE zugegriffen; wenn das Bit C 0 ist, wird auf den Hauptspeicher (z. B. den externen Speicher RAM oder ROM in der Fig. 34) zugegriffen. Wenn der Zugriffstyp der im Feld PR zugelassene Lesezugriff ist ("Lesen" in den Schritten 7 bis 10) und wenn das Bit C 1 ist, wird auf die Cacheeinheit CACHE zugegriffen; wenn das Bit C 0 ist, wird auf den Hauptspeicher zugegriffen.
- Die Fig. 34 hebt hervor, wie die in der Fig. 20 dargestellten Register mit der zentralen Verarbeitungseinheit CPU verbunden sind. Jedem der Register ist eine einzigartige Adresse zugewiesen. Die durch die zentrale Verarbeitungseinheit CPU erzeugte logische Adresse wird über einen internen Bus VABUS für logische Adressen an eine Selektorschaltung im TLB-Controller (TLB-C) geliefert. Die Selektorschaltung decodiert die empfangene logische Adresse. Wenn sich herausstellt, dass die decodierte logische Adresse eine solche ist, wie sie für eines der Register spezifisch ist, erzeugt die Selektorschaltung ein Auswählsignal, durch das dieses Register auszuwählen ist. Wenn sich z. B. ergibt, dass die logische Adresse dem PTEL-Register zuzuweisen ist, erzeugt die Selektorschaltung ein Auswählsignal C4 zum Auswählen desselben. Andere Register (PTEH, MMUCR; TEA, TTB) werden jeweils auf dieselbe Weise ausgewählt. Anders gesagt, werden diese Register adressenmäßig im Speicher abgebildet. Eine Schreib- oder Leseoperation von der zentralen Verarbeitungseinheit CPU oder in das ausgewählte Register aus ihm wird durch die CPU unter Verwendung eines Lese/Schreib-Steuersignals spezifiziert, das über einen nicht dargestellten internen Steuerbus an das fragliche Register geliefert wird. Wie es aus der Fig. 34 ersichtlich ist, sind die Register und die zentrale Verarbeitungseinheit CPU über einen internen Datenbus DBUS miteinander verbunden. Obwohl jeder der Register auch mit der Steuerschaltung 50 und dem TLB, wie in der Fig. 20 dargestellt, verbunden ist, sind diese Verbindungen in der Fig. 34 nicht enthalten, um zu verhindern, dass die Figur kompliziert wird. Durch Ausführen eines geeigneten Programms kann die zentrale Verarbeitungseinheit CPU Daten in jedes der Register einschreiben. Genauer gesagt, sorgt das geeignete, von der zentralen Verarbeitungseinheit ausgeführte Programm dazu, dass die dem fraglichen Register zugewiesene logische Adresse auf den Bus VABUS ausgegeben wird und auszugebende Daten auf den Bus DBUS ausgegeben werden. Dadurch, dass die zentrale Verarbeitungseinheit CPU über das eine Schreiboperation spezifizierende Lese/Schreib-Steuersignal verfügt, kann sie Daten in das gewünschte Register einschreiben. In ähnlicher Weise kann die zentrale Verarbeitungseinheit CPU Daten aus jedem der Register durch Ausführen eines geeigneten Programms auslesen. Das heißt, dass es die Ausführungs von Software der zentralen Verarbeitungseinheit CPU ermöglicht, die folgenden Schreiboperationen auszuführen: Einschreiben der logischen Raumnummer und der im Fall eines TLB-Fehlschlags geltenden logischen Adresse in das PTEH-Register; Einschreiben des Tabelleneintrags für die Ersetzung in das PTEL-Register; Einschreiben der Basisadresse in das Register TTB; und Einschreiben der logischen Adresse im Fall einer Schutzfehlerausnahme in das Register TEA. Auf ähnliche Weise kann die CPU auch verschiedene in der Fig. 19 dargestellte Steuerdaten in das Register MMUCR einschreiben, und sie kann spezielle Bits als Zähler verwenden.
- Der interne Bus VABUS für logische Adressen ist auch mit der Steuerschaltung CTRL und TLB verbunden. Wie bereits angegeben, verfügt die Steuerschaltung CTRL über eine Latchschaltung zum Aufbewahren des Offsets der logischen Adresse, wie sie vom internen Bus VABUS für logische Adressen eintrifft. Die CPU liefert die logische Adresse über den internen Bus VABUS für logische Adressen an den TLB, damit sie als Indexadresse oder Suchadresse verwendet wird. Alternativ kann die Latchschaltung in der Steuerschaltung CTRL nicht nur die Offsetadresse sondern auch die gesamte logische Adresse aufnehmen.
- Die Fig. 34 zeigt ausführlich den nur mit dem PTEH-Register verbundenen TLB. Die Raumnummer für die Beurteilung eines TLB-Fehlschlags oder -treffers wird vor der Weiterleitung an den TLB an das PTEH-Register eingetragen. Wenn eine TLB- Fehlschlagsausnahme gehandhabt wird, versorgt das PTEH-Register den TLB mit der logischen Adresse oder deren Äquivalent, wie beschrieben.
- Der interne Datenbus DBUS und der interne Bus PABUS für physikalische Adressen sind dem externen Datenbus DBUS und dem externen Adressbus ABUS über am Datenprozessor angebrachte Externanschlüsse TB und TA verbunden. Diese externen Busse sind veranschaulichender Weise mit externen Speichern RAM und ROM verbunden, wie es in der Fig. 34 dargestellt ist. Typischerweise kann der externen Speicher RAM ein flüchtiger Speicher sein, in dem verschiedene Tabellen erstellt sind, wie angegeben. Der externen Speicher ROM kann veranschaulichenderweise ein nichtflüchtiger Speicher sein, in dem verschiedene Programme (wie die Handler) gespeichert sind.
- Die Wirkungen und Vorteile der oben beschriebenen Ausführungsformen der Erfindung werden unten rekapituliert und einzeln aufgelistet.
- Das Adressfeld CA-ary des Cachespeichers CACHE-M wird in H'F0****** (H' bedeutet hexadezimal und ein Stern bedeutet eine beliebige Zahl) abgebildet; das Datenfeld CD-ary des Cachespeichers wird in H'F1****** abgebildet; das Adressfeld TA-ary des Adressübersetzungspuffers TLB wird in H'F2****** abgebildet; und das Datenfeld TD-ary des TLB wird in H'F3****** abgebildet. Das Adressformat wird so bestimmt, dass der mit Sternen gefüllte Teil eine Zeile und eine Bank bestimmt. Wenn dieses Adressformat verwendet wird, kann jede beliebige Zeile jeder beliebigen Bank nach Wunsch für jedes beliebige Adressfeld und Datenfeld sowohl im Cachespeicher CACHE-M als auch im Adressübersetzungspuffer TLB adressiert werden. Dieses Schema ermöglicht es, dass unter Verwendung üblicher Datenübertragungsbefehle, wie des Befehls MOV, der in beinahe jedem Befehlssatz enthalten ist, auf den Cachespeicher CACHE-M und den Adressübersetzungspuffer TLB zugegriffen werden kann. Es sind keine speziellen Befehle erforderlich, um zum Ungültigmachen eines Eintrags, für eine Lese/Schreib-Operation des Bits U, usw. auf den Adressübersetzungspuffer TLB oder den Cachespeicher CACHE-M zuzugreifen. Daher können die Typen von Befehlscodes verringert werden und die Befehlswörter können verkürzt werden. Anders gesagt, ist es, da es nicht erforderlich ist, spezielle Befehle zu verwenden, um auf den Adressübersetzungspuffer TLB zuzugreifen, möglich, Vergrößerungen des Umfangs von Logikschaltungen zu unterdrücken, die den Befehlsdecodierer ID zum Decodieren von Befehlen innerhalb der zentralen Verarbeitungseinheit CPU bilden. Es ist auch einfach, den Architekturerfordernissen eines Mikrocomputers gerecht zu werden, wie nach einer verringerten Befehlswortlänge verlangen. Wenn z. B. der die Erfindung verkörpernde Mikrocomputer MPU Befehle mit einer festen Länge von 16 Bits verwendet, werden die Befehlscodes als wertvolle Ressourcen angesehen, da die Codes relativ kurz sind. So erfordert das Schema, wenn der Adressübersetzungspuffer TLB in den Adressraum abgebildet wird und adressierbar gemacht wird, nur eingeschränkte Änderungen der Hardware des Befehlscodierers ID, ohne dass es erforderlich wäre, irgendeinen neuen Befehlscode hinzuzufügen.
- Das obige Adressformat beinhaltet das Assoziationsbit A, das eine assoziative Schreiboperation, falls erwünscht, spezifiziert. Das Bit A ermöglicht es, zu bestimmen, ob eine Schreiboperation im Fall einer Übereinstimmung zwischen der gesuchten Adressinformation, wie der Adressmarke TAG, und der logischen Seitennummer der ausgewählten Zeile einerseits und der entsprechenden Suchadressinformation in den Schreibdaten andererseits auszuführen ist oder nicht. So ist es einfach, zwei verschiedenen Arten von verarbeitungsanforderungen zu genügen: zum Ungültigmachen von TLB-Einträgen, was von Natur aus Adressenvergleichsoperationen erfordert, und zum Aktualisieren von TLB-Einträgen, ohne dass Adressenvergleichsoperationen erforderlich sind, wie im Fall von Vorrichtungstests.
- Wenn die Seitengröße kleiner als die Datenspeicherkapazität einer einzelnen Bank im Cachespeicher ist, verwendet die Ausführungsform das Feld der Adressmarke TAG, das ausreichend groß dazu ist, alle Bits der physikalischen Seite aufzunehmen, die der fraglichen Seitengröße entsprechen. Information zur physikalischen Adresse wird im Feld über die Anzahl der Bits hinaus aufbewahrt, die für eine Adressenvergleichsoperation erforderlich sind. Dies ermöglicht es, den Erfordernissen sowohl der Adressenvergleichsoperation als auch der Rückschreiboperation für die indizierten Cacheeinträge zu genügen. Dieses Merkmal ist nicht nur bei einem Mikrocomputer effektiv, der dazu in der Lage ist, Seitengrößen variabel einzustellen, sondern auch bei einem Aufbau, bei dem ein Cachespeicher großer Datenspeicherkapazität eingebaut werden muss.
- Wie es in den Fig. 4 und 19 dargestellt ist, verfügen die Seitentabelleneinträge und die TLB-Einträge jeweils über das Größenbit SZ, das es erlaubt, die Größe der logischen Seite von einer Seite zur anderen zu ändern. Der teilassoziative Vierwege-Adressübersetzungspuffer TLB wird für mehrere Größen logischer Seiten, die variabel eingestellt werden können, gemeinsam genutzt. Der die Erfindung realisierende Mikrocomputer MPU unterstützt zwei Größen logischer Seiten, nämlich 1 KB und 4 KB. Die Art des Spezifizierens der Indexadresse für den Adressübersetzungspuffer TLB ist für die zwei Größen logischer Seiten gleich. Wie es in den Fig. 16 und 17 dargestellt ist, werden die Bits 12-16 (d. h. vpn) in der logischen Adresse von 32 Bits als Index auf den Adressübersetzungspuffer TLB verwendet. Die minimale Größe logischer Seiten beträgt 1 KB, und die maximale Größe logischer Seiten beträgt 4 KB (= 2 multipliziert mit 2), was auch die Anzahl der Bänke (vier Bänke) ist. So kann der Adressübersetzungspuffer TLB bei einer Seitengröße von 1 KB, näherungsweise wie im Fall einer Seitengröße von 4 KB, insgesamt 128 Einträge irgendwelcher logischer Seitennummern aufnehmen.
- Wie es unter Bezugnahme auf die Fig. 24 erörtert wurde, muss die Anzahl der Bits für Adressenvergleichsoperationen für die Beurteilung eines Treffers oder eines Fehlschlags entaprechend der Größe der logischen Seite variiert werden. Wenn die Größe logischer Seiten 1 KB ist, müssen die Bits vpn (11-10) mit den Bits VPN (11-10) verglichen werden, was vom Fall abweicht, wenn die Größe logischer Seiten 4 KB ist. Der Adressübersetzungspuffer TLB verfügt über die Speicherbereiche VPN (31-17) und VPn (Bits 11-10), die alle Bits enthalten, die verglichen werden können, und er verfügt auch über einen 22-Bit-Speicherbereich zum Aufnehmen der physikalischen Seitennummer PPN. Im Adressübersetzungspuffer TLB verfügt der Datenteil jedes Eintrags über das Größenbit SZ, das die unterstützte Größe logischer Seiten anzeigt. Abhängig vom Wert des Größenbits SZ variiert der Adressübersetzungspuffer TLB die Anzeige der Bits, die zum Ausführen von Adressenvergleichsoperationen zur Treffer- oder -fehlschlag- Beurteilung verwendet werden. Wie es unter Bezugnahme auf die Fig. 24 beschrieben wurde, werden, wenn das Größenbit SZ auf 1 gesetzt ist (Größe logischer Seiten = 4 KB), die Bits VPN (31-17) mit den entsprechenden Bits in der logischen Adresse verglichen; wenn das Größenbit SZ auf 0 gesetzt ist (Größe logischer Seiten = 1 KB), werden die Bits VPN (31-17) und VPN (11-10) mit den entsprechenden Bits in der logischen Adresse verglichen.
- Wie skizziert, verwendet, wenn die gesamte Speicherkapazität des reellen Speichers im System begrenzt ist, ein Mikrocomputer, der selektiv mehrere Seitengrößen unterstützt, eine relativ kleine Größe logischer Seiten, um leicht dem Erfordernis genügen zu können, den Speichernutzungsfaktor in jedem Prozess anzuheben. In derartigen Fällen wird die maximale Größe logischer Seiten dadurch bestimmt, dass die minimale Größe logischer Seiten mit der n-ten Potenz von zwei multipliziert wird und die Anzahl der Bänke für den teilassoziativen Adressübersetzungspuffer TLB mindestens auf das Ergebnis dieser Multiplizieroperation eingestellt wird. Wenn diese Bedingungen erfüllt sind, nimmt der Adressübersetzungspuffer TLB im Prinzip Einträge beliebiger logischer Seitennummern auf, und zwar unabhängig davon, ob die Verfahren zum Spezifizieren der Indexadresse auf ein solches für die maximale Größe logischer Seiten vereinheitlicht sind oder nicht, und unabhängig davon, ob die ausgewählte Größe logischer Seiten die Maximale oder die Minimale ist. Wenn der mehrere Seitengrößen unterstützende Adressübersetzungspuffer TLB aus einem teilassoziativen Cachespeicher besteht, benötigt der so realisierte TLB eine Chipfläche, und er verfügt über einen Energieverbrauch, die ungefähr halb so groß wie bei einem vergleichbaren Puffer in Form eines Kamm (content adressable memory = inhaltsbezogen adressierter Speicher = Assoziativspeicher) sind.
- Wenn eine Konfiguration mit virtueller Mehrfachspeicherung unterstützt wird, um mehreren Prozessen zu genügen, von denen jeder seine eigene Adressübersetzungsinformation enthält, wobei sie durch eine Prozessnummer asid identifiziert sind, existieren zwei Verfahren zum Spezifizieren der Indexadresse für den Adressübersetzungspuffer TLB. Zu einem Verfahren gehört das Decodieren nur eines Teils der logischen Adresse, wie in der Fig. 16 dargestellt. Zum anderen Verfahren gehört das Decodieren des Ergebnisses, bei dem ein Exklusiv-ODER-Gatter XOR dazu verwendet wird, einen Teil der logischen Adresse unter Verwendung eines Teils der aktuellen Prozessnummer asid zu qualifizieren, wie es in der Fig. 17 dargestellt ist. Eines der zwei Indizierverfahren wird abhängig vom logischen Wert des Bits IX im Register MMUCR (MMUCR.IX) spezifiziert. Dies ermöglicht es, das optimale Indizierverfahren auszuwählen, um eine Verringerung der Trefferrate bei der Konfiguration mit virtueller Mehrfachspeicherung zu minimieren, bei der viele Prozesse parallel aktiviert werden. Nachdem ein Teil der logischen Adresse durch die Prozessnummer asid des Prozesses, der die fragliche logische Adresse verwendet, qualifiziert wurde, wird das Qualifikationsergebnis dazu verwendet, den Pufferspeicher hei der Konfiguration mit virtueller Mehrfachspeicherung zu indizieren. Dies minimiert das Abfallen der Trefferrate bei der Konfiguration mit virtueller Mehrfachspeicherung, bei der viele Prozesse parallel aktiviert sind.
- Wie oben beschrieben, ist der Adressübersetzungspuffer TLB als teilassoziative R Vierwege-Cachespeicher mit Bänken BNK0 bis BNK3, für die die Indexadressen alle gemeinsam sind, aufgebaut. Wenn in den mehreren Bänken gespeicherte Information ersetzt werden muss, wie veranschaulichend im Fall eines Cachefehlschlags, kann der zu ersetzende Datensatz nach Bedarf durch die ein geeignetes Programm ausführende zentrale Verarbeitungseinheit CPU spezifiziert werden. Das Feld RC im in der Fig. 19 dargestellten Register MMUCR (MMUCR. RC) ist ein 2-Bit-Feld, in dem die gewünschte Bank zu spezifizieren ist. Der in das Feld RC eingetragene Wert wird durch den Decodierer 17 der Fig. 18 decodiert, wodurch ein Signal (eines von Signalen BLS1 bis BLS4) erzeugt wird, um eine der vier Bänke BNK0 bis BNK3 auszuwählen. Durch das so erzeugte Signal wird eine der vier durch die Indexadresse 2 spezifizierten Bänke BNK0 bis BNK3 ausgewählt. Das Feld MMUCR.RC wird als Zähleinrichtung wie als Zufallszähler verwendet. Das Multiplikationsergebnis der Anzahl der Bits im Feld NMUCR.RC mit der n-ten Potenz von 2 entspricht der Anzahl der Bänke (= 4) des Pufferspeichers. Wie es unter Bezugnahme auf die Fig. 27 erörtert wurde, inkrementiert die Steuereinheit (CTRL) 50 das Feld MMUCR.RC um 1, wenn im Adressübersetzungspuffer TLB gespeicherte Information ersetzt werden muss (im Fall eines TLB-Fehlschlags). Die Bank für die Ersetzung wird gemäß den folgenden Regeln bestimmt: wenn alle Banken im indizierten Speicherbereich gültige Daten enthalten (d. h., wenn das Bit V jedes indizierten Eintrags auf 1 gesetzt ist), wird das Inkrementierergebnis als Banknummer Für die Bank für die Ersetzung angesehen. Wenn eine der Banken im indizierten Speicherbereich keine gültigen Daten enthält (d. h., wenn das Bit V irgendeines indizierten Eintrags auf 0 gesetzt ist), wird die Banknummer dieser Bank in das Feld MMUCR.RC eingetragen, und die Bank, deren Banknummer auf diese Weise eingetragen wurde, wird als Bank für die Ersetzung angesehen. Dabei kann der Wert jedes Bits im Feld MMUCR.RC nach Bedarf durch die ein geeignetes Programm ausführende zentrale Verarbeitungseinheit CPU variiert werden. Das heißt, dass das Feld MMUCR.RC funktionsmäßig nicht auf eine Inkrementierung um 1 im Fall eines TLB-Fehlschlags beschränkt ist. Das Feld MMUCR.RC kann auf solche Weise aktualisiert werden, dass es einen bestimmten Wert ausschließt. Ferner kann die zentrale Verarbeitungseinheit CPU geeignete Algorithmen ausführen, um Einträge auf eine Anzahl von Arten zu ersetzen: zufällig, auf FIFO(first-in, first-out)-Basis, gemäß der der zuerst geladene Eintrag der erste ist, der zu ersetzen ist, oder auf LRU(least recently used = am längsten nicht benutzt)-Basis, gemäß der der Eintrag, auf den am wenigsten Bezug genommen wurde, der erste ist, der zu ersetzen ist. So ist ein hoher Freiheitsgrad garantiert, wenn Einträge durch Aktualisierung des Felds MMUCR.RC ersetzt werden.
- Demgemäß sind die Algorithmen für das Ersetzen von Einträgen im Adressübersetzungspuffer TLB nicht festgelegt. Die Bank für die Ersetzung kann nach Wunsch durch Programmausführung bestimmt werden. Gemäß dieser Vorgehensweisen ist es möglich, zwei typischen Erfordernissen zu genügen: einem betreffend ein dauerhaftes Aufrechterhalten spezieller Übersetzungspaare für logische/physikalische Adressen im Adressübersetzungspuffer TLB; dem anderen zum Schützen bestimmter Einträge gegen ein Ersetzen.
- Der die Erfindung verkörpernde Mikrocomputer erlaubt es, einen von zwei virtuellen Speicherungstypen auszuwählen, nämlich virtuelle Mehrfach- und virtuelle Einzelspeicherung. Zu virtueller Mehrfachspeicherung gehört das Qualifizieren oder Erweitern jeder logischen Adresse durch eine Prozessnummer asid, wobei jeder der mehreren Prozesse über individuelle Adressübersetzungsinformation verfügt, die den gesamten logischen Raum überdeckt. Demgegenüber gehört zu virtueller Einzelspeicherung kein Qualifizieren oder Erweitern jeder logischen Adresse durch eine Prozessnummer asid, wobei mehreren Prozessen jeweils ausschließlich ein Teil des logischen Adressraums zugewiesen ist und wobei jeder Prozess über Adressübersetzungsinformation zum ihm zugewiesenen logischen Adressraum verfügt. Einer der zwei Typen virtueller Speicherung wird durch den Wert des in der Fig. 19 dargestellten Bits MMUCR.SV spezifiziert. Der Wert des Bits MMUCR.SV wird durch die ein geeignetes Programm ausführende zentrale Verarbeitungseinheit CPU nach Wunsch eingetragen. Der prinzipielle Unterschied zwischen virtueller Einzel- und Mehrfachspeicherung wurde früher unter Bezugnahme auf die Fig. 32 erörtert. Hauptunterschiedspunkte zwischen den zwei Typen virtueller Speicherung sind in der Fig. 31 veranschaulicht. Wie es in der Fig. 4 dargestellt ist, verfügt in der Adressübersetzungstabelle TLB jeder Eintrag nicht nur über die logische Seitennummer VPN und die physikalische Seitennummer PPN sonden auch die Prozessnummer ASID in einem speziell vorhandenen Feld. Der Wert dieses Felds wird abhängig davon, ob virtuelle Einzel- oder Mehrfachspeicherung gilt, für verschiedene Zwecke verwendet. Wenn es verboten ist, dass die der in einem vorgegebenen TLB-Eintrag enthaltenen Prozessnummer entsprechende logische Seite durch andere Prozesse gemeinsam genutzt wird, wird diese Prozessnummer ASID für eine TLB-Treffer- oder -fehlschlag-Beurteilung für den Adressübersetzungspuffer TLB verwendet, wie unter Bezugnahme auf die Fig. 29 erörtert. So wird ein TLB-Treffer nür dann erkannt, wenn die logische Seitennummer VPN in einem Eintrag des Adressübersetzungspuffers TLB mit der logischen Seitenadresse vpn übereinstimmt und wenn die Prozessnummer ASID des fraglichen Eintrags mit der aktuellen Prozessnummer asid übereinstimmt. Bei einer Konfiguration mit virtueller Einzelspeicherung wird die Prozessnummer ASID als Speicherschutzinformation (Domäneninformation) verwendet. Wenn im Benutzermodus ein anderer Prozess versucht, auf die aktuelle Seite zuzugreifen, für die eine gemeinsame Nutzung verboten ist, wird eine TLB-Schutzfehlerausnahme erkannt und durch einen geeigneten Handler gehandhabt.
- Virtuelle Einzel- und Mehrfachspeicherung werden selektiv dadurch unterstützt, dass der Wert des Bits MMUCR.SV durch die zentrale Verarbeitungseinheit CPU geeignet eingestellt wird. Diese Anordnung macht es bequemer, die Adressübersetzungsfunktion zu verwenden. Da die Prozessnummer ASID für virtuelle Mehrfachspeicherung im Fall einer virtuellen Einzelspeicherung als Speicherschutzinformation verwendet wird, wird für eine Konfiguration mit virtueller Einzelspeicherung leicht ein vollständiger Speicherschutz realisiert.
- Obwohl die obige Beschreibung viele spezielle Angaben enthält, sind diese nicht als den Schutzumfang der Erfindung beschränkend auszulegen, sondern so, dass sie lediglich Veranschaulichungen der aktuell bevorzugten Ausführungsformen der Erfindung sind. Zum Beispiel kann die Anzahl der Wege (d. h. der Bänke) für den Adressübersetzungspuffer und den Cachespeicher größer als 5 (z. B. 8) sein. Für die Größe des durch den Mikrocomputer unterstützten Adressraums besteht keine Beschränkung auf 4 GB. Die Anzahl der die logische Ädresse bildenden Bits kann entsprechend bestimmt werden. Es können beliebige Seitengrößen unterstützt werden, und die Anzahl der Typen von Seitengrößen kann nach Bedarf geändert werden. Für die als TLB-Eintrag registrierte logische Seitennummer VPN besteht keine strukturmäßige Beschränkung auf eine solche, die Bits zur Verwendung als Index ausschließt, wie im Fall der oben beschriebenen Ausführungsformen. Alternativ können alle Bits der logischen Seitennummer als TLB- Eintrag aufrechterhalten werden.
- Die vorstehende Beschreibung konzentrierte sich hauptsächlich auf einen Einchip-Mikrocomputer, eine Anwendung, die sowohl einen Adressübersetzungspuffer als auch einen Cachespeicher enthält und die zum technischen Gebiet der Erfinder gehört. Jedoch ist diese Anwendung für die Erfindung nicht beschränkend; die Erfindung ist in großem Umfang auf beliebige Datenprozessoren anwendbar, die über mindestens eines dieser zwei Speicheranordnungen, zusätzlich zur zentralen Verarbeitungseinheit verfügen.
- Zusammengefasst gesagt, sind die Hauptvorteile der Erfindung die Folgenden.
- Auf den Cachespeicher und den Adressübersetzungspuffer wird unter Verwendung üblicher Datenübertragungsbefehle, wie des Befehls MOV, der in beinahe jedem Befehlssatz enthalten ist, zugegriffen. Es sind keine speziellen Befehle dazu erforderlich, um zum Ungültigmachen eines Eintrags und für einschlägige Operationen auf den Adressübersetzungspuffer oder den Cachespeicher zuzugreifen. Daher können die Typen von Befehlscodes verringert werden und die Befehlswörter können verkürzt werden. Da es nicht erforderlich ist, spezielle Befehle zu verwenden, um auf den Adressübersetzungspuffer oder den Cachespeicher zuzugreifen, ist es möglich, eine Vergrößerung des Umfangs logischer Schaltungen zu unterdrücken, die den Befehlsdecodierer zum Decodieren von Befehlen innerhalb der zentralen Verarbeitungseinheit bilden.
- Es ist auch einfach, Architekturerfordernissen eines Mikrocomputers zu genügen, die nach einer verkürzten Befehlswortlänge verlangen. Wenn ein die Erfindung verkörpernder Mikrocomputer Befehle fester Länge mit einer relativ kleinen Anzahl von Bits verwendet, werden die Befehlscodes als wertvolle Ressource angesehen, da sie relativ kurz sind. Demgemäß erfordert die Vorgehensweise nur eingeschränkte Änderungen der Hardware des Befehlsdecodierers, ohne dass irgendein neuer Befehlscode hinzuzufügen wäre, wenn der Adressübersetzungspuffer oder der Cachespeicher in den Adressraum abgebildet wird und adressierbar gemacht wird.
- Es wird eine assoziative Schreiboperation unterstützt. Das heißt, dass Schreiboperationen entsprechend gesuchter Adressinformation, die nicht berücksichtigt wird, wenn Adressierung der einzige Zweck ist, ausgeführt werden. Diese Anordnung garantiert eine fehlerfreie Operation zum Ungültigmachen von Einträgen.
- Es kann verboten werden, dass die assoziative Schreiboperation auswählbar ist. Dies ermöglicht es, Vorrichtungstests für den Assoziativspeicher zu handhaben, d. h. Tests zum Einschreiben vorbestimmter Logikwertdaten in den getesteten Speicher mit anschließendem Verifizieren, ob derselbe Logikdatenwert aus dem Speicher ausgelesen werden kann oder nicht.
- Wenn die Seitengröße kleiner als die Datenspeicherkapazität einer einzelnen Bank im Cachespeicher ist, verwendet die Ausführungsform das Feld der Adressmarke TAG, das ausreichend groß ist, um alle Bits der physikalischen Seite, entaprechend der fraglichen Seitengröße, aufzunehmen. Im Feld wird Information zur physikalischen Adresse über die Anzahl der Bits hinaus, die für eine Adressenvergleichsoperation erforderlich sind, aufbewahrt. Die Anordnung genügt dem Erfordernis, bei einer Rückschreibkonfiguration, die Schreibzieladresse für den Eintrag unter Verwendung der Adressmarkeninformation im fraglichen Eintrag (einer, der durch einen neuen Eintrag zu ersetzen ist) zu erzeugen, obwohl es aus dem Gesichtspunkt assoziativer Operationen betreffend den Cachespeicher nicht erforderlich ist, dass die gesamte physikalische Seitenadresse in der Adressinarke enthalten ist. Dies ermöglicht es, angesichts zunehmender Datenspeicherkapazitäten und variierender Größen logischer Seiten im Cachespeicher, sowohl Adressenvergleichs- als auch Rückschreiboperationen für indizierte Cacheeinträge zu bewerkstelligen.
Claims (7)
1. Datenprozessor, aufweisend:
eine zentrale Verarbeitungseinheit (CPU),
eine Teilassoziativeinheit mit einer Steuerung (TLB-C,
CACHE-C) und einem Adressfeld (TA-ary, CD-ary) sowie einem
Datenfeld (TD-ary, CD-ary), wobei jedes Feld mehrere Einträge
aufweist,
wobei die Teilassoziativeinheit in dem von der zentralen
Verarbeitungseinheit verwalteten Adressraum vorgesehen ist,
dadurch gekennzeichnet, daß
eine von der zentralen Verarbeitungseinheit an die
Steuerung gelieferte Adresse ein Assoziationsbit beinhaltet,
das ein assoziatives oder nicht-assoziatives Schreiben zur
Teilassoziativeinheit bewirkt, wobei
dann, wenn die Steuerung von der zentralen
Verarbeitungseinheit eine einen Eintrag des Adressfelds bezeichnende
Adresse erhält und sich das Assoziationsbit in dieser Adresse
in einem ersten Zustand befindet, die Steuerung das Schreiben
von Daten in ein dem bezeichneten Eintrag zugeordnetes
vorbestimmtes Bit (V) erlaubt, wenn Adressinformationen in dem
bezeichneten Eintrag Adressinformationen in der Adresse von
der zentralen Verarbeitungseinheit entsprechen, jedoch ein
Schreiben von Daten in das vorbestimmte Bit verhindert, wenn
die Adressinformationen in dem bezeichneten Eintrag nicht den
Adressinformationen in der Adresse von der zentralen
Verarbeitungseinheit entsprechen, und
dann, wenn die Steuerung von der zentralen
Verarbeitungseinheit eine einen Eintrag des Adressfelds bezeichnende
Adresse erhält und sich das genannte Assoziationsbit in einem
zweiten Zustand befindet, die Steuerung ein Schreiben von
Daten in das vorbestimmte Bit unabhängig davon erlaubt, ob
Adressinformationen in dem bezeichneten Eintrag
Adressinformationen in der Adresse von der zentralen
Verarbeitungseinheit entsprechen.
2. Datenprozessor nach Anspruch 1, wobei das vorbestimmte
Bit ein Gültigkeitsbit (V) zur Angabe, ob der Eintrag gültig
ist, darstellt.
3. Datenprozessor nach Anspruch 2, wobei die
Teilassoziativeinheit einen Komparator (CMP0~3) enthält, um zu prüfen,
ob in dem Eintrag des Adressfelds gehaltene gesuchte
Adressinformationen den Adressinformationen in der Adresse von der
zentralen Verarbeitungseinheit (CPU) entsprechen und um ein
Hit-Signal auszugeben, wenn die gesuchten Adressinformationen
den Adressinformationen in der Adresse von der zentralen
Verarbeitungseinheit entsprechen,
wobei die Steuerung (TLB-C, CACHE-C) eine
Schreibsteuerschaltung zur Lieferung von Daten zum Einschreiben in die
genannten Einträge und eine Logikschaltung (OR1~2)
beinhaltet, die das Assoziationsbit und das Hit-Signal erhält, und
ein erstes oder ein zweites Steuersignal an die
Schreibsteuerschaltung ausgibt,
wobei die Logikschaltung das erste Steuersignal ausgibt,
wenn sie das Assoziationsbit in dem zweiten Zustand erhält,
oder wenn sie das Assoziationsbit in dem ersten Zustand und
das Hit-Signal erhält, und
wobei die Schreibsteuerschaltung Daten zum Schreiben in
das Gültigkeitsbit (V) in dem genannten Eintrag des
Adressfelds, der von der Adresse von der zentralen
Verarbeitungseinheit bezeichnet wird, liefert, wenn die
Schreibsteuerschaltung das erste Steuersignal erhält, und wobei das
Gültigkeitsbit von den genannten Daten überschrieben wird.
4. Datenprozessor nach Anspruch 3,
wobei die Logikschaltung (OR1~2) das zweite Steuersignal
ausgibt, obwohl sich das Assoziationsbit in dem ersten
Zustand befindet, wenn ihr das Hit-Signal nicht geliefert
wird, und
wobei die Schreibsteuerschaltung keine Daten zum
Schreiben an das Gültigkeitsbit (V) in dem genannten Eintrag des
Adressfelds, der von der Adresse von der zentralen
Verarbeitungseinheit (CPU) bezeichnet wird, liefert, wenn die
Schreibsteuerschaltung das zweite Steuersignal erhält, und
wobei das Gültigkeitsbit nicht von den Daten überschrieben
wird.
5. Datenprozessor nach Anspruch 4, wobei der erste Zustand
des Assoziationsbits logisch "1" und sein zweiter Zustand
logisch "0" ist.
6. Datenprozessor nach einem der Ansprüche 1 bis 5, wobei
die Teilassoziativeinheit eine Übersetzungseinheit (MMU) mit
einem Adressübersetzungspuffer (TLB) zum Speichern der
genannten Einträge und die Adressinformationen
Adressübersetzungsinformationen darstellen.
7. Datenprozessor nach einem der Ansprüche 1 bis 5, wobei
die Teilassoziativeinheit eine Cache-Speichereinheit (CACHE)
mit einem Cache-Speicher (CACHE-M) zum Speichern der
genannten Einträge und die Adressinformationen ein Adress-Tag
darstellen.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24199294 | 1994-09-09 | ||
JP8755595 | 1995-03-20 | ||
JP24087395A JP3713312B2 (ja) | 1994-09-09 | 1995-08-25 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69529374D1 DE69529374D1 (de) | 2003-02-20 |
DE69529374T2 true DE69529374T2 (de) | 2003-10-23 |
Family
ID=27305542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69529374T Expired - Lifetime DE69529374T2 (de) | 1994-09-09 | 1995-09-11 | Datenprozessor mit Teilassoziativer Einheit |
Country Status (5)
Country | Link |
---|---|
US (1) | US5835963A (de) |
EP (1) | EP0701212B1 (de) |
JP (1) | JP3713312B2 (de) |
KR (1) | KR100369923B1 (de) |
DE (1) | DE69529374T2 (de) |
Families Citing this family (116)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000501217A (ja) * | 1996-01-24 | 2000-02-02 | サン・マイクロシステムズ・インコーポレイテッド | 配列アクセス境界チェックを加速したプロセッサ |
US6012131A (en) * | 1996-11-06 | 2000-01-04 | Hyundai Electronics Industries. Co., Ltd. | High speed translation lookaside buffer employing content address memory |
KR100263672B1 (ko) * | 1997-05-08 | 2000-09-01 | 김영환 | 가변적인 페이지 크기를 지원하는 어드레스 변환장치 |
US6078987A (en) * | 1997-09-30 | 2000-06-20 | Sun Microsystems, Inc. | Translation look aside buffer having separate RAM arrays which are accessable with separate enable signals |
US6553475B2 (en) * | 1997-10-09 | 2003-04-22 | Matsushita Electric Industrial Co., Ltd. | Memory system with address conversion based on inherent performance condition |
US6516386B1 (en) * | 1997-12-31 | 2003-02-04 | Intel Corporation | Method and apparatus for indexing a cache |
JP3274859B2 (ja) | 1998-05-01 | 2002-04-15 | 松下電器産業株式会社 | データ処理装置 |
US6910109B2 (en) * | 1998-09-30 | 2005-06-21 | Intel Corporation | Tracking memory page state |
US6862635B1 (en) * | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
JP2001005726A (ja) * | 1999-04-20 | 2001-01-12 | Nec Corp | メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体 |
US7350028B2 (en) * | 1999-05-21 | 2008-03-25 | Intel Corporation | Use of a translation cacheable flag for physical address translation and memory protection in a host |
US6771646B1 (en) | 1999-06-30 | 2004-08-03 | Hi/Fn, Inc. | Associative cache structure for lookups and updates of flow records in a network monitor |
US6298394B1 (en) | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US6460174B1 (en) | 1999-10-01 | 2002-10-01 | Stmicroelectronics, Ltd. | Methods and models for use in designing an integrated circuit |
US6615370B1 (en) | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
US6542983B1 (en) | 1999-10-01 | 2003-04-01 | Hitachi, Ltd. | Microcomputer/floating point processor interface and method |
US7266728B1 (en) | 1999-10-01 | 2007-09-04 | Stmicroelectronics Ltd. | Circuit for monitoring information on an interconnect |
US6487683B1 (en) | 1999-10-01 | 2002-11-26 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US6859891B2 (en) | 1999-10-01 | 2005-02-22 | Stmicroelectronics Limited | Apparatus and method for shadowing processor information |
US7072817B1 (en) * | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
US6598177B1 (en) | 1999-10-01 | 2003-07-22 | Stmicroelectronics Ltd. | Monitoring error conditions in an integrated circuit |
US6502210B1 (en) | 1999-10-01 | 2002-12-31 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6557119B1 (en) | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US6408381B1 (en) | 1999-10-01 | 2002-06-18 | Hitachi, Ltd. | Mechanism for fast access to control space in a pipeline processor |
JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
US6826191B1 (en) | 1999-10-01 | 2004-11-30 | Stmicroelectronics Ltd. | Packets containing transaction attributes |
US6434665B1 (en) | 1999-10-01 | 2002-08-13 | Stmicroelectronics, Inc. | Cache memory store buffer |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6820195B1 (en) | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
US6591369B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics, Ltd. | System and method for communicating with an integrated circuit |
US6457118B1 (en) | 1999-10-01 | 2002-09-24 | Hitachi Ltd | Method and system for selecting and using source operands in computer system instructions |
US6349371B1 (en) | 1999-10-01 | 2002-02-19 | Stmicroelectronics Ltd. | Circuit for storing information |
US6449712B1 (en) | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
US7793261B1 (en) | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6574651B1 (en) | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
US6530047B1 (en) | 1999-10-01 | 2003-03-04 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6463553B1 (en) | 1999-10-01 | 2002-10-08 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US7000078B1 (en) * | 1999-10-01 | 2006-02-14 | Stmicroelectronics Ltd. | System and method for maintaining cache coherency in a shared memory system |
US6693914B1 (en) | 1999-10-01 | 2004-02-17 | Stmicroelectronics, Inc. | Arbitration mechanism for packet transmission |
US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6633971B2 (en) | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6412047B2 (en) | 1999-10-01 | 2002-06-25 | Stmicroelectronics, Inc. | Coherency protocol |
US6496905B1 (en) | 1999-10-01 | 2002-12-17 | Hitachi, Ltd. | Write buffer with burst capability |
US6701405B1 (en) | 1999-10-01 | 2004-03-02 | Hitachi, Ltd. | DMA handshake protocol |
US6928073B2 (en) * | 1999-10-01 | 2005-08-09 | Stmicroelectronics Ltd. | Integrated circuit implementing packet transmission |
US7260745B1 (en) | 1999-10-01 | 2007-08-21 | Stmicroelectronics Ltd. | Detection of information on an interconnect |
US6590907B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics Ltd. | Integrated circuit with additional ports |
US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6351803B2 (en) | 1999-10-01 | 2002-02-26 | Hitachi Ltd. | Mechanism for power efficient processing in a pipeline processor |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
US6665816B1 (en) | 1999-10-01 | 2003-12-16 | Stmicroelectronics Limited | Data shift register |
US6629115B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method and apparatus for manipulating vectored data |
US6779145B1 (en) | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6453387B1 (en) * | 1999-10-08 | 2002-09-17 | Advanced Micro Devices, Inc. | Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy |
JP2001125781A (ja) * | 1999-10-29 | 2001-05-11 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 |
TW494322B (en) * | 2000-05-29 | 2002-07-11 | Ibm | Prefix search method and data structure using compressed search tables |
EP1182568A3 (de) * | 2000-08-21 | 2004-07-21 | Texas Instruments Incorporated | Auf Task-Kennzeichnung basierte TLB-Operation |
EP1182571B1 (de) * | 2000-08-21 | 2011-01-26 | Texas Instruments Incorporated | Auf gemeinsamem Bit basierte TLB-Operationen |
US6546453B1 (en) * | 2000-08-31 | 2003-04-08 | Compaq Information Technologies Group, L.P. | Proprammable DRAM address mapping mechanism |
US7793111B1 (en) * | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US6678792B2 (en) * | 2001-06-22 | 2004-01-13 | Koninklijke Philips Electronics N.V. | Fast and accurate cache way selection |
US6715029B1 (en) * | 2002-01-07 | 2004-03-30 | Cisco Technology, Inc. | Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information |
US6895488B2 (en) * | 2002-05-22 | 2005-05-17 | Lsi Logic Corporation | DSP memory bank rotation |
US7941605B1 (en) | 2002-11-01 | 2011-05-10 | Cisco Technology, Inc | Methods and apparatus for generating a result based on a lookup result from a lookup operation using an associative memory and processing based on a discriminator portion of a lookup word |
JP4127054B2 (ja) * | 2003-01-14 | 2008-07-30 | ソニー株式会社 | 半導体記憶装置 |
GB0301448D0 (en) | 2003-01-22 | 2003-02-19 | Falanx Microsystems As | Microprocessor systems |
TW591388B (en) * | 2003-02-21 | 2004-06-11 | Via Tech Inc | Memory address decoding method and related apparatus by bit-pattern matching |
TWI221221B (en) * | 2003-02-27 | 2004-09-21 | Via Tech Inc | Address decoding method and related apparatus by comparing mutually exclusive bit-patterns of address |
US7181580B2 (en) * | 2003-03-27 | 2007-02-20 | International Business Machines Corporation | Secure pointers |
US20040199723A1 (en) * | 2003-04-03 | 2004-10-07 | Shelor Charles F. | Low-power cache and method for operating same |
US7159095B2 (en) * | 2003-12-09 | 2007-01-02 | International Business Machines Corporation | Method of efficiently handling multiple page sizes in an effective to real address translation (ERAT) table |
GB2411019B (en) | 2004-02-16 | 2007-03-07 | Advanced Risc Mach Ltd | Data accesses in data processing |
US7304905B2 (en) | 2004-05-24 | 2007-12-04 | Intel Corporation | Throttling memory in response to an internal temperature of a memory device |
US7370296B2 (en) * | 2004-05-25 | 2008-05-06 | International Business Machines Corporation | Modeling language and method for address translation design mechanisms in test generation |
JP4447977B2 (ja) | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US7523285B2 (en) * | 2004-08-20 | 2009-04-21 | Intel Corporation | Thermal memory control |
JP4366298B2 (ja) * | 2004-12-02 | 2009-11-18 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
JP2006185284A (ja) * | 2004-12-28 | 2006-07-13 | Renesas Technology Corp | データ処理装置 |
US7991966B2 (en) * | 2004-12-29 | 2011-08-02 | Intel Corporation | Efficient usage of last level caches in a MCMP system using application level configuration |
US20060195677A1 (en) * | 2005-02-28 | 2006-08-31 | Texas Instruments Incorporated | Bank conflict avoidance in a multi-banked cache system |
US20060242368A1 (en) * | 2005-04-26 | 2006-10-26 | Cheng-Yen Huang | Method of Queuing and Related Apparatus |
EP1736887A3 (de) | 2005-05-31 | 2009-04-22 | Stmicroelectronics Sa | Speicherseitenverzeichnis |
US7689806B2 (en) * | 2006-07-14 | 2010-03-30 | Q | Method and system to indicate an exception-triggering page within a microprocessor |
JP4994103B2 (ja) * | 2007-05-08 | 2012-08-08 | パナソニック株式会社 | アドレス変換メモリアクセス機構を備える半導体装置 |
US8527673B2 (en) | 2007-05-23 | 2013-09-03 | Vmware, Inc. | Direct access to a hardware device for virtual machines of a virtualized computer system |
US7769853B2 (en) * | 2007-06-12 | 2010-08-03 | International Business Machines Corporation | Method for automatic discovery of a transaction gateway daemon of specified type |
CN101216778B (zh) * | 2008-01-21 | 2011-04-13 | 中国科学院计算技术研究所 | 一种risc处理器装置及其指令地址转换查找方法 |
US8275598B2 (en) * | 2009-03-02 | 2012-09-25 | International Business Machines Corporation | Software table walk during test verification of a simulated densely threaded network on a chip |
WO2012070291A1 (ja) | 2010-11-26 | 2012-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュコヒーレンシ制御の方法、システムおよびプログラム |
US9921967B2 (en) | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
CN102880426B (zh) * | 2012-08-01 | 2015-05-27 | 龙芯中科技术有限公司 | 一种系统虚拟机减少tlb刷新的方法及系统虚拟机 |
US9026553B2 (en) * | 2012-11-29 | 2015-05-05 | Unisys Corporation | Data expanse viewer for database systems |
US9588902B2 (en) * | 2012-12-04 | 2017-03-07 | Advanced Micro Devices, Inc. | Flexible page sizes for virtual memory |
US9912713B1 (en) | 2012-12-17 | 2018-03-06 | MiMedia LLC | Systems and methods for providing dynamically updated image sets for applications |
WO2014122414A1 (en) * | 2013-02-05 | 2014-08-14 | Arm Limited | Handling memory access operations in a data processing apparatus |
US9606803B2 (en) | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
TWI489279B (zh) * | 2013-11-27 | 2015-06-21 | Realtek Semiconductor Corp | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
US10359937B2 (en) * | 2013-12-20 | 2019-07-23 | Sandisk Technologies Llc | System and method of implementing a table storage support scheme |
US9715342B2 (en) * | 2015-07-03 | 2017-07-25 | Xitore, Inc. | Apparatus, system, and method of logical address translation for non-volatile storage memory |
KR102509986B1 (ko) * | 2016-03-28 | 2023-03-14 | 삼성전자주식회사 | 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법 |
US10403333B2 (en) * | 2016-07-15 | 2019-09-03 | Advanced Micro Devices, Inc. | Memory controller with flexible address decoding |
US10176109B2 (en) * | 2017-04-20 | 2019-01-08 | Oracle International Corporation | Permuted memory access mapping |
US11032830B2 (en) * | 2017-05-05 | 2021-06-08 | Qualcomm Incorporated | Scheduling request for wireless systems |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
US10606762B2 (en) * | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
US10423349B2 (en) * | 2017-08-23 | 2019-09-24 | Western Digital Technologies, Inc. | Logical and physical address field size reduction by alignment-constrained writing technique |
US10783083B2 (en) * | 2018-02-12 | 2020-09-22 | Stmicroelectronics (Beijing) Research & Development Co. Ltd | Cache management device, system and method |
JP2023056289A (ja) | 2021-10-07 | 2023-04-19 | 富士通株式会社 | 演算処理装置および演算処理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58102381A (ja) * | 1981-12-15 | 1983-06-17 | Nec Corp | バツフアメモリ |
US5155833A (en) * | 1987-05-11 | 1992-10-13 | At&T Bell Laboratories | Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory |
CA2045789A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
GB9118312D0 (en) * | 1991-08-24 | 1991-10-09 | Motorola Inc | Real time cache implemented by dual purpose on-chip memory |
US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
US5299147A (en) * | 1993-02-22 | 1994-03-29 | Intergraph Corporation | Decoder scheme for fully associative translation-lookaside buffer |
US5606687A (en) * | 1993-10-07 | 1997-02-25 | Sun Microsystems, Inc. | Method and apparatus for optimizing supervisor mode store operations in a data cache |
US5539892A (en) * | 1994-08-02 | 1996-07-23 | Motorola, Inc. | Address translation lookaside buffer replacement apparatus and method with user override |
-
1995
- 1995-08-25 JP JP24087395A patent/JP3713312B2/ja not_active Expired - Fee Related
- 1995-09-06 KR KR1019950029113A patent/KR100369923B1/ko not_active IP Right Cessation
- 1995-09-07 US US08/524,791 patent/US5835963A/en not_active Expired - Fee Related
- 1995-09-11 EP EP95114249A patent/EP0701212B1/de not_active Expired - Lifetime
- 1995-09-11 DE DE69529374T patent/DE69529374T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5835963A (en) | 1998-11-10 |
EP0701212A2 (de) | 1996-03-13 |
JP3713312B2 (ja) | 2005-11-09 |
EP0701212B1 (de) | 2003-01-15 |
JPH08320829A (ja) | 1996-12-03 |
KR100369923B1 (ko) | 2003-05-12 |
DE69529374D1 (de) | 2003-02-20 |
KR960011712A (ko) | 1996-04-20 |
EP0701212A3 (de) | 1997-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69529374T2 (de) | Datenprozessor mit Teilassoziativer Einheit | |
DE69520718T2 (de) | Datenprozessor mit Adressübersetzungsmechanismus | |
DE3688192T2 (de) | Seitenorganisierter cachespeicher mit virtueller adressierung. | |
DE3587960T2 (de) | Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät. | |
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
DE69132005T2 (de) | Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE112005003863B3 (de) | Verwalten von Prozessorressourcen während Architekturereignissen | |
DE68923437T2 (de) | Adressenübersetzung für Seiten mehrfacher Grösse. | |
DE112005002405B4 (de) | Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung | |
DE60320026T2 (de) | Verbessertes speichermanagement für echtzeit-anwendungen | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
EP1934753B1 (de) | Tlb-verriegelungs-indikator | |
KR100382395B1 (ko) | 컴퓨터메모리에정보를기억하는방법및장치 | |
DE69715203T2 (de) | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE3587694T2 (de) | Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher. | |
DE69029173T2 (de) | Mikroprozessor | |
DE112017001027B4 (de) | Seitenfehlerbehebung | |
DE69331039T2 (de) | Rechnersystem mit einem Vorausholungscachespeicher | |
DE68926059T2 (de) | Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen | |
DE2749850C3 (de) | Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE102014014076A1 (de) | Reduzierte Adressenkonvertierung mit mehreren Seitengrößen | |
US6233668B1 (en) | Concurrent page tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |