DE69700574T2 - Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte - Google Patents
Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen FestplatteInfo
- Publication number
- DE69700574T2 DE69700574T2 DE69700574T DE69700574T DE69700574T2 DE 69700574 T2 DE69700574 T2 DE 69700574T2 DE 69700574 T DE69700574 T DE 69700574T DE 69700574 T DE69700574 T DE 69700574T DE 69700574 T2 DE69700574 T2 DE 69700574T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- data
- file
- name
- storage device
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Diese Erfindung bezieht sich auf nichtflüchtige Zwischenspeichersysteme für Datenverarbeitungssysteme und Verfahren zum Implementieren solcher Systeme.
- Die Zwischenspeicherung (Caching) wird seit langem verwendet, um die Leistungsfähigkeit eines relativ langsamen Computerspeicherbetriebsmittels zu erhöhen, wenn ein schnelleres Speicherbetriebsmittel verfügbar ist, das typischerweise höhere Kosten pro gespeichertes Bit aufweist. Typischerweise wird für die Speicherung nur eines Teils der Informationen, die im langsameren Speicherbetriebsmittel gespeichert sind, ein temporärer Speicherblock innerhalb des schnelleren Speicherbetriebsmittels (d. h. eines Caches) eingerichtet. Statt ein gesamtes Anwendungsprogramm oder eine gesamte Datendatei, die im langsameren Speicherbetriebsmittel resident sein können, innerhalb des schnelleren Speicherbetriebsmittels zu speichern, werden bestimmte Algorithmen verwendet, um zu ermitteln, auf welche Abschnitte des Programms oder der Datendatei am wahrscheinlichsten zugegriffen wird. Wenn die Zentraleinheit (CPU) des Systems eine Speicherstelle aufruft, die nicht im Cache gespeichert ist, muß der Cache (wenn er vollständig gefüllt ist) wenigstens teilweise mit den benötigten Daten aus dem langsameren Speicherbetriebsmittel überschrieben werden. Wenn permanente Änderungen an den Daten vorgenommen werden, müssen in ähnlicher Weise sowohl die Daten im Cache als auch im langsameren Speicherbetriebsmittel aktualisiert werden, um diese Änderung widerzuspiegeln.
- Verteilte Datenverarbeitungsnetze und die LANs innerhalb dieser verteilten Netze können häufig von der Zwischenspeicherung profitieren. Typischerweise sind die Datenverbindungen zwischen LANs eines verteilten Verarbeitungsnetzes langsamer als die Verbindungen zwischen den Knoten (d. h. den einzelnen Computern) eines LAN. Obwohl ein entferntes Speicherbetriebsmittel (z. B. ein Plattenlaufwerk auf einem entfernten Server-System) ebenso schnell oder sogar schneller sein kann als lokale Speicherbetriebsmittel, können ferner Langstreckenverbindungen über eine Datenverbindung die Zugriffszeit auf dieses entfernte Betriebsmittel erheblich verlangsamen. Unabhängig vom Typ der Verbindung zwischen den LANs eines verteilten Verarbeitungsnetzes oder zwischen den Knoten (d. h. den einzelnen Systemen) eines LANs besitzt jede Datenverbindung eine gegebene Bandbreite, die nur eine endliche Datenmenge erlaubt, die gleichzeitig über die Verbindung übertragen wird. Sobald die Bandbreite überschritten wird, wenn z. B. mehr als eine gewisse Anzahl von Benutzern versucht, über dieselbe Verbindung (ob Verbindung zwischen LANs oder innerhalb eines LAN) zu kommunizieren, verschlechtert sich typischerweise die Antwortzeit über diese Verbindung, da jede Benutzeranfrage verzögert wird, um alle konkurrierenden Anfragen gleichermaßen anzunehmen. Folglich kann die Zwischenspeicherung von Daten, die über ein Netz gelesen werden, im allgemeinen die Systemleistungsfähigkeit erhöhen, sowohl durch die Reduzierung der Datenverbindungsbelastung als auch durch Versorgen des Endbenutzers mit einem Cache für schnell zugängliche Daten.
- Innerhalb der letzten Jahre wurden Compact-Disc-Nur-Lese- Speicher-Vorrichtungen (CD-ROMs) sehr populär aufgrund der Verfügbarkeit kostengünstiger Compact-Disc-Speichermedien mit hoher Kapazität und relativ kostengünstiger CD-ROM-Lesevorrichtungen (Laufwerke). Tatsächlich enthal ten nahezu alle neuen Personalcomputer, die in den Vereinigten Staaten verkauft werden, ein installiertes CD-ROM- Laufwerk. Obwohl die derzeitigen CD-ROM-Medien ungefähr 450-500 Megabytes an Daten speichern können, ist der Zugriff auf diese Daten deutlich langsamer als auf die Daten, die auf einem modernen Festplattenlaufwerk gespeichert sind. Zum Beispiel kann der aktuelle Standard für ein Hochleistungs-CD-ROM-Laufwerk, bekannt als ein "6X"- Laufwerk, höchstens ungefähr 600 Kilobytes an Daten pro Sekunde lesen. Ein modernes Hochgeschwindigkeits-IDE- Festplattenlaufwerk kann andererseits ungefähr 6 Megabytes pro Sekunde lesen - ungefähr das Zehnfache der Geschwindigkeit eines 6X-CD-ROM-Laufwerks. Daher kann die CD-ROM-Laufwerksleistung durch Cache-Speicherung erheblich gesteigert werden.
- Viele graphische Benutzerschnittstellenumgebungen (GUI- Umgebungen), wie z. B. Microsoft® WindowsTM Version 3.X, Microsoft Windows 95, Windows NT®, OS/2® der IBM Corporation und Geoworks® wurden im Lauf der Jahre entwickelt. Von den obenerwähnten Produkten sind nur Windows NT und OS/2 echte Betriebssysteme, da Geoworks und Windows 3.X unter dem ehrwürdigen Microsoft-Betriebssystem MS-DOS geladen werden und laufen müssen. Windows 95 ist so etwas wie ein Hybrid, da es für seinen Betrieb ebenfalls Teile von MS-DOS benötigt. Der Einfachheit halber werden im folgenden sowohl Windows 3.X als auch Windows 95 als Betriebssysteme bezeichnet.
- Als diese Beschreibung geschrieben wurde, war Microsoft Windows Version 3.X bei weitem das am meisten verwendete GUI-Betriebssystem, da es mit nahezu jedem Personalcomputer im Bündel angeboten wurde, der zwischen 1989 und Mitte 1995 verkauft wurde. Seit dem Datum des Erscheinens im Jahr 1995 wurde jedoch das Betriebssystem Microsoft Windows 95 der Microsoft Corporation mit den meisten Hochleistungspersonalcomputern im Bündel angeboten. In weniger als einem Jahr wurde es zum gewählten Betriebssystem für die meisten Geschäftsanwendungen, wobei erwartet wird, daß es Windows 3.X als das am meisten verwendete Betriebssystem für Personalcomputer schnell ablöst. Durch Cache-Speicherung besteht Potential für eine deutliche Steigerung der Leistungsfähigkeit sowohl von CD-ROM- Laufwerken und verteilten Verarbeitungsnetzen, die unter den Betriebssystemen Windows 3.X und Windows 95 laufen.
- Kurz nach dem Erscheinen von Windows 95 begann die Sun- Microsystems Inc. (im folgenden kurz "Sun") ein Netz- und CD-ROM-Zwischenspeicherungsprodukt zu schaffen, das sowohl unter Windows 3.X als auch Windows 95 läuft, das für den Endbenutzer vollständig transparent ist und mit einer großen Vielfalt von Dateisystemen arbeitet, die sowohl unter Windows 3.X als auch Windows 95 laufen. Um diese Anforderungen in seinem neuesten Zwischenspeicherungsprodukt zu erfüllen, nutzt Sun die Dienste, die vom virtuellen Gerätetreiber Installable File System Manager (IFSMGR) zur Verfügung gestellt werden. Dieser Prozeß wird im folgenden zusammengefaßt, obwohl er in der verwandten europäischen Patentanmeldung mit der laufenden Nr. 97201081.3 vollständig erläutert ist.
- Das PC-CachePS-Zwischenspeicherungsprodukt steht mit einem Softwaremodul innerhalb des Betriebssystems Microsoft Windows 95 in Verbindung, das als Installable File System Manager (IFSMGR) bekannt ist. Das IFSMGR- Modul ist von der Microsoft Corporation als virtueller Gerätetreiber (kurz VxD) klassifiziert. Das PC-CacheFS- Produkt erfüllt ebenfalls die Definition eines virtuellen Gerätetreibers. Das Betriebssystem Windows 95 ist so beschaffen, daß alle Dateisystem-Eingabe/Ausgabe-(E/A)- Anforderungen an den IFSMGR-VxD "angehängt" werden. In einer bevorzugten Ausführungsform ist der PC-Cache-FS-VxD zwischen dem IFSMGR-VxD und dem generischen Dateisystem von Windows 95 gelagert. Der PC-CacheFS-VxD empfängt alle Dateisystem-E/A-Anfragen vom IFSMGR-VxD und übernimmt die Zwischensteuerung der E/A-Operation, während ein Zwischenspeicherungsschema gemäß den Einstellbefehlen inkrementiert wird, die vom Benutzer eines lokalen Knotens vorprogrammiert worden sind.
- Statt separate Zwischenspeicherungsprodukte für Windows 3.X und Windows 95 zu erzeugen, wurde das PC-CacheFS- Zwischenspeicherungsprodukt so ausgelegt, daß es unter beiden Betriebssystemen läuft. Das Betriebssystem Windows 3.X hat jedoch keinen virtuellen IFSMGR-Gerätetreiber. Daher wurde von Scratch entsprechend der von der Microsoft Corporation gelieferten IFSMGR-VxD-Spezifikation für Windows 95 ein virtueller IFSMGR-Gerätetreiber geschrieben, der unter Windows 3.X läuft. Daher müssen zum Zweck der Kompatibilität weder das PC-Cache-FS-Zwischenspeicherungsprodukt (VxD) noch die Windows-Betriebssysteme umgeschrieben werden.
- WO-95 24685-A bezieht sich auf die Art, in der ein lokaler Cache einer Arbeitsstation aktualisiert wird als Ergebnis des Empfangens eines Dateischreibbefehls in der Arbeitsstation von einer Anwendung, die mit der Arbeitsstation verbunden ist. Ein tragbarer Arbeitsstation- Client arbeitet entweder mit einem lokalen Netz oder einem Weitbereichsnetz (LAN/WAN) verbunden oder von diesem getrennt. Eine solche Client-Arbeitsstation besitzt einen Cache-Manager, der versehen ist mit (1) einem nichtflüchtigen Client-Cache, (2) einer Volumeninformationsdatenbank und (3) einer Modifikations-Logbuch-Datenbank. Wenn ein Dateischreibbefehl von der Arbeitsstation empfangen wird und wenn sich die Datei im Cache der Arbeitsstation befindet, wird der Cache aktualisiert, woraufhin geprüft wird, ob das betreffende Volumen mit der Arbeitsstation verbunden ist. Trifft dies nicht zu (d. h. wenn die Arbeitsstation vom LAN/WAN getrennt ist), wird die vom Schreibdateibefehl induzierte Änderung zu dem LAN/WAN-Sever zurückgeschickt, der das Volumen enthält. Wenn festgestellt wird, daß die Datei, auf die sich der Dateischreibbefehl bezieht, nicht im Cache der Arbeitsstation befindet, wird ermittelt, ob das betreffende Volumen mit der Arbeitsstation verbunden ist. Trifft dies zu, wird die Datei vom betreffenden Volumen angefordert und der Cache aktualisiert. Trifft dies nicht zu, kann die Dateischreibanforderung nicht befriedigt werden und der Anwendung, die die Dateischreibanfrage ausgegeben hat, wird ein Fehler signalisiert.
- Die vorliegende Erfindung schafft ein Verfahren, ein System und ein Programmprodukt zum Zwischenpeichern gemäß den beigefügten Ansprüchen.
- Das neue PC-CacheFS-Zwischenspeicherungsprodukt von Sun verwendet einen Block eines lesbaren, schreibbaren und löschbaren Zwischenspeichers, der auf rotierenden, magnetischen Medien (wie z. B. einem Festplattenlaufwerk) resident ist. Zur Leistungssteigerung kann ferner ein Block eines lesbaren, schreibbaren und löschbaren Cache- Speichers im Schreib/Lese-Speicher (RAM) verwendet werden.
- Diese Erfindung enthält ein nichtflüchtiges Zwischenspeicherungssystem für rotierende magnetische Medien (z. B. Festplattenlaufwerke), die Daten selbst im Fall einer Systemabschaltung und eines Neustarts behalten. Das System kann Daten von großen Schreib/Lese-Dateien wie z. B. Datenbanken in einer platzsparenden Weise schnell zwischenspeichern. Die zwischengespeicherten Daten können in nahezu jeder Norm oder in einem ungenormten Format auf dem magnetischen Medium gespeichert sein. Eine Umsetzungsroutine setzt die CD-ROM-Dateinamen oder Netzdateinamen in lokale Festplattenlaufwerk-Dateinamen um und umgekehrt. Eine Minidatenbank wird für jede zwischengespeicherte Datei auf dem Festplattenlaufwerk erzeugt. Die Minidatenbank bildet Schreib/Lese-Blöcke der Daten innerhalb einer zwischengespeicherten Datei auf das lokale Festplattenlaufwerk ab.
- Fig. 1 zeigt ein Berechnungssystem für die Durchführung von computer-implementierten Schritten des Verfahrens gemäß der Erfindung; und
- Fig. 2 ist ein Flußdiagramm, das den logischen Operationsablauf zum Implementieren des Verfahrens zum Zwischenspeichern eines Netz- und CD-ROM-Dateizugriffs unter Verwendung eines Festplattenlaufwerks zeigt.
- Die Ausführungsformen der hier beschriebenen Erfindung können als logische Operationen in einem verteilten Verarbeitungssystem implementiert sein, das Client- und Server-Rechensysteme besitzt. Die logischen Operationen der vorliegenden Erfindung werden implementiert (1) als eine Sequenz von computer-implementierten Schritten, die auf dem Rechnersystem laufen, und (2) als vernetzte Maschinenmodule innerhalb des Rechnersystems. Die Wahl der Implementierung hängt von den Leistungsanforderungen des Rechnersystems ab, das die Erfindung implementiert. Dementsprechend werden die logischen Operationen, die die Ausführungsformen der hier beschriebenen Erfindung bilden, unterschiedlich als Operationen, Schritte oder Module bezeichnet.
- Die Betriebsumgebung, in der vorliegende Erfindung verwendet wird, umfaßt das allgemein verteilte Rechnersystem, in dem Universalcomputer, Arbeitsstationen oder Personalcomputer (im folgenden als lokale Knoten bezeichnet) über Kommunikationsverbindungen unterschiedlicher Typen in einer Client-Server-Anordnung verbunden sind, in welchen Programme und Daten, viele in Form von Objekten, den verschiedenen Mitgliedern des Systems zur Verfügung gestellt werden. Einige der Elemente eines Universal- Arbeitsstationscomputers sind in Fig. 1 gezeigt, in der ein Prozessor 1 gezeigt ist, der einen Eingabe/Ausgabe- (E/A)-Abschnitt, eine Zentraleinheit (CPU) 3 und einen Speicherabschnitt 4 besitzt. Der E/A-Abschnitt 2 ist mit einer Tastatur 5, einer Anzeigeeinheit 6, einer Plattenspeichereinheit 9 und einer CD-ROM-Laufwerkseinheit 7 verbunden. Die CD-ROM-Einheit 7 kann ein CD-ROM-Medium 8 lesen, das typischerweise Programme 10 und Daten enthält. Die Computerprogrammprodukte, die Mechanismen zum Bewerkstelligen der Vorrichtung und der Verfahren der vorliegenden Erfindung enthalten, können sich im Speicherabschnitt 4 oder auf einer Plattenspeichereinheit 9 oder auf der CD-ROM 8 eines solchen Systems befinden. Beispiele solcher Systeme umfassen SPARC-Systeme, die von Sun Microsystems Inc. angeboten werden, Personalcomputer, die von der IBM Corporation und von anderen Herstellern IBM-kompartibler Personalcomputer angeboten werden, sowie Systeme, auf denen das UNIX-Betriebssystem läuft.
- Die vorliegende Erfindung wurde im PC-CacheFS-Netz- und CD-ROM-Zwischenspeicherungsprodukt von Sun eingebaut. Die Erfindung enthält sowohl ein nichtflüchtiges Zwischenspeicherungssystem für rotierende magnetische Medien wie z. B. ein Festplattenlaufwerk, sowie ein Verfahren zum Implementieren des nichtflüchtigen Zwischenspeicherungs systems. Das Zwischenspeicherungssystem ist so beschaffen, daß zwischengespeicherte Daten selbst im Fall einer Systemabschaltung und eines Neustarts erhalten bleiben. Das System kann Daten von großen Schreib/Lese-Dateien wie z. B. Datenbanken in einer platzsparenden Weise schnell zwischenspeichern. Die zwischengespeicherten Daten können in einer nahezu beliebigen Norm oder in einem ungenormten Format auf dem magnetischen Medium gespeichert sein. Eine Umsetzungsroutine, die im folgenden mit Bezug auf Fig. 2 erläutert wird, setzt die CD-ROM-Dateinamen oder Netzdateinamen in lokale Festplattenlaufwerk-Dateinamen um und umgekehrt. Eine Minidatenbank wird für jede zwischengespeicherte Datei auf dem Festplattenlaufwerk erzeugt. Die Minidatenbank bildet beliebige Schreib/Lese-Blöcke der Daten innerhalb der zwischengespeicherten Datei auf das lokale Festplattenlaufwerk ab.
- Das Pseudocode-Flußdiagramm der Fig. 2 zeigt die logischen Schritte für das Verfahren genauer, das bei der Implementierung und Wartung einer bevorzugten Ausführungsform des Netz- und CD-ROM-Datei-Zwischenspeicherungssystems verwendet wird. Wie in Schritt 1 der Fig. 2 gezeigt, beginnt das Verfahren nach dem Empfangen einer Datei-E/A-Anfrage vom IFSMGR-VxD im Zwischenspeicherungs- VxD entweder direkt oder über eine Kette angehängter Ketten hiervon. Im Schritt 2 wird ermittelt, ob dies eine Instanz der Initialisierung zum Neustartzeitpunkt ist. Trifft dies zu, ermittelt Schritt 3, welches Festplattenlaufwerk den Platten-Cache enthält. Im Schritt 4 wird der Name des Platten-Cache konstruiert. Der Platten-Cache- Name wird konstruiert durch Kombinieren des Laufwerkidentifikationsbuchstabens und des Namens "CFS.SYS". Wenn z. B. das Einrichtungsprogramm für PC-CacheFS so konfiguriert wurde, daß es den Platten-Cache auf dem Laufwerk "D" plaziert, ist der vollständige Name des Platten-Cache gleich "D:\CFS.SYS". Wenn dies das erste Mal ist, daß der Zwischenspeicherungs-VxD vom System ausgeführt wird, hat er noch keinen Platten-Cache auf dem Laufwerk "D" initialisiert. Daher wird das Plattenverzeichnis "D" im Schritt 5 nach dem Platten-Cache-Dateinamen "D:\CFS.SYS" durchsucht. Wenn der Platten-Cache-Dateiname nicht auf dem Laufwerk "D" vorhanden ist, wird er unter Verwendung von Standard-Betriebssystemdiensten initialisiert (d. h. erzeugt). Sobald der Platten-Cache existiert, wird er in Schritt 7 durchsucht, um die Größe des Raums zu ermitteln, der hierdurch auf dem Plattenlaufwerk verbraucht wird.
- Sowohl der Ausgang von Schritt 7 als auch der "Nein"- Ausgang von Schritt 2 führen zum Schritt 8, der ermittelt, ob die ankommende Datei-E/A-Anfrage Daten auf einer Massenspeichervorrichtung betrifft, die für die Zwischenspeicherung ausgewiesen worden ist. Falls nicht, wird die Datei-E/A-Anfrage in Schritt 9 mit dem nächsten VxD verkettet, der an den IFSMGR-VxD "angehängt" ist, oder direkt mit dem IFSMGR-VxD verkettet, wenn es keine anderen VxDs in der Kette der angehängten VxDs gibt. Wenn andererseits die Datei-E/A-Anfrage zwischengespeichert werden soll, wird der vollständige Pfadname dieser Datei, die die angeforderten Daten enthält, im Schritt 10 in seinen Platten-Cache-Namen umgesetzt. Beispielsweise kann eine CD-ROM-Dateianfrage "R:\FULL\PATH\README.TXT" sein. Dieser vollständige Pfadname wird umgesetzt in "D:\CFS.SYS\R\FULL\PATH\README.TXT". Die Umsetzungsoperation ist einfach, effizient und leicht umkehrbar, um zu jedem beliebigen Zeitpunkt schnell den wirklichen Pfad der ursprünglichen Datei zu ermitteln.
- Anschließend ermittelt Schritt 11, ob der umgesetzte Name im Platten-Cache-Verzeichnis existiert. Trifft dies nicht zu, wird der umgesetzte Pfadname in das Platten-Cache- Verzeichnis im Schritt 12 geschrieben, wobei irgendwelche Stammverzeichnisse auf dem lokalen Festplattenlaufwerk erzeugt werden, wenn sie für den neuen Pfad erforderlich sind. Schritt 13 initialisiert anschließend eine Minidatenbank für den Dateinamen. Die Minidatenbank wird im folgenden genauer beschrieben. Es muß nicht erwähnt werden, daß die Minidatenbank initialisiert wird, um anzuzeigen, daß noch keine Blöcke innerhalb des Platten- Cache mit Daten für diese Datei geladen worden sind.
- Im Schritt 14 wird die Minidatenbank für den umgesetzten Dateinamen verarbeitet, um zu ermitteln, welche Datenblocknummern von der Datei in den Cache geladen werden. Schritt 15 ermittelt, ob eine Blocknummer, die in der Minidatenbank enthalten ist, einer Blocknummer entspricht, in der die angeforderten Daten auf dem zwischengespeicherten CD-ROM-Laufwerk vorhanden sind. Wenn keine solche Blocknummer innerhalb der Minidatenbank vorhanden ist, werden die Daten aus dem Netz oder dem CD-ROM-Dateisystem über den Systemdatenbus gelesen und in einen Datenblock innerhalb des Platten-Cache im Schritt 16 geschrieben, wobei die Minidatenbank der Datei aktualisiert wird, um das Vorhandensein der Dateidaten in einem Cache-Block wiederzuspiegeln.
- Im Schritt 17 wird auf die Daten innerhalb des Cache zugegriffen unter Verwendung der Minidatenbank als Führer zum Auffinden des geeigneten Blocks. Im Schritt 18 wird die Datei-E/A-Anfrage bedient durch Laden der aus dem Platten-Cache wiedergewonnen Daten auf den Systemdatenbus. Um den Prozeß abzuschließen, kehrt die Steuerung anschließend im Schritt 19 zum IFSMGR-VxD zurück.
- Wie bisher beschrieben worden ist, ist jeder Datei, die innerhalb eines nichtflüchtigen Cache auf dem Festplattenlaufwerk zwischengespeichert ist, eine "Minidatenbank" zugeordnet, die auf dem Plattenlaufwerk innerhalb des Platten-Cachebereichs initialisiert ist. In einer bevorzugten Ausführungsform der Erfindung enthält die Minidatenbank 256 Bytes an Daten. Die Minidatenbank hält PC- CacheFS-Versionsinformationen, so daß die Struktur der Minidatenbank bei Bedarf in Zukunft aktualisiert werden kann. Ferner sind in der Minidatenbank Cachekonsistenzinformationen enthalten, wie z. B. die Größe der Datei auf der zwischengespeicherten Massenspeichervorrichtung und der Zeitpunkt der letzten Dateiaktualisierung. Die Cachekonsistenzinformationen erleichtern die Ermittlung, ob die im Cache gespeicherten Daten bezüglich den innerhalb der zwischengespeicherten Vorrichtung gespeicherten Daten gültig sind. Ferner sind in der Minidatenbank direkte und indirekte Blockinformationen enthalten.
- In einer bevorzugten Ausführungsform der Erfindung werden die Daten aus der zwischengespeicherten Massenspeichervorrichtung gelesen und in 8-Kilobyte-Blöcken in den Cache geschrieben. Jeder 8-Kilobyte-Block in der ursprünglichen Datei ist als ein Offset vom ersten Block oder "0"-Block der Datei numeriert. Zum Beispiel zeigt ein Offset von "5" den sechsten Block nach dem Anfang der Datei an. In einer bevorzugten Ausführungsform der Erfindung kann die Minidatenbank direkt 91 8-Kilobyte-Blöcke innerhalb des Cache identifizieren (d. h. auf diese zeigen), die zur zwischengespeicherten Datei gehören. Die Minidatenbank kann ferner auf weitere 16 indirekte Blöcke zeigen. Ein indirekter Block wird immer dann initialisiert, wenn die Anzahl der 8-Kilobyte-Blöcke für eine zwischengespeicherte Datei 91 übersteigt. Ein indirekter Block ist ein 8-Kilobyte-Datenblock innerhalb des Cache, der in eine Hilfsabbildungstabelle umgesetzt worden ist. Da jeder Blockzuweiser zwei Bytes erfordert, kann jeder indirekte 8-Kilobyte-Block auf zusätzliche 4096 8-Kilobyte-Datenblöcke zeigen, die Daten für die zwischengespeicherte Datei enthalten. Die Minidatenbank besitzt eine ausreichende Kapazität, um auf maximal 16 indirekte Blöcke zu zeigen. Mit dieser Datenanordnung kann somit auf die ersten 745.472 Bytes einer beliebigen zwischengespeicherten Datei direkt unter Verwendung der direkten Blockbezeichner innerhalb der Minidatenbank zugegriffen werden. Die 16 verfügbaren indirekten Blöcke sorgen für die Zwischenspeicherung zusätzlicher 65.536 8-Kilobyte- Blöcke. Somit können Dateien mit einer Größe von bis zu ungefähr 525 Megabyte zwischengespeichert werden. Um einen Block mit einem Offset von 4.000 zu erhalten, ermittelt der Programmcode, daß dieser Offset nicht innerhalb der direkten Blöcke liegt (von denen es nur 91 gibt), und berechnet (durch Subtrahieren von 91 von 4.000), daß der Zeiger für den gewünschten Datenblock innerhalb des ersten indirekten Blocks beim 3.909-ten Doppelbytewert zu finden ist. Der Wert an diesem Ort zeigt direkt auf den gewünschten Datenblock innerhalb des Cache.
- Als eine Einrichtung zum Verbessern der Datenblockort- Operationen, wenn der benötigte Doppelbytezeiger innerhalb eines indirekten Blocks gefunden wird, zeichnet der Platten-Cache-Code den letzten indirekten Block, der gelesen wird, in dem Fall auf, in dem er für einen nachfolgenden Zugriff benötigt wird. Diese Technik verbessert die Leistungsfähigkeit, wenn Daten aus sehr großen Dateien gelesen werden.
- Somit liefert das bisher offenbarte Verfahren zum Zwischenspeichern von Netz- und CD-ROM-Dateizugriffen unter Verwendung eines Festplattenlaufwerks eine effiziente Umsetzung zwischen einem Pfadnamen einer zwischengespeicherten Datei und einem neuen Pfadnamen, der in das Festplattenlaufwerk geschrieben werden kann und die Datei identifiziert, in die die zwischengespeicherten Daten auf dem Festplattenlaufwerk geladen werden. Außerdem sorgt es für die Initialisierung einer Cache-Struktur auf dem Festplattenlaufwerk, die eine Minidatenbank für jede zwischengespeicherte Datei enthält, wobei die Minidatenbank Doppelbytezeiger speichert, die entweder direkt den Ort des zwischengespeicherten Blocks der ursprünglichen Datei identifizieren oder auf einen indirekten Block zeigen, der ebenfalls Doppelbytezeiger speichert, die jeweils direkt den Ort eines zwischengespeicherten Blocks der ursprünglichen Datei identifizieren.
- Obwohl die Erfindung mit Bezug auf die bevorzugten Ausführungsformen genauer gezeigt und beschrieben worden ist, ist Fachleuten klar, daß verschiedene andere Änderungen der Form und von Einzelheiten derselben vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen.
Claims (16)
1. Verfahren, um in einer designierten lokalen, nichtflüchtigen
Massenspeichervorrichtung (9), beispielsweise einem Festplattenlaufwerk, in der
Daten änderbar gespeichert werden können, unter der Steuerung eines
Computersystems (1) Dateidaten zwischenzuspeichern, die in einer
Massenspeichervorrichtung (8) gespeichert sind, welche eine
Zugriffsgeschwindigkeit aufweist, die langsamer ist als die des Festplattenlaufwerks
(9), wobei das Verfahren auf Dateieingabe-/-ausgabe(I/O)-Anforderungen
anspricht, die von einem auf das Computersystem geladenen Betriebssystem
kommen, dadurch gekennzeichnet, daß das Verfahren folgende Schritte aufweist:
Konvertieren (210) eines vollständigen Pfadnamens einer Datei in der
Massenspeichervorrichtung, die Daten beinhaltet, die zu einer empfangenen
Dateieingabe-/ausgabeanforderung an einen Dateinamen in Bezug stehen, der
einem Dateinamen innerhalb eines Cache-Verzeichnisses auf dem designierten
Laufwerk (9) entspricht;
Ermitteln (211), ob der konvertierte Name in einem Cache-Verzeichnis
auf dem Plattenlaufwerk (9) vorhanden ist oder nicht;
anschließend, falls der konvertierte Name im Cache-Verzeichnis nicht
vorhanden ist, Erzeugen eines Cacheverzeichnisses, falls keines existiert,
Schreiben (212) des konvertierten Namens in das Cache-Verzeichnis und
Erzeugen (213) einer Minidatenbank, die innerhalb des Cache vorhandene
Dateidaten der Massenspeichervorrichtung (8) identifiziert und auf diese hinweist,
für eine dem konvertierten Namen zugeordnete Datei;
Verarbeiten (214) der Minidatenbank, die mit der auf der Platte
vorhandenen Cache-Namensdatei in Bezug steht, um zu ermitteln, welche
Bereiche der Massenspeichervorrichtung (8) im Cache vorhanden sind;
Ermitteln (215), ob Dateidaten der Massenspeichervorrichtung (8) im
Cache vorhanden sind, die mit der empfangenen Eingabe-/Ausgabeanforderung in
Bezug stehen;
anschließend, falls die mit der empfangenen
Eingabe-/Ausgabeanforderung in Bezug stehenden Daten im Cache vorhanden sind, Zugreifen (217)
auf die zugehörigen Daten unter Verwendung der Minidatenbank als Hinweisgeber
auf deren Speicherort, bzw., falls sich die zugehörigen Daten nicht im Cache
befinden, Auslesen (216) der Daten aus der Massenspeichervorrichtung (8) und
Schreiben dieser Daten in den Cache sowie Aktualisieren der Minidatenbank; und
Auflösen (218) der empfangenen Dateieingabe-/-ausgabeanforderung
mit Daten im Cache.
2. Verfahren nach Anspruch 1, das weiterhin folgende Schritte
aufweist:
Ermitteln (202), ob die empfangene Anforderung während der
Betriebssystembootzeit-Initialisierung getätigt wird oder nicht, auf den Empfang
(201) einer empfangenen Dateieinbabe-/-ausgabeanforderung hin;
anschließend, falls die empfangene Anforderung während der Bootzeit-
Initialisierung getätigt wird, Erstellen (204) eines Namens, der einem designierten
Namen entspricht, für einen auf dem designierten Laufwerk befindlichen Cache,
und Ermitteln, ob der erstellte Name auf dem designierten Laufwerk bereits
existiert; und
anschließend, falls der erstellte Name auf dem designierten Laufwerk
bereits existiert, Annehmen, daß auf dem designierten Laufwerk ein Cache mit dem
erstellten Namen existiert, und Absuchen des Cache, um einen vom Cache
beanspruchten Laufwerksplatz zu ermitteln (207); und
anschließend, falls der erstellte Name auf dem designierten Laufwerk
nicht existiert, Erzeugen (206) eines Cache, der den erstellten Namen aufweist, auf
dem designierten Laufwerk, bevor der Cache abgesucht wird.
3. Verfahren nach Anspruch 1 oder Anspruch 2, das weiterhin den
Schritt des Initialisierens (213) von Daten innerhalb der Minidatenbank unmittelbar
nach ihrer Erzeugung umfaßt, um anzuzeigen, daß für die Datei, die mit dem auf
der Platte vorhandenen Cachenamen in Bezug steht, noch keine Daten in den
Cache geschrieben worden sind.
4. Verfahren nach einem der Ansprüche 1 bis 3, das weiterhin die
Schritte des Ermittelns (208) umfaßt, ob die empfangene
Dateieingabe-/-ausgabeanforderung zwischengespeichert werden soll oder nicht; und
anschließend, falls die empfangene Dateieingabe-/-ausgabeanforderung
nicht zwischengespeichert werden soll, Beenden (209) des
Zwischenspeicherungsverfahrens bzw., falls die empfangene
Dateieingabe-/-ausgabeanforderung zwischengespeichert werden soll,
anschließendes Konvertieren (210) eines vollständigen Pfadnamens einer Datei auf
der Massenspeichervorrichtung, die die Daten beinhaltet, die mit der empfangenen
Dateieingabe-/-ausgabeanforderung an einen auf der Platte befindlichen
Cachenamen in Bezug stehen.
5. System, um in einer designierten lokalen, nichtflüchtigen
Massenspeichervorrichtung (9), beispielsweise einem Festplattenlaufwerk, in der
Daten änderbar gespeichert werden können, unter der Steuerung eines
Computersystems (1) Dateidaten zwischenzuspeichern, die in einer
Massenspeichervorrichtung (8) gespeichert sind, welche eine
Zugriffsgeschwindigkeit aufweist, die langsamer ist als die des Festplattenlaufwerks
(9), wobei das Verfahren auf Dateieingabe-/-ausgabe(I/O)-Anforderungen
anspricht, die von einem auf das Computersystem geladenen Betriebssystem
kommen, dadurch gekennzeichnet, daß das System folgendes aufweist:
eine Einrichtung zum Konvertieren (210) eines vollständigen
Pfadnamens einer Datei in der Massenspeichervorrichtung, die Daten beinhaltet,
die zu einer empfangenen Dateieingabe-/ausgabeanforderung an einen
Dateinamen in Bezug stehen, der einem Dateinamen innerhalb eines Cache-
Verzeichnisses auf dem designierten Laufwerk (9) entspricht;
eine Einrichtung zum Ermitteln (211), ob der konvertierte Name in einem
Cache-Verzeichnis auf dem Plattenlaufwerk (9) vorhanden ist oder nicht;
anschließend, falls der konvertierte Name im Cache-Verzeichnis nicht
vorhanden ist, Erzeugen eines Cacheverzeichnisses, falls keines existiert,
Schreiben (212) des konvertierten Namens in das Cache-Verzeichnis und
Erzeugen (213) einer Minidatenbank, die innerhalb des Cache vorhandene
Dateidaten der Massenspeichervorrichtung (8) identifiziert und auf diese hinweist,
für eine dem konvertierten Namen zugeordnete Datei;
eine Einrichtung zum Verarbeiten (214) der Minidatenbank, die mit der
auf der Platte vorhandenen Cache-Namensdatei in Bezug steht, um zu ermitteln,
welche Bereiche der Massenspeichervorrichtung (8) im Cache vorhanden sind;
eine Einrichtung zum Ermitteln (215), ob Daten der
Massenspeichervorrichtung (8) im Cache vorhanden sind, die mit der empfangenen
Eingabe-/Ausgabeanforderung in Bezug stehen;
anschließend, falls die mit der empfangenen
Eingabe-/Ausgabeanforderung in Bezug stehenden Daten im Cache vorhanden sind, Zugreifen (217)
auf die zugehörigen Daten unter Verwendung der Minidatenbank als Hinweisgeber
auf deren Speicherort bzw., falls sich die zugehörigen Daten nicht im Cache
befinden, Auslesen (216) der Daten aus der Massenspeichervorrichtung (8) und
Schreiben dieser Daten in den Cache sowie Aktualisieren der Minidatenbank; und
eine Einrichtung zum Auflösen (218) der empfangenen
Dateieingabe-/-ausgabeanforderung mit Daten im Cache.
6. Zwischenspeicherungssystem nach Anspruch 5, bei dem
zwischengespeicherte Daten, die im Cacheverzeichnis gespeichert sind, innerhalb
von Datenblöcken gleicher Größe gespeichert werden, wobei jeder Block
zwischengespeicherter Daten im Cacheverzeichnis einem Datenblock von
identischer Größe innerhalb einer Datei entspricht, die in der langsameren
Massenspeichervorrichtung (8) gespeichert ist.
7. Zwischenspeicherungssystem nach Anspruch 6, bei dem jeder
Datenblock, der eine Datei bildet, die in der langsameren
Massenspeichervorrichtung (8) gespeichert ist, als Block-Offset vom Beginn der
Datei identifiziert wird.
8. Zwischenspeicherungssystem nach Anspruch 6 oder Anspruch 7,
bei dem die Minidatenbank eine geordnete Sequenz einer Anzahl direkter
Blockzeiger beinhaltet, wobei jeder direkte Blockzeiger sequentiell einer ersten
Anzahl von Datenblöcken innerhalb der Datei in der langsameren
Massenspeichervorrichtung (8) entspricht.
9. Zwischenspeicherungssystem nach Anspruch 8, bei dem die
Minidatenbank weiterhin eine Anzahl indirekter Blockzeiger beinhaltet, wobei jeder
indirekte Blockzeiger mit einem Datenbankblock innerhalb des
Cacheverzeichnisses in Bezug steht, das zusätzliche, direkte Blockzeiger enthält,
wobei jeder Datenbankblock eine Größe aufweist, die mit der eines Datenblocks
identisch ist.
10. Zwischenspeicherungssystem nach einem der Ansprüche 5 bis 9,
bei dem die Minidatenbank weiterhin Daten enthält, die eine zuletzt aufgezeichnete
Dateigröße und Aktualisierungszeit für jede Datei in der langsameren
Massenspeichervorrichtung (8) aufweist, welche auf der lokalen
Massenspeichervorrichtung (9) zwischengespeichert wurde.
11. Zwischenspeicherungssystem nach einem der Ansprüche 5 bis 10,
bei der die lokale Massenspeichervorrichtung (9) ein Festplattenlaufwerk und die
langsamere Massenspeichervorrichtung (8) ein lokales CD-ROM-Laufwerk ist.
12. Zwischenspeicherungssystem nach einem der Ansprüche 5 bis 10,
bei der die lokale Massenspeichervorrichtung (9) ein Festplattenlaufwerk und die
langsamere Massenspeichervorrichtung (8) ein mit einem Netzwerk verbundenes
Festplattenlaufwerk ist, das über einen Datenübermittlungsabschnitt mit dem
Computersystem gekoppelt ist.
13. Zwischenspeicherungssystem nach einem der Ansprüche 6 bis 12,
bei dem jede Minidatenbank 256 Bytes umfaßt und jeder Datenblock eine Größe
von 8 Kilobytes aufweist.
14. Computerprogrammprodukt, das ein von einem Computer
verwendbares Medium umfaßt, in dem ein computerlesbarer Code zur
Implementierung eines Vorgangs beinhaltet ist, um auf einer designierten lokalen,
nichtflüchtigen Massenspeichervorrichtung (9), beispielsweise einem
Festplattenlaufwerk, auf der Daten änderbar gespeichert werden können, unter
Steuerung eines Computersystems (1) Dateidaten zwischenzuspeichern, die in
einer Massenspeichervorrichtung (8) gespeichert sind, welche eine Zugriffszeit
aufweist, die langsamer ist als die des Festplattenlaufwerks (9), wobei der Prozeß
auf Dateieingabe-/-ausgabeanforderungen anspricht, die von einem auf den
Computer geladenen Betriebssystem getätigt werden, dadurch gekennzeichnet,
daß das Computerprogrammprodukt folgendes aufweist:
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem das Konvertieren
(210) eines vollständigen Pfadnamens einer Datei in der
Massenspeichervorrichtung, die Daten beinhaltet, welche mit einer empfangenen
Dateieingabe-/-ausgabeanforderung in Bezug stehen, in einen Dateinamen
durchführt, der einem Dateinamen innerhalb eines Cacheverzeichnisses auf dem
designierten Laufwerk (9) entspricht;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem das Ermitteln (211)
durchführt, ob der konvertierte Name in einem Cache-Verzeichnis auf dem
Plattenlaufwerk vorhanden ist oder nicht;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß, falls der konvertierte Name im Cache-
Verzeichnis nicht vorhanden ist, ein Computer das Erzeugen eines
Cacheverzeichnisses, falls keines existiert, das Schreiben (212) des konvertierten
Namens in das Cache-Verzeichnis und das Erzeugen (213) einer Minidatenbank für
eine mit dem konvertierten Namen in Bezug stehende Datei durchführt, wobei die
Minidatenbank innerhalb des Cache vorhandene Dateidaten der
Massenspeichervorrichtung (8) identifiziert und auf diese hinweist;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem das Verarbeiten
(214) der Minidatenbank durchführt, die mit der auf der Platte vorhandenen Cache-
Namensdatei in Bezug steht, um zu ermitteln, welche Bereiche der
Massenspeichervorrichtung (8) im Cache vorhanden sind;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem das Ermitteln (215)
durchführt, ob Dateidaten der Massenspeichervorrichtung (8) im Cache vorhanden
sind, die mit der empfangenen Eingabe-/Ausgabeanforderung in Bezug stehen;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß, falls die mit der empfangenen
Eingabe-/-ausgabeanforderung in Bezug stehenden Daten im Cache vorhanden
sind, ein Computer das Zugreifen (217) auf die zugehörigen Daten unter
Verwendung der Minidatenbank als Hinweisgeber auf ihren Speicherort, bzw., falls
sich die zugehörigen Daten nicht im Cache befinden, das Auslesen (216) der Daten
aus der Massenspeichervorrichtung (8) und das Schreiben dieser Daten in den
Cache sowie das Aktualisieren der Minidatenbank durchführt; und
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem das Auflösen (218)
der empfangenen Dateieingabe-/-ausgabeanforderung mit Daten im Cache
durchführt.
15. Computerprogrammprodukt nach Anspruch 14, das weiterhin
folgendes aufweist:
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß das Computersystem auf den Empfang
(201) einer empfangenen Dateieinbabe-/-ausgabeanforderung hin das Ermitteln
(202) durchführt, ob die empfangene Anforderung während der
Betriebssystembootzeit-Initialisierung getätigt wird oder nicht;
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß, falls die empfangene Anforderung
während der Bootzeit-Initialisierung getätigt wird, das Computersystem das
Erstellen (204) eines Namens, der einem designierten Namen entspricht, für einen
auf dem designierten Laufwerk befindlichen Cache sowie das Ermitteln (205)
durchführt, ob der erstellte Name auf dem designierten Laufwerk bereits existiert;
und
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß, falls der erstellte Name auf dem
designierten Laufwerk bereits existiert, das Computersystem das Annehmen, daß
auf dem designierten Laufwerk ein Cache mit dem erstellten Namen existiert, und
das Absuchen (207) des Cache durchführt, um einen vom Cache beanspruchten
Laufwerksplatz zu ermitteln; und
Vorrichtungen mit einem computerlesbaren Programmcode, die so
konfiguriert sind, daß sie bewirken, daß, falls der erstellte Name auf dem
designierten Laufwerk nicht existiert, das Computersystem das Erzeugen (206)
eines Cache, der den erstellten Namen aufweist, auf dem designierten Laufwerk
durchführt, bevor der Cache abgesucht wird.
16. Computerprogrammprodukt nach Anspruch 14 oder 15, das
weiterhin Vorrichtungen mit einem computerlesbaren Programmcode aufweist, die
so konfiguriert sind, daß sie bewirken, daß das Computersystem das Initialisieren
(213) von Daten innerhalb der Minidatenbank unmittelbar nach ihrer Erzeugung
durchführt, um anzuzeigen, daß für die Datei, die mit dem auf der Platte
vorhandenen Cachenamen in Bezug steht, noch keine Daten in den Cache
geschrieben worden sind.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/640,527 US5806085A (en) | 1996-05-01 | 1996-05-01 | Method for non-volatile caching of network and CD-ROM file accesses using a cache directory, pointers, file name conversion, a local hard disk, and separate small database |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69700574D1 DE69700574D1 (de) | 1999-11-11 |
| DE69700574T2 true DE69700574T2 (de) | 2000-05-25 |
Family
ID=24568615
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69700574T Expired - Fee Related DE69700574T2 (de) | 1996-05-01 | 1997-04-11 | Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5806085A (de) |
| EP (1) | EP0805395B1 (de) |
| JP (1) | JPH1069414A (de) |
| DE (1) | DE69700574T2 (de) |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0901077A1 (de) * | 1997-09-08 | 1999-03-10 | Deutsche Thomson-Brandt Gmbh | Architektur zum Ermöglichen von Cachespeicherung |
| US6694317B1 (en) * | 1997-12-31 | 2004-02-17 | International Business Machines Corporation | Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system |
| US7010532B1 (en) | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
| US6658417B1 (en) | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
| WO1999046672A1 (en) * | 1998-03-10 | 1999-09-16 | Ftp Software, Inc. | Direct network file system |
| US6260043B1 (en) * | 1998-11-06 | 2001-07-10 | Microsoft Corporation | Automatic file format converter |
| US6516426B1 (en) * | 1999-01-11 | 2003-02-04 | Seagate Technology Llc | Disc storage system having non-volatile write cache |
| US6378037B1 (en) | 1999-06-29 | 2002-04-23 | International Business Machines Corporation | Write-twice method of fail-safe write caching |
| US6295234B1 (en) | 2000-05-31 | 2001-09-25 | Texas Instruments Incorporated | Sequencer based serial port |
| US6725342B1 (en) * | 2000-09-26 | 2004-04-20 | Intel Corporation | Non-volatile mass storage cache coherency apparatus |
| US6609126B1 (en) | 2000-11-15 | 2003-08-19 | Appfluent Technology, Inc. | System and method for routing database requests to a database and a cache |
| US20020087798A1 (en) * | 2000-11-15 | 2002-07-04 | Vijayakumar Perincherry | System and method for adaptive data caching |
| US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
| US6798599B2 (en) * | 2001-01-29 | 2004-09-28 | Seagate Technology Llc | Disc storage system employing non-volatile magnetoresistive random access memory |
| US7275135B2 (en) * | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
| US6684372B2 (en) | 2002-03-15 | 2004-01-27 | Sun Microsystems, Inc. | Method, system and computer product to translate electronic schematic files between computer aided design platforms |
| US7103724B2 (en) * | 2002-04-01 | 2006-09-05 | Intel Corporation | Method and apparatus to generate cache data |
| GB0412815D0 (en) * | 2004-06-09 | 2004-07-14 | Hewlett Packard Development Co | Pathname translation method and system |
| US7809777B2 (en) * | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
| US8959125B2 (en) * | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
| US7970803B2 (en) * | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
| US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
| CN101449256B (zh) | 2006-04-12 | 2013-12-25 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
| US8566503B2 (en) * | 2006-08-25 | 2013-10-22 | Qnx Software Systems Limited | Multimedia filesystem having unified representation of content on diverse multimedia devices |
| US7908276B2 (en) | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
| EP2527972A3 (de) | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Vorrichtung und Verfahren zum Verarbeiten von komplexen Anweisungsformaten in einer Multi-Thread-Architektur, die verschiedene Kontextschaltungsmodi und Visualisierungsschemen unterstützt |
| CN103250131B (zh) | 2010-09-17 | 2015-12-16 | 索夫特机械公司 | 包括用于早期远分支预测的影子缓存的单周期多分支预测 |
| US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
| US9842005B2 (en) | 2011-03-25 | 2017-12-12 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
| KR101638225B1 (ko) | 2011-03-25 | 2016-07-08 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 |
| KR101639854B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조 |
| WO2012162188A2 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
| US8769196B1 (en) * | 2011-09-30 | 2014-07-01 | Lenovo (Singapore) Pte. Ltd. | Configuring I/O cache |
| EP2783281B1 (de) | 2011-11-22 | 2020-05-13 | Intel Corporation | Durch einen mikroprozessor beschleunigter code-optimierer |
| EP2783280B1 (de) | 2011-11-22 | 2019-09-11 | Intel Corporation | Beschleunigter codeoptimierer für einen mehrmotor-mikroprozessor |
| US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
| US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
| US9430410B2 (en) * | 2012-07-30 | 2016-08-30 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load accesses of a cache in a single cycle |
| US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
| US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
| US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
| US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
| US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
| US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
| US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
| US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
| WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
| WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
| US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
| US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
| KR20150130510A (ko) | 2013-03-15 | 2015-11-23 | 소프트 머신즈, 인크. | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
| US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
| WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
| EP2972845B1 (de) | 2013-03-15 | 2021-07-07 | Intel Corporation | Verfahren zur ausführung von in blöcken gruppierten befehlen aus mehreren threads |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
| GB2256735B (en) * | 1991-06-12 | 1995-06-21 | Intel Corp | Non-volatile disk cache |
| US5519853A (en) * | 1993-03-11 | 1996-05-21 | Legato Systems, Inc. | Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system |
| US5588129A (en) * | 1994-02-09 | 1996-12-24 | Ballard; Clinton L. | Cache for optical storage device and method for implementing same |
| US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
| EP0667579A1 (de) * | 1994-02-09 | 1995-08-16 | Ballard Synergy Corporation | Cache-Speicher für optische Speichervorrichtung |
| US5611066A (en) * | 1994-02-28 | 1997-03-11 | Data/Ware Development, Inc. | System for creating related sets via once caching common file with each unique control file associated within the set to create a unique record image |
| US6119151A (en) * | 1994-03-07 | 2000-09-12 | International Business Machines Corp. | System and method for efficient cache management in a distributed file system |
| EP0713183A3 (de) * | 1994-11-18 | 1996-10-02 | Microsoft Corp | Netzwerkunabhängige Schattendateien |
| US5577224A (en) * | 1994-12-13 | 1996-11-19 | Microsoft Corporation | Method and system for caching data |
-
1996
- 1996-05-01 US US08/640,527 patent/US5806085A/en not_active Expired - Lifetime
-
1997
- 1997-04-11 EP EP97201079A patent/EP0805395B1/de not_active Expired - Lifetime
- 1997-04-11 DE DE69700574T patent/DE69700574T2/de not_active Expired - Fee Related
- 1997-04-24 JP JP9107483A patent/JPH1069414A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0805395B1 (de) | 1999-10-06 |
| JPH1069414A (ja) | 1998-03-10 |
| EP0805395A1 (de) | 1997-11-05 |
| US5806085A (en) | 1998-09-08 |
| DE69700574D1 (de) | 1999-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69700574T2 (de) | Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte | |
| DE69636330T2 (de) | Verfahren für On-line- und Echzeit-Datenmigration | |
| DE69604734T2 (de) | Client-Server-Computersystem und Verfahren zum Verwenden eines lokalen Plattenlaufwerks als Daten-Cache | |
| DE69229982T2 (de) | Verfahren und Gerät um ein rechnergestütztes Dateiensystem zu betreiben | |
| DE69636192T2 (de) | Datenmigrationssystem und -verfahren unter verwendung von undichten dateien | |
| DE69600754T2 (de) | Aufteilung einer Teilung in einem Plattenspeichersystem | |
| DE3780807T2 (de) | Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien. | |
| DE69031494T2 (de) | Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien | |
| DE69702568T2 (de) | Mehrstufiges Cache-System für Massenspeichereinrichtung und Verfahren zum Einrichten eines solchen Systems | |
| DE69838756T2 (de) | Die verarbeitung von eingabe/ausgabeanforderungen von mehreren treibern ermöglichen dateisystem-primitivroutine in einem mehrschicht-treiber-e/a-system | |
| DE69623227T2 (de) | Verfahren und System zur Berechnung von Dateinamen mit hoher Wahrscheinlichkeit der Eindeutigkeit | |
| DE69031926T2 (de) | Instandhaltung von Dateiattributen in einem verteilten Datenverarbeitungssystem | |
| DE69534867T2 (de) | Verfahren und System zur Lieferung geschützter Gerätetreiber | |
| DE69623720T2 (de) | Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht | |
| DE69601850T2 (de) | Transaktionsgerättreiberverfahren für ein Dateiensystem mit Logging-Möglichkeit | |
| DE69530405T2 (de) | Schnappschuss von auf einem massenspeichersystem gespeicherten daten | |
| DE60001976T2 (de) | Verfahren und system zur datensicherung/wiederherstellung von an einer einzigen stelle gespeicherten dateien | |
| DE69620918T2 (de) | Speicherseiten-komprimierung | |
| DE69512459T2 (de) | RAID 5 - Plattenspeicheranordnung mit Paritätscachespeicher mit freien Blöcken | |
| DE69429378T2 (de) | Gemeinsamer Speicherbereich für lange und kurze Dateinamen | |
| DE69516538T2 (de) | Speicherung von rechnerdaten | |
| DE60216602T2 (de) | Verfahren und vorrichtung zum zugang zu magnetbandeinrichtungen in einem rechnersystem | |
| DE69738101T2 (de) | Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen | |
| DE69517945T2 (de) | Verbindungsverwalter zum integrieren der daten zwischen anwenderprogrammen | |
| DE60112257T2 (de) | Virtuelles Dateisystem für dynamisch erzeugte Webseiten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |