DE3889678T2 - Datenverarbeitungsanordnung und Verfahren mit Massenspeicherpufferverwaltung. - Google Patents

Datenverarbeitungsanordnung und Verfahren mit Massenspeicherpufferverwaltung.

Info

Publication number
DE3889678T2
DE3889678T2 DE3889678T DE3889678T DE3889678T2 DE 3889678 T2 DE3889678 T2 DE 3889678T2 DE 3889678 T DE3889678 T DE 3889678T DE 3889678 T DE3889678 T DE 3889678T DE 3889678 T2 DE3889678 T2 DE 3889678T2
Authority
DE
Germany
Prior art keywords
data
buffer
unrequested
processor
location
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
DE3889678T
Other languages
English (en)
Other versions
DE3889678D1 (de
Inventor
Gerald George Barrett
Syed Zahid Pasha
Amal Ahmed Shaheen-Gouda
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3889678D1 publication Critical patent/DE3889678D1/de
Application granted granted Critical
Publication of DE3889678T2 publication Critical patent/DE3889678T2/de
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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

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

  • Diese Erfindung bezieht sich auf den Zugriff auf Daten auf einer Massenspeichereinrichtung und im einzelnen auf die Verwaltung eines Puffers in einem an die Massenspeichereinrichtung angeschlossen Speicheradapter.
  • Bei den meisten Datenverarbeitungssystemen sind Massenspeichereinrichtungen erforderlich, die eine große Menge von Daten speichern Als Beispiel sei hier die Hard File genannt. Die Hard File verfügt über mehrere magnetisch codierte Oberflächen zur magnetischen Speicherung von Daten. Zur Speicherung und Wiedergewinnung der Daten wird ein magnetischer Sensor oder Kopf über die Oberfläche bewegt. Die Oberflächen werden mit hoher Geschwindigkeit gedreht. Die Daten werden auf den Oberflächen in konzentrischen Kanälen, Spuren genannt, gespeichert. Jede Spur hat eine Reihe sequentiell angeordneter Sektoren, die zur Speicherung und Wiedergewinnung von Daten adressierfähig sind. Ein über einer Spur angeordneter Kopf muß zum Lesen oder Schreiben von Daten in den Sektoren dieser Spur nicht bewegt werden, da die Drehung der Oberfläche die Sektoren dieser Spur schließlich in die Nähe des Kopfes bringt. Befinden sich Informationen auf einer anderen Spur, muß der Kopf zum Lesen oder Schreiben von Daten in Sektoren dieser Spur über diese Spur verschoben werden. Die Bewegung des Kopfes wird als Suchoperation bezeichnet.
  • Als Schnittstelle zu den Hard File-Massenspeichereinrichtungen wurden kleine Datenpuffer verwendet. Die Verwaltung von Daten in diesen Puffern erfolgte traditionell nach einem First-in-First-out-Prinzip. Mit anderen Worten, die als erste in den Puffer eingegebenen Daten bzw. die ältesten Daten werden auch als erste wieder aus dem Puffer ausgegeben. Diese Puffer werden sowohl für Lese- als auch für Schreiboperationen an Speicherplätzen auf der Hard Fiie verwendet. Eine andere Technik zur Datenverwaltung in einem solchen Puffer ist das Last-in-first-out-Prinzip. Hierbei werden die dem Puffer zuletzt gelieferten Daten als erste wieder aus dem Puffer ausgegeben.
  • In US-A-4 437 155 wird ein Speichersubsystem mit einem Massenspeicher und einem Cache-Speicher zum Speichern von Datensegmenten beschrieben, durch das den Datensegmenten verschiedene Altersstufen zugeordnet werden, je nachdem, ob die Segmente in den Cache-Speicher eingebracht wurden, weil auf sie von einem Host-Prozessor zugegriffen wurde, oder ob sie aufgrund einer Spekulation, daß sie Daten enthalten, auf die der Host-Prozessor in Kürze zugreifen will, in den Cache-Speicher eingebracht wurden.
  • In US-A-4 530 055 wird ein Gerät zur Regelung des Ausspeicherns von beschriebenen Segmenten aus dem Cache-Speicher in einen Massenspeicher beschrieben; hierbei werden diejenigen Segmente, die die längste Zeit im Cache-Speicher resident waren, als erste ausgespeichert, und die Ausspeicherung findet nur dann statt, wenn das Alter seit dem ersten Beschreiben des ältesten beschriebenen Segments einem varbestimmten Schwellenalter entspricht oder größer als dieses ist.
  • Es ist Aufgabe der vorliegenden Erfindung, einen Datenspeicher bereitzustellen, der als Schnittstelle zu einer Massenspeichereinrichtung dient, und der eine Technik zur Optimierung der Speicherung von Daten enthält, die nicht ausdrücklich angefordert wurden, deren Anforderung jedoch erwartet wird.
  • Gemäß der Erfindung wird eine Methode für den Betrieb eines Datenverarbeitungssystems bereitgestellt, welches einen Systemprozessor, ein Massenspeichermittel und einen Speicheradapter umfaßt, der einen Speicherpuffer enthält, welcher den Systemprozessor mit dem Massenspeichermittel koppelt, wobei die Methode die Schritte nach Anspruch 1 umfaßt.
  • Desweiteren wird gemäß der Erfindung ein Datenverarbeitungssystem nach Anspruch 5 bereitgestellt.
  • In einem bevorzugten Ausführungsbeispiel der Erfindung, das zu einem späteren Zeitpunkt ausführlich beschrieben werden soll, wird eine Massenspeichereinrichtung an eine Schnittstelle angeschlossen, um die Speicherung oder Wiedergewinnung von Informationen von der Speichereinrichtung zu steuern. Die Speicherschnittstelle umfaßt einen Datenpuffer mit einer Vielzahl von Datenblöcken, jede zur Speicherung von Daten in Reaktion auf einen Befehl von einem Speichertreiber. Die Speicherkapazität des Datenpuffers reicht aus, um Daten in Reaktion auf alle Befehle zu speichern, die von der Schnittstelle für die angeschlossenen Speichervorrichtungen verarbeitet werden können, und desweiteren zur Speicherung von Daten für die nicht angeforderten Datenbefehle vom Speichertreiber.
  • Der Speichertreiber regelt die Speicherung von Daten in den Puffer durch Reservierung von Pufferblöcken in Reaktion auf die Zugriffsbefehle der zugreifenden Speichereinrichtung vom Prozessor und in Antwort auf nicht angeforderte Datenbefehle. Blöcke, die für Daten reserviert wurden, die in Antwort auf einen Prozessorbefehl auf diese Einrichtung geschrieben beziehungsweise von ihr gelesen wurden, bleiben nur während der Ausführung des Befehls reserviert. Für nicht angeforderte Daten reservierte Blöcke bleiben in diesem Zustand, bis die Daten vom Prozessor angefordert werden oder der Block vom Gerätetreiber neu zugewiesen wird. Der Speichertreiber stellt fest, wie lange die Daten für die nicht angeforderten Datenbefehle in den Blöcken gespeichert sind. Der Treiber ordnet dann in Antwort auf Speicherzugriffsbefehle vom Prozessor Datenpufferblöcke neu zu, wenn keine Blöcke mehr verfügbar sind. Diese Neuzuordnung wird vom Speichertreiber so ausgeführt, daß er bestimmt, welche der Blöcke, in denen Daten in Antwort auf einen Befehl für nicht angeforderte Daten gespeichert sind, Daten eines Alters gespeichert halten, das ein vorbestimmtes Maximalalter überschreitet. Sind keine Datenblöcke mit Daten vorhanden, deren Speicherzeit dieses Maximalalter überschreitet, ordnet der Systemtreiber dann die Datenblöcke, in denen Daten in Antwort auf Befehle für nicht angeforderte Daten gespeichert sind, welche die kürzeste Speicherzeit haben, zu.
  • Das Ausführungsbeispiel der Erfindung soll nun mit Hilfe von Beispielen und unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • Figur 1 ein Blockdiagramm eines Datenverarbeitungssystems, welches die Erfindung enthält;
  • Figur 2 ein Blockdiagramm, das die vom Systemtreiber und vom Schnittstellenadapter verwendete Datenstruktur veranschaulicht;
  • Figur 3 ein Zustandsdiagramm für den Schnittstellen-Datenpuffer für Lese- und Schreiboperationen;
  • Figur 4 ein Flußdiagramm, das die Prozeduren des Systemtreibers zur Verwaltung des Schnittstellenadapter-Cache veranschaulicht; und
  • Figur 5 ein Flußdiagramm, das die Prozeduren des Speichertreibers für die Bedienung verschiedener Speichereinrichtungen darstellt.
  • Die vorliegende Erfindung bezieht sich auf die Verwaltung eines an mehrere Massenspeichereinrichtungen angeschlossenen Datenpuffers. In dem bevorzugten Ausführungsbeispiel ist der Datenpuffer in einer an drei Hard File-Platten angeschlossenen Schnittstelle enthalten. Die Schnittstelle spricht auf ein im Systemprozessor enthaltenes Speichertreiberprogramm an, welches die Befehle zum Speichern und Wiedergewinnen der Daten von diesen Festplatten liefert. Die wiedergewonnenen und an die Festplatte gesendeten Daten werden im Datenpuffer zwischengespeichert. Dieser Speichertreiber kann Lesebefehle vom System vorwegnehmen. In Antwort auf diese Vorwegnahme werden spezielle Lesebefehle ausgegeben. Diese Lesebefehle werden als "Vorauslese"-Befehle bezeichnet und bewirken, daß Daten von den Festplatten gelesen und im Datenpuffer gespeichert werden. Auch normale Lese- und Schreibbefehle bewirken, daß Daten im Puffer gespeichert werden, jedoch werden die Daten in diesem Fall sofort in den Systemspeicher oder die Hard File eingegeben. Beim Vorauslesen werden jedoch die Daten weiter gespeichert, bis ein tatsächlicher Lesebefehl empfangen wird.
  • Das vorliegende System verwaltet die Speicherung von Vorauslesedaten in diesem Puffer optimal.
  • Figur 1 ist ein Blockdiagramm eines Datenverarbeitungssystems. Der Systemprozessor und der Speicher 10 sind über einen Bus 12 an eine Adapter-Schnittstelle 14 angeschlossen. Die Adapter-Schnittstelle ist an drei Hard Files 16, 18 und 20 angeschlossen.
  • Figur 2 veranschaulicht in symbolischer Form die im Prozessor 30 ausgeführte Speichertreiber-Software, welche die Freigabeanforderungen von drei Befehlswarteschlangen 32, 34 und 36 steuert. Die Befehlswarteschlangen 32, 34 und 36 entsprechen der Platte 16, 18 beziehungsweise 30. Diese Befehlswarteschlangen speichern Lese- und Schreibbefehle von der im Prozessor 30 ausgeführten Anwendersoftware. Der im Prozessor 30 ausgeführte Speichertreiber steuert auch eine Tabelle 28, die den Status der Daten in einem Puffer enthält. Über einen I/O-Bus 12 ist der Adapter 14 an den Systemprozessor und den Speicher 10 angeschlossen. Dieser Adapter 14 enthält einen Adapter-Cache 54. Der Adapter 14 enthält weiterhin mehrere Adapter-Warteschlangenelemente 38, 40, 42, 44, 46, 48, 50 und 52. Die Adapter-Warteschlangenelemente 38 und 40 sind für die Platte 16 reserviert. Entsprechend sind die Adapter-Warteschlangenelemente 42 und 44 für die Platte 18 reserviert und die Adapter-Warteschlangenelemente 46 und 48 sind für die Platte 20 reserviert. Die Adapter-Warteschlan genelemente 50 und 52 sind für Befehle zur Verwaltung des Cache 54 reserviert. Der Adapter 14 enthält außerdem einen Controller 56, der auf Befehle vom Speichertreiber im Systemprozessor und Speicher 10 anspricht.
  • In dem bevorzugten Ausführungsbeispiel ist der Cache 54 ein 16 K Byte RAM, der in 32 Blöcke von jeweils 512 Bytes unterteilt ist. Die Tabelle 28 im Systemprozessorspeicher 10 enthält den Status von jedem dieser Blöcke. Der im Prozessor 30 ausführende Gerätetreiber gibt vier Befehlsarten aus. Die beiden ersten, Lesen und Schreiben, werden in Antwort auf Speicherzügriffsbefehle von im Prozessor 30 laufenden Anwendungsprogrammen ausgegeben. In Antwort auf diese Befehle stellt der Gerätetreiber dem Adapter 14 die Lese- und Schreibbefehle zur Verfügung. Diese Befehle werden in den Adapter-Warteschlangenelementen, zum Beispiel 38 und 40, gespeichert. Ist der Befehl ein Schreibbefehl, werden die Daten für den Schreibbefehl in einem Datenblock im Speicher 54 gespeichert, bis sie in die betreffende Hard File geschrieben werden können. Ist der Befehl ein Lesebefehl, werden die von der Hard File gelesenen Daten vorübergehend in einem Datenblock im Cache 54 gespeichert. Der Gerätetreiber im Prozessor 30 liefert außerdem einen Vorauslesebefehl, bei dem es sich um einen Vorwegnahmebefehl handelt, der den künftigen Lesebefehl für einen bestimmten Datenblock vorwegnimmt. Auch Daten, die in Antwort auf die Vorweglesebefehle gelesen werden, werden im Adapter-Cache 54 gespeichert. Im optimalen Fall bleiben diese Daten solange im Cache 54 gespeichert, bis für diese Daten ein Lesebefehl vom Systemtreiber empfangen wird. Wird ein solcher Befehl empfangen, liefert der Systemtreiber und Prozessor 30 einen Cache-Lesebefehl, der in den Adapter-Warteschlangenelementen 50 oder 52 im Adapter 14 gespeichert ist. Die Daten werden somit direkt vom Cache 54 gelesen, ohne daß auf die Platte zugegriffen werden muß, und werden unmittelbar zum Systemprozessor und zum Speicher 10 gesendet.
  • Wenn genug Vorauslesebefehle ausgeführt sind und auf die Daten für diese Vorauslesebefehle nicht sofort von Lesebefehlen von der Anwendungssoftware im Prozessor 30 zugegriffen wird, füllt sich natürlich der Cache 54 mit diesen Daten an und hat keinen Raum mehr für Daten für Lese- und Schreibbefehle vom Prozessor. Es können zusätzlich keine anderen Vorauslesebefehle ausgeführt werden. Das vorliegende System bietet durch Verwalten der im Cache enthaltenen Daten für dieses Problem eine Lösung. Der im Prozessor 13 ausführende Systemtreiber verwaltet einen Datensatz, dargestellt durch Tabelle 28, der den Status jedes Blocks im Adapter-Cache 54 genau aufführt. Enthält der Block Daten, die in Antwort auf einen Vorauslesebefehl gespeichert wurden, verwaltet der Gerätetreiber- im Prozessor 30 außerdem eine Zahl, die angibt, wie lange diese Daten im Cache 54 bereits gespeichert sind.
  • Figur 3 ist ein vereinfachtes Zustands-Flußdiagramm, das die Verwaltung von Datenblöcken im Cache 54 für Lese- und Schreibbefehle vom Systemtreiber im Prozessor 30 veranschaulicht. In Figur 3 ist ein Datenblock verfügbar, Status 60, bis er vom Treiber im Prozessor 30 bei Empfang eines Lesebefehls reserviert wird. An diesem Punkt reserviert dann der Systemtreiber im Prozessor 30 den Datenblock für die Speicherung der von der gelesenen Platte empfangenen Daten, Status 62. Der Block wird erneut vom Systemtreiber im Prozessor 30 verfügbar gemacht, wenn die Leseoperation durch die Übertragung der Daten aus dem Datenblock im Speicher 54 zum Prozessor 30 abgeschlossen ist. In dem bevorzugten Ausführungsbeispiel ist dies normalerweise ein Transfer mit direktem Speicherzugriff (DMA-Transfer). Daher wird der Status des Datenblocks im Cache 54 zum Status 60 zurückgeführt und ist verfügbar. Entsprechend müssen bei Ausführung eines Schreibbefehls die Schreibdaten im Datenblock im Cache 54 gespeichert werden. Deswegen reserviert der Systemtreiber im Prozessor 30 im Cache 54 einen Block, wie durch Status 64 dargestellt. Ist der Schreibbefehl abgeschlossen, macht der Systemtreiber im Prozessor 30 diesen Datenblock dann verfügbar. Bezugnehmend auf Figur 2 verwaltet der Systemtreiber im Prozessor 30 einen Datensatz von jedem Datenblock und vom Status dieses Datenblocks, wie durch Tabelle 28 veranschaulicht wird.
  • Figur 3 ist vollständig, da sie die Lese- und Schreibbefehle vom Systemtreiber im Prozessor 30 anspricht. Das Zustandsdiagramm in Figur 3 spricht jedoch nicht die Vorauslesebefehle oder die Cache-Lesebefehle an. Diese Befehle werden in den Software-Flußdiagrammen der Figuren 4 und 5 noch ausführlich besprochen.
  • Figur 4 ist ein Flußdiagramm für die Abläufe im Systemtreiber in Prozessor 30 zur Verwaltung des Cache 54 im Adapter 14. Der Fluß beginnt bei 100 und wird mit Schritt 102 fortgesetzt. In Schritt 102 erhält der Systemtreiber im Prozessor 30 eine Anforderung, Daten von einem der Massenspeicher, Platte 16, 18 oder 20, zu lesen oder in einen dieser Massenspeicher zu schreiben. In Schritt 104 stellt der Systemtreiber in Prozessor 30 fest, ob die Anforderung besagt, daß ein Datenblock gelesen werden muß, der vorher im Cache 54 als Ergebnis eines Vorauslesebefehls gespeichert wurde. Wenn ja, fährt der Treiber mit Schritt 106 fort und gibt einen Cache-Lesebefehl aus, um den betreffenden Block im Cache 54 zu lesen. Der Treiber fährt mit Schritt 108 fort und verändert den Cache-Blockstatus (Tabelle 28 in Figur 2), der für eine Leseoperation reserviert werden soll. Der Treiber fährt dann mit Schritt 122 fort, der später noch besprochen werden soll.
  • Kehren wir zu Schritt 104 zurück; bezieht sich die Anforderung von der Anwendersoftware in Prozessor 30 nicht auf das Lesen eines im Cache 54 enthaltenen Blocks, fährt der Treiber mit Schritt 110 fort und zählt das Alter aller im Cache 54 gespeicherten Vorausleseblöcke hoch. Der Systemtreiber fährt dann mit Schritt 112 fort und stellt fest, ob ein Cache-Block verfügbar ist. Wenn ja, reserviert der Treiber in Schritt 114 einen Block entweder für die Lesebefehl- oder die Schreibbefehldaten. Der Treiber fährt dann mit dem später noch zu besprechenden Schritt 122 fort.
  • Kehren wir zu Schritt 112 zurück; ist im Cache 54 kein Cache- Block verfügbar, fährt der Treiber mit Schritt 116 fort, um festzustellen, ob ein Block vorhanden ist, in dem Vorauslesedaten gespeichert werden, deren Alter dem Maximalalter entspricht.
  • In dem bevorzugten Ausführungsbeispiel ist 5 die höchste Alterszahl. Wenn ja, fährt der Treiber mit Schritt 118 fort, um diesen Block (das heißt, den Block mit dem Maximalalter) für die Lese-/Schreibdaten zu reservieren. Ist mehr als ein Block mit einem Maximalalter vorhanden, wird der Block verwendet, der das Maximalalter zuletzt erreicht. Der Treiber fährt dann mit Schritt 122 fort Kehren wir zu Schritt 116 zurück; sind keine Vorausleseblöcke mit dem Maximalalter vorhanden, fährt der Treiber mit Schritt 120 fort, um den Datenblock im Cache 54 zu finden, im dem Daten für einen Vorauslesebefehl gespeichert sind, der das Minimalalter hat. Der Treiber reserviert dann diesen Block für die Lese-/Schreibdaten. Der Treiber fährt anschließend mit Schritt 122 fort.
  • In Schritt 122 stellt der Treiber fest, ob ein Vorauslesebefehl ansteht Wenn ja, kehrt der Treiber anschließend zu Schritt 112 zurück. Wenn nein, fährt der Treiber mit der im Flußdiagramm in Figur 5 dargestellten Software durch die Übergangsstelle 80 fort.
  • In Figur 5 fährt der Treiber mit Schritt 82 fort, um festzustellen, ob das aktuelle Gerät eine weitere Bedienung benötigt, das heißt, ob es weitere Lese- oder Schreibbefehle gibt, die verarbeitet werden müssen. Wenn ja, fährt der Treiber mit Schritt 104 (Figur 4) durch die Übergangsstelle 84 fort. Kehren wir zu Schritt 82 zurück; benötigt dieses aktuelle Gerät keine weitere Bedienung, fährt der Treiber mit Schritt 86 fort, um zum nächsten Gerät zu gehen. In Schritt 88 stellt der Treiber fest, ob der Bedienungszyklus abgeschlossen ist. Wenn auf alle Geräte zugegriffen wurde und keines der Geräte eine Bedienung angefordert hat, ist der Bedienungszyklus abgeschlossen. Wenn jedoch von einem Gerät eine Bedienung angefordert wird, muß der Treiber erneut damit beginnen, alle Geräte zu bedienen, bis alle Geräte abgefragt sind und keines der Geräte eine Bedienung anfordert. Ist der Zyklus abgeschlossen und keines der Geräte hat während eines Zyklus eine Bedienung angefordert, geht der Treiber durch die Übergangsstelle 92 ab und kehrt zu der in Prozessor 30 ausgeführten Anwendersoftware zurück. Wenn nicht, fährt der Treiber mit Schritt 90 fort, um festzustellen, ob dieses Gerät jetzt eine Bedienung anfordert. Wenn nicht, kehrt der Treiber zu Schritt 86 zurück, um den Gerätezähler hochzuzählen und zum nächsten Gerät weiterzugehen. Wenn das aktuelle Gerät in Schritt 90 keine Bedienung anfordert, fährt der Treiber durch die Übergangsstelle 84 mit Schritt 102 fort (Figur 4).

Claims (8)

1. Eine Methode zum Betrieb eines Datenverarbeitungssystems, einen Systemprozessor, ein Massenspeichermittel und einen Speicheradapter aufweisend, mit einem Speicherpuffer, der den Systemprozessor mit dem Massenspeichermittel koppelt, wobei die Methode folgende Schritte umfaßt:
Transfer von Daten zwischen dem Massenspeichermittel und dem Puffer in Antwort auf angeforderte Lese- und Schreibdatenbefehle vom Prozessor und auch in Antwort auf Vorauslese-Datenbefehle für nicht angeforderte Daten, die vom Prozessor noch nicht unmittelbar benötigt werden;
vorübergehendes Halten der angeforderten Daten im Puffer, bis auf die angeforderten Daten vom Prozessor Zugegriffen wird;
Speichern nicht angeforderter Daten im Puffer, bis entweder auf die nicht angeforderten Daten in Antwort auf einen nachfolgenden Lesedatenbefehl vom Prozessor Zugegriffen wird, oder bis eine Stelle im Puffer, an der nicht angeforderte Daten gespeichert werden, zum Speichern von Daten in Antwort auf einen nachfolgenden Datenbefehl benötigt wird; und
wenn der Puffer voll ist, Feststellen, an welcher Stelle im Puffer nicht angeforderte Daten gespeichert sind, die im Puffer während eines Zeitraums resident sind, der einem vorbestimmten Maximalzeitraum entspricht oder diesen überschreitet, und Speichern angeforderter oder nicht angeforderter Daten an der so festgestellten Stelle.
2. Eine Methode nach Anspruch 1, bei der Daten in dem Puffermittel in Datenblöcken gespeichert werden, und jedem Block von nicht angeforderten Daten eine Anzeige zugeordnet ist, die die Verweilzeit dieser Daten im Puffer anzeigt, wobei die Methode bei Empfang eines Befehls mit angeforderten Daten vom Prozessor desweiteren den Schritt der Aktualisierung der genannten Anzeige für jeden Block nicht angeforderter Daten umfaßt.
3. Eine Methode nach Anspruch 1 oder 2, bei der, wenn in mehr als einer Pufferstelle nicht angeforderte Daten enthalten sind, die im Puffer während einer Verweilzeit resident sind, die der Maximalzeit entspricht oder diese überschreitet, diese Daten dann an der Puffersteile gespeichert werden, die nicht angeforderte Daten enthält, und die die niedrigste Verweilzeit der genannten mehr als einen Pufferstelie aufweist.
4. Eine Methode nach jedem der vorangehenden Ansprüche, bei der, wenn keine der Pufferstellen, die nicht angeforderte Daten enthält, eine Verweilzeit hat, die größer als oder entsprechend dem vorbestimmten Zeitraum ist, dann die Steile mit nicht angeforderten Daten mit der kürzesten Verweilzeit zur Speicherung von angeforderten oder nicht angeforderten Daten verwendet wird.
5. Ein Datenverarbeitungssystem, das folgendes aufweist:
mindestens ein Massenspeichermittel (16) zum Speichern von Daten;
einen Speicheradapter mit einem Datenpuffer zum Koppeln des Massenspeichermittels mit einem Systemprozessor;
Speichertreibermittel, die die Befehle mit angeforderten Daten in Antwort auf Speicherzugriffsbefehle vom Systemprozessor zum Speicheradapter übertragen; zum Weitergeben von Vorauslese-Datenbefehlen zum Speicherschnittsteilenmittel für nicht angeforderte Daten, die vom Prozessor nicht sofort benötigt werden; zum Speichern von angeforderten Daten im Datenpuffer, bis auf die angeforderten Daten vom Prozessor zugegriffen wird; und zum Speichern vön nicht angeforderten Daten im Datenpuffer, bis entweder auf die nicht angeforderten Daten nachfolgend vom Prozessor zugegriffen wird, oder bis eine Stelle, in der nicht angeforderte Daten gespeichert werden, zur Speicherung von Daten benötigt wird, die in einem nachfolgenden Datenbefehi spezifiziert werden, wobei dann das Speichertreibermittel die Pufferstelie bestimmt, die nicht angeforderte Daten enthält, weiche im Puffer während eines Zeitraums resident waren, der größer als oder entsprechend dem vorbestimmten Maximalzeitraum ist, und angeforderte oder nicht angeforderte Daten in der so bestimmten Pufferstelle speichert
6. Ein Datenverarbeitungssystem nach Anspruch 5, bei dem das Datenpuffermittel eine Vielzahl von Datenblöcken umfaßt, wobei jedem Block von nicht angeforderten Daten eine Anzeige zugeordnet ist, die den Verweiizeitraum dieser Daten in dem Puffermittel anzeigt, und wobei das Speichertreibermittel bei Empfang eines Befehls mit angeforderten Daten die Anzeige für jeden Block von nicht angeforderten Daten aktuaiisieren kann.
7. Ein Datenverarbeitungssystem nach Anspruch 5 oder 6, bei dem, wenn mehr als eine Pufferstelle nicht angeforderte Daten enthält, die im Puffer während einer Verweilzeit resident waren, die der Maximaizeit entspricht oder diese überschreitet, diese Daten dann an der Pufferstelle gespeichert werden, die nicht angeforderte Daten enthält, welche die niedrigste Verweilzeit der genannten mehr als einen Pufferstelle aufweisen.
8. Ein Datenverarbeitungssystem nach jedem der Ansprüche 5 bis 7, bei dem, wenn keine Pufferstelle, die nicht angeforderte Daten enthält, eine Verweiizeit aufweist, die größer als oder entsprechend der vorbestimmten Zeit ist, dann die Stelle mit nicht angeforderten Daten mit der kürzesten Verweilzeit zur Speicherung von angeforderten oder nicht angeforderten Daten verwendet wird.
DE3889678T 1987-02-13 1988-02-05 Datenverarbeitungsanordnung und Verfahren mit Massenspeicherpufferverwaltung. Expired - Fee Related DE3889678T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1490187A 1987-02-13 1987-02-13
SG148594A SG148594G (en) 1987-02-13 1994-10-13 Data processing system and method with management of a mass storage buffer

Publications (2)

Publication Number Publication Date
DE3889678D1 DE3889678D1 (de) 1994-06-30
DE3889678T2 true DE3889678T2 (de) 1994-12-01

Family

ID=26664423

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3889678T Expired - Fee Related DE3889678T2 (de) 1987-02-13 1988-02-05 Datenverarbeitungsanordnung und Verfahren mit Massenspeicherpufferverwaltung.

Country Status (4)

Country Link
EP (1) EP0278425B1 (de)
JP (1) JPH0650479B2 (de)
DE (1) DE3889678T2 (de)
SG (1) SG148594G (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9019891D0 (en) * 1990-09-12 1990-10-24 Di Data Ltd Computer memory array control
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437155A (en) * 1980-11-14 1984-03-13 Sperry Corporation Cache/disk subsystem with dual aging of cache entries
JPS57172457A (en) * 1981-04-17 1982-10-23 Hitachi Ltd Secondary storage controller
US4536836A (en) * 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
JPS60230247A (ja) * 1984-04-27 1985-11-15 Panafacom Ltd デイスク制御装置
JPS61235957A (ja) * 1985-04-11 1986-10-21 Nec Corp デ−タ制御方式

Also Published As

Publication number Publication date
DE3889678D1 (de) 1994-06-30
JPH0650479B2 (ja) 1994-06-29
EP0278425B1 (de) 1994-05-25
JPS63204448A (ja) 1988-08-24
EP0278425A2 (de) 1988-08-17
SG148594G (en) 1995-03-17
EP0278425A3 (en) 1990-08-01

Similar Documents

Publication Publication Date Title
DE68929229T2 (de) Steuergerät mit einem Cache-Speicher und Verfahren zur Steuerung des Cache-Speichers
DE3851730T2 (de) Cachespeicherverwaltung für ein peripheres Ratenspeichersubsystem.
DE69417874T2 (de) Verfahren zur aufgabenzuordnung zwischen zwei armen die auf der gleichen magnetplatte auf einem einzelplattenantrieb benutzt werden
DE69225636T2 (de) Automatisierte Speicherbibliothek
DE69412775T2 (de) System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung
DE68920196T2 (de) Methode zur Behandlung von Daten in einer Dataspeicherungsbibliothek.
DE69332022T2 (de) System und verfahren zur dynamischen cachespeicherverwaltungssteuerung.
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE69032781T2 (de) System und Verfahren zur Optimierung von Cachespeicherung in einem auf Plattenspeicher basierendem Rechnersystem
DE60035774T2 (de) Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung
DE69535330T2 (de) Caching-System mit Explitzer Folgeliste
DE19648752B4 (de) Befehlsausführungsverfahren für ein CD-ROM Laufwerk
DE3587400T2 (de) Datenspeicherungsanordnung.
DE112012001302B4 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE69021143T2 (de) Verfahren zur wirksamen Verwendung von auswechselbaren Aufzeichnungsmedien für Daten.
DE60033994T2 (de) Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk
DE3650333T2 (de) Verfahren zur Zustandsverwaltung gemeinsamer Betriebsmittel für ein komplexes Rechnersystem.
DE69031862T2 (de) Verfahren zum Lastausgleich für Kanälen und Verwendung desselben in einem Datenverarbeitungssystem
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE10050171B4 (de) Verfahren zur Steuerung von Cache-Speichern
DE4029980C2 (de) Umspeicherverfahren und Umspeichersystem zur Erhöhung der Systemzuverlässigkeit
DE69132449T2 (de) Verfahren und Einrichtung zur Steuerung eines Mehrsegment-Cache-Speichers
DE69527634T2 (de) Rechner-Cachespeichersystem
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache

Legal Events

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