DE60033994T2 - Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk - Google Patents

Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk Download PDF

Info

Publication number
DE60033994T2
DE60033994T2 DE60033994T DE60033994T DE60033994T2 DE 60033994 T2 DE60033994 T2 DE 60033994T2 DE 60033994 T DE60033994 T DE 60033994T DE 60033994 T DE60033994 T DE 60033994T DE 60033994 T2 DE60033994 T2 DE 60033994T2
Authority
DE
Germany
Prior art keywords
hard disk
disk drive
command
threshold
priority
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 - Lifetime
Application number
DE60033994T
Other languages
English (en)
Other versions
DE60033994D1 (de
Inventor
Richard Curtis c/o IBM U. K. Ltd. Cleavinger
Kent D. c/o IBM U. K. Ltd. Prosch
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 DE60033994D1 publication Critical patent/DE60033994D1/de
Publication of DE60033994T2 publication Critical patent/DE60033994T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F3/0674Disk device

Description

  • 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.

Claims (15)

  1. Computersystem (200) mit einer Festplattensteuereinheit (215) und einem Festplattenlaufwerk (225), wobei die Festplattensteuereinheit (215) Befehle, von denen jeder über eine ihm zugehörige Prioritätsstufe verfügt, an das Festplattenlaufwerk (225) ausgibt, um von diesem ausgeführt zu werden, wobei die Festplattensteuereinheit (215) so aufgebaut ist, dass sie über Daten zu den Befehlen verfügt, die an das Festplattenlaufwerk (225) 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 (215) einen Befehl an das Festplattenlaufwerk (225) 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 Festplattenverfügbarkeitswert unter einem ersten Schwellenwert liegt; oder dass die Prioritätsstufe unter dem vorbestimmten Prioritätsschwellenwert liegt und der Festplattenverfügbarkeitswert unter einem zweiten Schwellenwert liegt, der kleiner als der erste Schwellenwert ist.
  2. Verfahren, mit dem ermittelt wird, ob ein Befehl, der über eine ihm zugehörige Prioritätsstufe verfügt, von einer Festplattensteuereinheit (215) an ein Festplattenlaufwerk (225) ausgegeben werden soll, wobei die Festplattensteuereinheit (215) Daten zu den Befehlen verwaltet, die an das Festplattenlaufwerk (225) 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 (215) die folgenden Schritte ausführt: (A) Ermitteln, ob die Prioritätsstufe größer als oder gleich einem Prioritätsschwellenwert ist (310); (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 (315); (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 (320) ist, oder wenn in Schritt C ermittelt wurde, dass der Festplattenverfügbarkeitswert kleiner als der zweite Schwellenwert ist (330).
  3. Festplattensteuereinheit (215), die ermittelt, ob ein Befehl an ein Festplattenlaufwerk ausgegeben (225) werden soll, wobei dieser Befehl über eine ihm zugehörige Prioritätsstufe verfügt, wobei die Festplattensteuereinheit Folgendes umfasst: (A) einen Festplattenverfügbarkeitsanzeiger (218) für das Verwalten von Daten zu den Befehlen, die an das Festplattenlaufwerk (225) 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 (219) 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.
  4. Speichermedium, das ein Programm für eine Festplattensteuereinheit (215) speichert, die ermittelt, ob ein Befehl an ein Festplattenlaufwerk (225) ausgegeben werden soll, wobei die Festplattensteuereinheit (215) Daten zu den Befehlen verwaltet, die an das Festplattenlaufwerk (225) 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.
  5. Computersystem nach Anspruch 1, wobei das Festplattenlaufwerk (225) eine Festplattenwarteschlange (230) beinhaltet, die ausstehende Befehle enthält, die zwar an das Festplattenlaufwerk (225) ausgegeben, jedoch noch nicht von diesem ausgeführt wurden.
  6. Computersystem nach Anspruch 5, wobei das Festplattenlaufwerk (225) ausstehende Befehle in der Festplattenwarteschlange (230) neu ordnen kann.
  7. Computersystem nach einem beliebigen der Ansprüche 1, 5 und 6, wobei der Festplattenverfügbarkeitswert (218) ein Zählwert der ausstehenden Befehle ist, die zwar an das Festplattenlaufwerk (225) ausgegeben, jedoch noch nicht von diesem ausgeführt wurden.
  8. Computersystem nach einem beliebigen der Ansprüche 1, 5 und 6, wobei der Festplattenverfügbarkeitswert (218) eine geschätzte Zeitdauer für die Ausführung ausstehender Befehle durch das Festplattenlaufwerk (225) ist.
  9. Computersystem nach Anspruch 1 oder einem beliebigen der Ansprüche 5 bis 8, wobei die Festplattensteuereinheit (215) eine Warteschlange (220) mit den noch nicht ausgegebenen Befehlen enthält bzw. so aufgebaut ist, dass sie diese enthält.
  10. Verfahren nach Anspruch 2, wobei der Festplattenverfügbarkeitswert (218) ein Zählwert der ausstehenden Befehle ist, die an das Festplattenlaufwerk (225) ausgegeben, jedoch noch nicht von diesem ausgeführt wurden.
  11. Verfahren nach Anspruch 2, wobei der Festplattenverfügbarkeitswert (218) eine geschätzte Zeitdauer für die Ausführung ausstehender Befehle durch das Festplattenlaufwerk (225) ist.
  12. Festplattensteuereinheit nach Anspruch 3, wobei der Festplattenverfügbarkeitswert (218) ein Zählwert der ausstehenden Befehle ist, die an das Festplattenlaufwerk (225) ausgegeben, jedoch noch nicht von diesem ausgeführt wurden.
  13. Festplattensteuereinheit nach Anspruch 3, wobei der Festplattenverfügbarkeitswert (218) eine geschätzte Zeitdauer für die Ausführung ausstehender Befehle durch das Festplattenlaufwerk (225) ist.
  14. Speichermedium nach Anspruch 4, wobei der Festplattenverfügbarkeitswert (218) ein Zählwert der ausstehenden Befehle ist, die an das Festplattenlaufwerk (225) ausgegeben, jedoch noch nicht von diesem ausgeführt wurden.
  15. Speichermedium nach Anspruch 4, wobei der Festplattenverfügbarkeitswert (218) eine geschätzte Zeitdauer für die Ausführung ausstehender Befehle durch das Festplattenlaufwerk (225) ist.
DE60033994T 1999-07-26 2000-07-19 Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk Expired - Lifetime DE60033994T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/360,261 US6301639B1 (en) 1999-07-26 1999-07-26 Method and system for ordering priority commands on a commodity disk drive
US360261 1999-07-26

Publications (2)

Publication Number Publication Date
DE60033994D1 DE60033994D1 (de) 2007-05-03
DE60033994T2 true DE60033994T2 (de) 2007-12-06

Family

ID=23417252

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60033994T Expired - Lifetime DE60033994T2 (de) 1999-07-26 2000-07-19 Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk

Country Status (12)

Country Link
US (1) US6301639B1 (de)
EP (1) EP1072970B1 (de)
JP (1) JP3588311B2 (de)
KR (1) KR100415861B1 (de)
CN (1) CN1117326C (de)
AT (1) ATE357691T1 (de)
DE (1) DE60033994T2 (de)
HK (1) HK1032274A1 (de)
ID (1) ID26676A (de)
MY (1) MY125125A (de)
SG (1) SG85716A1 (de)
TW (1) TW470912B (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6463532B1 (en) * 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6578107B1 (en) * 2000-05-25 2003-06-10 International Business Machines Corporation Method and system for prefetching data where commands are reordered for execution
US6728792B2 (en) * 2001-01-04 2004-04-27 International Business Machines Corporation Priority queue with arbitrary queuing criteria
US6640258B2 (en) * 2001-01-10 2003-10-28 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for command queue ordering with a sort time reduction algorithm
US20030041190A1 (en) * 2001-06-21 2003-02-27 Sony Corporation And Sony Electronics, Inc. System and method for efficiently performing a command swapping procedure
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
JP4176341B2 (ja) * 2001-10-23 2008-11-05 株式会社日立製作所 記憶制御装置
US6848020B2 (en) * 2001-11-27 2005-01-25 International Business Machines Corporation Command aging method for data storage devices
JP3683211B2 (ja) * 2001-12-10 2005-08-17 エヌイーシーコンピュータテクノ株式会社 ノード間データ転送方法及びノード間データ転送装置
US6965965B2 (en) * 2002-06-06 2005-11-15 International Business Machines Corporation Dynamic response shaping for command aging
US7093071B2 (en) * 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7073021B2 (en) 2003-03-21 2006-07-04 Seagate Technology Llc Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements
CN100392627C (zh) * 2003-12-22 2008-06-04 威盛电子股份有限公司 存储器存取要求优先序列仲裁装置及方法
JP2005332236A (ja) * 2004-05-20 2005-12-02 Fujitsu Ltd I/oコマンド投入数の動的変換システム
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
JP5030387B2 (ja) * 2005-03-08 2012-09-19 エイチジーエスティーネザーランドビーブイ データ記憶装置
US7752488B2 (en) * 2006-01-06 2010-07-06 International Business Machines Corporation Method to adjust error thresholds in a data storage and retrieval system
US20080086599A1 (en) * 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
US20080086598A1 (en) * 2006-10-10 2008-04-10 Maron William A System and method for establishing cache priority for critical data structures of an application
JP5171602B2 (ja) * 2008-12-25 2013-03-27 京セラドキュメントソリューションズ株式会社 Raidドライバ及びこれを備えた電子機器並びにraidに対するアクセス要求調停方法
JP2010211428A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd ストレージ装置、中継装置、及びコマンド発行制御方法
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
JP5402698B2 (ja) * 2010-02-10 2014-01-29 富士通株式会社 記憶装置への情報蓄積制御方法
CN102955753B (zh) * 2011-08-30 2016-08-03 安凯(广州)微电子技术有限公司 一种迟滞型数据流控制电路
JP2012038330A (ja) * 2011-10-05 2012-02-23 Hitachi Global Storage Technologies Netherlands Bv ハードディスクドライブ
US8886872B1 (en) 2011-10-06 2014-11-11 Google Inc. Memory command dispatch in a data storage device
US8255618B1 (en) * 2011-10-06 2012-08-28 Google Inc. Performance isolation in a shared memory device
CN103605481B (zh) * 2013-10-31 2017-07-14 华为技术有限公司 磁盘控制方法、装置及设备
US10169948B2 (en) * 2014-01-31 2019-01-01 International Business Machines Corporation Prioritizing storage operation requests utilizing data attributes
US20160299686A1 (en) * 2015-04-08 2016-10-13 Kabushiki Kaisha Toshiba Disk device and controlling method of disk device
US10198188B2 (en) 2017-03-09 2019-02-05 Kabushiki Kaisha Toshiba Disk drive that efficiently handles random mixed-R/W command-streams
US10303373B2 (en) 2017-06-12 2019-05-28 Seagate Technology Llc Prioritizing commands in a data storage device
CN112416826B (zh) * 2020-11-20 2023-09-22 成都海光集成电路设计有限公司 专用计算芯片、dma数据传输系统及方法
CN112735115A (zh) * 2020-12-28 2021-04-30 新天科技股份有限公司 多线程业务处理方法、装置、服务器及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
JPH0388019A (ja) 1989-08-31 1991-04-12 Toshiba Corp データ処理装置
JP2780821B2 (ja) * 1989-09-22 1998-07-30 株式会社日立製作所 オンライン中のダンプ方式およびディスクサブシステム
JPH06309200A (ja) 1991-04-10 1994-11-04 Internatl Business Mach Corp <Ibm> ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
US5522054A (en) 1993-09-13 1996-05-28 Compaq Computer Corporation Dynamic control of outstanding hard disk read requests for sequential and random operations
US5729718A (en) 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
US5557528A (en) 1993-11-23 1996-09-17 Storage Technology Corporation Task prioritization for a tape storage system
US5548795A (en) 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
JPH08171457A (ja) * 1994-12-20 1996-07-02 Matsushita Electric Ind Co Ltd データ転送制御装置
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
JPH09305320A (ja) * 1996-05-14 1997-11-28 Matsushita Electric Ind Co Ltd データ記憶装置
US5848226A (en) 1996-06-03 1998-12-08 Xerox Corporation Prioritized data transfer through buffer memory in a digital printing system
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
JPH1165775A (ja) * 1997-08-18 1999-03-09 Kobe Nippon Denki Software Kk 磁気ディスクコントローラの制御方法
US6145052A (en) * 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering

Also Published As

Publication number Publication date
TW470912B (en) 2002-01-01
JP3588311B2 (ja) 2004-11-10
US6301639B1 (en) 2001-10-09
CN1117326C (zh) 2003-08-06
SG85716A1 (en) 2002-01-15
KR20010066933A (ko) 2001-07-11
KR100415861B1 (ko) 2004-01-31
CN1282030A (zh) 2001-01-31
DE60033994D1 (de) 2007-05-03
HK1032274A1 (en) 2001-07-13
MY125125A (en) 2006-07-31
EP1072970A1 (de) 2001-01-31
EP1072970B1 (de) 2007-03-21
ID26676A (id) 2001-02-01
ATE357691T1 (de) 2007-04-15
JP2001067297A (ja) 2001-03-16

Similar Documents

Publication Publication Date Title
DE60033994T2 (de) Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk
DE102012216568B4 (de) Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
DE102015014851B4 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE69728212T2 (de) Speichersteuerung und diese verwendendes Rechnersystem
DE19983589B4 (de) Hochfrequenz-Pipeline-Entkopplungswarteschlangengestaltung
DE112010004931B4 (de) Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE112010003133B4 (de) Datenmigration zwischen datenspeichereinheiten
DE60035774T2 (de) Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung
DE202010017668U1 (de) Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung
DE602004004494T2 (de) Datenverwaltungs-Vorrichtung und -Methode für einen Flash-Speicher
DE102019124450A1 (de) Bandbreitenbegrenzung in solid-state-laufwerken
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE10062063B4 (de) Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE112006003081T5 (de) Leistungspriorisierung in Multithreadprozessoren
DE112011102076T5 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE112008003256T5 (de) Verteilung und Speichervolumen auf Laufwerksbereiche mit intelligenter Dateiablage und/oder -umordnung
DE102018119881B4 (de) Verwaltung einer DRAM-Bankaktivierung
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE112004001129T5 (de) Gemeinsame Nutzungstechnik für Cross-Thread Register
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE19945993B4 (de) Plattenschreibvollendungssystem
DE112020005695T5 (de) Speichercontroller für solid-state-speichereinheiten
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)