DE4039891A1 - Verfahren und vorrichtung zur cachespeichersteuerung - Google Patents

Verfahren und vorrichtung zur cachespeichersteuerung

Info

Publication number
DE4039891A1
DE4039891A1 DE4039891A DE4039891A DE4039891A1 DE 4039891 A1 DE4039891 A1 DE 4039891A1 DE 4039891 A DE4039891 A DE 4039891A DE 4039891 A DE4039891 A DE 4039891A DE 4039891 A1 DE4039891 A1 DE 4039891A1
Authority
DE
Germany
Prior art keywords
data
record
written
field
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE4039891A
Other languages
English (en)
Inventor
Akira Yamamoto
Shigeo Homma
Yoshihiro Asaka
Yoshiaki Kuwahara
Akira Kurano
Masafumi Nozawa
Hiroyuki Kitajima
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE4039891A1 publication Critical patent/DE4039891A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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

Description

Die vorliegende Erfindung betrifft ein Verfahren zur Cachespeichersteuerung, mit dem der Prozeß des Schreibens von Daten von einer Datenverarbeitungseinheit in eine Speichereinheit bei Verwendung eines Cachespeichers be­ schleunigt werden kann, und eine Vorrichtung zur Cache­ speichersteuerung, mit der das genannte Verfahren zur Cachespeichersteuerung ausgeführt werden kann.
Für Datenverarbeitungssysteme, die eine Datenverarbei­ tungseinheit, eine Steuereinheit für einen Cachespeicher und eine Speichereinheit, die jeweils miteinander verbun­ den sind, umfassen, ist beispielsweise in JP 55-1 57 053-A die Verwendung eines Verfahrens zum Steuern des Schreib­ prozesses von Daten von der Datenverarbeitungseinheit in die Speichereinheit vorgeschlagen worden.
Gemäß einem ersten Steuerverfahren, wie es im betreffen­ den Stand der Technik beschrieben ist, wird von der Da­ tenverarbeitungseinheit ein Schreibprozeß beendet, wenn Daten in einen Cachespeicher geschrieben worden sind. Die im Cachespeicher gespeicherten Daten werden später zu ei­ nem geeigneten Zeitpunkt in die Speichereinheit geschrie­ ben. Dieser Schreibprozeß wird Schreibverzögerungsprozeß genannt. Daten, die in den Cachespeicher und anschließend nicht sofort in die Speichereinheit geschrieben werden, werden Schreibverzögerungsdaten genannt. In der erwähnten Anmeldung JP 55-1 57 053-A wird jedoch die Technik, gemäß der die von der Datenverarbeitungseinheit empfangenen Da­ ten in die Speichereinheit geschrieben werden, nicht im einzelnen offenbart.
Gemäß einem zweiten Steuerverfahren wird der Schreibpro­ zeß von der Datenverarbeitungseinheit nur dann beendet, wenn Daten in die Speichereinheit geschrieben worden sind.
Gemäß einem dritten Steuerverfahren werden Schreibdaten, die von der Datenverarbeitungseinheit geliefert werden, in permanente Schreibdaten und in temporäre Schreibdaten klassifiziert. Der Schreibprozeß für die permanenten Schreibdaten wird von der Datenverarbeitungseinheit nur dann beendet, wenn die Daten in die Speichereinheit ge­ schrieben worden sind. Andererseits wird der Schreibpro­ zeß für die temporären Daten von der Datenverarbeitungs­ einheit dann beendet, wenn die Daten in den Cachespeicher geschrieben worden sind, wobei die temporären Daten nie­ mals in die Speichereinheit geschrieben werden.
Von den drei erwähnten Steuerverfahren verwendet das zweite Steuerverfahren keinen Cachespeicher, vielmehr greift es direkt auf die Speichereinheit zu. Obwohl das dritte erwähnte Steuerverfahren einen Cachespeicher ver­ wendet, ist der Nutzungsgrad dieses Cachespeichers stark begrenzt. Daher stellt im wesentlichen nur das erste er­ wähnte Steuerverfahren ein Cachespeicher-Steuerverfahren dar, mit dem der Schreibprozeß beschleunigt werden kann.
Es ist jedoch schwierig, dieses erste Cachespeicher-Steu­ erverfahren zum Schreiben von Daten von der Datenverar­ beitungseinheit in einen Datensatz in der Speichereinheit zu verwenden, wenn die Daten zu diesem Zeitpunkt nicht im Cachespeicher gespeichert sind.
Der Grund hierfür liegt darin, daß in dem Fall, in dem zum Zeitpunkt des Schreibens von Daten von der Datenver­ arbeitungseinheit in die Speichereinheit der entspre­ chende Datensatz nicht im Cachespeicher gespeichert ist, die Möglichkeit besteht, daß der Datensatz, dessen Daten­ satznummer von der Seite der Datenverarbeitungseinheit bestimmt wird, nicht in der Speichereinheit gespeichert wird. Wenn ferner die Speichereinheit das Duplikat eines Datensatzes, dessen Datensatznummer von der Seite der Da­ tenverarbeitungseinheit bestimmt wird, speichert, ist es nicht möglich zu entscheiden, in welchen Datensatz die Daten geschrieben werden sollen, wodurch ein korrekter Schreibverzögerungsprozeß verhindert wird.
Somit kann das obige Cachespeicher-Steuerverfahren kaum verwendet werden, falls ein zu schreibender Datensatz zum Zeitpunkt des Schreibens von Daten von der Datenverarbei­ tungseinheit nicht im Cachespeicher gespeichert ist. Da­ her ist hier die Beschleunigung des Schreibprozesses un­ möglich.
Aus JP 59-1 35 563-A ist eine Technik für eine mit einem Cachespeicher und einem nichtflüchtigen Speicher verse­ hene Plattenspeicher-Steuervorrichtung bekannt. In dieser Technik schreibt die Plattenspeicher-Steuervorrichtung die von einer Datenverarbeitungseinheit empfangenen Daten sowohl in den Cachespeicher als auch in den nichtflüchti­ gen Speicher. Wenn der Cachespeicher ausfällt, bevor die in ihm befindlichen Schreibverzögerungsdaten in die Plat­ tenspeichereinheit geschrieben worden sind, sind die Da­ ten im nichtflüchtigen Speicher gesichert. Damit kann ein hoch zuverlässiger Schreibverzögerungsprozeß verwirklicht werden. Es wird jedoch dabei dem Fall keine Beachtung ge­ schenkt, in dem ein Datensatz, für den die Datenverarbei­ tungseinheit die Schreibanforderung ausgibt, nicht im Ca­ chespeicher vorhanden ist.
Wie oben beschrieben, kann mit dem herkömmlichen Cache­ speicher-Steuerverfahren der Schreibprozeß beschleunigt werden, sofern ein den Daten von der Datenverarbeitungs­ einheit entsprechender Datensatz zum Zeitpunkt des Schreibens der Daten im Cachespeicher gespeichert ist, weil der Schreibprozeß beendet werden kann, wenn die Da­ ten im Cachespeicher gespeichert sind. Wenn jedoch ein den Daten entsprechender Datensatz im Cachespeicher zum Zeitpunkt des Schreibens der Daten nicht gespeichert ist, kann der Schreibprozeß kaum beschleunigt werden.
Es ist daher eine erste Aufgabe der vorliegenden Erfin­ dung, ein Cachespeicher-Steuerverfahren zu schaffen, mit dem der Schreibprozeß selbst dann beschleunigt werden kann, wenn ein zu schreibender Datensatz zum Zeitpunkt des Schreibens der Daten von einer Datenverarbeitungsein­ heit nicht im Cachespeicher gespeichert ist, indem der Schreibprozeß beendet wird, sobald die Daten in den Ca­ chespeicher gespeichert worden sind.
Es ist eine zweite Aufgabe der vorliegenden Erfindung, eine Vorrichtung zur Cachespeichersteuerung zu schaffen, mit der das Cachespeicher-Steuerverfahren der ersten Auf­ gabe ausgeführt werden kann.
Um die Geschwindigkeit des Schreibprozesses weiter zu er­ höhen, ist es notwendig, den Schreibprozeß von Schreib­ verzögerungsdaten in eine Speichereinheit effizient aus­ zuführen. Hierzu ist es notwendig, wie später beschrieben wird, die physikalische Position der Speichereinheit in bezug auf die Schreibverzögerungsdaten zu kennen.
Es ist daher eine dritte Aufgabe der vorliegenden Erfin­ dung, ein Cachespeicher-Steuerverfahren zu schaffen, das die physikalische Position der Schreibverzögerungsdaten in der Speichereinheit zu berechnen erlaubt, wenn die Da­ ten in den Cachespeicher gespeichert worden sind, selbst wenn ein zu schreibender Datensatz nicht im Cachespeicher gespeichert worden ist.
Es ist eine vierte Aufgabe der vorliegenden Erfindung, eine Cachespeicher-Steuerverfahren zu schaffen, mit der das Cachespeicher-Steuerverfahren gemäß der dritten Auf­ gabe geeignet ausgeführt werden kann.
Die erste Aufgabe wird erfindungsgemäß durch die drei folgenden Cachespeicher-Steuerverfahren gelöst:
In dem ersten erfindungsgemäßen Cachespeicher-Steuerver­ fahren, in dem ein Informationsverarbeitungssystem mit einer Datenverarbeitungseinheit, einer Steuereinheit für einen Cachespeicher und einer einen Datensatz speichern­ den Speichereinheit, die jeweils miteinander verbunden sind, verwendet wird, führt die Steuereinheit folgende Prozesse aus: (a) Empfang einer Schreibanforderung für einen zu schreibenden Datensatz von der Datenverarbei­ tungseinheit; (b) Empfang von in den Zieldatensatz zu schreibenden Daten von der Datenverarbeitungseinheit, falls der zu schreibende Datensatz nicht im Cachespeicher gespeichert ist; (c) Speichern der empfangenen Daten in den Cachespeicher; (d) Melden des Abschlusses des Daten­ schreibprozesses an die Datenverarbeitungseinheit; (e) Prüfen, ob der Zieldatensatz, in den die im Cachespeicher gespeicherten Daten geschrieben werden sollen, in der Speichereinheit gespeichert ist; (f) Schreiben der im Ca­ chespeicher gespeicherten Daten in den Zieldatensatz in der Speichereinheit, falls der Datensatz gespeichert wor­ den ist oder Unterlassen des Schreibens der im Cachespei­ cher gespeicherten Daten und Melden dieses Zustandes an die Datenverarbeitungseinheit, falls der Datensatz nicht in der Speichereinheit gespeichert ist.
In dem zweiten erfindungsgemäßen Cachespeicher-Steuerver­ fahren wird ein Informationsverarbeitungssystem mit einer Datenverarbeitungseinheit, einer Steuereinheit für einen Cachespeicher und einer einen Datensatz mit einem eine Datensatznummer enthaltenden Steuerfeld speichernden Speichereinheit, die jeweils miteinander verbunden sind, verwendet wird, führt die Steuereinheit folgende Prozesse aus: (a) Empfang einer Schreibanforderung von der Daten­ verarbeitungseinheit, wobei die Schreibanforderung eine Datensatzbestimmungsinformation zum Bestimmen eines zu schreibenden Datensatzes, eine Feldbestimmungsinformation zum Bestimmen eines zu schreibenden Feldes im Datensatz und eine Prozeßmodus-Bestimmungsinformation zum Bestimmen eines auszuführenden Prozeßmodus in dem Fall, in dem der Datensatz nicht im Cachespeicher gespeichert ist, ent­ hält; (b) Empfang von entsprechend dem durch die Pro­ zeßbestimmungsinformation bestimmten Prozeßmodus in das bestimmte Feld zu schreibenden Daten von der Datenverar­ beitungseinheit, falls der zu schreibende und durch die Datensatzbestimmungsinformation bestimmte Datensatz nicht im Cachespeicher gespeichert ist und falls das zu schrei­ bende und durch die Feldbestimmungsinformation bestimmte Feld das Steuerfeld nicht enthält; (c) Speichern der Da­ ten in den Cachespeicher; und (d) Melden des Abschlusses eines Schreibprozesses an die Datenverarbeitungseinheit.
In dem dritten erfindungsgemäßen Cachespeicher-Steuerver­ fahren, in dem ein Informationsverarbeitungssystem mit einer Datenverarbeitungseinheit, einer Steuereinheit für einen Cachespeicher und einer einen Datensatz mit einer Mehrzahl von physikalischen Bereichen zum Speichern eines ein Steuerfeld einschließlich einer Datensatznummer auf­ weisenden Datensatzes speichernden Speichereinheit, die jeweils miteinander verbunden sind, verwendet wird, hält die Steuereinheit für jeden physikalischen Bereich eine Strukturbedingungsinformation, die angibt, ob "in dem physikalischen Bereich ist kein Datensatz-Duplikat des Datensatzes vorhanden" erfüllt ist, und führt folgende Prozesse aus: (a) Empfang einer Schreibanforderung von der Datenverarbeitungseinheit, wobei die Schreibanforde­ rung eine Datensatzbestimmungsinformation zum Bestimmen eines zu schreibenden Datensatzes und eine Feldbestim­ mungsinformation zum Bestimmen eines in den Datensatz zu schreibenden Feldes enthält; (b) Empfang von Daten von der Datenverarbeitungseinheit, die in das bestimmte Feld entsprechend dem durch die Prozeßmodus-Bestimmungsinfor­ mation bestimmten Prozeßmodus geschrieben werden soll, falls der zu schreibende und durch die Datensatzbestim­ mungsinformation bestimmte Datensatz nicht im Cachespei­ cher gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsinformation bestimmte Feld das Steuer­ feld nicht enthält und falls die Strukturbedingung er­ füllt wird; (c) Speichern der Daten in den Cachespeicher; und (d) Melden des Abschlusses eines Schreibprozesses an die Datenverarbeitungseinheit.
Die dritte Aufgabe wird erfindungsgemäß gelöst durch die folgenden vierten und fünften Cachespeicher-Steuerverfah­ ren:
In dem vierten Cachespeicher-Steuersystem, das in einer Informationsverarbeitungseinheit mit einer Datenverarbei­ tungseinheit, einer Steuereinheit für einen Cachespeicher und einer einen Datensatz mit einer Mehrzahl von physika­ lischen Bereichen zum Speichern eines ein Steuerfeld ein­ schließlich einer Datensatznummer speichernden Steuerein­ heit, die jeweils miteinander verbunden sind, verwendet wird, führt die Steuereinheit die folgenden Prozesse aus: (a) Empfang einer Schreibanforderung von der Datenverar­ beitungseinheit, wobei die Schreibanforderung eine Daten­ satzbestimmungsinformation für die Bestimmung eines zu schreibenden Datensatzes, eine Feldbestimmungsinformation für die Bestimmung eines im Datensatz zu schreibenden Feldes und eine Strukturbedingungsinformation enthält, wobei die Strukturbedingungsinformation angibt, ob die folgende Bedingung erfüllt ist: "Die Datensatznummer des Datensatzes am Beginn des physikalischen Bereichs zum Speichern von Datensätzen ist "Null" und die Nummern der folgenden Datensätze sind in aufsteigender Ordnung, je­ weils um "Eins" erhöht, gegeben, wobei jeder Datensatz ein vom Steuerfeld verschiedenes Feld besitzt, wobei die Längen der vom Steuerfeld verschiedenen Felder eines je­ den Datensatzes mit der Datensatznummer "Eins" oder grö­ ßer gleich sind und wobei das vom Steuerfeld verschiedene Feld des Datensatzes mit der Datensatznummer "Null" eine vorgegebene Länge besitzt"; (b) Empfang von in ein be­ stimmtes Feld zu schreibenden Daten von der Datenverar­ beitungseinheit, falls der zu schreibende und von der Da­ tensatzbestimmungsinformation bestimmte Datensatz nicht im Cachespeicher gespeichert ist, falls das zu schrei­ bende und durch die Feldbestimmungsinformation bestimmte Feld das Steuerfeld nicht enthält und falls die Struktur­ bedingung erfüllt ist; (c) Speichern der Daten im Cache­ speicher; und (d) Meldung des Abschlusses eines Schreib­ prozesses an die Datenverarbeitungseinheit.
In dem fünften erfindungsgemäßen Cachespeicher-Steuerver­ fahren, das in einem Informationsverarbeitungssystem mit einer Datenverarbeitungseinheit, einer Steuereinheit für einen Cachespeicher und einer einen Datensatz mit einer Mehrzahl von physikalischen Bereichen zum Speichern eines ein Steuerfeld einschließlich einer Datensatznummer be­ sitzenden Datensatzes speichernden Speichereinheit, die jeweils miteinander verbunden sind, verwendet wird, hält die Steuereinheit in jedem physikalischen Bereich eine Strukturbedingungsinformation, die angibt, ob folgende Bedingung erfüllt ist: "die Datensatznummer des Daten­ satzes am Beginn des physikalischen Bereichs zum Spei­ chern von Datensätzen ist "Null" und die Nummern der fol­ genden Datensätze sind in aufsteigender Ordnung, jeweils um "Eins" erhöht, gegeben, wobei jeder Datensatz ein vom Steuerfeld verschiedenes Feld besitzt, wobei die Längen der vom Steuerfeld verschiedenen Felder eines jeden Da­ tensatzes mit der Datensatznummer "Eins" oder größer gleich sind und wobei das vom Steuerfeld verschiedene Feld des Datensatzes mit der Datensatznummer "Null" eine vorgegebene Länge besitzt"; ferner führt die Steuerein­ heit folgende Prozesse aus: (a) Empfang einer Schreiban­ forderung von der Datenverarbeitungseinheit, wobei die Schreibanforderung eine Datensatzbestimmungsinformation zum Bestimmen eines zu schreibenden Datensatzes und eine Feldbestimmungsinformation zum Bestimmen eines im Daten­ satz zu schreibenden Feldes enthält; (b) Empfang von im bestimmten Feld zu schreibenden Daten von der Datenverar­ beitungseinheit, falls der zu schreibende und durch die Datensatzbestimmungsinformation bestimmte Datensatz nicht im Cachespeicher gespeichert ist, falls das zu schrei­ bende und durch die Feldbestimmungsinformation bestimmte Feld nicht das Steuerfeld enthält und falls die Struktur­ bedingung erfüllt ist; (c) Speichern der Daten im Cache­ speicher; und (d) Melden des Abschlusses eines Schreib­ prozesses an die Datenverarbeitungseinheit.
Die zweite und die vierte Aufgabe werden erfindungsgemäß durch eine Cachespeicher-Steuervorrichtung gelöst, die mit Mitteln zum Ausführen des ersten bis fünften Cache­ speicher-Steuerverfahrens ausgerüstet ist.
In dem ersten erfindungsgemäßen Cachespeicher-Steuerver­ fahren werden auf dieser Stufe Daten im Cachespeicher ge­ speichert und der Abschluß des Schreibprozesses an die Datenverarbeitungseinheit gemeldet, selbst wenn zu schreibende und von der Datenverarbeitungseinheit gelie­ ferte Daten nicht im Cachespeicher gespeichert sind. Schreibverzögerungsdaten im Cachespeicher werden mittels eines Schreibverzögerungsprozesses in die Speichereinheit geschrieben. Wenn der zu schreibende Datensatz in der Speichereinheit nicht vorhanden ist, wird ein derartiges Ergebnis gemeldet. Auf diese Weise kann der Schreibprozeß unabhängig davon, ob die Daten von der Datenverarbei­ tungseinheit im Cachespeicher gespeichert sind, beschleu­ nigt werden.
In den erfindungsgemäßen zweiten und vierten Cachespei­ cher-Steuerverfahren werden aufgrund des Empfangs einer Schreibanforderung von der Datenverarbeitungseinheit zu schreibende und von der Datenverarbeitungseinheit gelie­ ferte Daten von der Steuereinheit selbst dann im Cache­ speicher gespeichert, wenn die Daten nicht im Cachespei­ cher gespeichert sind, ferner meldet die Steuereinheit auf dieser Stufe den Abschluß des Schreibprozesses an die Datenverarbeitungseinheit.
In den erfindungsgemäßen dritten und fünften Cachespei­ cher-Steuerverfahren prüft die Steuereinheit, ob in der Speichereinheit die Datensatznummer möglicherweise dop­ pelt vorliegt, speichert die Daten im Cachespeicher und meldet auf dieser Stufe den Abschluß des Schreibprozesses an die Datenverarbeitungseinheit, falls zu schreibende und von der Datenverarbeitungseinheit gelieferte Daten nicht im Cachespeicher gespeichert sind. Dadurch kann das Auftreten eines Fehlers während des Schreibverzögerungs­ prozesses vermieden werden, ferner kann der Schreibprozeß beschleunigt werden. Für die Prüfung einer gedoppelten Datensatznummer hält die Datenverarbeitungseinheit eine lnformation, die angibt, ob in der Speichereinheit eine Datensatznummer doppelt vorhanden ist.
In den erfindungsgemäßen vierten und fünften Cachespei­ cher-Steuerverfahren kann die physikalische Position der Speichereinheit in bezug auf die Schreibverzögerungsdaten entsprechend der Strukturinformation wie etwa der auf­ steigenden Ordnung der Datensatznummern berechnet werden, wodurch die Effizienz des Schreibverzögerungsprozesses weiter verbessert wird.
Die erfindungsgemäße Cachespeicher-Steuervorrichtung, mit denen die ersten bis fünften erfindungsgemäßen Cachespei­ cher-Steuerverfahren ausgeführt werden, arbeiten gemäß den oben beschriebenen Funktionsabläufen.
Weitere Aufgaben, Merkmale und Vorteile der Erfindung sind in den Unteransprüchen angegeben.
Die Erfindung wird im folgenden anhand bevorzugter Aus­ führungsformen mit Bezug auf die Zeichnung näher erläu­ tert; es zeigen:
Fig. 1 ein Blockschaltbild der Steuereinheit gemäß der ersten Ausführungsform der Erfindung;
Fig. 2 ein Blockschaltbild des erfindungsgemäßen In­ formationsverarbeitungssystems;
Fig. 3 den Aufbau der Plattenspeichereinheit 24;
Fig. 4 ein Beispiel der Struktur des Datensatzes 301;
Fig. 5 ein Beispiel einer weiteren Struktur des Da­ tensatzes 301;
Fig. 6 ein Beispiel der Struktur des Cachespeichers 26 gemäß der ersten Ausführungsform der Er­ findung;
Fig. 7 ein Beispiel der Struktur des Segments gemäß der ersten Ausführungsform der Erfindung;
Fig. 8 ein Beispiel der Struktur des Verzeichnisses 28 gemäß der ersten Ausführungsform der Er­ findung;
Fig. 9 ein Beispiel der Struktur der Segmentverwal­ tungsinformation 500 gemäß der ersten Ausfüh­ rungsform der Erfindung;
Fig. 10 ein Beispiel der Struktur einer Spurtabelle 501 gemäß der ersten Ausführungsform der Er­ findung;
Fig. 11 eine Erläuterung des Leersegmentwarteschlan­ gen-Kopfzeigers 502 gemäß der ersten Ausfüh­ rungsform der Erfindung;
Fig. 12 ein Beispiel der Struktur des Schreibverzöge­ rungsspeichers 27 gemäß der ersten Ausfüh­ rungsform der Erfindung;
Fig. 13 ein Beispiel der Struktur der Schreibverzöge­ rungsinformation 1100 gemäß der ersten Aus­ führungsform der Erfindung;
Fig. 14 ein Beispiel der Struktur des Direktors 25 der ersten Ausführungsform der Erfindung;
Fig. 15 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Cachespeicher-Partialschreib­ teil 10 gemäß der ersten Ausführungsform der Erfindung ausgeführt werden;
Fig. 16 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungs-Bereits­ stellungsteil 11 ausgeführt werden;
Fig. 17 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungs-Übertra­ gungsteil 12 gemäß der ersten Ausführungsform der vorliegenden Erfindung ausgeführt werden;
Fig. 18 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsfehler-Ent­ scheidungsteil 13 ausgeführt werden;
Fig. 19 ein Blockschaltbild der grundlegenden Struk­ tur der Steuereinheit gemäß einer zweiten Ausführungsform der Erfindung;
Fig. 20 ein Beispiel der Struktur des Schreibverzöge­ rungsspeichers 27 gemäß der zweiten Ausfüh­ rungsform der Erfindung;
Fig. 21 ein Beispiel der Struktur der Schreibverzöge­ rungs-Spurinformation ª 1700 gemäß der zwei­ ten Ausführungsform der Erfindung;
Fig. 22 ein Zustandsübergangdiagramm des Spurzustan­ des ª 1800 gemäß der zweiten Ausführungsform der Erfindung;
Fig. 23 ein Beispiel der Struktur des Direktors 25 gemäß der zweiten Ausführungsform der Erfin­ dung;
Fig. 24A ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsinforma­ tion-Verwaltungsteil ª 14 gemäß der zweiten Ausführungsform der Erfindung ausgeführt wer­ den;
Fig. 24B ein weiteres Flußdiagramm zur Erläuterung der Prozesse, die vom Schreibverzögerungsspurin­ formation-Verwaltungsteil ª 14 gemäß der zweiten Ausführungsform der Erfindung ausge­ führt werden;
Fig. 25 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsinforma­ tion-Spurverwaltungsteil b 15 gemäß der zwei­ ten Ausführungsform der Erfindung ausgeführt werden;
Fig. 26 ein Blockschaltbild der grundlegenden Struk­ tur der Steuereinheit 23 gemäß einer dritten Ausführungsform der Erfindung;
Fig. 27 ein Beispiel der Struktur der Segmentverwal­ tungsinformation 500 gemäß der dritten Aus­ führungsform der Erfindung;
Fig. 28 ein Beispiel der Struktur der Schreibverzöge­ rungsinformation 1100 gemäß der dritten Aus­ führungsform der Erfindung,;
Fig. 29 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Cachespeicher-Partialschreib­ teil 10 gemäß der dritten Ausführungsform der Erfindung ausgeführt werden;
Fig. 30 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungs-Bereit­ stellungsteil 11 gemäß der dritten Ausfüh­ rungsform der Erfindung ausgeführt werden;,
Fig. 31 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungs-Übertra­ gungsteil 12 gemäß der dritten Ausführungs­ form der Erfindung ausgeführt werden;
Fig. 32 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsfehler-Ent­ scheidungsteil 13 gemäß der dritten Ausfüh­ rungsform der Erfindung ausgeführt werden;
Fig. 33 begriffliche Erläuterungen für das Verfahren des effizienten Schreibens des Schreibverzö­ gerungsdatensatzes 160;
Fig. 34 weitere begriffliche Erläuterungen für das Verfahren des effizienten Schreibens des Schreibverzögerungsdatensatzes 160;
Fig. 35 ein Blockschaltbild der grundlegenden Struk­ tur der Steuereinheit 23 gemäß einer vierten Ausführungsform der Erfindung;
Fig. 36 ein Beispiel der Struktur des Schreibverzöge­ rungsspeichers 27 gemäß der vierten Ausfüh­ rungsform der Erfindung;
Fig. 37 ein Beispiel der Struktur der Schreibverzöge­ rungsspurinformation b 2800 gemäß der vierten Ausführungsform der Erfindung;
Fig. 38 ein Zustandsübergangdiagramm des Spurzustan­ des b 2900 gemäß der vierten Ausführungsform der Erfindung;
Fig. 39 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Cachespeicher-Partialschreib­ teil 10 gemäß der vierten Ausführungsform der Erfindung ausgeführt werden;
Fig. 40A ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsspurinfor­ mation-Verwaltungsteil ª 14 ausgeführt wer­ den;
Fig. 40B ein weiteres Flußdiagramm zur Erläuterung der Prozesse, die vom Schreibverzögerungsspurin­ formation-Verwaltungsteil ª 14 ausgeführt werden;
Fig. 41 ein Flußdiagramm zur Erläuterung der Pro­ zesse, die vom Schreibverzögerungsspurinfor­ mation-Verwaltungsteil b 15 gemäß der vierten Ausführungsform der Erfindung ausgeführt wer­ den;
Fig. 42 ein Beispiel für die Beziehung zwischen den Datensätzen 301 auf der Spur 300 an aufeinan­ derfolgenden Positionen und den im Segment 400 an aufeinanderfolgenden Positionen ge­ speicherten Datensätzen;
Fig. 43A ein Beispiel eines Segments 400, das der Er­ läuterung der aufeinanderfolgenden Speicher­ zustände dient;
Fig. 43B ein weiteres Beispiel eines Segments 400, das der Erläuterung der aufeinanderfolgenden Speicherzustände dient;
Fig. 43C ein weiteres Beispiel eines Segments 400, das der Erläuterung der aufeinanderfolgenden Speicherzustände dient;
Fig. 44 ein Beispiel der Struktur der Segmentverwal­ tungsinformation 500 gemäß einer fünften Aus­ führungsform der Erfindung; und
Fig. 45 eine erläuternde Übersicht über die vorlie­ gende Erfindung.
Im folgenden werden fünf Ausführungsformen der Erfindung beschrieben. Zunächst werden die gemeinsamen Elemente dieser fünf Ausführungsformen mit Bezug auf die Fig. 2 bis 5 beschrieben.
Fig. 2 ist ein Blockschaltbild, das ein Informationsver­ arbeitungssystem zeigt, in dem die vorliegende Erfindung zur Anwendung kommt.
Das Informationsverarbeitungssystem umfaßt eine Datenver­ arbeitungseinheit 200, eine Steuereinheit 23 und eine oder mehrere Plattenspeichereinheiten 24, wobei sämtliche genannten Einheiten funktional miteinander verbunden sind; Die Datenverarbeitungseinheit 200 umfaßt eine CPU 20, einen Hauptspeicher 21 und Kanäle 22. Die Steuerein­ heit 23 umfaßt einen oder mehrere Direktoren 25, einen Cachespeicher 26, einen Schreibverzögerungsspeicher 27 und ein Verzeichnis 28. Der Direktor 25 führt eine Daten­ übertragung zwischen dem Kanal 22 und der Plattenspei­ chereinheit 24, zwischen dem Kanal 22 und dem Cachespei­ cher 26 und zwischen dem Cachespeicher 26 und der Plat­ tenspeichereinheit 24 aus. Der Cachespeicher 26 wird mit denjenigen Daten von der Plattenspeichereinheit 24 gela­ den, auf die häufig zugegriffen wird. Dieser Ladeprozeß wird durch den Direktor 25 ausgeführt. Besondere Bei­ spiele für solche Daten sind gegeben durch Daten, auf die in der Vergangenheit durch die CPU 20 zugegriffen wurde, und durch Daten, die in der Plattenspeichereinheit 24 in Bereichen in der Nähe solcher Daten gespeichert wurden, auf die durch die CPU 20 zugegriffen wurde, und durch weitere Daten. Das Verzeichnis 28 speichert Verwaltungs­ information für den Cachespeicher 26.
Die Plattenspeichereinheit 24 besitzt eine Struktur, wie sie in Fig. 3 gezeigt ist. Jede Plattenspeichereinheit 24 weist eine Mehrzahl von Plattenspeichern 308 auf, wobei jede Platte ein Datenspeichermedium darstellt. Für jede Platte 308 ist ein Schreib/Lese-Kopf 309 zum Schreiben oder Lesen von Daten auf die Platte bzw. von der Platte 308 vorgesehen.
Ein kreisförmiger Bereich, auf den während der einmaligen Drehung der Platte 308 durch den Schreib/Lese-Kopf 309 zugegriffen werden kann, wird Spur 300 genannt. Auf der Platte 308 sind eine Mehrzahl von Spuren 300 ausgebildet. Wenn Daten von der Spur 300 gelesen oder auf die Spur 300 geschrieben werden, wird der Schreib/Lese-Kopf 309 an die Position bewegt, an der die Daten gelesen bzw. geschrie­ ben werden können. Diese Operation wird im folgenden Po­ sitionierungsvorgang genannt. Eine Anforderung für eine solche Operation wird Positionierungsanforderung genannt. Eine Direktorschnittstelle 311 stellt eine Schnittstelle zwischen der Plattenspeichereinheit 24 und dem Direktor 25 dar und steuert den Schreib/Lese-Kopf 309 gemäß einem Befehl vom Direktor 25.
Die Sektoren 302 sind Bereiche, die auf der Platte 308 in auf eine Referenzposition 303 auf der Platte 308 bezoge­ nen vorgegebenen Winkelintervallen ausgebildet sind. Diese Referenzposition 303 wird Ausgangsindex 303 ge­ nannt. Derjenige Sektor 302, der beim Ausgangsindex 303 beginnt, wird Basissektor 304 (Sektor 0) genannt. Die Nummer eines jeden Sektors 302 wird ausgehend vom Basis­ sektor 304 in der der Drehung der Platte 308 entgegenge­ setzten Richtung jeweils um Eins erhöht.
Der Schreib/Lese-Kopf 309 identifiziert denjenigen Sektor 302, der unter ihm positioniert ist.
Unmittelbar nach dem Ausgangsindex 303 ist ein Bereich ausgebildet, in dem Steuerinformation für die Spur 300 gespeichert ist; Dieser Bereich wird Ausgangsadresse 306 genannt.
Jede Spur 300 umfaßt einen oder mehrere Datensätze 301. Der Datensatz 301 stellt eine Dateneinheit dar, die vom Direktor 25 von der Plattenspeichereinheit 24 gelesen oder auf die Plattenspeichereinheit 24 geschrieben wird.
Zwischen benachbarten Datensätzen 301 ist ein Zwischen­ raum 305 ausgebildet. Dieser Zwischenraum 305 zwischen Datensätzen 301 wird Zwischenraum ª 305 genannt, um ihn vom später beschriebenen Zwischenraum b 605 (s. Fig. 4 und 5) zu unterscheiden.
Jeder Datensatz 301 kann eine verschiedene Länge besit­ zen. Die Länge eines jeden Zwischenraums ª ist gleich.
Im allgemeinen speichert der Datensatz 301 unmittelbar nach der Ausgangsadresse 306 keine allgemeinen Daten, sondern Steuerdaten, die auf der Seite der CPU 20 verwen­ det werden; Daher wird dieser Datensatz Steuerdatensatz 310 genannt.
In den Fig. 4 und 5 sind Beispiele der Struktur des Da­ tensatzes 301 gezeigt. In dem in Fig. 4 gezeigten Bei­ spiel ist der Datensatz 301 aus drei Feldern 606, die ein Steuerfeld 600, ein Schlüsselfeld 607 und ein Datenfeld 601 enthalten, aufgebaut. In dem in Fig. 5 gezeigten Bei­ spiel ist der Datensatz 301 aus zwei Feldern 606, die ein Steuerfeld 600 und ein Datenfeld 601 enthalten, aufge­ baut.
Zwischen dem Steuerfeld 600 und dem Schlüsselfeld 607 und zwischen dem Schlüsselfeld 607 und dem Datenfeld 608 ist jeweils ein Zwischenraum 605 ausgebildet. Dieser Zwi­ schenraum 605 wird Zwischenraum b 605 genannt. Die Länge eines jeden Zwischenraums b 605 ist gleich.
Das Steuerfeld 600 nimmt Steuerinformation, die eine Da­ tensatznummer 602, eine Schlüsselfeldlänge 608, eine Da­ tenfeldlänge 603 und dergleichen enthält, auf. Die Daten­ satznummer 602 stellt für die Datensätze 301 ein Unter­ scheidungsmerkmal dar; Die Schlüsselfeldlänge 608 und die Datenfeldlänge 603 stellen die Länge des Schlüsselfeldes 607 bzw. des Datenfeldes 601 dar. Wenn der Datensatz 301 kein Schlüsselfeld 607 besitzt, wie dies in Fig. 5 ge­ zeigt ist, wird die Schlüsselfeldlänge 608 auf "Null" ge­ setzt. Die Länge des Steuerfeldes 600 ist im allgemeinen fest.
Däs Datenfeld 601 nimmt Information auf, die von einem in der CPU 20 ablaufenden Programm verarbeitet wird; Das Schlüsselfeld 607 nimmt Schlüsselinformation auf, die das Zugriffsrecht auf die Inhalte des Datenfeldes 601 prüft.
Ein Schreibprozeß umfaßt im allgemeinen einen For­ matschreibprozeß und einen Partialschreibprozeß; Der erstgenannte Prozeß dient der Umgestaltung sämtlicher Felder 606 einschließlich dem Steuerfeld 600, während der letztgenannte Prozeß der Umgestaltung der Felder mit Aus­ nahme des Steuerfeldes 600 dient; Die Ausführungsfrequenz des Formatschreibprozesses ist nicht so hoch und muß nicht beschleunigt werden, weil er nur dann ausgeführt werden muß, wenn eine gesamte Datei zum ersten Mal er­ stellt wird. Die Ausführungsfrequenz des Partialschreib­ prozesses ist hoch und sollte beschleunigt werden. Daher betrifft die vorliegende Erfindung hauptsächlich einen Partialschreibprozeß.
Die Datenfeldlänge 603 und die Schlüsselfeldlänge 608 liegen im Steuerfeld 600 vor. Daher ändern sich die In­ halte des Datenfeldes 600 und des Schlüsselfeldes 607 von einem Partialschreibprozeß zum nächsten, während die Länge des Steuerfeldes 600 unverändert bleibt.
Nun wird eine Übersicht über die Verarbeitung der vorlie­ genden Erfindung gegeben.
ln Fig. 45 ist eine Übersicht über die Funktion einer je­ den Verarbeitungseinheit, d. h. eine Übersicht über die vorliegende Erfindung gezeigt. Zunächst empfängt ein Ca­ chespeicher-Partialschreibteil 10 über den Kanal 21 von der CPU 20 eine Partialschreibanforderung. Selbst wenn in diesem Fall ein zu schreibender Datensatz im Cachespei­ cher 26 nicht vorliegt (selbst wenn ein Datensatz 301 mit einer von der CPU 20 bestimmten Datensatznummer 602 nicht im Cachespeicher 26 vorhanden ist), führt der Cachespei­ cher-Partialschreibteil 10 den folgenden Cache-Schreib­ prozeß aus: Daten, die in den von der CPU 20 bestimmten Datensatz 301 geschrieben werden sollen, werden im Cache­ speicher 26 als Schreibverzögerungsdaten 29 gespeichert. Nach Abschluß der Datenspeicherung wird an die Seite der CPU 20 der Abschluß der Partialschreibanforderung gemel­ det.
Dann bestimmt ein Schreibverzögerungs-Bereitstellungsteil 11 diejenige Spur 300 der Plattenspeichereinheit 24, für die der Schreibverzögerungsprozeß ausgeführt werden soll, und gibt an die Plattenspeichereinheit 24 eine Positio­ nierungsanforderung aus.
Nach Abschluß des Positionierungsprozesses findet ein Schreibverzögerungs-Übertragungsteil 12 eine Platte 301 auf, in der die im Cachespeicher 26 gespeicherten Schreibverzögerungsdaten 29 gespeichert werden sollen (d. h., daß der Teil 12 den Datensatz 301 mit der durch die CPU 20 bestimmten Datensatznummer 602 auffindet). Wenn der Datensatz aufgefunden ist, wird der Schreibver­ zögerungsprozeß zum Schreiben von Schreibverzögerungsda­ ten 29 in den Datensatz 301 ausgeführt. Andernfalls wird der Schreibverzögerungsprozeß nicht ausgeführt, statt dessen wird in der Schreibverzögerungsinformation 1100 eine Information über eine Datensatznummerinkonsistenz gesetzt, um das Auftreten eines Fehlers festzuhalten.
Schließlich nimmt ein Schreibverzögerungsfehler-Entschei­ dungsteil 13 auf die Information über eine Datensatznum­ merinkonsistenz 1203 Bezug, um an die CPU 20 zu melden, daß der mit den Schreibverzögerungsdaten 29 zu beschrei­ bende Datensatz 301 in der Plattenspeichereinheit 24 nicht aufgefunden worden ist. In den folgenden Ausfüh­ rungsformen sendet der Schreibverzögerungsfehler-Ent­ scheidungsteil 13 eine solche Fehlermeldung an die CPU 20, wenn jener von der CPU 20 eine Schreib/Lese-Anforde­ rung empfängt. Jedoch sind die Zeitpunkte des Ausgebens einer solchen Fehlermeldung nicht darauf beschränkt, vielmehr können auch andere Zeitpunkte hierfür benutzt werden. Beispielsweise kann an die CPU 20 eine Fehlermel­ dung ausgegeben werden, unmittelbar nachdem der Schreib­ verzögerungs-Übertragungsteil 12 die Information 1203 über eine Datensatznummerinkonsistenz in der Schreibver­ zögerungsinformation 1100 gesetzt hat.
Nun wird zunächst mit Bezug auf die Fig. 1 und 6 bis 18 die erste Ausführungform der vorliegenden Erfindung be­ schrieben. Wenn ein zu schreibender Datensatz 301 im Ca­ chespeicher 26 nicht vorliegt und nur wenn der Direktor 25 einen besonderen, durch die CPU 20 bestimmten Prozeß­ modus empfängt, beendet in der ersten Ausführungform der Direktor 25 den Schreibprozeß, wenn die Daten in dem Ca­ chespeicher 26 geschrieben worden sind.
In Fig. 1 ist ein Blockschaltbild gezeigt, mit dem das Informationsverarbeitungssystem der ersten Ausführungs­ form im einzelnen erläutert wird. Ein Direktor 25 emp­ fängt während der Ausführung des Partialschreibprozesses über den Kanal 22 die folgende Bestimmungsinformation ª 100 von der CPU 20: Bestimmungsinformation 1 für die Be­ stimmung der Plattenspeichereinheit 24 und der Spur 300, in der der zu schreibende Datensatz 301 gespeichert wird; Bestimmungsinformation 2 für die Bestimmung des Sektors 302 der Spur 300, von dem aus der zu schreibende Daten­ satz 301 gesucht wird; Bestimmungsinformation 3 für die Bestimmung der Datensatznummer 602 des zu schreibenden Datensatzes 301; Bestimmungsinformation 4 für die Bestim­ mung des zu schreibenden Feldes 606; und Bestimmungsin­ formation 5 für die Bestimmung eines Prozeßmodus, wenn der zu schreibende Datensatz 301 nicht im Cachespeicher 26 gespeichert ist.
Wenn daher die CPU 20 erkennt, daß in der durch die Be­ stimmungsinformation 1 bestimmten Spur 300 keine gedop­ pelte Datensatznummer 602 vorhanden ist, wird dieser Pro­ zeßmodus für die Beendigung des Schreibprozesses be­ stimmt, wenn die Daten in den Cachespeicher 26 geschrie­ ben worden sind.
Somit besteht die Ausführungbedingung ª 110 der Cache- Schreiboperation 100 gemäß der vorliegenden Erfindung darin, daß der zu schreibende Datensatz 301 nicht im Ca­ chespeicher 26 gespeichert ist, daß das zu schreibende Feld das Steuerfeld 600 nicht enthält und daß der von der Bestimmungsinformation 5 bestimmte Prozeßmodus empfangen worden ist.
Während der Cache-Schreiboperation 120 empfängt der Di­ rektor 25 vom Kanal 22 Daten (Schritt 121) und schreibt die empfangenen Daten in den Cachespeicher 26 (Schritt 122). Schließlich wird über den Kanal 22 an die CPU 20 eine Meldung über den Abschluß des Schreibprozesses ge­ liefert (Schritt 123).
Daten, die im Cachespeicher 26 gespeichert sind und nicht in die Plattenspeichereinheit 24 geschrieben werden, wer­ den Schreibverzögerungsdaten 29 genannt.
Der Direktor 25 verwaltet den Datensatz 301, der die Schreibverzögerungsdaten 29 speichert, als Schreibverzö­ gerungsdatensatz 160. Er schreibt die Schreibverzöge­ rungsdaten 29 unter Verwendung einer Leerzeit in die Plattenspeichereinheit 24. Diese Operation wird Schreib­ verzögerungsoperation genannt. In einer Schreibverzöge­ rungsoperation ª 130 findet der Direktor 25 den Datensatz 301 in der Plattenspeichereinheit 24, in den die Schreib­ verzögerungsdaten 29 geschrieben werden, auf. Insbeson­ dere findet der Direktor 25 den Datensatz 301 mit der Da­ tensatznummer 602, die durch die Bestimmungsinformation 3 bestimmt wird, innerhalb der Spur 300 der Plattenspei­ chereinheit 24, die durch die Bestimmungsinformationen 1 und 2 bestimmt werden.
Wenn der Zieldatensatz 301 gefunden worden ist, führt der Direktor 25 eine Schreibverzögerungsoperation b 140 aus, um Schreibverzögerungsdaten 29 in den Datensatz 301 zu schreiben.
Wenn der Zieldatensatz 301 nicht aufgefunden worden ist, führt der Direktor 25 eine Schreibverzögerungsoperation c 150 aus, in der keine Schreibverzögerungsdaten 29 ge­ schrieben werden, und meldet einen solchen Zustand an die CPU 20, wie später beschrieben wird.
In Fig. 6 ist die Struktur des Cachespeichers 26 gemäß dieser Ausführungsform gezeigt. Der Cachespeicher 26 ist aus einer Anzahl von Segmenten 400 aufgebaut. Jedes Seg­ ment 400 kann sämtliche Datensätze 301 einer Spur 300 speichern. Für die Bestimmung des Segmentes 400, das der jeweiligen Spur 300 zugeordnet ist, kann ein herkömmli­ ches Verfahren verwendet werden. Es kann ein leeres Seg­ ment 400 vorliegen, das keiner der Spuren 300 zugeordnet ist.
In Fig. 7 ist das Speicherformat der Schreibverzögerungs­ daten 160 in den Segmenten 400 gezeigt. Da die Daten im Steuerfeld 600 beim Partialschreibprozeß nicht geändert werden, empfängt der Direktor 25 das Steuerfeld 600 vom Kanal 22 nicht. Wenn daher der zu schreibende Datensatz 301 nicht im Cachespeicher 26 gespeichert ist und die ge­ lieferten Daten geschrieben worden sind, bildet der Di­ rektor 25 im Cachespeicher 26 ein Blindsteuerfeld 1000 aus.
Die bestimmte Datensatznummer 602 vom Kanal 22 wird im Blindsteuerfeld 1000 gespeichert. Außerdem wird im Blind­ steuerfeld 1000 die Länge der in das bestimmte Feld 606 zu schreibenden und vom Kanal 22 gelieferten Daten ge­ speichert. Wenn die Inhalte des Schlüsselfeldes 607 und des Datenfeldes 601 geändert werden sollen, werden die Längen der Daten der entsprechenden Felder als Schlüssel­ feldlänge 608 bzw. als Datenfeldlänge 603 gesetzt. Wenn nur die Inhalte des Datenfeldes 601 geändert werden sol­ len, wird für die Länge des Schlüsselfeldes 608 der Wert "Null" gesetzt. In der folgenden Beschreibung werden die Schlüsselfeldlänge 608 und die Datenfeldlänge 603 zusam­ men als Feldlänge 609 bezeichnet.
Zum Schreiben des Schreibverzögerungsdatensatzes 160 in den Datensatz der Plattenspeichereinheit 24 bestimmt der Direktor 25, ob der Schreibverzögerungsprozeß ausgeführt werden soll, indem die Datensatznummer 602 und die Feld­ länge 609 im Steuerfeld 600 des Datensatzes 301 in der Plattenspeichereinheit 24 mit der entsprechenden Daten­ satznummer 602 und der Feldlänge 609 im Blindsteuerfeld 1000 verglichen werden.
Wenn der zu schreibende Datensatz 301 im Cachespeicher 26 gespeichert ist, ist das Steuerfeld 600 bereits im Seg­ ment 400 gespeichert worden, so daß das Blindsteuerfeld 1000 nicht gebildet wird. Nach dem Blindsteuerfeld 1000 oder dem Steuerfeld 600 werden ein Schlüsselfeldzeiger 1001, ein Datenfeldzeiger 1002 und ein Blindsteuerfeld- Flag 1003 gespeichert.
Der Schlüsselfeldzeiger 1001 und der Datenfeldzeiger 1002 sind Zeiger für das im Cachespeicher 26 gespeicherte Schlüsselfeld 607 bzw. Datenfeld 601. Der Grund für die Schaffung dieser Zeiger besteht darin, daß ein Fall auf­ treten kann, in dem die Bereiche zum Speichern eines Schreibverzögerungsdatensatzes 160 nicht aufeinanderfol­ gend angeordnet sind. Ein Beispiel für einen solchen Fall wird im folgenden beschrieben: Wenn der Direktor 25 die Partialschreibanforderung für nur ein Datenfeld 601 des Datensatzes 301, der nicht im Cachespeicher 26 gespei­ chert ist, empfängt, kann ein Bereich zum Speichern des Schlüsselfeldes 607 nicht erstellt werden, weil die Länge des Schlüsselfeldes 607 unbekannt ist. Daher wird die Schlüsselfeldlänge 608 auf den Wert "Null" gesetzt. Da­ nach wird angenommen, daß die Partialschreibanforderung zum Ändern der Inhalte sowohl des Schlüsselfeldes 607 als auch des Datenfeldes 601 empfangen wird. In diesem Fall ist die Länge des Schlüsselfeldes 607 bekannt, so daß der Bereich für das Schlüsselfeld 607 auf dieser Stufe er­ stellt werden kann. Folglich wird, wie in Fig. 7 gezeigt, der Bereich für das Schlüsselfeld 607 an einer Position erstellt, die vom das Blindsteuerfeld 1000 enthaltenden Schreibverzögerungsdatensatz 160 entfernt ist, so daß die Bereiche zum Speichern eines einzigen Schreibverzöge­ rungsdatensatzes nicht kontinuierlich sind.
Wenn der Direktor 25 das Blindsteuerfeld 1000 erzeugt hat, wird das Blindsteuerfeld-Flag 1003 gesetzt, während es zurückgesetzt wird, wenn der Direktor 25 den Datensatz 301 von der Plattenspeichereinheit 24 in den Cachespei­ cher 26 geladen hat.
In Fig. 8 ist die Information gezeigt, die in dem Ver­ zeichnis gemäß dieser Ausführungform vorgesehen ist.
Diese Information enthält eine Segmentverwaltungsinforma­ tion 500, eine Spurtabelle 501 und einen Leersegmentwar­ teschlangen-Kopfzeiger 502. Die Segmentverwaltungsinfor­ mation 500 ist für jedes Segment 400 vorgesehen. Ande­ rersseits sind im Verzeichnis 28 nur eine Spurtabelle 501 und ein Leersegmentwarteschlangen-Kopfzeiger 502 vorgese­ hen.
In Fig. 9 ist die Information gezeigt, die in der Seg­ mentverwaltungsinformation 500 gemäß dieser Ausführungs­ form vorgesehen ist. Diese Informationen werden im fol­ genden erläutert: Der Leersegmentzeiger 800 ist ein Zei­ ger, der in der Segmentverwaltungsinformation 500 ein weiteres leeres Segment 400 anzeigt; das Partialschreib­ flag 801 ist ein Flag, das angibt, daß Schreibverzöge­ rungsdaten 29, die aufgrund der Partialschreibanforderung geschrieben werden, in dem der betreffenden Segmentver­ waltungsinformation 500 entsprechenden Segment 400 ge­ speichert werden; die Cachespurnummer 805 ist die Nummer der Spur 300, die in dem der betreffenden Segmentverwal­ tungsinformation 500 entsprechenden Segment 400 gespei­ chert wird; der Datensatzzeiger 806 ist ein Zeiger auf den Datensatz 301, der im der betreffenden Segmentverwal­ tungsinformation 500 entsprechenden Segment 400 gespei­ chert ist (beispielsweise ist der n-te Zeiger 806 ein Zeiger auf den Datensatz 301, der die Datensatznummer 602 (n-1) besitzt. Wenn der Datensatz 301 mit der Daten­ satznummer 602 (m-1) nicht im Cachespeicher 26 gespei­ chert ist, nimmt der m-te Datensatzzeiger 806 den Wert "Null" an. In diesem Beispiel wird angenommen, daß der vorderste Datensatzzeiger 806 ein Zeiger auf den Daten­ satz 301 mit der Datensatznummer Null ist. Die Anzahl der Datensatzzeiger 806 entspricht der Anzahl der Datensatz­ nummern 602, die innerhalb einer Spur 300 definiert wer­ den können); Der Aktualisierungsdatensatzzeiger 807 ist ein Zeiger, auf den Schreibverzögerungsdatensatz 160, der in dem der betreffenden Segmentverwaltungsinformation 500 entsprechenden Segment gespeichert ist (selbst wenn in diesem Fall der Partialschreibprozeß dem bereits im Cachespeicher 26 gespeicherten Datensatz 301 dient, verwaltet der Direktor 25 diesen Datensatz 301 als Schreibverzögerungsdatensatz 160. Genauso wie der Datensatzzeiger 806 ist der n-te Aktualisierungs- Datensatzzeiger 807 ein Zeiger auf den Datensatz 301 mit der Datensatznummer 602 (n-1). Wenn der Datensatz 301 mit der Datensatznummer 602 (m-1) kein Schreibver­ zögerungsdatensatz 160 ist, nimmt der m-te Aktuali­ sierungs-Datensatzzeiger 807 den Wert "Null" an. Die Anzahl der Aktualisierungs-Datensatzzeiger 807 ist gleich der Anzahl der Datensatznummer 602, die in einer Spur 300 gespeichert werden können); die Aktualisierungs- Feldinformation 808 ist eine Information, die das aktualisierte Feld 606 im Schreibverzögerungsdatensatz 160 mit der Datensatznummer n kennzeichnet (diese Information gibt an, welche Kombination des Datensatzfel­ des 600, des Schlüsselfeldes 607 und des Datenfeldes 601 die aktualisierten Felder bildet. Die Anzahl der Aktuali­ sierungs-Feldinformationen 808 ist gleich der Anzahl der Datensatznummern 602, die in einer Spur 300 definiert werden können); die segmentinterne Leerbereichadresse 809 ist eine Adresse, die die Startadresse eines leeren Be­ reichs des der betreffenden Segmentverwaltungsinformation 500 entsprechenden Segments 400 ist, in dem ein Datensatz 301 nicht gespeichert ist; der Segmentzeiger 810 ist ein Zeiger auf das der betreffenden Segmentverwaltungsinfor­ mation 500 entsprechende Segment im Cachespeicher 26.
In Fig. 10 ist die Struktur der Spurtabelle 501 gezeigt. In der Spurtabelle 501 ist für jede Spur auf sämtlichen Plattenspeichereinheiten 24 eine Information darüber ge­ speichert, ob ihr das Segment zugeordnet ist. Wenn das Segment einer Spur zugeordnet ist, wird die Information in der Spurtabelle 501 durch einen Zeiger auf die dem be­ treffenden Segment entsprechende Segmentverwaltungsinfor­ mation 500 dargestellt. Andernfalls nimmt die Information den Wert "Null" an. In der Spurtabelle 501 ist die Infor­ mation über die Spuren 300 derselben Plattenspeicherein­ heit 24 in der Reihenfolge der Spurnummern gespeichert.
Wie in Fig. 11 gezeigt, werden die Segmentverwaltungsin­ formationen 500 für die leeren Segmente 400 zunächst durch den Leersegmentwarteschlagen-Kopfzeiger 502 identi­ fiziert und dann nacheinander durch die Leersegmentzeiger 800 der entsprechenden Segmentverwaltungsinformationen 500 miteinander verbunden.
In Fig. 12 ist die Struktur des Schreibverzögerungsspei­ chers 27 gezeigt, in dem die Schreibverzögerungsinforma­ tion 1100 für jede Plattenspeichereinheit 24 gespeichert ist. Die Schreibverzögerungsinformation 1100 enthält die einen Ausführungszustand des Schreibverzögerungsprozesses darstellende Information und eine Fehlerinformation.
In Fig. 13 ist die in jeder Schreibverzögerungsinforma­ tion 1100 gespeicherte Information, die im folgenden be­ schrieben wird, gezeigt: Der Schreibverzögerungs-Segment­ zeiger 1202 ist ein Zeiger auf die Segmentverwaltungsin­ formation 500, die der Spur 300 entspricht, welche einem Schreibverzögerungsprozeß unterworfen wird; die Informa­ tion über eine Datensatznummerinkonsistenz 1203 ist eine Information, die die Datensatznummer 602 desjenigen Da­ tensatzes 301, der dem Schreibverzögerungsprozeß unter­ worfen wird und nicht in der Plattenspeichereinheit 24 gespeichert ist, darstellt; die Information über eine Feldlängeninkonsistenz 1204 ist eine Information, die dasjenige Feld 606 darstellt, das einem Schreibverzöge­ rungsprozeß unterworfen wird und dessen Länge inkonsi­ stent ist.
Wenn die Information über die Datensatznummerinkonsistenz 1203 oder die Information über die Feldlängeinkonsistenz 1204 vorliegen, bedeutet dies, daß während des Schreib­ verzögerungsprozesses ein Fehler aufgetreten ist. Ein solcher Fehler kann aus verschiedenen Gründen auftreten. Da jedoch solche Fehler in keiner direkten Beziehung zu der vorliegenden Erfindung stehen, wird deren Beschrei­ bung weggelassen.
Die obenerwähnte Information kann durch einen Stromaus­ fall oder ähnliches gelöscht werden, so daß die Informa­ tion vorzugsweise in einem nichtflüchtigen Speicher ge­ speichert wird.
In Fig. 14 ist die Struktur des Direktors 25 gemäß dieser Ausführungsform gezeigt. Im folgenden wird jeder Teil be­ schrieben.
Der Cachespeicher-Partialschreibteil 10 überträgt auf­ grund des Empfangs einer Partialschreibanforderung die vom Kanal 22 empfangenen Daten an den Cachespeicher 26.
Der Schreibverzögerungs-Bereitstellungsteil 11 bestimmt die Plattenspeichereinheit 24 und die Spur 300, die dem Schreibverzögerungsprozeß unterworfen werden.
Der Schreibverzögerungs-Übertragungsteil 12 führt den vom Schreibverzögerungs-Bereitstellungsteil 11 vorbereiteten Schreibverzögerungsprozeß aus.
Der Schreibverzögerungsfehler-Entscheidungsteil 13 prüft aufgrund des Empfangs einer Eingabe/Ausgabe-Anforderung von der CPU 20, ob bei der Plattenspeichereinheit 24, an die die Anforderung gerichtet war, im Schreibverzöge­ rungsprozeß ein Fehler aufgetreten ist. Wenn ein Fehler aufgetreten ist, wird diese Tatsache über den Kanal 22 an die CPU 20 gemeldet.
Nun wird die Operation eines jeden Teils beschrieben. In Fig. 15 ist ein Flußdiagramm gezeigt, das die vom Cache­ speicher-Partialschreibteil 10 auszuführenden Prozesse erläutert. Dieser Prozeßablauf enthält außerdem einen Prozeß für den Fall, in dem der zu schreibende Datensatz 301 bereits im Cachespeicher 26 gespeichert ist. Dieser Prozeßablauf wird ausgeführt, wenn der Direktor 25 von der CPU 20 über den Kanal 22 eine Partialschreibanforde­ rung empfängt, wobei die Partialschreibanforderung die Bestimmungsinformation 5 für die Bestimmung eines Prozeß­ modus enthält, durch den der Schreibprozeß selbst dann, wenn der zu schreibende Datensatz 301 nicht im Cachespei­ cher 26 gespeichert ist, abgeschlossen werden kann, wenn die Daten im Cachespeicher 26 gespeichert sind.
Im Schritt 1300 wird geprüft, ob das Segment 400 der zu beschreibenden Spur 300 bereits zugeordnet worden ist. Diese Prüfung bezieht sich auf die der betreffenden Spur 300 entsprechende Spurtabelle 501. Wenn das Segment 400 noch nicht zugeordnet worden ist, geht die Verarbeitung weiter zum Schritt 1301. Wenn die Zuordnung bereits stattgefunden hat, geht die Verarbeitung weiter zum Schritt 1305.
Im Schritt 1301 werden das Segment 400 und die Segment­ verwaltungsinformation 500 der betreffenden Spur 300 zu­ geordnet. Hierbei kann ein bekanntes Zuordnungsverfahren verwendet werden.
Im Schritt 1302 wird die zugeordnete Segmentverwaltungs­ information 500 initialisiert. Diese Initialisierung ent­ hält beispielsweise einen Prozeß des Setzens der Spurnum­ mer der zu beschreibenden Spur 300 als Cache-Spurnummer 805.
Im Schritt 1303 wird unter Verwendung der durch die Be­ stimmungsinformation 3 bestimmten Datensatznummer das Blindsteuerfeld 1000 ausgebildet.
Im Schritt 1304 werden die vom Kanal 22 empfangenen Daten in dem Bereich gespeichert, der dem durch die Bestim­ mungsinformation 4 bestimmten Feld 606 entspricht. Danach geht der Prozeß weiter zum Schritt 1311. Im Schritt 1311 wird der für die Segmentverwaltungsinformation 500 benö­ tigte Abschnitt aktualisiert, anschließend wird über den Kanal 22 der Abschluß des Schreibprozesses an die CPU 20 gemeldet, woraufhin der Schreibprozeß beendet wird.
Wenn andererseits die Antwort im Schritt 1300 "Ja" lau­ tet, wird im Schritt 1305 geprüft, ob der zu schreibende Datensatz 301 momentan im Cachespeicher 26 gespeichert wird. Bei dieser Prüfung wird auf die Segmentverwaltungs­ information 500 Bezug genommen und geprüft, ob der Daten­ satzzeiger 806 auf die betreffende Datensatznummer 602 den Wert "Null" annimmt. Wenn der zu schreibende Daten­ satz 301 momentan nicht im Cachespeicher 26 gespeichert ist, geht die Verarbeitung weiter zum Schritt 1303 und den folgenden weiter, so daß die gleichen Prozesse wie in dem Fall, in dem das Segment 400 der zu beschreibenden Spur 300 noch nicht zugeordnet war, ausgeführt werden. Wenn der zu schreibende Datensatz 301 momentan im Cache­ speicher 26 gespeichert ist, geht der Prozeß weiter zum Schritt 1306.
Im Schritt 1306 wird geprüft, ob die von der Bestimmungs­ information 4 der CPU 20 bestimmten Felder 606 im Cache­ speicher 26 gespeichert sind. Wenn sie gespeichert sind, geht der Prozeß weiter zum Schritt 1308. Wenn nicht, geht der Prozeß weiter zum Schritt 1307.
Im Schritt 1307 wird geprüft, ob das Blindsteuerfeld-Flag 1300 für den zu schreibenden Datensatz 301 gesetzt ist oder nicht. Wenn nicht, bedeutet dies, daß der zu schrei­ bende Datensatz 301 von der Spur 300 in den Cachespeicher 26 geladen wurde. Daher widerspricht dieser Fall den Prü­ fergebnissen im Schritt 1306, nämlich, daß sämtliche Fel­ der 606 gespeichert worden sind. Daher springt die Verar­ beitung zum Schritt 1313, um eine Fehlermeldung auszuge­ ben. Wenn andererseits das Blindsteuerfeld-Flag 1003 ge­ setzt ist, geht die Verarbeitung weiter zum Schritt 1312.
lm Schritt 1312 werden die vom Kanal 22 empfangenen Daten in den Bereich gespeichert, die den bereits gespeicherten und neu erstellten Feldern 606 entsprechen. Die Länge der im Cachespeicher 26 neu gespeicherten Daten wird als Schlüsselfeldlänge 608 oder als Datenfeldlänge 603 im Blindsteuerfeld 1000 gespeichert. Für den Schlüsselfeld­ zeiger 1001 bzw. den Datenfeldzeiger 1002 wird ein ge­ eigneter Wert gesetzt. Danach geht der Prozeß weiter zum Schritt 1309.
Wenn andererseits die Antwort im Schritt 1306 "Ja" lau­ tet, werden die vom Kanal 22 empfangenen Daten im Cache­ speicher 26 in dem dem Feld 606 entsprechenden Bereich gespeichert.
Im Schritt 1309 wird geprüft, ob die im Cachespeicher 26 in dem dem Feld 606 entsprechenden Bereich gespeicherten Daten mit der Schlüsselfeldlänge 608 oder der Datenfeld­ länge 603 im Steuerfeld 600 konsistent sind. Wenn sie konsistent sind, geht der Prozeß weiter zum Schritt 1311, andernfalls geht der Prozeß zum Schritt 1310.
Im Schritt 1310 wird die Datenlängeninkonsistenz über den Kanal 22 an die CPU 20 gemeldet, anschließend wird der Prozeß beendet.
Wenn andererseits im Schritt 1307 die Antwort "Nein" lau­ tet, meldet der Direktor 25 im Schritt 1313 über den Ka­ nal 22 an die CPU 20 den Widerspruch bezüglich des Feldes 606, um anschließend den Prozeß zu beenden.
ln Fig. 16 ist ein Flußdiagramm gezeigt, das die vom Schreibverzögerungs-Bereitstellungsteil 11 auszuführenden Prozesse erläutert. Dieser Prozeßablauf enthält auch einen Prozeß des Schreibens von Schreibverzögerungsdaten 29, die im im Cachespeicher 26 gespeicherten Datensatz 301 enthalten sind, in die Plattenspeichereinheit 24.
Dieser Prozeß wird vom Direktor 25 während einer Leerzeit ausgeführt. D. h., daß die im Cachespeicher 26 gespeicher­ ten Daten aufgrund des Empfangs einer Partialschreiban­ forderung in die Plattenspeichereinheit 24 geschrieben werden.
Die Plattenspeichereinheit 24, die beschrieben werden soll, ist diejenige Plattenspeichereinheit, für die das Schreibverzögerungsprozeß-Flag 1200 nicht gesetzt ist und für die eine Eingabe/Ausgabe-Anforderung nicht bestätigt ist. Die im Schreibverzögerungsprozeß zu beschreibende Spur 300 ist eine Spur, die der Segmentverwaltungsinfor­ mation 500 entspricht, deren Partialschreibflag 801 ge­ setzt ist.
Zunächst wird das Schreibverzögerungsprozeß-Flag 1200 der Schreibverzögerungsinformation 1100 der zu beschreibenden Plattenspeichereinheit 24 gesetzt, anschließend wird ein Zeiger für die Segmentverwaltungsinformation 500 für die zu beschreibende Spur 300 als Schreibverzögerungs-Segm­ entzeiger 1202 gesetzt.
Im Schritt 1401 wird für die zu beschreibende Spur 300 eine Positionierungsanforderung an die zu beschreibende Plattenspeichereinheit 24 geliefert 55003 00070 552 001000280000000200012000285915489200040 0002004039891 00004 54884, woraufhin der Prozeß beendet ist.
In Fig. 17 ist ein Flußdiagramm gezeigt, mit der die vom Schreibverzögerungs-Übertragungsteil 12 auszuführenden Prozesse erläutert werden. Dieser Prozeßablauf enthält auch einen Prozeß des Schreibens von Schreibverzögerungs­ daten, die im im Cachespeicher 26 gespeicherten Datensatz 301 enthalten sind, in die Plattenspeichereinheit 24.
Dieser Prozeß wird ausgeführt, nachdem die vom Schreib­ verzögerungs-Bereitstellungsteil erzeugte Positionie­ rungsanforderung für die Plattenspeichereinheit vollstän­ dig ausgeführt worden ist.
Im Schritt 1500 wird geprüft, ob sämtliche Schreibverzö­ gerungsdatensätze 160 vollständig in die Zielspur 300 ge­ schrieben worden sind. Wenn in keinem der Aktualisie­ rungs-Datensatzzeiger 807 in derjenigen Segmentverwal­ tungsinformation 500, auf die der Schreibverzögerungs- Segmentzeiger 1202 zeigt, der Wert "Null" vorhanden ist, bedeutet dies, daß der Schreibverzögerungsdatensatz 160 vollständig geschrieben worden ist. Wenn ein Wert "Null" vorliegt, bedeutet dies, daß noch nicht der gesamte Schreibverzögerungsdatensatz 160 geschrieben worden ist. Wenn der Schreibprozeß abgeschlossen ist, geht der Prozeß weiter zum Schritt 1509, andernfalls geht der Prozeß zum Schritt 1501.
Im Schritt 1501 wird mit der Suche des Datensatzes 301 der Spur 300 begonnen, wobei die physikalische Position auf der Spur 300, von der aus die Suche begonnen wurde, gespeichert wird. Die gespeicherte physikalische Position wird für die Feststellung einer Umdrehung der Spur 300 auf der Platte verwendet.
Im Schritt 1502 wird das Steuerfeld 600 des Datensatzes 301 auf der Spur 300 gelesen.
Im Schritt 1503 wird die Datensatznummer 602 im ausgele­ senen Steuerfeld 600 mit der Datensatznummer 602 im Blindsteuerfeld 1000 oder im Steuerfeld 600, auf das der Aktualisierungs-Datensatzzeiger 807 zeigt, verglichen. Wenn beide Datensatznummern 602 übereinstimmen, bedeutet dies, daß der Datensatz 301, auf den nun zugegriffen wird, für den Schreibverzögerungsprozeß verwendet werden soll, so daß der Prozeß zum Schritt 1504 weitergeht. An­ dernfalls geht der Prozeß weiter zum Schritt 1507.
Im Schritt 1504 wird das zu beschreibende Feld 606 unter Verwendung der dem Aktualisierungs-Datensatzzeiger 807 entsprechenden Aktualisierungsfeldinformation 808 ermit­ telt. Die Länge des ermittelten Feldes 606 wird aus der Schlüsselfeldlänge 608 oder aus der Datenfeldlänge 603 im Blindsteuerfeld 1000 oder im Steuerfeld 600 abgeleitet. Die abgeleitete Länge wird mit der Schlüsselfeldlänge 608 oder der Datenfeldlänge 603 im Steuerfeld 600, das im Schritt 1502 aus der Spur 300 gelesen worden ist, vergli­ chen, um ihre Übereinstimmung zu prüfen. Wenn die Längen nicht übereinstimmen, geht der Prozeß weiter zum Schritt 1506, ohne daß Daten geschrieben werden. Wenn anderer­ seits die Längen übereinstimmen, geht der Prozeß weiter zum Schritt 1505. In diesem Schritt werden die Schreib­ verzögerungsdaten 29 für das zu beschreibende Feld 606 auf der Spur 300 in denjenigen Datensatz 301 geschrieben, auf den zugegriffen worden ist. Anschließend kehrt der Prozeß zum Schritt 1500 zurück.
Im Schritt 1506 wird die Information über eine Feldlän­ geninkonsistenz der Schreibverzögerungsinformation 1100 gesetzt, anschließend geht der Prozeß weiter zum Schritt 1510.
Im Schritt 1507 wird geprüft, ob für die Suche nach dem zu schreibenden Datensatz 301 eine Umdrehung der Spur 300 ausgeführt worden ist. Wenn nicht, kehrt der Prozeß zum Schritt 1502 zurück, um die Suche fortzusetzen. Andern­ falls geht der Prozeß weiter zum Schritt 1508.
Im Schritt 1508 wird die Information über die Datensatz­ nummerinkonsistenz 1203 gesetzt, anschließend geht der Prozeß weiter zum Schritt 1510.
Im Schritt 1509 wird die aufgrund des Abschlusses des Schreibverzögerungsprozesses notwendig gewordene Aktuali­ sierung der Segmentverwaltungsinformation 500 vorgenom­ men.
Im Schritt 1510 wird das Schreibverzögerungsprozeß-Flag 1200 zurückgesetzt, woraufhin der Prozeß beendet wird.
In Fig. 18 ist ein Flußdiagramm gezeigt, mit dem die vom Schreibverzögerungsfehler-Entscheidungsteil 13 auszufüh­ renden Prozesse erläutert werden.
Dieser Prozeßablauf wird ausgeführt, wenn von der CPU 20 über den Kanal 22 eine Eingabe/Ausgabe-Anforderung emp­ fangen wird.
Im Schritt 1600 wird geprüft, ob für die Ziel-Platten­ speichereinheit 24 die Information über eine Datensatz­ nummerinkonsistenz 1203 oder die Information über eine Feldlängeninkonsistenz 1204 der Schreibverzögerungsinfor­ mation 1100 gesetzt ist. Wenn weder die eine noch die an­ dere Information gesetzt ist, ist der Prozeß beendet. Wenn wenigstens eine der Informationen 1203 oder 1204 ge­ setzt ist, geht der Prozeß weiter zum Schritt 1601.
Im Schritt 1601 wird an die CPU 20 eine Fehlermeldung ausgegeben, anschließend wird der Prozeß beendet.
Nun wird mit Bezug auf die Fig. 19 bis 25 eine zweite Ausführungsform der vorliegenden Erfindung beschrieben.
In dieser Ausführungsform führt in dem Fall, in dem der zu schreibende Datensatz 301 nicht im Cachespeicher 26 gespeichert ist, der Direktor 25 auf der Grundlage der in der Steuereinheit 23 gehaltenen Information eine Prüfope­ ration aus, wobei der Schreibprozeß dann abgeschlossen ist, wenn die Daten in den Cachespeicher 26 geschrieben worden sind.
Fig. 19 ist ein detailliertes Blockschaltbild, in dem das Informationsverarbeitungssystem gemäß dieser zweiten Aus­ führungsform gezeigt ist. Die zweite Ausführungsform un­ terscheidet sich von der in Fig. 1 gezeigten und oben be­ schriebenen ersten Ausführungsform durch die folgenden Merkmale. Zunächst speichert der Schreibverzögerungsspei­ cher 27 eine Schreibverzögerungs-Spurinformation ª 1700, die für jede der Spuren 300 angibt, ob sie eine Daten­ satznummer doppelt enthält. Zweitens enthält die durch die CPU 20 bestimmte Information b 3300 nicht die Bestim­ mungsinformation 5, die in dem Fall, in dem der zu schreibende Datensatz 301 nicht im Cachespeicher 26 ge­ speichert ist, einen Prozeßmodus bestimmt. Drittens ent­ hält die Ausführungsbedingung b 3310 der Cache-Schreibo­ peration 120 eine Bedingung, daß die zu beschreibende Spur 300 eine gedoppelte Datensatznummer nicht enthält. Die übrige Struktur ist die gleiche wie diejenige in der in Fig. 1 gezeigten ersten Ausführungsform. Die folgende Beschreibung bezieht sich daher hauptsächlich auf die Merkmale, die sich von der ersten Ausführungsform unter­ scheiden.
In Fig. 20 ist die Struktur des Schreibverzögerungsspei­ chers 27 gemäß der zweiten Ausführungsform gezeigt. Der Unterschied gegenüber dem in Fig. 12 gezeigten Schreib­ verzögerungsspeicher 27 gemäß der ersten Ausführungsform besteht darin, daß der Schreibverzögerungsspeicher 27 der zweiten Ausführungform eine Schreibverzögerungs-Spurin­ formation ª 1700 speichert, die für jede Plattenspeicher­ einheit 24 vorgesehen ist.
In Fig. 21 ist die Struktur der Schreibverzögerungs- Spurinformation ª 1700 gezeigt. Diese lnformation enthält eine Spurzustandinformation ª 1800, die einen der drei folgenden Zustände darstellt: einen Zustand, in dem keine gedoppelte Datensatznummer vorhanden ist, einen Zustand, in dem eine gedoppelte Datensatznummer vorhanden ist, und einen Zustand, in dem ungewiß ist, ob eine gedoppelte Da­ tensatznummer vorhanden ist. Der Spurzustand ª 1800 einer jeden Spur 300 wird in der Reihenfolge der Spurnummern gespeichert.
In Fig. 22 ist ein Zustandsübergang des Spurzustands ª 1800 gezeigt. Der Spurzustand ª 1800 nimmt zu Beginn einen Zustand 391 an, in dem unsicher ist, ob die Spur 300 eine gedoppelte Datensatznummer enthält. Aufgrund des Empfangs einer Partialschreibanforderung in diesem Zu­ stand 391 prüft der Direktor 25, ob in der Spur 300 eine gedoppelte Datensatznummer vorliegt. Wenn eine solche ge­ doppelte Datensatznummer nicht vorliegt, wird der Spurzu­ stand ª 1800 in einen Zustand 392 versetzt, in dem keine gedoppelte Datensatznummer vorhanden ist. Wenn eine ge­ doppelte Datensatznummer vorliegt, wird der Spurzustand ª 1800 in einen Zustand 393 versetzt, in dem eine gedop­ pelte Datensatznummer vorhanden ist. Wenn eine For­ matschreibanforderung empfangen wird, sorgt der Direktor 25 dafür, daß der Spurzustand ª 1800 den Zustand 391 an­ nimmt, in dem ungewiß ist, ob eine gedoppelte Datensatz­ nummer vorliegt. Der Grund hierfür besteht darin, daß die Möglichkeit besteht, daß die Datensatznummer 602 des Da­ tensatzes durch den Formatschreibprozeß geändert worden sein könnte.
Der Cachespeicher 26, das Speicherformat des Segmentes 400, des Verzeichnis 28, die Segmentverwaltungsinforma­ tion 500, die Spurtabelle 501 und der Leersegmentwarte­ schlange-Kopfzeiger 502 besitzen sämtlich die gleiche Struktur wie in der ersten Auführungsform, wie sie in den Fig. 6, 7, 8, 9, 10 bzw. 11 gezeigt ist.
In Fig. 23 ist die Struktur des Direktors 25 gemäß der zweiten Ausführungsform gezeigt. Der Unterschied zwischen dem Direktor 25 gemäß der zweiten Ausführungsform und dem Direktor 25 gemäß der in Fig. 1 gezeigten ersten Ausfüh­ rungsform besteht darin, daß der Direktor 25 gemäß der zweiten Ausführungsform zusätzlich die beiden im folgen­ den beschriebenen Teile besitzt.
Erstens einen Schreibverzögerungsspurinformation-Verwal­ tungsteil ª 14, der folgendermaßen arbeitet: Wenn für die Spur 300, deren Spurzustand ª 1800 der Zustand 391 ist, in dem ungewiß ist, ob in der Spur 300 eine gedoppelte Datensatznummer vorliegt oder nicht, eine Partial­ schreibanforderung empfangen wird, prüft dieser Teil, ob in der Spur 300 eine gedoppelte Datensatznummer vorliegt; das Prüfergebnis wird als Spurzustand ª 1800 gespeichert.
Zweitens einen Schreibverzögerungsspurinformation-Verwal­ tungsteil b 15, der auf die folgende Weise arbeitet: Wenn für die Spur 300 eine Formatschreibanforderung empfangen wird, bewirkt dieser Teil, daß der Spurzustand ª 1800 der Spur 300 den Zustand 391 annimmt, in dem ungewiß ist, ob eine gedoppelte Datensatznummer vorliegt oder nicht.
Die Prozeßabläufe für den Cachespeicher-Partialschreib­ teil 10, für den Schreibverzögerungs-Bereitstellungsteil 11, für den Schreibverzögerungs-Übertragungsteil 12 und für den Schreibverzögerungsfehler-Entscheidungsteil 13 sind die gleichen wie diejenigen in den Fig. 15 bis 18, mit der Ausnahme, daß der Prozeßablauf für den Cachespei­ cher-Partialschreibteil 10 auf eine gegenüber der ersten Ausführungsform verschiedene Weise ausführbar ist. In der zweiten Ausführungsform kann der Prozeß des Cachespei­ cher-Partialschreibteils 10 nur dann ausgeführt werden, wenn der Spurzustand ª 1800 der Spur 300, die einer Par­ tialschreibanforderung von der CPU 20 unterworfen wird, den Zustand 392 annimmt, in dem keine gedoppelte Daten­ satznummer vorhanden ist.
In den Fig. 24A und Fig. 24B sind Flußdiagramme gezeigt, die vom Schreibverzögerungsspurinformation-Verwaltungs­ teil ª 14 ausgeführt werden.
Der in Fig. 24A gezeigte Prozeßablauf kann dann ausge­ führt werden, wenn der Direktor 25 für die Spur 300, de­ ren Spurzustand ª 1800 den Zustand 391 annnimmt, in dem ungewiß ist, ob eine gedoppelte Datensatznummer vorliegt, eine Partialschreibanforderung empfängt.
Im Schritt 2000 wird eine Positionierungsanforderung an die Spur 300 ausgegeben, an die die Partialschreibanfor­ derung gerichtet war, woraufhin der Prozeß beendet ist.
Der in Fig. 24B gezeigte Prozeßablauf kann ausgeführt werden, wenn die im Schritt 2000 ausgegebene Positionie­ rungsanforderung abgeschlossen worden ist.
Im Schritt 2001 wird geprüft, ob eine gedoppelte Daten­ satznummer vorliegt, indem sämtliche Datensätze 301 auf der Spur 300, an die die Partialschreibanforderung ge­ richtet war, gelesen werden.
Im Schritt 2002 wird das Prüfergebnis im Spurzustand ª 1800 der betreffenden Spur 300 gespeichert, woraufhin der Prozeß beendet ist.
In Fig. 25 ist ein Flußdiagramm gezeigt, daß vom Schreib­ verzögerungsspurinformation-Verwaltungsteil b 15 ausge­ führt wird. Dieser Prozeßablauf kann ausgeführt werden, wenn der Direktor 25 eine Formatschreibanforderung emp­ fängt.
Im Schritt 2100 wird bewirkt, daß der Spurzustand ª 1800 der Spur 300, die dem Formatschreibprozeß unterworfen wird, den Zustand 391 annimmt, in dem ungewiß ist, ob eine gedoppelte Datensatznummer vorhanden ist, anschlie­ ßend wird der Prozeß beendet.
Nun wird mit Bezug auf die Fig. 26 bis 34 eine dritte Ausführungsform der vorliegenden Erfindung beschrieben. Wenn in der dritten Ausführungsform der zu schreibende Datensatz 301 nicht im Cachespeicher 26 gespeichert ist und nur wenn die besondere, bestimmte Information von der CPU 20 empfangen wird, werden Daten in den Cachespeicher 26 geschrieben, so daß der Schreibprozeß auf dieser Stufe abgeschlossen ist. Darüber hinaus ist es beabsichtigt, die Effizienz des Schreibverzögerungsprozesses zu verbes­ sern, indem die physikalische Schreibposition des zu schreibenden Datensatzes 301 auf der Spur 300 berechnet wird.
Im folgenden wird der Grund erläutert, warum durch die Berechnung der physikalischen Schreibposition die Effizi­ enz des Schreibverzögerungsprozesses verbessert wird. Wie in Fig. 33 gezeigt, kann die Schreibeffizienz verbessert werden, wenn eine Mehrzahl von Schreibverzögerungsdaten­ sätzen 160 in Datensätze 301 unterhalb des Schreib/Lese- Kopfes 309 an physikalischen Schreibpositionen geschrie­ ben werden, die in einer zur Drehrichtung des Platten­ speichers 308 entgegengesetzten Richtung nacheinander an­ geordnet sind. Wie ferner in Fig. 34 gezeigt, kann in dem Fall, in dem sich zwei physikalische Schreibpositionen in einem Abstand befinden, der gleich oder größer als ein vorgegebener Abstand ist, die Effizienz weiter verbessert werden, falls der Schreibverzögerungsprozeß zwischen den zwei Schreibverzögerungsdatensätzen 160 unterbrochen wird, weil das Zeitintervall, in dem der Direktor 25 und die Datenübertragungsleitungen nutzlos belegt sind, be­ seitigt wird.
In Fig. 26 ist ein detailliertes Blockschaltbild des In­ formationsverarbeitungssystems gemäß der dritten Ausfüh­ rungsform gezeigt. Die Merkmale, die die dritte Ausfüh­ rungsform von der in Fig. 1 gezeigten ersten Ausführungs­ form unterscheiden, werden im folgenden beschrieben.
Erstens enthält die Bestimmungsinformation 3400 von der CPU 20 nicht die Bestimmungsinformation 5, sondern Be­ stimmungsinformationen 6 bzw. 7.
Die Bestimmungsinformation 6 bestimmt die Menge der zu schreibenden Daten. Wenn nur ein Feld beschrieben werden soll, wird die Länge dieses Feldes 606 als Schreibdaten­ menge verwendet. Wenn der Direktor 25 von der CPU 20 die Bestimmungsinformation 6 empfängt, kann die physikalische Schreibposition für den zu schreibenden Datensatz 301 auf der Spur berechnet werden, bevor vom Kanal 22 Daten emp­ fangen werden. Die Bestimmungsinformation 6 muß nicht un­ bedingt vorgesehen werden, so daß die Bestimmungsinforma­ tion 6 in Fig. 26 in Klammern gezeigt ist.
Die Bestimmungsinformation 7 ist eine Information, die angibt, daß die zu beschreibende Spur 300 die folgenden Strukturbedingungen A bis C erfüllt.
Bedingung A: Die Datensatznummern 602 der Datensätze 301 der zu beschreibenden Spur 300 sind in aufsteigender Folge gegeben, wobei bei der Datensatznummer "Null" des Steuerdatensatzes 310 begonnen wird und anschließend je­ weils um "Eins" erhöht wird.
Bedingung B: Das Feld 606, das vom Steuerfeld 600 ver­ schieden ist, enthält nur das Datenfeld 601, während die Länge des Datenfeldes 601 des vom Steuerdatensatz 310 verschiedenen Datensatzes 301 für jeden Datensatz in der Spur die gleiche ist.
Bedingung C: Der Steuerdatensatz 310 ist ein Standardda­ tensatz. D. h., daß das vom Steuerfeld 600 verschiedene Feld 606 des Steuerdatensatzes 310 nur das Datenfeld ent­ hält, wobei die Länge des Datenfeldes eine vorgegebene Standardlänge ist.
Wenn die Strukturbedingungen A bis C erfüllt sind, wird es möglich, die physikalische Schreibposition des Daten­ satzes 301 der Spur 300 zu berechnen.
Der Grund dafür, daß die physikalische Schreibposition berechnet werden kann, ist der folgende. Wenn die Bedin­ gung A erfüllt ist, ist aufgrund der Datensatznummer 602, die vom Direktor 25 vom Kanal 22 empfangen wird, bekannt, wo sich der zu schreibende Datensatz 301 bezogen auf den Beginn der Spur 300 befindet. Wenn die Bedingungen B und C erfüllt sind, ist aufgrund der Länge der vom Kanal 22 empfangenen Daten oder aufgrund der in der Bestimmungsin­ formation 6 enthaltenen Schreibdatenmenge die Länge des Feldes 606 eines jeden Datensatzes 301 auf der Spur 300 bekannt. Mit dieser Information ist es möglich, die phy­ sikalische Position des zu schreibenden Datensatzes 301 auf der Spur 300 zu berechnen.
Ob die zu beschreibende Spur 300 die Bedingungen A bis C erfüllt, wird an einen Steuermechanismus in der CPU 20 gemeldet. Damit kann die CPU 20 die Bestimmungsinforma­ tion 7 erzeugen.
Das zweite Merkmal, durch das sich die dritte Ausführung­ form gegenüber der ersten Ausführungsform unterscheidet, besteht darin, daß die Ausführungsbedingung c 3410 der Cache-Schreiboperation 120 erfüllt ist, wenn die zu be­ schreibende Spur 300 die Bedingungen A bis C erfüllt.
Nun wird ein weiteres Merkmal der Operation des Schrei­ bens der Schreibverzögerungsdaten 29 in die Plattenspei­ chereinheit 24 beschrieben, durch das sich die dritte Ausführungsform gegenüber der ersten Ausführungsform un­ terscheidet.
Insbesondere prüft der Direktor 25 für die Schreibverzö­ gerungsinformation d 3420, ob sich der Datensatz 301 mit der von der Bestimmungsinformation 3 gelieferten Daten­ satznummer 602 in der Nähe eines vorgegebenen Abstandsin­ tervalls um die berechnete Schreibposition des Daten­ satzes 301 auf der Spur 300 der Plattenspeichereinheit 24 befindet. Die Abtastung nach dem Datensatz in der Nähe des vorgegebenen Abstandsintervalls um die berechnete Schreibposition wird deshalb ausgeführt, weil die physi­ kalische Position des Datensatzes 301 um einige Grad ver­ schoben wird, falls ein fehlerhafter Datensatz, der nicht gelesen/geschrieben werden kann, auf der Spur 300 vorhan­ den ist.
Der Cachespeicher 26, das Verzeichnis 28, die Spurtabelle 501, der Leersegmentwarteschlangen-Kopfzeiger 502 und der Schreibverzögerungsspeicher 27 besitzen sämtlich die gleiche Struktur wie in der ersten Ausführungsform, wie sie in den Fig. 6, 8, 10, 11 bzw. 12 gezeigt sind.
Ferner besitzen auch das Blindssteuerfeld 1000, der Schlüsselfeldzeiger 1001, der Datenfeldzeiger 1002 und das Blindsteuerfeld-Flag 1003 des Segments 400 sämtlich die gleiche Struktur wie in der ersten Ausführungsform, wie sie entsprechend in Fig. 7 gezeigt ist.
Das Schlüsselfeld 607 ist jedoch nicht im Datensatz 301 der Spur 300, die die Bedingungen A bis C erfüllt, vor­ handen, so daß die Schlüsselfeldlänge 608 des Blindsteu­ erfeldes 1000 stets den Wert "Null" besitzt und der Schlüsselfeldzeiger 1001 stets den Wert "Null" annimmt. Darüber hinaus enthält das Feld 606, das Gegenstand des Partialschreibprozesses ist, nur das Datenfeld 601, so daß das Blindsteuerfeld 1000, der Schlüsselfeldzeiger 1001, der Datenfeldzeiger 1002, das Blindsteuerfeld-Flag 1003 und das Datenfeld 601 sämtlich in aufeinanderfolgen­ den Bereichen gespeichert werden.
In Fig. 27 ist die Struktur der Segmentverwaltungsinfor­ mation 500 gemäß der dritten Ausführungsform gezeigt. Der Unterschied gegenüber der in Fig. 9 gezeigten ersten Aus­ führungsform besteht darin, daß die Segmentverwaltungsin­ formation 500 gemäß der dritten Ausführungsform zusätz­ lich die folgenden Informationen enthält: ein Bit 2200, das angibt, ob die Berechnung der Schreibposition möglich ist. wobei dieses Bit angibt, ob die Spur der betreffen­ den Segmentverwaltungsinformation die Bedingungen A bis C erfüllt; und eine feste Datenfeidlänge 2201, die die fe­ ste Länge des Datenfeldes 601 des vom Steuerdatensatz 310 verschiedenen Datensatzes 301 darstellt.
In Fig. 28 ist die Struktur der Schreibverzögerungsinfor­ mation 1100 gezeigt. Der Unterschied gegenüber der in Fig. 13 gezeigten ersten Ausführungsform besteht darin, daß die Schreibverzögerungsinformation 1100 gemäß der dritten Ausführungsform die folgenden Informationen ent­ hält.
Eine Schreibverzögerungs-Startdatensatznummer 2300, die dem folgenden Zweck dient: wenn in der dritten Ausfüh­ rungsform die Positionen zweier Schreibverzögerungsdaten­ sätze 160 auf der Spur 300 um einen vorgegebenen Abstand oder mehr voneinander entfernt sind, wird die Datenüber­ tragung an die Plattenspeichereinheit 24 unterbrochen und ein Positionierungsprozeß ausgeführt, um die Effizienz des Schreibverzögerungsprozesses zu verbessern; daher wird die Datensatznummer 602 des nächsten Schreibverzöge­ rungsdatensatzes 160 als diese Schreibverzögerungs-Start­ datensatznummer gesetzt.
Eine Information 2301 der Inkonsistenz der physikalischen Position des Datensatzes, die gesetzt wird, wenn der Da­ tensatz 301 nicht an der berechneten physikalischen Posi­ tion vorliegt.
Die Struktur des Direktors 25 ist gleich derjenigen der in Fig. 14 gezeigten ersten Ausführungsform; sie ist aus einem Cachespeicher-Partialschreibteil 10, einem Schreib­ verzögerungs-Bereitstellungsteil 11, einem Schreibverzö­ gerungs-Übertragungsteil 12 und einem Schreibverzöge­ rungsfehler-Entscheidungsteil 13 aufgebaut. Die Prozeßab­ läufe, die für jeden dieser Teile gegenüber denjenigen der ersten Ausführungsform verschieden sind, werden im folgenden beschrieben.
In Fig. 29 ist ein Flußdiagramm gezeigt, mit dem die vom Cachespeicher-Partialschreibteil 10 auszuführenden Pro­ zesse erläutert werden. Ähnlich wie im Prozeßablauf gemäß der ersten Ausführungsform enthält auch dieser Prozeßab­ lauf einen Prozeß für den Fall, in dem der zu schreibende Datensatz 301 bereits im Cachespeicher 26 gespeichert ist.
Dieser Prozeßablauf wird ausgeführt, wenn eine Partial­ schreibanforderung zusammen mit der Information, die an­ gibt, daß die zu beschreibende Spur 300 die Bedingungen A bis C erfüllt, empfangen wird.
Der Prozeß wird im folgenden unter besonderer Berücksich­ tigung derjenigen Merkmale, die gegenüber denen der in Fig. 15 gezeigten ersten Ausführungsform verschieden sind, beschrieben.
Im Schritt 2400 wird entsprechend der aus der Bestim­ mungsinformation 3 erhaltenen Datensatznummer und ent­ sprechend der aus der Bestimmungsinformation 6 erhaltenen Schreibdatenmenge die physikalische Position des Daten­ satzes 301 auf der Spur 300 berechnet.
Im Schritt 2401 wird geprüft, ob der durch die berechnete physikalische Position bestimmte Bereich innerhalb des Umfangs einer Spur 300 liegt. Wenn nicht, geht der Prozeß weiter zum Schritt 2412, andernfalls zum Schritt 2402.
Im Schritt 2402 wird geprüft, ob das Segment 400 der zu beschreibenden Spur 300 zugeordnet worden ist. Wenn diese Zuordnung bereits stattgefunden hat, geht der Prozeß wei­ ter zum Schritt 2407, andernfalls zum Schritt 2403.
ln den Schritten 2403 und 2404 wird die zu beschreibende Spur 300 dem Segment 400 und der Segmentverwaltungsinfor­ mation 500 zugeordnet, anschließend wird die Segmentver­ waltungsinformation initialisiert. Diese Prozesse sind ähnlich denjenigen der Schritte 1301 und 1302 in Fig. 15.
Die Prozesse der Schritte 2405 und 2406 werden dann aus­ geführt, wenn für einen Datensatz 301, der nicht im Ca­ chespeicher 26 vorhanden ist, eine Partialschreibanforde­ rung empfangen wird. Diese Prozesse sind denjenigen der Schritte 1303 und 1304 in Fig. 15 ähnlich. Nach Ausfüh­ rung der Verarbeitung im Schritt 2406 geht der Prozeß weiter zum Schritt 2411.
Im Schritt 2407 wird geprüft, ob die Validität der von der Bestimmungsinformation 6 empfangenen Schreibdaten­ menge geprüft werden kann oder nicht. D. h., daß geprüft wird, ob der Direktor 25 die durch die CPU 20 bestimmte Schreibdatenmenge prüfen kann.
Wenn der zu schreibende Datensatz der Steuerdatensatz 310 ist, besitzt die Datenfeldlänge 602 des Steuerdatensatzes 310 auf der Spur 300 wegen der Bedingung C einen bestimm­ ten Referenzwert. Daher ist es möglich, die Validität der Schreibdatenmenge durch Vergleich der durch die CPU 20 bestimmten Schreibdatenmenge mit dem Referenzwert des Da­ tenfeldes 601 des Steuerdatensatzes 310 zu prüfen.
Wenn der zu schreibende Datensatz 301 ein vom Steuerda­ tensatz 310 verschiedener Datensatz ist, ist die Daten­ feldlänge 602 eines jeden vom Steuerdatensatz 310 ver­ schiedenen Datensatzes 301 wegen der Bedingung B gleich. Wenn daher wenigstens ein vom Steuerdatensatz 310 ver­ schiedener Datensatz 301 im Cachespeicher 26 gespeichert wird, ist es möglich, die Validität durch Vergleich der durch die CPU 20 bestimmten Schreibdatenmenge mit der Da­ tenfeldlänge des im Cachespeicher 26 gespeicherten und vom Steuerdatensatz verschiedenen Datensatzes zu prüfen.
Wenn die Validitätsprüfung nicht möglich ist, geht der Prozeß weiter zum Schritt 2409, andernfalls geht der Pro­ zeß weiter zum Schritt 2408.
lm Schritt 2408 wird die Validität der Schreibdatenmenge geprüft. Wenn die Schreibdatenmenge nicht gültig ist, geht der Prozeß weiter zum Schritt 2412, um an die CPU 20 einen Fehler zu melden. Wenn die Schreibdatenmenge ande­ rerseits gültig ist, geht der Prozeß weiter zum Schritt 2409.
Im Schritt 2409 wird geprüft, ob der zu schreibende Da­ tensatz 301 im Cachespeicher 26 gespeichert ist. Dieser Schritt ist ähnlich dem in Fig. 15 gezeigten Schritt 1305. Wenn der Datensatz 301 nicht gespeichert ist, geht der Prozeß weiter zum Schritt 2405, andernfalls zum Schritt 2410.
Im Schritt 2410 werden die vom Kanal 22 empfangenen Daten in das Datenfeld 601 des Cachespeichers 26 geschrieben.
Im Schritt 2411 wird die für die Segmentverwaltungsinfor­ mation 500 erforderliche lnformation aktualisiert, an­ schließend wird der Abschluß des Schreibprozesses über den Kanal 22 an die CPU 20 gemeldet, schließlich wird der Prozeß beendet.
Im Schritt 2412 wird der CPU 20 über den Kanal 22 gemel­ det, daß die Schreibdatenmenge nicht gültig ist, an­ schließend wird der Prozeß beendet.
In Fig. 30 ist ein Flußdiagramm gezeigt, das die vom Schreibverzögerungs-Bereitstellungsteil 11 auszuführenden Prozesse erläutert. Diese Prozesse werden während einer Leerzeit des Direktors 25 ausgeführt.
Der Prozeß im Schritt 2500 ist ähnlich demjenigen des Schrittes 1500 der in Fig. 16 gezeigten ersten Ausfüh­ rungsform.
Im Schritt 2501 wird aus der der Zielspur 300 entspre­ chenden Segmentverwaltungsinformation 500 die kleinste Datensatznummer 602 ausgesucht, deren Aktualisierungs-Da­ tensatzzeiger 807 nicht den Wert "Null" besitzt, an­ schließend wird diese Datensatznummer 602 als Schreibver­ zögerungs-Startdatensatznummer 2300 gesetzt. Da der Schreibverzögerungsdatensatz 160 in der Reihenfolge aus­ gewählt wird, die bei der kleinsten Datensatznummer 602 beginnt, kann der Schreibprozeß wegen der Bedingung A in der der Drehrichtung der Platte 308 entgegengesetzten Richtung fortschreiten, wodurch die Effizienz des Schreibprozesses verbessert wird.
Im Schritt 2502 wird für die zu beschreibende Spur 300 eine Positionierungsanforderung an die entsprechende Da­ tenspeichereinheit 24 ausgegeben.
In Fig. 31 ist ein Flußdiagramm gezeigt, das die vom Schreibverzögerungs-Übertragungsteil 12 auszuführenden Prozesse erläutert. Dieser Prozeßablauf wird ausgeführt, wenn die im Schritt 2502 an die Plattenspeichereinheit 24 ausgegebene Positionierungsanforderung, die in Fig. 30 gezeigt ist, abgeschlossen ist.
Im Schritt 2600 wird als erster zu schreibender Schreib­ verzögerungsdatensatz 160 derjenige ausgewählt, auf den der der Schreibverzögerungs-Startdatensatznummer 2300 entsprechende Aktualisierungs-Datensatzzeiger 807 zeigt.
Im Schritt 2601 wird die physikalische Schreibposition des dem Aktualisierungs-Datensatzzeiger 807 entsprechen­ den Schreibverzögerungsdatensatzes 160 auf der Spur 300 berechnet.
Im Schritt 2602 wird geprüft, ob der Datensatz 301 inner­ halb eines vorgegebenen Bereichs um die berechnete physi­ kalische Position gespeichert ist. Wenn der Datensatz 301 nicht innerhalb dieses Bereichs gespeichert ist, geht der Prozeß weiter zum Schritt 2610, andernfalls zum Schritt 2603.
Im Schritt 2603 wird das Steuerfeld 601 des gespeicherten Datensatzes 301 gelesen.
Im Schritt 2604 wird die Datensatznummer 602 des ausgele­ senen Steuerfeldes mit der Datensatznummer 602 des Blind­ steuerfeldes 1000 oder des Steuerfeldes 600, auf den der Aktualisierungs-Datensatzzeiger 807 zeigt, verglichen. Wenn die beiden Datensatznummern 602 nicht übereinstim­ men, bedeutet dies einen Fehler, so daß der Prozeß zum Schritt 2612 geht. Wenn die beiden Datensatznummern 602 übereinstimmen, geht der Prozeß zum Schritt 2605. Im Schritt 2605 wird die Datenfeldlänge 603 des ausgelesenen Steuerfeldes 601 mit dem Datenfeld 603 des Blindssteuer­ feldes 1000 oder mit dem Steuerfeld 600, auf das der Ak­ tualisierungs-Datensatzzeiger 807 zeigt, verglichen. Wenn die beiden Datenfeldlängen nicht übereinstimmen, bedeutet dies einen Fehler, so daß der Prozeß weitergeht zum Schritt 2611. Wenn andererseits die beiden Datenfeldlän­ gen übereinstimmen, geht der Prozeß weiter zum Schritt 2606.
Im Schritt 2606 werden die Schreibverzögerungsdaten 160 in die Spur 300 geschrieben.
Im Schritt 2607 wird der Aktualisierungs-Datensatzzeiger 807 gesucht, der auf die nächstgrößere Datensatznummer 5602, die vom Wert "Null" verschieden ist, zeigt. Wenn kein geeigneter Aktualisierungs-Datensatzzeiger 807 ge­ funden werden kann, bedeutet dies, daß sämtli­ che Schreibverzögerungsdatensätze 160 für die betreffende Spur 300 geschrieben worden sind, so daß der Prozeß wei­ tergeht zum Schritt 2613. Wenn ein geeigneter Aktualisie­ rungs-Datensatzzeiger 807 gefunden werden kann, geht der Prozeß zum Schritt 2608.
Im Schritt 2608 wird geprüft, ob der Abstand zum Daten­ satz 301, auf den der gesuchte Aktualisierungs-Datensatz­ zeiger 807 zeigt, gleich oder größer als ein vorgegebener Wert ist. Wenn der Abstand kleiner als der vorgegebene Wert ist, kehrt der Prozeß zum Schritt 2601 zurück, um die oben beschriebenen Prozesse für den Datensatz 301, auf den der gesuchte Aktualisierungs-Datensatzzeiger 807 zeigt, erneut auszuführen. Wenn der Abstand gleich oder größer als der vorgegebene Wert ist, geht der Prozeß wei­ ter zum Schritt 2609.
Im Schritt 2609 wird an die Plattenspeichereinheit 400 eine Positionierungsanforderung ausgegeben, um anschlie­ ßend den Schreibverzögerungsprozeß zu unterbrechen. In diesem Fall wird die Datensatznummer 602 des als nächstes zu schreibenden Datensatzes als Schreibverzögerungs- Startdatensatznummer 2300 gesetzt, ferner wird die für die Segmentverwaltungsinformation 500 erforderliche In­ formation aktualisiert.
Im Schritt 2610 wird die Information 2301 der Inkonsi­ stenz der physikalischen Position des Datensatzes ge­ setzt, anschließend geht der Prozeß weiter zum Schritt 2614.
Im Schritt 2611 wird die Information 1204 der Feldlän­ geninkonsistenz gesetzt, anschließend geht der Prozeß weiter zum Schritt 2614.
Die Schritte 2612 bis 2614 sind gleich den in Fig. 17 ge­ zeigten Schritten 1508 bis 1510. In diesen Schritten 2612 bis 2614 werden die Information 1203 der Datensatznummer­ ninkonsistenz gesetzt, die Segmentverwaltungsinformation 500 aktualisiert und das Schreibverzögerungsprozeß-Flag 1200 zurückgesetzt.
In Fig. 32 ist ein Flußdiagramm gezeigt, das die vom Schreibverzögerungsfehler-Entscheidungsteii 13 auszufüh­ renden Prozesse erläutert. Dieser Prozeßablauf wird aus­ geführt, wenn von der CPU 20 über den Kanal 22 eine Ein­ gabe/Ausgabe-Anforderung empfangen wird, ähnlich wie in dem in Fig. 18 gezeigten Prozeßablauf der ersten Ausfüh­ rungsform.
Im Schritt 2700 wird geprüft, ob in der Schreibverzöge­ rungsinformation 1100 der Plattenspeichereinheit 24, für die die Eingabe/Ausgabe-Anforderung ausgegeben wurde, eine Information 1203 der Datensatznummerninkonsistenz, eine Information 1204 der Feldlängeninkonsistenz oder eine Information 2301 der Inkonsistenz der physikalischen Position des Datensatzes gesetzt ist. Wenn keine dieser Informationen gesetzt ist, ist der Prozeßablauf beendet. Wenn irgendeine der genannten Informationen gesetzt ist, geht der Prozeß weiter zum Schritt 2701, in dem an die CPU 20 ein Fehler gemeldet wird.
Nun wird mit Bezug auf die Fig. 35 bis 41 eine vierte Ausführungsform der vorliegenden Erfindung beschrieben. Wenn in der vierten Ausführungsform der zu schreibende Datensatz 301 nicht im Cachespeicher 26 gespeichert ist, stellt der Direktor 25 entsprechend der von der Steuereinheit 23 gehaltenen Information fest, daß Daten in den Cachespeicher 26 geschrieben werden müssen, so daß der Schreibprozeß auf dieser Stufe abgeschlossen ist. Darüber hinaus ist die Verbesserung der Effizienz des Schreibverzögerungsprozesses aufgrund der Berechnung der physikalischen Schreibposition des zu schreibenden Daten­ satzes 301 auf die Spur 300 beabsichtigt.
Die von der Steuereinheit 23 gehaltene Information ist eine Information, die angibt, ob jede Spur 300 die Bedin­ gungen A bis C erfüllt.
In Fig. 35 ist ein detailliertes Blockschaltbild eines Informationsverarbeitungssystems gemäß der vierten Aus­ führungsform gezeigt. Die Merkmale, durch die sich die vierte Ausführungsform von der in Fig. 26 gezeigten drit­ ten Ausführungsform unterscheidet, werden im folgenden angegeben: Erstens umfaßt die Bestimmungsinformation 3500 von der CPU 20 keine Bestimmungsinformation 7; zweitens wird im Schreibverzögerungsspeicher 27 die Information gespeichert, die angibt, ob jede Spur 300 der Platten­ speichereinheit 24 die Bedingungen A bis C erfüllt; und drittens wird vom Direktor 25 unter Verwendung der im Schreibverzögerungsspeicher 27 gespeicherten Information die Ausführungsbedingung c 3410 geprüft.
Der Cachespeicher 26, das Verzeichnis 28, die Segmentver­ waltungsinformation 500, die Spurtabelle 501 und der Leersegmentwarteschlangen-Kopfzeiger 502 besitzen sämt­ lich die gleiche Struktur wie diejenigen in den Fig. 6, 8, 27, 10 bzw. 11.
In Fig. 36 ist die Struktur des Schreibverzögerungsspei­ chers 27 gemäß der vierten Ausführungsform gezeigt. Die vierte Ausführungsform unterscheidet sich von der in Fig. 20 gezeigten dritten Ausführungsform dadurch, daß an­ stelle der Schreibverzögerungsspurinformation ª 1700 für jede Plattenspeichereinheit 24 eine Schreibverzögerungs­ spurinformation b 2800 vorgesehen ist.
In Fig. 37 ist die Struktur der Schreibverzögerungs­ spurinformation b 2800 gezeigt. Diese Information enthält die folgenden Informationen, die für jede Spur 300 in der Plattenspeichereinheit 24 vorgesehen sind.
Den Spurzustand b 2900, der eine Information darstellt, die angibt, ob die betreffende Spur 300 die Bedingungen A bis C erfüllt oder die angibt, daß ungewiß ist, ob die Spur 300 die Bedingungen erfüllt.
Die Information 2901 der festen Datenfeldlänge ist eine Information über die Länge des Datenfeldes 601, wobei die Länge für sämtliche Datensätze 301 die gleiche ist, falls die Spur 300 die Bedingungen A bis C erfüllt.
In Fig. 38 ist der Zustandsübergang für den Spurzustand b 2900 gezeigt. Der Übergang zwischen den Zuständen b 2900 wird auf ähnliche Weise wie bei der Spurinformation ª 1800 der in Fig. 22 gezeigten zweiten Ausführungform aus­ geführt. Wenn während eines Zustandes 401, in dem ungewiß ist, ob die Spur 300 die Bedingungen A bis C erfüllt, eine Partialschreibanforderung empfangen wird, wird ge­ prüft, ob die Spur 300 die Bedingungen A bis C erfüllt, anschließend wird das Prüfergebnis im Spurzustand b 2900 gespeichert. Wenn für die Spur 300 eine Formatschreiban­ forderung empfangen wird, wird der Spurzustand b 2900 in den Zustand 401 versetzt, in dem ungewiß ist, ob die Spur 300 die Bedingungen A bis C erfüllt.
Die Reihenfolge des Speicherns der Spurinformation b 2900 und der Information 2901 der festen Datenfeldlänge findet in der Reihenfolge der Spurnummern statt, wie dies für die Spurinformation ª 1800 der in Fig. 22 gezeigten zwei­ ten Ausführungsform der Fall ist.
Die Struktur des Direktors 25 ist derjenigen der in Fig. 23 gezeigten zweiten Ausführungform ähnlich.
Die Prozeßabläufe für den Schreibverzögerungs-Bereitstel­ lungsteil 11, für den Schreibverzögerungs-Übertragungs­ teil 12 und für den Schreibverzögerungsfehler-Entschei­ dungsteil 13 sind ähnlich denjenigen der in den Fig. 30 bis 32 gezeigten dritten Ausführungsform. Andererseits sind die Prozeßabläufe für den Cachespeicher-Partial­ schreibteil 10 für den Schreibverzögerungsspurinforma­ tion-Verwaltungsteil ª 14 und für den Schreibverzöge­ rungsspurinformation-Verhaltungsteil b 15 verschieden, so daß diese im folgenden beschrieben werden.
In Fig. 39 ist ein Flußdiagramm gezeigt, das die vom Ca­ chespeicher-Partialschreibteil 10 auszuführenden Prozesse erläutert. Ähnlich dem Prozeßablauf der in Fig. 15 ge­ zeigten ersten Ausführungsform enthält auch dieser Pro­ zeßablauf einen Prozeß für den Fall, in dem der zu schreibende Datensatz 301 bereits im Cachespeicher 26 ge­ speichert ist.
Dieser Prozeßablauf wird ausgeführt, wenn der Direktor 25 von der CPU 20 über den Kanal 22 eine Partialschreiban­ forderung empfängt und der Spurzustand b 2900 der zu be­ schreibenden Spur den Zustand 402 angibt, gemäß dem die Spur die Bedingungen A bis C erfüllt.
Im Schritt 3000 wird geprüft, ob die von der CPU 20 ge­ lieferte Schreibdatenmenge gültig ist. Selbst wenn das Segment 400 der zu beschreibenden Spur 300 nicht zugeord­ net ist, ist es in dieser vierten Ausführungsform mög­ lich, die Validität der Schreibdatenmenge anhand des Wer­ tes der Information 2901 der festen Datenfeldlänge zu prüfen. Wenn die Schreibdatenmenge nicht gültig ist, geht der Prozeß weiter zum Schritt 3011. Wenn die Schreibda­ tenmenge gültig ist, geht der Prozeß zum Schritt 3001.
Die Prozesse des Schrittes 3001 und der darauf folgenden Schritte sind dem in Fig. 29 gezeigten Prozeßablauf ana­ log. D. h., daß die Schritte 3001 bis 3007 den Schritten 2400 bis 2406 in Fig. 29 entsprechen, während die Schritte 3008 bis 3011 den Schritten 2409 bis 2412 in Fig. 29 entsprechen.
ln den Fig. 40A und 40B sind Flußdiagramme gezeigt, die die vom Schreibverzögerungsspurinformation-Verwaltungs­ teil auszuführenden Prozesse erläutern. Die Merkmale, durch die die vierte Ausführungsform von der in den Fig. 24A und 24B gezeigten dritten Ausführungsform verschieden sind, bestehen darin, daß die in den Fig. 24A und 24B ge­ zeigten Prozeßabläufe mit der Schreibverzögerungsspurin­ formation ª 1700 arbeiten, während der in den Fig. 40A und 40B gezeigte Prozeßablauf mit der Schreibverzöge­ rungsspurinformation b 2800 arbeitet.
Der in Fig. 40A gezeigte Prozeß wird in dem Moment ausge­ führt, der dem Moment entspricht, in dem der in Fig. 24A gezeigte Prozeß ausgeführt wird.
Im Schritt 3100 wird für die zu beschreibende Spur 300 eine Positionierungsanforderung ausgegeben.
Der in Fig 40B gezeigte Prozeß wird ausgeführt, wenn die im Schritt 3100 ausgegebene Positionierungsanforderung abgeschlossen ist.
Im Schritt 3101 werden sämtliche Datensätze 301 auf der zu beschreibenden Spur 300 gelesen, um zu prüfen, ob die Spur die Bedingungen A bis C erfüllt.
Im Schritt 3102 wird das Prüfergebnis des Schrittes 3101 im Spurzustand b 2900 für die Spur 300 gespeichert. Wenn die Bedingungen A bis C erfüllt sind, wird die Länge des Datenfeldes 601 in der Information 2901 der festen Daten­ feldlänge gesetzt; anschließend ist der Prozeß beendet.
In Fig. 41 ist ein Flußdiagramm gezeigt, das die vom Schreibverzögerungsspurinformation-Verwaltungsteil b 15 auszuführenden Prozesse erläutert. Der Unterschied zwi­ schen dem in Fig. 41 gezeigten Prozeß und dem in Fig. 25 gezeigten Prozeß der dritten Ausführungform besteht darin, daß der letztere mit der Schreibverzögerungs­ spurinformation ª 1700 arbeitet, während der erstere mit der Schreibverzögerungsspurinformation b 2800 arbeitet.
Der in Fig. 41 gezeigte Prozeß wird in dem Zeitpunkt aus­ geführt, der dem Zeitpunkt entspricht, zu dem der in Fig. 25 gezeigte Prozeß ausgeführt wird.
Im Schritt 3200 wird der Spurzustand b 2900 der zu be­ schreibenden Spur 300 auf den Zustand 401 zurückgesetzt, in dem ungewiß ist, ob die Spur 300 die Bedingungen A bis C erfüllt.
In der dritten und in der vierten Ausführungsform wird der Kontinuität der Position der im Cachespeicher 26 zu speichernden Datensätze keinerlei Beachtung geschenkt. Wenn jedoch die Einschränkung eingeführt wird, daß die Datensätze 301, die sich auf der Spur 300 an aufeinander­ folgenden physikalischen Positionen befinden, auch im Segment an aufeinanderfolgenden physikalischen Positionen gespeichert werden, kann die Cachesteuerung auf leichtere Weise ausgeführt werden. Eine solche Einschränkung wird Konsekutivspeicherungseinschränkung genannt. Wenn, wie in Fig. 42 gezeigt, beispielsweise angenommen wird, daß ein Datensatz m 3600 und ein Datensatz n 3601 auf der Spur 300 an aufeinanderfolgenden physikalischen Positionen vorliegen, tritt oft der Fall auf, daß die CPU 20 eine Anforderung ausgibt, daß der Datensatz m 3600 und der Da­ tensatz n 3601 auf der Spur 300 an aufeinanderfolgenden physikalischen Positionen konsekutiv gelesen werden soll. Wenn der Datensatz m 3600 und der Datensatz n 3601 im Segment 400 aufeinanderfolgend gespeichert sind, kann der Direktor 25 einfach einen bestimmten Bereich im Segment 400 lesen und die Daten an die CPU 20 schicken. D. h., daß bei der Übertragung des Datensatzes n 3601 von der Steuereinheit 23 zur CPU 20 die Ausführung eines Prozes­ ses der Bezugnahme auf den Datensatzzeiger n 3603 der Segmentverwaltungsinformation 500 nicht erforderlich ist.
Wenn der Direktor 25 den Schreibprozeß beenden kann, wenn die Daten in den Cachespeicher 26 geschrieben worden sind, ist es für die Einführung der Konsekutivspeiche­ rungseinschränkung ausreichend, daß die folgenden drei Konsekutivspeicherungsbedingungen 1 bis 3 erfüllt sind.
Konsekutivspeicherungsbedingung 1: Der Datensatz 301 auf der zu beschreibenden Spur 300 ist nicht im Cachespeicher 26 gespeichert; die Konsekutivspeicherungseinschränkung kann in diesem Fall erzielt werden, weil der Direktor 25 einen zu schreibenden Datensatz k 4300 in einem neu er­ stellten Segment 400 speichert, wie in Fig. 43A gezeigt ist.
Konsekutivspeicherungsbedingung 2: Der zu schreibende Da­ tensatz 301 ist derselbe Datensatz 301, der bereits im Cachespeicher 26 gespeichert ist; die Konsekutivspeiche­ rungseinschränkung kann in diesem Fall erzielt werden, weil die Daten bereits in einem gespeicherten Datensatz k 4300 geschrieben sind, um die Inhalte des Datensatzes zu aktualisieren, wie in Fig. 43B gezeigt ist.
Konsekutivspeicherungsbedingung 3: Der zu schreibende Da­ tensatz 301 besitzt die Datensatznummer 602, die um den Wert "Eins" größer als die maximale Datensatznummer des bereits im Cachespeicher 26 gespeicherten Datensatzes 301 der Speicherspur 300 ist. D. h., daß die Datensatznummer 602 des zu schreibenden Datensatzes dem bereits im Cache­ speicher 26 gespeicherten Datensatz 301 nachfolgt. Die Konsekutivspeicherungseinschränkung kann in diesem Fall erzielt werden, weil der Direktor 25 bewirkt, daß ein Da­ tensatz k 4300 im Bereich nach dem bereits im Segment 400 gespeicherten Datensatz 301 (..., k-1) gespeichert wird, wie in Fig. 43C gezeigt ist.
Die Konsekutivspeicherungseinschränkung ist sowohl auf den Fall anwendbar, in dem die CPU 20 die Information liefert, die angibt, ob die zu beschreibende Spur 300 die Bedingungen A bis C erfüllt (dritte Ausführungsform), als auch auf den Fall, in dem die Steuereinheit 23 für jede Spur 300 die Information hält, die angibt, ob die zu be­ schreibende Spur 300 die Bedingungen A bis C erfüllt (vierte Ausführungsform). Wenn die Konsekutivspeiche­ rungseinschränkung eingeführt wird, ändert sich nur die Segmentverwaltungsinformation 500.
In Fig. 44 ist die Struktur der Segmentverwaltungsinfor­ mation 500 gezeigt, wenn die Konsekutivspeicherungsein­ schränkung gemäß der fünften Ausführungsform eingeführt wird. Das gegenüber der in Fig. 27 gezeigten dritten Auf­ führungsform unterschiedliche Merkmal besteht darin, daß eine cacheinterne maximale Datensatznummer 3700 vorgese­ hen ist. Diese cacheinterne maximale Datensatznummer gibt die maximale Datensatznummer 602 der im Cachespeicher 26 gespeicherten Datensätze 301 an.
Die in den Fig. 29 bis 32 und 39 bis 41 gezeigten Prozeß­ abläufe sind auf diese Ausführungsform anwendbar, mit der Ausnahme, daß die von den Cachespeicher-Partialschreib­ teilen 10 in den Fig. 29 und 39 augeführten Prozesse zu verschiedenen Zeiten ausgeführt werden. D. h., daß die Prozeßabläufe dann ausgeführt werden, wenn die zu be­ schreibende Spur 300 die Bedinuungen A bis C und die Kon­ sekutivspeicherungsbedingungen 1 bis 3 erfüllen.
In dem erfindungsgemäßen Cachespeicher-Steuerverfahren und der erfindungsgemäßen Cachespeicher-Steuervorrichtung ist es selbst dann, wenn der einem Partialschreibprozeß unterworfene Datensatz nicht im Cachespeicher gespeichert ist, möglich, den Schreibprozeß zu einem Zeitpunkt zu beenden, wenn die Daten in den Cachespeicher geschrieben worden sind. Folglich ist eine Beschleunigung des Schreibprozesses unter Verwendung eines Cachespeichers für einen großen Anwendungsbereich möglich. Ferner kann die Effizienz des Schreibprozesses verbessert werden, in­ dem die physikalische Position eines Datensatzes berech­ net wird.

Claims (26)

1. Cachespeicher-Steuerverfahren für ein Informa­ tionsverarbeitungssystem, mit einer Datenverarbeitungs­ einheit (200), einer Steuereinheit (23) für einen Cachespeicher (26) und einer Speichereinheit (24) zum Speichern eines Datensatzes (301), wobei die Daten­ verarbeitungseinheit (200), die Steuereinheit (23) und die Speichereinheit (24) jeweils miteinander verbunden sind, dadurch gekennzeichnet, daß die Steuereinheit (23)
  • a) von der Datenverarbeitungseinheit (200) eine Schreibanforderung für einen zu schreibenden Datensatz empfängt;
  • b) von der Datenverarbeitungseinheit (200) in den Zieldatensatz (301) zu schreibende Daten empfängt, falls der zu schreibende Datensatz nicht im Cachespeicher (26) gespeichert ist;
  • c) die empfangenen Daten in den Cachespeicher (26) speichert;
  • d) der Datenverarbeitungseinheit (200) den Ab­ schluß des Datenschreibprozesses meldet;
  • e) prüft, ob der Zieldatensatz (301), in den die im Cachespeicher (26) gespeicherten Daten geschrieben werden sollen, in der Speichereinheit (24) gespeichert ist oder nicht; und
  • f) die im Cachespeicher (26) gespeicherten Daten in den Zieldatensatz (301) der Speichereinheit (24) spei­ chert, falls der Datensatz gespeichert ist, während sie die im Cachespeicher (26) gespeicherten Daten nicht in den Zieldatensatz (301) schreibt und diesen Sachverhalt an die Datenverarbeitungseinheit (200) meldet, falls der Datensatz nicht in der Speichereinheit (24) gespeichert ist.
2. Cachespeicher-Steuerverfahren für ein Informa­ tionsverarbeitungssystem, mit einer Datenverarbeitungs­ einheit (200), einer Steuereinheit (23) für einen Cachespeicher (26) und einer Speichereinheit (24) zum Speichern eines ein Steuerfeld (600) einschließlich einer Datensatznummer (602) aufweisenden Datensatzes (301), wobei die Datenverarbeitungseinheit (200), die Steuereinheit (23) und die Speichereinheit (24) jeweils miteinander verbunden sind, dadurch gekennzeichnet, daß die Steuereinheit (23) folgende Schritte ausführt:
  • a) Empfangen einer Schreibanforderung von der Datenverarbeitungseinheit (200), wobei die Schreibanfor­ derung eine Datensatzbestimmungsinformation (100; 1-3) zum Bestimmen eines zu beschreibenden Datensatzes, eine Feldbestimmungsinformation (100; 4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes und eine Prozeß­ modusbestimmungsinformation (100; 5) zum Bestimmen eines Prozeßmodus, der ausgeführt wird, wenn der zu schreibende Datensatz nicht im Cachespeicher (26) gespeichert ist, enthält;
  • b) Empfangen von in das bestimmte Feld zu schreibenden Daten entsprechend dem durch die Prozeßbe­ stimmungsinformation (100; 5) bestimmten Prozeßmodus, falls der zu schreibende und durch die Datensatzbestim­ mungsinformation (100; 1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespeichert ist und falls das zu schreibende und durch die Feldbestimmungsinformation (100; 4) bestimmte Feld das Steuerfeld (600) nicht ent­ hält;
  • c) Speichern der Daten in den Cachespeicher (26); und
  • d) Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
3. Cachespeicher-Steuerverfahren für ein Informa­ tionsverarbeitungssystem, mit einer Datenverarbeitungs­ einheit (200), einer Steuereinheit (23) für einen Cachespeicher (26) und einer Speichereinheit (24) mit einer Mehrzahl von physikalischen Bereichen zum Speichern eines Datensatzes (301), der ein eine Datensatznummer (602) enthaltendes Steuerfeld (600) besitzt, wobei die Datenverarbeitungseinheit (200), die Steuereinheit (23) und die Speichereinheit (24) jeweils miteinander verbunden sind, dadurch gekennzeichnet, daß die Steuereinheit (23) für jeden physikalischen Bereich eine Strukturbe­ dingungsinformation hält, die angibt, ob die Strukturbe­ dingung, daß in dem physikalischen Bereich keine gedop­ pelte Datensatznummer (602) des Datensatzes (301) vor­ liegt, erfüllt ist; und die folgenden Schritte ausführt:
  • a) Empfangen einer Schreibanforderung von der Datenverarbeitungseinheit (200), wobei die Schreibanfor­ derung eine Datensatzbestimmungsinformation (3300; 1-3) zum Bestimmen eines zu schreibenden Datensatzes und eine Feldbestimmungsinformation (3300; 4) zum Bestimmen eines in den Datensatz (301) zu schreibenden Feldes enthält;
  • b) Empfangen von in das bestimmte Feld (601) zu schreibenden Daten von der Datenverarbeitungseinheit (200), falls der zu schreibende und durch die Datensatz­ bestimmungsinformation (3300; 1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsinformation (3300; 4) bestimmte Feld das Steuerfeld (600) nicht ent­ hält und falls die Strukturbedingung erfüllt ist;
  • c) Speichern der Daten in den Cachespeicher (26); und
  • d) Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
4. Cachespeicher-Steuerverfahren gemäß Anspruch 2, dadurch gekennzeichnet, daß die Steuereinheit (23) nach dem Empfang der Daten von der Datenverarbeitungseinheit (200) und dem Speichern der Daten in den Cachespeicher (26) die folgenden Schritte ausführt:
  • e) Suchen des zu schreibenden Datensatzes in der Speichereinheit (24); und
  • f) entweder Schreiben der im Cachespeicher (26) geschriebenen Daten in den gesuchten Datensatz, falls der Datensatz gefunden worden ist, oder Unterlassen des Schreibens der im Cachespeicher (26) gespeicherten Daten und Melden dieses Sachverhaltes an die Datenverarbei­ tungseinheit (200), falls der Datensatz nicht gefunden worden ist.
5. Cachespeicher-Steuerverfahren gemäß Anspruch 4, dadurch gekennzeichnet, daß
das Steuerfeld (600) eine Information (603) ent­ hält, die die Länge eines vom Steuerfeld (600) verschie­ denen Feldes angibt;
im Schritt (c) zusätzlich zur Speicherung der Da­ ten im Cachespeicher (26) die Länge der Daten gespeichert wird; und
im Schritt (f) die Information (603), die die Länge eines vom Steuerfeld (600) verschiedenen Feldes des gefundenen Datensatzes angibt, mit der im Schritt (c) ge­ speicherten Datenlänge verglichen wird, wobei die im Ca­ chespeicher (26) gespeicherten Daten in den aufgefundenen Datensatz geschrieben werden, falls die Längen überein­ stimmen, und wobei die im Cachespeicher (26) gespeicher­ ten Daten nicht geschrieben werden und dieser Sachverhalt an die Datenverarbeitungseinheit (200) gemeldet wird, falls die Längen nicht übereinstimmen.
6. Cachespeicher-Steuerverfahren gemäß Anspruch 3, dadurch gekennzeichnet, daß die Steuereinheit (23) den folgenden Schritt ausführt:
  • i) Prüfen, ob der physikalische Bereich die Strukturbedingung erfüllt und Halten des Prüfergebnisses als neue Strukturbedingungsinformation, falls das zu schreibende und durch die Feldbestimmungsinformation (3300; 4) bestimmte Feld das Steuerfeld (600) nicht ent­ hält und falls die Strukturbedingungsinformation für den physikalischen Bereich, in dem der zu schreibende Daten­ satz gespeichert ist, einen Zustand angibt, daß ungewiß ist, ob die Bedingung erfüllt ist oder nicht.
7. Cachespeicher-Steuerverfahren gemäß Anspruch 6, dadurch gekennzeichnet, daß die Steuereinheit (23) den folgenden Schritt ausführt:
  • j) Halten eines Zustandes, in dem ungewiß ist, ob der physikalische Bereich die Strukturbedingung er­ füllt, als Strukturbedingungsinformation für den den zu schreibenden Datensatz speichernden physikalischen Be­ reich, falls das zu schreibende und durch die Feldbestim­ mungsinformation (3300; 4) bestimmte Feld das Steuerfeld (600) nicht enthält.
8. Cachespeicher-Steuerverfahren für ein Informa­ tionsverarbeitungssystem, mit einer Datenverarbeitungs­ einheit (200), einer Steuereinheit (23) für einen Cachespeicher (26) und einer Speichereinheit (24), die eine Mehrzahl von physikalischen Bereichen zum Speichern eines Datensatzes (301), der ein eine Datensatznummer (602) enthaltendes Steuerfeld (600) besitzt, wobei die Datenverarbeitungseinheit (200), die Steuereinheit (23) und die Speichereinheit (24) jeweils miteinander verbunden sind, dadurch gekennzeichnet, daß die Steuereinheit (23) die folgenden Schritte ausführt:
  • a) Empfangen einer Schreibanforderung von der Datenverarbeitungseinheit (200), wobei die Schreibanfor­ derung eine Datensatzbestimmungsinformation (3400; 1-3) zum Bestimmen eines zu schreibenden Datensatzes, eine Feldbestimmungsinformation (3400; 4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes und eine Struk­ turbedingungsinformation (3400; 7) enthält, wobei die Strukturbedingungsinformation (3400; 7) angibt, ob fol­ gende Strukturbedingungen erfüllt sind: die Datensatznum­ mer des Datensatzes am Beginn des physikalischen Bereichs zum Speichern von Datensätzen ist "Null" und die Nummern der folgenden Datensätze sind in aufsteigender Folge, je­ weils um "Eins" erhöht gegeben; jeder Datensatz hat ein vom Steuerfeld (600) verschiedenes Feld; die Längen der vom Steuerfeld (600) verschiedenen Felder eines jeden Da­ tensatzes mit der Datensatznummer "Eins" oder größer sind gleich; und das vom Steuerfeld (600) verschiedene Feld des Datensatzes mit der Datensatznummer "Null" besitzt eine vorgegebene Länge;
  • b) Empfangen von Daten von der Datenverarbei­ tungseinheit (200), die in das bestimmte Feld geschrieben werden sollen, falls der zu schreibende und durch die Da­ tensatzbestimmungsinformation (3400; 1-3) bestimmte Da­ tensatz nicht im Cachespeicher (26) gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsin­ formation (3400; 4) bestimmte Feld das Steuerfeld (600) nicht enthält und falls die Strukturbedingung erfüllt ist;
  • c) Speichern der Daten in den Cachespeicher (26); und
  • d) Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
9. Cachespeicher-Steuerverfahren für ein Informa­ tionsverarbeitungssystem, mit einer Datenverarbeitungs­ einheit (200), einer Steuereinheit (23) für einen Cachespeicher (26) und einer Speichereinheit (24) mit einer Mehrzahl von physikalischen Bereichen zum Speichern eines Datensatzes (301), der ein eine Datensatznummer (602) enthaltendes Steuerfeld (600) besitzt, wobei die Datenverarbeitungseinheit (200), die Steuereinheit (23) und die Speichereinheit (24) jeweils miteinander verbunden sind, dadurch gekennzeichnet, daß die Steuereinheit (23)
für jeden physikalischen Bereich eine Strukturbe­ dingungsinformation hält, die angibt, ob folgende Struk­ turbedingungen erfüllt sind: die Datensatznummer des Da­ tensatzes am Beginn des physikalischen Bereichs zum Spei­ chern des Datensatzes ist "Null" und die Nummern der fol­ genden Datensätze sind in aufsteigender Folge, jeweils um "Eins" erhöht, gegeben; jeder Datensatz hat ein vom Steu­ erfeld (600) verschiedenes Feld; die Längen der vom Steu­ erfeld (600) verschiedenen Felder eines jeden Datensatzes mit der Datensatznummer "Eins" oder größer sind gleich; und das vom Steuerfeld (600) verschiedene Feld des Daten­ satzes mit der Datensatznummer "Null" besitzt eine vorge­ gebene Länge; und
die folgenden Schritte ausführt:
  • a) Empfangen einer Schreibanforderung von der Datenverarbeitungseinheit (200), wobei die Schreibanfor­ derung eine Datensatzbestimmungsinformation (3500; 1-3) zum Bestimmen eines zu schreibenden Datensatzes und eine Feldbestimmungsinformation (3500; 4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes enthält;
  • b) Empfangen von in das bestimmte Feld zu schreibenden Daten von der Datenverarbeitungseinheit (200), falls der zu schreibende und durch die Datensatz­ bestimmungsinformation (3500; 1-3) bestimmte Datensatz nicht im Cachespeicher gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsinformation (3500; 4) bestimmte Feld das Steuerfeld (600) nicht ent­ hält und falls die Strukturbedingung erfüllt ist;
  • c) Speichern der Daten in den Cachespeicher (26); und
  • d) Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
10. Cachespeicher-Steuerverfahren gemäß Anspruch 8, dadurch gekennzeichnet, daß die Steuereinheit (23) nach dem Empfang der Daten von der Datenverarbeitungseinheit (200) und dem Speichern der Daten im Cachespeicher (26) die folgenden Schritte ausführt:
  • e) Suchen des zu schreibenden Datensatzes in der Speichereinheit (24); und
  • f) entweder Schreiben der im Cachespeicher (26) gespeicherten Daten in den Datensatz, falls der Datensatz gefunden wurde, oder Unterlassen des Schreibens der im Cachespeicher (26) gespeicherten Daten und Melden dieses Sachverhaltes an die Datenverarbeitungseinheit (200), falls der Datensatz nicht gefunden wurde.
11. Cachespeicher-Steuerverfahren gemäß Anspruch 10, dadurch gekennzeichnet, daß
das Steuerfeld (600) eine Information (603) ent­ hält, die die Länge eines vom Steuerfeld (600) verschie­ denen Feldes angibt;
im Schritt (c), in dem die Daten in den Cache­ speicher (26) gespeichert werden, außerdem die Länge der Daten gespeichert wird; und
im Schritt (f) die Information (603), die die Länge eines vom Steuerfeld (600) des aufgefundenen Daten­ satzes angibt, mit der Information der im Schritt (c) ge­ speicherten Datenlänge verglichen wird und, falls die Längen übereinstimmen, die im Cachespeicher (26) gespei­ cherten Daten in den aufgefunden Datensatz geschrieben werden oder, falls die Längen nicht übereinstimmen, die im Cachespeicher (26) gespeicherten Daten nicht geschrie­ ben werden, jedoch dieser Sachverhalt an die Datenverar­ beitungseinheit (200) gemeldet wird.
12. Cachespeicher-Steuerverfahren gemäß Anspruch 10, gekennzeichnet durch einen Schritt des
Berechnens einer Schreibposition im physikali­ schen Bereich des zu schreibenden Datensatzes vor dem Schritt (f), wobei
im Schritt (f) die Schreibposition im Bereich des aufgefundenen Datensatzes mit der berechneten Schreibpo­ sition verglichen wird und, falls das Vergleichsergebnis eine vorgegebene Bedingung erfüllt, die im Cachespeicher (26) gespeicherten Daten in den aufgefundenen Datensatz geschrieben werden oder, falls das Vergleichsergebnis die vorgegebene Bedingung nicht erfüllt, die im Cachespeicher (26) gespeicherten Daten nicht geschrieben werden, jedoch dieser Sachverhalt an die Datenverarbeitungseinheit (200) gemeldet wird.
13. Cachespeicher-Steuerverfahren gemäß Anspruch 10, dadurch gekennzeichnet, daß
im Schritt (e) die zu schreibenden Datensätze in der Reihenfolge ihrer Datensatznummern aufgefunden wer­ den, falls eine Mehrzahl von zu schreibenden Datensätzen im selben physikalischen Bereich vorhanden sind;
im Schritt (f) die im Cachespeicher (26) gespei­ cherten Daten nacheinander in der Reihenfolge ihrer Auf­ findung in die aufgefundenen Datensätze geschrieben wer­ den.
14. Cachespeicher-Steuerverfahren gemäß Anspruch 13, gekennzeichnet durch einen Schritt
des Berechnens einer Schreibposition im physika­ lischen Bereich eines jeden der Mehrzahl der zu schrei­ benden Datensätze vor dem Schritt (e), wobei
der Schritt (e) des Suchens eines Datensatzes vorübergehend unterbrochen wird, falls der Abstand zwi­ schen der Position eines aufgefundenen Datensatzes zur berechneten Schreibposition des nächsten Datensatzes gleich oder größer als ein vorgegebener Wert ist.
15. Cachespeicher-Steuerverfahren gemäß Anspruch 8, dadurch gekennzeichnet, daß die Steuereinheit (23) nach dem Empfang der Daten von der Datenverarbeitungseinheit (200) und dem Speichern der Daten in den Cachespeicher (26) die folgenden Schritte ausführt:
  • e) Berechnen einer Schreibposition im physikali­ schen Bereich des zu schreibenden Datensatzes;
  • f) Suchen des zu schreibenden Datensatzes in ei­ nem vorgegebenen Bereich in der Nähe der berechneten Schreibposition; und
  • g) entweder Schreiben der im Cachespeicher (26) gespeicherten Daten in den aufgefundenen Datensatz, falls der zu schreibende Datensatz aufgefunden worden ist, oder Unterlassen des Schreibens der im Cachespeicher (26) ge­ speicherten Daten, jedoch Melden dieses Sachverhaltes an die Datenverarbeitungseinheit (200), falls der zu schrei­ bende Datensatz nicht aufgefunden wurde.
16. Cachespeicher-Steuerverfahren gemäß Anspruch 8, dadurch gekennzeichnet, daß anstatt des Schrittes (e) der folgende Schritt ausgeführt wird:
  • m) Empfangen der in das bestimmmte Feld zu schreibenden Daten von der Datenverarbeitungseinheit (200), falls das zu schreibende und durch die Feldbestim­ mungsinformation (3500; 4) bestimmte Feld das Steuerfeld (600) nicht enthält, falls der Cachespeicher (26) keinen Datensatz in dem einen zu schreibenden Datensatz spei­ chernden physikalischen Bereich speichert oder einen be­ stimmten Datensatz mit einer Datensatznummer, die um "Eins" kleiner als diejenige des zu schreibenden Daten­ satzes ist, speichert und falls die Strukturbedingung im Schritt (a) erfüllt ist.
17. Cachespeicher-Steuerverfahren gemäß Anspruch 9, dadurch gekennzeichnet, daß die Steuereinheit (23) den folgenden Schritt ausführt:
  • i) Prüfen, ob der physikalische Bereich die Strukturbedingung erfüllt und Halten des Prüfergebnisses als neue Strukturbedingungsinformation, falls das zu schreibende und durch die Feldbestimmungsinformation (3500; 4) bestimmte Feld das Steuerfeld (600) nicht ent­ hält und falls die Strukturbedingungsinformation für den den zu schreibenden Datensatz speichernden physikalischen Bereich einen Zustand angibt, in dem ungewiß ist, ob die Bedingung erfüllt ist.
18. Cachespeicher-Steuerverfahren gemäß Anspruch 17, dadurch gekennzeichnet, daß die Steuereinheit (23) den folgenden Schritt ausführt:
  • j) Halten eines Zustandes, in dem ungewiß ist, ob der physikalische Bereich die Strukturbedingung er­ füllt, als Strukturbedingungsinformation für den den zu schreibenden Datensatz speichernden physikalischen Be­ reich, falls das zu schreibende und durch die Feldbestim­ mungsinformation (3500; 4) bestimmte Feld das Steuerfeld (600) nicht enthält.
19. Cachespeicher-Steuervorrichtung, mit einem zwi­ schen einer Datenverarbeitungseinheit (200) und einer Speichereinheit (24) zum Speichern eines Datensatzes (301) geschalteten Cachespeicher (26), gekennzeichnet durch
  • a) ein Schreibanforderungs-Empfangsmittel (100) zum Empfang einer Schreibanforderung für einen zu schrei­ benden Datensatz (301) von der Datenverarbeitungseinheit (200);
  • b) ein Datenempfangsmittel (121) zum Schreiben von in den Zieldatensatz (301) zu schreibenden Daten von der Datenverarbeitungseinheit (200), falls der zu schrei­ bende Datensatz nicht im Cachespeicher (26) gespeichert ist;
  • c) ein Datenspeichermittel (122) zum Speichern der empfangenen Daten in den Cachespeicher (26);
  • d) ein Schreibprozeßabschluß-Meldemittel (123) zum Melden des Abschlusses des Datenschreibprozesses an die Datenverarbeitungseinheit (200);
  • e) ein Datensatzpräsenz-Prüfmittel (130) zum Prüfen, ob der Zieldatensatz (301), in den die im Cache­ speicher (26) gespeicherten Daten gespeichert werden sol­ len, in der Speichereinheit (24) gespeichert ist;
  • f) ein Datenschreibmittel (140) zum Schreiben der im Cachespeicher (26) gespeicherten Daten in den Zieldatensatz (301) der Speichereinheit (24), falls der Datensatz gespeichert ist; und
  • g) ein Beendigungs- und Meldemittel (150) zum Unterlassen des Schreibens der im Cachespeicher (26) ge­ speicherten Daten und zum Melden eines solchen Sachver­ haltes an die Datenverarbeitungseinheit (200), falls der Datensatz nicht gespeichert ist.
20. Cachespeicher-Steuervorrichtung, mit einem Cache­ speicher (26), der zwischen eine Datenverarbeitungsein­ heit (200) und eine Speichereinheit (24) geschaltet ist, wobei die Speichereinheit (24) einen ein Steuerfeld (600) einschließlich einer Datensatznummer (602) aufweisenden Datensatz (301) speichert, gekennzeichnet durch
  • a) ein Schreibanforderungs-Empfangsmittel (100) zum Empfang einer Schreibanforderung von der Datenverar­ beitungseinheit (200), wobei die Schreibanforderung eine Datensatzbestimmungsinformation (1-3) zum Bestimmen ei­ nes zu schreibenden Datensatzes, eine Feldbestimmungsin­ formation (4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes und eine Prozeßmodus-Bestimmungsin­ formation (5) zum Bestimmen eines Prozeßmodus, der ausge­ führt wird, wenn der zu schreibende Datensatz nicht im Cachespeicher (26) gespeichert ist, enthält;
  • b) Datenempfangsmittel (121) zum Empfang von Da­ ten von der Datenverarbeitungseinheit (200), die in das bestimmte Feld geschrieben werden sollen, entsprechend dem durch die Prozeßbestimmungsinformation (5) bestimmten Prozeßmodus, falls der zu schreibende und durch die Da­ tensatzbestimmungsinformation (1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespeichert ist und falls das zu schreibende und durch die Feldbestimmungsinformation (4) bestimmte Feld das Steuerfeld (600) nicht enthält;
  • c) Datenspeichermittel (122) zum Speichern der Daten in den Cachespeicher (26); und
  • d) Schreibprozeßabschlußmeldemittel zum Melden des Abschlusses des Schreibprozesses an die Datenverar­ beitungseinheit (200).
21. Cachespeicher-Steuervorrichtung, mit einem Cache­ speicher (26), der zwischen eine Datenverarbeitungsein­ heit (200) und eine Speichereinheit (24) geschaltet ist, wobei die Speichereinheit (24) eine Mehrzahl von physika­ lischen Bereichen zum Speichern eines ein Steuerfeld (600) einschließlich einer Datensatznummer (602) aufwei­ senden Datensatzes umfaßt, gekennzeichnet durch
  • a) ein Strukturbedinungsinformation-Haltemittel (23) zum Halten einer Strukturbedingungsinformation für jeden physikalischen Bereich, die angibt, ob die Struk­ turbedingung, daß im physikalischen Bereich keine gedop­ pelte Datensatznummer des Datensatzes vorliegt, erfüllt ist;
  • b) ein Schreibanforderungs-Empfangsmittel (3300) zum Empfang einer Schreibanforderung von der Datenverar­ beitungseinheit (200), wobei die Schreibanforderung eine Datensatzbestimmungsinformation (1-3) zum Bestimmen ei­ nes zu schreibenden Datensatzes und eine Feldbestimmungs­ information (4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes enthält;
  • c) ein Datenempfangsmittel (121) zum Empfangen von Daten von der Datenverarbeitungseinheit (200), die in das bestimmte Feld geschrieben werden sollen, falls der zu schreibende und durch die Datensatzbestimmungsinforma­ tion (1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsinformation (4) bestimmte Feld das Steuerfeld (600) nicht enthält und falls die Strukturbe­ dingung erfüllt ist;
  • d) ein Datenspeichermittel (122) zum Speichern von Daten in den Cachespeicher (26); und
  • e) Schreibprozeßabschlußmeldemittel zum Melden des Abschlusses des Schreibprozesses an die Datenverar­ beitungseinheit (200).
22. Cachespeicher-Steuervorrichtung gemäß Anspruch 20, gekennzeichnet durch
  • f) ein Datensatzsuchmittel (130) zum Suchen des in die Speichereinheit (24) zu schreibenden Datensatzes, nachdem Daten von der Datenverarbeitungseinheit (200) empfangen und im Cachespeicher (26) gespeichert worden sind;
  • g) ein Datenschreibmittel (140) zum Schreiben der im Cachespeicher (26) gespeicherten Daten in den auf­ gefundenen Datensatz, falls der zu beschreibende Daten­ satz gefunden worden ist; und
  • h) ein Beendigungs- und Meldemittel (150) zum Unterlassen des Schreibens der im Cachespeicher (26) ge­ speicherten Daten und zum Melden eines solchen Sachver­ haltes an die Datenverarbeitungseinheit (200), falls der zu beschreibende Datensatz nicht aufgefunden worden ist.
23. Cachespeicher-Steuervorrichtung, mit einem Cache­ speicher (26), der zwischen eine Datenverarbeitungsein­ heit (200) und eine Speichereinheit (24) geschaltet ist, wobei die Speichereinheit (24) eine Mehrzahl von physika­ lischen Bereichen zum Speichern eines Datensatzes (301), der ein Steuerfeld (600) einschließlich einer Datensatz­ nummer (602) aufweist, umfaßt, gekennzeichnet durch
  • a) ein Schreibanforderungs-Empfangsmittel (3400) zum Empfang einer Schreibanforderung von der Datenverar­ beitungseinheit (200), wobei die Schreibanforderung eine Datensatzbestimmungsinformation (1-3) zum Bestimmen ei­ nes zu schreibenden Datensatzes, eine Feldbestimmungsin­ formation (4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes und eine Strukturbedingungsinforma­ tion (7) enthält, wobei die Strukturbedingungsinformation (7) angibt, ob die folgenden Strukturbedingungen erfüllt sind: die Datensatznummer des Datensatzes am Beginn des physikalischen Bereichs zum Speichern der Datensätze ist "Null" und die Nummern der folgenden Datensätze sind in aufsteigender Folge, jeweils um "Eins" erhöht, gegeben;, jeder Datensatz besitzt ein vom Steuerfeld (600) ver­ schiedenes Feld; die Längen der vom Steuerfeld (600) ver­ schiedenen Felder eines jeden Datensatzes mit der Daten­ satznummer "Eins" oder größer sind gleich; und das vom Steuerfeld (600) verschiedene Feld des Datensatzes mit der Datensatznummer "Null" besitzt eine vorgegebene Länge;
  • b) ein Datenempfangsmittel (121) zum Empfang von Daten von der Datenverarbeitungseinheit (200), die in das bestimmte Feld zu schreiben sind, falls der zu schrei­ bende und durch die Datenbestimmungsinformation (1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespei­ chert ist, falls das zu schreibende und durch die Feldbe­ stimmungsinformation (4) bestimmte Feld das Steuerfeld (600) nicht enthält und falls die Strukturbedingung er­ füllt ist;
  • c) ein Datenspeichermittel (122) zum Speichern der Daten in den Cachespeicher (26); und
  • d) ein Schreibprozeßbeendigungs- und Meldemittel zum Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
24. Cachespeicher-Steuervorrichtung, mit einem Cache­ speicher (26), der zwischen eine Datenverarbeitungsein­ heit (200) und eine Speichereinheit (24) geschaltet ist, wobei die Speichereinheit (24) eine Mehrzahl von physika­ lischen Bereichen zum Speichern eines Datensatzes, der ein Steuerfeld (600) einschließlich einer Datensatznummer (602) enthält, umfaßt, gekennzeichnet durch
  • a) ein Strukturbedingungsinformation-Haltemittel (23) zum Halten einer Strukturbedingungsinformation für jeden physikalischen Bereich, wobei die lnformation an­ gibt, ob die folgenden Strukturbedingungen erfüllt sind: die Datensatznummer des Datensatzes am Beginn des physi­ kalischen Bereichs zum Speichern von Datensätzen ist "Null" und die Nummern der folgenden Datensätze sind in aufsteigender Folge, jeweils um "Eins" erhöht, gegeben;, jeder Datensatz besitzt ein vom Steuerfeld (600) ver­ schiedenes Feld; die Längen der vom Steuerfeld (600) ver­ schiedenen Felder eines jeden Datensatzes mit der Daten­ satznummer "Eins" oder größer sind gleich; und das vom Steuerfeld (600) verschiedene Feld des Datensatzes mit der Datensatznummer "Null" besitzt eine vorgegebene Länge;
  • b) ein Schreibanforderungs-Empfangsmittel (3500) zum Empfang einer Schreibanforderung von der Datenverar­ beitungseinheit (200), wobei die Schreibanforderung eine Datensatzbestimungsinformation (1-3) zum Bestimmen ei­ nes zu schreibenden Datensatzes und eine Feldbestimmungs­ information (4) zum Bestimmen eines in den Datensatz zu schreibenden Feldes enthält;
  • c) ein Datenempfangsmittel (121) zum Empfang von Daten von der Datenverarbeitungseinheit (200), die in das bestimmte Feld geschrieben werden sollen, falls der zu schreibende und durch die Datensatzbestimmungsinformation (1-3) bestimmte Datensatz nicht im Cachespeicher (26) gespeichert ist, falls das zu schreibende und durch die Feldbestimmungsinformation (4) bestimmte Feld das Steuer­ feld (600) nicht enthält und falls die Strukturbedingung erfüllt ist;
  • d) ein Datenspeichermittel (122) zum Speichern der Daten in den Cachespeicher (26); und
  • e) ein Schreibprozeßbeendigungs- und Meldemittel zum Melden des Abschlusses des Schreibprozesses an die Datenverarbeitungseinheit (200).
25. Cachespeicher-Steuervorrichtung gemäß Anspruch 23, gekennzeichnet durch
  • f) ein Schreibpositionsberechnungsmittel (23) zum Berechnen einer Schreibposition des zu schreibenden Datensatzes in dem physikalischen Bereich;
  • g) ein Positionsvergleichsmittel (3420) zum Ver­ gleich der Schreibposition des aufgefundenen Datensatzes im physikalischen Bereich mit der berechneten Schreibpo­ sition;
  • h) ein Datenschreibmittel (140) zum Schreiben der im Cachespeicher (26) gespeicherten Daten in den auf­ gefundenen Datensatz, falls das Vergleichsergebnis eine vorgegebene Bedingung erfüllt; und
  • i) ein Beendigungs- und Meldemittel (150) zur Unterlassung des Schreibens der im Cachespeicher (26) ge­ speicherten Daten, jedoch zum Melden dieses Sachverhaltes an die Datenverarbeitungseinheit (200), falls das Ver­ gleichsergebnis die vorgegebene Bedingung nicht erfüllt.
26. Cachespeicher-Steuervorrichtung gemäß Anspruch 23, gekennzeichnet durch
  • f) ein Schreibpositions-Berechnungsmittel (23) zum Berechnen einer Schreibposition des zu schreibenden Datensatzes im physikalischen Bereich;
  • g) ein Datensatz-Suchmittel (23) zum Suchen ei­ nes in einen vorgegebenen Bereich in der Nähe der berech­ neten Schreibposition zu schreibenden Datensatzes;
  • h) ein Datenschreibmittel (140) zum Schreiben der im Cachespeicher gespeicherten Daten in den aufgefun­ denen Datensatz, falls der zu beschreibende Datensatz ge­ funden worden ist; und
  • i) ein Beendigungs- und Meldemittel (150) zum Unterlassen des Schreibens der im Cachespeicher (26) ge­ speicherten Daten, jedoch zum Melden eines solchen Sach­ verhaltes an die Datenverarbeitungseinheit (200), falls der zu schreibende Datensatz nicht aufgefunden wurde.
DE4039891A 1989-12-13 1990-12-13 Verfahren und vorrichtung zur cachespeichersteuerung Withdrawn DE4039891A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1323396A JP2826857B2 (ja) 1989-12-13 1989-12-13 キャッシュ制御方法および制御装置

Publications (1)

Publication Number Publication Date
DE4039891A1 true DE4039891A1 (de) 1991-06-27

Family

ID=18154260

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4039891A Withdrawn DE4039891A1 (de) 1989-12-13 1990-12-13 Verfahren und vorrichtung zur cachespeichersteuerung

Country Status (3)

Country Link
US (4) US5497472A (de)
JP (1) JP2826857B2 (de)
DE (1) DE4039891A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2826857B2 (ja) * 1989-12-13 1998-11-18 株式会社日立製作所 キャッシュ制御方法および制御装置
JP3260999B2 (ja) * 1995-03-03 2002-02-25 富士通株式会社 ディスク制御装置の制御方法
JP3583829B2 (ja) * 1995-04-13 2004-11-04 株式会社日立製作所 外部記憶サブシステムの制御方法および制御装置
US6038676A (en) * 1997-09-25 2000-03-14 International Business Machines Corporation Method and circuit for data integrity verification during DASD data transfer
US6049845A (en) * 1997-11-05 2000-04-11 Unisys Corporation System and method for providing speculative arbitration for transferring data
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6014709A (en) * 1997-11-05 2000-01-11 Unisys Corporation Message flow protocol for avoiding deadlocks
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6687818B1 (en) 1999-07-28 2004-02-03 Unisys Corporation Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system
US6665761B1 (en) 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
US6532476B1 (en) * 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US20050015546A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Data storage system
US7827353B2 (en) * 2003-07-15 2010-11-02 International Business Machines Corporation Self healing memory
US7299334B2 (en) * 2003-07-15 2007-11-20 Xiv Ltd. Storage system configurations
US7293156B2 (en) * 2003-07-15 2007-11-06 Xiv Ltd. Distributed independent cache memory
US7724599B2 (en) * 2003-12-03 2010-05-25 Hitachi, Ltd. Remote copy system
JP4408692B2 (ja) * 2003-12-19 2010-02-03 富士通株式会社 通信装置管理プログラム
JP2005284497A (ja) * 2004-03-29 2005-10-13 Hitachi Ltd 中継装置、管理サーバ、中継方法および認証方法
US20070112812A1 (en) * 2005-11-09 2007-05-17 Harvey Richard H System and method for writing data to a directory
US8326899B2 (en) 2005-11-09 2012-12-04 Ca, Inc. Method and system for improving write performance in a supplemental directory
US8321486B2 (en) * 2005-11-09 2012-11-27 Ca, Inc. Method and system for configuring a supplemental directory
US8458176B2 (en) * 2005-11-09 2013-06-04 Ca, Inc. Method and system for providing a directory overlay
US8473496B2 (en) * 2008-01-31 2013-06-25 SAP France S.A. Utilizing density metadata to process multi-dimensional data
US8527732B2 (en) 2011-09-16 2013-09-03 Hitachi, Ltd. Storage system and method of controlling storage system
US9110809B2 (en) * 2013-07-03 2015-08-18 Nvidia Corporation Reducing memory traffic in DRAM ECC mode
US10048878B2 (en) * 2015-06-08 2018-08-14 Samsung Electronics Co., Ltd. Nonvolatile memory module and storage system having the same
KR20230035811A (ko) * 2021-09-06 2023-03-14 에스케이하이닉스 주식회사 데이터 처리 시스템 내 공유된 메모리 공간을 제어하기 위한 장치 및 방법
CN116132534B (zh) * 2022-07-01 2024-03-08 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3240921A (en) * 1959-07-06 1966-03-15 Svenska Dataregister Ab Data handling system
US3354466A (en) * 1960-02-12 1967-11-21 Gen Electric Apparatus in data processing system for coordinating memory communication among processors and peripheral devices
US3225334A (en) * 1960-11-07 1965-12-21 Gen Electric Data processing system including plural peripheral devices with means for the selection and operation
NL283852A (de) * 1961-10-06
NL293797A (de) * 1962-06-13
US3328566A (en) * 1964-07-27 1967-06-27 Gen Precision Inc Input-output system for a digital computer
US3702462A (en) * 1967-10-26 1972-11-07 Delaware Sds Inc Computer input-output system
GB1354827A (en) * 1971-08-25 1974-06-05 Ibm Data processing systems
DE2507914C3 (de) * 1975-02-24 1980-02-28 Hans 8024 Deisenhofen Sauer Elektromagnetisches Relais
US4320478A (en) * 1975-07-02 1982-03-16 Motorola, Inc. Digital watch
US4084231A (en) * 1975-12-18 1978-04-11 International Business Machines Corporation System for facilitating the copying back of data in disc and tape units of a memory hierarchial system
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity
US4245300A (en) * 1978-06-05 1981-01-13 Computer Automation Integrated and distributed input/output system for a computer
US4399503A (en) * 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4268907A (en) * 1979-01-22 1981-05-19 Honeywell Information Systems Inc. Cache unit bypass apparatus
JPS55157053A (en) * 1979-05-25 1980-12-06 Nec Corp Disc cash write-in control system
US5241666A (en) * 1979-06-04 1993-08-31 Unisys Corporation Variable rate improvement of disc cache subsystem
US5371855A (en) * 1979-06-04 1994-12-06 Unisys Corporation Disc cache subsystem having plural-level cache memories
US4394732A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
US4394733A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US4423479A (en) * 1980-11-14 1983-12-27 Sperry Corporation Cache/disk subsystem with acquire write command
US4598357A (en) * 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4500954A (en) * 1981-10-15 1985-02-19 International Business Machines Corporation Cache bypass system with post-block transfer directory examinations for updating cache and/or maintaining bypass
US4468730A (en) * 1981-11-27 1984-08-28 Storage Technology Corporation Detection of sequential data stream for improvements in cache data storage
US5045398A (en) * 1982-06-22 1991-09-03 Harry Levin Silicon carbide product
JPS59100964A (ja) * 1982-12-01 1984-06-11 Hitachi Ltd ディスク制御システム及びその並列データ転送方法
JPS59135563A (ja) * 1983-01-24 1984-08-03 Hitachi Ltd デイスク・キヤツシユ装置を有する計算機システム
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US5091350A (en) * 1984-03-26 1992-02-25 Hoechst Aktiengesellschaft Process for hydroformylation with rhodium catalysts and the separation of rhodium therefrom
US4916605A (en) * 1984-03-27 1990-04-10 International Business Machines Corporation Fast write operations
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
US4685082A (en) * 1985-02-22 1987-08-04 Wang Laboratories, Inc. Simplified cache with automatic update
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
JPS6221753A (ja) * 1985-07-17 1987-01-30 三井化学株式会社 成形体製造用組成物
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPS63132354A (ja) 1986-11-21 1988-06-04 Fujitsu Ltd キヤツシユ制御方式
US4933335A (en) * 1987-08-07 1990-06-12 Warner-Lambert Company Quinolones as antibacterial agents
US5091850A (en) * 1987-09-28 1992-02-25 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
JPH0673113B2 (ja) 1987-10-28 1994-09-14 日本電気株式会社 ディスクキャッシュ装置
US4900483A (en) * 1987-10-29 1990-02-13 Exxon Research And Engineering Company Method of producing isotropically reinforced net-shape microcomposites
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US5045998A (en) * 1988-05-26 1991-09-03 International Business Machines Corporation Method and apparatus for selectively posting write cycles using the 82385 cache controller
US4869043A (en) * 1988-08-02 1989-09-26 Fero Holdings Ltd. Shear connector
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5241566A (en) * 1988-12-13 1993-08-31 E-Systems, Inc. Full duplex FSK system
US5313613A (en) * 1988-12-30 1994-05-17 International Business Machines Corporation Execution of storage-immediate and storage-storage instructions within cache buffer storage
US5097532A (en) * 1989-03-03 1992-03-17 Compaq Computer Corporation Circuit for enabling a cache using a flush input to circumvent a late noncachable address input
US5347642A (en) * 1989-11-30 1994-09-13 Nec Electronics Inc. Cache memory management unit
JP2826857B2 (ja) * 1989-12-13 1998-11-18 株式会社日立製作所 キャッシュ制御方法および制御装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block

Also Published As

Publication number Publication date
US20040030828A1 (en) 2004-02-12
US5497472A (en) 1996-03-05
JP2826857B2 (ja) 1998-11-18
US7082496B2 (en) 2006-07-25
JPH03184144A (ja) 1991-08-12
US5694576A (en) 1997-12-02
US6085286A (en) 2000-07-04

Similar Documents

Publication Publication Date Title
DE4039891A1 (de) Verfahren und vorrichtung zur cachespeichersteuerung
DE69722991T2 (de) Aufzeichnungsbereichsverwaltungsverfahren und Speichergerät
DE2759128C2 (de)
DE2500721C2 (de) Sekundärspeicher für digitale Datenverarbeitungssysteme
DE2921387C2 (de) Verfahren zum Austauschen von Informationen zwischen einer Datenverarbeitungsanlage und einem Magnetplattenspeicher
DE3614795A1 (de) Schreibverfahren fuer dateidaten in einen einmal beschreibbaren speicher
DE112011102076B4 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE1935570A1 (de) System zur Speicherung und Wiedergewinnung von Daten
DE2230987C2 (de)
DE19727243A1 (de) Festplattenvorrichtung zum Umwandeln logischer Adressen von Diagnosezylindern in Festplattenlaufwerken zugeordnete physikalische Adressen
DE2122338A1 (de) Schaltungsanordnung zur Steuerung des Datenflusses in Datenverarbeitungsanlagen
DE2521436B2 (de) Informationswiedergewinnungsanordnung
DE19706512A1 (de) Echtzeit-Ereignisanordnung in einem elektronischen Ablaufdiagramm
DE2646296A1 (de) Assoziative elektronische schaltungsanordnung aus digitalen prozessoren
DE4019135A1 (de) Serieller speicher auf ram-basis mit parallelem voraus-lesen
DE2432608C3 (de) Speicheranordnung fur eine Datenverarbeitungseinrichtung
DE112020004007B4 (de) Beheben von lesefehlern in einem bandlaufwerk
DE112011102139B4 (de) Bandspeichereinheit und Schreibverfahren dafür
DE1549439A1 (de) Datenverarbeitungssystem
DE1524152C3 (de) Steuereinrichtung für die Übertragung von Informationseinheiten von den endlos umlaufenden Speicherspuren eines Magnetplattenspeichers zu dem Hauptspeicher eines Datenverarbeitungssystems
DE3637767C2 (de)
DE2254696A1 (de) Schaltungsanordnung und verfahren zur neuorientierung nach einer fehlbedingung in einem speichersystem
DE3047506A1 (de) Verfahren zum uebertragen von datenbloecken und vorrichtung zur durchfuehrung dieses verfahrens
DE3713043A1 (de) Verfahren zur steuerung einer plattenspeichereinheit
DE19639405C2 (de) Schreibsystem für eine beschreibbare Compact Disc, das Information über einen Schreib-Betriebsablauf speichert

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/08

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4042738

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4042738

8139 Disposal/non-payment of the annual fee