DE69816472T2 - Einrichtung und verfahren zum zugreifen auf einen speicher mit wahlfreiem zugriff - Google Patents

Einrichtung und verfahren zum zugreifen auf einen speicher mit wahlfreiem zugriff Download PDF

Info

Publication number
DE69816472T2
DE69816472T2 DE69816472T DE69816472T DE69816472T2 DE 69816472 T2 DE69816472 T2 DE 69816472T2 DE 69816472 T DE69816472 T DE 69816472T DE 69816472 T DE69816472 T DE 69816472T DE 69816472 T2 DE69816472 T2 DE 69816472T2
Authority
DE
Germany
Prior art keywords
memory
file
access
remaining
remaining memory
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
DE69816472T
Other languages
English (en)
Other versions
DE69816472D1 (de
Inventor
Ashley David BROWN
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.)
Intergraph Corp
Original Assignee
Intergraph Hardware Technologies 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 Intergraph Hardware Technologies Co filed Critical Intergraph Hardware Technologies Co
Application granted granted Critical
Publication of DE69816472D1 publication Critical patent/DE69816472D1/de
Publication of DE69816472T2 publication Critical patent/DE69816472T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Bereich der Erfindung
  • Diese Erfindung betrifft allgemein Speicher in einem Computersystem, und insbesondere betrifft diese Erfindung Zugreifen auf einen Speicher mit wahlfreiem Zugriff (Direktzugriffspeicher) in einem Computersystem mit einem virtuellen Speicherbetriebssystem.
  • Hintergrund der Erfindung
  • Auf in einem herkömmlichen Speicher mit wahlfreiem Zugriff in Hochgeschwindigkeit (RAM, random access memory) gespeicherte Daten kann viel schneller zugegriffen werden (z. B. oft ungefähr um einhunderttausend Mal schneller) als auf Daten, die in einem herkömmlichen nicht flüchtigen Speicher gespeichert sind. Dementsprechend wird Anwendungsprogrammtreibersoftware oft so konfiguriert, dass sie Datendateien vorübergehend im RAM speichert, wo sie anschließend von einem oder mehreren Anwendungsprogrammen verarbeitet werden. Diese Verwendung des RAM, das als RAM-Platte oder als Plattencache genutzt werden kann, reduziert die Dateizugriffszeit signifikant, wodurch sich die Zeit reduziert, die zum Verarbeiten der Daten erforderlich ist.
  • Virtuelle Speicherbetriebssysteme (unten beschrieben) sind oft so konfiguriert, dass sie einen geringen Umfang des RAM („nicht seitenorientierter Pool-Speicher") zum vorübergehenden Speichern von Datendateien wie oben beschrieben beiseite stellt. Der Rest des RAM ist folglich zum Speichern von Betriebsystemcode- und Ausführungsbetriebssystemprozessen („Betriebssystem-RAM") reserviert. Der nicht seitenorientierte Pool-Speicher ist jedoch typischerweise viel kleiner als der Betriebssys tem-RAM und kann deshalb in einem Computersystem zu einer Engstelle werden, wenn er zum Speichern zu vieler Daten verwendet wird.
  • Ein virtuelles Speicherbetriebssystem ist allgemein als Betriebssystem definiert, das automatisch Daten zwischen einem RAM und einer Festplatte seitenweise umspeichert (d. h. überträgt), wenn Systemprozesse ausgeführt werden. Seitenweises Umspeichern von Daten zu und von der Festplatte konserviert Platz im RAM, was auf diese Weise dem System ermöglicht, so zu funktionieren als ob der physikalische RAM signifikant größer wäre als er tatsächlich ist. Auf den RAM in einem Computersystem, das ein virtuelles Speicherbetriebssystem betreibt, kann nur durch einen virtuellen Speicherverwaltermodul zugegriffen werden (ein Teil des Betriebssystems), der eine Schnittstelle zur Treibersoftware mit dem RAM besitzt. Der virtuelle Speicherverwalter umfasst einen nicht seitenorientierten Controller zum Zugriff auf den nicht seitenorientierten Pool-Speicher, wenn von einem Treiber eine Meldung empfangen wird, dass Zugriff zu einer Datei (oder Daten) im nicht seitenorientierten Pool angefragt wird.
  • Ein bekanntes virtuelles Speicherbetriebssystem ist zum Beispiel das Betriebssystem Microsoft Windows NTTM, Version 4.0 („Microsoft Windows NTTM"), das von der Microsoft Corp. in Redmond, Washington vertrieben wird. Der Betrieb des virtuellen Speicherbetriebssystems, wie des Betriebssystems Microsoft Windows NTTM ist ausführlicher in „Inside Windows NT" von Helen Custer, copyright 1993 von Microsoft Press beschrieben. Wie den Fachleuten bekannt ist, umfasst Windows NTTM einen virtuellen Speicherverwalter wie die oben beschriebenen. Dieser virtuelle Speicherverwalter nutzt eine Vielzahl von virtuellen Speicherverwalterfunktionen, um den Zugriff zum System-RAM zu steuern.
  • Wie oben angegeben ist nur ein begrenzter Umfang an Platz im RAM dem nicht seitenorientierten Pool-Speicher zugeordnet. Zum Beispiel erlaubt das Betriebssystem Windows NTTM maximal 192 Megabyte RAM-Volumen für den nicht seitenorientierten Pool-Speicher in einem System mit einem RAM von vier Gigabyte oder mehr. Dementsprechend reserviert das Betriebssystem in einem solchen Fall die übrigen 3808 Megabyte für Betriebssystem-RAM. Wie andere virtuelle Speicherbetriebssysteme erfordert das Betriebssystem Windows NTTM ein Minimum von nur sechzehn Megabyte RAM für richtigen Betrieb. Die Zuordnung von 3808 Megabyte für Betriebssystem-RAM ist deshalb nicht notwendig.
  • Der im IBM Technical Disclosure Bulletin Band 28, Nr. 4 1985 veröffentlichte technische Artikel „Dynamic Storage Pool Memory" offenbart ein System zum Verwalten des Speicherns von Daten in einem Computer. Der dynamische Speicherpoolverwalter (DSPM, dynamic storage pool manager) stellt eine leicht anzuwendende Schnittstelle für Systemkomponenten zur Verfügung, die Speichervolumen im Systemwarteschlangenraum zuweist und freistellt, und Speicherfragmentierung und Nutzung der Zentraleinheit (CPU, central processing unit) effizient verwaltet. Es ist kein Verständnis der internen Vorgänge des Computers erforderlich.
  • Wenn die Signalarbeitslast zunimmt, zeigt der DSPM die Menge und Lage von freiem Speicherplatz an. Falls nötig schafft der DSPM zusätzlichen Seitenspeicherraum aus dem Hauptspeicher. Wenn die Systemaktivität abnimmt, gibt der DSPM Speicherseiten an den Speicherverwalter zurück. Um die Effizienz zu erhöhen, unterstützen die DSPM zahlreiche Warteschlangen, die entsprechend der Anzahl freier Elemente in der Warteschlange geordnet sind. Daten, die gespeichert werden sollen, werden der Warteschlage zugewiesen, die die am nächsten liegende Anzahl von freien Elementen aufweist, aber nicht kleiner ist als die Größe der zu speichernden Datendatei. Wenn die Größe nicht exakt passt, wird der übrige Speicherplatz dem freien Pool zurückgegeben.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der Erfindung kennzeichnet ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Zugriff auf Direktzugriffsspeicher (RAM) in einem Computersystem, auf dem ein virtuelles Betriebssystem läuft, einen Teil des RAM als Systemspeicher zur Verwendung durch das Betriebssystem. Diese Speicherkennzeichnung erzeugt folglich einen Restspeicher im RAM. Auf den Restspeicher kann nach Empfang einer Zugriffsmeldung, die Zugriff auf den Restspeicher anfordert, durch einen virtuellen Speicherverwalter direkt zugegriffen werden. Der virtuelle Speicherverwalter wird so gesteuert, dass er seinen nicht seitenorientierten Pool-Controller umgeht, wenn er auf den Restspeicher zugreift. Umgehen des nicht seitenorientierten Pool-Controllers vergrößert signifikant den Umfang des verfügbaren RAM, der zum vorübergehenden Speichern von Datendateien verwendet werden kann.
  • Dementsprechend stellt die Erfindung ein Verfahren zur Verfügung für den Zugriff auf den Direktzugriffsspeicher in einem Computersystem, auf dem ein virtuelles Speicherbetriebssystem läuft, wobei das Computersystem einen virtuellen Speicherverwalter für den Zugriff auf den Direktzugriffsspeicher umfasst, wobei der virtuelle Speicherverwalter über einen nicht seitenorientierten Pool-Controller für den Zugriff auf einen vom Betriebssystem reservierten, nicht seitenorientierten Pool-Speicheranteil des Direktzugriffsspeichers verfügt, wobei das Verfahren die Schritte umfasst: Kennzeichnen eines Teils des Direktzugriffsspeichers als Systemspeicher für die Nutzung durch das Betriebssystem, wobei der Schritt der Kennzeichnung einen Restspeicher erzeugt, wobei es sich beim Restspeicher um den Direktzugriffsspeicher handelt, der nicht als Systemspeicher gekennzeichnet ist; Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher; und Steuern des virtuellen Spei cherverwalters, nachdem die Zugriffsmeldung empfangen wurde, um den nicht seitenorientierten Pool-Controller zu umgehen und direkt auf den Restspeicher zuzugreifen.
  • Gemäß einem anderen Aspekt der Erfindung umfasst die Zugriffsmeldung die Adresse einer Stelle im Restspeicher, auf den zugegriffen werden soll. Es können als Folge des Zugriffs Dateien im Restspeicher erzeugt, gelesen und/oder beschrieben werden. In bevorzugten Ausführungsformen der Erfindung ist der Restspeicher größer als 192 Megabyte.
  • Gemäß einem anderen Aspekt der Erfindung, der als Plattencache (Plattenpuffer) implementiert ist, kann eine Datei, auf die zugegriffen werden soll, entweder im Restspeicher oder in einer Festplatte gespeichert sein, die Teil des Computersystems ist. Es ist deshalb bestimmt, wenn die Datei im Restspeicher oder in der Festplatte gespeichert ist. Wenn bestimmt ist, dass die Datei im Restspeicher ist, greift der virtuelle Speicherverwalter direkt auf den Restspeicher zu, um auf die Datei zuzugreifen. Wenn bestimmt ist, dass die Datei in der Festplatte gespeichert ist, dann wird die Datei von der Festplatte geholt und für anschließende Verarbeitung im Restspeicher gespeichert.
  • Es wird auch eine Vorrichtung zur Verfügung gestellt zum Zugreifen auf den Direktzugriffsspeicher in einem Computersystem, auf dem ein virtuelles Speicherbetriebssystem läuft, wobei das Computersystem einen virtuellen Speicherverwalter für den Zugriff auf den Direktzugriffsspeicher umfasst, wobei der virtuelle Speicherverwalter über einen nicht seitenorientierten Pool-Controller für den Zugriff auf einen vom Betriebssystem reservierten, nicht seitenorientierten Pool-Speicheranteil des Direktzugriffsspeichers verfügt, wobei die Vorrichtung folgendes umfasst: einen Konfigurationsverwalter zum Kennzeichnen eines Teils des Direktzugriffsspeichers als Systemspeicher für die Nutzung durch das Be triebssystem, wobei der Konfigurationsverwalter einen Restspeicher erzeugt, wobei es sich beim Restspeicher mindestens um einen Teil des Direktzugriffsspeichers handelt, der nicht als Systemspeicher gekennzeichnet ist und größer ist, als der nicht seitenorientierte Pool-Speicheranteil, Mittel zum Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher; und Mittel zum Steuern des virtuellen Speicherverwalters, nachdem die Zugriffsmeldung empfangen wurde, um den nicht seitenorientierten Pool-Controller zu umgehen und direkt auf den Restspeicher zuzugreifen.
  • Die Erfindung betrifft auch ein Computerprogramm zum Implementieren des obigen Verfahrens.
  • Kurze Beschreibung der Zeichnungen
  • Die zuvor genannten und andere Ziele und Vorteile der Erfindung werden besser verständlich aus der folgenden weiteren Beschreibung mit Bezug zu den begleitenden Zeichnungen, worin:
  • 1 schematisch ein Computersystem zeigt, das mit einer bevorzugten Ausführungsform der Erfindung verwendet werden kann.
  • 2 ein Fließbild zeigt, das die Schritte zum Speichern einer Datei in einem Restspeicherteil des Direktzugriffsspeichers gemäß einer bevorzugten Ausführungsform der Erfindung zusammenfasst.
  • 3 ein Fließbild zeigt, das die bevorzugten Schritte zum Holen einer Datei aus dem Restspeicher zur Verwendung in einem Anwendungsprogramm zusammenfasst.
  • Beschreibung bevorzugter Ausführungsformen
  • 1 zeigt schematisch ein Computersystem 100, das mit einer bevorzugten Ausführungsform der Erfindung verwendet werden kann, um Direktzugriffsspeicher effizient zu nutzen. Das System 100 enthält Hardware 101, die unter anderem eine Zentraleinheit (CPU) 102 zum Verarbeiten von Computeranweisungen, Direktzugriffsspeicher („RAM 104") für flüchtige Datenspeicherung in Hochgeschwindigkeit und eine Festplatte 106 für nicht flüchtige Datenspeicherung umfasst. Das System 100 enthält auch ein virtuelles Speicherbetriebssystem 108 sowohl zum Steuern von Systemprozessen und als Schnittstelle zwischen einem Anwendungsprogramm 110 und der Hardware 101. Das Betriebssystem 108 enthält einen virtuellen Speicherverwalter 112 zum Zugreifen auf den RAM 104 und einen Eingangs/Ausgangsverwalter („I/O Manager 114") zum Steuern der Eingabe in und Ausgabe aus dem System 100. Auf den RAM 104 kann nur vom virtuellen Speicherverwalter 112 zugegriffen werden und daher ist er nicht durch irgendeinen anderen Teil des Systems 100 direkt zugänglich. In einer bevorzugten Ausführungsform der Erfindung ist das Betriebssystem 108 das Betriebssystem Microsoft Windows NTTM, Version 4.0 („Microsoft Windows NTTM") vertrieben von der Microsoft Corp. Obwohl es bei vielen Betriebssystemen nicht notwendig ist, kann auch eine Hardwareabstraktionsschicht 116 („HAL") im System 100 enthalten sein, um eine Schnittstelle des Betriebssystems 108 mit verschiedenen Hardwarearchitekturen zu bilden. Es ist anzumerken, dass obwohl die Erfindung in Verbindung mit dem Betriebssystem Microsoft Windows NTTM beschrieben wird, es prinzipiell auf andere virtuelle Speicherbetriebssysteme anzuwenden ist.
  • Gemäß bevorzugter Ausführungsformen der Erfindung ist der Umfang des RAM 104, der den Betriebssystemprozessen zugewiesen ist („Systemspeicher") nicht auf einen festen Maximalumfang beschränkt, und mindestens ein Teil des Rests des RAM 104 („Restspeicher") ist dem Speichern von Dateien oder Daten zugeordnet, die durch Anwendungsprogramme erzeugt sind (z. B. das Anwendungsprogramm 110), die das System 100 verwenden kann. Es ist bevorzugt, dass der Restspeicher signifikant größer ist als der Systemspeicher. Zum Beispiel in einem Computersystem mit vier Gigabyte RAM 104 kann der Systemspeicher ungefähr 16 Megabyte betragen, während der Restspeicher 3984 Gigabyte betragen kann. Mindestens ein Teil der 3984 Gigabyte werden verwendet, um Anwendungsdateien oder Anwendungsdaten zu speichern.
  • Im Restspeicher gespeicherte Dateien und Daten, die vom Anwendungsprogramm 110 während der Betriebsdauer gelesen und modifiziert werden können, können jegliche Art von Datei sein wie eine Datenbankdatei, die viele Megabyte von Daten enthält. Da die Zugriffszeiten auf Dateien im RAM 104 signifikant schneller sind als Zugriffszeiten auf Dateien in der Festplatte 106, werden Prozesse schneller beendet, wenn die Dateien zunächst von der Festplatte 106 in den Restspeicher verschoben werden, bevor sie verwendet werden, und dann im Restspeicher auf sie zugegriffen wird, wenn sie gebraucht werden. Als Beispiel sind die Zugriffszeiten auf RAM im allgemeinen mindestens ungefähr einhunderttausend Mal schneller als Zugriffszeiten auf die Festplatte 106.
  • Wie schematisch in 1 gezeigt ist enthält der erfindungsgemäße I/O-Manager 114 einen Konfigurationsverwalter 120 zum Konfigurieren des RAM 104, einen RAM-Treiber 122 zum Verwalten des Zugriffs auf den Restspeicher und einen Dateisystemtreiber 124 zum Verwalten des RAM-Dateisystems (unten beschrieben). Der Konfigurationsverwalter 120, der bevorzugt ein Anwendungsprogramm ist, konfiguriert den RAM 104 vor dem Installieren des RAM-Treibers 122. Insbesondere empfängt der Konfigurationsverwalter 120 Konfigurationsinformation von einem Benutzer durch Anzeigen eines Formulars mit Feldern zum Eintragen von Konfigurationsdaten. Die Felder können enthalten:
    • – Gesamter RAM im System: die Gesamtgröße des RAM 104 im Computersystem.
    • – Restspeichergröße: die Gesamtgröße des Restspeichers.
    • – Startplatz: die niedrigste Adresse im Restspeicher. Der letzte Adressenplatz des Restspeichers ist diese Adresse plus die Gesamtanzahl an Adressen, die erforderlich sind, um den gesamten Restspeicher zu enthalten. Alle Adressen zwischen dem Startplatz und der letzten Adresse sind deshalb Teil des Restspeichers.
    • – Laufwerkskennung: die dem Restspeicher zugeordnete Laufwerkskennung.
  • Bei Verwendung mit dem Betriebssystem Microsoft NTTM modifiziert der Konfigurationsverwalter 120 die Datei BOOT.INI, um die bekannte Option /MAXMEM=XXX hinzuzufügen, wo „XXX" der Gesamtumfang des Systemspeichers ist, berechnet aus der im Formular erhaltenen Information. Speziell ist XXX die Differenz zwischen dem Gesamtumfang des RAM im Computersystem und dem Umfang des RAM, der als Restspeicher zugewiesen ist. Wie den Fachleuten bekannt ist, wird die MAXMEM-Option typischerweise zum Testen spezifischer Umfangsmengen von RAM in einem Computersystem verwendet. Wenn zum Beispiel in einem System mit drei Gigabyte die MAXMEM-Option auf ein Gigabyte gesetzt wird, dann wird nur ein (spezifiziertes) Gigabyte an RAM von einem solchen System verwendet. Die verbleibenden zwei Gigabyte werden daher nicht verwendet. Diese übliche Verwendung der MAXMEM-Option ermöglicht, dass eine Sektion des RAM getestet wird, zum Beispiel ohne Teile des RAM (z. B. die beiden Gigabyte in dem unmittelbar vorhergehenden Beispiel) physikalisch aus dem gesamten RAM-System abzukoppeln (z. B. die drei Gigabyte auch in dem unmittelbar vorhergehenden Beispiel).
  • Dementsprechend wird der Teil des RAM 104, der von der MAXMEM-Option ausgewählt ist, für das Betriebssystem verwendet. In der Tat würden, selbst wenn der nicht seitenorientierte Pool-Speicher zum Speichern von Datendateien für das Anwendungsprogramm verwendet wäre, solche Dateien auch in dem von der MAXMEM-Option gekennzeichneten RAM gespeichert. Selbstverständlich wird in bevorzugten Ausführungsformen der nicht seitenorientierte Pool-Speicher umgangen und auf diese Weise versucht er nicht, Daten in solchen gekennzeichneten RAM zu speichern. Trotzdem wird der Restspeicher (d. h. der Teil des RAM 104, der von der MAXMEM-Option nicht gekennzeichnet ist) bevorzugt zum Speichern von Dateien und Daten aus dem Anwendungsprogramm 110 verwendet, wie unten ausführlicher diskutiert wird.
  • Die in das Formular eingetragenen Konfigurationsdaten werden bevorzugt im Systemkonfigurationsregister gespeichert, das alle Konfigurations- und Einstelldaten für das Betriebssystem 108 enthält. Sobald das Register ein Update erfährt und die MAXMEM-Option eingestellt wird, kann der RAM-Treiber 122 initiiert werden, um den RAM 104 zu teilen. Sobald er initiiert ist, prüft der RAM-Treiber 122 zuerst die MAXMEM-Option. Wenn sie nicht eingestellt ist, kann der RAM-Treiber 122 eine Meldung ausgeben, die angibt, dass die Konfigurationsdaten eingegeben werden müssen, um den Restspeicher zu implementieren. Es können Systemfehler auftreten, wenn die MAXMEM-Option nicht eingestellt ist, da der RAM-Treiber 122 versuchen kann, Teile des RAM 104 zu überschreiben, die vom Betriebssystem 108 verwendet werden. Wenn die MAXMEM-Option eingestellt ist, dann kann jedoch ein Block von Speicherumfang im RAM 104 zur Verwendung als Restspeicher initialisiert werden.
  • Bei Verwendung mit dem Betriebssystem Microsoft Windows NTTM, kann zum Beispiel eine Microsoft Windows NTTM VMM-Funktion (Virtual Memory Manager) aufgerufen werden, um den Restspeicher zu initialisieren. Eine solche VMM-Funktion kann zum Beispiel „MmMapioSpace" sein, die Eingabeparameter, „physikalische Adresse", „Dateiumfang" (d. h. den Umfang des Restspeichers) und „Cache" aufweist. Der physikalische Adressenparameter spezifiziert die physikalische Startadresse des Speicherblocks, der als Restspeicher reserviert ist, während der Dateiumfangsparameter den Umfang (in Bytes) des gesamten Restspeichers spezifiziert. Der Cacheparameter wird bevorzugt auf „FALSCH" gesetzt, wodurch verhindert wird, dass das Betriebssystem gespeicherte Dateien in den Cache nimmt.
  • Nachdem der Restspeicher initialisiert ist, führt der RAM-Treiber 122 seine Ausführung fort und arbeitet wie vom Anwendungsprogramm 110 gefordert. Speziell wird der RAM-Treiber 122 in Verbindung mit dem Dateisystemtreiber 124 (1) verwendet, um Dateien im Restspeicher zu speichern, zu lesen und einzuschreiben.
  • 2 zeigt ein Fließbild, das die Schritte einer bevorzugten Ausführungsform zum Speichern einer Datei im Restspeicher zusammenfasst. Der Prozess beginnt bei Schritt 200, in dem das Anwendungsprogramm 110 eine Anfragemeldung an den I/O-Manager 114 überträgt, dass eine Datei aus der Festplatte 106 kopiert und in den Restspeicher verschoben werden soll. Die Meldung kann den Namen der Datei enthalten und die Adresse der Datei auf der Festplatte 106. Der Prozess fährt fort zu Schritt 202, in dem der Dateisystemtreiber 124 die nicht genutzten Adressen des Restspeichers bestimmt und die Datei einer dieser Adressen als Startadresse zuweist. Der Dateisystemtreiber 124 speichert dann im RAM 104 die Startadresse der Datei im Restspeicher.
  • Der Prozess fährt fort zu Schritt 204, in dem der Dateisystemtreiber 124 eine Meldung an den RAM-Treiber 122 sendet, um die Datei im Restspeicher zu speichern. Diese Meldung kann den Namen der Datei, seine derzeitige Lage auf der Festplatte und die ihr vom Dateisystemtreiber 124 zugewiesene Startadresse enthalten. Der RAM-Treiber 122 sendet dann eine Meldung an den virtuellen Speicherverwalter („VMM 112", virtual memory manager), um die Datei im Restspeicher an den geeigneten Adressplätzen zu speichern (Schritt 206). Diese Meldung kann die Information aus der vom Dateisystemtreiber 124 empfangenen Meldung enthalten. Als Reaktion darauf holt der VMM 112 zunächst die Datei von der Festplatte und speichert dann die Datei an der bezeichneten Stelle im Restspeicher (Schritt 208). Sowohl das Holen wie das Speichern der Datei werden über eine VMM-Funktion ausgeführt.
  • Dementsprechend wird der nicht seitenorientierte Pool-Controller umgangen und daher nicht verwendet, um die Datei zu speichern. Wenn der nicht seitenorientierte Pool-Controller verwendet würde, dann wäre die Datei auf eine Speicherung im nicht seitenorientierten Pool-Speicher beschränkt. Statt den Zugriff von RAM 104 auf den nicht seitenorientierten Pool-Speicher im RAM 104 zu beschränken, ermöglicht dieser Direktspeicherzugriff jedoch, dass mindestens ein Teil des Restspeichers zum Speichern von Dateien verwendet wird.
  • 3 zeigt ein Fließbild, das bevorzugte Schritte zum Holen einer gekennzeichneten Datei aus dem Restspeicher zur Verwendung im Anwendungsprogramm 110 zusammenfasst. Der Prozess beginnt bei Schritt 300, in dem das Anwendungsprogramm 110 eine Anfragemeldung an den I/O-Manager 114 schickt, die das Holden der bezeichneten Datei anfordert. Die Meldung kann den Namen der bezeichneten Datei enthalten. Der I/O-Manager 114 richtet als Reaktion darauf eine Meldung an den Dateisystemtreiber 124, der die Startadresse der Datei im Computersystem 100 bestimmt (Schritt 302). Wenn eine bevorzugte Ausführungsform der Erfindung als RAM-Platte verwendet ist, dann wird die Datei im Restspeicher gespeichert. Wenn alternativ eine bevorzugte Ausführungsform der Erfindung als Plattencache verwendet ist, dann kann die Adresse entweder im Restspeicher oder auf der Festplatte 106 liegen. Bei Verwendung als RAM-Platte schickt der Dateisystemtreiber 124 eine Meldung an den RAM-Treiber 122 mit der Dateistartadresse (wenn im RAM 104) und den Namen der Datei (Schritt 304). Die Datei kann aus dem Restspeicher gemäß der Schritte 314318 wie unten diskutiert geholt werden.
  • Wenn eine bevorzugte Ausführungsform der Erfindung als Plattencache verwendet ist, dann wird in Schritt 306 bestimmt, ob die Datei im RAM 104 oder auf der Festplatte 106 liegt. Wenn die Adresse auf der Festplatte 106 ist, dann schickt der RAM-Treiber 122 eine Meldung an einen SCSI-Treiber (nicht gezeigt), um die Datei von der Festplatte 106 zu holen (Schritt 308). Der SCSI-Treiber ortet die Datei, greift über HAL 116 auf die Festplatte 106 zu, um die Datei zu holen (Schritt 310) und gibt dann die Datei an das Anwendungsprogramm 110 (Schritt 312). Die Datei kann gemäß herkömmlicher Prozesse von der Festplatte 106 geholt und zum Anwendungsprogramm 110 gegeben werden.
  • Wenn die Adresse im RAM 104 liegt (d. h. im Restspeicher), dann fährt der Prozess fort zu Schritt 314, in dem der RAM-Treiber 122 eine Meldung an VMM 112 schickt, um die Datei vom Restspeicher zu holen. Diese Meldung kann die Startadresse der Datei im Restspeicher enthalten und einen Aufruf an den VMM 112, die Datei vom RAM 104 zu holen. Als Reaktion darauf greift VMM 112 auf den Restspeicher bei dieser Adresse zu, holt die Datei (Schritt 316) und gibt dann über den Dateisystemtreiber 124 (Schritt 318) die Datei an das Programm 110. In bevorzugten Ausführungsformen werden Speicherzugriff, Dateiholen und Dateiweitergeben von einer VMM-Funktion ausgeführt.
  • Wie oben angegeben kann die Erfindung als RAM-Platte oder als Plattencache implementiert sein. In jedem Fall kann der RAM 104 verwendet werden, um große Datenvolumen vorübergehend zu speichern, was auf diese Weise ermöglicht, dass mehr Dateien im RAM 104 gespeichert werden können.
  • In einer alternativen Ausführungsform kann die Erfindung als Computerprogrammprodukt zur Verwendung mit einem Computersystem implementiert sein. Eine solche Implementierung kann eine Reihe von Computeranweisungen beinhalten, die entweder auf einem konkreten Medium fixiert sind, wie einem computerlesbaren Medium (z. B. einer Disket te, CD-ROM, ROM oder Festplatte) oder zu einem Computersystem übertragbar sind, über ein Modem oder ein Schnittstellengerät, wie einem Kommunikationsadapter, der über ein Medium mit einem Netzwerk verbunden ist. Das Medium kann entweder ein konkretes Medium sein (z. B. optische oder analoge Kommunikationsleitungen) oder ein mit drahtloser Technik implementiertes Medium (z. B. Mikrowellen-, Infrarot- oder andere Übertragungstechniken). Die Reihe von Computeranweisungen verkörpern alle oder einen Teil der zuvor hier mit Bezug auf das System beschriebenen Funktionalitäten. Den Fachleuten sollte erkennbar sein, dass solche Computeranweisungen in einer Reihe von Programmiersprachen geschrieben sein können zur Verwendung mit vielen Computerarchitekturen oder Betriebssystemen. Außerdem können solche Anweisungen in irgendeiner Speichervorrichtung gespeichert sein, wie Halbleiter-, Magnet-, optische oder andere Speichervorrichtungen, und können unter Verwendung irgendeiner Kommunikationstechnik wie optische, Infrarot-, Mikrowellen- oder andere Übertragungstechniken übertragen werden. Es wird angenommen, dass ein solches Computerprogrammprodukt als entfernbares Medium mit begleitender gedruckter oder elektronischer Dokumentation verbreitet werden kann (z. B. schrumpfverpackte Software), in einem Computersystem vorgeladen sein kann (z. B. auf der System-ROM oder der Festplatte) oder über einen Server oder elektronische Anschlagtafel über das Netzwerk verbreitet werden kann (z. B. das Internet oder World Wide Web).
  • Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart worden sind, sollte es für die Fachleute ersichtlich sein, dass verschiedene Veränderungen und Modifikationen vorgenommen werden können, die einige Vorteile der Erfindung erreichen, ohne vom wahren Rahmen der Erfindung abzuweichen. Diese und andere offensichtliche Modifikationen sollen von den beigefügten Ansprüchen abgedeckt sein. Nach dieser Beschreibung der Erfindung folgen die Ansprüche.

Claims (22)

  1. Verfahren für den Zugriff auf den Direktzugriffsspeicher in einem Computersystem, auf dem ein virtuelles Betriebssystem (108) läuft, wobei das Computersystem einen virtuellen Speicherverwalter (112) für den Zugriff auf den Direktzugriffsspeicher (104) umfasst, wobei der virtuelle Speicherverwalter (112) über einen nicht seitenorientierten Pool-Controller für den Zugriff auf einen vom Betriebssystem (108) reservierten, nicht seitenorientierten Pool-Speicheranteil des Direktzugriffsspeichers (104) verfügt, wobei das Verfahren folgende Schritte umfasst: Kennzeichnen eines Teils des Direktzugriffsspeichers (104) als Systemspeicher für die Nutzung durch das Betriebssystem (108), wobei der Schritt der Kennzeichnung einen Restspeicher erzeugt, wobei es sich beim Restspeicher um Direktzugriffsspeicher handelt, der nicht als Systemspeicher gekennzeichnet ist und größer ist, als der nicht seitenorientierte Pool-Speicheranteil; Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher; und Steuern des virtuellen Speicherverwalters (112), nachdem die Zugriffsmeldung empfangen wurde, um den nicht seitenorientierten Pool-Controller zu umgehen und direkt auf einen beliebigen Teil des Restspeichers zuzugreifen.
  2. Verfahren nach Anspruch 1, wobei der Restspeicher mehrere Speicherstellen umfasst und jede Speicherstelle eine Adresse hat und wobei der Schritt des Steuerns folgenden Schritt umfasst: Schicken einer Adressmeldung an den virtuellen Speicherverwalter (112), wobei die Adressmeldung die Adresse einer Speicherstelle im Restspeicher hat, auf die zugegriffen werden soll.
  3. Verfahren nach Anspruch 1, wobei der Schritt des Steuerns folgenden Schritt umfasst: Lesen einer im Restspeicher gespeicherten Datei.
  4. Verfahren nach Anspruch 1, wobei der Schritt des Steuerns folgenden Schritt umfasst: Anlegen einer Datei im Restspeicher.
  5. Verfahren nach Anspruch 1, wobei der Schritt des Steuerns folgenden Schritt umfasst: Schreiben in eine Datei im Restspeicher.
  6. Verfahren nach Anspruch 1, wobei die Größe des Restspeichers mehr als 192 Megabyte beträgt.
  7. Verfahren nach Anspruch 1, wobei die Zugriffsmeldung eine Anforderung umfasst, auf eine im Computersystem gespeicherte Datei zuzugreifen, wobei der Schritt des Steuerns folgende Schritte umfasst: Feststellen, ob die Datei im Restspeicher gespeichert ist; und Zugreifen auf die Datei, wenn festgestellt wird, dass die Datei im Restspeicher gespeichert ist.
  8. Verfahren nach Anspruch 7, das außerdem folgende Schritte umfasst: Auslesen von Daten aus der Datei, auf die zugegriffen wurde.
  9. Verfahren nach Anspruch 1, wobei das Computersystem einen nichtflüchtigen Speicher umfasst und die Zugriffsmeldung eine Anforderung umfasst, auf eine im Computersystem gespeicherte Datei zuzugreifen, wobei der Schritt des Steuerns folgende Schritte umfasst: Feststellen, ob die Datei im nichtflüchtigen Speicher des Computersystems gespeichert ist; und Zugreifen auf den nichtflüchtigen Speicher, wenn festgestellt wird, dass die Datei im nichtflüchtigen Speicher gespeichert ist.
  10. Verfahren nach Anspruch 1, das außerdem den folgenden Schritt umfasst: Feststellen, ob der Restspeicher erzeugt wurde.
  11. Vorrichtung zum Zugreifen auf den Direktzugriffsspeicher (104) in einem Computersystem, auf dem ein virtuelles Betriebssystem (108) läuft, wobei das Computersystem einen virtuellen Speicherverwalter (112) für den Zugriff auf den Direktzugriffsspeicher (104) umfasst, wobei der virtuelle Speicherverwalter (112) über einen nicht seitenorientierten Pool-Controller für den Zugriff auf einen vom Betriebssystem (108) reservierten, nicht seitenorientierten Pool-Speicheranteil des Direktzugriffsspeichers (104) verfügt, wobei die Mittel folgendes umfassen: einen Konfigurationsverwalter (120) zum Kennzeichnen eines Teils des Direktzugriffsspeichers (104) als Systemspeicher für die Nutzung durch das Betriebssystem, wobei der Konfigurationsverwalter (120) einen Restspeicher erzeugt, wobei es sich beim Restspeicher um Direktzugriffsspeicher (104) handelt, der nicht als Systemspeicher gekennzeichnet ist und größer ist, als der nicht seitenorientierte Pool-Speicheranteil, Mittel zum Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher; und Mittel zum Steuern des virtuellen Speicherverwalters (112), nachdem die Zugriffsmeldung empfangen wurde, um den nicht seitenorientierten Pool-Controller zu umgehen und direkt auf einen beliebigen Teil des Restspeichers zuzugreifen.
  12. Vorrichtung nach Anspruch 11, wobei der Restspeicher mehrere Speicherstellen umfasst und jede Speicherstelle eine Adresse hat und wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Schicken einer Adressmeldung an den virtuellen Speicherverwalter (112), wobei die Adressmeldung die Adresse eine Speicherstelle im Restspeicher hat, auf die zugegriffen werden soll.
  13. Vorrichtung nach Anspruch 11, wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Lesen einer im Restspeicher gespeicherten Datei.
  14. Vorrichtung nach Anspruch 11, wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Anlegen einer Datei im Restspeicher.
  15. Vorrichtung nach Anspruch 11, wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Schreiben in eine Datei im Restspeicher.
  16. Vorrichtung nach Anspruch 11, wobei die Größe des Restspeichers mehr als 192 Megabyte beträgt.
  17. Vorrichtung nach Anspruch 11, wobei die Zugriffsmeldung eine Anforderung umfasst, auf eine im Computersystem gespeicherte Datei zuzugreifen, wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Feststellen, ob die Datei im Restspeicher gespeichert ist; und Mittel zum Zugreifen auf die Datei, wenn festgestellt wird, dass die Datei im Restspeicher gespeichert ist.
  18. Vorrichtung nach Anspruch 17, die außerdem folgendes umfasst: Mittel zum Auslesen von Daten aus der Datei, auf die zugegriffen wurde.
  19. Vorrichtung nach Anspruch 11, wobei das Computersystem einen nichtflüchtigen Speicher umfasst und die Zugriffsmeldung eine Anforderung umfasst, auf eine im Computersystem gespeicherte Datei zuzugreifen, wobei die Mittel zum Steuern folgendes umfassen: Mittel zum Feststellen, ob die Datei im nichtflüchtigen Speicher des Computersystems gespeichert ist; und Mittel zum Zugreifen auf den nichtflüchtigen Speicher, wenn festgestellt wird, dass die Datei im nichtflüchtigen Speicher gespeichert ist.
  20. Vorrichtung nach Anspruch 11, die außerdem folgendes umfasst: Mittel zum Feststellen, ob der Restspeicher erzeugt wurde.
  21. Vorrichtung nach Anspruch 11, wobei Daten nicht seitenweise aus dem Restspeicher umgespeichert werden.
  22. Computerprogramm zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 10.
DE69816472T 1997-11-12 1998-11-03 Einrichtung und verfahren zum zugreifen auf einen speicher mit wahlfreiem zugriff Expired - Fee Related DE69816472T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6521897P 1997-11-12 1997-11-12
US65218P 1997-11-12
PCT/US1998/023375 WO1999024905A1 (en) 1997-11-12 1998-11-03 Apparatus and method of accessing random access memory

Publications (2)

Publication Number Publication Date
DE69816472D1 DE69816472D1 (de) 2003-08-21
DE69816472T2 true DE69816472T2 (de) 2004-05-13

Family

ID=22061141

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816472T Expired - Fee Related DE69816472T2 (de) 1997-11-12 1998-11-03 Einrichtung und verfahren zum zugreifen auf einen speicher mit wahlfreiem zugriff

Country Status (4)

Country Link
US (1) US6032240A (de)
EP (1) EP1031083B1 (de)
DE (1) DE69816472T2 (de)
WO (1) WO1999024905A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108873B1 (en) * 1999-05-28 2012-01-31 Oracle International Corporation System for extending an addressable range of memory
US6865596B1 (en) * 1999-06-09 2005-03-08 Amx Corporation Method and system for operating virtual devices by master controllers in a control system
US7017018B1 (en) * 2001-09-19 2006-03-21 Adaptec, Inc. Method and apparatus for a virtual memory file system
US8707317B2 (en) * 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
WO2007030421A2 (en) 2005-09-07 2007-03-15 Amx Llc Method and computer program for device configuration
GB2460636A (en) * 2008-05-30 2009-12-09 Symbian Software Ltd Storing operating-system components in paged or unpaged parts of memory
JP4886866B2 (ja) * 2010-02-10 2012-02-29 株式会社バッファロー 主記憶装置へのアクセスを高速化する方法および記憶装置システム
US9535827B2 (en) * 2011-12-29 2017-01-03 Intel Corporation RAM disk using non-volatile random access memory
JP6054444B2 (ja) * 2015-03-09 2016-12-27 西日本電信電話株式会社 通信機器
US10742491B2 (en) * 2017-07-20 2020-08-11 Vmware, Inc. Reducing initial network launch time of container applications
US10922096B2 (en) * 2018-02-28 2021-02-16 Vmware, Inc. Reducing subsequent network launch time of container applications

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913230A (en) * 1997-01-07 1999-06-15 Richardson; John J. Object and method for providing efficient multi-user access to shared operating system kernal code using instancing

Also Published As

Publication number Publication date
WO1999024905A1 (en) 1999-05-20
DE69816472D1 (de) 2003-08-21
EP1031083B1 (de) 2003-07-16
EP1031083A1 (de) 2000-08-30
US6032240A (en) 2000-02-29

Similar Documents

Publication Publication Date Title
DE69534867T2 (de) Verfahren und System zur Lieferung geschützter Gerätetreiber
DE69802836T2 (de) Anwendungsprogramierungsschnittstelle zum ermöglichen der zuordnung eines physikalischen speichers in einem virtuellen speicher zur steuerung von anwendungsprogrammen
DE69803924T2 (de) Mappedvirtuelsystem(mvs)-vorrichtungssicherung für einen datenprozessor unter verwendung einer datenspeicherungsuntersystemschnappschussmöglichkeit
DE69329047T2 (de) Verfahren und System zur Verminderung der Speicherzuordnungsanforderungen
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE69330691T2 (de) Dynamisch konfigurierbares Kernsystem
DE3786967T2 (de) Protokoll zum Ungültigerklären eines Cachespeichers für ein digitales Datenverarbeitungssystem.
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
DE69728212T2 (de) Speichersteuerung und diese verwendendes Rechnersystem
DE3750337T2 (de) Behandlung von grossen Bereichen virtueller Speicher.
DE112005002403B4 (de) Prozessor-Pipeline mit konstantem Durchsatz
DE19847676B4 (de) Modifizierbarer Partitionsstarteintrag für ein Computerspeichergerät
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE69816472T2 (de) Einrichtung und verfahren zum zugreifen auf einen speicher mit wahlfreiem zugriff
DE202010017668U1 (de) Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
DE2414311C2 (de) Speicherschutzeinrichtung
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112004000464T5 (de) Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen
DE19847642A1 (de) PCI-PCI-Brücke
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: INTERGRAPH HARDWARE TECHNOLOGIES CO., LAS VEGAS, N

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee