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
Links
- 238000000034 method Methods 0.000 title claims description 13
- 239000012536 storage buffer Substances 0.000 title 1
- 239000000872 buffer Substances 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 18
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing 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.
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)
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)
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 | デ−タ制御方式 |
-
1987
- 1987-12-18 JP JP62319128A patent/JPH0650479B2/ja not_active Expired - Fee Related
-
1988
- 1988-02-05 EP EP88101695A patent/EP0278425B1/de not_active Expired - Lifetime
- 1988-02-05 DE DE3889678T patent/DE3889678T2/de not_active Expired - Fee Related
-
1994
- 1994-10-13 SG SG148594A patent/SG148594G/en unknown
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 |