-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf die Ausgabe von Befehlen
an ein und das Ordnen von Befehlen auf einem Festplattenlaufwerk.
-
HINTERGRUND DER ERFINDUNG
-
1 ist
ein Blockschaltbild eines Computersystems 100. Seine Hauptkomponenten
sind ein Hostcomputer 110, eine Festplattensteuereinheit 115 und
ein Festplattenlaufwerk 125. Bei dem Festplattenlaufwerk 125 kann
es sich um eine handelsübliche Standardkomponente
handeln, mitunter auch als Massen-Festplattenlaufwerk bezeichnet,
die dem SCSI-Protokoll (Small Computer System Interface) entspricht.
-
Der
Hostcomputer 110 arbeitet mit Daten, die auf dem Festplattenlaufwerk 125 gespeichert
sind. Wenn der Hostcomputer 110 Daten lesen möchte, gibt
er einen Lesebefehl, der die Daten kenntlich macht, an die Festplattensteuereinheit 115 aus.
Die Festplattensteuereinheit 115 gibt wiederum einen Lesebefehl
an das Festplattenlaufwerk 125 aus. Wenn das Festplattenlaufwerk 125 den
Lesebefehl ausführt,
sendet es die Daten an die Festplattensteuereinheit 115,
die sie an den Hostcomputer 110 weiterleitet. Wenn der
Hostcomputer 110 Daten schreiben möchte, gibt er einen Schreibbefehl
an die Festplattensteuereinheit 115 aus und sendet dieser
zugehörige
Daten. Danach gibt die Festplattensteuereinheit 115 einen
Schreibbefehl an das Festplattenlaufwerk 125 aus. Wenn
das Festplattenlaufwerk 125 für die Ausführung des Schreibbefehls bereit
ist, teilt es dies der Festplattensteuereinheit 115 mit,
welche die zugehörigen
Daten an das Festplattenlaufwerk 125 sendet.
-
Die
Festplattensteuereinheit 115 beinhaltet einen Prozessor 117 und
einen zugehörigen
Speicher 118 für
die Ausführung
von Prozeduren, die sich auf den Austausch von Daten mit dem Hostcomputer 110 und
dem Festplattenlaufwerk 125 beziehen. Sie beinhaltet außerdem eine
Befehlswarteschlange 120 der Steuereinheit, die Befehle
enthält,
die noch an das Festplattenlaufwerk 125 ausgegeben werden sollen.
-
Das
Festplattenlaufwerk 125 beinhaltet außerdem eine gewisse vor Ort
vorhandene Intelligenz in Form eines (nicht abgebildeten) Prozessors
und eines zugehörigen
Speichers 128, der eine Befehlswarteschlange 130 des
Festplattenlaufwerks enthält. Die
Befehlswarteschlange 130 des Festplattenlaufwerks enthält Befehle,
die zwar an das Festplattenlaufwerk 125 ausgegeben, jedoch
noch nicht von diesem ausgeführt
wurden.
-
Die
Leistung eines Systems wie beispielsweise eines Computersystems 100 wird
oft in Form von Antwortzeit und Durchsatz bewertet. Die Antwortzeit,
auch als Latenzzeit bezeichnet, ist der Zeitraum zwischen der Ausgabe
und der Ausführung
eines Befehls. Eine kurze Antwortzeit ist einer langer Antwortzeit
vorzuziehen. Der Durchsatz ist die Gesamtzahl der Befehle, die von
einem System während
einer bestimmten Zeitspanne verarbeitet werden. Dabei ist ein größerer Durchsatz
einem geringeren Durchsatz vorzuziehen.
-
Die
Festplattensteuereinheit 115 und das Festplattenlaufwerk 125 beinhalten
jeweils Funktionen, die zur Verkürzung
der Antwortzeit und zur Erhöhung
des Durchsatzes gedacht sind. Dazu gehören die Zuweisung einer Prioritätsstufe
zu Befehlen und die Anordnung der Befehle in der Befehlswarteschlange 120 der
Steuereinheit und in der Befehlswarteschlange 130 des Festplattenlaufwerks.
-
Die
Festplattensteuereinheit 115 weist jedem Befehl, den sie
an das Festplattenlaufwerk 125 ausgeben wird, eine Prioritätsstufe
zu. Dabei erhalten die wichtigsten Befehle auch die höchste Prioritätsstufe. Im
Rahmen dieser Erläuterung
sind drei Prioritätsstufen
von Belang: die Anforderungs-, die Vorverarbeitungs- und die Ausgabepriorität.
-
Die
Anforderungspriorität
hat die höchste Prioritätsstufe.
Sie gilt für
Befehle, mit denen der Hostcomputer 110 Daten lesen möchte. Wenn
der Hostcomputer 110 einen Lesebefehl an die Festplattensteuereinheit 115 ausgibt,
benötigt
er die Daten im Allgemeinen sofort. Wenn die Festplattensteuereinheit 115 daher
einen Lesebefehl vom Hostcomputer 110 empfängt, weist
sie dem Lesebefehl die Anforderungspriorität zu.
-
Die
nächsthöhere Prioritätsstufe
ist die Vorverarbeitungspriorität.
Sie wird Lesebefehlen zugewiesen, die von der Festplattensteuereinheit 115 und nicht
vom Hostcomputer 110 ausgegeben werden. Die Festplattensteuereinheit 115 wertet
die in jüngster
Zeit vom Hostcomputer 110 empfangenen Befehle aus und versucht,
den nächsten
Befehl vorherzusagen, den der Hostcomputer 110 ausgeben
wird. Wenn der Hostcomputer 110 z.B. Lesebefehle für zwei nebeneinander
liegende Datenblöcke
ausgegeben hat, kann die Festplattensteuereinheit 115 vorhersagen,
dass der nächste
Befehl des Hostcomputers 110 ein Lesebefehl für einen
dritten, direkt daneben liegenden Datenblock sein wird. Im Vorgriff
auf diesen Befehl gibt die Festplattensteuereinheit 115 einen
Lesebefehl für
den dritten angrenzenden Datenblock an das Festplattenlaufwerk 125 aus.
Einem derartigen Lesebefehl der Festplattensteuereinheit 115,
der im Vorgriff auf einen Befehl des Hostcomputers 110 ausgegeben
wird, wird die Vorverarbeitungspriorität zugewiesen.
-
Die
Ausgabepriorität
hat eine niedrigere Prioritätsstufe
als die Vorverarbeitungspriorität.
Die Festplattensteuereinheit 115 weist die Ausgabepriorität Schreibbefehlen
zu, mit denen sie Daten auf das Festplattenlaufwerk 125 schreiben
möchte.
Wenn der Hostcomputer 110 Daten in eine Speichereinheit schreibt,
hat er im Allgemeinen die Verarbeitung der Daten zumindest vorläufig abgeschlossen.
Der Hostcomputer 110 leitet die Daten an die Festplattensteuereinheit 115 weiter
und führt
dann anderweitige Aufgaben durch. Der Hostcomputer 110 wartet
nicht darauf, dass die Festplattensteuereinheit 115 die
Daten tatsächlich
auf das Festplattenlaufwerk 125 schreibt, so dass keine
unmittelbare Notwendigkeit für
das Festplattenlaufwerk 125 besteht, einen Schreibbefehl
auszuführen.
-
Die
Festplattensteuereinheit 115 ordnet die Befehle in der
Befehlswarteschlange 120 der Steuereinheit nach ihrer Priorität. Das bedeutet,
dass Befehle mit der höchsten
Prioritätsstufe
an den Anfang der Befehlswarteschlange 120 der Steuereinheit
gestellt werden, während
Befehle mit der niedrigsten Prioritätsstufe an das Ende der Befehlswarteschlange 120 der
Steuereinheit gestellt werden. Befehle mit der gleichen Prioritätsstufe
werden danach geordnet, wie lange sie sich bereits in der Warteschlange
befinden. Das bedeutet, dass Befehle nach Priorität und Alter
geordnet werden. Der Befehl an erster Stelle der Befehlswarteschlange 120 der
Steuereinheit ist der nächste
Befehl, den die Festplattensteuereinheit 115 an das Festplattenlaufwerk 125 ausgeben
möchte.
Mit dieser Anordnung von Befehlen in der Befehlswarteschlange 120 der
Steuereinheit soll die Antwortzeit für die Befehle mit der höchsten Priorität auf ein
Mindestmaß verkürzt werden.
-
Die
Festplattensteuereinheit 115 kann Befehle von der Vorverarbeitungspriorität zur Anforderungspriorität heraufstufen.
Wenn ein derartiger Befehl zur Anforderungspriorität heraufgestuft
wird, wird er zu anderen Befehlen mit der Anforderungspriorität gestellt
und außerdem
nach dem Befehlsalter geordnet. Wenn ein Befehl heraufgestuft wird,
nimmt die Festplattensteuereinheit 115 bei Bedarf eine
Neuordnung der Befehlswarteschlange 120 der Steuereinheit
vor. Dabei ist zu beachten, dass Befehle mit der Ausgabepriorität nicht
für eine
Heraufstufung ausgewählt
werden können.
-
Die
Festplattensteuereinheit 115 verwendet außerdem einen
Alterungsalgorithmus, der die Prioritätsstufe aller Befehle in der
Befehlswarteschlange 120 der Steuereinheit nach einer vorgegebenen
Zeitdauer erhöht.
Genauer gesagt, nach Ablauf der vorgegebenen Zeitdauer erhalten
alle Befehle in der Befehlswarteschlange 120 der Steuereinheit
eine höhere
Prioritätsstufe.
Mit dem Alterungsalgorithmus soll verhindert werden, dass ein Befehl
mit einer niedrigen Priorität „verhungert", d.h., dass er nicht
abgearbeitet wird, wenn neue Befehle mit einer höheren Prioritätsstufe
vorhanden sind. Dabei ist zu beachten, dass der Alterungsalgorithmus
für alle
Befehle unabhängig
von ihrer Prioritätsstufe
gilt, jedoch keine Neuordnung der Befehlswarteschlange 120 vornimmt.
-
Das
Festplattenlaufwerk 125 enthält Befehle, die es noch ausführen muss,
in der Befehlswarteschlange 130 des Festplattenlaufwerks.
Das Festplattenlaufwerk 125 kann in zwei Betriebsarten
arbeiten: in der Betriebsart Ordnen und in der Betriebsart Neuordnen.
In der Betriebsart Ordnen stellt das Festplattenlaufwerk 125 Befehle
in die Befehlswarteschlange 130 des Festplattenlaufwerks
und führt
die Befehle in der Reihenfolge aus, in der sie von der Festplattensteuereinheit 115 empfangen
wurden. In der Betriebsart Neuordnen ändert das Festplattenlaufwerk
die Ordnung der Befehle in der Befehlswarteschlange 130 des
Festplattenlaufwerks, um so die Suchzeit und die Drehwartezeit zwischen
der Ausführung
aufeinander folgender Befehle auf ein Mindestmaß zu verkürzen und somit den Durchsatz
zu erhöhen.
-
Mit
zunehmender Anzahl der Befehle in der Befehlswarteschlange 130 des
Festplattenlaufwerks erhöht
sich in der Betriebsart Ordnen die Leistungsfähigkeit des Festplattenlaufwerks 125,
da es nun über
mehr Befehle verfügt,
aus denen es den nächsten
auszuführenden
Befehl auswählen
kann. Aus diesem Grund steigt auch der Durchsatz. Allerdings steigt
mit zunehmender Anzahl der Befehle in der Befehlswarteschlange 130 des
Festplattenlaufwerks auch die mögliche
maximale Latenzzeit für
einen gegebenen Befehl. Außerdem
ist zu beachten, dass das Festplattenlaufwerk 125 die von
der Festplattensteuereinheit 115 verwendete Prioritätsstufe
nicht kennt und daher in der Betriebsart Neuordnen unter Umständen einen
oder mehrere Befehle mit einer niedrigen Priorität vor einem Befehl mit einer
hohen Priorität
ausführt.
-
Eine
weitere Funktion, die als Warteschlangenanfangsoption bezeichnet
wird, ermöglicht
der Festplattensteuereinheit 115 sicherzustellen, dass ein
bestimmter Befehl an den Anfang der Befehlswarteschlange 130 des
Festplattenlaufwerks gestellt wird. Wenn die Festplattensteuereinheit 115 einen Befehl
ausgibt und die Warteschlangenanfangsoption festlegt, verhindert
dies, dass das Festplattenlaufwerk 125 ein Neuordnen der
Befehlswarteschlange 130 des Festplattenlaufwerks vornimmt,
und der angegebene Befehl wird als nächstes vom Festplattenlaufwerk 125 ausgeführt. Diese
Funktion verkürzt
die Latenzzeit für
den angegebenen Befehl auf ein Mindestmaß, wobei dies jedoch zu Lasten
der Festplattenlaufwerksleistung geht und die Latenzzeit für andere
Befehle in der Befehlswarteschlange 130 des Festplattenlaufwerks
erhöht.
-
Ein
Problem tritt dann auf, wenn mehrere aufeinander folgende Befehle
mit der Warteschlangenanfangsoption ausgegeben werden und dies schneller
erfolgt, als das Festplattenlaufwerk die Befehle ausführen kann.
Drei Befehle, die in der Reihenfolge C1, C2 und C3 mit der Warteschlangenanfangsoption
ausgegeben werden, werden in der Reihenfolge C3, C2 und C1 ausgeführt. Dabei
wird der älteste
Befehl, C1, unabhängig
von seiner Prioritätsstufe
zuletzt ausgeführt.
Außerdem
kann das Festplattenlaufwerk aufgrund der Warteschlangenanfangsoption
die Befehle nicht neu ordnen, um den Durchsatz zu verbessern. Somit
wirkt sich die Warteschlangenanfangsoption in diesem Fall nachteilig
auf die Antwortzeit des Befehls C1 und den Gesamtdurchsatz des Computersystems 100 aus.
-
Ein
ideales System würde
die Antwortzeit auf ein Mindestmaß verkürzen und gleichzeitig den Durchsatz
auf ein Höchstmaß erhöhen. Die
folgenden Patentschriften sind repräsentativ für einige Methoden nach dem
Stand der Technik, mit denen diese Herausforderung bewältigt werden
soll.
-
Die
US-Patentschrift 4 425 615 stellt ein hierarchisches Speichersystem
mit einem Zwischenspeicher-/Festplattenteilsystem
mit Befehlswarteschlangen für
mehrere Festplatten bereit. Sie beschreibt ein Festplattenteilsystem
mit einer Vielzahl von Festplattenlaufwerken, bei dem für jedes
Festplattenlaufwerk eine Befehlswarteschlange bereitgestellt wird.
Dabei werden jeder Befehlswarteschlange ein Prioritätswert und
eine Folgenummer zugewiesen, so dass die in der Warteschlange befindliche
Befehlsnummer mit der höchsten
Priorität
ausgeführt wird,
wenn sich das Festplattenlaufwerk, das zu der Warteschlange gehört, im Leerlauf
befindet.
-
Die
US-Patentschrift 5 548 795 stellt ein Verfahren bereit, mit dem
die Abhängigkeiten
bei der Befehlsausführung
im Rahmen eines Prozesses für
die Neuordnung einer Befehlswarteschlange ermittelt werden. Diese
Erfindung beschreibt ein Verfahren für die Berechnung der geringsten
Latenzzeit, wobei die Daten zur Abhängigkeit in einer Befehlswarteschlange
des Festplattenlaufwerks verwaltet werden und wobei anhand dieser
Daten eine hinsichtlich Zeit und Rechenaufwand leistungsfähige Neuordnung
der Befehle erzwungen wird.
-
Die
US-Patentschrift 5 469 560 stellt die Zuordnung von Prioritäten zu ausstehenden
Leseanforderungen in einer automatisierten Speicherbibliothek bereit.
Sie beschreibt ein Datenverarbeitungssystem mit einem prioritätsgesteuerten
Verfahren für
das Lesen von Objekten von Festplatten in einer automatisierten
Speicherbibliothek, um so die Latenzzeit auf ein Mindestmaß zu beschränken.
-
Die
US-Patentschrift 5 729 718 stellt ein System bereit, mit dem die
Vorlauf-Latenzzeit als Funktion der Kopfumschalte-, Such- und Drehwartezeiten ermittelt
und eine integrierte Festplattenlaufwerksteuereinheit für das Neuordnen
der Befehlswarteschlange genutzt wird. Sie beschreibt ein System
für die
Neuordnung von Befehlen, die von einem Festplattenlaufwerk empfangen
werden. Dabei werden die Vorlauf-Latenzzeiten für Befehle in einer Warteschlange
ermittelt, wobei Bezug auf einen aktiven Befehl genommen wird. Der
Befehl mit der geringsten Vorlauf-Latenzzeit wird ausgewählt und
an den Anfang der Warteschlange gestellt, wo er im Anschluss an
den aktiven Befehl ausgeführt
wird.
-
Die
US-Patentschrift 5 848 226 stellt eine prioritätsgesteuerte Datenübertragung über einen
Zwischenspeicher in einem digitalen Drucksystem bereit. Dabei weist
ein Steuermittel in einem Festplattenlaufwerk Befehlsausgaben Prioritätswerte
zu, wobei diese durch Software-Einheiten bestimmt werden, und führt den
Befehl mit der höchsten
Priorität dann
aus.
-
Die
Methoden nach dem Stand der Technik für die Verkürzung der Antwortzeit oder
die Maximierung des Durchsatzes beziehen sich in der Regel auf Verfahren,
welche die Priorität
von Befehlen aktiv ändern
oder eine Warteschlange neu ordnen, um so die Leistungsfähigkeit
des Systems zu verbessern. Üblicherweise
geht eine Verbesserung der Antwortzeit mit einer Verschlechterung
des Durchsatzes und umgekehrt einher. Außerdem sind die Methoden häufig komplex
und nicht unbedingt mit Massen-Festplattenlaufwerken kompatibel.
-
Entsprechend
sollen mit der vorliegenden Erfindung eine Festplattensteuereinheit
und ein Verfahren bereitgestellt werden, mit denen ermittelt wird, ob
ein Befehl an ein Festplattenlaufwerk ausgegeben werden soll, die
die Antwortzeit für
Befehle mit einer hohen Priorität
verkürzen
und den Durchsatz für
alle Befehle verbessern.
-
Mit
der vorliegenden Erfindung, wie sie durch die Ansprüche definiert
ist, sollen außerdem
eine Festplattensteuereinheit und ein Verfahren bereitgestellt werden,
die so beschaffen sind, dass sie mit dem Betrieb eines Massen-Festplattenlaufwerks kompatibel
sind.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Computersystem mit einer
Festplattensteuereinheit und einem Festplattenlaufwerk bereitgestellt,
wobei die Festplattensteuereinheit Befehle, von denen jeder über eine
ihm zugehörige
Prioritätsstufe
verfügt,
an das Festplattenlaufwerk ausgibt, um von diesem ausgeführt zu werden,
wobei die Steuereinheit so aufgebaut ist, dass sie über Daten zu
den Befehlen verfügt,
die an das Festplattenlaufwerk gesendet, jedoch noch nicht ausgeführt wurden,
wobei die Daten einen Festplattenverfügbarkeitswert bereitstellen,
der in quantitativer Hinsicht repräsentativ für die Verfügbarkeit des Festplattenlaufwerks,
einen Befehl auszuführen,
ist, und wobei, wenn die Festplattensteuereinheit einen Befehl an das
Festplattenlaufwerk ausgeben möchte,
sie den Befehl nur dann ausgibt, wenn sie entweder ermittelt, dass
die Prioritätsstufe
des Befehls gleich einem oder größer als
ein vorbestimmter Prioritätsschwellenwert
ist und der Verfügbarkeitswert
des Festplattenlaufwerks unter einem ersten Schwellenwert liegt, oder
dass die Prioritätsstufe
unter dem vorbestimmten Prioritätsschwellenwert
liegt und der verfügbarkeitswert
des Festplattenlaufwerks unter einem zweiten Schwellenwert liegt,
der kleiner als der erste Schwellenwert ist.
-
Gemäß einem
zweiten Aspekt der Erfindung wird ein Verfahren bereitgestellt,
mit dem ermittelt wird, ob ein Befehl, der über eine ihm zugehörige Prioritätsstufe
verfügt,
von einer Festplattensteuereinheit an ein Festplattenlaufwerk ausgegeben
werden soll, wobei die Festplattensteuereinheit Daten zu den Befehlen
verwaltet, die an das Festplattenlaufwerk gesendet, jedoch noch
nicht ausgeführt
wurden, wobei die Daten einen Festplattenverfügbarkeitswert bereitstellen,
der in quantitativer Hinsicht repräsentativ für die Verfügbarkeit des Festplattenlaufwerks
ist, einen Befehl auszuführen,
und wobei die Festplattensteuereinheit die folgenden Schritte ausführt:
- (A) Ermitteln, ob die Prioritätsstufe
größer als
oder gleich einem Prioritätsschwellenwert
ist;
- (B) Ermitteln, ob der Festplattenverfügbarkeitswert kleiner als ein
erster Schwellenwert ist, wenn in Schritt A ermittelt wurde, dass
die Prioritätsstufe
größer als
oder gleich dem Prioritätsschwellenwert
ist;
- (C) Ermitteln, ob der Festplattenverfügbarkeitswert unter einem zweiten
Schwellenwert liegt, der kleiner als der erste Schwellenwert ist,
wenn in Schritt A ermittelt wurde, dass die Prioritätsstufe nicht
größer als
oder gleich dem Prioritätsschwellenwert
ist (325); und
- (D) Ausgeben des Befehls an das Festplattenlaufwerk, wenn entweder
in Schritt B ermittelt wurde, dass der Festplattenverfügbarkeitswert
kleiner als der erste Schwellenwert ist, oder wenn in Schritt C ermittelt
wurde, dass der Festplattenverfügbarkeitswert
kleiner als der zweite Schwellenwert ist.
-
Gemäß einem
dritten Aspekt der Erfindung wird eine Festplattensteuereinheit
bereitgestellt, die ermittelt, ob ein Befehl an ein Festplattenlaufwerk ausgegeben
werden soll, wobei dieser Befehl über eine ihm zugehörige Prioritätsstufe
verfügt,
wobei die Festplattensteuereinheit Folgendes umfasst:
- (A) einen Festplattenverfügbarkeitsanzeiger
für das
Verwalten von Daten zu den Befehlen, die an das Festplattenlaufwerk
gesendet, jedoch noch nicht ausgeführt wurden, wobei die Daten
einen Festplattenverfügbarkeitswert
bereitstellen, der in quantitativer Hinsicht repräsentativ
für die
Verfügbarkeit
des Festplattenlaufwerks, einen Befehl auszuführen, ist;
- (B) eine erste Vergleichseinheit, mit der ermittelt wird, ob
die Prioritätsstufe
größer als
oder gleich einem Prioritätsschwellenwert
ist;
- (C) eine zweite Vergleichseinheit, mit der ermittelt wird, ob
der Festplattenverfügbarkeitswert
kleiner als ein erster Schwellenwert ist, wenn die erste Vergleichseinheit
ermittelt hat, dass die Prioritätsstufe
größer als
oder gleich dem Prioritätsschwellenwert
ist;
- (D) eine dritte Vergleichseinheit, mit der ermittelt wird, ob
der Festplattenverfügbarkeitswert
kleiner als ein zweiter Schwellenwert ist, der unter dem ersten
Schwellenwert liegt, wenn die erste Vergleichseinheit ermittelt
hat, dass die Prioritätsstufe
nicht größer oder
gleich dem Prioritätsschwellenwert
ist; und
- (E) eine Befehlsausgabeeinheit für das Ausgeben des Befehls
an das Festplattenlaufwerk, wenn entweder die zweite Vergleichseinheit
ermittelt hat, dass der Festplattenverfügbarkeitswert kleiner als der
erste Schwellenwert ist, oder wenn die dritte Vergleichseinheit
ermittelt hat, dass der Festplattenverfügbarkeitswert kleiner als der zweite
Schwellenwert ist.
-
Gemäß einem
vierten Aspekt der Erfindung wird ein Speichermedium bereitgestellt,
das ein Programm für
eine Festplattensteuereinheit speichert, die ermittelt, ob ein Befehl
an ein Festplattenlaufwerk ausgegeben werden soll, wobei die Festplattensteuereinheit
Daten zu den Befehlen verwaltet, die an das Festplattenlaufwerk
gesendet, jedoch noch nicht ausgeführt wurden, wobei die Daten
einen Festplattenverfügbarkeitswert
bereitstellen, der in quantitativer Hinsicht repräsentativ
für die
Verfügbarkeit
des Festplattenlaufwerks ist, einen Befehl auszuführen, wobei
der Befehl über
eine ihm zugehörige
Prioritätsstufe
verfügt
und das Speichermedium Folgendes umfasst:
- (A)
ein Mittel für
das Steuern der Festplattensteuereinheit, um zu ermitteln, ob die
Prioritätsstufe größer als
oder gleich einem Prioritätsschwellenwert
ist;
- (B) ein Mittel für
das Steuern der Festplattensteuereinheit, um zu ermitteln, ob der
Festplattenverfügbarkeitswert
kleiner als ein erster Schwellenwert ist, wenn das Mittel A ermittelt
hat, dass die Prioritätsstufe
größer als
oder gleich dem Prioritätsschwellenwert
ist;
- (C) ein Mittel für
das Steuern der Festplattensteuereinheit, um zu ermitteln, ob der
Festplattenverfügbarkeitswert
kleiner als ein zweiter Schwellenwert ist, der unter dem ersten
Schwellenwert liegt, wenn das Mittel A ermittelt hat, dass die Prioritätsstufe
nicht größer als
oder gleich dem Prioritätsschwellenwert
ist; und
- (D) ein Mittel für
das Steuern der Festplattensteuereinheit, um den Befehl an das Festplattenlaufwerk
auszugeben, wenn entweder das Mittel B ermittelt hat, dass der Festplattenverfügbarkeitswert
kleiner als der erste Schwellenwert ist, oder wenn das Mittel C
ermittelt hat, dass der Festplattenverfügbarkeitswert kleiner als der
zweite Schwellenwert ist.
-
In
einem Computersystem mit einer Festplattensteuereinheit und einem
Festplattenlaufwerk 225 ermittelt die Festplattensteuereinheit
gemäß der Erfindung
somit, ob ein Befehl an das Festplattenlaufwerk ausgegeben werden
soll, indem sie sowohl eine dem Befehl zugehörige Prioritätsstufe
als auch eine Verfügbarkeit
des Festplattenlaufwerks berücksichtigt.
Dabei steht der Festplattenverfügbarkeitswert
für die
noch ausstehende Arbeitslast, die wiederum die Verfügbarkeit
angibt. Der Festplattenverfügbarkeitswert
kann somit ein Wert wie beispielsweise die geschätzte Zeitdauer für die Ausführung ausstehender Befehle
oder die Anzahl ausstehender Befehle sein.
-
Bei
der bevorzugten Ausführungsform
verwaltet die Festplattensteuereinheit als Festplattenverfügbarkeitswert
einen Zählwert
der ausstehenden Befehle, d.h. der Befehle, die bereits an das Festplattenlaufwerk
ausgegeben, jedoch noch nicht von ihm ausgeführt wurden. Bei der Entscheidung,
ob ein Befehl an das Festplattenlaufwerk ausgegeben werden soll,
ermittelt die Festplattensteuereinheit zunächst die Prioritätsstufe
des Befehls. Wenn die Befehlspriorität der höchsten Stufe entspricht, wird
der Befehl nur dann ausgegeben, wenn der Zählwert der ausstehenden Befehle
weniger als acht beträgt.
Wenn die Befehlspriorität
nicht der höchsten
Stufe entspricht, wird der Befehl nur dann ausgegeben, wenn der
Zählwert
der ausstehenden Befehle weniger als zwei beträgt.
-
Durch
die Verwendung eines ersten Schwellenwerts von acht ausstehenden
Befehlen im Falle eines Befehls mit einer hohen Priorität und eines
zweiten Schwellenwerts von zwei ausstehenden Befehlen im Falle eines
Befehls mit einer niedrigeren Priorität gelingt es der Festplattensteuereinheit
problemlos, die Antwortzeiten für
die Befehle mit einer hohen Priorität auf ein Mindestmaß zu verkürzen, wobei
es mit Blick auf die Befehle insgesamt zu keiner bzw. zu keiner
erheblichen nachteiligen Auswirkung auf den Durchsatz des Festplattenlaufwerks
kommt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockschaltbild eines Computersystems gemäß dem Stand der Technik;
-
2 ist
ein Blockschaltbild eines Computersystems, das im Besonderen so
gestaltet ist, dass es die vorliegende Erfindung ausführt; und
-
3 ist
ein Ablaufdiagramm eines Prozesses gemäß der vorliegenden Erfindung,
mit dem ermittelt wird, ob ein Befehl an ein Festplattenlaufwerk ausgegeben
wird.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
2 ist
ein Blockschaltbild eines Computersystems 200. Die Hauptkomponenten
sind ein Hostcomputer 210, eine Festplattensteuereinheit 215 und
ein Festplattenlaufwerk 225. Die Funktion dieser Komponenten
und ihre Beziehung zueinander ist ähnlich derjenigen, die weiter
oben mit Blick auf 1 beschrieben wurde.
-
Bei
dem Festplattenlaufwerk 225 kann es sich um eine handelsübliche Standardkomponente handeln,
mitunter auch als Massen-Festplattenlaufwerk bezeichnet, die dem
SCSI-Protokoll (Small Computer System Interface) entspricht. Dabei
ist die vorliegende Erfindung jedoch nicht auf das SCSI-Protokoll
beschränkt.
Sie kann auch auf ein beliebiges anderes Festplattenlaufwerk angewendet
werden, das Befehle neu ordnet und dabei die Leistungsfähigkeit
der Befehlsausführung
zugrunde legt.
-
Das
Festplattenlaufwerk 225 beinhaltet einen (nicht abgebildeten)
Prozessor und zugehörigen Speicher 228,
der eine Befehlswarteschlange 230 des Festplattenlaufwerks
beinhaltet. Die Befehlswarteschlange 230 des Festplattenlaufwerks
enthält
Befehle, die zwar an das Festplattenlaufwerk 225 ausgegeben,
jedoch noch nicht von diesem ausgeführt wurden. Das Festplattenlaufwerk 225 kann
Befehle in der Befehlswarteschlange 230 des Festplattenlaufwerks
neu ordnen.
-
Die
Festplattensteuereinheit 215 enthält einen Prozessor 216 und
einen zugehörigen
Speicher 217 für
die Ausführung
von Prozeduren, die sich auf den Austausch von Daten mit dem Hostcomputer 210 und
dem Festplattenlaufwerk 225 beziehen. Eine Befehlswarteschlange 220 der
Steuereinheit enthält
Befehle, die noch an das Festplattenlaufwerk 225 ausgegeben
werden sollen. Die Festplattensteuereinheit 215 verwaltet
darüber
hinaus einen Festplattenverfügbarkeitswert 218,
der eine Verfügbarkeit
des Festplattenlaufwerks 225 angibt. Der Festplattenverfügbarkeitswert 218 kann
ein beliebiger quantitativer Anzeiger sein, der für die Verfügbarkeit
des Festplattenlaufwerks 225 steht, wie beispielsweise
die geschätzte
Zeitdauer für
die Ausführung
der ausstehenden Befehle oder die Anzahl der ausstehenden Befehle. Der
Befehlsausgabeprozess 219 ermittelt, ob ein Befehl an das
Festplattenlaufwerk 225 ausgegeben werden soll.
-
Bei
der bevorzugten Ausführungsform
ist der Festplattenverfügbarkeitswert 218 ein
Zählwert
der ausstehenden Befehle (Outstanding Command Count, OCC), d.h.
ein Zählwert
der Befehle, die an das Festplattenlaufwerk 225 ausgegeben,
von ihm jedoch noch nicht ausgeführt
wurden. Anders ausgedrückt,
der Festplattenverfügbarkeitswert 218 gibt
die Anzahl der Befehle in der Befehlswarteschlange 230 des
Festplattenlaufwerks an. Wenn die Festplattensteuereinheit 215 einen
Befehl an das Festplattenlaufwerk 225 ausgibt, erhöht sie den
Zählwert
der ausstehenden Befehle im Festplattenverfügbarkeitswert 218.
Wenn das Festplattenlaufwerk 225 einen Befehl ausführt, vermindert
die Festplattensteuereinheit 215 den Zählwert der ausstehenden Befehle
im Festplattenverfügbarkeitswert 218.
-
Die
Festplattensteuereinheit 215 weist jedem Befehl, den sie
an das Festplattenlaufwerk 225 ausgeben wird, eine Prioritätsstufe
zu. Wie weiter oben mit Blick auf 1 erläutert, weist
die Anforderungspriorität
die höchste
Prioritätsstufe
auf. Bei der bevorzugten Ausführungsform
kann eine Befehlspriorität
der Anforderungspriorität
oder aber einer niedrigeren Prioritätsstufe entsprechen. Dabei
wird zwischen den niedrigeren Prioritätsstufen nicht weiter unterschieden.
Das heißt,
dass eine Befehlspriorität entweder
der Anforderungspriorität
oder aber nicht der Anforderungspriorität entspricht. Allgemein betrachtet
kann die Erfindung jedoch mit einer beliebigen Anzahl von Prioritätsstufen
angewendet werden.
-
Bei
der Entscheidung, ob ein Befehl an das Festplattenlaufwerk 225 ausgegeben
werden soll, ermittelt der Befehlsausgabeprozess 219 zunächst die Prioritätsstufe
des Befehls. Wenn die Befehlspriorität der Anforderungspriorität entspricht,
wird der Befehl nur dann ausgegeben, wenn der Zählwert der ausstehenden Befehle
weniger als acht beträgt.
Wenn die Befehlspriorität
nicht der Anforderungspriorität entspricht,
wird der Befehl nur dann ausgegeben, wenn der Zählwert der ausstehenden Befehle
weniger als zwei beträgt.
-
Mit
diesem Algorithmus können
bis zu acht Befehle in die Befehlswarteschlange 230 des
Festplattenlaufwerks gestellt werden, wenn das Computersystem 200 so
beschäftigt
ist, dass acht Befehle mit der Anforderungspriorität auflaufen,
wenn acht Befehle mit einer niedrigeren Priorität zur Anforderungspriorität heraufgestuft
wurden oder wenn eine Kombination aus diesen beiden Fällen vorliegt.
Wenn das Computersystem 200 mit einer geringen Auslastung
arbeitet, wird ein Befehl mit Anforderungspriorität maximal
hinter zwei vor ihm ausgegebenen Befehlen gestellt. Diese Vorgehensweise
gibt Befehlen mit Anforderungspriorität eine Vorzugsbehandlung, um
so ihre Antwortzeiten auf ein Mindestmaß zu verkürzen, und ermöglicht dem
Festplattenlaufwerk 225 gleichzeitig, Befehle in der Befehlswarteschlange 230 des
Festplattenlaufwerks neu zu ordnen, um so den Durchsatz zu maximieren.
-
3 ist
ein Ablaufdiagramm 300 eines Befehlsausgabeprozesses 219.
Der Befehlsausgabeprozess 219 wird aufgerufen, wenn die
Festplattensteuereinheit 215 entscheiden muss, ob ein Befehl an
das Festplattenlaufwerk 225 ausgegeben wird. Dies ist der
Fall, wenn ein neuer Befehl vom Hostcomputer 110 empfangen
wird, wenn ein zuvor ausgegebener Befehl vom Festplattenlaufwerk 125 abgearbeitet
wurde oder wenn ein Befehl auf eine höhere Prioritätsstufe
heraufgestuft wurde. Dabei handelt es sich bei dem betreffenden
Befehl um den Befehl ganz am Anfang der Befehlswarteschlange 220 der Festplattensteuereinheit.
-
Wie
zuvor bereits erwähnt,
gibt der Festplattenverfügbarkeitswert 218 eine
Verfügbarkeit
des Festplattenlaufwerks 225 an und enthält bei der
bevorzugten Ausführungsform
einen Zählwert
der ausstehenden Befehle. Wie aus 3 hervorgeht,
wertet der Befehlsausgabeprozess 219 den Zählwert der ausstehenden
Befehle (OCC) 305 aus.
-
In
Schritt 310 beginnt der Prozess, indem ermittelt wird,
ob der betreffende Befehl über
eine Anforderungspriorität
verfügt.
Wenn die Prioritätsstufe der
Anforderungspriorität
entspricht, fährt
der Prozess mit Schritt 315 fort. Wenn die Prioritätsstufe nicht
der Anforderungspriorität
entspricht, fährt
der Prozess mit Schritt 325 fort. Dabei ist zu beachten, dass
bei dieser Ausführungsform
die Anforderungspriorität
ein Prioritätsschwellenwert
ist und dass der Fall einer Prioritätsstufe, die über der
Anforderungspriorität
liegt, nicht berücksichtigt
werden muss, da die Anforderungspriorität die höchste mögliche Prioritätsstufe
darstellt. Allgemein gesehen muss der Prioritätsschwellenwert jedoch nicht
die höchste
Prioritätsstufe
sein, und der Prozess würde
dann ermitteln, ob die Prioritätsstufe
des Befehls größer als
oder gleich dem Prioritätsschwellenwert
ist.
-
In
Schritt 315 ermittelt der Prozess, ob der Zählwert 305 der
ausstehenden Befehle kleiner als ein erster Zähl-Schwellenwert von acht ist.
Anders ausgedrückt,
er ermittelt, ob die Befehlswarteschlange 230 des Festplattenlaufwerks
weniger als acht ausstehende Befehle enthält. Wenn der Zählwert der ausstehenden
Befehle kleiner als acht ist, fährt
der Prozess mit Schritt 320 fort. Wenn der Zählwert der ausstehenden
Befehle nicht kleiner als acht ist, fährt der Prozess mit Schritt 335 fort.
-
In
Schritt 320 gibt der Prozess den betreffenden Befehl an
das Festplattenlaufwerk 225 aus. Danach fährt der
Prozess mit Schritt 335 fort.
-
In
Schritt 325 ermittelt der Prozess, ob der Zählwert 305 der
ausstehenden Befehle kleiner als ein zweiter Zähl-Schwellenwert von zwei ist. Anders ausgedrückt, er
ermittelt, ob die Befehlswarteschlange 230 des Festplattenlaufwerks
weniger als zwei ausstehende Befehle enthält. Wenn der Zählwert der ausstehenden
Befehle kleiner als zwei ist, fährt
der Prozess mit Schritt 330 fort. wenn der Zählwert der ausstehenden
Befehle nicht kleiner als zwei ist, fährt der Prozess mit Schritt 335 fort.
-
In
Schritt 330 gibt der Prozess den betreffenden Befehl an
das Festplattenlaufwerk 225 aus. Danach fährt der
Prozess mit Schritt 335 fort.
-
In
Schritt 335 endet der Prozess.
-
Dabei
ist zu beachten, dass der Befehlsausgabeprozess 220 nicht
die zuvor erläuterte
Warteschlangenanfangsoption verwendet. Das Festplattenlaufwerk 225 kann
in der Betriebsart Neuordnen betrieben werden und Befehle in der
Befehlswarteschlange 230 des Festplattenlaufwerks neu ordnen. Auf
diese Weise kann das Festplattenlaufwerk 225 seinen Durchsatz
so weit verbessern, wie dies in der Betriebsart Neuordnen möglich ist.
-
Obwohl
die Prozeduren, die für
die Ausführung
der vorliegenden Erfindung notwendig sind, so beschrieben werden,
dass sie bereits in den Speicher 217 der Festplattensteuereinheit 215 geladen
sind, können
sie auch auf einem Speichermedium wie beispielsweise dem Datenspeicher 250 aus 2 konfiguriert
sein, um später
in den Speicher 217 geladen zu werden.
-
Dabei
sollte klar sein, dass die oben stehende Beschreibung lediglich
eine beispielhafte Erläuterung
der Erfindung darstellt. Fachleute können verschiedene Alternativen
und Modifizierungen erarbeiten, ohne von der Erfindung abzuweichen.
So ist der Prozess beispielsweise nicht unbedingt auf zwei Prioritätsstufen
oder zwei Schwellenwerte für
die Festplattenverfügbarkeit
begrenzt. Vielmehr können
auch mehrere Prioritätsstufen
und Schwellenwerte in Betracht gezogen werden. Zweitens muss die
Festplattensteuereinheit keine eigenständige Komponente sein, wie
dies bei der Festplattensteuereinheit 215 aus 2 der
Fall ist, sondern sie kann in eine andere Einheit wie beispielsweise
den Hostcomputer 210 eingebettet sein. Außerdem ist
die Erfindung nicht auf ein Computersystem mit nur einem Festplattenlaufwerk
begrenzt. Bei einem System mit mehreren Festplattenlaufwerken verwaltet
die Festplattensteuereinheit 215 für jedes der Festplattenlaufwerke
eine Befehlswarteschlange 220 der Steuereinheit und einen
Festplattenverfügbarkeitswert 218.
Demgemäß soll die
vorliegende Erfindung alle derartigen Alternativen, Modifizierungen
und Varianten umfassen, die vom Geltungsumfang der beigefügten Ansprüche abgedeckt
werden.