DE69227740T2 - Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem - Google Patents
Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem DatenverarbeitungssystemInfo
- Publication number
- DE69227740T2 DE69227740T2 DE69227740T DE69227740T DE69227740T2 DE 69227740 T2 DE69227740 T2 DE 69227740T2 DE 69227740 T DE69227740 T DE 69227740T DE 69227740 T DE69227740 T DE 69227740T DE 69227740 T2 DE69227740 T2 DE 69227740T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- table entry
- page
- register
- virtual address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 109
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 17
- NFRBUOMQJKUACC-UHFFFAOYSA-N triethyl(pentyl)azanium Chemical compound CCCCC[N+](CC)(CC)CC NFRBUOMQJKUACC-UHFFFAOYSA-N 0.000 description 13
- 101001084276 Homo sapiens Phosphotriesterase-related protein Proteins 0.000 description 3
- 102100030961 Phosphotriesterase-related protein Human genes 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000009566 Mao-to Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein dynamisches Adreßübersetzungs- oder Adreßumsetzungsverarbeitungsgerät (im folgenden DAT-Verarbeitungsgerät) in einem Datenverarbeitungssystem, und sie bezieht sich insbesondere auf ein DAT-Verarbeitungsgerät, das eine Hochgeschwindigkeitsumwandlung eines in einem in einem Hauptspeicher gespeicherten Seitentabelleneintrag enthaltenen Aktualisierungsbits ermöglicht, um die Leistungsfähigkeit eines Datenverarbeitungssystems zu verbessern.
- In der letzten Zeit werden virtuelle Speichersysteme in Datenverarbeitungssystemen weithin entwickelt. Gemäß dem virtuellen Speichersystem kann ein Programmierer durch Verwendung eines virtuellen Adreßraums mit einer erheblich größeren Speicherkapazität als der des Hauptspeichers ein Programm einfach erstellen. Wenn der Programmierer ein Programm erstellt, braucht er als ein Verdienst dieses Systems nicht die Kapazität des Hauptspeichers in Betracht ziehen. In diesem Fall ist das DAT-Verarbeitungsgerät in Hardware (d. h. einer zentralen Verarbeitungseinheit und einem Hauptspeicher) im Datenverarbeitungssystem vorgesehen, um das virtuelle Speichersystem zu realisieren.
- Der virtuelle Adreßraum wird in einem logischen Speicher gehalten, der den Hauptspeicher und alle externen Speicher einschließt, während von einer zentralen Verarbeitungseinheit (CPU) in der Hardware nur auf den Hauptspeicher zugegriffen werden kann. Wenn die CPU auf eine Speicherstelle zugreift, die im Hauptspeicher nicht existiert, muß demgemäß diese Speicherstelle zum Hauptspeicher bewegt werden.
- Das DAT-Verarbeitungsgerät wandelt eine in einer Anweisung eines Programms enthaltene virtuelle Adresse in eine im Hauptspeicher physikalisch gespeicherte absolute oder reale Adresse um. Im DAT-Verarbeitungsgerät ist der Hauptspeicher in eine Vielzahl von Seiteneinheiten geteilt. Der virtuelle Adreßraum ist ebenfalls so in eine Vielzahl von Seiteneinheiten geteilt, daß sie Seiten des Hauptspeichers entsprechen.
- Der virtuelle Adreßraum ist ferner in eine Vielzahl von Segmenteinheiten geteilt, die jeweils größer als die Seiteneinheit sind. Das heißt, ein Segment ist aus mehreren Seiteneinheiten gebildet. Der virtuelle Adreßspeicher ist ferner in Zugriffseinheiten für mehrere Schritte geteilt, die jeweils länger als eine Segmenteinheit sind.
- Im folgenden wird eine Erklärung einer DAT-Operation in dem Fall zweier Zugriffsschritte, d. h. der Seite und des Segments, in dieser Beschreibung gegeben.
- DE-A-38 12 602 beschreibt ein virtuelles Speichersystem mit einem Segment und einer Seitentabelle in einem Speicher. Ein Adreßumsetzpuffer ist ferner vorgesehen, in welchem jeder Eintrag die virtuelle Adresse, ein C-Bit, um anzuzeigen, ob sich die entsprechende Speicherseite geändert hat, und ein R- Bit enthält, um anzuzeigen, ob auf eine Seite verwiesen wird.
- Gemäß einem ersten Gesichtspunkt der vorliegenden Erfindung wird ein dynamisches Adreßumsetzungsverarbeitungsgerät in einem Datenverarbeitungssystem geschaffen, das einen Hauptspeicher zum Speichern einer Adreßumwandlungstabelle und eine zentrale Verarbeitungseinheit zum Steuern einer dynamischen Adreßumsetzungsoperation enthält, um eine erste virtuelle Adresse in eine reale Adresse durch Bezugnehmen auf die Adreßumwandlungstabelle umzuwandeln, wobei die zentrale Verarbeitungseinheit gekennzeichnet ist, indem sie aufweist
- ein erstes Speichermittel zum Halten der ersten virtuellen Adresse,
- ein zweites Speichermittel zum Halten eines Tabelleneintrags der Adreßumwandlungstabelle entsprechend der ersten virtuellen Adresse,
- ein drittes Speichermittel zum Halten der realen Adresse des im zweiten Register gehaltenen Tabelleneintrags,
- ein Vergleichsmittel zum Vergleichen der ersten virtuellen Adresse mit einer zweiten virtuellen Adresse, die in die reale Adresse umgewandelt werden soll, und
- ein Aktualisierungsmittel zum Umwandeln von Inhalten des im zweiten Speichermittel gehaltenen Tabelleneintrags,
- worin, wenn die erste virtuelle Adresse mit der zweiten virtuellen Adresse im Vergleichsmittel übereinstimmt, der durch das Aktualisierungsmittel umgewandelte Tabelleneintrag in einer ersten Schreiboperation in eine im dritten Speichermittel gehaltene Adresse des Hauptspeichers geschrieben wird.
- In einer bevorzugten Ausführungsform enthält ein Tabelleneintrag der Adreßumwandlungstabelle ein von "0" nach "1" geändertes Aktualisierungsbit, wenn die erste Schreiboperation zu der entsprechenden Tabelle ausgeführt ist; die ersten, zweiten und dritten Register halten die virtuelle Adresse, den Tabelleneintrag und die Tabelleneintragadresse entsprechend der Seite beim letzten Abruf in der sequentiellen Abrufoperation für die dynamische Adreßumsetzung zu dem Hauptspeicher; und das Aktualisierungsmittel wandelt das Aktualisierungsbit des Tabelleneintrags von einem Bit "0" in "1" um, so daß es möglich ist, die Hochgeschwindigkeitsumwandlung des Aktualisierungsbits bei der Schreiboperation in die Seite auszuführen.
- In einer anderen bevorzugten Ausführungsform weist die zentrale Verarbeitungseinheit einen Adreßumwandlungspuffer zum Speichern der virtuellen Adresse und der entsprechenden realen Adresse und Erhalten der durch die virtuelle Adresse indexierten realen Adresse auf.
- Für ein besseres Verständnis der Erfindung, und um zu zeigen, wie dieselbe verwirklicht werden kann, wird nun bloß beispielhaft auf die beiliegenden Zeichnungen verwiesen, in denen:
- Fig. 1 ein schematisches Blockdiagramm eines herkömmlichen DAT-Verarbeitungsgeräts ist;
- Fig. 2 eine Ansicht ist, die eine grundlegende Operation der DAT erläutert, die in einer DAT-Steuereinheit ausgeführt wird;
- Fig. 3 ein schematisches Blockdiagramm eines DAT-Verarbeitungsgeräts gemäß einer Ausführungsform des ersten Gesichtspunkts der vorliegenden Erfindung ist;
- Fig. 4 ein ausführliches Blockdiagramm einer in Fig. 3 dargestellten DAT-Steuereinheit ist;
- Fig. 5 ein schematisches Blockdiagramm einer Ausführungsform des zweiten Gesichtspunkts der vorliegenden Erfindung ist;
- Fig. 6 ein ausführliches Blockdiagramm einer anderen Ausführungsform der in Fig. 2 dargestellten Struktur ist;
- Fig. 7 ein ausführliches Blockdiagramm ist, das mit der in Fig. 6 dargestellten Struktur verbunden ist;
- Fig. 8 ein ausführliches Blockdiagramm einer anderen Ausführungsform der in Fig. 5 dargestellten Struktur ist; und
- Fig. 9 ein ausführliches Blockdiagramm ist, das mit der in Fig. 8 dargestellten Struktur verbunden ist.
- Bevor die bevorzugten Ausführungsformen der vorliegenden Erfindung beschrieben werden, werden im folgenden ausführlich ein herkömmliches DAT-Verarbeitungsgerät und dessen Probleme erläutert.
- Fig. 1 ist ein schematisches Blockdiagramm eines herkömmlichen DAT-Verarbeitungsgeräts in dem Fall zweier Zugriffsschritte. In Fig. 1 bezeichnet Bezugsziffer 1 eine zentrale Verarbeitungseinheit (CPU), und Bezugsziffer 2 bezeichnet einen Hauptspeicher. Der Hauptspeicher 2 speichert eine Segmenttabelle 3 und eine Seitentabelle 4 für die DAT-Operation. Die CPU enthält eine Physikalischer-Zugriff-Steuereinheit 1A zum Steuern einer Zugriffsoperation durch die reale Adresse auf den Hauptspeicher 2 und eine Logischer- Zugriff-Steuereinheit 1B zum Steuern einer Zugriffsoperation durch die virtuelle Adresse auf den virtuellen Speicher.
- Die Physikalischer-Zugriff-Steuereinheit 1A hat einen Cachespeicher 6 und eine DAT-Steuereinheit 7 zum Steuern der DAT-Operation. Die DAT-Steuereinheit 7 wandelt die von der Logischer-Zugriff-Steuereinheit 1B empfangene virtuelle Adresse in die reale Adresse um und liefert die reale Adresse an den Hauptspeicher 2 und den Cachespeicher 6.
- Der Cachespeicher 6 wird durch einen Speicher gebildet, der eine höhere Lese/Schreibgeschwindigkeit als der Hauptspeicher 2 aufweist, und speichert vorzugsweise den Inhalt der Segmenttabelle 3 und der Seitentabelle 4, die zwischen dem Hauptspeicher 2 und der DAT-Steuereinheit 7 übertragen werden, gemäß einer Frequenz des Zugriffs. In der Zugriffsoperation werden, wenn die gewünschten Daten im Cachespeicher 6 registriert sind, solche Daten daraus (nicht aus dem Hauptspeicher) ausgelesen.
- Die Logischer-Zugriff-Steuereinheit 1B weist ein Virtuelle-Adresse-Register 8 und einen Adreßumsetzpuffer (TLB) 9 auf. Das erstgenannte gibt die virtuelle Adresse ein, die in einem Operanden der Anweisung von einer Anweisungseinheit (IU) enthalten ist, die die Anweisung des Programms interpretiert, und sendet diese virtuelle Adresse an die DAT-Steuereinheit 7. Der letztgenannte speichert die virtuelle Adresse und die reale Adresse in Form einer entsprechenden Tabelle, die durch die virtuelle Adresse indexiert ist, und gibt die reale Adresse daraus aus.
- Fig. 2 ist eine Darstellung, die eine grundlegende Operation der DAT erläutert, die in der DAT-Steuereinheit ausgeführt wird. In Fig. 2 enthält die virtuelle Adresse im Virtuelle-Adresse-Register 8 eine Segmentnummer, eine Seitennummer und einen Relativzeiger oder Offset (engl. offset) (Verschiebung innerhalb der Seite). Ein Segmenttabellenbezeichner STD bezeichnet ein Register, das eine Segmenttabellenbasis speichert, die eine Information bezüglich einer Kopfadresse und der Länge der Segmenttabelle 3 angibt.
- Die Segmenttabelle 3 wird durch eine Vielzahl von Segmenttabelleneinträgen (STE) gebildet, wobei jeder Segmenttabelleneintrag STE eine Seitentabellenbasis entsprechend der Seitentabelle 4 enthält. Die Seitentabellenbasis speichert Informationen bezüglich der Kopfadresse und ihrer Länge der Seitentabelle 4.
- Die Seitentabelle 4 wird durch eine Vielzahl von Seitentabelleneinträgen (PTE) gebildet. Jeder Seitentabelleneintrag PTE enthält eine Seitenrahmennummer, eine Aktualisierungsbitnummer C, ein Referenzbit R und ein Schutzbit P. Die Seitenrahmennummer bezeichnet ein oberes Bit der realen Adresse, die erhalten werden soll. Die reale Adresse kann durch Koppeln der Seitenrahmennummer mit dem in der virtuellen Adresse enthaltenen Offset erhalten werden. Das Referenzbit R wird von "0" nach "1" umgewandelt, wenn auf die entsprechende Adresse zum erstenmal zugegriffen wird. Das Aktualisierungsbit C wird von "0" nach "1" umgewandelt, wenn die entsprechende Seite zum erstenmal neu beschrieben wird. Das Schutzbit P sperrt die Schreiboperation, wenn das Bit "1" ist.
- Die Operation des in Fig. 1 und 2 dargestellten DAT-Verarbeitungsgeräts wird im folgenden erläutert.
- (1) Wenn von der Anweisungseinheit IU eine Zugriffsanweisung (d. h. ein Lese- oder Schreibzugriff) für die Seite und die Speicherstelle an die Logischer-Zugriff-Steuereinheit 1B ausgegeben wird, wird die im Operanden der Anweisung enthaltene virtuelle Adresse durch das Virtuelle-Adresse-Register 8 zu der DAT-Steuereinheit 7 übertragen, Zuerst wird die Segmentnummer der virtuellen Adresse durch die Segmenttabellenbasis des Segmenttabellenbezeichners STD geprüft. Falls die Segmentnummer in dem Bereich der Segmenttabelle nicht enthalten ist, wird dieser Zugriff als eine "Ausnahme" erkannt.
- (2) Wenn die Segmentnummer im Bereich der Segmenttabelle enthalten ist, wird die den Segmenttabelleneintrag STE speichernde reale Adresse gemäß der Segmenttabellenbasis und der Segmentnummer der virtuellen Adresse erhalten. Der Segmenttabelleneintrag STE wird von dem Hauptspeicher 2 oder dem Cachespeicher 6 auf der Basis dieser STE-Adresse erhalten.
- (3) Der Bereich der Seitennummer der virtuellen Adresse wird durch den erhaltenen Segmenttabelleneintrag STE geprüft. Falls die Segmentnummer nicht in dem Bereich der Segmenttabelle enthalten ist, wird dieser Zugriff als eine "Ausnahme" erkannt.
- (4) Wenn die Seitennummer in dem Bereich der Seitentabelle enthalten ist, wird die den Seitentabelleneintrag PTE speichernde reale Adresse (d. h. PTE-Adresse) auf der Basis der Seitentabellenbasis des Segmenttabelleneintrags STE und der Seitennummer der virtuellen Adresse erhalten. Der Seitentabelleneintrag PTE wird vom Hauptspeicher 2 auf der Basis dieser PTE-Adresse erhalten.
- (5) Wenn in den obigen Umwandlungsschritten die "Ausnahme" nicht erkannt wird und wenn die "Ausnahme" des physikalischen Zugriffs in dem Zugriff der Segmenttabelle STE und des Seitentabelleneintrags PTE nicht erkannt wird, wird die reale Adresse der Speicherstelle durch Koppeln des Offsets der virtuellen Adresse mit der unteren Seitenrahmennummer des Seitentabelleneintrags PTE erhalten.
- Der Adreßumsetzpuffer TLB 9 ist in dem neuen DAT-Verarbeitungsgerät vorgesehen, um die dynamische Adreßumsetzung zu vereinfachen, welche die reale Adresse durch Bezugnehmen auf die obige Segmenttabelle und die Seitentabelle erhält.
- Der Adreßumsetzpuffer TLB 9 wird durch einen Speicher mit einer hohen Zugriffsgeschwindigkeit gebildet. Der Adreßumsetzpuffer TLB 9 speichert die virtuelle Adresse und die der virtuellen Adresse entsprechende reale Adresse und gibt die der eingegebenen virtuellen Adresse entsprechende reale Adresse aus.
- Die Adreßumwandlung in dem Adreßumsetzpuffer TLB 9 wird wie folgt ausgeführt.
- (1) Die virtuelle Adresse von dem Virtuelle-Adresse- Register 8 wird vor der DAT-Operation durch die obige Umwandlungstabelle in den Adreßumsetzpuffer TLB 9 eingegeben. Falls die der eingegebenen virtuellen Adresse entsprechende virtuelle Adresse in dem Adreßumsetzpuffer TLB 9 enthalten ist, geht eine solche eingegebene virtuelle Adresse in einen "TLB- Treffer"-Zustand (engl. TLB hit), so daß die entsprechende reale Adresse sofort aus dem Adreßumsetzpuffer TLB 9 herausgenommen wird.
- (2) Falls die der eingegebenen virtuellen Adresse entsprechende virtuelle Adresse in dem Adreßumsetzpuffer TLB 9 nicht enthalten ist, wird eine solche eingegebene virtuelle Adresse ein "TLB-Fehltreffer"-Zustand (engl. TLB miss hit). In diesem Fall wird die reale Adresse durch die DAT-Operation erhalten, die auf die obige Segmenttabelle 3 und die Seitentabelle 4 Bezug nimmt. Die durch die obigen Schritte erhaltene reale Adresse wird in den Adreßumsetzpuffer TLB 9 geschrieben, so daß es möglich ist, einen "TLB-Treffer"-Zustand für die gleiche virtuelle Adresse zu erhalten, weil die reale Adresse schon in den Adreßumsetzpuffer TLB 9 geschrieben ist.
- Wie oben erläutert wurde, wird, wenn die Schreiboperation in eine Seite zum erstenmal ausgeführt wird, das Aktualisierungsbit C des Seitentabelleneintrags PTE entsprechend dem Hauptspeicher 2 von "0" in "1" umgewandelt. Die Umwandlungsschritte der Aktualisierung C des Seitentabelleneintrags PTE lauten wie folgt.
- Zuerst wird die reale Adresse des Seitentabelleneintrags PTE erhalten, so daß ein derartiger Seitentabelleneintrag PTE aus dem Hauptspeicher 2 in die CPU 1 ausgelesen wird, das Bit "1" in das Aktualisierungsbit C geschrieben und an den Hauptspeicher 2 zurückgegeben wird.
- Demgemäß ist der Schritt zum Erhalten der realen Adresse des Seitentabelleneintrags PTE, der den Segmenttabelleneintrag STE aus dem Hauptspeicher 2 ausliest, in einem herkömmlichen DAT-Verarbeitungsgerät ungeachtet der Verwendung des Adreßumsetzpuffers TLB 9 immer notwendig. Da das Aktualisierungsbit C häufig umgewandelt werden muß, wird folglich dieser Schritt ein Hindernis, um die Verarbeitungszeit in dem DAT-Verarbeitungsgerät zu verkürzen.
- Daher ist eine Aufgabe der vorliegenden Erfindung, ein DAT-Verarbeitungsgerät in einem Datenverarbeitungssystem zu schaffen, das eine Hochgeschwindigkeitsumwandlung des Aktualisierungsbits des Seitentabelleneintrags ermöglicht.
- Die Struktur und die Operation einer Ausführungsform der vorliegenden Erfindung werden wie folgt kurz erläutert.
- In einem Datenverarbeitungssystem mit einem Hauptspeicher zum Speichern einer Adreßumwandlungstabelle und einer zentralen Verarbeitungseinheit (CPU) zum Steuern einer dynamischen Adreßumsetzung, um eine virtuelle Adresse in eine reale Adresse durch Bezugnehmen auf die Adreßumwandlungstabelle umzuwandeln, gemäß der vorliegenden Erfindung enthält die CPU ein erstes Register zum Halten der virtuellen Adresse, ein zweites Register zum Halten eines Tabelleneintrags der Adreßumwandlungstabelle entsprechend der im ersten Register gehaltenen virtuellen Adresse, ein drittes Register zum Halten einer realen Adresse des in dem zweiten Register gehaltenen Tabelleneintrags, eine Vergleichsschaltung zum Vergleichen der in dem ersten Register gehaltenen virtuellen Adresse mit der in die reale Adresse umzuwandelnden virtuellen Adresse und ein Aktualisierungsmittel zum Umwandeln des Inhalts des im zweiten Register gehaltenen Tabelleneintrags. Wenn die erstgenannte virtuelle Adresse mit der letztgenannten virtuellen Adresse in der Vergleichsschaltung übereinstimmt, wird der durch das Aktualisierungsmittel umgewandelte Tabelleneintrag in die in dem dritten Register gehaltene Adresse des Hauptspeichers geschrieben.
- Der Tabelleneintrag der Adreßumwandlungstabelle des Hauptspeichers enthält ein Aktualisierungsbit, das von "0" nach "1" geändert wird, wenn die Schreiboperation zum erstenmal in die entsprechende Tabelle ausgeführt wird. Die ersten, zweiten und dritten Register halten die virtuelle Adresse, den Tabelleneintrag und die Tabelleneintragadresse entsprechend der Seite bei dem letzten Abruf in der sequentiellen Abrufoperation für die dynamische Adreßumsetzung zu dem Hauptspeicher. Ferner wandelt das Aktualisierungsmittel das Aktualisierungsbit des Tabelleneintrags von "0" in "1" um, so daß es möglich ist, die Hochgeschwindigkeitsumwandlung des Aktualisierungsbits bei der Schreiboperation in die Seite auszuführen.
- Die CPU hat einen Adreßumwandlungspuffer zum Speichern der virtuellen Adresse und der entsprechenden realen Adresse und Erhalten der durch die virtuelle Adresse indexierten realen Adresse.
- Fig. 3 ist ein schematisches Blockdiagramm eines DAT- Verarbeitungsgeräts gemäß einer Ausführungsform der vorliegenden Erfindung. Wie oben erläutert wurde, weist der Hauptspeicher 2 die Segmenttabelle 3 und die Seitentabelle 4 auf. Die CPU 11 weist die Physikalischer-Zugriff-Steuereinheit 11A und die Logischer-Zugriff-Steuereinheit 11B auf. Die Physikalischer-Zugriff-Steuereinheit 11A enthält eine DAT-Steuereinheit 12 gemäß der vorliegenden Erfindung.
- Die DAT-Steuereinheit 12 hat drei Register, d. h. ein Letzte-Umwandlung-Logische-Adresse-Register LTLAR 13, ein Letzte-Seitentabelleneintragadresse-Register LPTEAR 14 und ein Letzter-Seitentabelleneintrag-Register LPTER 15. Die DAT- Steuereinheit 12 weist ferner eine Aktualisierungsbit- Umwandlungsschaltung 10 zum Umwandeln des Aktualisierungsbits des Seitentabelleneintrags von "0" in "1" auf der Basis des Inhalts der obigen drei Register 13, 14 und 15 auf.
- Fig. 4 ist ein ausführliches Blockdiagramm einer in Fig. 3 dargestellten DAT-Steuereinheit. In der DAT-Steuereinheit 12, wie oben erwähnt, bezeichnet LTLAR 13 das Letzte-Umwandlung-Logische-Adresse-Register, bezeichnet LPTEAR 14 das Letzte-Seitentabelleneintragadresse-Register, und bezeichnet LPTER 15 das Letzter-Seitentabelleneintrag-Register. Bezugsziffer 15 bezeichnet ferner eine Adreßvergleichsschaltung, 17 und 19 bezeichnen Selektoren und 18 bezeichnet eine Aktualisierungsschaltung. Diese Schaltungen 16 bis 19 sind in der Aktualisierungsbit-Umwandlungsschaltung 10 in Fig. 3 enthalten.
- Die virtuelle Adresse VA von dem Virtuelle-Adresse-Register 8 wird in das Register LTLAR 13 und die Vergleichsschaltung 16 eingegeben. Die Ausgabe OU des Registers LTLAR 13 wird in den anderen Eingangsanschluß der Vergleichsschaltung 16 eingegeben. Die Vergleichsschaltung 16 vergleicht die virtuelle Adresse VA mit der Ausgabe OU des Registers LTLAR 13. Wenn die virtuelle Adresse VA und die Ausgabe OU übereinstimmen, gibt die Vergleichsschaltung 16 ein Bit "1" aus. Wenn sie nicht übereinstimmen, gibt die Schaltung 16 ein Signal (SEL) "0" aus. Das Bit "1" oder "0" des Signals SEL wird in beide Selektoren 17 und 19 eingegeben.
- Die reale Adresse RA von dem Adreßumsetzpuffer TLB 9 wird in den Selektor 17 und das Register LPTEAR 14 eingegeben. Die Ausgabe OU des Registerss LPTAR 14 wird in den anderen Eingangsanschluß des Selektors 17 eingegeben. Die Ausgabe des Selektors 17 bezeichnet die Adresse des Hauptspeichers 2 und des Cachespeichers 6. Der Selektor 17 wählt die reale Adresse RA aus, wenn das Signal SEL von der Vergleichsschaltung 16 "0" ist, und wählt die Ausgabe OU aus, wenn das Signal SEL "1" ist.
- Das Register LPTER 15 speichert den Seitentabelleneintrag PTE vom Cachespeicher 16.
- Die Aktualisierungsschaltung 18 wandelt das Aktualisierungsbit C des Seitentabelleneintrags PTE des Registers LPTER 15 vom Bit "0" in "1" um. Die Ausgabe der Aktualisierungsschaltung 18 wird in den anderen Eingangsanschluß des Selektors 19 eingegeben. Die Ausgabe IU der Anweisungseinheit 20 wird in den Selektor 19 eingegeben. Der Selektor 19 wählt die Ausgabe IU aus, wenn das Signal SEL das Bit "0" ist, und wählt die Ausgabe von der Aktualisierungsschaltung 18 aus, wenn das Signal SEL "1" ist. Die durch den Selektor 19 ausgewählten Daten werden in den Cache 6 eingegeben.
- Die Operation der DAT-Steuerschaltung 12 wird im folgenden ausführlich erläutert.
- (1) Man nehme an, daß keine Daten in eine beliebige Seite geschrieben sind, so daß das Aktualisierungsbit C des PTE entsprechend dieser Seite "0" ist. Wenn eine sequentielle Abrufoperation mit der DAT-Steuereinheit zu dieser Seite ausgeführt wird, wird die virtuelle Adresse für die letzte Abrufoperation in das Virtuelle-Adresse-Register LTLAR 13 eingegeben.
- (2) Der Segmenttabelleneintrag STE (d. h. LPTEA) und der Seitentabelleneintrag PTE (d. h. LPTE) der letzten Abrufoperation werden in dem Register LPTEAR 14 und dem Register LPTER 15 gespeichert. Die Aktualisierungsschaltung 18 wandelt das Aktualisierungsbit C des PTE des Registers LPTER 15 von dem Bit "0" in "1" um.
- (3) Wenn eine Schreibanweisung in die Seite ausgegeben wird, wird als nächstes die virtuelle Adresse in dem Schreibanweisungsoperanden in die DAT-Steuereinheit 12 eingegeben. Die Adreßvergleichsschaltung 16 vergleicht die Ausgabe des Registers LTLAR 13 mit der neuen virtuellen Adresse und stellt das Signal SEL auf "1" ein, weil die Ausgabe des Registers LTLAR 13 und die neue virtuelle Adresse in diesem Fall übereinstimmen.
- (4) Der Selektor 17 gibt die Adresse des Hauptspeichers 2 und des Cache 6 von dem Register LPTEAR 14 aus, wenn das Signal SEL "1" ist. Die Aktualisierungsschaltung 18 gibt den PTE mit dem von "0" in "1" umgewandelten Aktualisierungsbit C an den Selektor 19 aus.
- (5) Der Selektor 19 überträgt den PTE (das Aktualisierungsbit C dieses PTE ist schon aktualisiert) durch den Cachespeicher 6 zu dem Hauptspeicher 2, weil das Signal SEL "1" ist. Demgemäß ist die Umwandlung des Aktualisierungsbits des PTE des Hauptspeichers 2 auf der Grundlage der obigen Schritte abgeschlossen.
- (6) Der Selektor 17 wählt die Adresse des Hauptspeichers 2 und des Cachespeichers 6 aus der Ausgabe des TLB 9 aus. In diesem Fall wählt der Selektor 19 die Daten von der Anweisungseinheit 20 aus und gibt sie an den Hauptspeicher 2 und den Cachespeicher 6 aus.
- Wie oben erläutert wurde, ist es gemäß dieser Ausführungsform nach der letzten Abrufoperation in der sequentiellen Abrufoperation zu einer beliebigen Seite, wenn die Schreiboperation zur gleichen Seite ausgeführt wird, möglich, das Aktualisierungsbit C des PTE umzuwandeln, ohne die PTE- Adresse zu holen.
- Fig. 5 ist ein schematisches Blockdiagramm einer anderen Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform ist die DAT-Steuereinheit 7 der herkömmliche Typ, aber der Adreßumsetzpuffer TLB ist verbessert. Das heißt, wie in Fig. 5 dargestellt ist, enthält der Adreßumsetzpuffer TLB 9A in der Logischer-Zugriff-Steuereinheit 11' die Seiteneintragtabelle PTE und die PTE-Adresse (PTEA/PTE). Gemäß dieser Struktur ist es möglich, den PTE und die PTE-Adresse mit hoher Geschwindigkeit zu erhalten, so daß es möglich ist, die Umwandlung des Aktualisierungsbits mit hoher Geschwindigkeit auszuführen.
- Fig. 6 ist ein ausführliches Blockdiagramm einer anderen Ausführungsform der in Fig. 3 gezeigten Struktur, und Fig. 7 ist ein mit der in Fig. 6 gezeigten Struktur verbundenes ausführliches Blockdiagramm.
- In Fig. 6 wird die virtuelle Adresse (Operandenadresse OA) der Anweisung von der Anweisungseinheit (IU) durch den Selektor 30 in den Adreßumsetzpuffer TLB 31 eingegeben, und diese Adresse OA wird als ein Index für den Adreßumsetzpuffer TLB 31 verwendet.
- Die Adresse zu dem Hauptspeicher 2 ist eine Hauptspeicher-Adreßausgabe MAO, welche vom Selektor 39 ausgegeben wird. Ferner wird die Adresse zu dem Cachespeicher 40 (d. h. Operanden-Cache-Adresse: OCA) vom Selektor 39 ausgegeben. Die Ausgabe des Selektors 30 wird in den Adreßumsetzpuffer TLB 31, das Zugriffsadreßregister AAR 32 und das Cacheverzeichnis 34 eingegeben.
- In Fig. 7 werden die Anweisungsspeicherdaten ISD von der Anweisungseinheit 20 in den Hauptspeicher 2 als eine Hauptspeicherdatenausgabe MDO durch den Selektor 52 eingegeben und werden auch durch den Selektor 41 in den Cachespeicher 40 geschrieben.
- Die Daten MDI vom Hauptspeicher 2 werden durch den Selektor 42 zur Anweisungseinheit (IU) 20 übertragen und durch den Selektor 42 in die Register 44 bis 47 geladen. Die Daten MDI werden ferner durch den Selektor 41 in den Cachespeicher 40 geschrieben.
- Der Adreßumsetzpuffer TLB 31 weist zwei große Bereiche auf. Ein Bereich (ein oberer Abschnitt) hat das Steuerbit CTL (d. h. das Aktualisierungsbit C, das Referenzbit R und das Schutzbit P), die logische Adresse LA (die Segmentnummer und Seitennummer) und die reale Adresse RA (die Seitenrahmennum mer). Der andere Bereich (ein unterer Abschnitt) weist den Seitentabelleneintrag PTE und die PTE-Adresse PTEA auf.
- Falls die mit der virtuellen Adresse vom Selektor 30 übereinstimmende logische Adresse LA existiert, gibt der Adreßumsetzpuffer TLB 31 sie an den Komparator 33 aus. Der Komparator 33 vergleicht die reale Adresse RA von dem Adreßumsetzpuffer TLB 31 mit dem Inhalt des Registers AAR 32 und gibt ein "TLB-Treffer"-Signal aus, wenn die reale Adresse RA und der Inhalt übereinstimmen. Die der logischen Adresse LA entsprechende reale Adresse RA wird an einen Reale-Adresse- Generator RAG 35 ausgegeben.
- Der Reale-Adresse-Generator RAG 35 erzeugt die reale Adresse auf der Basis der realen Adresse RA vom Adreßumsetzpuffer TLB 31 und eines Teils des Adreßsignals von dem Register AAR 32 und gibt die reale Adresse an das Reale-Adresse- Register RAR und den Komparator 36 aus.
- Der Komparator 36 gibt ein Registersignal aus, das angibt, ob die dieser realen Adresse entsprechenden Daten in dem Cachespeicher 40 registriert sind oder nicht (d. h. Cache- Treffer). Dies beruht auf der realen Adresse von dem Reale- Adresse-Generator RAG 35 und der Ausgabe von dem Cacheverzeichnis 34. Dieses Registersignal wird verwendet, um zu bestimmen, ob die Daten aus dem Cachespeicher 40 oder dem Hauptspeicher 2 ausgelesen werden sollen.
- Der Adreßumsetzpuffer TLB 31 gibt ferner den Seitentabelleneintrag PTE und die PTE-Adresse aus. Falls der PTE und die PTE-Adresse entsprechend der virtuellen Adresse im Adreßumsetzpuffer TLB 31 existieren, wird der Seitentabelleneintrag PTE durch den Selektor 42 zu dem PTER 46 und dem Register LPTER 47 übertragen, wie in Fig. 6 und 7 dargestellt ist. Die PTEA wird von dem TLB 31 zu dem Register PTEAR 38 übertragen (siehe Fig. 8). Das Register RAR 37 überträgt die reale Adresse zu dem Cachespeicher 40 als die Operanden-Cache-Adresse OCA durch den Selektor 39 und überträgt die reale Adresse als die Hauptspeicheradresse MAO zu dem Hauptspeicher 2.
- Die Ausgabe des Zugriffsadreßregisters AAR 32 wird durch den Selektor 39 an das Umwandlung-Logische-Adresse-Register TLAR 43 und den Komparator 51 geliefert und nach einer kurzen Wartezeit wieder an den Selektor 30 geliefert.
- Wie in Fig. 7 dargestellt ist, wird die Ausgabe des Umwandlung-Logische-Adresse-Register TLAR 43 auch an das Virtuelle-Adresse-Register LTLAR 50 und den Selektor 52 geliefert. Das Register LTLAR 50 ist das Register, das die virtuelle Adresse bei der dynamischen Adreßumsetzung für die letzte Abrufoperation in der sequentiellen Abrufoperation zu der Seite hält. Die Ausgabe des Registers LTLAR 50 wird durch den Komparator 51 mit der virtuellen Adresse von dem Zugriffsadreßregister AAR 32 verglichen. Das Ergebnis des Vergleichs durch den Komparator 51 wird die Steuereingabe des Selektors 52.
- Der Selektor 52 empfängt die Segmenttabellenbasis vom Segmenttabellenbezeichner STD 44, den Segmenttabelleneintrag STE (oder die Seitentabelleneintragadresse PTEA) von dem Segmenttabelleneintragregister STER 45 und dem Letzter-Seitentabelleneintragadresse-Register LPTEAR 49, den Seitentabelleneintrag PTE vom Seitentabelleneintragregister PTER 46 und den Seitentabelleneintrag PTE von der Aktualisierungsschaltung 48.
- Der Selektor 52 wählt die obigen verschiedenen Eingaben aus, um die dynamische Adreßumsetzung auszuführen. Der Selektor 42 überträgt die reale Adresse zu dem Cachespeicher 40 als die Umwandlung-Reale-Adresse TRA, überträgt die reale Adresse zum Adreßumsetzpuffer TLB 31 als die Rückkehr-Reale- Adresse RRA und überträgt die reale Adresse zu dem Cachespeicher 40 und dem Hauptspeicher 2 als die Übersetzungsdatenausgabe TDO durch den Selektor 53.
- Der Selektor 42 empfängt die Daten MDI vom Hauptspeicher, die Speicherdaten ISD von der Anweisungseinheit IU, die Übersetzungs- oder Umwandlungsdatenausgabe vom Selektor 52, die Ausgabe vom Cachespeicher 40 und den Seitentabelleneintrag PTE vom Adreßumsetzpuffer TLB 31. Der Selektor wählt diese aus und gibt sie an die Anweisungseinheit 20 oder die Register 44 bis 47 aus.
- Die Register LTLAR 50, LPTEAR 49 und LPTER 47 halten die virtuelle Adresse, die PTE-Adresse und den PTE bei der DAT- Operation für den letzten Abruf in der sequentiellen Abrufoperation.
- Die Aktualisierungsschaltung 48 wandelt das Aktualisierungsbit C des PTE von dem Bit "0" in "1" um, wenn der PTE für die letzte Abrufoperation im Register LPTER 47 gehalten wird.
- Nimmt man an, daß die Schreiboperation in eine beliebige Seite ausgeführt wird, ist das dem PTE entsprechende Aktualisierungsbit C "0", und die sequentielle Abrufoperation mit der dynamischen Adreßumsetzung wird zu dieser Seite ausgeführt.
- Die Operandenadresse OA der Leseanweisung von der Anweisungseinheit IU 20 wird in den Adreßumsetzpuffer TLB 31, das Zugriffsadreßregister 32 und das Cacheverzeichnis 34 eingegeben. Ob der Inhalt dieser Seite gespeichert ist oder nicht, wird durch den Komparator 36 gezeigt. Falls der Inhalt im Cache 40 existiert, wird der Inhalt daraus gelesen.
- Wenn die der Operandenadresse OA entsprechende logische Adresse LA im Adreßumsetzpuffer TLB 31 nicht registriert ist, wird die logische Adresse LA an den Komparator 33 ausgegeben und mit der virtuellen Adresse von dem Zugriffsadreßregister AAR 32 verglichen. Wenn die logische Adresse und die virtuelle Adresse übereinstimmen, wird das "TLB-Treffer"-Signal, das eine Existenz oder ein Vorhandensein der der logischen Adresse im Adreßumsetzpuffer TLB 31 entsprechenden realen Adresse angibt, von dem Komparator 33 ausgegeben.
- Wenn der "TLB"-Treffer auftritt, wird die der logischen Adresse LA entsprechende reale Adresse RA aus dem Adreßumsetzpuffer TLB 31 herausgenommen und in den Reale-Adresse- Generator RAG 35 eingegeben. Der Reale-Adresse-Generator RAG 35 erzeugt die reale Adresse der Speicherstelle für das Objekt gemäß der aus dem TLB 31 herausgenommenen realen Adresse RA und dem in der Operandenadresse OA vom Zugriffsadreßregister 32 enthaltenen Offset und gibt die reale Adresse an das Reale-Adresse-Register RAR 37 aus.
- Das Reale-Adresse-Register RAR 37 überträgt die reale Adresse zu dem Selektor 39. Der Selektor 39 überträgt die reale Adresse von dem Reale-Adresse-Register RAR 37 zu dem Hauptspeicher 2 als die Hauptspeicheradresse MAO oder überträgt die Operandenadresse OA von dem Zugriffsadreßregister AAR 32 zu dem Cachespeicher 40 als die Operanden-Cache-Adresse OCA, wenn die Daten in dem Cachespeicher 40 registriert sind.
- Wenn die Daten in dem Cachespeicher 40 registriert sind, werden die Daten gelesen und durch den Selektor 42 zu der Anweisungseinheit IU 20 übertragen. Wenn die Daten in dem Cachespeicher 40 nicht registriert sind, werden die Eingabedaten MDI vom Hauptspeicher 2 zu der Anweisungseinheit IU 20 übertragen.
- Wenn der "TLB-Treffer" nicht auftritt (d. h. "TLB-Fehltreffer"), wird die normale DAT-Operation wie in Fig. 2 beschrieben ausgeführt. In diesem Fall wird die in dem Zugriffsadreßregister 32 gespeicherte Operandenadresse OA durch den Selektor 39 und das Umwandlung-Logische-Adresse-Register TLAR 43 zum Selektor 52 übertragen.
- Der Selektor 52 erhält die reale Adresse des Segmenttabelleneintrags STE gemäß dem Segmentindex in der virtuellen Adresse von dem Register TLAR 43 und der Segmenttabellenbasis von dem Segmenttabellenbezeichner STD 44 und gibt die reale Adresse an den Cachespeicher 40 als die Umwandlung-Reale- Adresse TRA aus. Der Cachespeicher 40 gibt den entsprechenden Segmenttabelleneintrag STE an das Segmenttabelleneintragregister STER 45 aus.
- Als nächstes wird die reale Adresse des PTE von dem STE und dem Seitenindex der virtuellen Adresse erhalten, so daß der gewünschte PTE aus dem Cachespeicher 40 herausgenommen und durch das Seitentabelleneintragregister PTER 46 zu dem Selektor 52 übertragen wird. Der Selektor 42 gibt den Seitentabelleneintrag PTE an den Adreßumsetzpuffer TLB 31 zurück, der die Seitenrahmennummer und das Steuerbit des PTE in die reale Adresse RA und die Steuerung CTL schreibt.
- Die in den TLB 31 geschriebene reale Adresse RA wird als Antwort auf den "TLB-Treffer" zu dem Reale-Adresse-Generator RAG 35 gelesen, so daß die reale Adresse die reale Adresse der mit dem Offset vom Zugriffsadreßregister AAR 32 gekoppelten Speicherstelle wird, und wird in dem Reale-Adresse- Register RAR 37 gespeichert.
- Man nehme an, daß nur eine Leseoperation mit der DAT- Operation zu einer solchen Seite ausgeführt wird, so daß das dem PTE entsprechende Aktualisierungsbit C "0" ist. Die reale Adresse wird aus dem Adreßumsetzpuffer TLB 31 für jede Ausgabe der Leseanweisung von der Anweisungseinheit IU 20 heraus genommen, so daß die Daten von dem Hauptspeicher 2 oder dem Cachespeicher 40 ausgelesen und zu der Anweisungseinheit IU 20 als die Anweisungsladedaten ILD übertragen werden.
- In Fig. 6 und 7 sind, nachdem mehrere DAT-Operationen für eine Abrufoperation zur gleichen Seite ausgeführt sind, in der letzten Abrufoperation die virtuelle Adresse, die PTE- Adresse und der PTE in den Registern LTLAR 50, LPTEAR 49 bzw. LPTER 47 gespeichert. Die Aktualisierungsschaltung 48 wandelt das Aktualisierungsbit C des PTE, das in dem Register LPTER 47 gehalten wird, vom Bit "0" in "1" um. Der Inhalt des Registers LPTEAR 49 und des Registers LPTER 47 werden ferner in die Spalten der PTEA und des PTE des Adreßumsetzpuffers TLB 31 geschrieben.
- Wenn auf eine andere Seite als die gleiche Seite P1 zugegriffen wird, weil das Ergebnis eines Vergleichs in der Vergleichseinheit 47 nicht übereinstimmt, hält er danach die virtuelle Adresse, die PTE-Adresse und den PTE bezüglich der Seite P1.
- Danach wird unter der Annahme, daß die erste Schreibanweisung in diese Seite P1 von der Anweisungseinheit IU 20 ausgegeben wird, weil die reale Adresse RA einer solchen Seite in dem Adreßumsetzpuffer TLB 31 registriert ist, die reale Adresse sofort erhalten, so daß die Anweisungsspeicherdaten ISD der Anweisungseinheit IU 20 in die durch die Adresse MAO bezeichnete Hauptspeicheradresse geschrieben werden.
- Weil dies die erste Schreiboperation in diese Seite P1 ist, ist es zu dieser Zeit notwendig, das entsprechende Aktualisierungsbit C des PTE vom Bit "0" in "1" umzuwandeln. Weil die neue eingegebene virtuelle Adresse und die virtuelle Adresse in dem Register LTLAR 50 gehalten werden, liefert der Selektor 52 die Ausgabe des Registers LPTEAR 49 als die Adresse TRA des Cachespeichers 40, und die Ausgabe der Aktualisierungsschaltung 48 wird zu dem Cachespeicher 40 als die Umwandlung-Datenausgabe TDO übertragen.
- Demgemäß wird der PTE, von dem das Aktualisierungsbit C in "1" umgewandelt ist, in den Cachespeicher 40 geschrieben. Ferner werden der entsprechende PTE und die PTEA aus dem TLB 31 ausgelesen. Der PTEA liefert die Adresse durch das Register PTEAR 38 und den Selektor 39 an den Hauptspeicher 2 (siehe Fig. 8), und der PTE wird durch den Selektor 42, das Register LPTER 47, die Aktualisierungsschaltung 48 und die Selektoren 52 und 53 in die Seitentabelle 4 des Hauptspeichers 2 geschrieben.
- Wie oben erläutert wurde, werden bei der letzten Abrufoperation in der sequentiellen Abrufoperation zu der Seite auf der Basis der DAT-Operation die PTEA (siehe Fig. 8) und der PTE in dem Register LPTEAR 49 und dem Register LPTER 47 gehalten und auch in dem TLB 31 gehalten. In der ersten Schreiboperation in die gleiche Seite wird dann das Aktualisierungsbit C des PTE von dem Bit "0" in "1" umgewandelt, und der aktualisierte PTE wird in den Hauptspeicher 2 und den Cachespeicher 40 geschrieben. Wenn die erste Schreiboperation in diese Seite ausgeführt wird, ist es demgemäß nicht notwendig, die PTE-Adresse zu erhalten.
- Gemäß der vorliegenden Erfindung ist es in einem DAT- Verarbeitungsgerät, in dem das Aktualisierungsbit im PTE gehalten und von dem Bit "0" in "1" umgewandelt wird, wenn die erste Schreiboperation in die dem PTE entsprechende Seite ausgeführt wird, nicht notwendig, die PTE-Adresse von dem Hauptspeicher für die Umwandlung des Aktualisierungsbits des PTE in der ersten Schreiboperation zu erhalten. Demgemäß ist es möglich, den Durchsatz eines Datenverarbeitungssystems zu verbessern.
- Fig. 8 ist ein ausführliches Blockdiagramm einer anderen Ausführungsform der in Fig. 5 gezeigten Struktur, und Fig. 9 ist ein ausführliches Blockdiagramm, das mit der in Fig. 8 dargestellten Struktur verbunden ist. Wie aus der Zeichnung ersichtlich ist, enthält der Adreßumsetzpuffer TLB 31 ferner die Seitentabelleneintragadresse PTEA. Folglich ist das PTEA- Register PTEAR 38 zwischen der PTEA und dem Selektor 39 vorgesehen.
- In dieser Ausführungsform sind die Register LTLAR 13, LPTEAR 14 und LPTER 15 nicht notwendig, wie in Fig. 9 dargestellt ist. Das heißt, die Register LTLAR 50, LPTEAR 49 und LPTER 47 sind in dieser Ausführungsform aus der in Fig. 7 gezeigten Struktur getilgt. Der vergrößerte Adreßumsetzpuffer TLB 31 in Fig. 8 weist den Seitentabelleneintrag PTE und die Seitentabelleneintragadresse PTEA auf, und die Inhalte des PTE und der PTEA werden für die DAT-Operation verwendet, wie in Fig. 5 gezeigt ist.
Claims (3)
1. Dynamisches Adreßumsetzungsverarbeitungsgerät in einem
Datenverarbeitungssystem, das einen Hauptspeicher (2) zum
Speichern einer Adreßumwandlungstabelle (3, 4) und eine
zentrale Verarbeitungseinheit (CPU) zum Steuern einer
dynamischen Adreßumsetzung-(DAT)-Operation enthält, um eine erste
virtuelle Adresse (VA) in eine reale Adresse (RA) durch
Bezugnehmen auf die Adreßumwandlungstabelle (3, 4) umzuwandeln,
wobei die zentrale Verarbeitungseinheit gekennzeichnet ist,
indem sie aufweist
ein erstes Speichermittel (13) zum Halten der ersten
virtuellen Adresse,
ein zweites Speichermittel (15) zum Halten eines
Tabelleneintrags der Adreßumwandlungstabelle entsprechend der
ersten virtuellen Adresse,
ein drittes Speichermittel (14) zum Halten der realen
Adresse des im zweiten Register gehaltenen Tabelleneintrags,
ein Vergleichsmittel (16) zum vergleichen der ersten
virtuellen Adresse mit einer zweiten virtuellen Adresse, die in
die reale Adresse umgewandelt werden soll, und
ein Aktualisierungsmittel (18) zum Umwandeln von Inhalten
des im zweiten Speichermittel (15) gehaltenen
Tabelleneintrags,
worin, wenn die erste virtuelle Adresse mit der zweiten
virtuellen Adresse im Vergleichsmittel (16) übereinstimmt,
der durch das Aktualisierungsmittel umgewandelte
Tabelleneintrag in einer ersten Schreiboperation in eine im dritten
Speichermittel (14) gehaltene Adresse des Hauptspeichers
geschrieben wird.
2. Dynamisches Adreßumsetzungsverarbeitungsgerät nach
Anspruch 1, worin ein Tabelleneintrag der
Adreßumwandlungstabelle ein Aktualisierungsbit enthält, das von "0" nach "1"
geändert werden kann, wenn die erste Schreiboperation in die
entsprechende Tabelle ausgeführt wird; die ersten, zweiten
und dritten Register die virtuelle Adresse, den
Tabelleneintrag bzw. die Tabelleneintragadresse entsprechend der Seite
beim vorherigen Abruf in der sequentiellen Abrufoperation für
die dynamische Adreßumsetzung zu dem Hauptspeicher halten;
und das Aktualisierungsmittel das Aktualisierungsbit des
Tabelleneintrags von "0" nach "1" umwandelt, so daß eine
Hochgeschwindigkeitsumwandlung des Aktualisierungsbits bei der
Schreiboperation in die Seite ausführbar ist.
3. Dynamisches Adreßumsetzungsverarbeitungsgerät nach
Anspruch 2, worin die zentrale Verarbeitungseinheit einen
Adreßumwandlungspuffer zum Speichern der ersten virtuellen
Adresse und der entsprechenden realen Adresse und Erhalten
der durch die erste virtuelle Adresse indexierten realen
Adresse aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3222575A JPH087717B2 (ja) | 1991-09-03 | 1991-09-03 | 動的アドレス変換処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69227740D1 DE69227740D1 (de) | 1999-01-14 |
DE69227740T2 true DE69227740T2 (de) | 1999-04-22 |
Family
ID=16784620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69227740T Expired - Fee Related DE69227740T2 (de) | 1991-09-03 | 1992-09-03 | Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5497469A (de) |
EP (1) | EP0531123B1 (de) |
JP (1) | JPH087717B2 (de) |
AU (1) | AU638382B2 (de) |
CA (1) | CA2077297C (de) |
DE (1) | DE69227740T2 (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
US5857080A (en) | 1996-09-10 | 1999-01-05 | Lsi Logic Corporation | Apparatus and method for address translation in bus bridge devices |
US5852607A (en) * | 1997-02-26 | 1998-12-22 | Cisco Technology, Inc. | Addressing mechanism for multiple look-up tables |
US6047388A (en) * | 1997-04-09 | 2000-04-04 | International Business Machines Corporation | Method and apparatus for processing an invalid address request |
GB2330693B (en) * | 1997-10-23 | 2002-04-24 | Andrew Jesman | Matching device for a multi-frequency antenna |
US6226731B1 (en) * | 1998-09-08 | 2001-05-01 | International Business Machines Corporation | Method and system for accessing a cache memory within a data-processing system utilizing a pre-calculated comparison array |
US6560687B1 (en) * | 2000-10-02 | 2003-05-06 | International Business Machines Corporation | Method of implementing a translation lookaside buffer with support for a real space control |
US6959373B2 (en) * | 2001-12-10 | 2005-10-25 | Incipient, Inc. | Dynamic and variable length extents |
US7173929B1 (en) * | 2001-12-10 | 2007-02-06 | Incipient, Inc. | Fast path for performing data operations |
US6986015B2 (en) * | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
CN100421181C (zh) * | 2002-07-30 | 2008-09-24 | 希旺科技股份有限公司 | 可重覆写入的非挥发性储存的储存系统与其写入方法 |
US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
JP6179355B2 (ja) * | 2013-10-31 | 2017-08-16 | 富士通株式会社 | 情報処理装置、データ転送制御方法及びデータ転送制御プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084230A (en) * | 1976-11-29 | 1978-04-11 | International Business Machines Corporation | Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control |
JPS5994289A (ja) * | 1982-11-22 | 1984-05-30 | Hitachi Ltd | 記憶制御方式 |
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
JPS60254345A (ja) * | 1984-05-31 | 1985-12-16 | Fujitsu Ltd | アドレス変換方式 |
US4731740A (en) * | 1984-06-30 | 1988-03-15 | Kabushiki Kaisha Toshiba | Translation lookaside buffer control system in computer or virtual memory control scheme |
JPH0812636B2 (ja) * | 1986-12-24 | 1996-02-07 | 株式会社東芝 | 仮想記憶制御方式の計算機システム |
US5233700A (en) * | 1987-03-03 | 1993-08-03 | Nec Corporation | Address translation device with an address translation buffer loaded with presence bits |
JPS63259749A (ja) * | 1987-04-17 | 1988-10-26 | Hitachi Ltd | 仮想記憶制御方式 |
JPH0661068B2 (ja) * | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
US5305444A (en) * | 1990-12-21 | 1994-04-19 | Sun Microsystems, Inc. | Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register |
JP3190700B2 (ja) * | 1991-05-31 | 2001-07-23 | 日本電気株式会社 | アドレス変換装置 |
-
1991
- 1991-09-03 JP JP3222575A patent/JPH087717B2/ja not_active Expired - Lifetime
-
1992
- 1992-09-01 AU AU22049/92A patent/AU638382B2/en not_active Ceased
- 1992-09-01 CA CA002077297A patent/CA2077297C/en not_active Expired - Fee Related
- 1992-09-02 US US07/939,721 patent/US5497469A/en not_active Expired - Fee Related
- 1992-09-03 EP EP92307985A patent/EP0531123B1/de not_active Expired - Lifetime
- 1992-09-03 DE DE69227740T patent/DE69227740T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0531123B1 (de) | 1998-12-02 |
JPH087717B2 (ja) | 1996-01-29 |
CA2077297C (en) | 1997-03-18 |
CA2077297A1 (en) | 1993-03-04 |
EP0531123A1 (de) | 1993-03-10 |
US5497469A (en) | 1996-03-05 |
AU2204992A (en) | 1993-03-18 |
AU638382B2 (en) | 1993-06-24 |
DE69227740D1 (de) | 1999-01-14 |
JPH0561773A (ja) | 1993-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE2350215C2 (de) | Rechenanlage | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE69715203T2 (de) | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff | |
DE69227740T2 (de) | Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem | |
DE69029173T2 (de) | Mikroprozessor | |
DE69527634T2 (de) | Rechner-Cachespeichersystem | |
DE2939411C2 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung | |
EP0600112A1 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff | |
DE4022885C2 (de) | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE68928333T2 (de) | Pufferspeicher, der zur Speicherung von Befehls- und Datenblöcken auf verschiedene Blockgrössen geeignet ist | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE3873388T2 (de) | Cache-speicher. | |
DE4234695C2 (de) | Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE3919802C2 (de) | Speichersteuersystem für ein Multiprozessorsystem | |
DE69029176T2 (de) | Steuerungsanordnung und Verfahren zum Zugriff auf einen virtuellen Speicheradressraum | |
DE68924945T2 (de) | Pufferspeicheranordnung. | |
DE3586524T2 (de) | Durch beide, physikalische und virtuelle addressen, addressierbarer cache-speicher. | |
DE3832758C2 (de) | Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers | |
DE3931505C2 (de) | Speichersteuerung in einer Datenverarbeitungsanlage | |
DE3025167C2 (de) | Datenverarbeitungseinrichtung | |
DE69808700T2 (de) | Cachespeichervorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |