DE3854902T2 - Datenverarbeitungsverfahren und -system zum Zugreifen auf rotierende Speichermittel - Google Patents

Datenverarbeitungsverfahren und -system zum Zugreifen auf rotierende Speichermittel

Info

Publication number
DE3854902T2
DE3854902T2 DE3854902T DE3854902T DE3854902T2 DE 3854902 T2 DE3854902 T2 DE 3854902T2 DE 3854902 T DE3854902 T DE 3854902T DE 3854902 T DE3854902 T DE 3854902T DE 3854902 T2 DE3854902 T2 DE 3854902T2
Authority
DE
Germany
Prior art keywords
data
read
processor
storage means
commands
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
DE3854902T
Other languages
English (en)
Other versions
DE3854902D1 (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
Application granted granted Critical
Publication of DE3854902D1 publication Critical patent/DE3854902D1/de
Publication of DE3854902T2 publication Critical patent/DE3854902T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft den Zugriff auf Daten in einem Massenspeicher und speziell den Zugriff auf Daten in einem rotierenden Speichermittel.
  • Die meisten Datenverarbeitungssysteme benötigen Massenspeichervorrichtungen, die große Datenmengen speichern. Ein solcher Massenspeicher ist eine Festplatte. Die Festplatte enthält mehrere Oberflächen mit einem Magnetcode zur magnetischen Datenspeicherung. Die Daten werden gespeichert und abgerufen, indem ein Magnetsensor oder Magnetkopf über die Oberflächen bewegt wird. Die Oberflächen rotieren mit hoher Geschwindigkeit. Über jeder Oberfläche befindet sich ein Magnetkopf. Die Magnetköpfe sind durch einen Arm verbunden. Die Daten werden auf den Oberflächen in konzentrischen Kanälen, den sogenannten Spuren, gespeichert. Jede Gruppe von Spuren auf verschiedenen Oberflächen aber mit gleichem Radius wird als Zylinder bezeichnet. Jede Spur enthält mehrere aufeinanderfolgende Sektoren, die zur Speicherung und zum Abrufen von Daten adressiert werden können. Wenn sich die Köpfe auf Spuren eines bestimmten Zylinders befinden, bewegt sich der Arm nicht, um Daten in Sektoren auf dem betreffenden Zylinder zu schreiben oder von dort auszulesen. Befinden sich Daten auf einer anderen Spur, muß der Kopf über die Spur bewegt werden, um Daten in Sektoren dieser Spur zu schreiben oder von dort auszulesen. Die Bewegung dieses Arms wird als Positionierung bezeichnet.
  • Mit zunehmender Geschwindigkeit der Datenverarbeitungssysteme werden auch schnellere Zugriffe erforderlich. In einigen Fällen können die Geschwindigkeit der rotierenden Oberfläche und die Geschwindigkeit des Kopfs bei der Positionierung die Leistung des Gesamtsystems beeinträchtigen. Dieses Problem tritt auf, wenn die vom Datenverarbeitungssystem erteilten Zugriffsbefehle nicht so schnell empfangen werden können, daß in der gleichen Umdrehung auf aneinander angrenzende Sektoren der Festplatte zugegriffen werden kann. Anders ausgedrückt müssen die Köpfe auf eine zweite Umdrehung warten, bis sie auf den nächsten Sektor zugreifen können. Wenn auf benachbarte Sektoren auf einer bestimmten Oberfläche zugegriffen wird und der Arm wegen einer weiteren Datenanforderung auf einem anderen Zylinder einen Zylinderwechsel vornehmen muß, erhöht die Zeit, die benötigt wird, um den Kopf zum Lesen des folgenden Datenblocks auf dem Zylinder zu repositionieren (die sog. Positionierungszeit), die Zugriffszeit für den Datenabruf. Auch die Zugriffszeit verlängert sich durch die rotationsbedingte Verzögerung. Selbst wenn der Kopf bereits über dem richtigen Zylinder steht, kann die Datenübertragung erst beginnen, wenn sich der richtige Sektor unter dem Kopf befindet.
  • In EP-A-0109309 wird ein Computersystem beschrieben, bei dem ein Hostsystem über Speichersteuerungselemente an mehrere Plattenspeichervorrichtungen angeschlossen ist. Die Speichersteuerungselemente umfassen einen Cache-Speicher sowie einen zugehörigen Cache-Verwalter, der bestimmt, ob und wann vom Prozessor nicht explizit angeforderte Daten in den Cache-Speicher gestellt werden sollen. Bei Beendigung einer Leseoperation trifft der Cache- Verwalter diese Entscheidung anhand von statistischen Informationen über die bereits abgeschlossenen Operationen.
  • Ein Ziel der vorliegenden Erfindung ist eine Vorrichtung zur Verringerung der Zugriffszeit bei einer rotierenden Festplatte.
  • Die vorliegende Erfindung bietet ein Verfahren zur Übertragung von Daten aus einem rotierenden Speichermittel an einen an das Speichermittel angeschlossenen anfordernden Prozessor mit Hilfe von Speichersteuerungsmitteln einschließlich eines Speicherpuffers, wobei die Daten im Speichermittel in aufeinanderfolgenden Datensektoren, die durch Datenspuren definiert sind, gespeichert werden. Das Verfahren umfaßt folgende Schritte: als Antwort auf Leseanforderungen vom Prozessor Lesebefehle erteilen, um die vom Prozessor angeforderten Daten vom Speichermittel in den Speicherpuffer zu übertragen; beim Steuerungsmittel feststellen, wann mindestens zwei Leseanforderungen vom Prozessor Daten betreffen, die sich in aufeinanderfolgenden Sektoren des Speichermittels befinden; einen oder mehrere Vorauslesebefehle erteilen, um als Antwort auf die Feststellung, daß an aufeinanderfolgenden Positionen gespeicherte Daten von den mindestens zwei Leseanforderungen abgerufen werden sollen, Daten, die in den nächsten Sektoren gespeichert sind und nicht vom Prozessor angefordert werden, aus dem Speichermittel abzurufen.
  • Die vorliegende Erfindung betrifft ferner ein Datenverarbeitungssystem mit einem Prozessor und einem rotierenden Speichermittel, in dem Daten in durch Datenspuren definierten aufeinanderfolgenden Datensektoren gespeichert werden können, und mit Speichersteuerungsmitteln einschließlich eines Datenpuffers, der den Prozessor mit dem Speichermittel koppelt, zur Steuerung des Datenaustauschs zwischen dem Speichermittel und dem Datenpuffer, wobei das Speichersteuerungsmittel auf Leseanforderungen vom Prozessor reagiert, indem es Lesebefehle zur Übertragung der vom Prozessor angeforderten Daten aus dem Speichermittel an den Datenpuffer erteilt, und wobei das Speichersteuerungsmittel ferner auf die Feststellung, daß mindestens zwei Leseanforderungen Daten betreffen, die sich in aufeinanderfolgenden Sektoren des Speichermittels befinden, reagiert, indem es Vorauslesebefehle erteilt, um Daten, die im folgenden Sektor gespeichert sind und nicht vom Prozessor angefordert wurden, aus dem Speichermittel abzurufen.
  • In dem weiter unten ausführlich erläuterten bevorzugten Ausführungsbeispiel der Erfindung wird ein Datenverarbeitungssystem beschrieben, das mindestens eine Speichervorrichtung zur Speicherung und zum Abrufen von Daten aus mehreren rotierenden Spuren enthält. Jede Oberfläche enthält eine bestimmte Anzahl von Spuren und jede Spur enthält aufeinanderfolgende Sektoren von Speicherdaten. An die Speichervorrichtung ist eine Speicherschnittstelle angeschlossen, die die Speicherung und das Abrufen von Daten aus dieser Vorrichtung steuert. Die Schnittstelle enthält einen Datenpuffer und einen Befehlspuffer. Der Befehlspuffer ist in Gruppen von Befehlselementen untergliedert, wobei jede Gruppe von Befehlselementen speziell für eine der angeschlossenen Speichervorrichtungen gilt. Eine Gruppe von Befehlselementen dient auch dem Lesen des Datenpuffers. An die Schnittstelle ist ein Speichertreiber angeschlossen, der Speicherzugriffsbefehle von einem Prozessor empfängt. Der Treiber entnimmt Befehle aus mehreren Befehlswarteschlangen, von denen jede einer Speichervorrichtung und der entsprechenden Gruppe von Befehlselementepuffern in der Schnittstelle zugeordnet ist. Außerdem ist der Treiber in der Lage, Befehle zu erteilen, welche Daten, die nicht von einem Prozessor angefordert wurden, im Datenpuffer der Schnittstelle speichern.
  • In diesem Treiber werden die Befehle für nicht vom Prozessor angeforderte Daten als Antwort auf Befehle vom Prozessor generiert. Der Treiber kann ferner die Befehle in den Befehlswarteschlangen für die einzelnen Speichervorrichtungen daraufhin untersuchen, ob aufeinanderfolgende Sektoren angefordert werden. Bei einer Anforderung aufeinanderfolgender Sektoren wird eine Reihe von Befehlen für nicht vom Prozessor angeforderte aneinandergrenzende Sektoren erteilt. Diese nicht angeforderten Sektoren werden dann im Datenpuffer der Schnittstelle gespeichert. Wenn der Treiber einen Lesebefehl in der Befehlswarteschlange empfängt, kann er feststellen, ob die angeforderten Daten sich im Puffer befinden. Die Daten können dann aus dem Datenpuffer abgerufen werden, ohne daß auf die Speichervorrichtung zugegriffen werden muß.
  • Im folgenden wird das bevorzugte Ausführungsbeispiel anhand der beigefügten Zeichnungen exemplarisch beschrieben.
  • Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems;
  • Fig. 2 ist ein Blockdiagramm eines an die Schnittstelle und die Speichervorrichtungen angeschlossenen Speichertreibers;
  • Fig. 3A und 3B sind Flußdiagramme der Speichertreiberprozeduren zur Beantwortung von Speichervorrichtungsbefehlen;
  • Fig. 4 ist ein Flußdiagramm der Speichertreiberprozeduren zur Beantwortung eines Befehlsende-Interrupts von der Speicherschnittstelle; und
  • Fig. 5 ist ein Flußdiagramm der vom Speichertreiber ausgeführten Prozedur bei der Bedienung zweier oder mehrerer Speichervorrichtungen.
  • Wenn Daten von einer Festplatte in einem Datenverarbeitungssystem abgerufen werden, stellt die Systemsoftware in der Regel eine Leseanforderung in eine Warteschlange. Der Festplattentreiber entnimmt diesen Befehl aus der Warteschlange und sendet ihn an eine Festplattenschnittstelle. Handelt es sich um sequentielle Daten, d.h. sollen mehrere nebeneinanderliegende Datensektoren auf der gleichen Spur gelesen werden, ist es wichtig, daß diese neuen Leseanforderungen schnell genug an die Schnittstellenschaltung oder den Schnittstellenadapter gesendet werden, so daß der Magnetkopf zum Lesen des nächstgelegenen Datenblocks keine zweite Umdrehung abwarten muß.
  • Das vorliegende System verfügt über drei Mechanismen zur Verringerung der zum Zugreifen auf eine rotierende Festplatte benötigten Zeit. Der erste Mechanismus ist ein Software-Einheitentreiber, der sequentielle Lesemuster aus einer Gruppe von Lesebefehlen erkennt und Vorauslesebefehle erteilt. Der zweite Mechanismus ist ein Datenpuffer auf einer Adapterkarte (für eine Festplattenschnittstelle). Dieser Puffer ist in sogenannte Cache- Blöcke untergliedert, welche die Daten enthalten, die als Antwort auf Ein-/Ausgabebefehle einschließlich der Vorauslesebefehle zur Verfügung gestellt werden. Der dritte Mechanismus besteht darin, daß Befehle tatsächlich in Befehlselementepuffern auf dem Adapter in eine Warteschlange gestellt werden.
  • Fig. 1 ist ein Blockdiagramm des Gesamtsystems gemäß der vorliegenden Erfindung. In diesem Diagramm ist über einen Bus 12 ein Adapter 14 an die CPU 10 angeschlossen. Dieser Adapter ist eine Festplattenschnittstelle, an die über den Bus 16 drei rotierende Festplatten 18, 20 und 22 angeschlossen sind.
  • In Fig. 2 sind die Elemente der CPU 10 und des Adapters 14 dargestellt. Die Software für den Speichertreiber wird im CPU-Prozessor 30 ausgeführt und unterstützt Anwendungssoftwaretasks, die ebenfalls im CPU-Prozessor 30 ausgeführt werden. Die Software des Speichertreibers empfängt Befehle aus drei Befehlswarteschlangen 32, 34 und 36. Jede Befehlswarteschlange 32, 34 und 36 ist einer der Festplatten 18, 20 und 22 zugeordnet. Die Speichertreibersoftware im CPU-Prozessor 30 kommuniziert über den Bus 12 mit dem Adapter 14. Der Adapter 14 enthält einen Befehlspuffer mit den Warteschlangenelementen 38, 40, 42, 44, 46 und 48. Die Warteschlangenelemente 38 und 40 des Adapters sind für Platte 1, 18, bestimmt. Entsprechend sind die Warteschlangenelemente 42 und 44 für Platte 2, 20, und die Warteschlangenelemente 46 und 48 für Platte 3, 22, bestimmt. Der Adapter 14 enthält außerdem einen Cache-Speicher 56. Im bevorzugten Ausführungsbeispiel umfaßt dieser Cache-Speicher 16K RAM, untergliedert in 32 Blöcke von je 512 Byte. Jeder Block entspricht Daten, die von einer der Platten 18, 20 oder 22 abgerufen werden.
  • Jedes Warteschlangenelement, z.B. 38 oder 40, speichert einen einzigen Befehl vom Speichertreiber, der im CPU-Prozessor 30 ausgeführt wird. Der Adapter 14 enthält außerdem eine Steuereinheit 54, die es ihm ermöglicht, mit den Platten 18, 20 und 22 sowie mit der CPU 10 zu kommunizieren.
  • Der Systemeinheitentreiber erteilt dem Adapter 14 einen von vier Befehlen, nämlich Schreiben, Lesen, Vorauslesen und Cache lesen. Der Schreibbefehl ist eine Anforderung, Daten vom Speicher der CPU 10 (intern) auf die angegebene Platte zu schreiben. Der Lesebefehl ist eine Anforderung, Daten von der Platte abzurufen und in den Speicher der CPU 10 zu stellen. Der Vorauslesebefehl wird von der Speichertreibersoftware als Antwort auf Lesebefehle, die von Anwendungsprogrammen im CPU-Prozessor 30 erteilt werden, generiert. Dieser Befehl ist eine Anforderung, Daten von der Platte in einen der Cache-Blöcke im Cache-Speicher 56 des Adapters einzulesen. Der Cache-Lesebefehl wird vom Speichertreiber als Antwort auf einen Lesebefehl generiert, wenn der Speichertreiber festgestellt hat, daß die vom Lesebefehl angeforderten Daten tatsächlich im Cache-Speicher 56 des Adapters gespeichert sind. Die Daten im Cache-Speicher des Adapters können somit abgerufen werden, ohne daß ein Zugriff auf eine der Platten erfolgt.
  • Es ist zu betonen, daß Vorauslesebefehle keine zusätzliche Positionierungszeit (Bewegung des Magnetkopfs) oder Rotationszeit benötigen. Sie werden für die Plattensektoren erteilt, die auf die Sektoren folgen, welche derzeit von Lesebefehlen in den Befehlswarteschlangen 32, 34 und 36 angefordert worden sind. Wieviele Vorauslesebefehle als Antwort auf Lesebefehle in den Befehlswarteschlangen 32, 34 und 36 erteilt werden hängt davon ab, ob der Systemspeichertreiber feststellt, daß ein solcher Befehl Teil eines sequentiellen Zugriffs ist, und wieviele Platten gerade verwendet werden. Der tatsächliche Aufwand bei der Ausführung eines Lesebefehls im Adapter ist sehr gering. Der Vorteil von Vorauslesebefehlen besteht darin, daß Daten, die mit hoher Wahrscheinlichkeit angefordert werden, im Cache-Speicher 56 des Adapters zur Verfügung stehen und kein Plattenzugriff erforderlich ist. Dadurch wird Positionierungs- und Rotationszeit eingespart.
  • Die Speichertreibersoftware wird in dem Flußdiagramm in Fig. 3A, Fig. 3B, Fig. 4 und Fig. 5 dargestellt. Fig. 3A und 3B bilden das Flußdiagramm für die Software, die die Befehle an den Adapter 14 sendet. Die Flußdiagramme in Fig. 3A und 3B werden für jede Platte separat ausgeführt. In Fig. 3A beginnt der Speichertreiber bei Schritt 100 und gibt dann in Schritt 108 einen Befehl aus einer der Systemwarteschlangen 32, 34 oder 36 ein. Dann fährt der Treiber mit Schritt 110 fort und bestimmt, ob es sich um einen Lesebefehl handelt. Ist dies nicht der Fall, weiß der Treiber, daß es sich um einen Schreibbefehl handelt, und prüft in Schritt 112, ob ein Adapterwarteschlangenelement verfügbar ist. Wenn dies nicht der Fall ist, fährt der Treiber mit Schritt 300 fort, wo die in Fig. 5 dargestellte Software ausgeführt wird. Ist hingegen ein Adapterwarteschlangenelement verfügbar, fährt der Treiber mit Schritt 114 fort und sendet einen Schreibbefehl an die Adapterwarteschlange, damit dieser im verfügbaren Adapterwarteschlangenelement gespeichert wird. Anschließend schaltet der Treiber auf den Zufallsmodus, um darauf hinzuweisen, daß im nächsten Lesezyklus nur eine einzige Vorausleseoperation erfolgen soll. Nun fährt der Treiber bei Anschlußstelle 102 and dann mit Schritt 106 fort und prüft, ob die Systemwarteschlange leer ist. Ist sie leer, führt der Treiber die Software in Fig. 5 aus (Anschlußstelle 300). Andernfalls kehrt er zu Schritt 108 zurück.
  • Wurde in Schritt 110 festgestellt, daß es sich um einen Lesebefehl handelt, fährt der Treiber mit Schritt 118 fort und stellt fest, welcher Block gelesen werden soll. In Schritt 120 wird dann geprüft, ob der Block sich im Cache-Speicher des Adapters befindet. Ist dies der Fall, wird in Schritt 122 geprüft, ob das Adapterwarteschlangenelement für den Cache-Speicher verfügbar ist. Wenn es nicht verfügbar ist, fährt der Treiber an der Anschlußstelle 300 mit der Ausführung der Software von Fig. 5 fort. Ist ein Cache-Warteschlangenelement verfügbar, wird in Schritt 124 der Cache-Lesebefehl an das Cache-Warteschlangenelement gesendet, und der Treiber kehrt über Anschlußstelle 102 zu Schritt 106 zurück. Wurde in Schritt 120 festgestellt, daß der Block sich nicht im Cache-Speicher der Karte befindet, prüft der Treiber in Schritt 122, ob ein Adapterwarteschlangenelement für diese Platte vorhanden ist. Ist keines vorhanden, beginnt der Treiber über die Anschlußstelle 300 mit der Ausführung der Software in Fig. 5. Ist ein Adapterwarteschlangenelement vorhanden, sendet der Treiber in Schritt 124 einen Blocklesebefehl an die Adapterwarteschlangenelemente für die betreffende Platte. Dann wird in Schritt 126 geprüft, ob die nächste Leseanforderung in der Warteschlange den nächsten Block betrifft. Ist dies nicht der Fall, wird in Schritt 127 die Anzahl der Vorauslesebefehle auf eins gesetzt, und dann über Anschlußstelle 132 die Software von Fig. 3B ausgeführt. Andernfalls schaltet der Treiber in Schritt 128 in den sequentiellen Modus. Anschließend berechnet der Treiber in Schritt 130 die Anzahl der Vorauslesebefehle und sendet diese Befehle an den Adapter. Im bevorzugten Ausführungsbeispiel hängt die Anzahl der Vorauslesebefehle für den sequentiellen Modus von der Anzahl der verwendeten Festplatten ab. Wird nur eine einzige Festplatte verwendet, werden sechs Vorauslesebefehle erteilt. Bei Verwendung von zwei Festplatten werden fünf Vorauslesebefehle und bei Verwendung von drei Festplatten vier Vorauslesebefehle erteilt.
  • Nun fährt der Treiber mit Anschlußstelle 132 und dann mit Schritt 134 fort (Fig. 3B). In Schritt 134 wird geprüft, ob sich der nächste Block im Cache-Speicher befindet. Ist dies der Fall, wird in Schritt 136 weiter geprüft, ob ein Adapterwarteschlangenelement für den Cache-Speicher vorhanden ist. Ist eines vorhanden, sendet der Adapter in Schritt 138 einen Lesebefehl und prüft dann in Schritt 139, ob der zuletzt gesendete Befehl ein Vorauslesebefehl für den aktuellen Block war. War der letzte Befehl kein Vorauslesebefehl, kehrt der Treiber über Anschlußstelle 102 wieder zu Schritt 106 (Fig. 3A) zurück. Handelte es sich um einen Vorauslesebefehl, fährt der Treiber mit Schritt 141 fort und aktiviert den sequentiellen Modus, berechnet dann in Schritt 143 die Anzahl der Vorauslesebefehle und fährt über Anschlußstelle 132 mit Schritt 134 fort. Wurde in Schritt 136 hingegen festgestellt, daß kein Adapterwarteschlangenelement für den Cache-Speicher vorhanden ist, wird über Anschlußstelle 300 die Software in Fig. 5 aufgerufen.
  • Wurde in Schritt 134 festgestellt, daß sich die Daten nicht im Cache-Speicher befinden, fährt der Treiber mit Schritt 140 fort und prüft, ob ein Adapterwarteschlangenelement vorhanden ist. Ist keines vorhanden, wird über Anschlußstelle 300 die Software in Fig. 5 aufgerufen. Ist ein Adapterwarteschlangenelement vorhanden, fährt der Treiber mit Schritt 142 fort und sendet einen Lesebefehl für den nächsten Block an den Adapter. Dann wird in Schritt 144 abgefragt, ob ein Vorauslesebefehl anhangig ist. Wenn dies nicht der Fall ist, kehrt der Treiber über Anschlußstelle 102 zu Schritt 106 (Fig. 3A) zurück. Ist ein Vorauslesebefehl anhängig, stellt der Treiber in Schritt 148 fest, ob für diesen Vorauslesebefehl ein Adapterwarteschlangenelement vorhanden ist. Wenn keines vorhanden ist, wird über Anschlußstelle 300 die Software in Fig. 5 aufgerufen. Ist ein Adapterwarteschlangenelement für den Vorauslesebefehl vorhanden, fährt der Treiber mit Schritt 149 fort und prüft, ob eine Anforderung für den vom Vorauslesebefehl angeforderten Block anhängig ist. Ist dies der Fall, sendet der Treiber nun in Schritt 151 einen Lesebefehl an den Adapter, berechnet anschließend in Schritt 153 die Anzahl der Vorauslesebefehle neu und kommt dann zur Anschlußstelle 146. Wurde in Schritt 146 festgestellt, daß keine Anforderung für den betreffenden Block anhängig ist, fährt der Treiber mit Schritt 150 fort und sendet einen Vorauslesebefehl an den Adapter. Dann wird in Schritt 152 der Zähler für die Vorauslesebefehle um eins zurückgesetzt. Nun kehrt der Treiber zu Schritt 144 zurück und arbeitet die verbliebenen Vorauslesebefehle ab.
  • In Fig. 4 ist dargestellt, wie die Treibersoftware bei einem Befehls-Interrupt vom Adapter 14 vorgeht. Wenn der Adapter 14 einen Lese-, Schreib-, Vorauslese- oder Cache-Lesebefehl ausgeführt hat, wird dies dem Treiber durch einen Befehlsende-Interrupt mitgeteilt. Während der Treiber die Software in Fig. 3A, 3B und 5 ausführt, unterbricht ein Befehlsende-Interrupt die Abarbeitung dieser Software. In Fig. 4 veranlaßt ein Befehlsende- Interrupt den Treiber, an Punkt 200 zu beginnen und dann in Schritt 202 zu entscheiden, ob der soeben ausgeführte Befehl ein Vorauslesebefehl war. Handelte es sich um einen Vorauslesebefehl, fährt der Treiber mit Schritt 208 fort. Andernfalls gibt der Treiber in Schritt 204 einen Cache-Block im Adapter frei und entnimmt den Befehl mit Bestätigung (ACK) aus der Plattenwarteschlange. Dann fährt der Treiber mit Schritt 208 fort und stellt fest, ob ein Vorauslesebefehl anhängig ist. Ist dies nicht der Fall, springt der Treiber über die Anschlußstelle 102 zu Schritt 106 (Fig. 3A). Ist ein Vorauslesebefehl anhängig, fährt der Treiber mit Schritt 210 fort und prüft, ob der nächste vorauszulesende Block in einem der Lesebefehle in den Befehlswarteschlangen (Warteschlangen 32, 34 oder 36) enthalten ist. Ist er darin enthalten, sendet der Treiber in Schritt 212 einen Lesebefehl für den angeforderten Block an den Adapter und schaltet in Schritt 214 in den sequentiellen Modus, um wie oben beschrieben die Anzahl der Vorauslesebefehle zu berechnen. Wurde vorhin in Schritt 210 festgestellt, daß der nächste Block nicht in der Systemwarteschlange steht, sendet der Treiber in Schritt 216 einen Vorauslesebefehl für das nächste Segment an den Adapter und verringert in Schritt 218 die Anzahl der anhängigen Vorauslesebefehle um eins. Nach Schritt 218 oder Schritt 214 führt der Treiber Schritt 220 aus und prüft, ob eine Adapterwarteschlange vorhanden ist. Ist dies der Fall, kehrt er zu Schritt 208 zurück. Andernfalls wird über die Anschlußstelle 300 die Software in Fig. 5 abgearbeitet.
  • Die in Fig. 5 dargestellte Prozedur dient als Systembuchhalter für alle verwendeten Speichervorrichtungen. In Schritt 302 zeichnet der Treiber den Status und alle an der aktuellen Speichervorrichtung ausgeführten Operationen auf. Es ist wichtig, zu wissen, wenn in einer Speichervorrichtung keine Operationen ausgeführt werden. Diese Information wird nicht nur benötigt, um die Anzahl der Vorausleseoperationen zu berechnen, sondern auch um festzustellen, ob alle Speichervorrichtungen ausreichend berücksichtigt worden sind. In Schritt 304 wird dann die nächste Platte abgefragt. In Schritt 305 wird festgestellt, ob die Befehlswarteschlange leer ist. Ist sie leer, fährt der Treiber mit Schritt 306 fort. Ist sie nicht leer, wird Schritt 308 ausgeführt. In diesem Schritt prüft der Treiber, ob ein Adapterwarteschlangenelement für die betreffende Platte vorhanden ist. Ist dies der Fall, wird nun in Schritt 312 festgestellt, ob die Systemwarteschlange für die betreffende Platte leer ist. Ist sie nicht leer, springt der Treiber über Anschlußstelle 104 zu Schritt 108 (Fig. 3A). Ist das Systemwarteschlangenelement für diese Speichervorrichtung jedoch leer, fährt der Treiber mit Schritt 314 fort und prüft, ob Vorauslesebefehle für die betreffende Vorrichtung anhängig sind. Wenn Vorauslesebefehle anhängig sind, springt der Treiber über die Anschlußstelle 146 zu Schritt 144 (Fig. 3B). Sind keine Vorauslesebefehle anhängig, kehrt der Treiber zu Schritt 304 zurück. Wurde vorhin in Schritt 308 festgestellt, daß kein Adapterwarteschlangenelement für die betreffende Speichervorrichtung vorhanden ist, fährt der Treiber mit Schritt 306 fort und prüft, ob alle Vorrichtungen ordnungsgemäß berücksichtigt wurden, d.h. der Treiber greift auf die Speichervorrichtungen zu, ohne daß eine Funktion ausgeführt werden muß. Wurden alle Vorrichtungen bedient, verläßt der Treiber das Programm in Schritt 310, andernfalls kehrt er zu Schritt 304 zurück.

Claims (5)

1. Ein Verfahren zur Übertragung von Daten aus einem rotierenden Speichermittel an einen anfordernden Prozessor, der durch ein Speichersteuerungsmittel mit einem Datenpuffer an das Speichermittel angeschlossen ist, wobei die Daten auf dem Speichermittel in durch Datenspuren definierten aufeinanderfolgenden Datensektoren gespeichert sind und das Verfahren folgende Schritte umfaßt:
als Antwort auf Leseanforderungen vom Prozessor Erteilung von Lesebefehlen zur Übertragung der vom Prozessor angeforderten Daten aus dem Speichermittel an den Speicherpuffer;
Feststellung durch das Steuerungsmittel, wann mindestens zwei Leseanforderungen vom Prozessor Daten betreffen, die in aufeinanderfolgenden Sektoren des Speichermittels gespeichert sind;
Erteilung eines oder mehrerer Vorauslesebefehle, um vom Speichermittel aus auf Daten zuzugreifen, die im nächsten Sektor gespeichert sind und nicht vom Prozessor angefordert wurden, als Antwort auf die Feststellung, daß Daten an aufeinanderfolgenden Positionen von diesen mindestens zwei Leseanforderungen betroffen sind.
2. Ein Datenverarbeitungssystem mit einem Prozessor 30 und einem rotierenden Speichermittel 18, auf dem Daten in durch Datenspuren definierten aufeinanderfolgenden Datensektoren gespeichert sind, und
mit einem Speichersteuerungsmittel mit einem Datenpuffer 56, der den Prozessor mit dem Speichermittel koppelt, zur Steuerung der Datenübertragung zwischen dem Speichermittel und dem Datenpuffer, wobei das Speichersteuerungsmittel auf Leseanforderungen vom Prozessor reagiert, indem es Lesebefehle zur Übertragung der vom Prozessor angeforderten Daten vom Speichermittel an den Datenpuffer erteilt, und auf die Feststellung, daß mindestens zwei der Leseanforderungn in aufeinanderfolgenden Sektoren des Speichermittels gespeicherte Daten betreffen, reagiert, indem es Vorauslesebefehle erteilt, um vom Speicherungsmittel Daten abzurufen, die im nächsten Sektor gespeichert sind und nicht vom Prozessor angefordert wurden.
3. Ein Datenverarbeitungssystem gemäß Anspruch 2, bei dem das Speichersteuerungsmittel einen dem Prozessor zugeordneten Speichertreiber und einen Speicheradapter mit dem Datenpuffer enthält, wobei das Speichersteuerungsmittel auf Leseanforderungen vom Prozessor reagiert, indem es die Lesebefehle und die Vorauslesebefehle über einen verbindenden Datenbus 12 an den Speicheradapter sendet.
4. Ein Datenverarbeitungssystem gemäß Anspruch 3 mit mehreren Datenspeichermitteln, die so angeschlossen sind, daß sie mit dem Systemadapter Daten austauschen, wobei der Speicheradapter außerdem mehrere Befehlspuffer enthält, in denen jeweils Zugriffsbefehle für eines der Speichermittel und für den Datenpuffer gespeichert sind.
5. Ein Datenverarbeitungssystem gemäß Anspruch 2 bis 4, bei dem der Speichertreiber ein Mittel enthält, um festzustellen, wann Zugriffsanforderungen vom Prozessor Anforderungen der im Datenpuffer gespeicherten Daten enthalten, und daraufhin einen Pufferlesebefehl zu erteilen, der die angeforderten Daten aus dem Datenpuffer ausliest.
DE3854902T 1987-02-13 1988-02-09 Datenverarbeitungsverfahren und -system zum Zugreifen auf rotierende Speichermittel Expired - Fee Related DE3854902T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1490287A 1987-02-13 1987-02-13

Publications (2)

Publication Number Publication Date
DE3854902D1 DE3854902D1 (de) 1996-02-29
DE3854902T2 true DE3854902T2 (de) 1996-08-14

Family

ID=21768454

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3854902T Expired - Fee Related DE3854902T2 (de) 1987-02-13 1988-02-09 Datenverarbeitungsverfahren und -system zum Zugreifen auf rotierende Speichermittel

Country Status (3)

Country Link
EP (1) EP0278471B1 (de)
JP (1) JPS641047A (de)
DE (1) DE3854902T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017228172A (ja) * 2016-06-23 2017-12-28 富士通株式会社 情報処理システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57172457A (en) * 1981-04-17 1982-10-23 Hitachi Ltd Secondary storage controller
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4536836A (en) * 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
US4584314A (en) * 1983-11-25 1986-04-22 Ciba-Geigy Corporation Lactone derivative, process for the preparation thereof, and use thereof in pest control
PT80577B (pt) * 1984-06-05 1987-09-18 American Cyanamid Co Processo para a producao de novos agentes macrolidos ll-f28249 uteis no tratamento de infeccoes helminticas por ectoparasitas artropodes e por acarideos
JPS61235957A (ja) * 1985-04-11 1986-10-21 Nec Corp デ−タ制御方式
EP0452990A3 (en) * 1985-05-29 1992-04-15 Kabushiki Kaisha Toshiba Cache system adopting an lru system
AU612564B2 (en) * 1986-03-12 1991-07-18 American Cyanamid Company Macrolide compounds

Also Published As

Publication number Publication date
EP0278471A2 (de) 1988-08-17
EP0278471B1 (de) 1996-01-17
EP0278471A3 (de) 1991-10-23
DE3854902D1 (de) 1996-02-29
JPS641047A (en) 1989-01-05

Similar Documents

Publication Publication Date Title
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE69127433T2 (de) Eingang-ausgangsteuerungseinrichtung
DE3650333T2 (de) Verfahren zur Zustandsverwaltung gemeinsamer Betriebsmittel für ein komplexes Rechnersystem.
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE112005001512B4 (de) Vorrichtung und Verfahren für den Hochleistungs- Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE10055603B4 (de) Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System
DE3935235A1 (de) Speicherungsverfahren fuer microcomputersysteme
DE60035774T2 (de) Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung
DE4029980C2 (de) Umspeicherverfahren und Umspeichersystem zur Erhöhung der Systemzuverlässigkeit
DE10050171B4 (de) Verfahren zur Steuerung von Cache-Speichern
EP1006445A2 (de) Dynamisch ausbaubares Speichereinheitsmatrixsystem
CN1019236B (zh) 数字数据处理系统高速缓冲存储器内容的失效标记
DE10048072A1 (de) Linklisten-DMA-Descriptor-Architektur
DE2209282B2 (de) Datenverarbeitungsanlage
DE3932474A1 (de) Platten-steuervorrichtung und plattenzugriff-steuerverfahren
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69532703T2 (de) Speicherplattenanordnungsuntersystem und Datenerzeugungsverfahren dazu
DE4003759A1 (de) Verfahren und anordnung zur uebertragung von daten ueber einen bus zwischen selektiv ankoppelbaren stationen
DE3633165A1 (de) Plattensystem mit mehreren asynchron umlaufenden plattenspeichern
DE3338329C2 (de)
DE2149200C3 (de) Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.

Legal Events

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