[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69129101T2 - Control arrangement for cache memory unit - Google Patents

Control arrangement for cache memory unit

Info

Publication number
DE69129101T2
DE69129101T2 DE69129101T DE69129101T DE69129101T2 DE 69129101 T2 DE69129101 T2 DE 69129101T2 DE 69129101 T DE69129101 T DE 69129101T DE 69129101 T DE69129101 T DE 69129101T DE 69129101 T2 DE69129101 T2 DE 69129101T2
Authority
DE
Germany
Prior art keywords
data
unit
cache
write
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69129101T
Other languages
German (de)
Other versions
DE69129101D1 (en
Inventor
Keishichiro Tanaka
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69129101D1 publication Critical patent/DE69129101D1/en
Publication of DE69129101T2 publication Critical patent/DE69129101T2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

HINTERGRUND DER ERINDUNGBACKGROUND OF THE INVENTION (1) Gebiet der Erfindung(1) Field of the invention

Die vorliegende Erfindung betrifft allgemein ein Steuersystem zur Steuerung einer Hilfsspeichereinheit und einer Cache-Speichereinheit und betrifft spezieller ein Steuersystem zum Steuern einer Hilfsspeichereinheit und einer Cache- Speichereinheit mit einem Cache-Speicher und einem nicht flüchtigen Speicher, welches System in einem Datenverarbeitungssystem vorgesehen ist.The present invention relates generally to a control system for controlling an auxiliary storage unit and a cache memory unit, and more particularly to a control system for controlling an auxiliary storage unit and a cache memory unit including a cache memory and a non-volatile memory, which system is provided in a data processing system.

(2) Beschreibung des Standes der Technik(2) Description of the state of the art

Es wurde ein Datenverarbeitungssystem vorgeschlagen, welches einen Host-Computer, eine Cache-Speichereinheit mit einem Cache-Speicher, und eine Hilfsspeichereinheit (z.B. eine DASD (Direct Access storage Device = Speichervorrichtung mit direktem Zugriff wie beispielsweise eine Platteneinheit)) enthält. Wenn bei dieser Datenverarbeitungseinheit der Cache- Speicher die gleichen Daten enthält wie diejenigen in der Hilfsspeichereinheit, liest der Host-computer die Daten von dem Cache-Speicher aus anstatt der Daten aus der Hilfsspei chereinheit. Da in diesem Fall auf die Hilfsspeichereinheit (wie beispielsweise eine Platteneinheit),die eine lange Zugriffszeit erfordert, nicht zugegriffen wird, kann die Zeitdauer, die zum Erhalten der Daten erforderlich ist, vermindert werden.A data processing system has been proposed which includes a host computer, a cache storage unit having a cache memory, and an auxiliary storage unit (e.g., a DASD (Direct Access Storage Device such as a disk unit)). In this data processing unit, when the cache memory contains the same data as that in the auxiliary storage unit, the host computer reads the data from the cache memory instead of the data from the auxiliary storage unit. In this case, since the auxiliary storage unit (such as a disk unit) which requires a long access time is not accessed, the time required to obtain the data can be reduced.

Alternativ werden die Daten, die von dem Host-Computer zugeführt wurden, in die Hilfsspeichereinheit in Einklang mit einem Dateneinschreibprozeß eingeschrieben, der häufig als ein Durchschleus-Einschreibprozeß bezeichnet wird.Alternatively, the data supplied from the host computer is stored in the auxiliary storage unit in accordance with a data write process, often referred to as a pass-through write process.

Wenn bei dem Durchschleus-Einschreibprozeß, wie in Fig.1 dargestellt ist, ein Host-Computer 31 einen Einschreibbefehl zusammen mit auf den neuesten Stand gebrachten Daten einer Platten-Steuereinheit 33 zuführt, schreibt die Platten- Steuereinheit 33 die erneuerten Daten sowohl in einen Cache- Speicher 35 als auch eine Hilfsspeichereinheit 37 (eine Platteneinheit) ein. Dieser Durchschleus-Einschreibprozeß hat den Vorteil, daß die in dem Cache-Speicher 35 gespeicherten Daten immer die gleichen sind wie die entsprechenden Daten, die in der Hilfsspeichereinheit 37 gespeichert sind. Da jedoch die Zeitdauer zum Einschreiben der Daten von der Zugriffszeit der Hilfsspeichereinheit abhängt (der Platteneinheit), kann der Gache-Speicher 35 nicht effektiv für das Dateneinschreiben verwendet werden.In the pass-through write process, as shown in Fig. 1, when a host computer 31 supplies a write command together with updated data to a disk controller 33, the disk controller 33 writes the updated data into both a cache memory 35 and an auxiliary storage unit 37 (a disk unit). This pass-through write process has the advantage that the data stored in the cache memory 35 is always the same as the corresponding data stored in the auxiliary storage unit 37. However, since the time for writing the data depends on the access time of the auxiliary storage unit (the disk unit), the cache memory 35 cannot be effectively used for data writing.

Um den zuvor erläuterten Nachteil des Durchschleus- Einschreibprozesses zu beseitigen, wurde ein System mit einem nicht flüchtigen Speicher vorgeschlagen, wie in Fig.2 gezeigt ist. Gemäß Fig.2 enthält die Plattensteuereinheit 41 eine Cache-Speichereinheit, die aus einem Cache-Speicher 35 und einem nicht flüchtigen Speicher 43 gebildet ist. Die Kapazität des nicht flüchtigen Speichers 43 ist kleiner als diejenige des Cache-Speichers 35. Dieses System führt einen Dateneinschreibprozeß aus, der häufig auch als schneller Schreibprozeß bezeichnet wird. Wenn bei dem schnellen Schreibprozeß der Host-Computer 31 den Schreibbefehl zusammen mit den erneuerten Daten der Platten-Steuereinheit 41 zuführt, steuert die Plattensteuereinheit 41 die Cache-Speichereinheit in sol cher Weise, daß die erneuerten Daten sowohl in dem Cache- Speicher 35 als auch in dem nicht flüchtigen Speicher 43 gespeichert werden. Danach schreibt die Plattensteuereinheit 41 die auf den neuesten Stand gebrachten Daten, die in dem nicht flüchtigen Speicher 43 gespeichert wurden, in die Hilfsspei chereinheit 37 ein und zwar asynchron mit dem Einschreibbefehl von dem Host-Computer 31. Ein Prozeß zum Einschreiben der in dem nicht flüchtigen Speicher 43 gespeicherten Daten in den Hilfsspeicher 37 wird als Rückschreibprozeß bezeichnet. Gemäß dem schnellen Schreibprozeß ist, wenn die erneuerten Daten in den nicht flüchtigen Speicher 43 anstelle in die Hilfsspeichereinheit 37 eingeschrieben werden und zwar abhängig von dem Einschreibbefehl von dem Host-Computer 31, die Zeit, die für den Einschreibprozeß erforderlich ist basierend auf dem Einschreibbefehl, kürzer als diejenige, die bei dem Durchschleus-Einschreibprozeß erforderlich ist, der zuvor beschrieben wurde. D.h. es kann der Einschreibprozeß mit einer hohen Geschwindigkeit ausgeführt werden.In order to eliminate the above-mentioned disadvantage of the pass-through write process, a system having a non-volatile memory has been proposed as shown in Fig.2. As shown in Fig.2, the disk control unit 41 includes a cache memory unit composed of a cache memory 35 and a non-volatile memory 43. The capacity of the non-volatile memory 43 is smaller than that of the cache memory 35. This system carries out a data write process, which is often referred to as a fast write process. In the fast write process, when the host computer 31 supplies the write command together with the updated data to the disk control unit 41, the disk control unit 41 controls the cache memory unit so that the updated data is stored in both the cache memory 35 and the non-volatile memory 43. Thereafter, the disk control unit 41 writes the updated data stored in the non-volatile memory 43 into the auxiliary storage unit 37 asynchronously with the write command from the host computer 31. A process for writing the data stored in the non-volatile memory 43 into the auxiliary storage 37 is called a write-back process. According to the high-speed write process, when the renewed data is written into the nonvolatile memory 43 instead of the auxiliary storage unit 37 in response to the write command from the host computer 31, the time required for the write process based on the write command is shorter than that required in the pass-through write process described above. That is, the write process can be carried out at a high speed.

Bei dem System, welches den nicht flüchtigen Speicher 43 enthält, wird, um die Speicher effektiv zu verwenden, eine Spur, auf der Daten gespeichert sind, in N Blöcke aufgeteilt und es können die Daten für jeden Block in bzw. aus dem Cache-Speicher 35 und dem nicht flüchtigen Speicher 43 eingeschrieben bzw. ausgelesen werden. Wenn somit die Zahl der verwendeten Blöcke in dem nicht flüchtigen Speicher 43 kleiner ist als N und die Zahl der Blöcke, die den erneuerten Daten entsprechen, welche von dem Host-Computer 31 zugeführt wurden, größer ist als N, können die Daten nicht in den nicht flüchtigen Speicher 43 eingeschrieben werden. In diesem Fall werden verschiedene Einschreibprozesse basierend darauf ausgeführt, ob der nicht flüchtige Speicher 43 Daten auf einer identifizierten Spur in dem Cache-Speicher 35 enthält oder nicht. D.h. wenn der nicht flüchtige Speicher 43 keine Daten in der identifizierten Spur aufweist, werden in einem ersten Prozeß die Einschreibdaten, die der identifizierten Spur entsprechen, welche von dem Host-Computer 31 zugeführt wurden, in den Hilfsspeicher 37 eingeschrieben und zwar in Einklang mit dem oben beschriebenen Durchschleus-Einschreibprozeß. Wenn der nicht flüchtige Speicher 43 Daten in der identifizierten Spur aufweist, werden, um in einem zweiten Prozeß die Daten in der richtigen Reihenfolge in der Hilfsspeichereinheit 37 zu erneuern, die Einschreibdaten, die der identifi zierten Spur entsprechen, welche von dem Host-computer 31 zugeführt wurden, in die Hilfsspeichereinheit 37 eingeschrieben, nachdem die Daten, die in dem nicht flüchtigen Speicher 43 gespeichert worden sind, der Hilfsspeichereinheit 37 zugeführt wurden und in diese eingeschrieben wurden. Der zuvor beschriebene zweite Prozeß wird häufig als Rückschreibprozeß und Durchschleus-Einschreibprozeß bezeichnet.In the system including the nonvolatile memory 43, in order to use the memories effectively, a track on which data is stored is divided into N blocks, and the data for each block can be written into and read out from the cache memory 35 and the nonvolatile memory 43. Thus, when the number of blocks used in the nonvolatile memory 43 is less than N and the number of blocks corresponding to the renewed data supplied from the host computer 31 is greater than N, the data cannot be written into the nonvolatile memory 43. In this case, different writing processes are carried out based on whether or not the nonvolatile memory 43 contains data on an identified track in the cache memory 35. That is, when the non-volatile memory 43 has no data in the identified track, in a first process, the write data corresponding to the identified track supplied from the host computer 31 is written into the auxiliary memory 37 in accordance with the pass-through write process described above. When the non-volatile memory 43 has data in the identified track, in order to renew the data in the correct order in the auxiliary memory unit 37, in a second process, the write data corresponding to the identified track supplied from the host computer 31 is written into the auxiliary memory unit 37 after the data stored in the non-volatile memory 43 were supplied to the auxiliary storage unit 37 and written therein. The second process described above is often referred to as a write-back process and a pass-through write process.

Gemäß dem herkömmlichen Steuersystem zum Steuern der Cache-Speichereinheit, welche den nicht flüchtigen Speicher enthält, werden die Einschreibdaten, die von dem Host- Computer zugeführt werden, immer entsprechend dem schnellen Einschreibprozeß verarbeitet während sich der nicht flüchtige Speicher in einem Zustand befindet, bei dem die Zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher größer ist als die Zahl der Blöcke, die den Daten entsprechen, welche von dem Host-Computer zugeführt wurden. Es nimmt daher in einem Zustand, bei dem die Zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 klein ist, eine Wahrscheinlichkeit zu, daß die Einschreibdaten, die von dem Host-Computer zugeführt werden, in Einklang mit dem Rückschreibprozeß und dem Durchschleus-Einschreibprozeß verarbeitet werden. Bei dem Rückschreib-und Durchschleus- Einschreibprozeß wird auf die Hilfsspeichereinheit zweimal zugegriffen, so daß die Zeit, die für den Rückschreibprozeß und den Duchschleus-Einschreibprozeß erforderlich ist, wenigstens zweimal so groß ist wie diejenige, die für den Durchschleus-Einschreibprozeß erforderlich ist.According to the conventional control system for controlling the cache memory unit including the nonvolatile memory, the write data supplied from the host computer is always processed according to the fast write process while the nonvolatile memory is in a state where the number of unused blocks in the nonvolatile memory is larger than the number of blocks corresponding to the data supplied from the host computer. Therefore, in a state where the number of unused blocks in the nonvolatile memory 43 is small, a probability that the write data supplied from the host computer is processed according to the write-back process and the pass-through write process increases. In the write-back and pass-through write processes, the auxiliary storage unit is accessed twice, so that the time required for the write-back process and the pass-through write process is at least twice as long as that required for the pass-through write process.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Es ist daher eine allgemeine Aufgabe der vorliegenden Erfindung ein neues und nützliches Steuersystem zur Steuerung einer Cache-Speichereinheit mit einem nicht flüchtigen Speicher zu schaffen, bei dem die Nachteile des zuvor erläuterten Standes der Technik beseitigt sind.It is therefore a general object of the present invention to provide a new and useful control system for controlling a cache memory unit with a non-volatile memory, in which the disadvantages of the previously discussed prior art are eliminated.

Ein spezifischeres Ziel der vorliegenden Erfindung besteht darin, ein Steuersystem zur Steuerung einer Cache- Speichereinheit mit einem nicht flüchtigen Speicher zu schaffen, durch das eine Wahrscheinlichkeit, daß ein Rückschreibprozeß und ein Durchschleus-Einschreibprozeß ausgeführt werden und zwar in einem Zustand, bei dem die Zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher klein ist, vermindert werden kann.A more specific object of the present invention is to provide a control system for controlling a cache memory unit having a non-volatile memory, by which a probability that a write-back process and a pass-through write-in process are carried out in a state in which the number of non- used blocks in the non-volatile memory is small, can be reduced.

Die oben erwähnten Ziele der vorliegenden Erfindung werden mit Hilfe eines Steuersystem erreicht, um eine Hilfsspeichereinheit und eine Cache-Speichereinheit zu steuern, die eine Cache-Speichervorrichtung und eine nicht flüchtige Speichervorrichtung umfaßt, basierend auf einem Einschreibbefehl, der zusammen mit Erneuerungsdaten von einer externen Einheit zugeführt wird, um die erneuerten Daten in einen spezifizierten Speicherbereich der Hilfsspeichereinheit einzuschreiben, wobei das Steuersystem folgendes aufweist: eine erste Bestimmungseinrichtung, um zu bestimmen, ob ein nicht verwendeter Bereich in der nicht flüchtigen Speichereinrichtung kleiner ist als ein Bezugsbereich, wobei der nicht verwendete Bereich ein Bereich ist, der keine Daten enthält; eine erste Verarbeitungseinrichtung zur Durchführung eines ersten Prozesses, wenn die erste Bestimmungseinrichtung bestimmt, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung nicht kleiner ist als der Bezugsbereich, wobei der erste Prozeß einen Schritt enthält, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache-Speichereinrichtung als auch in die nicht flüchtige Speichereinrichtung einzuschreiben, wobei die auf den neuesten Stand gebrachten Daten, die in die nicht flüchtige Speichereinrichtung eingeschrieben wurden, in den identifizierten Speicherbereich der Hilfsspeichereinrichtung eingeschrieben werden und zwar asynchron mit dem Einschreibbefehl; eine zweite Bestimmungseinrichtung, die an die erste Bestimmungseinrichtung gekoppelt ist, um zu bestimmen, ob die nicht flüchtige Speichereinrichtung Daten enthält, die dem identifizierten Speicherbereich entsprechen, wenn die erste Bestimmungseinrichtung bestimmt, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung kleiner ist als der Bezugsbereich; eine zweite verarbeitende Einrichtung zum Durchführen eines zweiten Prozesses, wenn die zweite Bestimmungseinrichtung bestimmt, daß die nicht flüchtige Speichereinrichtung keine Daten enthält, die dem identifizierten Speicherbereich entsprechen, wobei der zweite Prozeß einen Schritt umfaßt, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache-Speichereinrichtung als auch in die identifizierte Zone bzw. Bereich der Hilfsspeichereinrichtung einzuschreiben; eine dritte Bestimmungseinrichtung, die an die zweite Bestimmungseinrichtung gekoppelt ist, um zu bestimmen, ob der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung dazu verwendet werden kann, um die maximale Menge von Daten, die in die Hilfsspeichereinheit einzuschreiben ist, verwendet werden kann oder nicht, wenn die zweite Bestimmungseinrichtung bestimmt hat, daß die nicht flüchtige Speichereinrichtung Daten enthält, die der identifizierten Speicherzone entsprechen; eine dritte verarbeitende Einrichtung zum Durchführen des ersten Prozesses, wenn die dritte Bestimmungseinrichtung bestimmt hat, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung zum Speichern der genannten maximalen Menge von Daten, die in die Hilfsspeichereinheit einzuschreiben sind, verwendet werden kann; und eine vierte verarbeitende Einrichtung zum Durchführen eines dritten Prozesses, wenn die dritte Bestimmungseinrichtung bestimmt hat, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung für die Speicherung der maximalen Menge von Daten, die in die Hilfsspeichereinheit einzuschreiben sind, nicht verwendet werden kann, wobei der dritte Prozeß einen ersten Schritt umfaßt, um die Daten, die in der nicht flüchtigen Speichereinrichtung abgespeichert wurden, in der identifizierten Speicherzone der Hilfsspeichereinheit einzuschreiben, und einen zweiten Schritt umfaßt, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache- Speichereinrichtung als auch in die identifizierte Speicherzone der Hilfsspeichereinheit nach dem ersten Schritt einzuschreiben.The above-mentioned objects of the present invention are achieved by means of a control system for controlling an auxiliary storage unit and a cache memory unit comprising a cache memory device and a non-volatile memory device based on a write command supplied together with refresh data from an external unit to write the refreshed data into a specified storage area of the auxiliary storage unit, the control system comprising: first determining means for determining whether an unused area in the non-volatile memory device is smaller than a reference area, the unused area being an area containing no data; a first processing means for performing a first process when the first determining means determines that the unused area in the non-volatile storage means is not smaller than the reference area, the first process including a step for writing the updated data to both the cache storage means and the non-volatile storage means, the updated data written to the non-volatile storage means being written to the identified storage area of the auxiliary storage means asynchronously with the write command; a second determining means coupled to the first determining means for determining whether the non-volatile storage means contains data corresponding to the identified storage area when the first determining means determines that the unused area in the non-volatile storage means is smaller than the reference area; a second processing means for performing a second process when the second determining means determines that the non-volatile storage means does not contain data corresponding to the identified storage area, the second process comprising a step of writing the updated data into both the cache memory device and the identified zone of the auxiliary storage device; third determining means, coupled to the second determining means, for determining whether or not the unused area in the non-volatile memory device can be used to store the maximum amount of data to be written into the auxiliary storage unit if the second determining means has determined that the non-volatile memory device contains data corresponding to the identified storage zone; third processing means for performing the first process if the third determining means has determined that the unused area in the non-volatile memory device can be used to store said maximum amount of data to be written into the auxiliary storage unit; and fourth processing means for performing a third process when the third determining means has determined that the unused area in the non-volatile storage means cannot be used for storing the maximum amount of data to be written into the auxiliary storage unit, the third process comprising a first step of writing the data stored in the non-volatile storage means into the identified storage region of the auxiliary storage unit, and a second step of writing the updated data into both the cache storage means and the identified storage region of the auxiliary storage unit after the first step.

Gemäß der vorliegenden Erfindung wird in einem Fall, bei dem der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung kleiner ist als der Bezugsbereich, der Bereich in der nicht flüchtigen Speichereinrichtung daran gehindert, für eine neue identifizierte Spur verwendet zu werden und es wird der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung in bevorzugter Weise zum Speichern von Daten verwendet, die der identifizierten Spur entsprechen, deren Daten in der Cache-Speichereinrichtung gespeichert worden sind. Es wird somit die Wahrscheinlichkeit, daß der dritte Prozeß (der Rückschreib-und Durchschleus- Einschreibprozeß), bei dem die Hilfsspeichereinheit zweimal zugegriffen wird, ausgeführt wird, vermindert.According to the present invention, in a case where the unused area in the non-volatile storage device is smaller than the reference area, the area in the non-volatile storage device is prevented from being used for a new identified track and the unused area in the non-volatile storage device is preferentially used for storing data corresponding to the identified track whose data has been stored in the cache storage device. Thus, the probability that the third process (the write-back and pass-through write process) in which the auxiliary storage unit is accessed twice is carried out is reduced.

Zusätzliche Ziele, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus der folgenden detaillierten Beschreibung in Verbindung mit den beiliegenden Zeichnungen.Additional objects, features and advantages of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Fig. 1 ist ein Diagramm, welches ein Steuersystem zur Steuerung einer Cache-Speichereinheit und einer Hilfsspeichereinheit gemäß einem Durchschleus-Einschreibprozeß veranschaulicht;Fig. 1 is a diagram illustrating a control system for controlling a cache memory unit and an auxiliary memory unit according to a pass-through write process;

Fig. 2 ist ein Diagramm, welches ein Steuersystem zur Steuerung einer Cache-Speichereinheit und einer Hilfsspeichereinheit in Einklang mit einem Schnell-Einschreibprozeß veranschaulicht;Fig. 2 is a diagram illustrating a control system for controlling a cache memory unit and an auxiliary memory unit in accordance with a fast write process;

Fig. 3 zeigt ein Flußdiagramm, welches die Prinzipien eines Prozesses veranschaulicht, der in dem Steuersystem gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführt wird;Fig. 3 is a flow chart illustrating the principles of a process performed in the control system according to an embodiment of the present invention;

Fig. 4 zeigt ein Blockschaltbild, welches ein Steuersystem gemäß der Ausführungsform der vorliegenden Erfindung veranschaulicht;Fig. 4 is a block diagram illustrating a control system according to the embodiment of the present invention;

Fig. 5A ist ein Blockschaltbild, welches eine Struktur von jedem Kanal-Adapter (CA) veranschaulicht, der in Fig.4 gezeigt ist;Fig. 5A is a block diagram illustrating a structure of each channel adapter (CA) shown in Fig. 4;

Fig. 5B ist ein Blockschaltbild, welches eine Struktur von jedem Vorrichtungs-Adapter (DA) veranschaulicht, der in Fig.4 gezeigt ist;Fig. 5B is a block diagram illustrating a structure of each device adapter (DA) shown in Fig. 4;

Fig. 5C ist ein Blockschaltbild, welches eine Struktur von sowohl einer Resourcen-Managereinheit (RM) als auch einer Cachefunktion-Maschineneinheit (CFE) veranschaulicht;Fig. 5C is a block diagram illustrating a structure of both a resource manager unit (RM) and a cache function engine unit (CFE);

Fig. 6 zeigt ein Diagramm, welches eine Struktur einer Cache-Steuertabelle und einer LRU Tabelle veranschaulicht, die in einem Speicher gespeichert sind, wie in Fig. 5C gezeigt ist; undFig. 6 is a diagram illustrating a structure of a cache control table and an LRU table stored in a memory as shown in Fig. 5C ; and

Figuren 7A bis 7E zeigen Flußdiagramme, welche die Prozesse zum Einschreiben von Daten in die Hilfsspeichereinheit und die Cache-Speichereinheit veranschaulichen, welche Daten von einem Host-Computer zugeführt wurden.Figures 7A to 7E are flowcharts illustrating the processes for writing data into the auxiliary storage unit and the cache storage unit, which data has been supplied from a host computer.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUGNSFORMENDESCRIPTION OF THE PREFERRED EMBODIMENTS

Es folgt nun eine Beschreibung des Prinzips eines Prozesses, der durch ein Steuersystem gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführt wird und zwar unter Hinweis auf Fig.3.A description will now be given of the principle of a process carried out by a control system according to an embodiment of the present invention, with reference to Fig.3.

Der in Fig.3 gezeigte Prozeß wird beispielsweise durch die Cache-Steuereinheit 41 ausgeführt, die in Fig.2 gezeigt ist. Gemäß Fig.3 wird bei dem Schritt 100 ein Einschreibbefehl zusammen mit Einschreibdaten empfangen, die von dem Host-Computer 31 zugeführt wurden. Dann wird bei dem Schritt 101 bestimmt, ob die Zahl (NUNVS) der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 kleiner ist als ein vorherbestimmter Bezugswert (NREF). Wenn bei dem Schritt 101 festgelegt wird, daß die Zahl (NUNVS) der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 kleiner ist als der Bezugswert (NREF), wird bei dem Schritt 102 die Cache- Steuereinheit in Einklang mit dem Schnell-Einschreibprozeß gesteuert. D.h. es werden die Einschreibdaten, die von dem Host-Computer 31 zugeführt werden, in dem nicht flüchtigen Speicher 43 gespeichert und zwar in einem Zustand, bei dem die Cache-Steuereinheit 41 nicht mit der Hilfsspeichereinheit 37 verbunden ist. Danach werden die in dem nicht flüchtigen Speicher 43 gespeicherten Daten in die Hilfsspeichereinheit 37 eingeschrieben und zwar asynchron mit dem Einschreibbefehl von dem Host-Computer 31. Wenn bei dem Schritt 101 bestimmt wird, daß die Zahl (NUNVS) der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 kleiner ist als der Bezugswert NREF, wird bei dem Schritt 103 bestimmt, ob der nicht flüchtige Speicher 43 Daten auf einer Spur enthält oder nicht, die in dem Cache-Speicher 35 identifiziert wurden. Wenn der nicht flüchtige Speicher 43 auf der identifizierten Spur keine Daten enthält, werden bei dem Schritt 104 die Einschreibdaten sowohl in die Hilfsspeichereinheit 37 als auch in den Cache- Speicher 35 in Einklang mit dem Durchschleus-Einschreibprozeß direkt eingeschrieben, um zu verhindern, daß die zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 zunimmt. Wenn in diesem Zustand die in dem nicht flüchtigen Speicher 43 gespeicherten Daten in die Hilfsspeichereinheit 37 in Einklang mit dem Rückschreibprozeß eingeschrieben werden und asynchron mit dem Einschreibbefehl, nimmt die Zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 zu. Wenn andererseits bei dem Schritt 103 bestimmt wird, daß der nicht flüchtige Speicher 43 Daten auf der identifizierten Spur enthält, wird bei dem Schritt 105 bestimmt, ob die Daten für eine Spur, welche die maximale Menge an Daten für eine Einschreiboperation darstellen, in den nicht flüchtigen Speicher 43 eingeschrieben werden können oder nicht. Wenn bei dem Schritt 105 bestimmt wird, daß die Daten für eine Spur in den nicht flüchtigen Speicher 43 eingespeichert werden können, wird bei dem Schritt 102 die Cache- Speichereinheit in Einklang mit dem schnellen Einschreibprozeß gesteuert. Wenn bei dem Schritt 105 bestimmt wird, daß die Daten für eine Spur in dem nicht flüchtigen Speicher 43 nicht gespeichert werden können, wird bei dem Schritt 106 die Cache-Speichereinheit und die Hilfsspeichereinheit 37 in Einklang mit dem Rückschreib-und Durchschleus-Einschreibprozeß gesteuert. D.h. nachdem die Daten, die in dem nicht flüchtigen Speicher 43 gespeichert worden sind, in die Hilfsspeichereinheit 37 in Einklang mit dem Rückschreibprozeß eingeschrieben wurden, werden die Einschreibdaten in die Hilfsspeichereinheit 37 entsprechend dem Durchschleus- Einschreibprozeß eingeschrieben.The process shown in Fig.3 is carried out, for example, by the cache control unit 41 shown in Fig.2. Referring to Fig.3, at step 100, a write command is received together with write data supplied from the host computer 31. Then, at step 101, it is determined whether the number (NUNVS) of unused blocks in the nonvolatile memory 43 is smaller than a predetermined reference value (NREF). If it is determined at step 101 that the number (NUNVS) of unused blocks in the nonvolatile memory 43 is smaller than the reference value (NREF), at step 102, the cache control unit is controlled in accordance with the fast write process. That is, the write data supplied from the host computer 31 is stored in the non-volatile memory 43 in a state where the cache control unit 41 is not connected to the auxiliary storage unit 37. Thereafter, the data stored in the non-volatile memory 43 is written into the auxiliary storage unit 37 asynchronously with the write command from the host computer 31. If it is determined in step 101 that the number (NUNVS) of unused blocks in the non-volatile memory 43 is smaller than the reference value NREF, it is determined in step 103 whether the non-volatile Memory 43 contains or does not contain data on a track identified in cache memory 35. If non-volatile memory 43 contains no data on the identified track, at step 104, the write data is directly written into both auxiliary storage unit 37 and cache memory 35 in accordance with the pass-through write process to prevent the number of unused blocks in non-volatile memory 43 from increasing. In this state, when the data stored in non-volatile memory 43 is written into auxiliary storage unit 37 in accordance with the write-back process and asynchronously with the write command, the number of unused blocks in non-volatile memory 43 increases. On the other hand, if it is determined at step 103 that the nonvolatile memory 43 contains data on the identified track, it is determined at step 105 whether or not the data for one track, which is the maximum amount of data for one write operation, can be written into the nonvolatile memory 43. If it is determined at step 105 that the data for one track can be stored in the nonvolatile memory 43, the cache memory unit is controlled in accordance with the fast write process at step 102. If it is determined at step 105 that the data for one track cannot be stored in the nonvolatile memory 43, the cache memory unit and the auxiliary memory unit 37 are controlled in accordance with the write-back and pass-through write process at step 106. That is, after the data stored in the nonvolatile memory 43 is written into the auxiliary storage unit 37 in accordance with the write-back process, the write-in data is written into the auxiliary storage unit 37 in accordance with the pass-through write process.

Wenn gemäß dem oben erläuterten Einschreibprozeß die zahl der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 klein ist (kleiner als die Bezugszahl), wird verhindert, daß die zahl der Blöcke, die den Daten auf den neuerlich identifizierten Spuren entsprechen, zunimmt und es werden die nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 43 in bevorzugter Form dafür verwendet, um Daten entsprechend der identifizierten Spur in dem Cache-Speicher 35 zu speichern. D.h. wenn die Menge der Daten auf der neuerlich identifizierten Spur in dem nicht flüchtigen Speicher 43 nicht erhöht wird, wird die Wahrscheinlichkeit vermindert, daß die in dem nicht flüchtigen Speicher 43 gespeicherten Daten bei dem Einschreibprozeß zugegriffen werden. Somit wird auch die Wahrscheinlichkeit vermindert, daß der Rückschreibund Durchschleus-Einschreibprozeß, bei dem die Hilfsspeichereinheit zweimal zugegriffen wird, ausgeführt wird.According to the above-explained writing process, if the number of unused blocks in the non-volatile memory 43 is small (less than the reference number), that the number of blocks corresponding to the data on the newly identified tracks increases, and the unused blocks in the non-volatile memory 43 are preferentially used to store data corresponding to the identified track in the cache memory 35. That is, if the amount of data on the newly identified track in the non-volatile memory 43 is not increased, the probability that the data stored in the non-volatile memory 43 is accessed in the write-in process is reduced. Thus, the probability that the write-back and pass-through write-in process in which the auxiliary storage unit is accessed twice is also reduced.

Es folgt nun eine Beschreibung einer Ausführungsform der vorliegenden Erfindung unter Hinweis auf die Figuren 4 bis 7E.A description will now be given of an embodiment of the present invention with reference to Figures 4 to 7E.

Gemäß Fig.4, die ein Datenverarbeitungssystem mit einem Steuersystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, enthält das Datenverarbeitungssystem einen Host-Computer 101 einen Kanal 12, eine Datei-Steuereinheit 14, eine erste Platteneinheit 15 (0) und eine zweite Platteneinheit 15 (1). Die Datei-Steuereinheit 14 steuert die erste und die zweite Platteneinheit 15 (0) und 15 (1) in Einklang mit Befehlen, die von dem Host-Computer 10 über dem Kanal 12 zugeführt werden. Die Datei-Steuereinheit 14 enthält eine Resourcen-Managereinheit 140, eine Cachefunktion-Maschineneinheit 145, eine Cache-Speichereinheit 146, ein erstes Eingabe/Ausgabe-System und ein zweites Eingabe/Ausgabe-System. Die ersten und zweiten Eingabe/Ausgabe-Systeme besitzen jeweils Treiber/Empfänger 141 (0) und 141 (1) (DV/RV), die an den Kanal 12 gekoppelt sind, Kanal-Adapter 142 (0) und 142 (1) (CA), Vorrichtungs-Adapter 143 (0) und 143 (1) (DA), und einen Treiber/Empfänger 144 (0) (DV/RV), der an die erste Platteneinheit 15 (0) gekoppelt ist, und eine Treiber/Empfängereinheit 144 (1) (DV/RV), die an die zweite Platteneinheit 15 (1) gekoppelt ist. Das erste Eingabe/Ausgabe- System ist mit der Resourcen-Managereinheit 140, der Cachefunktion-Maschineneinheit 145 und der Cache-Speichereinheit 146 über einen C-Bus 148 (0) gekoppelt. Das zweite Eingabe/Ausgabe-System ist ebenfalls mit der Resourcen- Managereinheit 140, der Cachefunktion-Maschineneinheit 145 und der Cache-Speichereinheit 146 über einen c-Bus 148 (1) gekoppelt. Die Resourcen-Managereinheit 140 steuert alle Teile der Datei-Steuereinheit 14.Referring to Fig. 4, which shows a data processing system having a control system according to an embodiment of the present invention, the data processing system includes a host computer 101, a channel 12, a file control unit 14, a first disk unit 15(0), and a second disk unit 15(1). The file control unit 14 controls the first and second disk units 15(0) and 15(1) in accordance with commands supplied from the host computer 10 via the channel 12. The file control unit 14 includes a resource manager unit 140, a cache function engine unit 145, a cache storage unit 146, a first input/output system, and a second input/output system. The first and second input/output systems each have driver/receivers 141 (0) and 141 (1) (DV/RV) coupled to the channel 12, channel adapters 142 (0) and 142 (1) (CA), device adapters 143 (0) and 143 (1) (DA), and a driver/receiver 144 (0) (DV/RV) coupled to the first disk unit 15 (0) and a driver/receiver unit 144 (1) (DV/RV) coupled to the second disk unit 15 (1). The first input/output system is connected to the resource manager unit 140, the The second input/output system is also coupled to the resource manager unit 140, the cache function engine unit 145 and the cache memory unit 146 via a c-bus 148 (1). The resource manager unit 140 controls all parts of the file control unit 14.

Die Cachefunktion-Maschineneinheit 145 führt Prozesse hinsichtlich der Steuerung der Cache-Speichereinheit 146 aus. Die Cache-Speichereinheit 146 besitzt einen Cache-Speicher 146a und einen nicht flüchtigen Speicher 146b.The cache function engine unit 145 executes processes related to controlling the cache memory unit 146. The cache memory unit 146 has a cache memory 146a and a non-volatile memory 146b.

Jeder der Kanal-Adapter 142 (0) und 142 (1) ist beispielsweise so wie in Fig.5A gezeigt ist, ausgebildet. Gemäß Fig.5A umfaßt jeder Kanal-Adapter eine Mikroprozessoreinheit 20 (MPU), eine Bus-Interface-Logikeinheit 21, eine Kanal- Interface-Logikeinheit 22 und einen Speicher 23, die durch einen Bus miteinander verbunden sind. Die Bus-Interface- Logikeinheit 21 ist an den c-Bus 148 (0) oder 148 (1) gekoppelt. Die Kanal-Interface-Logikeinheit 22 ist an den Kanal 12 gekoppelt. Verschiedene Steuerprogramme, die durch die MPU 20 ausgeführt werden, sind in dem Speicher 23 gespeichert.Each of the channel adapters 142 (0) and 142 (1) is configured, for example, as shown in Fig. 5A. According to Fig. 5A, each channel adapter includes a microprocessor unit 20 (MPU), a bus interface logic unit 21, a channel interface logic unit 22 and a memory 23, which are connected to each other by a bus. The bus interface logic unit 21 is coupled to the c-bus 148 (0) or 148 (1). The channel interface logic unit 22 is coupled to the channel 12. Various control programs executed by the MPU 20 are stored in the memory 23.

Jeder der Vorrichtungs-Adapter 143 (0) und 143 (1) ist so, wie in Fig.5B gezeigt ist, ausgeführt. Gemäß Fig.5B besitzt jeder Vorrichtungs-Adapter eine Mikroprozessoreinheit 24 (MPU), eine Bus-Interface-Logikeinheit 25, eine Vorrichtung-Interface-Logikeinheit 26 und einen Speicher 27, die durch einen Bus miteinander verbunden sind. Die Bus- Interface-Logikeinheit 25 ist mit einem entsprechenden c-Bus 148 (0) oder 148 (1) gekoppelt. Die Vorrichtung-Interface- Logikeinheit 26 ist mit einer entsprechenden Platteneinheit 15 (0) oder 15 (1) gekoppelt. Verschiedene Steuerprogramme, die durch die MPU 24 ausgeführt werden, sind in dem Speicher 27 abgespeichert.Each of the device adapters 143 (0) and 143 (1) is configured as shown in Fig. 5B. As shown in Fig. 5B, each device adapter has a microprocessor unit (MPU) 24, a bus interface logic unit 25, a device interface logic unit 26, and a memory 27, which are connected to each other by a bus. The bus interface logic unit 25 is coupled to a corresponding c-bus 148 (0) or 148 (1). The device interface logic unit 26 is coupled to a corresponding disk unit 15 (0) or 15 (1). Various control programs executed by the MPU 24 are stored in the memory 27.

Die Resourcen-Managereinheit 140 und die Cachefunktion- Maschineneinheit 145 sind jeweils beispielsweise so, wie in Fig.5C gezeigt ist, ausgeführt. Gemäß Fig.5C ist eine Mikroprozessoreinheit 50 (MPU) mit einem ersten Bus-Interface 51, einem zweiten Bus-Interface 52, einem ersten Speicher 53a und einem zweiten Speicher 53b über einen Bus verbunden. Das erste Bus-Interface 51 ist an den c-bus 148 (0) gekoppelt und das zweite Bus-Interface 52 ist an den c-Bus 148 (1) gekoppelt. Verschiedene Steuerprogramme, die durch die MPU 50 ausgeführt werden, sind in dem ersten Speicher 53a abgespeichert. Eine Aufgaben-Management-Tabelle, die zum Managen der Datei-Steuereinheit 14 verwendet wird, ist in dem zweiten Speicher 53b der Resourcen-Managereinheit 140 gespeichert. Eine Cache-Management-Tabelle, die zum Steuern der Cache- Speichereinheit 146 verwendet wird, ist in dem zweiten Speicher 53b der Cachefunktion-Maschineneinheit 145 gespeichert.The resource manager unit 140 and the cache function machine unit 145 are each designed, for example, as shown in Fig.5C. According to Fig.5C, a microprocessor unit 50 (MPU) is provided with a first bus interface 51, a second bus interface 52, a first memory 53a and a second memory 53b via a bus. The first bus interface 51 is coupled to the c-bus 148 (0) and the second bus interface 52 is coupled to the c-bus 148 (1). Various control programs executed by the MPU 50 are stored in the first memory 53a. A task management table used for managing the file control unit 14 is stored in the second memory 53b of the resource manager unit 140. A cache management table used for controlling the cache memory unit 146 is stored in the second memory 53b of the cache function engine unit 145.

Die in dem zweiten Speicher 53b der Cachefunktion- Maschineneinheit 145 gespeicherte Cache-Management-Tabelle ist beispielsweise so, wie in Fig.6 gezeigt ist, ausgeführt. Gemäß Fig.6 besitzt die Cache-Management-Tabelle eine unbenützte Speichertabelle, eine ungenützte NSV (Nonvolatile Storage Device = nicht flüchtige Speichervorrichtung)-Tabelle und eine LRU (Least Recently Used = unmittelbar zuletzt verwendete)-Tabelle. Die nicht verwendete Speichertabelle zeigt nicht verwendete Blöcke in dem Cache-Speicher 146a an, in welchem noch keine Daten gespeichert worden sind. Die nicht verwendete NSV Tabelle zeigt nicht verwendete Blöcke in dem nicht flüchtigen Speicher 146b an, in welchen Daten noch nicht gespeichert worden sind. Die LRU Tabelle zeigt die Beziehungen zwischen den Spuradressen, welche Spuren in den Platteneinheiten 15 (0) 15 (1) identifizieren, und den verwendeten Blöcken an, die aus Blöcken bestehen, welche zum Speichern der Daten auf den Spuren der Platteneinheiten 15 (0) und 15 (1) verwendet werden und zwar in dem Cache- Speicher 146a und dem nicht flüchtigen Speicher 146b. Die Cachefunktion-Maschineneinheit 145 steuert die Cache- Speichereinheit 146 mit Bezugnahme auf die Cache-Management- Tabelle und es wird die Cache-Management-Tabelle auf den neuesten Stand gebracht während die Cachefunktion- Maschineneinheit 145 die Cache-Speichereinheit 146 steuert.The cache management table stored in the second memory 53b of the cache function engine unit 145 is configured, for example, as shown in Fig.6. As shown in Fig.6, the cache management table has an unused memory table, an unused NSV (Nonvolatile Storage Device) table, and an LRU (Least Recently Used) table. The unused memory table indicates unused blocks in the cache memory 146a in which data has not yet been stored. The unused NSV table indicates unused blocks in the nonvolatile memory 146b in which data has not yet been stored. The LRU table indicates the relationships between the track addresses identifying tracks in the disk units 15(0) 15(1) and the used blocks consisting of blocks used to store the data on the tracks of the disk units 15(0) and 15(1) in the cache memory 146a and the non-volatile memory 146b. The cache function engine unit 145 controls the cache storage unit 146 with reference to the cache management table, and the cache management table is updated while the cache function engine unit 145 controls the cache storage unit 146.

Es folgt nun eine Beschreibung der Operationen der Datei-Steuereinheit 14 in einem Fall, bei dem auf den neuesten Stand gebrachte Daten in die Platteneinheit 15 (0) oder 15 (1)eingeschrieben werden. In diesem Fall arbeitet die Datei- Steuereinheit 14 in Einklang mit den Prozessen, die in den Figuren 7A bis 7E gezeigt sind.A description will now be given of the operations of the file control unit 14 in a case where updated data is written into the disk unit 15 (0) or 15 (1). In this case, the file control unit 14 operates in accordance with the processes shown in Figures 7A to 7E.

Wenn der Host-Computer einen Schreibbefehl dem Kanal 12 zuschickt, startet ein Prozeß, der in Fig.7a gezeigt ist. D nach wird angenommen, daß die erste Platteneinheit 15(0) zugegriffen wurde. Der Kanal-Adapter 142(0) empfängt den Einschreibbefehl von dem Kanal 12 bei dem Schritt 200. Es werden die Einschreibdaten und eine Spur, in die Einschreibdaten in der ersten Platteneinheit 15(0) eingeschrieben werden sollten, durch den Einschreibbefehl spezifiziert. Wenn der Kanal- Adapter 142 (0) den Einschreibbefehl empfängt, schickt der Kanal-Adapter 142(0) den Einschreibbefehl zu der Cachefunktion-Maschineneinheit 145. Dann prüft die Cachefunktion- Maschineneinheit 145 den Cache-Status betreffend die identifizierte Spur unter Bezugnahme auf die Cache-Management Tabelle, die in Fig.6 gezeigt ist, was bei dem Schritt 201 erfolgt. D.h. der Status der Blöcke, die für die identifizierte Spur in dem Cache-Speicher 146a und dem nicht flüchtigen Speicher 146b und ähnliche verwendet werden, werden geprüft. Bei diesem Schritt wird beispielsweise die Zahl NUNVS der nicht verwendeten Blöcke, welche aus Blöcken bestehen, die zum Speichern der Daten in dem nicht flüchtigen Speicher 146b nicht verwendet werden, detektiert. Die Cachefunktion- Maschineneinheit 145 bestimmt, ob die Zahl NUNSV der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b kleiner ist als ein vorherbestimmter Bezugswert NREF, was bei dem Schritt 202 erfolgt.When the host computer sends a write command to the channel 12, a process shown in Fig.7a starts. Next, it is assumed that the first disk unit 15(0) has been accessed. The channel adapter 142(0) receives the write command from the channel 12 at step 200. The write data and a track into which write data should be written in the first disk unit 15(0) are specified by the write command. When the channel adapter 142(0) receives the write command, the channel adapter 142(0) sends the write command to the cache function engine unit 145. Then, the cache function engine unit 145 checks the cache status concerning the identified track with reference to the cache management table shown in Fig.6, which is done at step 201. That is, the status of the blocks used for the identified track in the cache memory 146a and the nonvolatile memory 146b and the like are checked. At this step, for example, the number NUNVS of unused blocks consisting of blocks not used for storing the data in the nonvolatile memory 146b is detected. The cache function engine unit 145 determines whether the number NUNSV of unused blocks in the nonvolatile memory 146b is less than a predetermined reference value NREF, which occurs in step 202.

Wenn bestimmt wird, daß die Zahl NUNSV der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b nicht kleiner ist als der Bezugswert NREF, startet ein in Fig.7B gezeig ter Prozeß. Der in Fig.7B gezeigte Prozeß wird als Schnelleinschreib-Prozeß bezeichnet. Die Cachefunktion- Maschineneinheit 145 instruiert den Kanal-Adapter 142 (0) den schnellen Einschreibprozeß zu starten, was bei dem Schritt 210 erfolgt. Dann schreibt der Kanal-Adapter 142 (0) die von dem Kanal 12 geschickten Einschreibdaten in den nicht flüchtigen Speicher 146b bei dem Schritt 211 ein. Wenn der Schritt 211 vervollständigt ist, beendet die Datei-Steuereinheit 14 den Prozeß für das Einschreiben der Daten. Danach werden die in dem nicht flüchtigen Speicher 146 gespeicherten Daten in die erste Platteneinheit 15(0) eingeschrieben und zwar basierend auf der Steuerung des Resourcen-Manager 140 und der Cachefunktion-Maschineneinheit 145 und zwar asynchron mit dem Einschreibbefehl von dem Host-Computer 10.When it is determined that the number NUNSV of unused blocks in the nonvolatile memory 146b is not less than the reference value NREF, a process shown in Fig.7B starts. The process shown in Fig.7B is called a fast write process. The cache function engine unit 145 instructs the channel adapter 142 (0) to to start a fast write process, which is done at step 210. Then, the channel adapter 142(0) writes the write data sent from the channel 12 into the non-volatile memory 146b at step 211. When step 211 is completed, the file control unit 14 terminates the data write process. Thereafter, the data stored in the non-volatile memory 146 is written into the first disk unit 15(0) based on the control of the resource manager 140 and the cache function engine unit 145 asynchronously with the write command from the host computer 10.

Wenn andererseits die Funktion-Maschineneinheit 145 bei dem Schritt 202 bestimmt, daß die zahl NUNSV der nicht verwendeten Blöcke in den nicht flüchtigen Speicher 146b kleiner ist als der Bezugswert NREF, prüft die Cachefunktion- Maschineneinheit 145 die Zahl NCACHE der Blöcke, die für die identifizierte Spur in dem Cache-Speicher 146a verwendet werden und zwar unter Bezugnahme auf die Cache-Management- Tabelle, was bei dem Schritt 203 stattfindet.On the other hand, if the function engine unit 145 determines at step 202 that the number NUNSV of unused blocks in the nonvolatile memory 146b is less than the reference value NREF, the cache function engine unit 145 checks the number NCACHE of blocks used for the identified track in the cache memory 146a by referring to the cache management table, which occurs at step 203.

Dann bestimmt die Cachefunktion-Maschineneinheit 145, ob der nicht flüchtige Speicher 146b Blöcke enthält, die für die identifizierte Spur verwendet werden, was bei dem Schritt 204 erfolgt. Wenn bestimmt wird, daß der nicht flüchtige Speicher 146b keine Blöcke enthält, die für die identifizierte Spur verwendet werden, wird ein in Fig.7E und Fig.7D gezeigter Prozeß gestartet. Der in Fig.7E und Fig.7D gezeigte Prozeß wird als Duchschleus-Einschreibprozeß bezeichnet. Nach dem Schritt 204 instruiert die Cachefunktion-Maschineneinheit 145 den Kanal-Adapter 142 (0) den Durchschleus-Einschreibprozeß zu starten, was bei dem Schritt 204 vor sich geht. Der Kanal- Adapter 142 (0) wird bei dem Schritt 241 von dem Kanal 12 abgetrennt und dann instruiert der Kanal-Adapter 142(0) die Resourcen-Managereinheit 140 bei dem Schritt 242 den Durchschleus-Einschreibprozeß auszuführen. Dann instruiert die Resourcen-Managereinheit 140 die Adaptervorrichtung 143(0) bei dem Schritt 243 den Durchschleus-Einschreibprozeß zu starten. Wenn der Vorrichtungs-Adapter 143(0) an die erste Platteneinheit 15(0) gekoppelt ist, informiert der Vorrichtungs-Adapter 143 (0) die Resourcen-Managereinheit 140 darüber, daß der Vorrichtungs-Adapter 143 (0) an die erste Platteneinheit 15(0)angekoppelt wurde, was bei dem Schritt 244 erfolgt. Nach dem Schritt 244, schreitet der Prozeß zu dem Schritt 227 voran, der in Fig.7D gezeigt ist. Wenn der Vorrichtungs-Adapter 143 (0) an die erste Platteneinheit 15 (0) gekoppelt ist, die oben beschrieben wurde, instruiert der Resourcen-Manager 140 den Kanal-Adapter 142 (0) sich wieder an den Kanal 12 anzukoppeln, was bei dem Schritt 227 erfolgt. Der Kanal-Adapter 142 (0) wird wie der an den Kanal 12 basierend auf dem Befehl von der Resourcen-Managereinheit 140 angekoppelt, was bei dem Schritt 228 erfolgt. Wenn der Kanal-Adapter 142(0) erneut an den Kanal 12 vollständig angekoppelt worden ist, informiert der Kanal-Adapter 142(0) die Resourcen-Managereinheit 140 darüber, daß der Kanal-Adapter 142 (0) an den Kanal wieder angekoppelt worden ist, was bei dem Schritt 229 erfolgt. Dann instruiert die Resourcen-Managereinheit 140 sowohl den Kanal- Adapter 142 (0) als auch den Vorrichtungs-Adapter 143 (0) den Durchschleus-Einschreibprozeß zu starten, was bei dem Schritt 230 erfolgt. Danach empfängt der Kanal-Adapter 142 (0) die Einschreibdaten, die von dem Kanal 12 zugeführt werden und zwar über den Treiber/Empfänger 141 (0) und schreibt die Schreibdaten in den Cache-Speicher 146a ein, was bei dem Schritt 231 erfolgt. Nach dieser zeit werden die Schreibdaten von dem Kanal-Adapter 142(0) dem Vorrichtungs-Adapter 143 (0) zugeführt. Dann schreibt der Vorrichtungs-Adapter 143(0) die Schreibdaten in die erste Platteneinheit 15 (0) ein. Wenn der Schritt 231 vervollständigt ist, beendet die Datei-Steuereinheit 14 den Prozeß die Daten einzuschreiben.Then, the cache engine unit 145 determines whether the non-volatile memory 146b contains blocks used for the identified track, which occurs in step 204. If it is determined that the non-volatile memory 146b does not contain blocks used for the identified track, a process shown in Fig.7E and Fig.7D is started. The process shown in Fig.7E and Fig.7D is called a pass-through write process. After step 204, the cache engine unit 145 instructs the channel adapter 142(0) to start the pass-through write process, which occurs in step 204. The channel adapter 142(0) is disconnected from the channel 12 at step 241, and then the channel adapter 142(0) instructs the resource manager unit 140 to execute the pass-through write process at step 242. Then the resource manager unit 140 instructs the adapter device 143(0) to start the pass-through write process at step 243. When the device adapter 143(0) is connected to the first disk unit 15(0), the device adapter 143(0) informs the resource manager unit 140 that the device adapter 143(0) has been coupled to the first disk unit 15(0), which occurs in step 244. After step 244, the process proceeds to step 227 shown in Fig.7D. If the device adapter 143(0) is coupled to the first disk unit 15(0), described above, the resource manager 140 instructs the channel adapter 142(0) to re-couple to the channel 12, which occurs in step 227. The channel adapter 142(0) is re-coupled to the channel 12 based on the command from the resource manager unit 140, which occurs in step 228. When the channel adapter 142(0) has been fully recoupled to the channel 12, the channel adapter 142(0) informs the resource manager unit 140 that the channel adapter 142(0) has been recoupled to the channel, which occurs in step 229. The resource manager unit 140 then instructs both the channel adapter 142(0) and the device adapter 143(0) to start the pass-through write process, which occurs in step 230. Thereafter, the channel adapter 142(0) receives the write data supplied from the channel 12 via the driver/receiver 141(0) and writes the write data into the cache memory 146a, which occurs in step 231. After this time, the write data is supplied from the channel adapter 142(0) to the device adapter 143(0). Then, the device adapter 143(0) writes the write data into the first disk unit 15(0). When the step 231 is completed, the file control unit 14 ends the process of writing the data.

Wenn gemäß Fig.7A die Cachefunktion-Maschineneinheit 145 bestimmt, daß der nicht flüchtige Speicher 146b Blöcke enthält, die für die identifizierte Spur verwendet werden, so bestimmt die Cachefunktion-Maschineneinheit 145, ob die Zahl NUNSV der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b gleich ist oder größer ist als eine Differenz zwischen der zahl No der Blöcke für eine Spur und der Zahl NNVS der Blöcke, die für die identifizierte Spur verwendet werden oder nicht. Da die maximale Menge an Daten, die in einer Operation auf den neuesten Stand gebracht werden können, einer Spur entspricht, können dann, wenn die zahl NUNSV der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b gleich ist oder größer ist als die Differenz zwischen den Zahlen No und NNVS, die Schreibdaten, welche von dem Host- Computer 10 zugeführt wurden, in den nicht flüchtigen Speicher 146b unter Verwendung der nicht verwendeten Blöcke eingeschrieben werden. D.h. es wird dann, wenn die Cachefunktion-Maschineneinheit 145 bestimmt, daß die zahl NUNVS der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b gleich ist oder größer ist als die Differenz zwischen den Zahlen No und NNVS, der schnelle Schreibprozeß ausgeführt, der in Fig.7B gezeigt ist, und zwar in der gleichen Weise wie oben beschrieben wurde.Referring to Fig.7A, when the cache engine unit 145 determines that the non-volatile memory 146b contains blocks used for the identified track, the cache engine unit 145 determines whether the number NUNSV of unused blocks in the non-volatile memory 146b is equal to or greater than a difference between the number No of blocks for a track and the number NNVS of the blocks used for the identified track or not. Since the maximum amount of data that can be updated in one operation corresponds to one track, when the number NUNSV of the unused blocks in the nonvolatile memory 146b is equal to or greater than the difference between the numbers No and NNVS, the write data supplied from the host computer 10 can be written into the nonvolatile memory 146b using the unused blocks. That is, when the cache function engine unit 145 determines that the number NUNVS of the unused blocks in the nonvolatile memory 146b is equal to or greater than the difference between the numbers No and NNVS, the fast write process shown in Fig.7B is carried out in the same manner as described above.

Wenn andererseits die Zahl NUNSV der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b kleiner ist als die Differenz zwischen der Zahl No der Blöcke für eine Spur und der Zahl NNSV der Blöcke, die für die identifizierte Spur in dem nicht flüchtigen Speicher 146b verwendet werden, kann ein Fall auftreten, bei dem alle Schreibdaten nicht in dem nicht flüchtigen Speicher 146b gespeichert werden. Wenn somit die Cachefunktion-Maschineneinheit 145 bestimmt, daß die Zahl NUNVS der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b kleiner ist als die Differenz zwischen den zahlen No und NNVS, werden der Rückschreibprozeß und der Durchschleus-Einschreibprozeß ausgeführt. D.h. der in den Figuren 7C und 7D gezeigte Prozeß wird gestartet.On the other hand, if the number NUNSV of unused blocks in the nonvolatile memory 146b is smaller than the difference between the number No of blocks for one track and the number NNSV of blocks used for the identified track in the nonvolatile memory 146b, a case may occur where all write data is not stored in the nonvolatile memory 146b. Thus, if the cache function engine unit 145 determines that the number NUNVS of unused blocks in the nonvolatile memory 146b is smaller than the difference between the numbers No and NNVS, the write-back process and the pass-through write process are executed. That is, the process shown in Figs. 7C and 7D is started.

Die Cachefunktion-Maschineneinheit 145 schickt Daten von etwa der Zahl NCACHE der für die identifizierte Spur verwendeten Blöcke in dem Cache-Speicher 146a und Daten in der Größe der zahl NNVS der für die identifizierte Spur in dem nicht flüchtigen Speicher 146b verwendeten Blöcke, zu dem Kanal- Adapter 142 (0) und dann instruiert die Cachefunktion- Maschineneinheit 145 den Kanal-Adapter 142(0) den Rückschreibprozeß und den Durchschleus-Einschreibprozeß zu starten, was bei dem Schritt 220 geschieht. Dann wird der Kanal- Adapter 142 (0) von dem Kanal 12 bei dem Schritt 221 abgetrennt. Der Kanal-Adapter 142 (0) schickt Anfragedaten des Rückschreibprozesses und des Durchschleus-Einschreibprozesses zu der Resourcen-Managereinheit 140,was bei dem Schritt 222 geschieht. Wenn die Resourcen-Managereinheit 140 die Anfragedaten empfängt, instruiert die Resourcen-Managereinheit 140 den Vorrichtungs-Adapter 143(0) den Rückschreibprozeß und den Durchschleus-Einschreibprozeß auszuführen, was beim Schritt 223 der Fall ist. Der Vorrichtungs-Adapter 143 (0) schickt dann eine Anfrage zum Erhalten der Rückschreibdaten zu der Cachefunktion-Maschineneinheit 145, was beim Schritt 224 erfolgt. Die Rückschreibdaten bestehen aus Daten, die der identifizierten Spur entsprechen und sie werden in dem nicht flüchtigen Speicher 146b gespeichert. In Abhängigkeit von der oben erwähnten Anfrage des Vorrichtungs-Adapters 143(0) liest die Cachefunktion-Maschineneinheit 145 die Rückschreibdaten aus dem nicht flüchtigen Speicher 146b aus und schickt diese bei dem Schritt 225 zu dem Vorrichtungs-Adapter 143 (0). Danach schreibt der Vorrichtungs-Adapter 143 (0) die Rückschreibdaten auf die identifizierte Spur in der ersten Platteneinheit 15(0), was bei dem Schritt 226 erfolgt. Dann informiert der Vorrichtungs-Adapter 143 (0) die Resourcen- Managereinheit 140 darüber, daß der Kanal-Adapter 142 (0) wieder an den Kanal 12 angekoppelt ist.The cache engine unit 145 sends data of approximately the number NCACHE of blocks used for the identified track in the cache memory 146a and data in the size of the number NNVS of blocks used for the identified track in the non-volatile memory 146b to the channel adapter 142(0) and then the cache engine unit 145 instructs the channel adapter 142(0) to start the write-back process and the pass-through write process, which occurs in step 220. Then, the channel adapter 142(0) is disconnected from the channel 12 in step 221. The channel adapter 142(0) sends request data of the write-back process and the pass-through write-in process to the resource manager unit 140 in step 222. When the resource manager unit 140 receives the request data, the resource manager unit 140 instructs the device adapter 143(0) to perform the write-back process and the pass-through write-in process in step 223. The device adapter 143(0) then sends a request to obtain the write-back data to the cache engine unit 145 in step 224. The write-back data consists of data corresponding to the identified track and is stored in the non-volatile memory 146b. In response to the above-mentioned request from the device adapter 143(0), the cache function engine unit 145 reads the write-back data from the non-volatile memory 146b and sends it to the device adapter 143(0) at step 225. Thereafter, the device adapter 143(0) writes the write-back data to the identified track in the first disk unit 15(0) at step 226. The device adapter 143(0) then informs the resource manager unit 140 that the channel adapter 142(0) is again coupled to the channel 12.

Wenn die Rückschreibdaten, die in dem nicht flüchtigen Speicher 146b gespeichert sind, auf die identifizierte Spur in der ersten Platteneinheit 15(0) eingeschrieben werden, wird der Prozeß, der in Fig.7D gezeigt ist, in der gleichen Weise ausgeführt wie der Durchschleus-Einschreibprozeß, der oben beschrieben wurde, so daß die Schreibdaten, die von dem Host-Computer 10 zugeführt wurden, sowohl in den Cache- Speicher 146b als auch in die erste Platteneinheit 15(0) eingeschrieben werden.When the write-back data stored in the nonvolatile memory 146b is written to the identified track in the first disk unit 15(0), the process shown in Fig.7D is carried out in the same manner as the pass-through write process described above, so that the write data supplied from the host computer 10 is written to both the cache memory 146b and the first disk unit 15(0).

Bei der oben erläuterten Ausführungsform der vorliegenden Erfindung hängt der Bezugswert NREF , der mit der Zahl NUNVS der nicht verwendeten Blöcke in dem nicht flüchtigen Speicher 146b verglichen wird, von der Wahrscheinlichkeit ab, das zugegriffene Daten in dem Cache-Speicher 146a (dem Daten- Treffer) vorhanden sind, die in dem Datenverarbeitungssystem und ähnlichem erhalten wurden.In the above-explained embodiment of the present invention, the reference value NREF which corresponds to the number NUNVS of unused blocks in the non-volatile memory 146b is compared depends on the probability that accessed data is present in the cache memory 146a (the data hit) obtained in the data processing system and the like.

Claims (5)

1. Steuersystem zum Steuern einer Hilfs-Speichereinheit (15(0), 15(1)) und einer Cache-Speichereinheit (146) mit einer Cache-Speichereinrichtung (146a) und einer nicht flüchtigen Speichereinrichtung (146b) auf der Grundlage eines Einschreibbefehls, der zusammen mit auf den neuesten Stand gebrachten Daten von einer externen Einheit (10, 12) zugeführt wird, um die auf den neuesten Stand gebrachten Daten in eine identifizierte Speicherzone der Hilfs-Speichereinheit (15(0), 15(1)) einzuschreiben, welches Steuersystem gekennzeichnet ist durch:1. A control system for controlling an auxiliary storage unit (15(0), 15(1)) and a cache storage unit (146) having a cache storage device (146a) and a non-volatile storage device (146b) on the basis of a write command supplied together with updated data from an external unit (10, 12) to write the updated data into an identified memory zone of the auxiliary storage unit (15(0), 15(1)), which control system is characterized by: eine erste Bestimmungseinrichtung (202), um zu bestimmen, ob ein nicht verwendeter Bereich in der nicht flüchtigen Speichereinrichtung (146b) kleiner ist als ein Bezugsbereich, wobei der nicht verwendete Bereich ein Bereich ist, der keine Daten enthält;a first determining means (202) for determining whether an unused area in the non-volatile memory means (146b) is smaller than a reference area, the unused area being an area that does not contain data; eine erste Verarbeitungseinrichtung zum Durchführen eines ersten Prozesses (210, 211), wenn die erste Bestimmungseinrichtung (202) bestimmt, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung (146b) nicht kleiner ist als der Bezugsbereich, wobei der erste Prozeß einen Schritt umfaßt, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache-Speichereinrichtung (146a) als auch die nicht flüchtigen Speichereinrichtung (146b) einzuschreiben, wobei die auf den neuesten Stand gebrachten Daten, die in die nicht flüchtige Speichereinrichtung (146b) eingeschrieben worden sind, in den identifizierten Speicherbereich der Hilfs-Speichereinrichtung (15(0), 15(1)) asynchron zu dem Einschreibbefehl eingeschrieben werden;first processing means for performing a first process (210, 211) when said first determining means (202) determines that said unused area in said non-volatile storage means (146b) is not smaller than said reference area, said first process comprising a step of writing said updated data into both said cache storage means (146a) and said non-volatile storage means (146b), said updated data written into said non-volatile storage means (146b) being written into said identified storage area the auxiliary storage device (15(0), 15(1)) is written asynchronously to the write command; eine zweite Bestimmungseinrichtung (204), die an die erste Bestimmungseinrichtung (202) gekoppelt ist, um zu be stimmen, ob die nicht flüchtige Speichereinrichtung (146b) Daten entsprechend der identifizierten Speicherzone enthält, wenn die erste Bestimmungseinrichtung (202) bestimmt hat, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung (146b) kleiner ist als der Bezugsbereich;a second determining means (204) coupled to the first determining means (202) for determining whether the non-volatile storage device (146b) contains data corresponding to the identified storage zone, if the first determining means (202) has determined that the unused area in the non-volatile storage device (146b) is smaller than the reference area; eine zweite Verarbeitungseinrichtung (240-244, 227-231) zur Durchführung eines zweiten Prozesses, wenn die zweite Bestimmungseinrichtung (204) bestimmt hat, daß die nicht flüchtige Speichereinrichtung (146b) keine Daten enthält, die der identifizierten Speicherzone entsprechen, wobei der zweite Prozeß einen Schritt umfaßt, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache-Speichereinrichtung (146a) als auch in die identifizierte Zone der Hilfs- Speichereinrichtung (15 (0), 15 (1)) einzuschreiben;second processing means (240-244, 227-231) for performing a second process when the second determining means (204) has determined that the non-volatile storage means (146b) does not contain data corresponding to the identified storage zone, the second process comprising a step of writing the updated data into both the cache storage means (146a) and the identified zone of the auxiliary storage means (15(0), 15(1)); eine dritte Bestimmungseinrichtung (205), die an die zweite Bestimmungseinrichtung (204) gekoppelt ist, um zu bestimmen, ob der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung (146b) dazu verwendet werden kann, um eine maximale Menge von Daten in die Hilfs-Speichereinheit (15(0), 15(1))eingespeichert werden kann oder nicht, wenn die zweite Bestimmungseinrichtung (204) bestimmt hat, daß die nicht flüchtige Speichereinrichtung (146b) Daten enthält, die der identifizierten Speicherzone entsprechen;a third determining means (205) coupled to the second determining means (204) for determining whether or not the unused area in the non-volatile storage device (146b) can be used to store a maximum amount of data in the auxiliary storage unit (15(0), 15(1)) when the second determining means (204) has determined that the non-volatile storage device (146b) contains data corresponding to the identified storage zone; eine dritte Verarbeitungseinrichtung zur Durchführung des ersten Prozesses (210, 211) , wenn die dritte Bestimmungseinrichtung (205) bestimmt hat, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung (146b) dazu verwendet werden kann, um die maximale Menge an Daten in die Hilfs-Speichereinheit (15(0),15(1)) einzuspeichern; unda third processing device for carrying out the first process (210, 211) when the third determining device (205) has determined that the unused area in the non-volatile storage device (146b) can be used to store the maximum amount of data in the auxiliary storage unit (15(0),15(1)); and eine vierte Verarbeitungseinrichtung (220-231) zur Durchführung eines dritten Prozesses, wenn die dritte Bestimmungseinrichtung (205) bestimmt hat, daß der nicht verwendete Bereich in der nicht flüchtigen Speichereinrichtung (146b) nicht zum Speichern der maximalen Menge der Daten in der Hilfs-Speichereinheit (15(0), 15(1)) verwendet werden kann, wobei der dritte Prozeß einen ersten Schritt enthält, um die Daten, die in der nicht flüchtigen Speichereinrichtung (146b) gespeichert worden sind, in die identifizierte Speicherzone der Hilfs-Speichereinheit (15(0), 15(1)) einzuschreiben, und einen zweiten Schritt enthält, um die auf den neuesten Stand gebrachten Daten sowohl in die Cache-Speichereinrichtung (146a) als auch in die identifizierte Speicherzone der Hilfs- Speichereinheit (15(0), 15(1)) nach dem ersten Schritt einzuschreiben.a fourth processing means (220-231) for performing a third process when the third determining means (205) has determined that the unused area in the non-volatile storage means (146b) cannot be used to store the maximum amount of data in the auxiliary storage unit (15(0), 15(1)), the third process including a first step of writing the data stored in the non-volatile storage device (146b) into the identified storage zone of the auxiliary storage unit (15(0), 15(1)), and a second step of writing the updated data into both the cache storage device (146a) and the identified storage zone of the auxiliary storage unit (15(0), 15(1)) after the first step. 2. Steuersystem nach Anspruch 1, dadurch gekennzeichnet, daß die Hilfs-Speichereinheit eine Platteneinheit aufweist.2. Control system according to claim 1, characterized in that the auxiliary storage unit comprises a disk unit. 3. Steuersystem nach Anspruch 2, dadurch gekennzeichnet, daß die maximale Menge der Daten, die in die Hilfs- Speichereinheit (15(0), 15(1)) einzuschreiben ist, als eine Spur der Platteneinheit definiert ist.3. Control system according to claim 2, characterized in that the maximum amount of data to be written into the auxiliary storage unit (15(0), 15(1)) is defined as one track of the disk unit. 4. Steuersystem nach Anspruch 3, dadurch gekennzeichnet, daß die Spur aus einer Vielzahl von Blöcken gebildet ist, und daß die Daten für jeden der Blöcke in bzw. aus der Hilfs-Speichereinheit (15(0), 15(1)) und die Cache- Speichereinheit {146) eingeschrieben bzw. ausgelesen werden können.4. Control system according to claim 3, characterized in that the track is formed of a plurality of blocks, and that the data for each of the blocks can be written into or read out from the auxiliary storage unit (15(0), 15(1)) and the cache storage unit (146). 5. Steuersystem nach Anspruch 4, dadurch gekennzeichnet, daß die erste Bestimmungseinrichtung eine Einrichtung aufweist, um zu bestimmen, ob eine Zahl der nicht verwendeten Blöcke in der nicht flüchtigen Speichereinrichtung (146b) kleiner ist als ein vorherbestimmter Bezugswert oder nicht.5. A control system according to claim 4, characterized in that the first determining means comprises means for determining whether or not a number of the unused blocks in the non-volatile memory means (146b) is less than a predetermined reference value.
DE69129101T 1990-12-21 1991-12-20 Control arrangement for cache memory unit Expired - Fee Related DE69129101T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2405167A JPH0816886B2 (en) 1990-12-21 1990-12-21 Fast writing method

Publications (2)

Publication Number Publication Date
DE69129101D1 DE69129101D1 (en) 1998-04-23
DE69129101T2 true DE69129101T2 (en) 1998-07-09

Family

ID=18514796

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69129101T Expired - Fee Related DE69129101T2 (en) 1990-12-21 1991-12-20 Control arrangement for cache memory unit

Country Status (4)

Country Link
US (1) US5581726A (en)
EP (1) EP0493012B1 (en)
JP (1) JPH0816886B2 (en)
DE (1) DE69129101T2 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
JP2976780B2 (en) * 1992-12-07 1999-11-10 松下電器産業株式会社 Information recording / reproducing device
JP3639352B2 (en) * 1995-06-28 2005-04-20 富士通株式会社 Wave analysis method and apparatus
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US5787466A (en) * 1996-05-01 1998-07-28 Sun Microsystems, Inc. Multi-tier cache and method for implementing such a system
US5732238A (en) * 1996-06-12 1998-03-24 Storage Computer Corporation Non-volatile cache for providing data integrity in operation with a volatile demand paging cache in a data storage system
GB2317722B (en) * 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US7765378B1 (en) * 2001-06-01 2010-07-27 Sanbolic, Inc. Utilization of memory storage
US6854038B2 (en) * 2002-06-06 2005-02-08 International Business Machines Corporation Global status journaling in NVS
FI20022297A (en) * 2002-12-31 2004-07-01 Nokia Corp A method for comparing the contents of memory components
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7346401B2 (en) * 2004-05-25 2008-03-18 International Business Machines Corporation Systems and methods for providing constrained optimization using adaptive regulatory control
EP1832131B1 (en) * 2004-12-27 2009-04-29 Research In Motion Limited Method and device for writing data in a wireless handheld communications device between volatile and non-volatile memories
JP4768504B2 (en) * 2006-04-28 2011-09-07 株式会社東芝 Storage device using nonvolatile flash memory
JP5742542B2 (en) * 2011-07-25 2015-07-01 富士通株式会社 Storage apparatus and load state reduction method thereof
US9606929B2 (en) * 2011-11-08 2017-03-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated NVRAM
US11237758B2 (en) * 2016-08-06 2022-02-01 Wolley Inc. Apparatus and method of wear leveling for storage class memory using address cache
CN108446356B (en) * 2018-03-12 2023-08-29 上海哔哩哔哩科技有限公司 Data caching method, server and data caching system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916605A (en) * 1984-03-27 1990-04-10 International Business Machines Corporation Fast write operations
EP0452991A3 (en) * 1985-05-29 1992-04-15 Kabushiki Kaisha Toshiba Cache system adopting an lru system
JPS6476346A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Disk cache control system
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
US5170466A (en) * 1989-10-10 1992-12-08 Unisys Corporation Storage/retrieval system for document

Also Published As

Publication number Publication date
EP0493012B1 (en) 1998-03-18
JPH04220738A (en) 1992-08-11
EP0493012A2 (en) 1992-07-01
DE69129101D1 (en) 1998-04-23
JPH0816886B2 (en) 1996-02-21
US5581726A (en) 1996-12-03
EP0493012A3 (en) 1992-12-30

Similar Documents

Publication Publication Date Title
DE69129101T2 (en) Control arrangement for cache memory unit
DE3803759C2 (en)
DE69124323T2 (en) Method for recording data in an EEPROM memory card and associated memory card system
DE3854481T2 (en) Data processing method in a decentralized processing system.
DE3851285T2 (en) Display control system.
DE2844357A1 (en) MEMORY EXPANSION
DE1499182C3 (en) Data storage system
DE2517302C2 (en) Multi-program data processing device
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE3909896A1 (en) DEVICE AND METHOD FOR ACCESSING DATA STORED IN A PAGE STORAGE
DE3439302A1 (en) STORAGE CONTROL DEVICE
DE3311948C2 (en)
DE60207641T2 (en) Semiconductor memory, information device and method for determining memory access time of the semiconductor memory
DE69119149T2 (en) Structure for direct memory-to-memory transfer
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
DE3726168A1 (en) METHOD AND DEVICE FOR CONTROLLING THE DATA TRANSFER BETWEEN STORAGE OF A DATA PROCESSING SYSTEM
AT389951B (en) DATA TRANSFER DEVICE
DE2432608A1 (en) MEMORY ARRANGEMENT FOR DATA PROCESSING DEVICES
DE60300360T2 (en) Information storage device
DE68914577T2 (en) Buffer storage device.
DE19737182A1 (en) Program control data alteration method
DE69023395T2 (en) Arbitration circuit.
DE68924860T2 (en) Extended storage arrangement.
DE3850212T2 (en) Multiple CPU system with shared memory.
EP1076856A1 (en) Cache memory for two-dimensional data fields

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee