DE102016001682A1 - Leistungsausgeglichene Datenspeichervorrichtung - Google Patents

Leistungsausgeglichene Datenspeichervorrichtung Download PDF

Info

Publication number
DE102016001682A1
DE102016001682A1 DE102016001682.5A DE102016001682A DE102016001682A1 DE 102016001682 A1 DE102016001682 A1 DE 102016001682A1 DE 102016001682 A DE102016001682 A DE 102016001682A DE 102016001682 A1 DE102016001682 A1 DE 102016001682A1
Authority
DE
Germany
Prior art keywords
storage
data
writes
write
memory
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.)
Withdrawn
Application number
DE102016001682.5A
Other languages
English (en)
Inventor
David Hall
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.)
HGST Netherlands BV
Original Assignee
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of DE102016001682A1 publication Critical patent/DE102016001682A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering 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/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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0658Controller construction 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/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
    • 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
    • G06F3/0676Magnetic disk device
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10657Cache memories for random data access, e.g. buffers wherein the data output is controlled by a priority parameter other than retention time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Um eine verbesserte Arbeitsweise von Datenspeichervorrichtungen und -systemen zu liefern, werden hierin verschiedene Systeme, Apparate, Verfahren und Software bereitgestellt. Bei einem ersten Beispiel wird eine Datenspeichervorrichtung bereitgestellt, die Speichermedien aufweist, die einen geschindelten magnetischen Aufzeichnungs(SMR)-Speicherbereich umfassen. Die Datenspeichervorrichtung weist ebenfalls ein Speichersteuersystem auf, das für den Empfang von Schreibdaten und für das reaktionsschnelle Speichern von Schreibdaten in einem ersten Speicherbereich vor Übertragung in den SMR-Speicherbereich eingerichtet ist. Das Speichersteuersystem ist für die Bestimmung eines Berichtstempos zur Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich eingerichtet, wobei das Berichtstempo eine Zielleistung einführt, die von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen wird. Das Speichersteuersystem ist für das Berichten des Abschlusses der Schreibvorgänge über eine Hostschnittstelle mit Berichtstempo eingerichtet.

Description

  • TECHNISCHES GEBIET
  • Aspekte der Offenbarung betreffen das Gebiet der Datenspeicherung und Festplattenlaufwerke in Datenspeichersystemen.
  • TECHNISCHER HINTERGRUND
  • Computer- und Netzwerksysteme wie persönliche Computer, Workstations, Serversysteme und Cloud-Speichersysteme umfassen typischerweise Datenspeicherelemente für Datenspeicherung und -abruf. Diese Datenspeicherelemente können Datenspeichervorrichtungen wie Festplattenlaufwerke, Festkörperspeichervorrichtungen, Hybridspeichervorrichtungen, Bandspeichervorrichtungen und andere Massenspeichervorrichtungen umfassen. Hersteller von Datenspeichervorrichtungen stellen typischerweise verschiedene Güteklassen von Datenspeichervorrichtungen her, die verschiedene Leistungsmerkmale haben können wie Durchsatzraten, Transaktionspuffergrößen, Rotationsraten für rotierende magnetische Medien oder Latenzen, unter anderen Merkmalen.
  • Da Computersysteme und Netzwerke hinsichtlich Anzahl und Kapazität wachsen, besteht Bedarf an immer mehr Speicherkapazität. Cloud-Computing und Verarbeitungssysteme für große Datenmengen haben den Bedarf an digitalen Datenspeichersystemen, die riesige Datenmengen übertragen und fassen können, weiter verstärkt. Datenzentren können eine große Menge von Datenspeichervorrichtungen in verschiedenen Speicherkonfigurationen mit Rackmontage und hoher Dichte aufweisen.
  • Diese hochdichten Speicherkonfigurationen können eine Vielfalt von Speichervorrichtungen verwenden, die verschiedene Speichertechniken nutzen. Eine solche Speichertechnik umfasst Datenspeicherlaufwerke mit geschindelter magnetischer Aufzeichnungs(SMR)-Technik zur Erhöhung der Speicherdichten auf assoziierten Speichermedien. Die SMR-Technik überlappt physisch benachbarte Datenspuren auf einem magnetischen Speichermedium, im Gegensatz zu einer nicht überlappenden Aufzeichnungstechnik wie die parallele magnetische Aufzeichnung (PMR). Unterschiede in Hostseitendurchsätzen von Datenspeicherlaufwerken, die SMR-Technik einschließen, können zu einer unvorhersehbaren Leistung für individuelle Datenspeicherlaufwerke und damit einer unvorhersehbaren Leistung für die große Anzahl der Datenspeicherlaufwerke innerhalb einer Speicheranlage führen.
  • ÜBERSICHT
  • Um eine verbesserte Arbeitsweise der Datenspeichervorrichtungen und -systeme zu liefern, werden hierin verschiedene Systeme, Apparate, Verfahren und Software bereitgestellt. Bei einem ersten Beispiel wird eine Datenspeichervorrichtung bereitgestellt. Die Datenspeichervorrichtung weist Speichermedien auf, die einen ersten Speicherbereich und einen geschindelten magnetischen Aufzeichnungs(SMR)-Speicherbereich aufweisen. Die Datenspeichervorrichtung umfasst ebenfalls ein Speichersteuersystem, das eingerichtet ist, über eine Hostschnittstelle übertragene Speichervorgänge, die Schreibvorgänge für die Speicherung von Schreibdaten auf den Speichermedien umfassen, zu empfangen und reaktionsschnell die Schreibdaten im ersten Speicherbereich zu speichern, ehe diese in den SMR-Speicherbereich übertragen werden. Das Speichersteuersystem ist eingerichtet, ein Berichtstempo für die Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich zu bestimmen, wobei das Berichtstempo eine Zielleistung einführt, die von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen bzw. vergleichmäßigt wird. Das Speichersteuersystem ist eingerichtet, den Abschluss der Schreibvorgänge über die Hostschnittstelle bei Berichtstempo zu berichten.
  • Bei einem anderen Beispiel wird ein Verfahren zur Betätigung einer Datenspeichervorrichtung vorgestellt. Das Verfahren umfasst den Empfang von über eine Hostschnittstelle übertragenen Speichervorgängen, die Schreibvorgänge für die Speicherung von Schreibdaten auf den Speichermedien umfassen, und eine reaktionsschnelle Speicherung der Schreibdaten in einem ersten Speicherbereich des Speichermediums, ehe diese auf einen SMR-Speicherbereich des Speichermediums übertragen werden. Das Verfahren umfasst ebenfalls die Bestimmung eines Berichtstempos für die Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich, wobei das Berichtstempo eine Zielleistung einführt, die ausgehend von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen bzw. vergleichmäßigt wird. Das Verfahren umfasst ebenfalls das Berichten des Abschlusses der Schreibvorgänge über die Hostschnittstelle bei Berichtstempo.
  • Bei einem anderen Beispiel wird ein Datenspeichersystem vorgestellt. Das Datenspeichersystem weist mehrere Datenspeichervorrichtungen auf, die eingerichtet sind, Speichervorgänge für Speicherung und Abruf von Daten auf assoziierten Speichermedien zu empfangen, wobei jedes der assoziierten Speichermedien einen magnetischen Aufzeichnungs(SMR)-Speicherbereich aufweist. Jede der mehreren Datenspeichervorrichtungen umfasst ein Speichersteuersystem, das eingerichtet ist, über ein Hostsystem übertragene assoziierte Speichervorgänge zu empfangen, die Schreibvorgänge für die Speicherung von Schreibdaten auf den Speichermedien umfassen, und reaktionsschnell die Schreibdaten in einem ersten Speicherbereich zu speichern, ehe diese in den SMR-Speicherbereich übertragen werden. Das Speichersteuersystem ist eingerichtet, ein Berichtstempo für das Berichten der Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich zu bestimmen, wobei das Berichtstempo eine Zielleistung einführt, die ausgehend von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen bzw. vergleichmäßigt wird, um die Leistung über einige der mehreren Datenspeichervorrichtungen zu normalisieren. Das Speichersteuersystem ist eingerichtet, den Abschluss der Schreibvorgänge mit Berichtstempo zu berichten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Viele Aspekte der Offenbarung können bei Heranziehung der folgenden Zeichnungen besser verstanden werden. Die Komponenten in den Zeichnungen sind nicht unbedingt maßstabgerecht, die Betonung wird vielmehr auf eine klare Veranschaulichung der Prinzipien der vorliegenden Offenbarung gelegt. Außerdem geben in den Zeichnungen gleiche Bezugsnummern gleiche Teile in den mehreren Ansichten an. Während mehrere Ausführungsformen im Zusammenhang mit diesen Zeichnungen beschrieben werden, ist die Offenbarung nicht auf die hierin offenbarten Ausführungsformen beschränkt. Im Gegenteil, es ist beabsichtigt, alle Alternativen, Modifikationen und Entsprechungen zu erfassen.
  • 1 ist ein Systemdiagramm, das ein Datensystem veranschaulicht.
  • 2 ist ein Ablaufdiagramm, das die Arbeitsweise eines Datenspeicherlaufwerks zeigt.
  • 3 ist ein Systemdiagramm, das ein Datensystem veranschaulicht.
  • 4 ist ein Ablaufdiagramm, das die Arbeitsweise eines Festplattenlaufwerks veranschaulicht.
  • 5 ist ein Diagramm, das Leistungseinschätzungstabellen zeigt.
  • 6 ist ein Diagramm, das eine Schreib-Kredit-Prozedur für ein Festplattenlaufwerk zeigt.
  • 7 ist ein Diagramm, das eine Lese-Kredit-Prozedur für ein Festplattenlaufwerk veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Hochdichte magnetische Speichervorrichtungen verwenden eine Vielfalt von Speichertechniken. Eine solche Speichertechnik umfasst rotierende Datenspeicherlaufwerke mit geschindelter magnetischer Aufzeichnungs(SMR)-Technik. Die SMR-Technik gestattet, dass Lese/Schreibköpfe physisch benachbarte Datenspuren auf dem Speichermedium überlappen, im Gegensatz zu einer nicht überlappenden Aufzeichnungstechnik wie die parallele magnetische Aufzeichnung (PMR). Vorrichtungen, welche die SMR-Technik verwenden, können jedoch zu einer „burstartigen” Leistung für zufällige Schreibvorgänge und einem langsameren Durchsatz ühren. Die burstartigfür fragmentierte Lesevorgänge fe Leistung kann daher rühren, dass ein temporärer Speicherbereich oder Ausnahmebereich auf dem Speichermedium verwendet wird, der keine SMR-Techniken nutzt. Dieser temporäre Speicherbereich kann angewandt werden, um Daten schnell vor Archivierung in die SMR-Bereiche zu speichern, und erlaubt eine schnelle Behandlung von Schreibdaten aus der Perspektive des Hostsystems. Bei vielen Beispielen können zufällige Schreibvorgänge an eine Vorrichtung, die SMR-Techniken benutzt, schneller geschehen als eine äquivalente Vorrichtung, die PMR-Techniken verwendet, teilweise dank der Anwendung dieses temporären Speicherbereichs.
  • Ein schnellerer Durchgang für zufällige Schreibvorgänge mag in manchen Situationen wünschenswert sein. Wenn jedoch diese Vorrichtungen in einem großen Datenzentrum mit vielen Laufwerken eingesetzt werden, die gleichzeitig operieren, kann die Burst-Natur dieser zahlreichen Laufwerke zu Schwierigkeiten aus der Perspektive der Hostsysteme führen. Ein Hostsystem kann insbesondere weniger fähig sein, eine Leistung vorauszusagen und einen steten Datenfluss an Laufwerke aufrechtzuerhalten, die SMR-Techniken verwenden. Auch die Variation von Vorrichtung zu Vorrichtung kann in einem großen Datenzentrum Schwierigkeiten bei der Datenübertragung, Prozessplanung und Einschätzung des Stromverbrauchs durch assoziierte Datensysteme verursachen. Bei den Beispielen hierin wird Ausgleichmanagement angewandt, um das Berichten von zufälligen Schreibabschlüssen zu drosseln und so einen burstartigen Leistungsdurchsatz der Datenspeichervorrichtungen auszugleichen und eine konsistentere Leistung für Hostsysteme bereitzustellen.
  • Ein erstes Beispiel des Ausgleichmanagements bei Datenspeichervorrichtungen wird in 1 dargestellt. 1 ist ein Systemdiagramm, das Datensystem 100 veranschaulicht. System 100 umfasst Datenspeichervorrichtung 110 und Hostsystem 140. Datenspeichervorrichtung 110 und Hostsystem 140 stehen über Speicherschnittstelle 130 in Verbindung. Datenspeichervorrichtung 110 weist Datenspeicherelemente auf, die ein oder mehrere rotierende Speichermedien 111 umfassen. Datenspeichervorrichtung 110 weist ebenfalls Eingabe/Ausgabe(I/O)-Warteschlange 121 auf, um Speichervorgänge zwischenzuspeichern, die von Hostsystem 140 empfangen werden, und Speichersteuersystem 120, um die Vorgänge der Datenspeichervorrichtung 110 zu steuern.
  • Im Betrieb empfängt Datenspeichervorrichtung 110 Lese- oder Schreibtransaktionen über Speicherschnittstelle 130, die von Hostsystem 140 erstellt wird. In Reaktion auf Lesetransaktionen kann Datenspeichervorrichtung 110 auf Speichermedium 111 gespeicherte Daten für die Übertragung auf Hostsystem 140 abrufen. In Reaktion auf Schreibtransaktionen speichert Datenspeichervorrichtung 110 Daten auf Speichermedium 111. Es versteht sich, dass andere Komponenten der Datenspeichervorrichtung 110 der Klarheit wegen in 1 weggelassen sind, wie Lese-/Schreibköpfe, Armaturen, Vorverstärker, Sende-Empfänger, Prozessoren, Verstärker, Motoren, Servomechanismen, Einschlüsse und andere elektrische und mechanische Elemente.
  • Um die Arbeitsweise von Datensystem 100 weiter zu veranschaulichen, wird 2 geliefert. 2 ist ein Ablaufdiagramm, das ein Verfahren zur Betätigung der Datenspeichervorrichtung 110 zeigt. Auf die Vorgänge von 2 wird nachstehend in Klammern verwiesen. In 2 empfängt die Datenspeichervorrichtung 110 (201) Speichervorgänge, die vom Hostsystem 140 übertragen werden und die Schreibvorgänge für die Speicherung von Schreibdaten auf einem Speichermedium umfassen. Bei diesem Beispiel werden die Speichervorgänge vom Speichersteuersystem 120 über Speicherlink 130 empfangen und in die Ein/Aus-Warteschlange 121 platziert. Diese Speichervorgänge können Lesevorgänge oder Schreibvorgänge umfassen, doch bei dem in 2 besprochenen Beispiel werden der Klarheit halber nur Schreibvorgänge behandelt.
  • Speichersteuersystem 120 speichert (202) die Schreibdaten in einem ersten Speicherbereich vor Übertragung in einen SMR-Speicherbereich. In 1 werden die Schreibdaten zuerst im ersten Speicherbereich 115 zwischengespeichert, ehe sie in SMR-Speicherbereich 116 übertragen werden. Erster Speicherbereich 115 und SMR-Speicherbereich 116 können auf demselben Speichermedium sein wie bei den Beispielen, die rotierende magnetische Speichermedien verwenden. Der erste Speicherbereich 115 kann jedoch stattdessen ein getrenntes Speichermedium sein wie ein Festkörperspeichermedium. Bei einigen Beispielen umfasst der erste Speicherbereich 115 ein „Write Twice Cache”, das benutzt wird, um Schreibdaten zu speichern, ehe sie in den SMR-Speicherbereich 116 geschrieben werden. Die Speicherung der Schreibdaten im ersten Speicherbereich 115 ist ein relativ schneller Prozess und erfolgt bei einem Tempo, das in 1 mit „Caching Tempo” angegeben wird, wobei viele Schreibvorgänge in schneller Aufeinanderfolge gehandhabt werden. Diese Schreibvorgänge könnten durch Lesevorgänge unterbrochen werden, wie in 1 angezeigt, wenn zum Beispiel erster Speicherbereich 115 und SMR-Speicherbereich 116 in demselben Speichermedium eingeschlossen sind.
  • Wie oben besprochen, könnte dieses ”Caching Pace” einen burstartigen Vorgang an das Hostsystem 140 über Speicherlink 130 darstellen, was in manchen Situationen unerwünscht sein mag. Um eine ausgeglichenere Arbeitsweise der Datenspeichervorrichtung 110 zu unterstützen, kann das Speichersteuersystem 120 die Übertragung der Schreibdaten vom ersten Speicherbereich 115 in den SMR-Speicherbereich 116 drosseln oder das Berichten von Schreibabschlüssen an Hostsystem 140 drosseln.
  • Speichersteuersystem 120 bestimmt (203) ein Berichtstempo für die Übertragung der Schreibvorgänge aus dem ersten Speicherbereich 115 in den SMR-Speicherbereich 116, wobei das Berichtstempo eine Zielleistung herstellt, die von der Speicherung der Schreibdaten in den ersten Speicherbereich 115 ausgeglichen wird. Das Berichtstempo gleicht das schnelle Tempo der Übertragung von Schreibdaten in den ersten Speicherbereich 115 aus, indem es mindestens das Berichten eines Schreibvorgangsabschlusses an Host 140 auf ein Tempo bangt, das einer Zielleistung der Datenspeichervorrichtung 110 angemessen ist. Die Geschwindigkeit, mit der Schreibdaten in den SMR-Speicherbereich 116 übertragen werden, kann so abgeändert werden, dass sie mit dem Berichtstempo bei einigen Beispielen geschieht, und das Berichten an Host 140 kann erfolgen, wenn die Schreibdaten in den SMR-Speicherbereich 116 übertragen werden. Bei anderen Beispielen kann die Übertragung von Schreibdaten in den SMR-Speicherbereich 116 vom Berichten der Schreibabschlüsse an Host 140 bei Berichtstempo abgekoppelt werden, und die Übertragung der Schreibdaten in den SMR-Speicherbereich 116 kann in Bursts durchgeführt werden.
  • Das Berichtstempo kann auf der Basis einer projektierten Leistung der Übertragung von Schreibdaten in den SMR-Speicherbereich 116 bestimmt werden, indem man ein projektiertes Tempo der Schreibvorgänge im Licht einer aktuellen Auslastung der Datenspeichervorrichtung 110 anwendet. Dieses projektierte Tempo von Schreibvorgängen kann auf einer historischen Verfolgung von Speichervorgängen basieren, die von einer Datenspeichervorrichtung gehandhabt werden, die Leistung oder Tempo von anhängigen Schreibvorgängen in der Ein/Aus-Warteschlange 121 voraussagen kann. Eine Datenstruktur kann vom Speichersteuersystem 120 angewandt werden, um Eigenschaften für vergangene Speichervorgänge nachzuverfolgen und eine laufende Bewertung der Handhabung von Schreibdaten durch Datenspeichervorrichtung 110 einzuführen und diese laufende Bewertung zu benutzen, um das Berichtstempo einzuführen und Durchsatz- oder Leistungsziele zu erfüllen. Bei den nachstehend besprochenen Beispielen, wie in 57, wird eine simulierte oder projektierte Leistung für Speichervorgänge bestimmt, die das Berichtstempo einführt, um eine konsistente Zielleistung einer Datenspeichervorrichtung aufrechtzuerhalten, wie sie einem Hostsystem dargeboten wird.
  • Speichersteuersystem 120 berichtet (204) den Abschluss von Schreibvorgängen an Hostsystem 140 bei Berichtstempo. Wie in 1 zu sehen ist, ist das Berichtstempo, obgleich das Zwischenspeichertempo unter Schreib- und Lesevorgängen burstartig und ungleichmäßig ist, ausgeglichener und stetig. Dieses Berichtstempo erlaubt dem Hostsystem 140, eine voraussagbare und konsistente Leistung aus der Datenspeichervorrichtung 110 zu sehen. Bei einigen Beispielen wird die Leistung der Datenspeichervorrichtung 110 von einer maximalen Leistung reduziert, um das Berichtstempo bei der Zielleistung zu erhalten. Zum Beispiel könnte die Datenspeichervorrichtung 110 fähig sein, einen ersten hohen Durchsatz für Lese- und Schreibvorgänge zu unterstützen. Es mag jedoch aus verschiedenen Gründen wünschenswert sein, mit einem zweiten, langsameren Durchsatz zu arbeiten. Diese Gründe können zum Beispiel Leistungsanpassung zwischen Datenspeichervorrichtungen in einem Datenspeichersystem umfassen, das viele Datenvorrichtungen hat, oder um eine Vorrichtung mit schwächerer Leistung einem Host zu präsentieren, wenn eine leistungsfähigere Vorrichtung nicht gewünscht wird.
  • Um zu den Elementen von 1 zurückzukehren die Datenvorrichtung 110 umfasst ein oder mehrere computerlesbare Speichermedien 111, die über einen oder mehrere Lese-/Schreibköpfe und assoziierte elektromechanische Elemente zugänglich sind. Speichersteuersystem 120 wird als ein Beispiel für Verarbeitungsschaltung und Schnittstellenelemente einer Datenspeichervorrichtung 110 gezeigt. Datenspeichervorrichtung 110 kann weitere Elemente aufweisen wie die für Festplattenlaufwerk 310 in 3 besprochenen Elemente, obgleich Variationen möglich sind. Datenspeichervorrichtung 110 kann ein Festplattenlaufwerk oder eine andere computerlesbare Speichervorrichtung umfassen. Das computerlesbare Speichermedium der Datenspeichervorrichtung 110 kann rotierende magnetische Speichermedien umfassen, kann jedoch zusätzlich andere Medien einschließen, wie bei der Ein/Aus-Warteschlange 121 eingesetzte Medien oder andere Zwischenspeicher oder Zwischenspeichersysteme der Datenspeichervorrichtung 110. Diese anderen Medien können Festkörperspeichermedien, optische Speichermedien, nicht rotierende magnetische Medien, magnetische Phasenwechselmedien, Spin-basierte Speichermedien oder andere Speichermedien umfassen, einschließlich Kombinationen, Variationen und Verbesserungen derselben. Bei einigen Beispielen umfasst die Datenspeichervorrichtung 110 ein Hybridfestkörperlaufwerk, das Festkörperspeicherelemente zusätzlich zu rotierenden magnetischen Speichermedien benutzt. Speichermedium 113 kann verschiedene magnetische Speicherschemen wie geschindelte magnetische Aufzeichnung (SMR), nicht geschindelte magnetische Aufzeichnung, perpendikuläre magnetische Aufzeichnung (PMR) einschließlich Kombinationen, Variationen und Verbesserungen derselben umfassen.
  • Hostsystem 140 kann Verarbeitungselemente, Datenübertragungselemente und Anwenderschnittstellenelemente aufweisen. Bei einigen Beispielen ist das Hostsystem 140 eine zentrale Verarbeitungseinheit eines Rechengeräts oder Rechensystems. Bei anderen Beispielen weist das Hostsystem 140 ebenfalls Speicherelemente, Datenspeicherungs- und -übertragungselemente, Steuerelemente, logische Elemente, Firmware, Ausführungselemente und andere Verarbeitungssystemkomponenten auf. Bei noch weiteren Beispielen umfasst das Hostsystem 140 einen RAID-Controllerprozessor oder zentralen Speichersystemprozessor wie einen Mikroprozessor, Mikrocontroller, Field Programmable Gate Array (FPGA) oder eine andere Verarbeitungs- oder logische Vorrichtung einschließlich Kombinationen derselben. Hostsystem 140 kann Anwenderschnittstellen aufweisen oder sich damit verbinden, wodurch der Anwender des Datenspeichersystems 100 in der Lage sein kann, die Vorgänge des Datenspeichersystems 100 zu steuern oder den Status oder die Vorgänge des Datenspeichersystems 100 zu überwachen. Diese Anwenderschnittstellenelemente können graphische und Textanzeigen, Anzeigelampen, Netzwerkschnittstellen, Webschnittstellen, Softwareschnittstellen, Anwendereingabevorrichtungen oder andere Anwenderschnittstellenelemente umfassen. Hostsystem 140 kann ebenfalls Schnittstellenschaltungen und Elemente für die Handhabung von Kommunikationen über Bus 130 wie Logik, Verarbeitungsteile, Puffer, Sende-Empfänger und dergleichen umfassen.
  • Bus 130 kann einen oder mehrere serielle oder parallele Datenlinks aufweisen wie eine PCIe(Peripheral Component Interconnect Express)-Schnittstelle, eine serielle ATA-Schnittstelle, eine SAS(Serial Attached Small Computer System)-Schnittstelle, IDE(Integrated Drive Electronics)-Schnittstelle, ATA-Schnittstelle, USB(Universal Serial Bus)-Schnittstelle, drahtlose Schnittstelle, DMI(Direct Media Interface)-Schnittstelle, Ethernet-Schnittstelle, Vernetzungsschnittstelle oder andere Kommunikations- und Datenschnittstellen, einschließlich Kombinationen, Variationen und Verbesserungen derselben. Obgleich ein Bus 130 in 1 gezeigt wird, versteht es sich, dass ein oder mehrere diskrete Links zwischen den Elementen des Datenspeichersystems 100 eingesetzt werden können.
  • Als ein weiteres beispielhaftes Datenspeichersystem, das ein Datenspeicherlaufwerk verwendet, wird 3 dargestellt. 3 ist ein Systemdiagramm, das Datenspeichersystem 300 veranschaulicht. Datenspeichersystem 300 umfasst Festplattenlaufwerk (HDD) 310 und Hostsystem 390. HDD 310 und Hostsystem 390 stehen über Speicherlink 330 in Verbindung. Verschiedene Elemente von HDD 310 können in der Datenspeichervorrichtung 110 von 1 enthalten sein, obgleich Variationen möglich sind.
  • Obwohl ein HDD 310 in 3 gezeigt wird, versteht es sich, dass mehr als ein HDD in Hostsystem 390 oder anderen Hostsystemen eingeschlossen oder an sie gekoppelt sein könnten wie in einer Datenspeicherumgebung, die viele Festplattenlaufwerke in einem Feld verwendet. Als ein Beispiel von mehr als einem HDD in einem Feld sind HDDs 350351 in 3 eingeschlossen, und jedes der HDD 350351 kann eine assoziierte Hostschnittstelle oder einen assoziierten Speicherlink, wie für Link 330 besprochen, umfassen.
  • Speicherlink 330 kann einen oder mehrere Links umfassen, obgleich ein kombinierter Link in 3 gezeigt wird. Speicherlink 330 kann eine Speicher- oder Plattenschnittstelle wie SATA (Serial Attached ATA), SAS (Serial Attached SCSI), FibreChannel, USB (Universal Serial Bus), SCSI, InfiniBand, PCIe (Peripheral Component Interconnect Express), Ethernet, IP (Internet Protocol) oder andere parallele oder serielle Speicher oder periphere Schnittstellen, einschließlich Variationen und Kombinationen derselben, umfassen.
  • Hostsystem 390 kann ein oder mehrere Rechen- und Netzwerksystem aufweisen wie persönliche Computer, Server, Cloud-Speichersysteme, paketvermittelte Netzwerke, Managementsysteme oder andere Computer- und Netzwerksysteme, einschließlich Kombinationen und Variationen derselben. In Betrieb erteilt Hostsystem 390 Lese- und Schreibbefehle oder Vorgänge an HDD 310 über Speicherlink 330.
  • HDD 310 weist Speichermedium 311, Lese/Schreibköpfe 312 und Speichersteuersystem 370 auf. Speichersteuersystem 370 umfasst Verarbeitungsschaltung 371, Speicher 372, Hostschnittstelle (I/F) 374 und Ein/Aus-Warteschlange 373. Es versteht sich, dass andere Komponenten von HD 310 der Klarheit halber in 3 weggelassen wurden, wie Vorverstärker, Verstärker, Motoren, Armaturen, Servomechanismen, Einschlüsse und andere elektrische und mechanische Elemente. Ferner umfasst das Speichersteuersystem 370 Firmware 373, die Leistungsschätzer 380, Zwischenspeicher-Handler 381 und Hostreporter 382 umfasst, der, wenn von mindestens Verarbeitungsschaltung 371 ausgeführt, wie nachstehend beschrieben arbeitet. HDD 350351 kann ähnliche Elemente wie HDD 310 aufweisen, obgleich Variationen möglich sind.
  • Hostschnittstelle 374 weist eine oder mehrere Speicherschnittstellen auf für die Kommunikation mit Hostsystemen, Netzwerken und dergleichen. Hostschnittstelle 374 kann Sende-Empfänger, Schnittstellenschaltung, Stecker, Puffer, Mikrocontroller und andere Schnittstellenbestückung umfassen.
  • Ein/Aus-Warteschlange 373 weist eine oder mehrere nicht flüchtige, computerlesbare Speichervorrichtungen auf. Ein/Aus-Warteschlange 373 kann RAM, SRAM, Flash-Speicher, magnetisches RAM, Phasenwechselspeicher, resistiven Direktzugriffspeicher (ReRAM) unter anderen Speichertechniken umfassen. Bei einigen Beispielen ist Ein/Aus-Warteschlange 373 in einer oder mehreren nicht flüchtigen Speichervorrichtungen eingeschlossen. Zum Beispiel kann Ein/Aus-Warteschlange 373 in einer nicht flüchtigen Speichervorrichtung eingeschlossen sein, die für Zwischenspeichertransaktionen verwendet wird. Ein/Aus-Warteschlange 373 kann in Elementen der Hostschnittstelle 374, Verarbeitungsschaltung 371 oder des Speichers 372 eingeschlossen sein. Ein/Aus-Warteschlange 373 wird als Zwischenspeichervorgänge benutzt, die über Hostschnittstelle 374 empfangen werden, die Lesevorgänge oder Schreibvorgänge zusammen mit assoziierten Schreibdaten umfassen können, welche die Schreibvorgänge begleiten. Ein/Aus-Warteschlange 373 ist eingerichtet, Speichervorgänge zu halten, die über Link 330 für die Handhabung durch das Speichersteuersystem 370 empfangen werden.
  • Speichersteuersystem 370 umfasst ebenfalls Verarbeitungsschaltung 371 und Speicher 372. Verarbeitungsschaltung 371 kann einen oder mehrere Mikroprozessoren und andere Schaltungen einschließen, die Firmware 373 aus Speicher 372 abrufen und ausführen. Verarbeitungsschaltung 371 kann innerhalb einer einzelnen Verarbeitungsvorrichtung implementiert sein, doch kann ebenfalls über mehrere Verarbeitungsvorrichtungen oder Subsysteme verteilt sein, die bei der Ausführung von Programmanweisungen zusammenarbeiten. Beispiele für Verarbeitungsschaltung 371 schließen zentrale Universalverarbeitungseinheiten, anwendungsspezifische Prozessoren und logische Vorrichtungen ein sowie jede andere Art von Verarbeitungsvorrichtung, Kombinationen oder Variationen derselben.
  • Speicher 372 kann jedes nicht flüchtige, computerlesbare Speichermedium umfassen, das von Prozessschaltung 371 gelesen werden kann und Firmware 373 zu speichern vermag. Speicher 372 kann flüchtige und nicht flüchtige, entfernbare und nicht entfernbare Medien umfassen, die nach jedem Verfahren oder jeder Technik für die Speicherung von Information implementiert werden, wie computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Zusätzlich zu Speichermedien kann Speicher 372 bei einigen Implementationen ebenfalls Kommunikationsmedien umfassen, über die Firmware 373 kommuniziert werden kann. Speicher 372 kann als einzelne Speichervorrichtung implementiert werden, kann jedoch ebenfalls über mehrere Speichervorrichtungen oder Subsysteme implementiert werden, die zusammengelegt oder relativ zueinander verteilt sind. Speicher 372 kann zusätzliche Elemente umfassen, wie einen Controller, die fähig sind, mit Verarbeitungsschaltung 371 zu kommunizieren. Beispiele von Speichermedien des Speichers 372 umfassen Schreib-Lesespeicher mit wahlfreiem Zugriff, Nur-Lese-Speicher, Magnetplatten, optische Platten, Flash-Speicher, Phasenwechselspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium, das verwendet werden kann, um die gewünschte Information zu speichern, und das über ein Anweisungsausführungssystem sowie jede Kombination oder Variation derselben oder jede andere Art von Speichermedien zugänglich ist.
  • Firmware 373, Leistungsschätzer 380, Zwischenspeicherhandler 381 und Hostreporter 382 können in Programmanweisungen implementiert werden und können neben anderen Funktionen, wenn von HDD 310 allgemein oder Verarbeitungsschaltung 371 insbesondere ausgeführt, HDD 310 oder Verarbeitungsschaltung 371 anweisen, wie hierin beschrieben zu arbeiten. Firmware 373 kann zusätzliche Prozesse, Programme oder Komponenten aufweisen wie Betriebssystemsoftware, Datenbanksoftware, oder Anwendungssoftware. Firmware 373, Leistungsmonitor 380 und Zwischenspeicherhandler 381 können ebenfalls Software oder eine andere Form von maschinenlesbaren Verarbeitungsanweisungen umfassen, die von Verarbeitungsschaltung 371 ausgeführt werden können. Bei mindestens einer Implementation können die Programmanweisungen erste Programmanweisungen umfassen, die Speicherkontrollsystem 370 anweisen, Schreibvorgänge zu empfangen und reaktionsschnell Schreibdaten in einem ersten Speicherbereich zu speichern vor ihrer Übertragung in einen SMR-Speicherbereich (Zwischenspeicherhandler 381), ein Berichtstempo bestimmen für die Übertragung von Schreibvorgängen aus dem ersten Speicherbereich in den SMR-Speicherbereich (Leistungsschätzer 380) und den Abschluss von Schreibvorgängen an das Hostsystem bei Berichtstempo berichten (Hostreporter 382), unter anderen Arbeitsvorgängen.
  • Im Allgemeinen kann Firmware 373, wenn in Verarbeitungsschaltung 371 geladen und ausgeführt, Verarbeitungsschaltung 371 insgesamt aus einem Universalrechensystem in ein Spezialrechensystem umwandeln, das individuell angepasst ist, um wie hierin beschrieben zu funktionieren. Die Kodierung von Firmware 373 auf Speicher 372 kann die physische Struktur von Speicher 372 transformieren. Die spezifische Transformation der physischen Struktur kann von verschiedenen Faktoren bei unterschiedlichen Implementationen dieser Beschreibung abhängen. Beispiele solcher Faktoren können die Technik umfassen, die verwendet wurde, um das Speichermedium von Speicher 372 zu implementieren, und ob die Computerspeichermedien als primäre oder sekundäre Speicher charakterisiert sind, doch sind nicht auf diese beschränkt. Wenn die Computerspeichermedien zum Beispiel als halbleiterbasierter Speicher implementiert werden, kann Firmware 373 die physikalische Beschaffenheit des Halbleiterspeichers transformieren, wenn das Programm darin kodiert ist. Firmware 373 kann zum Beispiel die Beschaffenheit von Transistoren, Kondensatoren oder anderen diskreten Schaltkreiselementen transformieren, die den Halbleiterspeicher bilden. Eine ähnliche Transformation kann im Hinblick auf magnetische oder optische Medien erfolgen. Andere Transformationen von physischen Medien sind möglich, ohne vom Geltungsbereich der vorliegenden Beschreibung abzuweichen, wobei die vorausgehenden Beispiele nur geliefert werden, um diese Besprechung zu ermöglichen.
  • Um die Arbeitsweise von System 300 und HDD 310 weiter zu veranschaulichen, wird 4 dargestellt. 4 ist ein Ablaufdiagramm, das ein Arbeitsverfahren von HDD 310 veranschaulicht. Auf die Vorgänge von 4 wird nachstehend in Klammern verwiesen. In 4 empfängt (401) HDD 310 vom Hostsystem 390 übertragene Speichervorgänge 320, die Schreibvorgänge für die Speicherung von Schreibdaten auf einem Speichermedium und Lesevorgänge für den Abruf von Daten umfassen. Die Schreibvorgänge können von Schreibdaten begleitet werden, oder HDD 310 könnte nachfolgend Schreibdaten vom Hostsystem 390 in Reaktion auf den Empfang eines entsprechenden Schreibvorgangs abfordern. Lesevorgänge können für Daten sein, die zuvor von HDD 310 gespeichert wurden, wie zum Beispiel Daten, die zuvor an Speichermedium 311 geschrieben wurden, oder für Metadaten, die mit den Daten assoziiert sind, die Dateinamen, Verzeichnis/Ordnerlisten oder Dateieigenschaften einschließen können, unter anderen Metadaten.
  • Sobald die Speichervorgänge 320 über Hostschnittfläche 374 empfangen worden sind, werden sie in die Ein/Aus-Warteschlange 373 gestellt, um von Speichersteuersystem 370 vor Handhabung gesammelt und vorbereitet zu werden. Eine außer der Reihe Ausführung der Speichervorgänge, die in der Ein/Aus-Warteschlange enthalten sind, kann für eine effizientere Anwendung von HDD 310 und Lese/Schreibköpfen 312 eingerichtet werden.
  • Speichersteuersystem 370 speichert (402) Schreibdaten in Zwischenspeicherzone 315 vor Übertragung in SMR-Zone 316. Bei einigen Beispielen umfasst der erste Speicherbereich 315 ein „Write Twice Cache”, das benutzt wird, um Daten zu speichern, ehe diese in die SMR-Zone 316 geschrieben werden. Wenn die Speichervorgänge Schreibvorgänge sind, werden assoziierte Schreibdaten in die Zwischenspeicherzone 315 von Speichermedium 311 gesammelt und aufbereitet (Staging), ehe sie in SMR-Zone 316 übergeben werden. Dieser Staging-Prozess in Zwischenspeicherzone 315 kann schnell nach Empfang von Schreibdaten über Hostlink 330 erfolgen. Das schnelle Staging in Zwischenspeicherzone 315 könnte normalerweise einen burstartigen Vorgang an Hostsystem 390 für zufällige Schreibvorgänge präsentieren, die für Hostsystem 390 unerwünscht sein könnten, wie oben bei anderen Beispielen besprochen. Anstatt den Abschluss zufälliger Schreibvorgänge zu berichten, wenn Schreibdaten in Zwischenspeicherzone 315 gesammelt und aufbereitet werden, wird das Berichten von Schreibabschlüssen an Hostsystem 390 durch Anwendung einer simulierten Leistung getrennt von Datenvorgängen des HDD 310 ausgeglichen. Bei weiteren Beispielen wird ein Schreibzwischenspeicher eingesetzt, der nicht auf Speichermedium 311 ist, wie bei Hybridfestlaufwerken, die Festkörper-Schreib-Zwischenspeicher verwenden, die flüchtige und nicht flüchtige Speichervorrichtungen umfassen können. Bei Beispielen mit einem getrennten Schreib-Zwischenspeicher können die Schreibdaten in den getrennten Schreib-Zwischenspeicher statt in die Zwischenspeicherzone 315 gesammelt und aufbereitet werden, und die Schreibdaten werden später zurückgeführt oder aus dem getrennten Schreib-Zwischenspeicher auf SMR-Zone 316 übernommen. Die hierin besprochenen Techniken gelten für Vorrichtungen, die Zwischenspeicherzone 315 verwenden, oder für Vorrichtungen mit getrennten Zwischenspeichern.
  • Speichersteuersystem 370 erzeugt (403) eine simulierte Leistung für die Schreibvorgänge durch Festlegung erwarteter Abschlusszeiten für jeden der Schreibvorgänge basierend auf Partitionsbereichen auf dem Speichermedium und geschätzten Warteschlangentiefen assoziiert mit den Speichervorgängen über den Partitionsbereichen. Ein aktueller der Schreibvorgänge wird für die simulierte Leistung vom oberen Teil einer First-In-First-Out(FIFO)-Datenstruktur wie FIFO 510 von 5 identifiziert; dies zeigt an, dass eine geschätzte Abschlusszeit für Zielvorgang 511 festgelegt wird. Neu empfangene Schreibvorgänge werden in FIFO 510 auf der „linken” Seite in 5 eingeführt. Beispiele der simulierten Leistung sind in 57 zu sehen, die nachstehend besprochen werden.
  • Partitionsbereiche werden für jeden Schreibvorgang identifiziert, der gerade in der simulierten Leistung gehandhabt wird. Die Partitionsbereiche werden verwendet, um Schreibvorgänge in einen der mehreren Winkel-Sweepbereiche für Lese-/Schreibköpfe 312 über Speichermedium 311 zu kategorisieren und werden nachstehend eingehender besprochen. Es ist anzumerken, dass Partitionsbereiche in keinem Zusammenhang zu Anwendern zugewandten logischen Partitionen stehen, die eingesetzt werden, um Laufwerksbuchstaben Speicherteilen zuzuweisen oder logisch einen größeren Speicherbereich in kleinere Bereiche für die Anwendung in Dateisystemvorgängen des Hostsystems 390 oder anderen assoziierten Endanwenderdatensystemen zu unterteilen.
  • Die geschätzten Warteschlangentiefen werden benutzt, um eine Warteschlangentiefe einzuschätzen, die für Hostschnittstelle 374 verwendet wird, wie die Schätzung einer Tiefe der Ein/Aus-Warteschlange 373 ohne Kenntnis der tatsächlichen angewandten Warteschlangentiefe. Oft kann Hostsystem 390 eine Warteschlangentiefe für HDD 310 spontan einregeln, und Speichersteuersystem 370 kann unter Umständen diese Warteschlangentiefe nicht sehen. Deshalb kann das Speichersteuersystem 370 die Warteschlangentiefen abschätzen, und dies wird nachstehend eingehender besprochen.
  • Unter Anwendung von mindestens den Partitionsbereichen und geschätzter Warteschlangentiefe kann Speichersteuersystem 370 eine geschätzte Abschlusszeit für jeden speziellen zufälligen Schreibvorgang schätzen. Ein zufälliger Schreibvorgang umfasst Schreiben an eine nicht deterministische oder zufällige Stelle von Speichermedium 311 und wird von einem sequentiellen Schreibvorgang unterschieden, der in Zusammenhang mit mehreren anderen Schreibvorgängen an eine ähnliche Stelle auf Speichermedium 311 erfolgt. Eine zufällige Schreibleistung von HDD 310 hängt zum großen Teil davon ab, wie weit Lese-/Schreibköpfe 312 sich bewegen müssen, um die korrekte Spur/den korrekten Block für den Schreibvorgang zu finden, sowie von der Warteschlangentiefe, die gegenwärtig für Speichervorgänge von Hostsystem 390 eingesetzt wird. Um die Schreibleistung einzuschätzen, kann die Entwicklung der Partitionsgrößen und Warteschlangentiefen vom Speichersteuersystem 370 fortlaufend registriert werden.
  • Oft hat ein Hostsystem einen oder mehrere Prozesse wie Anwendungen, die Daten in temporaler oder physischer Nähe auf Speichermedium 311 speichern und abrufen. Zum Beispiel kann eine erste Anwendung, die auf Hostsystem 390 (oder ein erster Prozess auf einem anderen Datensystem, das Hostsystem 390 für Speicherung/Abruf von Daten benutzt) Daten innerhalb eines kleinen Winkel-Sweepbereichs der Lese/Schreibköpfe 312 speichern und abrufen, da sie Speicherblöcke hat, die für diese Anwendung nahe zueinander sind. Auf diesen Winkel-Sweepbereich wird hierin als Partitionsbereich Bezug genommen. Bei nicht rotierenden Speichermedien kann ein Partitionsbereich stattdessen einen Bereich von Speicherblöcken oder Adressen umfassen, die auf dem Speichermedium nahe zueinander sind.
  • Um die Partitionsbereiche für jeden Schreibvorgang zu bestimmen, erhält das Speichersteuersystem 370 eine Datenstruktur, die die Zählungen einer vorher festgelegten Anzahl von vergangenen durchgeführten Speichervorgängen mit mehreren vorher festgelegten Unterteilungen des Speichermediums in Beziehung setzt. Speichersteuersystem 370 kann einen Partitionsbereich identifizieren, indem es diese Datenstruktur für einen aktuellen Schreibvorgang verwendet, basierend auf einem Schwellenfenster, das einen oder mehrere dieser Unterteilungen des Speichermediums in der Nähe einer Speicherstelle des aktuellen Schreibvorgangs überspannt.
  • Zum Beispiel kann in 5 Tabelle 520 zusammengestellt werden, um die Partitionsbereiche zu identifizieren. Tabelle 520 unterteilt Speichermedium 311 in 100 Unterteilungen, wobei jede Unterteilung einen kleinen Winkel-Sweepbereich für Lese/Schreibköpfe 312 darstellt. Wenn der Winkel-Sweepbereich der Lese/Schreibköpfe 312 gleich „X” ist, dann stellt jede Spalte in Tabelle 520 einen Winkelbereich von X/100 dar. Dieses Weg-% von Tabelle 520 kann eine entsprechende Anzahl von Blockadressen darstellen, um Speichermedium 311 in viele aufeinanderfolgende Blockadressenbereiche zu unterteilen. Eine laufende Zählung von Speichervorgängen, die für jeden Sweepbereich durchgeführt wird, erscheint als „Sweep-Bereichszahl” in Tabelle 520. Zum Beispiel kann Tabelle 520 die letzte „Y” Zahl der Speichervorgänge wie die letzten 1024 oder 512 Speichervorgänge unter anderen Werten aufführen. Die letzte Menge von Speichervorgängen kann von Tabelle 520 überwacht werden, um aufzuzeichnen, an welche Position auf Speichermedium 311 auf der Basis einer assoziierten Winkelposition der Lese/Schreibköpfe 312 über Speichermedium 311 jeder Speichervorgang gerichtet wurde. Als ein spezifisches Beispiel wird Zielvorgang 511 als auf Weg-% Spalte 6 gerichtet gezeigt bei einem Vergleich einer Blockadresse, die mit Zielvorgang 511 assoziiert ist, mit einem Weg-% für Speichermedium 311. Wie in Tabelle 520 angegeben, hatte Weg-%-Spalte 6 zwei vorherige Speichervorgänge (Schreiben oder Lesen) in der vergangenen „Y”-Zahl der Speichervorgänge.
  • Ein Schwellenfenster kann dann benutzt werden, um einen Partitionsbereich zu identifizieren, der mit Zielvorgang 511 assoziiert ist. Dieses Schwellenfenster kann verwendet werden, um in Tabelle 520 festzustellen, wo die Anzahl vergangener Speichervorgänge unter einen bestimmten Punkt reduziert wird. Zum Beispiel könnte die Schwelle auf „1” gesetzt werden, und Tabelle 520 wird auf jeder Seite von Spalte 6 durchsucht, um festzustellen, wann die Anzahl vergangener Speichertransaktionen unter die Schwellenzahl fällt. In 5 überspannt dieses Fenster Spalte 4 bis Spalte 10, da Spalte 3 „0” vergangene Speichervorgänge und Spalte 10 „1” vergangenen Speichervorgang anzeigt. Daher ist Zielvorgang 511 mit einem bestimmten Partitionsbereich assoziiert, der von sieben Spalten 4–10 angegeben wird, die einem Sweepbereich von 7% entsprechen. Dieser Sweepbereich für Zielvorgang 511 wird dann als Spaltenidentifizierer benutzt, um eine geschätzte Leistung in Tabelle 530 nachzusehen.
  • Eine geschätzte Warteschlangentiefe muss ebenfalls für Zielvorgang 511 bestimmt werden, die einer bestimmten Reihe in Tabelle 530 entspricht. Es ist anzumerken, dass Tabelle 530 nur eine endliche Anzahl von Einträgen hat, und wenn daher Werte für einen Zielbefehl zwischen Reihen oder Spalten fällt, dann kann ein Interpolationsprozess durchgeführt werden, um eine geschätzte Abschlusszeit zu bestimmen. Alternativ kann die Reihe oder Spalte gewählt werden, indem man einen Partitionsbereich oder eine Warteschlangentiefe für einen bestimmten Zielvorgang auf eine nahe Spalte oder Reihe abrundet.
  • Um die geschätzte Warteschlangentiefe für Zielvorgang 511 zu bestimmen, ist Speicherkontrollsystem 370 eingerichtet, die geschätzte Warteschlangentiefe für Zielvorgang 511 über den Partitionsbereich für Zielvorgang 511 zu identifizieren durch Durchführung einer Zählung der kürzlichen Speichervorgänge, die für jede der Weg-%-Spalten über dem Partitionsbereich empfangen wurden, und Summierung der Zählungen kürzlicher Speichervorgänge über den Partitionsbereich. Wie in Tabelle 520 von 5 zu sehen ist, reicht der Partitionsbereich von Spalte 4 bis Spalte 10. Die Zusammenfassung der Eingänge in der Reihe „Hostwarteschlangentiefenzahl” über diesen Partitionsbereich führt zu einer geschätzten Warteschlangentiefe von 8. Die für die Hostwarteschlangentiefenzahl benutzte Zahl schließt typisch eine kleinere Menge vergangener Speichervorgänge ein als die Sweepbereichszahl. Wenn zum Beispiel die Sweepbereichszahl den letzten 1024 oder 512 Speichervorgängen entspricht, dann kann die Hostwarteschlangentiefenzahl den letzten 10 Speichervorgängen entsprechen. Die Menge der vergangenen Speichertransaktionen, die in der Hostwarteschlangentiefenzahlreihe gezählt wurden, könnte einer in FIFO 510 angewandten FIFO-Tiefe entsprechen, obgleich andere Mengen verwendet werden können, darunter Mengen, die während des Betriebs eingeregelt werden.
  • Sobald die geschätzte Warteschlangentiefe bestimmt ist, entsprechen sowohl eine Reihe (geschätzte Warteschlangentiefe) und eine Spalte (Partitionsbereich) einem geschätzten Abschlusszeiteintrag in Tabelle 530 für Zielvorgang 511. Der Partitionsbereich und die geschätzte Warteschlangentiefe werden als Index für eine Tabelle 530 verwendet, der geschätzte Abschlusszeiten auf Partitionsbereiche und geschätzte Warteschlangentiefen für HDD 310 bezieht. Die geschätzten Abschlusszeiten können für HDD 310 auf der Basis einer durchschnittlichen Abschlusszeit für einen beispielhaften zufälligen Schreibvorgang im Zusammenhang mit jedem der Werte der Partitionsbereiche und der geschätzten Warteschlangentiefen vorberechnet werden. Bei weiteren Beispielen können die geschätzten Abschlusszeiten spontan berechnet werden, anstatt eine Nachschlagtabelle der vorberechneten Werte zu nutzen.
  • Wenn die Schreibvorgänge Schreibdatengrößen entsprechen, die größer sind als eine vorberechnete Größe, dann kann zusätzliche Zeit für die größeren Datengrößen eingeschlossen werden. Die in 5 gezeigte Gleichung 540 kann zum Beispiel benutzt werden, um Eingaben für jede Reihen-Spaltenkombination in Tabelle 530 auf der Basis einer 4 Kilobyte (KB) Schreibgröße voraus zu berechnen. Wenn der aktuelle Schreibvorgang (z. B. Zielschreibbefehl 511) Schreibdaten entspricht, die größer als 4 KB sind, dann wird diese zusätzliche Größe bei Anwendung von Gleichung 540 berücksichtigt.
  • Sobald eine geschätzte Abschlusszeit für einen bestimmten Schreibvorgang festgestellt worden ist, wie zum Beispiel für Zielschreibbefehl 511, kann das Speichersteuersystem 370 diese geschätzte Abschlusszeit in einem simulierten Schreibprozess verwenden, der benutzt wird, um das Berichtstempo über Speicherlink 330 festzustellen.
  • Als ein beispielhafter Simulationsprozess wird 6 gezeigt. 6 umfasst Graph 600, der einen Zeitplan für einen simulierten Schreibprozess zeigt, der einen beispielhaften Zeitplan für Schreib- und Lesevorgänge erfasst, insbesondere writen-1, writen, readn+1, und writen+2. Es ist zu vermerken, dass writen-1, writen, und writen+2 bei diesem Beispiel zufällige Schreibvorgänge sind. Lese- und Schreibdauern werden unter dem Zeitplan als Zeitspannen in Klammern angegeben. Schreibvorgänge können dem Hostsystem nach den simulierten Zeitspannen in Klammern für jeden Schreibvorgang berichtet werden, zum Beispiel am Beginn einer jeden Schreibzeitspanne oder am Ende jeder Zeitspanne.
  • Periodische Schreibzeitkredite können gefunden werden, nachdem ein Schreibvorgang stattgefunden hat und periodische geschätzte Schreibzeiten berechnet worden sind. Bei Zeit 610 wird ein Schreibkredit ausgegeben oder überprüft. In einigen Fällen ist es nicht notwendig, einen Schreibkredit auszugeben, zum Beispiel wenn vorher kein zufälliger Schreibvorgang stattgefunden hat, seitdem der letzte Zeitkredit an Konto 384 erstellt wurde. Angenommen, dass kein Schreibkredit bei Zeit 610 notwendig ist, wird kein Schreibkredit an Konto 384 erteilt. Bei Zeit 620 wird eine geschätzte Abschlusszeit für einen Schreibvorgang berechnet, spezifisch für den als nächster im Zeitplan einzuschließenden Schreibvorgang, writen in 6. Als Nächstes wird bei Zeit 611 ein Schreibkredit überprüft, um zu sehen, ob ein Kredit erteilt werden sollte, und da writen-1 gerade im simulierten Zeitplan aufgetreten ist, wird ein Kredit an Konto 384 erteilt, welcher der geschätzten Abschlusszeit für writen-1 entspricht.
  • Nach abgeschlossener Simulation von writen-1 erfolgt die Simulation von writen. Im Falle von writen unterbricht ein sequentieller Schreib-Burst 630 die Simulation während der Ausführung des sequentiellen Schreib-Bursts. Ein sequentieller Schreib-Burst besteht aus einer Reihe von Schreibvorgängen, die von HDD 310 empfangen werden, einer sequentiellen Speicherstelle entsprechen und ohne Zwischenspeicherung oder Leistungsausgleich bei der assoziierten Berichterstattung in die SMR-Zone 316 bersten können. Dies kann bevorzugt werden, wenn ein großer Burst von Schreibvorgängen an einem bestimmten Zeitpunkt von Host 390 anstatt zufälliger einzelner Schreibvorgänge ausgeführt wird. Sobald der sequentielle Schreib-Burst abgeschlossen ist, kann die Simulation wieder aufgenommen werden.
  • Bei Zeit 621 wird eine weitere geschätzte Abschlusszeit berechnet, in diesem Fall für den nächsten Schreibvorgang writen+2. Bei Zeit 612 wird ein Schreibkredit überprüft, und da kein Schreibvorgang seit der letzten Schreibkreditüberpüfung abgeschlossen wurde, wird kein Kredit erteilt. Bei Zeit 613 wird ein weiterer Schreibkredit überprüft, und da writen seit der letzten Schreibkreditüberprüfung abgeschlossen wurde, wird an Konto 384 ein Schreibkredit erteilt.
  • Schließlich sind genug Schreibkredite erteilt worden, und Write-Cache-Commit-Prozess 631 wird abgefragt. Write-Cache-Commit-Prozess 631 ist ein Burst-Vorgang, der anstehende Schreibdaten, die mit Schreibvorgängen von der Zwischenspeicherzone 315 assoziiert sind, in die SMR-Zone 316 überträgt (406). Obgleich bei einigen Beispielen die Schreibdaten von der Zwischenspeicherzone 315 in die SMR-Zone 316 übertragen werden können, wie die Zeitspannen in Klammern bei der Simulation für jeden Schreibvorgang anzeigen, wird bei diesem Beispiel ein Burst benutzt, um Gruppen von Schreibdaten in die SMR-Zone 316 zu übertragen. Eine Triggerbedingung kann den Write-Cache-Commit-Prozess 631 einleiten, wenn zum Beispiel die Anfüllung der Zwischenspeicherzone 315 eine Füllschwelle erreicht. Weitere Triggerbedingungen können Bedingungen einschließen, bei denen genug Schreibzeitkredite an Konto 384 erteilt worden sind, um eine Zeitkreditschwelle zu übersteigen. Sobald der Write-Cache-Commit-Prozess 631 auftritt, subtrahiert Konto 384 Zeitkredite entsprechend den Schreibvorgängen, die durch den Write-Cache-Commit-Prozess 631 abgeschlossen worden sind.
  • Wie oben erwähnt, kann das Berichten über den Abschluss von Schreibvorgängen (405) an Hostsystem 390 entsprechend den Zeitspannen in Klammern erfolgen, die auf Simulationszeiten von in 6 gezeigten Schreibvorgängen beruhen, oder sie können stattdessen erfolgen, sobald die Schreibdaten in die SMR-Zone 314 durch den Write-Cache-Commit-Prozess 631 übertragen worden sind.
  • Bei Zeit 622 wird eine weitere geschätzte Abschlusszeit berechnet, in diesem Fall für einen späteren Schreibvorgang, der nicht in 6 gezeigt wird. Bei Zeit 614 wird ein Schreibkredit überprüft, und da kein Schreibvorgang seit der letzten Schreibkreditprüfung abgeschlossen wurde, wird kein Kredit erteilt. Bei Zeit 615 wird ein Schreibkredit geprüft, und da zuletzt ein Lesevorgang stattgefunden hat, wird kein Kredit erteilt. Bei Zeit 623 wird eine geschätzte Abschlusszeit für einen Schreibvorgang berechnet, spezifisch für den nächsten Schreibvorgang, der im Zeitplan eingeschlossen werden soll, der nicht in 6 gezeigt wird. Simulationen wie in 6 können für weitere Schreibvorgänge fortgesetzt werden.
  • Speichersteuersystem 370 bestimmt (404) ein Berichtstempo, um eine Hostschnittstellendurchgangsrate auf der Basis der erwarteten Abschlusszeiten für jeden der Schreibvorgänge einzuführen, die mit Lese-Strafen für nicht sequentielle Lesevorgänge angepasst wurde. Wie bei den simulierten Schreibvorgängen, die in 6 zu sehen sind, kann eine Abrechnung von Lesevorgängen ebenfalls in Betracht gezogen werden, wenn das Berichtstempo festgelegt wird. 7 veranschaulicht eine beispielhafte Verrechnung von Lesevorgängen für HDD 310.
  • Wenn die Speichervorgänge Lesevorgänge sind, werden die Lesevorgänge typischerweise bei einem Empfangstempo vom Hostsystem 390 durchgeführt. Gewöhnlich sollen Lesedaten vom Speichermedium 311 abgerufen und so schnell wie möglich an Hostsystem 390 übertragen werden, um Latenzzeiten und betriebliche Verzögerungen für Hostsystem 390 zu reduzieren. Wenn jedoch Daten, die nach Planung gelesen werden sollen, bereits in der SMR-Zone 316 gespeichert sind, können mindestens zwei Arten von Lesevorgängen stattfinden. Eine erste Art ist das sequentielle Lesen, bei dem Zieldaten, die gelesen werden sollen, in physisch sequentiellen Blöcken in der SMR-Zone 316 gespeichert werden. Bei dieser ersten Leseart kann das Lesen relativ schnell und ohne Unterbrechung durchgeführt werden, sobald Lese/Schreibköpfe 312 über dem ersten Datenblock positioniert sind, der den zu lesenden Zieldaten entspricht. Eine zweite Art des Lesens ist ein nicht sequentielles Lesen oder fragmentiertes Lesen, bei dem die zu lesenden Zieldaten in Blöcken in der SMR-Zone 316 gespeichert werden, die nicht physisch sequentiell sind, und daher müssen Lese/Schreibköpfe 312 mehr als einmal positioniert werden, um alle Zieldaten zu lesen, wodurch Latenzzeit aufgrund der Suchzeiten der Lese/Schreibköpfe 312 zugefügt wird. Die erneute Positionierung der Lese/Schreibköpfe 312 verursacht zusätzliche Verzögerung beim Abruf aller Ziellesedaten und kann die Leistung von HDD 310, wie sie dem Hostsystem 390 präsentiert wird, verlangsamen. Es versteht sich, dass Lesevorgänge in Kombinationen von sequentiellen und nicht sequentiellen Blöcken auftreten können.
  • Um zu 7 zurückzukehren, wird gezeigt, dass Lesvorgänge mindestens zum Teil als nicht sequentielle Lesevorgänge auftreten. Dies kann als fragmentiertes Lesen bezeichnet werden, bei dem die vom Speichermedium 311 zu lesenden Daten über nicht sequentielle Speicherstellen verstreut sind, und Lese/Schreibköpfe 312 in Mitte des Lesens oder Bursts der Lesevorgänge umpositioniert werden müssen. Zeitkreditkonto 383 kann als eine Datenstruktur zur Überwachung von Strafen für fragmentierte Lesevorgänge eingerichtet werden. Diese Zeitstrafen können benutzt werden, um spätere schreibsimulierte Zeiten zu verkürzen und auf diese Weise die Zeitstrafe für die fragmentierten Lesevorgänge auszugleichen. Spezifisch wird in 7 eine Dauer für writen+1 um die Höhe der Strafe aus dem vorherigen fragmentierten Lesevorgang verkürzt. Das Berichtstempo kann daher eingeführt werden, um Schreibberichtsverzögerungen zu verkürzen und damit verstärkte Verzögerungen aus fragmentierten Lesevorgängen auszugleichen und einen konsistenten Durchsatz aufrechtzuerhalten, der dem Hostsystem 390 präsentiert wird. Obgleich Zeitkreditkonto 383 als vom Konto 384 in 3 getrennt gezeigt wird, sind diese bei anderen Beispielen im selben Konto oder in assoziierten Datenstrukturen eingeschlossen.
  • Speichersteuersystem 370 berichtet (405) den Abschluss der Schreibvorgänge an das Hostsystem bei Berichtstempo. Auf der Basis der simulierten Leistung von Schreibvorgängen wird das Berichtstempo eingeführt, und eine Zielleistung wird von HDD 310 dem Hostsystem 390 präsentiert. Wenn zum Beispiel die Zielleistung langsamer sein soll als ein potentieller Durchsatz von HDD 310, dann kann das Berichtstempo eingeführt werden, um die Leistung von HDD 310 zu verlangsamen und damit die Zielleistung zu erreichen. Bei anderen Beispielen sind zufällige Schreibvorgänge zu „burstartig”, wie sie vom Hostsystem 390 beobachtet werden, und eine ausgeglichene Arbeitsweise durch HDD 310 ist erwünscht, dann kann die ausgeglichene Arbeitsweise ein Berichtstempo umfassen, das Schreibabschlüsse vom eigentlichen Schreiben der Daten in die Zwischenspeicherzone 315 oder SMR-Zone 316 abgekoppelt berichten kann. Diese Abkopplung kann ein gedrosseltes Berichten des Status in Bezug auf Schreibvorgänge einführen, die von HDD 310 empfangen werden, um das Berichten von Schreibabschlüssen zu stabilisieren oder auszugleichen und eine konsistentere Abschlussgeschwindigkeit dem Hostsystem 390 zu präsentieren.
  • Bei Beispielen, bei denen viele Speichervorrichtungen eingesetzt werden, wie ein Array von HDDs oder ein großes Datenzentrum, kann das hierin besprochene ausgeglichene Berichten die Arbeitsweise bestehender oder neuer Datenspeichervorrichtungen verbessern. Konsistentes Berichten von Schreibvorgängen kann zu einer vorhersehbareren Leistung führen, die Hostsysteme bei verschiedenen Speichervorgängen unterstützen kann. Ein einem Hostsystem (oder mehreren Hostsystemen) präsentierter konsistenter Durchsatz, der Schreibvorgänge betrifft, kann für viele Speichervorrichtungen generell eingeführt werden. Zum Beispiel können mehrere Datenspeichervorrichtungen eingerichtet werden, wie hierin besprochen zu arbeiten, um die Leistung für sie universell zu standardisieren oder auszugleichen und einen konsistenten oder abgepassten Durchsatz für jede der mehreren Datenspeichervorrichtungen bereitzustellen. Diese Datenspeichervorrichtungen können vorkonfiguriert werden, um mit einer vorher festgelegten Leistung zu operieren, die einem Host präsentiert wird, oder sie können während des Betriebs eingerichtet werden, um Leistungsziele zu modifizieren oder abzuändern. Wenn zusätzlich neue oder Ersatz-Datenspeichervorrichtungen installiert werden, können die hierin besprochenen Leistungsausgleichstechniken genutzt werden, um die Leistung der neuen oder Ersatzvorrichtungen den vorhandenen Datenspeichervorrichtungen anzupassen. Bei weiteren Beispielen kann die Rückwärtskompatibilität von Datenspeichervorrichtungen durch die ausgeglichene Leistung erreicht werden, die genutzt werden kann, um die Leistung älterer Modelle oder Typen von Datenspeicherlaufwerken anzupassen, obgleich normalerweise ein schnellerer oder burstartigerer Betrieb bei einer neuen oder Ersatzvorrichtung beobachtet werden könnte. Bei noch weiteren Beispielen können die Egalisierung oder Normalisierung von Merkmalen verschiedener Datenspeichervorrichtungen, die unterschiedliche Marken, Geschwindigkeiten oder Typen umfassen, durch die Anwendung des hierin besprochenen Ausgleichsverfahrens erreicht werden.
  • Um eine angepasste, egalisierte oder normalisierte Leistung generell bei mehreren Datenspeichervorrichtungen zu koordinieren, wie viele HDDs in einem Speicher-Array, können Durchsatzanpassungsanweisungen an jede Vorrichtung übertragen werden. Ein vom jedem HDD getrenntes System kann einen Zielleistungsindikator über einen Speicherlink an die Datenspeichervorrichtungen übertragen. Bei dem in 3 gezeigten Beispiel kann Hostsystem 390 zum Beispiel Drosselanweisungen über einen assoziierten Speicherlink an jedes in 3 gezeigte HDD (310 und 350351) übertragen. Diese Drosselanweisungen können eine Zielleistung für jedes HDD umfassen, wie einen Indikator bei Eingabe/Ausgabevorgängen pro Sekunde (IOPS), Bits pro Sekunde oder eine Zielleistung unter Anwendung einer jeden anderen assoziierten Metrik. Bei weiteren Beispielen kann jedes HDD eine Anzeige einer Spitzen- oder Höchstleistung für die Lieferung an Hostsystem 390 übertragen, und Hostsystem 390 kann eine Zielleistung für jedes HDD identifizieren, um die Zielleistung an jedes HDD zum Ausgleichen der Leistung wie hierin besprochen zu übertragen und zu erfüllen.
  • Die enthaltenen Beschreibungen und Figuren stellen spezifische Ausführungsformen dar, um Fachleute zu lehren, den besten Modus herzustellen und anzuwenden. Um Erfindungsprinzipien zu lehren, sind einige herkömmliche Aspekte vereinfacht oder weggelassen worden. Fachleute werden Abwandlungen dieser Ausführungsformen würdigen, die in den Geltungsbereich der Erfindung fallen. Fachleute werden ebenfalls verstehen, dass die oben beschriebenen charakteristischen Merkmale auf verschiedene Weisen kombiniert werden können, um mannigfaltige Ausführungsformen zu bilden. Infolgedessen ist die Erfindung nicht auf die spezifischen Ausführungsformen beschränkt, die oben beschrieben werden, sondern wird nur durch die Ansprüche und ihre Äquivalente begrenzt.

Claims (20)

  1. Eine Datenspeichervorrichtung, umfassend: Speichermedium umfassend einen ersten Speicherbereich und einen geschindelten magnetischen Aufzeichnungs(SMR)-Speicherbereich; ein Speichersteuersystem, das eingerichtet ist, Speichervorgänge über eine Hostschnittstelle zu empfangen, die Schreibvorgänge für die Speicherung von Schreibdaten auf dem Speichermedium umfassen, und reaktionsschnell die Schreibdaten im ersten Speicherbereich vor Übertragung in den SMR-Speicherbereich zu speichern; wobei das Speichersteuersystem eingerichtet ist, ein Berichtstempo zu bestimmen, das mit der Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich assoziiert ist, wobei das Berichtstempo eine Zielleistung über der Hostschnittstelle einführt, die von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen wird; und das Speichersteuersystem eingerichtet ist, den Abschluss der Schreibvorgänge über die Hostschnittstelle mit Berichtstempo zu berichten.
  2. Datenspeichervorrichtung nach Anspruch 1, umfassend: das Speichersteuersystem, das eingerichtet ist, die Schreibdaten im ersten Speicherbereich zu speichern, ohne den Abschluss der Schreibvorgänge über die Hostschnittstelle zu berichten, wobei die Schreibdaten mit einem Tempo im ersten Speicherbereich gespeichert werden, das schneller ist als das Berichtstempo.
  3. Datenspeichervorrichtung nach Anspruch 1, umfassend: das Speichersteuersystem, das für die Erzeugung einer simulierten Leistung für die Schreibvorgänge eingerichtet ist, um das Berichtstempo einzuführen.
  4. Datenspeichervorrichtung nach Anspruch 3, umfassend: das Speichersteuersystem, das eingerichtet ist, die simulierte Leistung für die Schreibvorgänge durch Bestimmung der erwarteten Abschlusszeiten für jeden der Schreibvorgänge basierend mindestens teilweise auf einem Partitionsbereich auf dem Speichermedium und einer geschätzten Warteschlangentiefe für die Speichervorgänge über dem Partitionsbereich zu erzeugen; und wobei das Speichersteuersystem eingerichtet ist, das Berichtstempo basierend mindestens teilweise auf den erwarteten Abschluss für jeden der Schreibvorgänge einzuführen.
  5. Datenspeichervorrichtung nach Anspruch 4, umfassend: das Speichersteuersystem, das eingerichtet ist, eine Datenstruktur aufrechtzuerhalten, welche die Zählungen einer vorgegebenen Anzahl von vergangenen durchgeführten Speicheroperationen mit mehreren Unterteilungen des Speichermediums in Beziehung setzt; wobei das Speichersteuersystem eingerichtet ist, den Partitionsbereich für einen aktuellen der Schreibvorgänge basierend auf einem Schwellenfenster zu identifizieren, das einen oder mehrere der mehreren Unterteilungen in der Nähe einer Speicherstelle des einen aktuellen der Schreibvorgänge überspannt.
  6. Datenspeichervorrichtung nach Anspruch 5, umfassend: das Speichersteuersystem, das eingerichtet ist, die geschätzte Warteschlangentiefe für die Speichervorgänge über dem Partitionsbereich durch Einführung einer Zählung kürzlicher Speichervorgänge, die für die mehreren Unterteilungen des Speichermediums empfangen wurden, und Summierung der Zählungen der kürzlichen Speichervorgänge über dem Partitionsbereich zu identifizieren.
  7. Datenspeichervorrichtung nach Anspruch 4, umfassend: das Speichersteuersystem, das eingerichtet ist, die erwarteten Abschlusszeiten für jeden der Schreibvorgänge durch Anwendung des Partitionsbereichs und der geschätzten Warteschlangentiefe für jeden der Schreibvorgänge als Index für eine Datenstruktur zu bestimmen, welche die geschätzten Abschlusszeiten mit mehreren Partitionsbereichen und mehreren geschätzten Warteschlangentiefen für die Datenspeichervorrichtung in Beziehung setzt.
  8. Datenspeichervorrichtung nach Anspruch 7, wobei die geschätzten Abschlusszeiten für die Datenspeichervorrichtung auf der Basis einer durchschnittlichen Abschlusszeit für einen beispielhaften zufälligen Schreibvorgang im Zusammenhang mit jedem der Werte der mehreren Partitionsbereiche und der mehreren geschätzten Warteschlangentiefen vorberechnet werden.
  9. Datenspeichervorrichtung nach Anspruch 1, wobei die Speichervorgänge, die über die Hostschnittstelle übertragen werden, ferner Lesevorgänge für den Abruf von Daten umfassen, die auf dem Speichermedium gespeichert sind, und umfassend: das Speichersteuersystem, das eingerichtet ist, es zu identifizieren, wenn einige der Lesevorgänge auf Daten gerichtet sind, die nicht sequentiell im SMR-Speicherbereich gespeichert sind, reaktionsschnell Zeitstrafen für diejenigen der Lesevorgänge zu bestimmen und die Zeitstrafen zu benutzen, um Abschlusszeiten von gewählten Schreibvorgängen zu verkürzen, um das Berichtstempo aufrechtzuerhalten.
  10. Verfahren zum Betreiben einer Datenspeichervorrichtung, wobei das Verfahren Folgendes umfasst: Empfang von Speichervorgängen, die über eine Hostschnittstelle übertragen werden, die Schreibvorgänge für die Speicherung von Schreibdaten auf dem Speichermedium umfassen, und reaktionsschnelle Speicherung der Schreibdaten in einem ersten Speicherbereich des Speichermediums vor Übertragung in einen SMR-Speicherbereich des Speichermediums; Bestimmen eines Berichtstempos für das Berichten der Übertragung der Schreibvorgänge vom ersten Speicherbereich in den SMR-Speicherbereich, wobei das Berichtstempo eine Zielleistung über der Hostschnittstelle einführt, die von der Speicherung der Schreibdaten in den ersten Speicherbereich ausgeglichen wird; und Berichten des Abschlusses der Schreibvorgänge über die Hostschnittstelle mit Berichtstempo.
  11. Verfahren nach Anspruch 10, ferner umfassend: Speichern der Schreibdaten im ersten Speicherbereich ohne Berichten des Abschlusses der Schreibvorgänge über die Hostschnittstelle, wobei die Schreibdaten im ersten Speicherbereich mit einem Tempo gespeichert werden, das schneller als das Berichtstempo ist.
  12. Verfahren nach Anspruch 10, ferner umfassend: Erzeugung einer simulierten Leistung für die Schreibvorgänge, um das Berichtstempo einzuführen.
  13. Verfahren nach Anspruch 12, wobei die Erzeugung der simulierten Leistung für die Schreibvorgänge die Bestimmung von erwarteten Abschlusszeiten für jeden der Schreibvorgänge umfasst basierend mindestens teilweise auf einem Partitionsbereich auf dem Speichermedium und einer geschätzten Warteschlangentiefe für die Speichervorgänge über dem Partitionsbereich; und ferner umfassend: Einführung des Berichtstempos basierend mindestens teilweise auf den erwarteten Abschlusszeiten für jeden der Schreibvorgänge.
  14. Verfahren nach Anspruch 13, ferner umfassend: Aufrechterhaltung einer Datenstruktur, die Zählungen einer vorgegebenen Anzahl von vergangenen durchgeührten Speichervorgängen mit mehreren Unterteilungen des Speichermediums in Beziehung setzt; Identifizierung des Partitionsbereichs für einen aktuellen der Schreibvorgänge basierend auf einem Schwellenfenster, das einen oder mehrere der mehreren Unterteilungen in der Nähe einer Speicherstelle des aktuellen Schreibvorgangs überspannt.
  15. Verfahren nach Anspruch 14, ferner umfassend: Identifizierung der geschätzten Warteschlangentiefe für die Speichervorgänge über dem Partitionsbereich durch Einführung einer Zählung von kürzlichen Speichervorgängen, die für die mehreren Unterteilungen des Speichermediums empfangen wurden, und Summierung der Zählungen der kürzlichen Speichervorgänge über dem Partitionsbereich.
  16. Verfahren nach Anspruch 13, ferner umfassend: Bestimmung der erwarteten Abschlusszeiten für jeden der Schreibvorgänge durch Anwendung des Partitionsbereichs und der geschätzten Warteschlangentiefe für jeden der Schreibvorgänge als Index für eine Datenstruktur, die die geschätzten Abschlusszeiten mit mehreren Partitionsbereichen und mehreren geschätzten Warteschlangentiefen für die Datenspeichervorrichtung in Beziehung setzt.
  17. Verfahren nach Anspruch 16, wobei die geschätzten Abschlusszeiten für die Datenspeichervorrichtung basierend auf einer durchschnittlichen Abschlusszeit für einen beispielhaften zufälligen Schreibvorgang im Zusammenhang mit jedem der Werte der mehreren Partitionsbereiche und der mehreren geschätzten Warteschlangentiefen vorberechnet werden.
  18. Verfahren nach Anspruch 10, wobei die über die Hostschnittstelle übertragenen Speichervorgänge ferner Lesevorgänge für den Abruf von Daten umfassen, die auf dem Speichermedium gespeichert sind; und ferner umfassend: Identifizieren, wenn einige der Lesevorgänge auf Daten gerichtet sind, die nicht sequentiell im SMR-Speicherbereich gespeichert sind, und reaktionsschnelles Bestimmen von Zeitstrafen für diese Lesevorgänge und Benutzen der Zeitstrafen, um Abschlusszeiten von gewählten Schreibvorgängen zu verkürzen, um das Berichtstempo aufrechtzuerhalten.
  19. Datenspeichersystem, umfassend: mehrere Datenspeichervorrichtungen, die eingerichtet sind, Speichervorgänge für die Speicherung und den Abruf von Daten auf assoziierten Speichermedien zu empfangen, wobei jedes der assoziierten Speichermedien einen magnetischen Aufzeichnungs(SMR)-Speicherbereich umfasst; jede der mehreren Datenspeichervorrichtungen umfassend: ein Speichersteuersystem, das eingerichtet ist, assoziierte Speichervorgänge zu empfangen, die von einem Hostsystem übertragen werden, die Schreibvorgänge für die Speicherung von Schreibdaten auf den Speichermedien umfassen, und reaktionsschnell die Schreibdaten in einem ersten Speicherbereich vor Übertragung in den SMR-Speicherbereich zu speichern; wobei das Speichersteuersystem eingerichtet ist, ein Berichtstempo für das Berichten der Übertragung der Schreibvorgänge aus dem ersten Speicherbereich in den SMR-Speicherbereich zu bestimmen, wobei das Berichtstempo eine Zielleistung einführt, die von der Speicherung der Schreibvorgänge in den ersten Speicherbereich ausgeglichen wird, um die Leistung über einige der mehreren Datenspeichervorrichtungen zu normalisieren; und wobei das Speichersteuersystem eingerichtet ist, den Abschluss der Schreibvorgänge mit Berichtstempo zu berichten.
  20. Datenspeichersystem nach Anspruch 19, umfassend: das Speichersteuersystem, das eingerichtet ist, eine simulierte Leistung für die Schreibvorgänge durch Bestimmung erwarteter Abschlusszeiten für jeden der Schreibvorgänge basierend mindestens teilweise auf einem Partitionsbereich auf dem Speichermedium und einer geschätzten Warteschlangentiefe für die Speichervorgänge über dem Partitionsbereich zu erzeugen, und wobei das Speichersystem eingerichtet ist, das Berichtstempo basierend mindestens teilweise auf erwarteten Abschlusszeiten für jeden der Schreibvorgänge einzuführen.
DE102016001682.5A 2015-02-12 2016-02-12 Leistungsausgeglichene Datenspeichervorrichtung Withdrawn DE102016001682A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/620,397 2015-02-12
US14/620,397 US9417814B1 (en) 2015-02-12 2015-02-12 Tempered pacing of shingled magnetic storage devices

Publications (1)

Publication Number Publication Date
DE102016001682A1 true DE102016001682A1 (de) 2016-08-18

Family

ID=55697549

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016001682.5A Withdrawn DE102016001682A1 (de) 2015-02-12 2016-02-12 Leistungsausgeglichene Datenspeichervorrichtung

Country Status (5)

Country Link
US (1) US9417814B1 (de)
CN (1) CN105892936A (de)
DE (1) DE102016001682A1 (de)
GB (1) GB2537713A (de)
IE (1) IE20160049A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001932B2 (en) * 2015-06-09 2018-06-19 Western Digital Technologies, Inc. Enhanced redundant caching for shingled magnetic recording devices in data storage drive assemblies
US10698815B2 (en) * 2015-06-30 2020-06-30 Western Digital Technologies, Inc. Non-blocking caching for data storage drives
CN106776452B (zh) * 2016-12-14 2020-02-04 英业达科技有限公司 服务器系统
US11048645B2 (en) * 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
CN110134572B (zh) * 2018-02-02 2023-08-08 伊姆西Ip控股有限责任公司 验证存储系统中的数据
US10884658B2 (en) * 2018-02-09 2021-01-05 Western Digital Technologies, Inc. Completion entry throttling using data storage controller
US11669267B2 (en) * 2018-02-09 2023-06-06 Western Digital Technologies, Inc. Completion entry throttling using host memory
TWI658360B (zh) * 2018-04-13 2019-05-01 宏碁股份有限公司 儲存系統及儲存方法
US10482911B1 (en) * 2018-08-13 2019-11-19 Seagate Technology Llc Multiple-actuator drive that provides duplication using multiple volumes
US10991387B1 (en) 2020-03-27 2021-04-27 Western Digital Technologies, Inc. Data storage device migrating data from non-energy assist disk surface to energy assist disk surface

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523271B2 (en) * 2006-01-03 2009-04-21 International Business Machines Corporation Apparatus, system, and method for regulating the number of write requests in a fixed-size cache
US8122216B2 (en) 2006-09-06 2012-02-21 International Business Machines Corporation Systems and methods for masking latency of memory reorganization work in a compressed memory system
US7702871B1 (en) * 2007-08-31 2010-04-20 Emc Corporation Write pacing
US20120102261A1 (en) 2009-07-07 2012-04-26 Harley Burger Systems and Methods for Tiered Non-Volatile Storage
US8707003B1 (en) * 2010-09-29 2014-04-22 Emc Corporation Rate control for asynchronous data replication
US8843714B1 (en) * 2011-03-30 2014-09-23 Emc Corporation Write pacing simulation tool
US8913335B2 (en) 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions
US8954689B2 (en) 2011-06-30 2015-02-10 Seagate Technology Llc Limiting activity rates that impact life of a data storage media
US8793431B2 (en) * 2012-03-17 2014-07-29 HGST Netherlands B.V. Shingled magnetic recording disk drive with inter-band disk cache and minimization of the effect of far track erasure on adjacent data bands
US8593748B1 (en) * 2012-06-04 2013-11-26 HGST Netherlands B.V. Shingled magnetic recording disk drive with compensation for the effect of far track erasure (FTE) on adjacent data bands
US8874875B2 (en) 2012-06-29 2014-10-28 HGST Netherlands B.V. ICC-NCQ command scheduling for shingle-written magnetic recording (SMR) Drives
JP5787839B2 (ja) * 2012-07-25 2015-09-30 株式会社東芝 ディスク記憶装置及びデータ保護方法
US8922930B1 (en) * 2012-10-11 2014-12-30 Seagate Technology Llc Limit disc nodes by band usage
US8699162B1 (en) * 2012-11-18 2014-04-15 HGST Netherlands B.V. Shingled magnetic recording disk drive with multiple data zones containing different numbers of error-correction-code sectors
US9612956B2 (en) * 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
JP2014182855A (ja) * 2013-03-19 2014-09-29 Toshiba Corp ディスク記憶装置及びデータ保存方法
US9323630B2 (en) * 2013-09-16 2016-04-26 HGST Netherlands B.V. Enhanced data recovery from data storage devices
US8941943B1 (en) * 2013-12-09 2015-01-27 HGST Netherlands B.V. Dynamic variable capacity hard disk drive
US8922925B1 (en) * 2013-12-09 2014-12-30 HGST Netherlands B.V. Actively written guard bands in a cold storage or mixed mode drive
US9489145B2 (en) * 2013-12-09 2016-11-08 HGST Netherlands B.V. Disk drive including I-regions having configurable final logical block addresses
US8947817B1 (en) * 2014-04-28 2015-02-03 Seagate Technology Llc Storage system with media scratch pad
US9269376B1 (en) * 2015-06-30 2016-02-23 HGST Netherlands B.V. Efficient burst data verify in shingled data storage drives

Also Published As

Publication number Publication date
IE20160049A1 (en) 2016-08-24
GB2537713A (en) 2016-10-26
US9417814B1 (en) 2016-08-16
GB201602447D0 (en) 2016-03-30
US20160239241A1 (en) 2016-08-18
CN105892936A (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
DE102016001682A1 (de) Leistungsausgeglichene Datenspeichervorrichtung
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112019001526B4 (de) Auswählen von einem von mehreren cache-bereinigungsalgorithmen, der zum entfernen einer spur aus dem cache verwendet werden soll
DE112010003133B4 (de) Datenmigration zwischen datenspeichereinheiten
DE112011102076B4 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE112018002951T5 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102016011401A1 (de) Erweiterter Datenschutz mit niedrigem Mehraufwand in Datenspeichereinrichtungen
DE602004002216T2 (de) Verfahren, system und programm für eine inkrementelle virtuelle kopie
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE60310960T2 (de) Halten von informationen in einem oder mehreren virtuellen volumenaggregaten mit mehreren virtuellen volumen
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102019124450A1 (de) Bandbreitenbegrenzung in solid-state-laufwerken
DE102008022831A1 (de) Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
DE102020103817A1 (de) Speicherklasse speicher queue depth threshold adjustment
DE102016009224A1 (de) Verbesserte Leistungssteuerung von Datenspeicherarrays
DE102016010505A1 (de) Dienststufenbasierte Steuerung von Speichersystemen
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE102013209318B4 (de) Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE10062063A1 (de) Verfahren, System, Programm und Datenstruktur zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee