[go: up one dir, main page]

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 Festplatte

Info

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
Application number
DE69700574T
Other languages
English (en)
Other versions
DE69700574D1 (de
Inventor
Brian Berliner
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69700574D1 publication Critical patent/DE69700574D1/de
Publication of DE69700574T2 publication Critical patent/DE69700574T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In 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

    GEBIET DER ERFINDUNG:
  • Diese Erfindung bezieht sich auf nichtflüchtige Zwischenspeichersysteme für Datenverarbeitungssysteme und Verfahren zum Implementieren solcher Systeme.
  • BESCHREIBUNG DES STANDES DER TECHNIK:
  • 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • Kurzbeschreibung der Zeichnungen
  • 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.
  • Genaue Beschreibung bevorzugter Ausführungsformen
  • 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.
DE69700574T 1996-05-01 1997-04-11 Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte Expired - Fee Related DE69700574T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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