DE102018115131A1 - Reaktives leistungsmanagement für nichtflüchtige speicher-controller - Google Patents

Reaktives leistungsmanagement für nichtflüchtige speicher-controller Download PDF

Info

Publication number
DE102018115131A1
DE102018115131A1 DE102018115131.4A DE102018115131A DE102018115131A1 DE 102018115131 A1 DE102018115131 A1 DE 102018115131A1 DE 102018115131 A DE102018115131 A DE 102018115131A DE 102018115131 A1 DE102018115131 A1 DE 102018115131A1
Authority
DE
Germany
Prior art keywords
central controller
channel controllers
backlog information
data storage
channel
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.)
Pending
Application number
DE102018115131.4A
Other languages
English (en)
Inventor
Reed P. Tidwell
Yoav Weinberg
Daniel Tuers
Matthew Davidson
Eran Erez
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102018115131A1 publication Critical patent/DE102018115131A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

Es sind Systeme, Verfahren und eine Vorrichtung bereitgestellt, die den Leistungsverbrauch von Speicher-Controllern in Reaktion auf Speicherbefehl-Backlog in verschiedenen Situationen reduzieren können. Eine Datenspeichervorrichtung umfasst eine Vielzahl von Sätzen von nichtflüchtigen Speichervorrichtungen (NVM-Vorrichtungen, nonvolatile memory), einen zentralen Controller und eine Vielzahl von Kanal-Controller. Jeder Kanal-Controller ist an einen eindeutigen Satz der Vielzahl von Sätzen von NVM-Vorrichtungen gekoppelt. Jeder Kanal-Controller umfasst eine Befehlsreihe, die dazu ausgelegt ist, hängige Speicherbefehle zu speichern und Backlog-Information bereitzustellen. Der zentrale Controller ist dazu ausgelegt, die Backlog-Information der Befehlsreihen der Vielzahl von Kanal-Controllern zu empfangen und eine Taktfrequenz des zentralen Controllers und eine oder mehrere Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information anzupassen, so dass die hängigen Speicherbefehle in jeder der Befehlsreihen unter einem vorbestimmten Schwellenwert liegen.

Description

  • HINTERGRUND
  • Solid-State-Datenspeichersysteme werden immer häufiger verwendet, um Daten für elektronische Vorrichtungen zu speichern und zu verwalten. Eine Solid-State-Datenspeicherung verwendet einen nichtflüchtigen Speicher, um Daten zu speichern. Eine typische nichtflüchtige Datenspeichervorrichtung speichert Daten als einen elektrischen Wert (z.B. Spannung) in nichtflüchtigen Speicherzellen und nützt einen oder mehrere Speicher-Controller, um Datentransaktionen über mehrere nichtflüchtige Speichervorrichtungen des Speichersystems zu verwalten.
  • Datentransaktionen in einem Solid-State-Datenspeichersystem werden im Allgemeinen ausgeführt, indem Speicherbefehle ausgeführt werden. Einige beispielhafte Speicherbefehle sind das Lesen, Schreiben und Löschen von nichtflüchtigen Speicher-Chips, z.B. NAND-Flash-Speicher-Chips. Um diesen Prozess zu vereinfachen, sind Speicher-Controller oftmals mit Befehlsreihen konstruiert, was das Ausführen von Befehlen über mehrere Speicherzellen vereinfacht. In einigen Datenspeichersystemen können mehrere Befehle parallel über mehrere Kanäle des Datenspeichersystems ausgeführt werden. Die Speicher-Controller können aber nicht dazu in der Lage sein, in einigen Szenarien aufgrund von Leistungsbeschränkung und/oder Verarbeitungsverzögerung bei der Ausführung der Speicherbefehle mit voller Geschwindigkeit zu arbeiten.
  • ZUSAMMENFASSUNG
  • Verschiedene Ausführungsformen von Systemen, Verfahren und Vorrichtungen innerhalb des Schutzumfangs der angehängten Ansprüche weisen jeweils mehrere Aspekte auf, von welchen kein einziger allein für die hierin beschriebenen Attribute verantwortlich zeichnet. Ohne den Schutzumfang der angehängten Ansprüche einzuschränken und nach Betrachtung dieser Offenbarung und insbesondere nach Betrachtung des Abschnitts mit dem Titel „Detaillierte Beschreibung“ wird man verstehen, wie die Aspekte der verschiedenen Ausführungsformen verwendet werden, um den Leistungsverbrauch in Speichervorrichtungen (z.B. Solid-State-Laufwerken, die manchmal als SSDs bezeichnet werden) zu verwalten.
  • Aspekte der vorliegenden Offenbarung stellen Systeme, Verfahren und/oder eine Vorrichtung bereit, um den Leistungsverbrauch von Speicher-Controllern in Reaktion auf das Speichersystem-Backlog in verschiedenen Situationen zu reduzieren.
  • Eine Ausführungsform der vorliegenden Offenbarung stellt eine Datenspeichervorrichtung bereit. Die Datenspeichervorrichtung umfasst eine Vielzahl von Sätzen von nichtflüchtigen Arbeitsspeichervorrichtungen (NVM), einen zentralen Controller und eine Vielzahl von Kanal-Controllern. Jeder Kanal-Controller ist mit einem eindeutigen Satz der Vielzahl von Sätzen von NVM-Vorrichtungen gekoppelt. Jeder Kanal-Controller umfasst eine Befehlsreihe, die dazu ausgelegt ist, hängige Speicherbefehle zu speichern und Backlog-Information bereitzustellen. Der zentrale Controller ist dazu ausgelegt, die Backlog-Information der Befehlsreihen der Vielzahl von Kanal-Controllern zu empfangen und eine Taktfrequenz des zentralen Controllers und eine oder mehrere Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information anzupassen, so dass die hängigen Speicherbefehle in jeder der Befehlsreihen unter einem vorbestimmten Schwellenwert liegen.
  • Eine andere Ausführungsform der vorliegenden Offenbarung stellt ein Verfahren zum Betreiben einer Datenspeichervorrichtung bereit, die einen zentralen Controller und eine Vielzahl von Kanal-Controllern umfasst. Der zentrale Controller gibt Speicherbefehle an die Vielzahl von Kanal-Controllern aus. Jeder der Kanal-Controller umfasst eine Befehlsreihe zum Speichern der entsprechenden Speicherbefehle für einen eindeutigen Satz einer Vielzahl von Sätzen von nichtflüchtigen Speichervorrichtungen (NVM-Vorrichtungen) und zum Bereitstellen von Backlog-Information. Der zentrale Controller empfängt die Backlog-Information der hängigen Speicherbefehle in den Befehlsreihen und passt eine Taktfrequenz des zentralen Controllers und eine oder mehrere Taktfrequenzen der Vielzahl von Kanal-Controller auf der Grundlage der Backlog-Information an, so dass die hängigen Speicherbefehle in jeder der Befehlsreihen unter einem vorbestimmten Schwellenwert liegen.
  • Eine weitere Ausführungsform der vorliegenden Offenbarung stellt eine Datenspeichervorrichtung bereit. Die Datenspeichervorrichtung umfasst eine Vielzahl von Sätzen von nichtflüchtigen Speichervorrichtungen (NVM-Vorrichtungen) und eine Vielzahl von ersten Mitteln. Jedes erste Mittel speichert Speicherbefehle für einen eindeutigen Satz der Vielzahl von Sätzen von NVM-Vorrichtungen und stellt Backlog-Information über die hängigen Speicherbefehle bereit. Die Datenspeichervorrichtung umfasst ferner ein zweites Mittel, um die Speicherbefehle an die Vielzahl von ersten Mitteln auszugeben und um die Backlog-Information zu empfangen. Die Datenspeichervorrichtung umfasst ferner ein drittes Mittel, um einen Speicherbefehl-Verarbeitungsdurchsatz des zweiten Mittels und der Vielzahl von ersten Mitteln auf der Grundlage der Backlog-Information anzupassen, so dass die hängigen Speicherbefehle in jedem ersten Mittel unter einem vorbestimmten Schwellenwert liegen.
  • Figurenliste
  • Die vorliegende Offenbarung ist im größeren Detail zu verstehen, und eine genauere Beschreibung ist durch den Verweis auf die Merkmale der verschiedenen Ausführungsformen zu erhalten, von welchen einige in den angehängten Zeichnungen veranschaulicht sind. Die angehängten Zeichnungen veranschaulichen aber nur zugehörige Merkmale der vorliegenden Offenbarung und sind somit nicht als einschränkend auszulegen, da die Beschreibung auch andere wirksame Merkmale zulassen kann.
    • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenspeichersystems gemäß einiger Ausführungsformen veranschaulicht.
    • 2 ist ein Ablaufdiagramm, das einen Leistungsverwaltungsprozess eines Datenspeichersystems gemäß einiger Ausführungsformen veranschaulicht.
    • 3 ist ein Ablaufdiagramm und ein Betriebsdiagramm, das einen reaktiven Leistungssteuerungsprozess gemäß einiger Ausführungsformen veranschaulicht.
    • Die 4 und 5 sind Ablaufdiagramme, die einen Prozess zur Steuerung einer Taktfrequenz eines zentralen Controllers gemäß einiger Ausführungsformen veranschaulichen.
    • 6 ist ein Ablaufdiagramm, das einen Prozess zur Steuerung von Taktfrequenzen von Kanal-Controllern gemäß einiger Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Hierin sind zahlreiche Details beschrieben, um ein umfassendes Verständnis der in den begleitenden Zeichnungen veranschaulichten Ausführungsformen bereitzustellen. Einige Ausführungsformen können aber in der Praxis ohne viele der spezifischen Details umgesetzt werden, und der Umfang der Ansprüche ist nur durch jene Merkmale und Aspekte beschränkt, die spezifisch in den Ansprüchen angeführt sind. Darüber hinaus wurden allgemein bekannte Verfahren, Komponenten und Schaltkreise nicht im umfassenden Detail beschrieben, um nicht in nicht notwendiger Weise zugehörige Aspekte der hierin beschriebenen Ausführungsformen zu verdecken.
  • Eine Rechenvorrichtung (Host) kann eine Datenspeicherhierarchie verwenden, die eine schnellere Datenspeicherung näher zum Host und eine langsamere Speicherung weiter vom Host entfernt anordnet. Die schnellere Speicherung kann eine flüchtige Speicherung sein und wird im Allgemeinen als „Arbeitsspeicher (Memory)“ bezeichnet, und die langsamere Speicherung ist typischerweise ein zugehöriger Speicher und wird oftmals als „Datenspeicher“ bezeichnet. Einige Beispiele für einen zugehörigen Speicher sind Solid-State-Speichervorrichtungen wie ein Flash-Memory (z.B. NAND Flash). Einige Datenspeichersysteme können ein gewisses Leistungsbudget oder eine Leistungsbeschränkung aufweisen, die während des Systembetriebs nicht überschritten werden kann. In einigen Implementierungen kann ein Datenspeichersystem eine dynamische Spannungs- und Frequenzskalierung (dynamic voltage and frequency scaling, DVFS) verwenden, um Leistung nach Bedarf zu reduzieren. Die Komplexität und der Overhead, die mit der DVFS assoziiert sind, können für einige Niedrigleistungsimplementierungen gerechtfertigt und für die Hochleistungs-Solid-State-Datenspeichervorrichtung praktisch sein. Darüber hinaus können aber DVFS Lösungen in Situationen hoher Belastung und Leistungsdrosselung nicht geeignet sein.
  • In einer verteilten Datenspeicherarchitektur kann die nichtflüchtige Datenspeicherung in verschiedene Kanäle oder Gruppen organisiert sein. Jeder Kanal umfasst nichtflüchtige Speichervorrichtungen (z.B. NAND Flash-Chips), die von einem Kanal-Controller gesteuert werden. Das Datenspeichersystem kann einen zentralen Controller verwenden, um Speicheroperationen unter den Kanälen durch den Kanal-Controller zu steuern. Der zentrale Controller kann eine Host-Schnittstelle für einen Host (z.B. einen Computer) bereitstellen, um auf die Daten im Datenspeichersystem zuzugreifen. In einem solchen verteilten Datenspeichersystem muss die Belastung der mehreren stromabwärtigen Kanäle sorgfältig überlegt werden, wenn die Taktfrequenz des zentralen Controllers angepasst wird, um z.B. den Leistungsverbrauch zu reduzieren.
  • Mit Verweis nun auf die Zeichnungen sind Ausführungsformen von Systemen und Verfahren bereitgestellt, um den Leistungsverbrauch in Speichersystemen zur Datenspeicherung zu verwalten. Einige Ausführungsformen umfassen Systeme, Verfahren und/oder Vorrichtungen, um den Leistungsverbrauch von Speicher-Controllern in Reaktion auf das Speicherbefehl-Backlog in verschiedenen Situationen zu reduzieren.
  • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenspeichersystems 100 gemäß einiger Ausführungsformen veranschaulicht. Während einige beispielhafte Merkmale veranschaulicht sind, wurden verschiedene andere Merkmale aus Gründen der Kürze und, um zugehörigere Aspekte der hierin geoffenbarten beispielhaften Implementierungen nicht zu verdecken, nicht veranschaulicht.
  • Das Datenspeichersystem 100 kann eine persistente Datenspeicherung für einen Host 102 oder Computer bereitstellen. Das Datenspeichersystem umfasst einen zentralen Controller 110 und Kanal-Controller 112. Der zentrale Controller 110 umfasst verschiedene Komponenten wie z.B. einen Takterzeuger 114, einen DFS-Steuerblock (dynamische Frequenzskalierung) 116, eine Host-Schnittstelle 118, einen Speicherbefehlprozessor 120 und einen Leistungs-Credit-Zuweisungsblock 124. Die Host-Schnittstelle 118 stellt für den zentralen Controller 110 eine Schnittstelle mit einem Host 102 für die Daten- und Steuerkommunikation bereit. Der Host 102 kann ein Computer oder eine CPU (Hauptprozessor) sein, der/die Daten im Datenspeichersystem speichern kann. Der Takterzeuger 114 kann dazu ausgelegt sein, ein oder mehrere Taktsignale zu erzeugen, um verschiedene Komponenten des zentralen Controllers 110 anzutreiben. So kann der Takterzeuger 114 z.B. ein Taktsignal ausgeben, um den Speicherbefehlprozessor 120 anzutreiben. Je schneller das Taktsignal ist (d.h. höhere Frequenz), desto schneller kann der Speicherbefehlprozessor 120 Speicherbefehle verarbeiten. Eine schnellere Taktgeschwindigkeit kann aber auch den Leistungsverbrauch des Controllers erhöhen. Einige Beispiele für Speicherbefehle werden verwendet, um Daten im nichtflüchtigen Speicher (NVM) 130 des Datenspeichersystems 100 zu lesen, zu schreiben und zu löschen.
  • Der DFS-Steuerblock 116 kann ein Frequenzskalierungsfaktorsignal erzeugen, das die Taktfrequenz des Takterzeugers 114 dynamisch steuert. In einem Beispiel kann der Takterzeuger 114 eine Grundfrequenz F aufweisen. Ist der Skalierungsfaktor X, wie dies durch das Frequenzskalierungsfaktorsignal angezeigt ist, so kann die Taktfrequenz F multipliziert mit X bestimmt werden. Somit erhöht ein Skalierungsfaktor von mehr als 1 die Ausgabetaktfrequenz, während ein Skalierungsfaktor von weniger als 1 die Ausgabetaktfrequenz reduziert. Der zentrale Controller 110 kann dynamisch den Taktskalierungsfaktor ändern, um bei Bedarf die Taktfrequenz zu ändern.
  • Der Speicherbefehlprozessor 120 empfängt Speicherbefehle vom Host 102 über die Host-Schnittstelle 118. In einigen Beispielen kann die Host-Schnittstelle 118 ein Teil oder ein funktionaler Block des Speicherbefehlprozessors 120 sein. Auf der Grundlage der Befehle oder Instruktionen, die vom Host 102 empfangen werden, erzeugt der Speicherbefehlprozessor 120 entsprechende Speicherbefehle und sendet sie an die Kanal-Controller 112, um Daten im nichtflüchtigen Speicher (NVM) 130 zu schreiben, zu lesen und zu löschen. In einigen Ausführungsformen kann der NVM 130 ein NAND Flash-Speicher oder dergleichen sein.
  • Jeder Kanal-Controller 112 umfasst einen Takterzeuger 132 und eine Befehlsreihe 134. Der Takterzeuger 132 erzeugt ein oder mehrere Taktsignale, um verschiedene Komponenten des Kanal-Controllers 112 auf der Grundlage eines Frequenzskalierungsfaktorsignals anzutreiben, das vom DFS-Steuerblock 116 empfangen wird. Somit kann der zentrale Controller 110 unter Verwendung des DFS-Steuerblocks 116 dynamisch die Taktfrequenzen anpassen, die vom Takterzeuger 132 jedes Kanal-Controllers 112 ausgegeben werden. In einigen Beispielen kann die Befehlsreihe 134 ein First-In-First-Out-Puffer (FIFO) sein, der dazu ausgelegt ist, Speicherbefehle vom zentralen Prozessor 110 (z.B. dem Speicherbefehlprozessor 120) zu empfangen. Jeder Kanal-Controller 112 ist dazu ausgelegt, die in seiner Befehlsreihe 134 gespeicherten Speicherbefehle auszuführen, um die im NVM 130 gespeicherten Daten zu verwalten. Je schneller das Taktsignal ist, das vom Takterzeuger 132 erzeugt wird, desto schneller kann der Kanal-Controller 112 die Speicherbefehle in seiner Befehlsreihe 134 ausführen. So können z.B. die Speicherbefehle den Kanal-Controller 112 veranlassen, Daten im entsprechenden NVM 130 zu schreiben, zu lesen oder zu löschen.
  • Das Datenspeichersystem 100 kann einen Leistungsüberwachungsblock 140 aufweisen, der dazu ausgelegt ist, den Leistungsverbrauch des Systems zu überwachen. So kann der Leistungsüberwachungsblock 140 z.B. Sensoren und einen Schaltkreis (z.B. einen oder mehrere Stromsensoren und/oder Spannungssensoren) umfassen, die dazu ausgelegt sind, den Leistungsverbrauch verschiedener Komponenten des Datenspeichersystems 100 zu messen. In einigen Aspekten der Offenbarung, wenn der Leistungsverbrauch des Systems über einer vorbestimmten Schwelle, Grenze oder einem Leistungsbudget liegt, kann das Datenspeichersystem 100 Leistungsverwaltungsoperationen durchführen, um den Leistungsverbrauch zu reduzieren oder zu beschränken. In einigen Szenarien der Leistungsverwaltung kann die Arbeitsleistung einiger Komponenten (z.B. des NVM 130) reduziert, beschränkt oder gedrosselt werden. Das Datenspeichersystem 100 kann Komponenten und einen Schaltkreis umfassen, die dazu ausgelegt sind, Leistungsverwaltungsfunktionen durchzuführen. Der Leistungs-Credit-Zuweisungsblock 124 weist Leistungs-Credits den Kanal-Controllern 112 und dem zugehörigen NVM 130 zu, und jeder Kanal-Controller 112 weist einen Wartesteuerblock 146 und einen NVM-Steuerblock 148 auf, um die Leistungsdrosselung auf der Grundlage der zugewiesenen Leistungs-Credits zu steuern. Leistungsdrosselung bezieht sich auf Operationen, z.B. die Frequenz- und/oder Spannungsreduzierung, welche den Leistungsverbrauch des gedrosselten Schaltkreises oder der Komponenten reduzieren kann. Ein Leistungs-Credit kann einer gewissen Menge an Leistung entsprechen, die von dem Schaltkreis verwendet werden kann. Werden einem Kanal-Controller 122 und seinem zugehörigen NVM 130 eine gewisse Menge an Leistungs-Credits zugewiesen, so können der Kanal-Controller 122 und der NVM 130 eine Menge an Leistung verwenden, die den zugewiesenen Leistungs-Credits entspricht, um z.B. Speicherbefehle auszuführen.
  • 2 ist ein Ablaufdiagramm, das einen Leistungsverwaltungsprozess 200 gemäß einiger Ausführungsformen veranschaulicht. Auf der Seite des zentralen Controllers weist der Leistungs-Credit-Zuweisungsblock 124 Leistungs-Credits jedem Kanal-Controller (202) zu. Auf der Seite des Kanal-Controllers kann der Wartesteuerblock 126 bestimmen (204), ob die zugewiesenen Leistungs-Credits ausreichend sind, um die Speicherbefehle, die in ihrer Befehlsreihe 134 hängig sind, durchzuführen. Der Wartesteuerblock 146 kann ein WAIT-Signal an den NVM-Steuerblock 148 ausgeben, um die Leistungsdrosselung des NVM 130 bei Bedarf zu steuern. Sind ausreichend Leistungs-Credits verfügbar, um die Speicherbefehle in der Befehlsreihe 134 durchzuführen, so kann das WAIT-Signal keine Drosselung anzeigen (206). Ansonsten, wenn die zugewiesenen Leistungs-Credits nicht ausreichend sind, kann das WAIT-Signal eine Drosselung anzeigen (208).
  • Während der Leistungsdrosselung kann der NVM-Steuerblock 148 die Geschwindigkeit des Sendens der Speicherbefehle an den NVM 130 und/oder die Operationen an dem NVM 130 verlangsamen, so dass der Leistungsverbrauch reduziert werden kann. Das Backlog der Befehlsreihe 134 kann sich erhöhen, wenn der NVM-Steuerblock 148 die Ausführung der Speicherbefehle verlangsamt. In diesem Fall weist die Befehlsreihe 134 Gegendruck oder sich erhöhenden Gegendruck auf. Der Wartesteuerblock 146 kann für den Leistungs-Credit-Zuweisungsblock 124 Feedback über das Backlog oder den Gegendruck der Befehlsreihe 134 bereitstellen. Wird der NVM 130 gedrosselt, um den Leistungsverbrauch zu reduzieren, so müssen der zentrale Controller 110 und/oder der Kanal-Controller 112 nicht bei voller Geschwindigkeit (d.h. der Nenntaktrate oder Frequenz) operieren. In diesem Fall kann der DFS-Steuerblock 116 die Taktfrequenzen des zentralen Controllers 110 und/oder es Kanal-Controllers 112 herabskalieren. Die Takte der Kanal-Controller 112 können auf verschiedene Grade, abhängig vom Gegendruck an ihren jeweiligen Befehlsreihen, herabskaliert werden.
  • 3 ist ein Ablaufdiagramm, das einen reaktiven Leistungssteuerprozess 300 gemäß einiger Ausführungsformen veranschaulicht. Das Datenspeichersystem 100 kann diesen reaktiven Leistungssteuerprozess nutzen, um dynamisch die Taktfrequenzen der Controller in Reaktion auf das Ungleichgewicht im Speicherbefehl-Verarbeitungsdurchsatz zwischen dem zentralen Controller 110 und den Kanal-Controllern 112 zu ändern. Die in den Controllern eingesparte Leistung kann als Leistungs-Credits rückgewonnen werden, und somit werden für die Kanal-Controller /NVM oder um den Leistungsverbrauch insgesamt des Systems zu reduzieren, mehr Leistungs-Credits zur Verfügung gestellt.
  • Im Block 302 gibt der zentrale Controller 110 Speicherbefehle 304 an eine Vielzahl von Kanal-Controllern 112 aus. So umfasst z.B. jeder Kanal-Controller 112 eine Befehlsreihe 134, um entsprechende Speicherbefehle für einen eindeutigen Satz einer Vielzahl von Sätzen von NVM-Vorrichtungen (z.B. NVM 130) zu speichern. Die Befehlsreihe kann ein FIFO-Puffer sein, der eine gewisse Anzahl von hängigen Speicherbefehlen halten kann.
  • Im Block 306 stellt jeder Kanal-Controller 112 für den zentralen Controller 110 Backlog-Information 308 der in der Befehlsreihe 134 hängigen Speicherbefehle bereit. Jede der Befehlsreihe 134 kann eine Ausgabe aufweisen, die ihr Backlog oder ihren Gegendruck anzeigt. So kann das Signal z.B. die Anzahl an Speicherbefehlen anzeigen, die in der Befehlsreihe hängig sind, oder einen Nutzungswert der Befehlsreihen. Gegendruck erhöht sich, wenn der Kanal-Controller 112 neue Speicherbefehle schneller empfängt, als er die hängigen Speicherbefehle abschließen kann.
  • Im Block 310 passt der zentrale Controller 110 dynamisch die Taktfrequenz des zentralen Controllers 110 und/oder der jeweiligen Taktfrequenzen der Kanal-Controller 112 auf der Grundlage der Backlog-Information an, so dass die in jeweiligen Befehlsreihen hängigen Speicherbefehle unter einem vorbestimmten Schwellenwert oder in einem gewissen Bereich gehalten werden können. So kann z.B. der DFS-Steuerblock 116 geeignete Frequenzskalierungsfaktorsignale 312 an den Takterzeuger 114 in dem zentralen Controller 110 und an Takterzeuger 132 in den Kanal-Controllern 112 ausgeben, um die jeweiligen Taktfrequenzen derart festzulegen, so dass das Datenspeichersystem 100 einen erwünschten oder minimalen Verarbeitungsdurchsatz oder solche Leistungswerte erfüllen kann. Im Allgemeinen, wenn die Taktfrequenz reduziert wird, besitzt der Controller einen niedrigeren Speicherbefehl-Verarbeitungsdurchsatz. Somit sendet der zentrale Controller 110, wenn er einen niedrigeren Durchsatz hat, weniger Speicherbefehle an die Befehlsreihe 134. In diesem geschlossenen reaktiven Leistungssteuerungsprozess kann der zentrale Controller 110 die Verarbeitungsgeschwindigkeit stromaufwärts reduzieren, so dass die Controller in Hinblick auf den Speicherbefehl-Verarbeitungsdurchsatz gerade vor dem NVM bleiben. Somit kann die NVM-Schnittstelle 150 (z.B. eine Speicherschnittstelle) so vollständig besetzt gehalten werden, wie dies möglich ist, während die Controller den Leistungsverbrauch bei niedrigeren Taktfrequenzen reduzieren können.
  • Werden die Takte des zentralen Controllers 110 und/oder des Kanal-Controllers 112 dynamisch in Reaktion auf das Backlog der Befehlsreihen 134 der Kanal-Controller 112 reduziert, so kann die in den Controllern eingesparte Leistung als Leistungs-Credit rückgewonnen werden, die für den NVM 130 zur Verfügung gestellt werden. Werden mehr Leistungs-Credits dem NVM 130 zugewiesen, so muss die Leistungsdrosselung nicht erforderlich sein, oder sie kann reduziert werden. Dieser geschlossene Leistungssteuerungsprozess kann auch als reaktive Leistungsverwaltung bezeichnet werden, weil die Leistung in Reaktion auf das Ungleichgewicht in den Befehlsverarbeitungsdurchsätzen zwischen dem zentralen Controller und den Kanal-Controllern angepasst wird.
  • Im Allgemeinen arbeitet, wenn die Befehlsreihe 134 Gegendruck aufweist, der Kanal-Controller 112 so schnell wie möglich, um den Befehls-Traffic stromaufwärts des zentralen Controllers 112 aufrechterhalten zu können. In diesem Fall kann der zentrale Controller 110 ihren Takt verlangsamen, so dass weniger Speicherbefehle verarbeitet und zu den Befehlsreihen 134 an den Kanal-Controllern 112 gesendet werden. Während der wie oben beschriebenen Drosselung werden Speicheroperationen (z.B. Lesen, Schreiben, Löschen) am NVM 130 mit einem Gate gesteuert, beschränkt oder moduliert. So kann der NVM-Steuerblock 148 z.B. die Ausgabe von Sprachbefehlen an den NVM 130 durch die NVM-Schnittstelle 150 durch ein Gate steuern oder beschränken. Somit kann während der Drosselung der Kanal-Controller 112 langsamer arbeiten und dennoch mit dem NVM 130 mithalten. Dies bedeutet, dass während der Drosselung Gegendruck durch das Gating der Speicherbefehle bewirkt werden kann und nicht, weil der Kanal-Controller 112 zu langsam ist, um mit dem stromaufwärtigen zentralen Controller 110 mitzuhalten. In manchen Fällen können somit der zentrale Controller 110 und/oder der Kanal-Controller 112 sich verlangsamen, um den Leistungsverbrauch zu reduzieren, ohne den Gegendruck an den Befehlsreihen zu erhöhen. Der zentrale Controller 110 oder der Kanal-Controller 112 können die Taktfrequenz der NVM-Schnittstelle 150 halten, wenn die Taktfrequenz des zentralen Controllers 110 und/oder die Taktfrequenz jedes der Kanal-Controller 112 angepasst (z.B. reduziert) wird, so dass Speicherbefehle und/oder Daten sich über die Speicherschnittstelle 150 bewegen können, ohne langsamer zu werden.
  • 4 ist ein Ablaufdiagramm, das einen Prozess 400 zum Steuern der Taktfrequenz des zentralen Controllers 110 gemäß einiger Ausführungsformen veranschaulicht. Im Block 402 bestimmt der zentrale Controller 110 die Befehlsreihenwerte aller Befehlsreihen in den Kanal-Controllern 112. So kann z.B. der DFS-Steuerblock 116 Backlog-Information von der Befehlsreihe 134 jedes Kanal-Controllers empfangen. Die Backlog-Information zeigt den Wert oder die Menge an Speicherbefehlen an, die in der Befehlsreihe 134 hängig sind. Im Entscheidungsblock 404 bestimmt der zentrale Controller, ob alle Reihenwerte (z.B. kombinierte Reihenwerte) innerhalb einer Schwellentotzone liegen. Wenn z.B. alle Reihenwerte innerhalb der Schwellentotzone liegen (d.h. dem „Ja“-Weg), so ändert der zentrale Controller 110 die Taktfrequenz des zentralen Controllers 110 nicht. Die Schwellentotzone kann ein vorbestimmter Bereich von Reihenwerten sein, in welchem der zentrale Controller seine aktuelle Taktfrequenz halten und einen vorbestimmten (z.B. minimalen) Speicherbefehl-Verarbeitungsdurchsatz unter den Kanal-Controllern erreichen kann. In einigen Beispielen können verschiedene Kanal-Controller dieselben oder verschiedene Schwellentotzonen für ihre jeweiligen Befehlsreihen aufweisen.
  • Im Entscheidungsblock 406, wenn ein oder mehrere Reihenwerte nicht innerhalb der Schwellentotzone liegen, bestimmt der zentrale Controller 110, ob alle Reihenwerte über einer vorbestimmten Schwelle liegen. Dieselbe Schwelle oder verschiedene entsprechende Schwellen können für die Kanal-Controller 112 verwendet werden. Liegen alle Reihenwerte über der vorbestimmten Schwelle, so kann dies anzeigen, dass alle Befehlsreihen Gegendruck aufweisen. Gibt es von einem der Kanal-Controller Gegendruck, ob nun bei Drosselung oder nicht, so bedeutet dies, dass die Kanal-Controller nicht Schritt halten können und somit der zentrale Controller 110 sich verlangsamen kann und noch immer mit den Kanal-Controllern 112 mithalten kann. Im Block 408 bestimmt der zentrale Controller 110, ob seine Taktfrequenz über einer minimalen Frequenz liegt. Liegt die Taktfrequenz des zentralen Controllers über der Mindestfrequenz so kann im Block 410 der zentrale Controller 110 den DFS-Steuerblock 116 verwenden, um die Taktfrequenz des zentralen Controllers zu reduzieren. So kann z.B. der DFS-Steuerblock 116 ein Frequenzskalierungsfaktorsignal an den Takterzeuger 114 ausgeben, um seine Taktfrequenz zu reduzieren.
  • Im Block 412, wenn nicht alle Reihenwerte über der Schwelle liegen, bestimmt der zentrale Controller 110, ob seine Taktfrequenz unter einer maximalen Frequenz liegt. Liegt die Taktfrequenz des zentralen Controllers unter der Maximalfrequenz, so kann im Block 414 der zentrale Controller 110 den DFS-Steuerblock 116 verwenden, um die Taktfrequenz des zentralen Controllers zu erhöhen.
  • Die 5 und 6 sind Ablaufdiagramme, die Steuerprozesse 500 und 600 zum Steuern der Taktfrequenz der Kanal-Controller 112 gemäß einiger Ausführungsformen veranschaulichen. So kann z.B. der zentrale Controller 110 den Prozess 500 durchführen, um die Taktfrequenz von N Kanal-Controllern 112 zu steuern, nachdem die Taktfrequenz des zentralen Controllers 110 unter Verwendung des Prozesses 400 der 4 angepasst wurde. Mit Verweis auf 5 kann im Block 416 der zentrale Controller 110 die Taktfrequenz eines ersten Kanal-Controllers 112 gemäß einem in 6 veranschaulichten Algorithmus steuern. Mit Verweis auf 6 bestimmt im Entscheidungsblock 602 der zentrale Controller 110, ob der Befehlsreihenwert innerhalb der Schwellentotzone liegt. Liegt der Reihenwert z.B. innerhalb der Schwellentotzone (d.h. dem „Ja“-Pfad folgend), so ändert der zentrale Controller 110 die Taktfrequenz dieses bestimmten Kanal-Controllers 112 nicht. Die Schwellentotzone kann ein vorbestimmter Bereich von Reihenwerten sein, in welchem der Kanal-Controller seine aktuelle Taktfrequenz halten kann, während er den erwünschten Speicherbefehl-Verarbeitungsdurchsatz bereitstellt. In einigen Beispielen können verschiedene Kanal-Controller dieselbe oder verschiedene Schwellentotzonen für ihre jeweiligen Befehlsreihen aufweisen.
  • Im Entscheidungsblock 604, wenn der Reihenwert nicht innerhalb der Schwellentotzone liegt, bestimmt der zentrale Controller 110, ob der Reihenwert über einer vorbestimmten Schwelle liegt. Es können dieselbe Schwelle oder verschiedene jeweilige Schwellen für verschiedene Kanal-Controller 112 verwendet werden. Liegt der Reihenwert über der vorbestimmten Schwelle, so kann dies anzeigen, dass die Befehlsreihe / der Kanal-Controller einen hohen Gegendruck hat. In diesem Fall (d.h. folgend dem „Ja“-Weg) bestimmt im Entscheidungsblock 606 der zentrale Controller 110, ob die Taktfrequenz des Kanal-Controllers unter einer maximalen Frequenz liegt. Liegt die Taktfrequenz des Kanal-Controllers unter der maximalen Frequenz, so kann im Block 608 der zentrale Controller 110 den DFS-Steuerblock 116 verwenden, um die Taktfrequenz des Kanal-Controllers zu erhöhen. Das Erhöhen der Taktfrequenz kann den Speicherbefehl-Verarbeitungsdurchsatz erhöhen, um den Gegendruck der Befehlsreihe zu reduzieren.
  • Im Entscheidungsblock 610, wenn der Reihenwert über der vorbestimmten Schwelle liegt, bestimmt der zentrale Controller 110, ob die Taktfrequenz des Kanal-Controllers über einer Mindestfrequenz liegt. Liegt die Taktfrequenz des Kanal-Controllers über der Mindestfrequenz, so kann im Block 612 der zentrale Controller 110 den DFS-Steuerblock 116 nützen, um die Taktfrequenz des Kanal-Controllers zu reduzieren. So kann z.B. der DFS-Steuerblock 116 ein Frequenzskalierungsfaktorsignal an den Takterzeuger 132 ausgeben, um die Taktfrequenz des Kanal-Controllers 112 anzupassen (z.B. zu reduzieren oder zu erhöhen). Das Reduzieren der Taktfrequenz kann den Leistungsverbrauch des Kanal-Controllers reduzieren.
  • Der zentrale Controller 110 kann den oben beschriebenen und in 6 veranschaulichten Algorithmus wiederholen, um die Taktfrequenz jedes Kanal-Controllers 112 zu steuern. Mit Verweis nun wieder auf 5 kann im Block 418 der zentrale Controller 110 denselben Algorithmus verwenden, um die Taktfrequenz eines zweiten Kanal-Controllers 112 zu steuern. Im Anschluss daran kann im Block 420 der zentrale Controller 110 den in 6 veranschaulichten Algorithmus verwenden, um die Taktfrequenz des N-ten Kanal-Controllers 112 zu steuern.
  • Wie oben beschrieben ist, werden die Taktfrequenzen des zentralen Controllers 110 und der Kanal-Controller 112 dynamisch in Reaktion auf den Gegendruck der Befehlsreihen gesteuert oder angepasst. Gibt es Gegendruck von einer der Kanal-Controller, bei Drosselung oder nicht, so bedeutet dies, dass der/die Kanal-Controller 112 nicht mithalten können und sich somit der zentrale Controller 110 verlangsamen kann und immer noch mit dem/den Kanal-Controller/n 112 mithalten kann. Wird eine Drosselung verwendet, so kann die in dem zentralen Controller eingesparte Leistung z.B. von den Kanal-Controllern 112 und/oder dem NVM 130 rückgewonnen werden, was in einer reduzierten Drosselung und erhöhter Arbeitsleistung für denselben Leistungszug resultiert. Wird keine Drosselung verwendet, kann das Gesamtsystem reduziert werden, was in einem niedrigeren Leistungsverbrauch insgesamt des Systems für dieselbe Arbeitsleistung resultiert.
  • In einigen Ausführungsformen kann jeder Kanal-Controller 112 in einer Anzahl von Leitungsstufen, einschließlich NVM 130, implementiert sein. Die Taktfrequenzen der Leitungsstufen können einzeln angepasst werden, um die Leitungsstufen im Durchsatz ausgeglichen zu halten. Wenn z.B. eine gewisse Menge an Leistung (z.B. Leistungs-Credits) für die Leitungsstufen verfügbar ist, dies aber nicht ausreichend ist, um alle Leitungsstufen gleichzeitig mit der festgelegten Frequenz zu betreiben, kann der zentrale Controller 110 die Taktfrequenz jeder Leitungsstufe oder Komponente anpassen, um dynamisch die verfügbare Leistung aufzuteilen, während sichergestellt wird, dass jede Stufe eine Mindestarbeitsleistung halten kann. Wenn z.B. aktuelle NVM-Operationen (z.B. Lesen, Schreiben, Löschen) abgeschlossen sind, kann sich die Menge an verfügbarer Leistung erhöhen und eine oder mehrere Leitungsstufen können ihre Geschwindigkeit auf eine höhere Taktfrequenz erhöhen. In einem anderen Beispiel, wenn „überschüssige“ Leistung innerhalb der Leitungsstufe gegeben ist und NVM-Operationen noch hängig sind, bedeutet dies, dass der Durchsatz der Leitungsstufen höher als der NVM ist. In diesem Fall können eine oder mehrere Leitungsstufen verlangsamt werden, um die Arbeitsleistung zwischen NVM und Leitung auszugleichen.
  • In einigen Ausführungsformen kann eine Datenspeichervorrichtung verschiedene Mittel umfassen, um die verschiedenen Funktionen und Verfahren, die obig in Bezug auf die 1-6 beschrieben sind, durchzuführen. So kann die Datenspeichervorrichtung z.B. eine Vielzahl von ersten Mitteln umfassen. Jedes erste Mittel kann die Befehlsreihe 134 sein, die Speicherbefehle für einen Satz von NVM-Vorrichtungen 130 speichern und Backlog-Information über die hängigen Speicherbefehle bereitstellen kann. Die Datenspeichervorrichtung kann ein zweites Mittel umfassen, um die Speicherbefehle an die Vielzahl von ersten Mitteln auszugeben und um die Backlog-Information zu empfangen. So kann das zweite Mittel z.B. der Speicherbefehlprozessor 120 sein. Die Datenspeichervorrichtung kann ein drittes Mittel umfassen, um einen Speicherbefehl-Verarbeitungsdurchsatz des zweiten Mittels und der Vielzahl von ersten Mitteln auf der Grundlage der Backlog-Information anzupassen, so dass die hängigen Speicherbefehle in jedem ersten Mittel unter einem vorbestimmten Schwellenwert liegen. So kann das dritte Mittel z.B. der DFS-Steuerblock (dynamische Frequenzskalierung, DFS) 116 sein.
  • In einer Ausführungsform kann der Prozess die Abfolge von Aktionen in einer anderen Reihenfolge durchführen. In einer anderen Ausführungsform kann der Prozess eine oder mehrere der Aktionen auslassen. In anderen Ausführungsformen werden eine oder mehrere der Aktionen gleichzeitig durchgeführt werden. In einigen Ausführungsformen können zusätzliche Aktionen durchgeführt werden.
  • Während die obige Beschreibung viele spezifische Ausführungsformen der Erfindung enthält, sollten diese nicht als Einschränkungen auf den Umfang der Erfindung ausgelegt werden sondern vielmehr als Beispiele für spezifische Ausführungsformen davon. Demgemäß sollte der Umfang der Erfindung nicht durch die veranschaulichten Ausführungsformen sondern durch die angehängten Ansprüche und ihre Äquivalente bestimmt werden.
  • Die verschiedenen Merkmale und Prozesse, die oben beschrieben sind, können unabhängig voneinander verwendet werden, oder sie können auf verschiedene Weise kombiniert werden. Alle möglichen Kombinationen und Teilkombinationen sollen innerhalb des Umfangs dieser Offenbarung liegen. Zusätzlich dazu können gewisse Verfahrens-, Ereignis-, Zustands- oder Prozessblöcke in einigen Implementierungen weggelassen werden. Die hierin beschriebenen Verfahren und Prozesse sollen auch nicht auf eine bestimmte Abfolge beschränkt sein, und die damit zusammenhängenden Blöcke oder Zustände können auch in anderen Abfolgen, die geeignet sind, durchgeführt werden. So können z.B. die beschriebenen Aufgaben oder Ereignisse in einer anderen Reihenfolge als jener, die spezifisch geoffenbart ist, durchgeführt werden, oder mehrere können in einem einzelnen Block oder Zustand kombiniert sein. Die beispielhaften Aufgaben oder Ereignisse können seriell, parallel oder in einer anderen geeigneten Weise durchgeführt werden. Aufgaben oder Ereignisse können zu den geoffenbarten beispielhaften Ausführungsformen hinzugefügt oder davon entfernt werden. Die beispielhaften Systeme und Komponenten, die hierin beschrieben sind, können anders als beschrieben ausgelegt sein. So können z.B. Elemente zu den geoffenbarten beispielhaften Ausführungsformen hinzugefügt, davon entfernt oder neu angeordnet werden.

Claims (20)

  1. Datenspeichervorrichtung, die aufweist: eine Vielzahl von Sätzen von nichtflüchtigen Speichervorrichtungen (NVM); einen zentralen Controller; und eine Vielzahl von Kanal-Controllern, wobei jeder Kanal-Controller mit einem eindeutigen Satz der Vielzahl von Sätzen an NVM-Vorrichtungen gekoppelt ist, wobei jeder Kanal-Controller eine Befehlsreihe aufweist, die dazu ausgelegt ist, hängige Speicherbefehle zu speichern und Backlog-Information bereitzustellen, wobei der zentrale Controller dazu ausgelegt ist: die Backlog-Information der Befehlsreihen der Vielzahl von Kanal-Controllern zu empfangen; und eine Taktfrequenz des zentralen Controllers und eine oder mehrere Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information anzupassen, so dass die hängigen Speicherbefehle in jeder der Befehlsreihen unter einem vorbestimmten Schwellenwert liegen.
  2. Datenspeichervorrichtung nach Anspruch 1, wobei der zentrale Controller ferner dazu ausgelegt ist: die Taktfrequenz des zentralen Controllers zu reduzieren, wenn die Backlog-Information anzeigt, dass die hängigen Speicherbefehle in der Befehlsreihe mindestens eines der Kanal-Controller einen vorbestimmten Schwellenwert überschreiten.
  3. Datenspeichervorrichtung nach Anspruch 1, wobei der zentrale Controller ferner dazu ausgelegt ist: mindestens eine der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information zu reduzieren.
  4. Datenspeichervorrichtung nach Anspruch 3, wobei der zentrale Controller ferner dazu ausgelegt ist: mindestens eine der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Taktfrequenzen der Vielzahl von Kanal-Controllern zu reduzieren, wenn die Backlog-Information anzeigt, dass ein Speicherbefehl-Verarbeitungsdurchsatz des zentralen Controllers anders als jener des mindestens einen der Kanal-Controller ist.
  5. Datenspeichervorrichtung nach Anspruch 3, wobei jeder der Vielzahl von Kanal-Controllern dazu ausgelegt ist: eine Taktfrequenz einer Speicherschnittstelle, die zwischen der Vielzahl von Kanal-Controllern und der Vielzahl von Sätzen von NVM-Vorrichtungen gekoppelt ist, zu halten.
  6. Datenspeichervorrichtung nach Anspruch 3, wobei der zentrale Controller ferner dazu ausgelegt ist: die rückgewonnenen Leistungs-Credits, die der Leistung entsprechen, die gespart wird, wenn zumindest eine der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Tatfrequenzen der Vielzahl von Kanal-Controllern reduziert werden, zu bestimmen; und die rückgewonnenen Leistungs-Credits dem einen oder mehreren der Vielzahl von Kanal-Controllern zuzuweisen, um Speicherbefehle auszuführen.
  7. Datenspeichervorrichtung nach Anspruch 1, wobei jeder der Vielzahl von Kanal-Controller dazu ausgelegt ist: die Backlog-Information zu bestimmen; Power-Credits zu empfangen, die von dem zentralen Controller, auf der Grundlage zumindest teilweise der Backlog-Information, zugewiesen werden; und die Ausführung von Speicherbefehlen in der Befehlsreihe gemäß der empfangenen Leistungs-Credits zu begrenzen.
  8. Datenspeichervorrichtung nach Anspruch 7, wobei jeder der Vielzahl von Kanal-Controllern ferner dazu ausgelegt ist: eine Geschwindigkeit für die Ausgabe der Speicherbefehle an den eindeutigen Satz der Vielzahl von Sätzen an NVM-Vorrichtungen auf der Grundlage der Leistungs-Credits zu steuern.
  9. Verfahren zum Betreiben einer Datenspeichervorrichtung, die einen zentralen Controller und eine Vielzahl von Kanal-Controller aufweist, wobei das Verfahren umfasst: an dem zentralen Controller Ausgeben von Speicherbefehlen an die Vielzahl von Kanal-Controllern, wobei jede der Kanal-Controller eine Befehlsreihe zum Speichern der entsprechenden Speicherbefehle für einen eindeutigen Satz einer Vielzahl von Sätzen von nicht-flüchtigen Speichervorrichtungen (NVM-Vorrichtungen) und zum Bereitstellen von Backlog-Information aufweist; an dem zentralen Controller Empfangen der Backlog-Information der hängigen Speicherbefehle in den Befehlsreihen; und Anpassen einer Taktfrequenz des zentralen Controllers und einer oder mehrerer Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information, so dass die hängigen Speicherbefehle in jeder der Befehlsreihen unter einem vorbestimmten Schwellenwert liegen.
  10. Verfahren nach Anspruch 9, das ferner aufweist: Reduzieren mindestens einer der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Taktfrequenzen der Vielzahl von Kanal-Controllern auf der Grundlage der Backlog-Information.
  11. Verfahren nach Anspruch 10, das ferner aufweist: Reduzieren mindestens einer der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Taktfrequenzen der Vielzahl von Kanal-Controllern, wenn die Backlog-Information anzeigt, dass ein Speicherbefehl-Verarbeitungsdurchsatz des zentralen Controllers anders als jener des mindestens einen der Kanal-Controller ist.
  12. Verfahren nach Anspruch 10, das ferner an jeder der Vielzahl von Kanal-Controllern aufweist: Halten einer Taktfrequenz einer Speicherschnittstelle, die zwischen der Vielzahl von Kanal-Controllern und der Vielzahl von Sätzen an NVM-Vorrichtungen gekoppelt ist.
  13. Verfahren nach Anspruch 10, das ferner aufweist: Bestimmen der rückgewonnenen Leistungs-Credits, die der Leistung entsprechen, die gespart wird, wenn zumindest eine der Taktfrequenz des zentralen Controllers oder der einen oder mehreren Tatfrequenzen der Vielzahl von Kanal-Controllern reduziert wird; und Zuweisen der rückgewonnenen Leistungs-Credits der einen oder mehreren der Vielzahl von Kanal-Controller, um Speicherbefehle auszuführen.
  14. Verfahren nach Anspruch 9, das ferner an jedem der Kanal-Controller aufweist: Bestimmen der Backlog-Information der Befehlsreihe; Empfangen von Leistungs-Credits, die von dem zentralen Controller auf der Grundlage zumindest teilweise der Backlog-Information zugewiesen werden; und Beschränken der Ausführung von Speicherbefehlen in der Befehlsreihe gemäß der empfangenen Leistungs-Credits.
  15. Verfahren nach Anspruch 14, das ferner an jedem der Vielzahl von Kanal-Controller aufweist: Steuern einer Geschwindigkeit für die Ausgabe der Speicherbefehle an den eindeutigen Satz der Vielzahl von Sätzen an NVM-Vorrichtungen auf der Grundlage der Leistungs-Credits.
  16. Datenspeichervorrichtung, die aufweist: eine Vielzahl von Sätzen von nichtflüchtigen Speichervorrichtungen (NVM-Vorrichtungen); eine Vielzahl von ersten Mitteln, wobei jedes erste Mittel zum Speichern von Speicherbefehlen für einen eindeutigen Satz der Vielzahl von Sätzen von NVM-Vorrichtungen und zum Bereitstellen von Backlog-Information über die hängigen Speicherbefehle ausgelegt ist; ein zweites Mittel zum Ausgeben der Speicherbefehle an die Vielzahl von ersten Mitteln und zum Empfangen der Backlog-Information; und ein drittes Mittel zum Anpassen eines Speicherbefehl-Verarbeitungsdurchsatzes der zweiten Mittel und der Vielzahl von ersten Mitteln auf der Grundlage der Backlog-Information, so dass die hängigen Speicherbefehle in jedem ersten Mittel unter einem vorbestimmten Schwellenwert liegen.
  17. Datenspeichervorrichtung nach Anspruch 16, wobei das dritte Mittel Mittel zum Reduzieren des Speicherbefehl-Verarbeitungsdurchsatzes mindestens eines der zweiten Mittel oder der einen oder mehreren Vielzahl von ersten Mitteln auf der Grundlage der Backlog-Information aufweist.
  18. Datenspeichervorrichtung nach Anspruch 17, wobei das dritte Mittel ferner Mittel zum Reduzieren des Speicherbefehl-Verarbeitungsdurchsatzes mindestens eines der zweiten Mittel oder der einen oder mehreren Vielzahl von ersten Mitteln aufweist, wenn die Backlog-Information anzeigt, dass der Speicherbefehl-Verarbeitungsdurchsatz der zweiten Mittel anders als jener des mindestens einen der Vielzahl von ersten Mitteln ist.
  19. Datenspeichervorrichtung nach Anspruch 17, die ferner aufweist: Mittel zum Halten einer Taktfrequenz einer Speicherschnittstelle, die zwischen der Vielzahl von ersten Mitteln und der Vielzahl von Sätzen von NVM-Vorrichtungen gekoppelt ist.
  20. Datenspeichervorrichtung nach Anspruch 16, wobei jedes der ersten Mittel aufweist: Mittel zum Empfangen von Leistungs-Credits auf der Grundlage zumindest teilweise der Backlog-Information; und Mittel zum Beschränken der Ausführung der hängigen Speicherbefehle gemäß der empfangenen Leistungs-Credits.
DE102018115131.4A 2017-09-27 2018-06-22 Reaktives leistungsmanagement für nichtflüchtige speicher-controller Pending DE102018115131A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/716,961 US10514748B2 (en) 2017-09-27 2017-09-27 Reactive power management for non-volatile memory controllers
US15/716,961 2017-09-27

Publications (1)

Publication Number Publication Date
DE102018115131A1 true DE102018115131A1 (de) 2019-03-28

Family

ID=65638739

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018115131.4A Pending DE102018115131A1 (de) 2017-09-27 2018-06-22 Reaktives leistungsmanagement für nichtflüchtige speicher-controller

Country Status (3)

Country Link
US (1) US10514748B2 (de)
CN (1) CN109558071B (de)
DE (1) DE102018115131A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615227B1 (ko) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11086528B2 (en) * 2018-12-14 2021-08-10 SK Hynix Inc. Memory controller and memory system having the same
TWI718532B (zh) 2019-05-10 2021-02-11 技嘉科技股份有限公司 固態硬碟以及固態硬碟的效能優化方法
CN111913651B (zh) * 2019-05-10 2024-03-01 技嘉科技股份有限公司 固态硬盘以及固态硬盘的效能优化方法
US11079822B2 (en) * 2019-06-28 2021-08-03 Western Digital Technologies, Inc. Integrated power and thermal management in non-volatile memory
TWI743620B (zh) * 2019-12-11 2021-10-21 瑞昱半導體股份有限公司 效能管理方法及電子裝置
US11314315B2 (en) * 2020-01-17 2022-04-26 Samsung Electronics Co., Ltd. Performance control of a device with a power metering unit (PMU)
KR20220036232A (ko) * 2020-09-15 2022-03-22 에스케이하이닉스 주식회사 전자 장치 및 전자 장치의 동작 방법
WO2022108582A1 (en) * 2020-11-18 2022-05-27 Google Llc Controlling memory frequency based on transaction queue occupancy
US20230040336A1 (en) * 2021-08-06 2023-02-09 Micron Technology, Inc. Adaptive throughput monitoring
US11768531B2 (en) * 2021-12-30 2023-09-26 Western Digital Technologies, Inc. Power management for storage controllers
US11838033B1 (en) 2022-09-20 2023-12-05 Western Digital Technologies, Inc. Partial speed changes to improve in-order transfer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805558B2 (en) * 2005-10-31 2010-09-28 Hewlett-Packard Development Company, L.P. Method and system of controlling transfer speed of bus transactions
US8478928B2 (en) * 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
US20120221767A1 (en) * 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US20130097433A1 (en) * 2011-10-18 2013-04-18 Stec, Inc. Systems and methods for dynamic resource management in solid state drive system
US9582211B2 (en) * 2014-04-29 2017-02-28 Sandisk Technologies Llc Throttling command execution in non-volatile memory systems based on power usage
US10146293B2 (en) * 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices
US10459855B2 (en) * 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface

Also Published As

Publication number Publication date
US10514748B2 (en) 2019-12-24
CN109558071B (zh) 2022-04-05
US20190094938A1 (en) 2019-03-28
CN109558071A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
DE102018115131A1 (de) Reaktives leistungsmanagement für nichtflüchtige speicher-controller
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE112012001358B4 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE102006015017B4 (de) Leistungsdrosselungssystem und -verfahren für eine Speichersteuerung
DE102014001914B4 (de) Dynamische Steuerung einer maximalen Betriebsspannung für einen Prozessor
DE102004034864B4 (de) Erzeugnisse und Verfahren zum dynamischen Verändern eines Taktsignals
DE112016003885T5 (de) Temperaturüberwachung von Speicherressourcen
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE112012002664T5 (de) Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor
DE102014014301A1 (de) Verfahren und Einrichtung zum Verwalten globaler Chip-Energie auf einem Chip-internen Mehrkernsystem
DE112016001481T5 (de) Unterspannungserkennung und leistungsdrosselung
DE102019133129A1 (de) Mehrphasenprogrammierung mit symmetrischer gray-codierung
DE102006048319A1 (de) Multichip-Halbleiterspeicherelement
DE102006053750A1 (de) Halbleiterplattensteuerbauelement und Verfahren zum Bereitstellen eines Taktsignals für ein Halbleiterplattensteuerbauelement
DE112018005427T5 (de) Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102017128711A1 (de) Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
DE102022106019A1 (de) Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion
DE102021111195A1 (de) System und Verfahren zur On-Chip-Speicher- (OCM-) Port-Drosselung für Maschinenlern-Operationen
DE102005035137A1 (de) Nichtflüchtiges Speicherbauelement, Informationsverarbeitungsvorrichtung und zugehöriges Steuerverfahren
DE102021005946A1 (de) Verwaltung der digital gesteuerten ladungspumpen-operation in einem speicher-untersystem
DE112018006392T5 (de) Leistungspegeleinstellungen in arbeitsspeichervorrichtungen
DE112013000770B4 (de) Höhere Auslagerungseffizienz

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE