DE19960114A1 - Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems - Google Patents

Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems

Info

Publication number
DE19960114A1
DE19960114A1 DE1999160114 DE19960114A DE19960114A1 DE 19960114 A1 DE19960114 A1 DE 19960114A1 DE 1999160114 DE1999160114 DE 1999160114 DE 19960114 A DE19960114 A DE 19960114A DE 19960114 A1 DE19960114 A1 DE 19960114A1
Authority
DE
Germany
Prior art keywords
file
data
fragment
stored
record
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.)
Withdrawn
Application number
DE1999160114
Other languages
English (en)
Inventor
Christian Rutkowski
Hans Schwab
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.)
Dr Johannes Heidenhain GmbH
Original Assignee
Dr Johannes Heidenhain GmbH
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 Dr Johannes Heidenhain GmbH filed Critical Dr Johannes Heidenhain GmbH
Priority to DE1999160114 priority Critical patent/DE19960114A1/de
Publication of DE19960114A1 publication Critical patent/DE19960114A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing

Abstract

Die Erfindung bezieht sich auf ein Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems, das einen Arbeitsspeicher umfaßt, der unmittelbar einem Mikroprozessor zugeordnet ist und in dem von dem Mikroprozessor bei der Ausführung von Datenverarbeitsprogrammen benötigte Daten gespeichert sind, sowie einen Massenspeicher, der zur Speicherung weiterer Daten vorgesehen ist, wobei die Daten in mindestens zwei unterschiedlichen Fragmenten der Datei gespeichert werden, die separaten Bereichen des Datenspeichersystems zugeordnet sind, und wobei eine Zuordnungsliste gebildet wird, in der die Zuordnung der Dateifragmente zu unterschiedlichen Bereichen des Datenspeichersystems gespeichert ist. Erfindungsgemäß ist vorgesehen, daß die Daten zumindest zum Teil in Dateifragmenten des Massenspeichers gespeichert werden und daß die Einträge der Zuordnungsliste in dem Arbeitsspeicher gespeichert werden.

Description

Die Erfindung betrifft ein Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems nach dem Oberbegriff des Anspruchs 1, wobei das Datenspeichersystem zumindest einen Arbeitsspeicher sowie einen zusätzlichen Massenspeicher umfaßt.

Unter einem Arbeits- oder Hauptspeicher wird dabei ein Speicher in einer, digitalen Rechenanlage verstanden, mit dem der Prozessor der Rechenanlage unmittelbar zusammenar­ beitet und der Programmbefehle, Daten und Zwischenergebnis­ se enthält, die von dem Prozessor bei der Ausführung eines Datenverarbeitungsprogrammes jeweils benötigt werden. Unter einem Massenspeicher werden zusätzliche externe Speicher, z. B. in Form von Disketten oder Festplatten verstanden, die weiteren Speicherplatz für Daten zur Verfü­ gung stellen.

In der Regel ist die Zugriffszeit des Prozessors auf die in dem Arbeits- oder Hauptspeicher gespeicherten Daten erheb­ lich kürzer als die Zugriffszeit auf Daten des Massenspei­ chers, so daß das Bestreben besteht, bei der Ausführung eines Programmes nur auf solche Daten zugreifen bzw. nur solche Daten bearbeiten zu müssen, die in dem Arbeitsspei­ cher gespeichert sind. Es ist daher üblich, während des Ablaufs eines Datenverarbeitungsprogrammes solche Dateien, auf deren Daten der Prozessor beim Ausführen der Programm­ befehle zugreifen muß bzw. deren Inhalt laufend verändert werden muß, in dem Arbeitsspeicher zu speichern. Hierbei wird jedoch die Größe der zur Verfügung stehenden Dateien durch die Speicherkapazität des Arbeitsspeichers begrenzt.

In Fällen, in denen der Speicherbedarf der benötigten Dateien die Speicherkapazität des zur Verfügung stehenden Arbeitsspeichers überschreitet, kann es erforderlich sein, bei der Ausführung eines Datenverarbeitungsprogrammes auf Dateien zuzugreifen bzw. Dateien durch Veränderung ihres Inhaltes zu bearbeiten, die sich zu diesem Zeitpunkt nicht im Arbeitsspeicher, sondern in einem zusätzlichen, externen Speicher, wie z. B. einer Diskette oder einer Festplatte befinden.

Hierzu ist es bekannt, beim Einfügen eines Datensatzes in eine Datei, die in einem Massenspeicher gespeichert ist, zu­ nächst die hinter der Einfügeposition für den neuen Daten­ satz liegenden Teile der Datei temporär in einer eigenen, separaten Datei zu speichern. Anschließend wird der einzufü­ gende Datensatz hinter der Einfügeposition angefügt und die in der temporären Datei zwischengespeicherten Daten wieder­ um an den neuen Datensatz angehängt. In entsprechender Weise erfolgt das Löschen eines Datensatzes in einer Datei.

Dieses Verfahren zum Einfügen eines Datensatzes in eine Datei bzw. zum Löschen eines Datensatzes in einer Datei hat den Nachteil, daß aufgrund der Mehrzahl an Arbeitsschrit­ ten, die beim Bearbeiten der Datei in einem Massenspeicher ausgeführt werden müssen, zu viel Zeit zur Bearbeitung der Datei benötigt wird. Dies gilt insbesondere dann, wenn der Zugriff auf die in dem Massenspeicher gespeicherte Datei über ein Netzwerk erfolgt.

Das vorgenannte Verfahren zum Einfügen bzw. Löschen eines Datensatzes in einer Datei kann daher in solchen Fällen nicht angewandt werden, in denen nur sehr wenig Zeit für die Bearbeitung von Dateien zur Verfügung steht. Ein Bei­ spiel hierfür sind numerisch gesteuerte Maschinen, insbeson­ dere Werkzeugmaschinen, deren Prozessoren komplexe, zeitauf­ wendige Algorithmen für die Positionierung einzelner Maschi­ nenteile abarbeiten müssen und bei denen daher nur wenig Rechenzeit für die Eingabe der bei der Ausführung der entsprechenden Datenverarbeitungsprogramme benötigten Da­ ten, wie z. B. der Ist- und Soll-Positionen von Maschinentei­ len, zur Verfügung steht.

Diese Nachteile bestehen auch bei einem weiteren bekannten Verfahren zum Einfügen eines Datensatzes in eine auf einem Massenspeicher gespeicherte Datei, bei dem zunächst der vor der Einfügeposition des neuen Datensatzes liegende Dateiinhalt in einer eigenen, separaten Datei gespeichert wird. Anschließend werden nacheinander der einzufügende Datensatz sowie die Reste der ursprünglichen Datei an diese neue Datei angefügt. In entsprechender Weise erfolgt das Löschen eines Datensatzes, wobei der zu löschende Datensatz nicht in die neue Datei geschrieben wird.

Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersy­ stems der eingangs genannten Art zu schaffen, bei dem die zur Bearbeitung der Datei benötigten Rechenzeiten, insbeson­ dere die zum Einfügen oder Löschen von Datensätzen benötig­ ten Rechenzeiten, minimiert werden.

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst.

Danach werden die Daten in einer Datei gespeichert, die aus mindestens zwei Dateifragmenten besteht, welche unterschied­ lichen physikalischen Bereichen des Datenspeichersystems zugeordnet sind und von denen zumindest eines in einem Massenspeicher gespeichert ist, und es wird in dem Arbeits­ speicher des Datenspeichersystems eine Zuordnungsliste angelegt, in der die Zuordnung der Dateifragmente zu den unterschiedlichen Bereichen des Datenspeichersystems gespei­ chert ist.

Die Erfindung beruht auf der Erkenntnis, daß die an und für sich bekannte Aufteilung einer Datei in mehrere Dateifrag­ mente, deren Verteilung auf unterschiedliche, räumlich voneinander beabstandete (räumlich nicht zusammenhängende) Bereiche eines Datenspeichers in einer Zuordnungsliste (auch Dateizuordnungstabelle genannt) vermerkt ist (vergl. z. B. H.-P. Messmer, PC-Hardwarebuch, 3. Aufl., Bonn, 1995, S. 738-760), dahingehend erweitert werden kann, daß die Dateifragmente einerseits und die Zuordnungsliste anderer­ seits in unterschiedlichen Speichern eines Datenspeichersy­ stems (nämlich in einem Massenspeicher einerseits und einem Arbeitsspeicher andererseits) vorgesehen sind.

Durch die Unterteilung einer Datei in unterschiedliche Dateifragmente, die jeweils nur einen Teil des Inhalts der gesamten Datei aufnehmen, kann die Bearbeitung einer Datei insbesondere hinsichtlich des Hinzufügens oder Löschens von Datensätzen wesentlich vereinfacht werden. Es ist nicht mehr erforderlich, durch mehrere Kopiervorgänge die Datei zunächst in Bestandteile zu zerlegen, anschließend in den einzelnen Bestandteilen der Datei Daten hinzuzufügen oder zu löschen und daraufhin die Datei wieder zu einer Einheit zusammenzusetzen. Vielmehr kann das Hinzufügen oder Löschen von Daten in einfacher Weise durch die Schaffung neuer Dateifragmente erfolgen, wie weiter unten anhand vorteilhaf­ ter Weiterbildungen der Erfindung noch näher erläutert werden wird.

Vor der Bearbeitung einer Datei kann diese durchaus aus nur einem (in einem zusammenhängenden Speicherbereich abgeleg­ ten) Dateifragment bestehen. Die Aufteilung der Datei in mehrere Dateifragmente erfolgt dann erst bei der Bearbei­ tung der Datei durch das Hinzufügen oder Löschen einzelner Datensätze.

Die beim Hinzufügen oder Löschen von Datensätzen erfolgen­ den Änderungen in der Anzahl und/oder dem Inhalt der Da­ teifragmente werden jeweils durch entsprechende Einträge in der Zuordnungsliste berücksichtigt, so daß anhand der aktuellen Zuordnungsliste jederzeit auf sämtliche Daten der Datei zugegriffen werden kann.

Im Rahmen der Erfindung ist dabei von besonderer Bedeutung, daß die Zuordnungsliste im Arbeitsspeicher gespeichert ist, während die Dateifragmente zumindest zum Teil (also minde­ stens ein Dateifragment) außerhalb des Arbeitsspeichers in einem zusätzlichen, externen Massenspeicher, (wie z. B. einer Diskette oder einer Festplatte) gespeichert sind. Selbstverständlich können die einzelnen Dateifragmente auch komplett in dem Massenspeicher abgelegt sein.

Aufgrund der zumindest teilweisen Speicherung der Dateifrag­ mente in einem zusätzlichen Massenspeicher ist die Größe der Datei nicht durch die Kapazität des Arbeitsspeichers beschränkt. Mittels der Zuordnungsliste, die in dem dem Prozessor unmittelbar zugeordneten Arbeits- oder Hauptspei­ cher gespeichert ist und deren Einträge auf die einzelnen Dateifragmente verweisen (also die Zuordnung der Dateifrag­ mente zu bestimmten physikalischen Bereichen eines Spei­ chers enthalten), kann jederzeit auf die in den einzelnen Dateifragmenten gespeicherten Daten zugegriffen werden, wobei der Zugriff auf die Zuordnungsliste selbst nur sehr wenig Rechenzeit erfordert.

Im Ergebnis ermöglicht die erfindungsgemäße Lösung eine schnellere Bearbeitung von Dateien, die aufgrund der be­ grenzten Speicherkapazität des Arbeitsspeichers der Rechen­ anlage in einem separaten Arbeitsspeicher abgelegt sind und verbessert somit die Funktionsfähigkeit des Datenspeichersy­ stems sowie der Rechenanlage insgesamt.

Im Rahmen des erfindungsgemäßen Verfahrens kann das Hinzufü­ gen eines Datensatzes zu einer Datei in einfacher Weise dadurch erfolgen, daß der Datensatz in einem separaten Dateifragment gespeichert wird und der Zuordnungsliste ein Eintrag hinzugefügt wird, der auf dieses zusätzliche Da­ teifragment verweist, der also die Zuordnung dieses Da­ teifragmentes zu einem bestimmten Bereich eines Datenspei­ chers enthält.

Soll das Hinzufügen eines Datensatzes zu einer Datei da­ durch erfolgen, daß dieser Datensatz in ein bestehendes Dateifragment eingefügt wird, so wird dieses Dateifragment zunächst in zwei Teilfragmente (bei denen es sich wiederum um Dateifragmente handelt) unterteilt, indem für jedes der beiden Teilfragmente ein eigener Eintrag in der Zuordnungs­ liste geschaffen wird, der auf das entsprechende Teilfrag­ ment verweist. Es wird also ein Dateifragment in einfacher Weise in zwei kleinere Dateifragmente (hier als Teilfragmen­ te bezeichnet) unterteilt, indem lediglich die Einträge in der Zuordnungsliste des Arbeitsspeichers entsprechend modifiziert werden. An dem Dateifragment selbst müssen keinerlei Änderungen vorgenommen werden. Die beiden Einträ­ ge in der Zuordnungsliste, die auf die Teilfragmente verwei­ sen, können dabei dadurch gebildet werden, daß der auf das ursprüngliche Dateifragment verweisende Eintrag kopiert wird und anschließend der ursprüngliche Eintrag sowie dessen Kopie zur Anpassung an die Aufteilung des Dateifrag­ mentes in zwei Teilfragmente modifiziert werden.

Nach der Unterteilung des Dateifragmentes in zwei Teilfrag­ mente durch entsprechende Modifizierung der Zuordnungsliste wird der Zuordnungsliste noch ein Eintrag hinzugefügt, der auf das zusätzliche Dateifragment verweist, das den einzufü­ genden Datensatz enthält. Die einzelnen Einträge der Zuord­ nungsliste müssen dabei entweder derart angeordnet oder (durch Verweisungen) miteinander verkettet sein, daß dem hinzugefügten Dateifragment die richtige Position innerhalb der Datei (also zwischen den beiden Teilfragmenten, die das ursprüngliche Dateifragment bildeten) zugewiesen wird.

Beim Anfügen eines Datensatzes an den Anfang oder das Ende eines Dateifragmentes wird dieses einfach um den anzufügen­ den Datensatz erweitert und der auf das Dateifragment verweisende Eintrag entsprechend modifiziert.

Zum Löschen eines Datensatzes eines Dateifragmentes im Rahmen des erfindungsgemäßen Verfahrens wird mindestens ein Eintrag in der Zuordnungsliste gebildet, der auf das oder die nach dem Löschen des Datensatzes noch verbleibenden Teilfragment(e) des Dateifragmentes verweist. Das Löschen eines Datensatzes in einer Datei erfordert demnach ledig­ lich eine Änderung der Einträge, der im Arbeitsspeicher abgelegten Zuordnungsliste; der eigentliche Inhalt der Datei wird nicht verändert.

Es sei hier nochmals darauf hingewiesen, daß das Dateifrag­ ment, in dem ein Datensatz gelöscht werden soll, durchaus identisch mit der gesamten Datei sein kann. Die Untertei­ lung der Datei in mehrere Dateifragmente erfolgt in einem solchen Fall erst, wenn das erstgenannte Dateifragment während des Löschens des Datensatzes in mehrere kleinere Dateifragmente (Teilfragmente) unterteilt wird.

Soll ein Datensatz gelöscht werden, der weder am Anfang noch am Ende eines Dateifragmentes gespeichert ist, so wird das Dateifragment in zwei die nicht zu löschenden Daten enthaltende Teilfragmente unterteilt, indem für jedes der beiden Teilfragmente ein eigener Eintrag in der Zuordnungs­ liste geschaffen wird, der auf das entsprechende Teilfrag­ ment verweist. Die beiden neuen Einträge in der Zuordnungs­ liste können dabei in einfacher Weise dadurch gebildet werden, daß der auf das ursprüngliche Dateifragment verwei­ sende Eintrag kopiert und anschließend in geeigneter Weise modifiziert wird.

Beim Löschen eines Datensatzes, der am Anfang oder am Ende eines Dateifragmentes gespeichert ist, wird ein Eintrag in der Zuordnungsliste gebildet, der auf den verbleibenden Teil des Dateifragmentes verweist. Zum vollständigen Lö­ schen eines Dateifragmentes wird einfach der zugehörige Eintrag in der Zuordnungsliste gelöscht.

Das Überschreiben eines Datensatzes einer Datei erfolgt durch eine Kombination der vorstehend beschriebenen Verfah­ rensschritte "Löschen eines Datensatzes" und "Hinzufügen eines Datensatzes".

Die Zuordnung der Dateifragmente zu unterschiedlichen Bereichen eines Datenspeichers mittels der Zuordnungsliste erfolgt vorzugsweise dadurch, daß jeder Eintrag der Zuord­ nungsliste einen Verweis auf den Beginn und das Ende des von dem jeweiligen Dateifragment belegten Speicherbereiches aufweist.

Die Einträge der Zuordnungsliste müssen nicht zusammenhän­ gend hintereinander angeordnet sein; vielmehr kann auch jeder Eintrag der Zuordnungsliste einen Verweis auf den jeweils darauffolgenden Eintrag enthalten. Die Einträge der Zuordnungsliste werden dadurch miteinander verkettet, selbst wenn sie nicht räumlich zusammenhängend in dem Ar­ beitsspeicher gespeichert sind.

Die Anwendung des erfindungsgemäßen Verfahrens zum Spei­ chern von Daten auf ein Verfahren zur numerischen Steuerung von Maschinen, insbesondere Werkzeugmaschinen, ist durch die Merkmale des Anspruchs 14 charakterisiert.

Ein Datenspeichersystem, das einen Arbeitsspeicher sowie mindestens einen zusätzlichen Massenspeicher umfaßt und in dem Daten in einer dem erfindungsgemäßen Verfahren entspre­ chenden Weise abgespeichert sind, ist durch die Merkmale des Anspruchs 15 charakterisiert.

Weitere Vorteile der Erfindung werden bei der nachfolgenden Beschreibung eines Ausführungsbeispiels anhand der Figuren deutlich werden.

Es zeigen:

Fig. 1 eine schematische Darstellung eines Datenspei­ chersystems, das in eine Rechenanlage inte­ griert ist;

Fig. 2a und 2b eine schematische Darstellung zweier Bearbei­ tungsschritte beim Einfügen eines Datensatzes in eine Datei;

Fig. 3a und 3b eine schematische Darstellung zweier Arbeits­ schritte beim Löschen eines Datensatzes in einer Datei.

In Fig. 1 ist schematisch in einem Blockdiagramm eine Rechenanlage dargestellt, die als zentrale Bestandteile einen Mikroprozessor 1 sowie einen dem Mikroprozessor 1 unmittelbar zugeordneten Arbeits- oder Hauptspeicher 2 aufweist. In dem Arbeitsspeicher 2 werden die zur Ausfüh­ rung eines Datenverarbeitungsprogrammes erforderlichen Programmbefehle, die benötigten Daten sowie Zwischen- und Endergebnisse gespeichert.

Darüber hinaus sind über einen Controller 3 Massenspei­ cher 4, 5 mit dem Mikroprozessor 2 verbunden, bei denen es sich z. B. um eine Diskette in einem Diskettenlaufwerk oder um eine Festplatte eines Festplattenlaufwerkes handeln kann. Dort können größere Datenmengen eingelesen und ggf. dauerhaft gespeichert werden, für die die Kapazität des Ar­ beitsspeichers 2 nicht ausreichend ist. Der Arbeitsspei­ cher 2 zeichnet sich jedoch gegenüber den Massenspei­ chern 4, 5 dadurch aus, daß die Zugriffszeit des Mikropro­ zessors 1 auf den Arbeitsspeicher 2 erheblich kürzer ist als auf die Massenspeicher 4, 5.

Ferner ist mit dem Mikroprozessor 1 eine Eingabe/-Ausgabe­ einrichtung 8 verbunden, über die die Rechenanlage 1 mit externen Geräten, wie z. B. einem Bedienpult, einem Bild­ schirm sowie einer Steuervorrichtung für Werkzeugmaschinen verbunden werden kann.

Bei Verwendung der in Fig. 1 dargestellten Rechenanlage in einer numerischen Steuerung für Werkzeugmaschinen ist es erforderlich, in dem Datenspeichersystem der Rechenanlage, das den Arbeitsspeicher 2 sowie die beiden Massenspei­ cher 4, 5 umfaßt, große Mengen an Daten zu speichern, beispielsweise die Ist- und Soll-Positionen von Maschinen­ teilen der zu steuernden Maschine. Es ist daher aufgrund der beschränkten Kapazität des Arbeitsspeichers häufig notwendig, zumindest einen Teil der zur Steuerung benötig­ ten Daten in Dateien abzulegen, die in einem der Massenspei­ cher 4, 5 gespeichert sind.

Anhand der Fig. 2 und 3 soll nun erläutert werden, wie die Bearbeitung von Dateien, die auf einem der Massenspei­ cher 4, 5 gespeichert sind, mit minimalem Aufwand an Rechen­ zeit erfolgen kann.

In Fig. 2a ist eine aus einem einzelnen Dateifragment F bestehende Datei dargestellt, das in einem der Massenspei­ cher 4, 5 gespeichert ist und dort den zwischen einer Adresse A1 (Anfang des Dateifragmentes) und einer Adres­ se A2 (Ende des Dateifragmentes) zur Verfügung stehenden Speicherplatz belegt. Diesem Dateifragment F ist ein Ein­ trag in einer in dem Arbeitsspeicher 2 gespeicherten Zuord­ nungsliste Z zugeordnet, der auf dieses Dateifragment F verweist und diesem die Adressen A1 und A2 zuordnet.

Soll in das Dateifragment F ein zusätzlicher Datensatz eingefügt werden, so wird gemäß Fig. 2b das Dateifragment F in zwei Teilfragmente F1 und F2 unterteilt, die jeweils ein kleineres Dateifragment bilden und zwischen denen der zu­ sätzliche Datensatz eingefügt werden soll. Dies geschieht dadurch, daß zwei neue Einträge in der Zuordnungsliste Z geschaffen werden, indem zunächst der bisherige Eintrag kopiert wird und anschließend sowohl der bisherige Eintrag als auch dessen Kopie modifiziert werden. Die beiden aktuel­ len Einträge der Zuordnungsliste Z verweisen dann auf je eines der beiden Dateifragmente F1, F2, wobei der eine Eintrag dem ersten Dateifragment F1 die Adressen A1, A4 zu­ ordnet, die den Anfang und das Ende des von diesem Datei­ fragmentes F1 belegten Speicherbereiches bezeichnen, und der andere Eintrag dem zweiten Dateifragment F2 die Adres­ sen A3, A2 zuordnet, die den Anfang und das Ende des von jenem Dateifragment F2 belegten Speicherplatzes bezeichnen.

Der zusätzliche Datensatz wird in einem separaten Dateifrag­ ment F3 auf einem der Massenspeicher 4, 5 gespeichert, und zwar in einem durch die Adressen A5, A6 gekennzeichneten Speicherbereich. Auf dieses Dateifragment F3 verweist ein dritter Eintrag in der Zuordnungsliste Z, der dem Dateifrag­ ment F3 die Adressen A5, A6 in dem entsprechenden Massen­ speicher 4 bzw. 5 zuordnet.

Zum Einfügen eines Datensatzes in eine Datei F ist es also lediglich erforderlich, diesen Datensatz an einer beliebi­ gen Stelle eines der Massenspeicher 4, 5 zu speichern und anschließend einige Modifikationen in der in dem Arbeits­ speicher abgelegten Zuordnungsliste Z vorzunehmen. Hier­ durch wird die zum Einfügen eines Datensatzes in eine Datei erforderliche Rechenzeit minimiert.

Die einzelnen Einträge in der Zuordnungsliste Z müssen dabei nicht, wie in Fig. 2b dargestellt, zusammenhängend hintereinander angeordnet sein. Die Anordnung der Einträge der Zuordnungsliste Z ist vielmehr beliebig, sofern jeder dieser Einträge zusätzlich einen Verweis auf den jeweils folgenden Eintrag enthält.

Zum Löschen eines Datensatzes in einem Dateifragment F wird gemäß den Fig. 3a und 3b das Dateifragment F in zwei Teilfragmente F4, F5 unterteilt, von denen das eine den vor dem zu löschenden Datensatz G liegenden Dateiinhalt und das andere den hinter dem zu löschenden Datensatz G liegenden Dateiinhalt enthält. Die Unterteilung des Dateifragmentes F in zwei Teilfragmente F4, F5 geschieht dabei dadurch, daß (in derselben Weise wie bereits anhand der Fig. 2a und 2b erläutert) zwei Einträge in der Zuordnungsliste Z gebil­ det werden, von denen der eine auf das erste Teilfragment F4 und der andere auf das zweite Teilfragment F5 verweist. Dabei ordnet der eine Eintrag dem ersten Teilfragment F4 die Adressen A1, A8 zu, die den Anfang und das Ende des von diesem Dateifragment belegten Speicherplatzes repräsentie­ ren; und der andere Eintrag ordnet in entsprechender Weise dem zweiten Dateifragment F5 Adressen A7, A2 zu. Der ge­ löschte Datensatz G befindet sich somit in einem Bereich des Massenspeichers 4 bzw. 5, auf den keiner der Einträge der Zuordnungsliste Z verweist.

Es wird deutlich, daß das Löschen eines Datensatzes in einfacher Weise durch eine Modifikation der auf dem Arbeits­ speicher abgelegten Zuordnungsliste Z erfolgt. Dies minimiert die beim Löschen eines Datensatzes erforderliche Rechenzeit.

Selbstverständlich kann - in Abwandlung des anhand der Fig. 2 und 3 dargestellten Ausführungsbeispieles - die Datei, die jeweils den Ausgangspunkt für das Einfügen bzw. Löschen eines Datensatzes darstellt, auch vor Beginn dieser Operationen schon aus mehreren Dateifragmenten bestehen.

Bei Bedarf kann die mittels des erfindungsgemäßen Verfah­ rens beim Einfügen oder Löschen eines Datensatzes erzeugte, aus mehreren separaten Dateifragmenten bestehende Datei wieder zu einer einheitlichen, in einem zusammenhängenden Speicherbereich gespeicherten Datei zusammengefaßt werden. Hierzu werden die einzelnen Dateifragmente nacheinander in einer Datei gespeichert, der ein zusammenhängender Speicher­ bereich zugewiesen ist. Die Reihenfolge der Anordnung der einzelnen Dateifragmente ist dabei durch die Zuordnungsli­ ste eindeutig bestimmt, sei es durch die Reihenfolge der An­ ordnung der Einträge der Zuordnungsliste oder durch Verwei­ se in den einzelnen Einträgen der Zuordnungsliste, die jeweils auf den folgenden Eintrag verweisen. Dieses Zusam­ menfassen der einzelnen Dateifragmente zu einer in einem zu­ sammenhängenden Speicherbereich angeordneten Datei kann zu einem geeigneten Zeitpunkt erfolgen, zu dem hinreichend Re­ chenzeit für diese Operation zur Verfügung steht.

Claims (15)

1. Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems, das einen Arbeitsspeicher umfaßt, der unmittelbar einem Mikroprozessor zugeordnet ist, sowie einen Massenspeicher, der zur Speicherung weiterer Daten vorgesehen ist, wobei die Daten in mindestens zwei unterschiedlichen Fragmenten der Datei gespeichert werden, die separaten Bereichen des Datenspeichersystems zugeordnet sind, und wobei eine Zuordnungsliste gebildet wird, in der die Zuordnung der Dateifragmente zu unter­ schiedlichen Bereichen des Datenspeichersystems gespei­ chert ist, dadurch gekennzeichnet, daß mindestens eines der Dateifragmente (F, F1-F5) in dem Massenspeicher (4, 5) gespeichert wird und daß die Einträge der Zuordnungsliste (Z) in dem Arbeitsspei­ cher (2) gespeichert werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zum Hinzufügen eines Datensatzes zu einer Datei der Datensatz in einem separaten Dateifragment (F3) gespei­ chert wird und der Zuordnungsliste (Z) ein Eintrag hinzugefügt wird, der auf das Dateifragment (F3) ver­ weist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß zum Einfügen eines Datensatzes in ein Dateifragment (F) das Dateifragment in zwei Teilfragmente (F1, F2) unter­ teilt wird, indem für jedes der beiden Teilfragmen­ te (F1, F2) ein eigener Eintrag in der Zuordnungsli­ ste (Z) gebildet wird, der auf das entsprechende Teil­ fragment (F1, F2) verweist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die beiden Einträge irr der Zuordnungsliste (Z) gebildet, werden, indem der auf das ursprüngliche Dateifrag­ ment (F) verweisende Eintrag kopiert und anschließend mo­ difiziert wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß beim Anfügen eines Datensatzes an ein Dateifragment (F) das Dateifragment um diesen Datensatz erweitert wird und der auf das Dateifragment verweisende Eintrag der Zuord­ nungsliste (Z) modifiziert wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch ge­ kennzeichnet, daß zum Löschen eines Datensatzes (G) eines Dateifragmentes (F) mindestens ein Eintrag in der Zuordnungsliste (Z) gebildet wird, der auf mindestens ein nach dem Löschen verbleibendes Teilfragment (F4, F5) des Dateifragmentes (F) verweist.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß zum Löschen eines Datensatzes (G), der weder am Anfang noch am Ende des Dateifragmentes (F) gespeichert ist, das Dateifragment (F) in zwei die nicht zu löschenden Daten enthaltende Teilfragmente (F4, F5) unterteilt wird, indem für jedes der beiden Teilfragmente (F4, F5) ein eigener Eintrag in der Zuordnungsliste (Z) geschaf­ fen wird, der auf das entsprechende Teilfragment (F4, F5) verweist.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die beiden Einträge in der Zuordnungsliste (Z) gebildet werden, indem der auf das ursprüngliche Dateifrag­ ment (F) verweisende Eintrag kopiert und anschließend mo­ difiziert wird.
9. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß zum Löschen eines Datensatzes, der am Anfang oder am Ende des Dateifragmentes (F) gespeichert ist, ein Ein­ trag in der Zuordnungsliste (Z) gebildet wird, der auf das verbleibende Teilfragment des Dateifragmentes ver­ weist.
10. Verfahren nach einem der Ansprüche 1 bis 5, dadurch ge­ kennzeichnet, daß zum vollständigen Löschen eines Dateifragmentes (F) der zugehörige Eintrag in der Zuord­ nungsliste (Z) gelöscht wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zum Überschreiben eines Datensatzes einer Datei der Datensatz gelöscht und anschließend an der entsprechenden Stelle der Datei ein neuer Datensatz eingefügt wird.
12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß jeder Eintrag der Zuord­ nungsliste (Z) einen Verweis auf den Beginn (A1, A3, A5, A7) und das Ende (A2, A4, A6, A8) des von dem, jeweiligen Dateifragment (F, F1-F5) belegten Speicher­ bereiches enthält.
13. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß jeder Eintrag der Zuord­ nungsliste (Z) einem Verweis auf den darauf folgenden Eintrag enthält.
14. Verfahren zur Steuerung und/oder Regelung von Maschi­ nen, insbesondere von Werkzeugmaschinen, unter Verwen­ dung eines Mikroprozessors und eines Datenspeichersy­ stems, das einen Arbeitsspeicher umfaßt, der unmittel­ bar dem Mikroprozessor zugeordnet ist, sowie einen Mas­ senspeicher, der zur Speicherung weiterer Daten vorgese­ hen ist, wobei eine Speicherung von Daten in dem Daten­ speichersystem nach einem der vorhergehenden Ansprüche erfolgt.
15. Datenspeichersystem, das einen Arbeitsspeicher umfaßt, der unmittelbar einem Mikroprozessor zugeordnet ist, sowie einen Massenspeicher, der zur Speicherung weite­ rer Daten vorgesehen ist, wobei in dem Datenspeichersy­ stem mindestens eine Gruppe von Daten in einer Datei gespeichert ist, wobei die Daten in mindestens zwei un­ terschiedlichen Fragmenten der Datei gespeichert sind, die separaten Bereichen des Datenspeichersystems zuge­ ordnet sind, und wobei eine Zuordnungsliste vorgesehen ist, in der die Zuordnung der Dateifragmente zu unter­ schiedlichen Bereichere des Datenspeichersystems gespei­, chert ist, dadurch gekennzeichnet, daß mindestens eines der Dateifragmente (F, F1-F5) in dem Massenspeicher (4, 5) gespeichert ist und daß die Einträge der Zuordnungsliste (Z) in dem Arbeitsspei­ cher (2) gespeichert sind.
DE1999160114 1999-12-08 1999-12-08 Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems Withdrawn DE19960114A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1999160114 DE19960114A1 (de) 1999-12-08 1999-12-08 Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE1999160114 DE19960114A1 (de) 1999-12-08 1999-12-08 Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems
PCT/EP2000/011847 WO2001042923A2 (de) 1999-12-08 2000-11-28 Verfahren zum speichern von daten in einer datei eines datenspeichersystems
EP20000977588 EP1259884A2 (de) 1999-12-08 2000-11-28 Verfahren zum speichern von daten in einer datei eines datenspeichersystems

Publications (1)

Publication Number Publication Date
DE19960114A1 true DE19960114A1 (de) 2001-06-13

Family

ID=7932516

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999160114 Withdrawn DE19960114A1 (de) 1999-12-08 1999-12-08 Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems

Country Status (3)

Country Link
EP (1) EP1259884A2 (de)
DE (1) DE19960114A1 (de)
WO (1) WO2001042923A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008022831A1 (de) * 2008-05-08 2009-11-19 Fujitsu Siemens Computers Gmbh Working method for a storage subsystem and devices for carrying out the working method
US8122219B2 (en) 2009-07-22 2012-02-21 International Business Machines Corporation Storage allocation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3743890A1 (de) * 1987-03-30 1988-10-27 Ibm Verfahren zum schnellen eroeffnen von plattendateien
DE19633648A1 (de) * 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
US5715455A (en) * 1995-05-18 1998-02-03 International Business Machines Corporation Apparatus and method for storing file allocation table efficiently in memory
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3743890A1 (de) * 1987-03-30 1988-10-27 Ibm Verfahren zum schnellen eroeffnen von plattendateien
DE19633648A1 (de) * 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP 0003246616 AA.,In: Patent Abstracts of Japan *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008022831A1 (de) * 2008-05-08 2009-11-19 Fujitsu Siemens Computers Gmbh Working method for a storage subsystem and devices for carrying out the working method
US8140747B2 (en) 2008-05-08 2012-03-20 Fujitsu Technology Solutions Intellectual Property Gmbh Operating method for a memory subsystem and devices for executing the operating method
DE102008022831B4 (de) * 2008-05-08 2015-09-10 Fujitsu Technology Solutions Intellectual Property Gmbh Working method for a storage subsystem and devices for carrying out the working method
US8122219B2 (en) 2009-07-22 2012-02-21 International Business Machines Corporation Storage allocation

Also Published As

Publication number Publication date
WO2001042923A2 (de) 2001-06-14
EP1259884A2 (de) 2002-11-27
WO2001042923A3 (de) 2002-09-12

Similar Documents

Publication Publication Date Title
JP5663060B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
US8180984B1 (en) System and method for consolidation of backups
US7657721B2 (en) Method of maintaining a plurality of snapshots, server apparatus and storage apparatus
USRE44052E1 (en) Flash memory management method
US6898681B2 (en) Computer storage systems
JP2993528B2 (ja) テキスト管理・復元方式
CN101382917B (zh) 半导体存储装置及半导体存储装置的控制方法
US5664186A (en) Computer file management and backup system
US6370456B2 (en) Method for applying control data for an electronic motor vehicle control unit
US6460054B1 (en) System and method for data storage archive bit update after snapshot backup
US7962531B2 (en) Multiple concurrent active file systems
KR100468880B1 (ko) 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US6385690B1 (en) Recording method, managing method, and recording apparatus
CN1983266B (zh) 闪速类介质中存储事务记录的文件系统
CA1316262C (en) Version management tool
KR100292011B1 (ko) 플래쉬파일수단
KR100495722B1 (ko) 개선된 플래시 파일 시스템
US5987478A (en) Virtual small block file manager for flash memory array
KR100437199B1 (ko) 컴퓨터시스템및그에저장된데이터를액세싱하기위한방법
JP4192129B2 (ja) メモリ管理装置
US8386695B2 (en) Methods and apparatus for writing data to non-volatile memory
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
CN104423894B (zh) 数据储存装置以及快闪存储器控制方法
US5956745A (en) System and method for automatically resizing a disk drive volume

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8141 Disposal/no request for examination