DE3689209T2 - Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung. - Google Patents

Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung.

Info

Publication number
DE3689209T2
DE3689209T2 DE86304492T DE3689209T DE3689209T2 DE 3689209 T2 DE3689209 T2 DE 3689209T2 DE 86304492 T DE86304492 T DE 86304492T DE 3689209 T DE3689209 T DE 3689209T DE 3689209 T2 DE3689209 T2 DE 3689209T2
Authority
DE
Germany
Prior art keywords
address
page
register
registers
privileged
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
Application number
DE86304492T
Other languages
English (en)
Other versions
DE3689209D1 (de
Inventor
Steven C Boettner
William R Bryg
David V James
Tso-Kai Liu
Michael J Mahon
Terrence C Miller
William S Worley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE3689209D1 publication Critical patent/DE3689209D1/de
Publication of DE3689209T2 publication Critical patent/DE3689209T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft virtuelle Speichersysteme im allgemeinen und in Bezug auf die Art und Weise, wie der Prozessor eines Rechensystems einem Prozeß Zugriff auf Eingabe/Ausgabe-(E/A)-Geräte gewährt. Beim Stand der Technik hatte jeder Prozeß, der auf einem Computersystem ablief, seinen eigenen virtuellen Adreßbereich. Dies kann zu sehr komplexen Systemen und zu einem nicht optimalen Betriebsverhalten führen. Beispielsweise muß für jeden Prozeß eine eigene Seitentabelle geführt werden. Eine Seitentabelle bildet virtuelle Speicheradressen auf physische (körperliche) Stellen oder Plätze im Speicher, oder Speicherplätze, ab. Wenn jeder Prozeß seinen eigenen virtuellen Adressenbereich hat, müssen ferner jedesmal, wenn Prozesse in einem Computer gewechselt werden, Übersetzungspuffer und Cache-Speichereinträge vom vorherigen Prozeß annuliert werden.
  • Bei virtuellen Speichersystemen nach dem Stand der Technik wurde ferner auf E/A-Geräte gemäß einem der zwei Verfahren zugegriffen. Beim ersten Verfahren sind bestimmte Befehle innerhalb des Computer-Befehlssatz vorgesehen, welche die E/A-Geräte steuern. Beim zweiten Verfahren, das als Speicherbild- E/A bezeichnet ist, sind bestimmte Adressen für jedes E/A-Gerät reserviert. Die reservierten Adressen für jedes E/A-Gerät werden als dessen Adreßbereich bezeichnet. Bei Speicherbild- E/A-Systemen erfassen und decodieren E/A-Geräte, ob ein Prozessor Adressen innerhalb des E/A-Adreßbereiches dieses E/A- Gerätes liest oder in diese Adressen etwas schreibt. Jedes Register innerhalb eines E/A-Gerätes ist einer Adresse innerhalb des Adreßbereiches zugeordnet. Die Register sind so implementiert, daß das Lesen oder Beschreiben einer Adresse innerhalb des Adreßbereiches eines E/A-Gerätes zum Lesen oder Beschreiben eines Registers innerhalb des E/A-Gerätes führt, das dieser speziellen Adresse zugeordnet ist. Der Vorgang des Lesens oder Beschreibens der Adresse in dem Adreßbereich des E/A-Gerätes kann also zum Steuern von E/A-Geräten eingesetzt werden.
  • Ein Vorteil der Verwendung von Speicherbild-E/A-Systemen ist, daß auf E/A-Geräte über Prozeduren zugegriffen werden kann, die in einer höheren Programmiersprache realisiert sind. Bei einigen Computerarchitekturen nach dem Stand der Technik kann ein Anwendungsprogramm direkt auf den gesamten oder einen Teil des Adreßbereiches der E/A-Geräte des Computers zugreifen. Dies kann jedoch zu Schwierigkeiten bei einer Multitask-Umgebung (mit mehreren Aufgaben) führen. Wenn beispielsweise ein Anwendungsprogramm ein E/A-Gerät, das Übertragungen mit direktem Speicherzugriff (DMA) durchführen kann, falsch initialisiert, kann dies dazu führen, daß das E/A-Gerät den einem anderen Anwendungsprogramm zugeordneten Speicherbereich liest oder überschreibt, so daß die Sicherheit des Systemes gefährdet ist.
  • Um eine Gefährdung der Sicherheit des Systems in Multitask-Umgebungen zu vermeiden, hindern einige Verfahren nach dem Stand der Technik Anwendungsprogramme daran, direkt auf die Adreßbereiche von E/A-Geräten zuzugreifen. Statt dessen kann auf alle E/A-Adressen nur über privilegierte, oder vorrangige, Prozeduren zugegriffen werden, die E/A-Treiber genannt werden. Während dies einen hohen Grad an Systemsicherheit schafft, bringt es andererseits einen großen Softwareaufwand mit sich und ist ineffizient und einschränkend.
  • In den AFIPS Conference Proceedings, 1978, zur National Computer Conference, Seiten 967-980, ist ein Aufsatz von W.D. Strecker, "VAX-11/780 - A virtual address extension to the DEC PDP-11 Family" offenbart. Ferner gibt es in Electronique Industrielle, Nr. 25, 15. Februar 1982, Seiten 51-56, einen Aufsatz von J.C. Broido mit dem Titel "L'iAPX 286: nouvelle architecture microprocesseur pour les applications multitaches et multiutilisateurs". Während diese Aufsätze beide die virtuelle Adressierung ansprechen, spricht keiner von ihnen das Problem von Steuerregistern von E/A-Geräten an, da diese Steuerregister allgemein im Zusammenhang mit E/A-Gerätetreibern diskutiert wurden.
  • Die Erfindung ist in Anspruch 1 definiert.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung ist der Adreßbereich in einem virtuellen Speichersystem global. Mit global ist gemeint, daß physische Speicherstellen auf demselben virtuellen Speicherraum abgebildet werden, unabhängig davon, welcher Prozeß auf dem Prozessor abläuft. Zugriffcodes mit einem Schreibsperrbit werden verwendet, um den Prozeßzugriff auf verschiedene Adressen zu steuern.
  • Zusätzlich werden Attribute eines virtuellen Speichersystemes verwendet, um den Zugriff auf Adreßbereiche von E/A-Geräten zu steuern. In einem virtuellen Speichersystem sind jedem Anwendungsprogramm Zugriffe auf Seiten innerhalb des Adreßbereiches eines Prozessors zugeordnet. Der Zugriff kann die Fähigkeit zum Lesen von in dem Adreßbereich gespeicherter Information sein (Lesezugriff), oder er kann die Fähigkeit zum Lesen von in dem Adreßbereich gespeicherter Information und zum Schreiben von Information in den Adreßbereich sein (Lese- und Schreibzugriff).
  • Bei der bevorzugten Ausführungsform der Erfindung sind jedem E/A-Gerät zwei Seiten (Programmsegmente) des Adreßbereiches zugeordnet. Eine Seite wird als privilegiert oder vorrangig angesehen, und die andere als nicht privilegiert. Da eine Seite sehr groß sein kann, - eine Seite kann beispielsweise 512 Adressen enthalten - ist vielen Adressen in jeder Seite des Adreßbereiches unter Umständen kein E/A-Geräteregister zugeordnet.
  • Jedes E/A-Geräteregister ist jedoch einer Adresse in jeder der beiden Seiten seines E/A-Geräteadreßbereiches zugeordnet. Die Adressen, die in ihren jeweiligen Seiten einem einzelnen Register zugeordnet sind, haben jeweils bezüglich ihrer individuellen Seiten denselben Offset. Es gibt privilegierte und nicht privilegierte Register. Ein Register kann als privilegiert angesehen werden, wenn es mit der Steuerung der DMA-Aktivität eines E/A-Gerätes zu tun hat, wenn es mit dem Erzeugen von Unterbrechungen (Interrupts) für einen Prozessor zu tun hat, oder wenn es auf eine andere Art eingesetzt ist, bei der die Sicherheit des Systemes gefährdet ist.
  • Nicht privilegierte Register können sowohl in der privilegierten Seite als auch in der nicht privilegierten Seite vollständig implementiert sein. Mit in sowohl der privilegierten Seite als auch der nicht privilegierten Seiten vollständig implementiert ist gemeint, daß das Lesen oder Beschreiben der dem nicht privilegierten Register zugeordneten Adresse in entweder der privilegierten Seite oder der nicht privilegierten Seite zum Lesen oder Beschreiben des nicht privilegierten Registers führt.
  • Privilegierte Register können nur in der privilegierten Seite vollständig implementiert sein. Das heißt, daß das Lesen oder Beschreiben der dem privilegierten Register zugeordneten Adresse nur in der privilegierten Seite zum Lesen oder Beschreiben des privilegierten Registers führt. Abhängig von der Implementierung können die privilegierten Register in der nicht privilegierten Seite lesbar, aber nicht beschreibbar, oder alternativ weder lesbar, noch beschreibbar sein.
  • In den Figuren zeigen:
  • Fig. 1 einen Systemprozessor, einen Systemspeicher und verschiedene mit einem Bus verbundene E/A-Geräte,
  • Fig. 2A und 2B jeweils eine Seite eines Speicheradreßbereiches,
  • Fig. 3 einen Speicheradreßbereich eines Computers gemäß der bevorzugten Ausführungsform der Erfindung,
  • Fig. 4 ein Blockdiagramm eines der in Fig. 1 gezeigten E/A-Geräte,
  • Fig. 5 zwei Einträge in einer Tabelle, die virtuelle Speicheradressen in physische Speicheradressen übersetzt,
  • Fig. 6 ein Steuerregister innerhalb des in Fig. 1 gezeigten Systemprozessors,
  • Fig. 7 die Tabelle, welche die in Fig. 5 gezeigten Einträge enthält, und
  • Fig. 8 eine mit der in Fig. 7 gezeigten Tabelle verbundene Hash-Vorrichtung.
  • In Fig. 1 ist ein Rechensystem gezeigt. Das Rechensystem umfaßt einen Systemprozessor 101, einen Systemspeicher 102, ein Eingabe/Ausgabe (E/A)-Gerät 103, ein E/A-Gerät 104, ein E/A-Gerät 105, ein E/A-Gerät 106 und ein E/A-Gerät 107, die mit einem Bus 100 verbunden sind. Der Systemprozessor 101 kommuniziert mit den E/A-Geräten 103 bis 107 durch Lesen von Daten oder Schreiben von Daten aus einem bzw. in einen Adreßbereich, der für jedes der E/A-Geräte 103 bis 107 reserviert ist.
  • Fig. 3 zeigt, wie ein Adreßbereich 370 des Rechensystems von Fig. 1 belegt ist. Der Adreßbereich 370 adressiert 2³² Datenbytes (oder 2³&sup0; Datenworte à 32 Bit). Ein Teil 371 des Adreßbereiches 370 ist für Speicheradressen reserviert. Ein Unterabschnitt 371b des Teiles 371 ist für Speicheradressen reserviert, jedoch nicht implementiert. Ein Unterabschnitt 371a des Teiles 371 ist implementiert und wird von einem Betriebssystem, das auf dem Prozessor 101 läuft, und von Benutzeranwendungen, die auf dem Prozessor 101 laufen, verwendet. Im allgemeinen ist der Unterabschnitt 371b wesentlich größer als der Unterabschnitt 371a. Ein Teil 373 des Adreßbereiches 370 ist zur Verwendung für E/A-Geräte belegt. Der gesamte Speicher 370 ist in zwei Seiten aufgeteilt, einschließlich den Seiten 301 und 302, wie gezeigt. Jede Seite kann 512 32-Bit-Wörter adressieren.
  • Der Zugriff auf Speicherseiten kann mittels eines Zugriffsidentifikations(AID)-Wertes beschränkt werden, der Einträgen in einer Tabelle 550 zugeordnet ist, die in Fig. 7 gezeigt ist. Die Tabelle 550 übersetzt virtuelle Speicherseitenadressen in Adressen von Speicherseiten in einem physischen Speicherbereich im Systemspeicher 102. Die Tabelle 550 umfaßt eine Reihe von verknüpften Listen. In Fig. 7 sind beispielsweise eine verknüpfte Liste 702, eine verknüpfte Liste 703, eine verknüpfte Liste 704 und eine verknüpfte Liste 705 gezeigt. Ein Eintrag 501 und ein Eintrag 511 in der verknüpften Liste 702 sind in Fig. 5 gezeigt. Der Eintrag 501 und der Eintrag 511 enthalten jeweils vier 32-Bit-Speicherstellen.
  • Der Eintrag 501 umfaßt eine Stelle 503, die eine Adresse enthält, die zum Eintrag 511 zeigt. Der Eintrag 501 umfaßt ferner eine Stelle 504 und eine Stelle 505, die eine virtuelle Seitenadresse enthalten. Die Stelle des Eintrages 501 in Tabelle 550 gibt dem Systemprozessor 101 den physischen Speicherbereich für die in den Stellen 504 und 505 gespeicherten virtuellen Seitenadressen an. Der Eintrag 501 weist auch eine Stelle 506 auf. Die Stelle 506 umfaßt ein Zugriffsrechtsfeld 507 von 16 Bit und einen Abschnitt 508 von 15 Bit, der einen AID-Wert enthält, sowie einen Abschnitt 509 von einem Bit, der immer eine logische Null enthält.
  • Der Eintrag 511 umfaßt eine Stelle 513, die eine Adresse enthält, die zu einem nächsten Eintrag in der verknüpften Liste 702 zeigt. Der Eintrag 511 umfaßt ferner eine Stelle 514 und eine Stelle 515, die eine virtuelle Seitenadresse enthalten. Die Stelle des Eintrages 511 in Tabelle 550 gibt dem Systemprozessor 101 die physische Speicheradresse für die in Stellen 514 und 515 gespeicherte virtuelle Seitenadresse an. Der Eintrag 511 weist ferner eine Stelle 516 auf. Die Stelle 516 umfaßt einen Zugriffsrechtsabschnitt 517 von 16 Bit und einen Abschnitt 518 von 15 Bit, der einen AID-Wert enthält, sowie einen Abschnitt 519 von einem Bit, der immer eine logische Null enthält.
  • Der Systemprozessor 101 hat vier Steuerregister 601, 611, 621 und 631, die AID-Werte für einen momentan laufenden Prozeß enthalten. Der Abschnitt 602 des Registers 601, der Abschnitt 612 des Registers 611, der Abschnitt 622 des Registers 621 und der Abschnitt 632 des Registers 631 können jeweils einen AID-Wert von 15 Bit enthalten. Der Abschnitt 603 des Registers 601, der Abschnitt 613 des Registers 611, der Abschnitt 623 des Registers 621 und der Abschnitt 633 des Registers 631 enthalten einen Schreibsperrwert (WD) von einem Bit.
  • Wenn ein auf dem Systemprozessor 101 laufender Prozeß die Adressierung einer physischen Seite des Speichers anfordert, wird eine virtuelle Adresse für eine Seite des Speichers in eine physische Seitenadresse unter Verwendung von Tabelle 550 übersetzt. Eine in Fig. 7 gezeigte Hash-Vorrichtung 701 empfängt die virtuelle Adresse und bildet die Kontrollsumme der virtuellen Adresse (Hashing), um eine physische Seitenadresse zu erzeugen, die der Position eines ersten Eintrages in einer verknüpften Liste in Tabelle 550 entspricht. Kontrollsummieren (Hashing) einer virtuellen Seitenadresse kann beispielsweise eine physische Adresse erzeugen, die dem Eintrag 501 in Tabelle 550 entspricht. Die kontrollsummierte virtuelle Adresse wird mit der virtuellen Adresse verglichen, die in den Stellen 504 und 505 von Eintrag 501 enthalten ist. Wenn diese übereinstimmen, wurde die physische Seite auf die virtuelle Seite abgebildet.
  • Ein Zugriffscode im Zugriffsrechtsfeld 507 wird überprüft. Der Zugriffscode gibt an, bei welchem Vorrangpegel, oder bei welcher Privilegstufe, ein Prozeß angeordnet sein muß, damit er die physische Seite lesen, beschreiben und/oder auf diese zugreifen darf. Dann wird der AID-Wert in Stelle 508 überprüft. Wenn der in Stelle 508 enthaltene AID-Wert Null ist, oder wenn er mit den AID-Werten in einem der Steuerregister 601, 611, 621 oder 631 übereinstimmt, wird dem Prozeß Zugriff auf die physische Seite im Speicher gewährt. Wenn der WD-Wert im Anpassungssteuerregister 601, 611, 621 oder 631 logisch Eins ist, wird dem Prozeß ein Schreibzugriff verweigert. Wenn der in Stelle 508 enthaltene AID-Wert nicht mit den AID-Werten in einem der Steuerregister 601, 611, 621 oder 631 übereinstimmt, und wenn der in Stelle 508 enthaltene AID-Wert nicht Null ist, wird dem Prozeß der Zugriff auf die physische Seite im Speicher verweigert.
  • Wenn die kontrollsummierte virtuelle Adresse nicht mit der in Stellen 504 und 505 enthaltenen virtuellen Adresse übereinstimmt, wird der nächste Eintrag in der verknüpften Liste 702 - der Eintrag 511 - betrachtet. Die kontrollsummierte Adresse wird mit der virtuellen Adresse verglichen, die in den Stellen 514 und 515 des Eintrags 511 enthalten ist. Wenn diese übereinstimmen, wird ein Zugriffscode im Zugriffsrechtsfeld 517 überprüft. Die momentane Privilegstufe des Prozesses wird ausgewertet, um zu ermitteln, welcher Zugriff dem Prozeß gewährt werden darf. Dann wird der in Stelle 518 enthaltene AID-Wert mit den AID-Werten in den Registern 601, 611, 621 und 631 verglichen, usw.
  • Fig. 8 zeigt die Hash-Vorrichtung 701 und die Tabelle 550. Die Hash-Vorrichtung 701 weist einen Hash-Generator 720 und eine Hash-Tabelle 801 auf. Der Hash-Generator 720 empfängt eine virtuelle Adresse und erzeugt eine Hash-Tabellenadresse. Der Inhalt der Hash-Tabellenadresse wird überprüft. Wenn der Inhalt ein Nullzeiger ist, sind die durch die virtuelle Adresse adressierten Daten nicht im Hauptspeicher. Wenn der Inhalt eine Adresse in Tabelle 550 ist, wird eine verknüpfte Liste beginnend bei der Adresse 550 abgesucht, bis, wie oben erläutert, ein Eintrag gefunden wird, der die virtuelle Adresse enthält, oder bis ein Nullzeiger gefunden wird. Der Nullzeiger wurde wiederum anzeigen, daß die durch die virtuelle Adresse adressierten Daten nicht im Hauptspeicher sind. Wenn die adressierten Daten nicht im Hauptspeicher sind, tritt ein Seitenfehler auf, und im allgemeinen wird eine Software eingesetzt, um die Daten von einer Diskette oder einer anderen Speichervorrichtung zu holen.
  • Tabelle 550 ist als ein Seitenverzeichnis dargestellt. Die Tabelle 550 hat eine Basisadresse beim Eintrag PDIRO. PDIRO entspricht einer Adresse am Grund des Adreßbereiches 370. Positive Einträge in Tabelle 550 entsprechen dann Seiten innerhalb des Teiles 371 des Speichers. Seiten im Teil 373 des Adreßbereiches 370 müssen ebenfalls über Einträge in Tabelle 550 adressiert werden. Um zu vermeiden, daß ein großer ungenutzter Teil der Einträge in Tabelle 550 dem ungenutzten Unterabschnitt 371b des Teiles 371 entspricht, werden die Adressen im Teil 373 von Tabelle 370 mit negativen Einträgen in Tabelle 550 adressiert. PDIR-1 entspricht beispielsweise einer Adresse an der Spitze des Adreßbereiches 370. Auf diese Weise kann der Teil 373 des Adreßbereiches 370 adressiert werden, ohne daß einegroße Lücke in Tabelle 550 auftritt, die dem ungenutzten Unterabschnitt 371b des Adreßbereiches 370 entspricht.
  • Fig. 3A zeigt, wie Bits einer physischen Adresse im Teil 373 belegt sind. Ein Abschnitt 381 enthält die vier höchstwertigen Bits einer Adresse 380. Der Teil 373 ist im Adreßbereich 370 ganz oben angeordnet; folglich ist jedes Bit im Abschnitt 381 eine logische Eins, wodurch angezeigt wird, daß ein E/A-Geräteregister adressiert wird. Ein Abschnitt 382 enthält 16 Bits der Adresse 380. Die 16 Bits im Abschnitt 382 bestimmen, welches E/A-Gerät adressiert wird. Bei der vorliegenden Ausführungsform gibt es einen Adreßbereich für 2¹&sup6; (ungefähr 65000) E/A-Geräte. Ein Bit 383 gibt an, ob eine privilegierte Seite oder eine nicht privilegierte Seite adressiert wird. Ein Abschnitt von Bits 384 der Adresse 380 gibt an, welches spezielle Register innerhalb eines E/A-Gerätes adressiert wird. Ein Abschnitt von Bits 385 enthält zwei Bits der Adresse 380. Beide Bits im Abschnitt 385 sind logisch Null, weil bei der vorliegenden Ausführungsform Register mit 32-Bit-Wörtern adressiert werden, während der Adreßbereich 370 eine Adressierung von 8-Bit-Bytes erlaubt.
  • In Fig. 4 ist eine E/A-Vorrichtung 107 mit einem E/A-Adapter 410 und einer Geräteschnittstelle 411 gezeigt. Zur Erläuterung sind ein Register 400, ein Register 401, ein Register 402, ein Register 403, ein Register 404, ein Register 405 und ein Puffer 406 innerhalb des E/A-Adapters 410 gezeigt. Das Register 400 enthält eine Adresse, die, wenn sie beschrieben wird, eine Unterbrechung (Interrupt) des Systemprozessors 101 erzeugt. Das Register 401 empfängt Befehle, welche die E/A-Vorrichtung 107 dazu bringen, beispielsweise die Geräteschnittstelle 411 zu initialisieren, ein Datum von der Geräteschnittstelle 411 zu lesen oder ein Datum in die Geräteschnittstelle 411 zu schreiben. Das Register 402 enthält eine Zahl, die einer Adresse innerhalb des Systemspeichers 102 entspricht und angibt, welcher E/A-Adapter 410 eine Übertragung mit direktem Speicherzugriff (DMA) ausführen soll. Das Register 403 enthält eine Bytesumme, oder Bytezählung, die eine Datenmenge angibt, die durch eine DMA-Übertragung zum Systemspeicher 102 übertragen werden soll. Das Register 404 empfängt einen Befehl, um eine DMA-Übertragung zu starten oder zu beenden. Das Register 405 enthält Information über den Zustand der letzten DMA-Transaktion zwischen dem E/A-Adapter 410 und dem Systemspeicher 402.
  • Fig, 2A zeigt eine nicht privilegierte Seite des Adreßbereiches 301, der der E/A-Vorrichtung 107 zugeordnet ist. Fig. 2B zeigt eine privilegierte Seite des Adreßbereiches 302, der der E/A-Vorrichtung 107 zugeordnet ist.
  • Jedes der Register 400 bis 405 ist einer Adresse in Seite 301 und in Seite 302 zugeordnet. Eine Adresse 1P0 in Seite 301 ist beispielsweise dem Register 400 zugeordnet, eine Adresse 1P1 in Seite 301 ist dem Register 401 zugeordnet, eine Adresse 1P2 in Seite 301 ist dem Register 402 zugeordnet, eine Adresse 1P3 in Seite 301 ist dem Register 403 zugeordnet, eine Adresse 1P4 in Seite 301 ist dem Register 404 zugeordnet, eine Adresse 1P5 in Seite 301 ist dem Register 405 zugeordnet, eine Adresse 2P0 in Seite 302 ist dem Register 400 zugeordnet, eine Adresse 2P1 in Seite 302 ist dem Register 401 zugeordnet, eine Adresse 2P2 in Seite 302 ist dem Register 402 zugeordnet, eine Adresse 2P3 in Seite 302 ist dem Register 403 zugeordnet, eine Adresse 2P4 in Seite 302 ist dem Register 404 zugeordnet, und eine Adresse 2P5 in Seite 302 ist dem Register 405 zugeordnet. Der Rest der Adressen in der nicht privilegierten Seite 301, dargestellt durch die Adressen 1P6-1P8, 1P29-1P31 und 1P505-1P511, und der Rest der Adressen in der privilegierten Seite 302, dargestellt durch Adressen 2P6-2P8, 2P29-2P31 und 2P505-2P511, ist möglicherweise keinem Register zugeordnet und kann nicht implementierter Adreßbereich bleiben.
  • Obwohl die Register 400 bis 405 jeweils einer Adresse in der nicht privilegierten Seite 301 und einer Adresse in der privilegierten Seite 302 zugeordnet sind, sind nicht alle Register 400 bis 405 in sowohl der privilegierten Seite 302 als auch der nicht privilegierten Seite 301 vollständig implementiert. Die Register 400, 402 und 403 können beispielsweise nur in der privilegierten Seite 302 vollständig implementiert sein. Ein nicht autorisierter Zugriff auf diese Register könnte die Systemsicherheit gefährden, weil das Register 400 zum direkten Unterbrechen des Prozessors 101 verwendet werden kann, und weil die Register 402 und 403 mit DMA-Transaktionen mit dem Systemspeicher 102 befaßt sind. Abhängig von der Implementierung kann ein Lesezugriff auf die Register 400, 402 und 403 über die nicht privilegierte Seite 301 zulässig sein. Das Register 401 ist mit Transaktionen zwischen der Geräteschnittstelle 411 und dem E/A-Adapter 410 befaßt. Diese Transaktions- Fähigkeit ist für die Systemsicherheit nicht gefährlich; daher kann das Register 401 sowohl in der nicht privilegierten Seite 301 als auch in der privilegierten Seite 302 vollständig implementiert sein. Obwohl die Register 404 und 405 für DMA-Übertragungen verwendet werden, können diese Register, wenn das System richtig ausgelegt ist, ohne eine Gefährdung der Systemsicherheit verwendet werden. Beispielsweise kann ein Bit innerhalb eines privilegierten Registers, wie dem Register 403, zum Freigeben von DMA-Transaktionen verwendet werden, so daß das Register 404 eine DMA-Transaktion nur dann starten kann, wenn es von einem privilegierten Prozeß freigegeben wurde.
  • Privilegierte und nicht privilegierte Register sollten so implementiert sein, daß das Lesen dieser Register keine Nebenwirkungen erzeugt. Das Lesen sollte beispielsweise keine neue E/A-Operation auslösen. Dadurch kann ein Benutzerprozeß die E/A-Aktivitätbeobachten und überwachen, ohne daß der Benutzerprozeß auf ein Gerät, das eine Ein-/Ausgabe durchführt, einwirken kann.
  • Privilegierte und nicht privilegierte Register sollten ferner so implementiert sein, daß das Beschreiben einer nicht implementierten Adresse ignoriert wird oder äquivalent zu undefinierten Daten ist, die in irgendeine andere implementierte Adresse in derselben Seite geschrieben werden.
  • Die beschriebene Ausführungsform sieht eine maximale Flexibilität der Gerätezuordnung vor und ermöglicht einen Systemschutz; es sind jedoch alternativ zu dem beschriebenen Ausführungsbeispiel verschiedene Ausführungsformen möglich. Beispielsweise kann jedes E/A-Gerät in zwei Speicherseiten, einer privilegierten Seite und einer nicht privilegierten Seite, abgebildet sein; jedes Register wird jedoch nur in einer Seite implementiert. Dies kann jedoch Auswirkungen auf das Betriebsverhalten der Prozessorsoftware haben, weil bei diesem Verfahren zwei Seitenzugriffe notwendig sind, um auf alle Steuerregister des E/A-Gerätes zuzugreifen. Alternativ kann jedes Benutzergerät auf einer einzigen Seite abgebildet sein. Dadurch kann auf alle Register in einem E/A-Gerät innerhalb einer Seite zugegriffen werden, wobei jedoch Sicherheit nur für solche E/A-Geräte gewährleistet ist, die nur nicht privilegierte Register haben.

Claims (3)

1. Rechenvorrichtung, mit mehreren Eingabe/Ausgabe-Vorrichtungen (103-107), die jeweils mehrere Register (400-405) zum Steuern der Eingabe/Ausgabe-Vorrichtung aufweisen, einer lokalen Speichervorrichtung (102), die eine Anzahl von physischen Speicherplätzen aufweist, die geringer ist als die Anzahl der Eingänge im Speicherbereich (371) des Adreßbereiches (370), und einer Systemverarbeitungsvorrichtung (101) zum Ausführen einer Vielzahl von Prozessen, dadurch gekennzeichnet, daß die Systemverarbeitungsvorrichtung (101) eine Abbildungsvorrichtung (701, 550) zum Zuordnen erster und zweiter Seiten (302, 301) von Adressen zu jedem der Eingabe/Ausgabe-Vorrichtungen (103-107) aufweist, wobei die erste Seite (302) eine höhere Vorrangebene als die zweite Seite (301) hat, die durch entsprechende Zugriffsrechtcodes (507, 517) definiert ist, die Register (400-405) entweder auf sowohl der ersten als auch der zweiten Seite (302, 301) vollständig implementiert oder auf der ersten Seite (302) vollständig und auf der zweiten Seite (301) teilweise implementiert sind, wobei auf die Register (401, 404, 405), die auf sowohl der ersten als auch der zweiten Seite vollständig implementiert sind, durch die Prozesse mit niedrigem Vorrang für Lese/Schreib-Operationen zugegriffen werden kann und auf die Register (400, 402, 403), die auf der ersten Seite (302) vollständig implementiert sind und auf der zweiten Seite (301) teilweise implementiert sind durch die Prozesse mit niedrigem Vorgang nur für Leseoperationen zugegriffen werden kann, oder alternativ durch Prozesse mit niedrigem Vorgang weder für Lese- noch für Schreiboperationen zugegriffen werden kann.
2. Rechenvorrichtung nach Anspruch 1, bei der sich die Zuordnung der ersten und zweiten Seiten (302, 301) zu jeder der Eingabe/Ausgabe-Vorrichtungen (103-107) durch die Abbildungsvorrichtung (701, 550) nicht abhängig davon, welcher von den mehreren Prozessen von der Systemverarbeitungsvorrichtung (101) ausgeführt wird, verändert.
3. Rechenvorrichtung nach Anspruch 2, bei der die Verarbeitungsvorrichtung (101) nicht zuläßt, daß ein erster Prozeß mit einer ersten Mehrzahl von Zugriffscodes (602, 612, 622, 632) auf eine erste Adresse auf der ersten Seite (302) zugreift, wenn nicht ein erster Zugriffscode (507, 517) für die erste Seite (302) mit einem Zugriffscode des ersten Prozesses übereinstimmt.
DE86304492T 1985-06-28 1986-06-12 Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung. Expired - Fee Related DE3689209T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/750,578 US4777589A (en) 1985-06-28 1985-06-28 Direct input/output in a virtual memory system

Publications (2)

Publication Number Publication Date
DE3689209D1 DE3689209D1 (de) 1993-12-02
DE3689209T2 true DE3689209T2 (de) 1994-03-10

Family

ID=25018430

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86304492T Expired - Fee Related DE3689209T2 (de) 1985-06-28 1986-06-12 Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung.

Country Status (8)

Country Link
US (1) US4777589A (de)
EP (2) EP0551148A3 (de)
JP (1) JPH0654479B2 (de)
KR (1) KR930009062B1 (de)
CN (1) CN1006096B (de)
AU (2) AU583634B2 (de)
CA (1) CA1261479A (de)
DE (1) DE3689209T2 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
US5297268A (en) * 1988-06-03 1994-03-22 Dallas Semiconductor Corporation ID protected memory with a readable/writable ID template
US5125086A (en) * 1989-06-29 1992-06-23 Digital Equipment Corporation Virtual memory paging apparatus with variable size in-page clusters
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
JPH0692666B2 (ja) * 1989-12-15 1994-11-16 徳厚 小島 排水立て管継手
US5371890A (en) * 1991-10-30 1994-12-06 International Business Machines Corporation Problem state cross-memory communication using communication memory domains
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JP3676411B2 (ja) * 1994-01-21 2005-07-27 サン・マイクロシステムズ・インコーポレイテッド レジスタファイル装置及びレジスタファイルアクセス方法
JPH0844655A (ja) * 1994-06-20 1996-02-16 Internatl Business Mach Corp <Ibm> マルチプル・バス情報処理システムのアドレス空間の拡張
EP1526472A3 (de) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systeme und Verfahren zur gesicherten Transaktionsverwaltung und elektronischem Rechtsschutz
US5640591A (en) * 1995-05-15 1997-06-17 Nvidia Corporation Method and apparatus for naming input/output devices in a computer system
US5623692A (en) * 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5768618A (en) * 1995-12-21 1998-06-16 Ncr Corporation Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
US5926648A (en) * 1996-08-22 1999-07-20 Zilog, Inc. I/O port and RAM memory addressing technique
CN1104504C (zh) * 2000-05-23 2003-04-02 厦门大学 一种海洋细菌胞外多糖的生产工艺
US6865665B2 (en) * 2000-12-29 2005-03-08 Stmicroelectronics, Inc. Processor pipeline cache miss apparatus and method for operation
US7337306B2 (en) * 2000-12-29 2008-02-26 Stmicroelectronics, Inc. Executing conditional branch instructions in a data processor having a clustered architecture
DE10127195A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Prozessor mit interner Speicherkonfiguration
US7254720B1 (en) * 2002-02-13 2007-08-07 Lsi Corporation Precise exit logic for removal of security overlay of instruction space
US7206906B1 (en) * 2004-03-10 2007-04-17 Sun Microsystems, Inc. Physical address mapping framework
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072100A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Systems and methods for temporarily retiring memory portions
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
CN101470633B (zh) * 2007-12-24 2011-09-21 联想(北京)有限公司 一种虚拟机监视器、虚拟机系统及其内存处理方法
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) * 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式系统
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
CN105653478B (zh) * 2015-12-29 2019-07-26 致象尔微电子科技(上海)有限公司 串行闪存控制器、串行闪存控制方法及串行闪存控制系统
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
FR2431732A1 (fr) * 1978-07-19 1980-02-15 Materiel Telephonique Dispositif de conversion d'adresse virtuelle en adresse reelle
US4320456A (en) * 1980-01-18 1982-03-16 International Business Machines Corporation Control apparatus for virtual address translation unit
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4493023A (en) * 1981-05-22 1985-01-08 Data General Corporation Digital data processing system having unique addressing means and means for identifying and accessing operands
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
US4477871A (en) * 1981-11-23 1984-10-16 Motorola, Inc. Global operation coordination method and circuit
US4654777A (en) * 1982-05-25 1987-03-31 Tokyo Shibaura Denki Kabushiki Kaisha Segmented one and two level paging address translation system
JPS6047624B2 (ja) * 1982-06-30 1985-10-22 富士通株式会社 アドレス変換制御方式
US4635189A (en) * 1984-03-01 1987-01-06 Measurex Corporation Real-time distributed data-base management system

Also Published As

Publication number Publication date
EP0208428A2 (de) 1987-01-14
EP0551148A3 (en) 1993-09-15
CN86103675A (zh) 1986-12-24
JPH0654479B2 (ja) 1994-07-20
EP0551148A2 (de) 1993-07-14
CN1006096B (zh) 1989-12-13
AU5941386A (en) 1987-01-08
US4777589A (en) 1988-10-11
CA1261479A (en) 1989-09-26
AU583634B2 (en) 1989-05-04
EP0208428A3 (en) 1989-04-26
AU623146B2 (en) 1992-05-07
KR930009062B1 (ko) 1993-09-22
AU3641089A (en) 1989-10-05
DE3689209D1 (de) 1993-12-02
JPS623359A (ja) 1987-01-09
KR870000645A (ko) 1987-02-19
EP0208428B1 (de) 1993-10-27

Similar Documents

Publication Publication Date Title
DE3689209T2 (de) Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung.
DE3587694T2 (de) Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher.
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE69132005T2 (de) Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher
DE3688978T2 (de) Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE69707181T2 (de) Architektur und Verfahren zur gemeinsamen Benutzung von TLB-Einträgen
DE69621245T2 (de) System und verfahren zur schnellkontextumschaltung zwischen aufgaben
DE68917771T2 (de) Virtueller Anzeigeadapter.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE3889816T2 (de) Virtuelle Ein/Ausgabebefehle.
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE69620062T2 (de) Datenzugriffimplementierung von Gerätetreiberschnittstelle
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE69029173T2 (de) Mikroprozessor
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
DE69231611T2 (de) Verfahren zu grosser logischer Adressierung
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE112009000344T5 (de) Zugriffsrechte auf eine Speicher-Map
DE69231174T2 (de) Verfahren und Vorrichtung für Register zum atomaren Zugriff mit Einzelbit-Setzen und -Rücksetzen ohne programmierte gegenseitige Verriegelung
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee