DE102013114069A1 - Memory system for changing operating characteristics of storage device i.e. solid state drive, has storage including adaptation controller to receive command from configuration controller and to determine whether to enable feature - Google Patents

Memory system for changing operating characteristics of storage device i.e. solid state drive, has storage including adaptation controller to receive command from configuration controller and to determine whether to enable feature Download PDF

Info

Publication number
DE102013114069A1
DE102013114069A1 DE201310114069 DE102013114069A DE102013114069A1 DE 102013114069 A1 DE102013114069 A1 DE 102013114069A1 DE 201310114069 DE201310114069 DE 201310114069 DE 102013114069 A DE102013114069 A DE 102013114069A DE 102013114069 A1 DE102013114069 A1 DE 102013114069A1
Authority
DE
Germany
Prior art keywords
storage device
configuration
host
storage
request information
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
DE201310114069
Other languages
German (de)
Inventor
Yang Seok KI
Seongnam Kwon
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from US13/733,309 external-priority patent/US20130185482A1/en
Priority claimed from US13/936,992 external-priority patent/US9239786B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013114069A1 publication Critical patent/DE102013114069A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Abstract

The system has a host (100) including a configuration controller (110) to receive an input command and to output a configuration command corresponding to the input command. A storage (200) includes multiple features and an adaptation controller (210) to receive the configuration command from the configuration controller and to determine whether to enable each of the features, where the first feature drives the storage to preferentially process a read command, and the second feature drives the storage to preferentially process a write command among commands input to the storage. An independent claim is also included for a storage of a memory system.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGENCROSS-REFERENCE TO RELATED APPLICATIONS

Diese Anmeldung ist eine Continuation-in-Part-Anmeldung der Patentanmeldung mit der Seriennummer 13733309 mit dem Titel „Speichersystem, welches einen Speicher verwendet, welcher Firmware mit einer Mehrzahl von Funktionen hat”, welche am 3. Januar 2013 eingereicht wurde, welche unter 35 U.S.C. § 119 die Priorität der koreanischen Patentanmeldung Nr. 10-2012-0005764 beansprucht, welche am 18. Januar 2012 beim Koreanischen Amt für Gewerblichen Rechtsschutz (Korean Intellectual Property Office) eingereicht wurde, und all die Vorzüge, welche daraus unter 35 U.S.C. § 119 entstehen, wobei die Inhalte von beiden Anmeldungen hierin durch Bezugnahme mit eingebunden sind.This application is a continuation-in-part application of patent application Serial No. 13733309 entitled "Memory system using a memory having firmware with a plurality of functions" filed on January 3, 2013, which is incorporated herein by reference USC § 119 the priority of Korean Patent Application No. 10-2012-0005764 filed with the Korean Intellectual Property Office on January 18, 2012, and all the benefits that result under 35 USC § 119, the contents of both applications being incorporated herein by reference.

HINTERGRUNDBACKGROUND

Moderne Speichersysteme weisen typischerweise mehrere allein operierende (standalone) Speichervorrichtungen auf, welche passiv sind, und deren Leistungsfähigkeitscharakteristiken im Allgemeinen fixiert bzw. festgelegt sind, wenn die Herstellung vollendet ist. Ein Prozessor (beispielsweise RAID-Controller bzw. -Steuerung), welcher Software (Firmware) ausführt, ist notwendig, um Intelligenz hinzuzufügen, um die Ansammlung von unintelligenten Speichervorrichtungen zu veranlassen, als eine Einheit zu arbeiten. Da Speichervorrichtungen, wie beispielsweise Festkörper-Laufwerke (SSDs = Solid State Drives) ebenso durch die Software oder Firmware gesteuert werden können, wurden Anstrengungen getätigt, Betriebscharakteristiken eines Festkörper-Laufwerks gemäß der Gebrauchsumgebung zu steuern.Modern memory systems typically include a plurality of standalone memory devices that are passive and whose performance characteristics are generally fixed when manufacturing is complete. A processor (eg, RAID controller) that executes software (firmware) is necessary to add intelligence to cause the accumulation of unintelligent memory devices to operate as a unit. Since storage devices such as Solid State Drives (SSDs) can also be controlled by the software or firmware, efforts have been made to control the operating characteristics of a solid state drive according to the environment of use.

Die traditionellen Herangehensweisen zum Erfüllen von Verwender-Qualifikationstests machen es notwendig, dass ein Hersteller Last-Minute-Ingenieur-Vorgänge vorsieht, um die Speichervorrichtungen für jeden Käufer anzupassen. Käufer wünschen typischerweise, ihre Software-Systeme zu rekalibrieren, wann immer neue Modelle von Speichervorrichtungen eingesetzt werden, da die Charakteristiken der Speichervorrichtungen weitgehend heterogen sind. Die Voraussetzungen jedoch für eine Speichervorrichtung sind oft nicht mit einer anderen Vorrichtung gültig. Folglich können herkömmliche bzw. traditionelle Anpassungs-Herangehensweisen nicht teilweise aufrechterhalten werden, da die Entwicklungs-Kosten des Herstellers mit der Anzahl von Speichervorrichtungen und den Käufern, welche eine Anpassung benötigen, zunehmen.Traditional approaches to completing user qualification tests require a manufacturer to provide last-minute engineering operations to customize the storage devices for each buyer. Buyers typically wish to recalibrate their software systems whenever new models of storage devices are used because the characteristics of the storage devices are largely heterogeneous. However, the requirements for a storage device are often not valid with another device. As a result, conventional adaptation approaches can not be maintained in part because the manufacturer's development cost increases with the number of storage devices and the purchasers in need of adjustment.

Demnach ist ein Rahmen, welcher eine leichte Rekonfiguration von Speichersystemen im Auftrag bzw. Interesse von Käufern ermöglicht, wichtig. Beispielsweise stellt eine Festkörper-Laufwerk(SSD = Solid State Disk)-Optimierungssoftware, wie beispielsweise MagicianTM von Samsung die Leistungsfähigkeit von SSDs für ein Käufersystem ein. Käufer haben jedoch sehr beschränkte Optimierungsoptionen, die Optimierungsmetrik ist Vorrichtungs-orientiert im Gegensatz zu Verwender-orientiert und die Optimierung ist nicht gesteuert oder quantifizierbar. Zusätzlich können sich Speichervorrichtungscharakteristiken über die Zeit aufgrund der Funktionsminderung der Speichermedien wie beispielsweise einem Verschleiß und einer Alterung ändern. Dies kann die anfängliche Annahme verletzen, welche der Käufer hatte, welche nicht leicht erkannt werden kann, bis Fehlfunktionen auf dem User-Level auftreten.Thus, a framework that enables easy reconfiguration of storage systems on behalf of buyers is important. For example, solid state drive (SSD) optimization software, such as Samsung's Magician ™, adjusts the performance of SSDs for a buyer's system. However, buyers have very limited optimization options, the optimization metric is device-oriented rather than user-oriented, and optimization is uncontrolled or quantifiable. Additionally, memory device characteristics may change over time due to degradation of the storage media, such as wear and aging. This may violate the initial assumption that the buyer had, which can not easily be detected, until user-level malfunctions occur.

Ein anderer Typ von einem rekonfigurierbaren Speichervorrichtungsvorgang ermöglicht es einem Käufer, individuelle Funktionen auszuwählen, um eine Speichervorrichtung zu konfigurieren. Bei dieser Herangehensweise ermöglicht es, anstelle eines Anpassens eines Käufersystems an eine neue Speichervorrichtung, eine rekonfigurierbare Speichervorrichtung dem Käufer, die Speichervorrichtungen an ihre Systeme anzupassen, was die Wartung und einen Upgrade-Vorgang vereinfacht.Another type of reconfigurable storage device operation allows a buyer to select individual functions to configure a storage device. In this approach, instead of adapting a buyer's system to a new storage device, a reconfigurable storage device allows the buyer to customize the storage devices to their systems, which simplifies maintenance and an upgrade process.

Obwohl rekonfigurierbare Speichervorrichtungen mehr Flexibilität in der Leistungsfähigkeitsoptimierung vorsehen können und es den Käufern erlauben, eine Anpassung durchzuführen, verbleiben mehreren Herausforderungen. Eine Herausforderung ist, dass der Rekalibrierungsvorgang ein kombinatorisches Problem bildet, dessen Komplexität exponentiell mit der Anzahl von Funktionen der anzupassenden Speichervorrichtung ansteigt. In anderen Worten gesagt sehen gegenwärtige Herangehensweisen kein systematisches Konfigurationsverfahren zur Funktionsauswahl vor. Beispielsweise kann es, wenn ein Käufer den Wert von drei Funktionen ändert, schwierig für den Käufer sein, zu bestimmen, welchen Effekt die Kombination von Funktionen auf die Leistungsfähigkeit der Speichervorrichtung haben wird.Although reconfigurable memory devices can provide more flexibility in performance optimization and allow buyers to make an adjustment, several challenges remain. One challenge is that the recalibration process is a combinatorial problem whose complexity increases exponentially with the number of functions of the memory device to be adapted. In other words, current approaches do not provide a systematic configuration method for function selection. For example, when a buyer changes the value of three functions, it may be difficult for the buyer to determine what effect the combination of functions will have on the performance of the storage device.

Eine ähnliche Herausforderung ist, dass die Auswahl von Funktionen durch den Käufer durch eine Software-Verwenderschnittstelle bewerkstelligt wird, in welcher der Käufer die Funktionen manuell auswählt. Eine manuelle Auswahl von Funktionen ohne ein systematisches Konfigurationsverfahren oder Leistungsfähigkeits-Richtlinien-Ergebnisse ist im Wesentlichen ein Vorgang von Versuch und Irrtum.A similar challenge is that the selection of functions by the buyer is accomplished by a software user interface in which the buyer manually selects the functions. Manual selection of functions without a systematic configuration procedure or performance guideline results is essentially a trial and error process.

Letztendlich befasst sich der herkömmliche Rekonfigurationsvorgang nicht mit den Wirkungen von Speichervorrichtungscharakteristiken, welche sich über die Zeit aufgrund der Funktionsminderung des Speichermediums ändern. Solche Änderungen können die Originalauswahl von Funktionen für eine bestimmte Verbrauchsumgebung nicht weiterhin gültig machen.Finally, the conventional reconfiguration process does not address the effects of memory device characteristics which change over time due to the degradation of the storage medium. Such changes may not continue to validate the original selection of features for a particular consumer environment.

Demzufolge benötigt der Trend von Software-definiertem Speicher (SDS = Software-Defined Storage), bei welchem Speicherressourcen, welche durch eine Anwendung benötigt werden, durch Software definiert werden können und automatisch vorgehalten werden können, einen verbesserten rekonfigurierbaren Speichervorgang, welcher flexibler ist.As a result, the software-defined storage (SDS) trend in which storage resources required by an application can be software-defined and automatically retained requires an improved reconfigurable storage process that is more flexible.

KURZFASSUNGSHORT VERSION

Die beispielhafte Ausführungsform sieht Verfahren und Systeme zum Rekonfigurieren von Speichervorrichtungen vor. Aspekte einer beispielhaften Umgebung weisen ein Empfangen von Verwender-Anforderungsinformationen für eine Speichervorrichtung und ein automatisches Erzeugen von Funktionseinstellungen für die Speichervorrichtung aus den Verwender-Anforderungsinformationen und eines Vorrichtungsprofils für die Speichervorrichtung; und ein Verwenden der Funktionseinstellungen, um automatisch die Speichervorrichtung in eine oder mehrere logische Vorrichtungen zu rekonfigurieren, welche unabhängige Verhaltenscharakteristiken haben, auf. Weitere beispielhafte Ausführungsformen weisen ein Empfangen von einer Rückmeldung von der Speichervorrichtung betreffend Laufzeit-Leistungsfähigkeitsdaten wenigstens eines der Speichervorrichtung und der logischen Vorrichtungen; und in Antwort auf eine Bestimmung, dass die Laufzeit-Leistungsfähigkeitsdaten die Verwender-Anforderungsinformationen nicht erfüllen, ein dynamisches Anpassen der Konfiguration der einen oder mehreren logischen Vorrichtungen, um die Verwender-Anforderungsinformationen zu erfüllen, auf.The exemplary embodiment provides methods and systems for reconfiguring storage devices. Aspects of an example environment include receiving user request information for a storage device and automatically generating function settings for the storage device from the user request information and a device profile for the storage device; and using the function settings to automatically reconfigure the storage device into one or more logical devices that have independent performance characteristics. Further exemplary embodiments include receiving feedback from the memory device regarding runtime performance data of at least one of the memory device and the logical devices; and in response to a determination that the runtime performance data does not satisfy the user request information, dynamically adjusting the configuration of the one or more logical devices to satisfy the user request information.

Gemäß dem Verfahren und dem System, welche hierin offenbart sind, sehen die beispielhaften Ausführungsformen eine Rekonfigurationsvorgang vor, welcher die Notwendigkeit beseitigt, Konfigurationssoftware auf einem Host zu modifizieren bzw. abzuändern, um unterschiedliche Speichervorrichtungen pro Verwenderanforderung zu konfigurieren. Die beispielhaften Ausführungsformen sind im Gegensatz zu herkömmlichen Verfahren, in welchem die Konfigurationssoftware des Host modifiziert werden müsste, um verschiedene Speichervorrichtungen anzupassen. Zusätzlich ist, da die beispielhaften Ausführungsformen automatisch die Verwender-Anforderungen in Funktionseinstellungen übersetzen, die Notwendigkeit für den Verwender, manuell Kombinationen von Funktionen auszuwählen, wenn er die Speichervorrichtung konfiguriert, beseitigt.In accordance with the method and system disclosed herein, the exemplary embodiments provide a reconfiguration process that eliminates the need to modify configuration software on a host to configure different storage devices per user request. The exemplary embodiments are in contrast to conventional methods in which the host's configuration software would need to be modified to accommodate different memory devices. Additionally, as the exemplary embodiments automatically translate the user requirements into functional settings, the need for the user to manually select combinations of functions when configuring the memory device is eliminated.

KURZE BESCHREIBUNG VON EINIGEN ANSICHTEN DER ZEICHNUNGENBRIEF DESCRIPTION OF SOME VIEWS OF THE DRAWINGS

Diese und/oder andere Merkmale und Nutzen des vorliegenden allgemeinen erfinderischen Konzepts werden aus der folgenden Beschreibung der Ausführungsformen offensichtlicher und leichter anerkannt werden, zusammengenommen in Verbindung mit den beigefügten Zeichnungen, von welchen:These and / or other features and advantages of the present general inventive concept will become more readily apparent from the description of the embodiments which follows, taken in conjunction with the accompanying drawings, in which:

1 ein Blockschaltbild ist, welches eine beispielhafte Ausführungsform eines rekonfigurierbaren Speichersystems veranschaulicht; 1 Fig. 12 is a block diagram illustrating an exemplary embodiment of a reconfigurable memory system;

2A und 2B Flussdiagramme sind, welche eine Ausführungsform eines Vorgangs zum Rekonfigurieren eines Speichersystems veranschaulichen; 2A and 2 B Are flowcharts illustrating an embodiment of a process for reconfiguring a storage system;

3 ein Flussdiagramm ist, welches im weiteren Detail den Vorgang zum Konfigurieren der rekonfigurierbaren Speichervorrichtung veranschaulicht; 3 Fig. 10 is a flowchart illustrating in further detail the process for configuring the reconfigurable storage device;

4 ein Flussdiagramm ist, welches einen beispielhaften Umwandlungsvorgang veranschaulicht, welcher durch den Konfigurationsplaner durchgeführt wird, um einen Plan zu erzeugen; 4 Fig. 10 is a flowchart illustrating an exemplary conversion process performed by the configuration planner to generate a plan;

5 ein Flussdiagramm ist, welches eine Verarbeitung der Konfigurationskomponente bzw. des Konfigurationsbestandteils an der rekonfigurierbaren Speichervorrichtung veranschaulicht; 5 Figure 3 is a flowchart illustrating processing of the configuration component or configuration component on the reconfigurable storage device;

6 ein Flussdiagramm ist, welches einen Ausführungsfluss des Konfigurationsratgebers gemäß einer Ausführungsform veranschaulicht; und 6 FIG. 10 is a flowchart illustrating an execution flow of the configuration advisor according to an embodiment; FIG. and

7 ein Blockschaltbild ist, welches eine weitere Ausführungsform für ein rekonfigurierbares Speichersystem veranschaulicht. 7 Figure 12 is a block diagram illustrating another embodiment for a reconfigurable memory system.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Bezug wird nun im Detail auf die Ausführungsformen des vorliegenden allgemeinen erfinderischen Konzepts genommen werden, von welchem Beispiele in den beiliegenden Zeichnungen veranschaulicht sind, wobei gleiche Bezugszeichen sich durchgehend auf gleiche Elemente beziehen. Die Ausführungsformen sind untenstehend beschrieben, um das vorliegende allgemeine erfinderische Konzept während einer Bezugnahme auf die Figuren zu erklären.Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. The embodiments are described below to explain the present general inventive concept while referring to the figures.

Vorteile und Merkmale der vorliegenden Erfindung und Verfahren zum Erreichen derselben können leichter durch eine Bezugnahme auf die folgende detaillierte Beschreibung von Ausführungsformen und die beigefügten Zeichnungen verstanden werden. Das vorliegende allgemeine erfinderische Konzept kann jedoch in vielen unterschiedlichen Formen ausgeführt werden und sollte nicht als auf die Ausführungsformen, welche hierin diskutiert sind, beschränkt betrachtet werden. Vielmehr sind diese Ausführungsformen vorgesehen, so dass diese Offenbarung sorgfältig und vollständig sein wird, und das Konzept des allgemeinen erfinderischen Konzepts Fachleuten vollständig übermitteln wird, und das vorliegende allgemeine erfinderische Konzept nur durch die beigefügten Ansprüche definiert bzw. beschränkt sein wird. In den Zeichnungen sind die Dicken von Schichten und Bereichen zur Klarheit überhöht.Advantages and features of the present invention and methods for achieving the same may be more readily understood by reference to the following detailed description of embodiments and the accompanying drawings. However, the present inventive concept may be embodied in many different forms and should not be considered as limited to the embodiments discussed herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and the concept of the general inventive concept will be fully conveyed to those skilled in the art, and the present generic inventive concept will be defined only by the appended claims. In the drawings, the thicknesses of layers and regions are exaggerated for clarity.

Die Verwendung der Begriffe „einer/eine/eines” und „der/die/das” und ähnliche Bezugnahmen im Zusammenhang des Beschreibens der Erfindung (insbesondere im Zusammenhang der folgenden Ansprüche) müssen als sowohl den Singular als auch den Plural umfassend betrachtet werden, solang nicht anderweitig hierin angezeigt oder deutlich durch den Zusammenhang widersprochen ist. Die Begriffe „aufweisend”, „hat”, „einschließlich” und „enthaltend” müssen als offene Begriffe (d. h. mit einer Bedeutung „enthaltend aber nicht beschränkt auf”) betrachtet werden, soweit nicht anderweitig angemerkt ist.The use of the terms "one" and "one" and "the" and similar references in the context of describing the invention (particularly, in the context of the following claims) must be considered to include both the singular and the plural, as long as so not otherwise indicated herein or clearly contradicted by the context. The terms "having," "having," "including," and "containing" must be considered open-ended (i.e., meaning "including but not limited to") unless otherwise noted.

Der Begriff „Komponente” bzw. „Bestandteil” oder „Modul” bedeutet, wenn er hierin verwendet ist, ist jedoch nicht beschränkt auf eine Software- oder Hardware-Komponente wie beispielsweise eine feldprogrammierbare Gatter-Anordnung bzw. ein Field Programmable Gate Array (FPGA = Field Programmable Gate Array) oder eine anwendungsspezifische integrierte Schaltung (ASIC = Application Specific Integrated Circuit), welche bestimmte Aufgaben durchführt. Eine Komponente oder ein Modul kann vorteilhaft konfiguriert sein, so dass es sich in dem adressierbaren Speichermedium befindet und konfiguriert ist, um einen oder mehrere Prozessoren auszuführen. Demnach kann eine Komponente oder ein Modul beispielhaft Komponenten wie beispielsweise Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Aufgabenkomponenten bzw. Task-Komponenten, Vorgänge, Funktionen, Attribute, Prozeduren, Subroutinen, Segmente von Programmcode, Treiber, Firmware, Mikrocode, Schaltungen, Daten, Datenbanken, Datenstrukturen, Tabellen, Arrays und Variablen aufweisen. Die Funktionalität, welche für die Komponenten und Komponenten oder Module vorgesehen ist kann in wenigeren Komponenten oder Komponenten oder Modulen kombiniert sein oder weiterhin in zusätzlichen Komponenten und Komponenten oder Modulen getrennt sein.As used herein, the term "component" or "component" or "module" means, but is not limited to, a software or hardware component such as a field programmable gate array (FPGA) = Field Programmable Gate Array) or an application specific integrated circuit (ASIC), which performs certain tasks. A component or module may be advantageously configured to reside in the addressable storage medium and configured to execute one or more processors. Thus, a component or module may illustratively include components such as software components, object-oriented software components, class components and task components, operations, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases , Data structures, tables, arrays, and variables. The functionality provided for the components and components or modules may be combined into fewer components or components or modules, or further separated into additional components and components or modules.

Sofern nicht anderweitig definiert, haben alle technischen und wissenschaftlichen Begriffe, welche hierin verwendet werden, dieselbe Bedeutung, wie sie allgemein durch einen Fachmann, zu dessen Gebiet diese Erfindung gehört, verstanden werden. Es sei angemerkt, dass die Verwendung von einem beliebigen und allen Beispielen oder beispielhaften Begriffen, welche hierin vorgesehen sind, lediglich vorgesehen ist, um die Erfindung besser auszuleuchten, und nicht eine Beschränkung des Umfangs der Erfindung ist, solange nicht anderweitig spezifiziert. Weiterhin sollen, solange nicht anderweitig definiert, alle Begriffe, welche in allgemein verwendeten Wörterbüchern definiert sind, nicht übermäßig interpretiert werden.Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It should be understood that the use of any and all examples or exemplary terms provided herein is intended merely to better illuminate the invention, and not to limit the scope of the invention, unless otherwise specified. Furthermore, unless otherwise defined, all terms defined in commonly used dictionaries should not be overly interpreted.

1 ist ein Blockschaltbild, welches eine beispielhafte Ausführungsform eines rekonfigurierbaren Speichersystems veranschaulicht. Das System weist einen Host 100 auf, welcher mit einer rekonfigurierbaren Speichervorrichtung 102 gekoppelt ist. In einer Ausführungsform können Basiskomponenten bzw. Basisbestandteile des Host 100 wenigstens einen Prozessor 104, einen Speicher 106 und einen Host-Controller bzw. eine Host-Steuerung 108 aufweisen. In einer Ausführungsform können Basiskomponenten der rekonfigurierbaren Speichervorrichtung 102 einen Speichercontroller bzw. eine Speichersteuerung 111, einen Hauptspeicher 112, wenigstens einen Prozessor 114 und einen Speicher 116 aufweisen. 1 FIG. 10 is a block diagram illustrating an exemplary embodiment of a reconfigurable memory system. FIG. The system has a host 100 on which with a reconfigurable storage device 102 is coupled. In one embodiment, basic components of the host 100 at least one processor 104 , a store 106 and a host controller or host controller 108 exhibit. In an embodiment, basic components of the reconfigurable memory device 102 a memory controller or memory controller 111 , a main memory 112 , at least one processor 114 and a memory 116 exhibit.

Der Hauptspeicher 112 implementiert native bzw. eingebaute Speicherfunktionalitäten und sieht den Speicherplatz für die rekonfigurierbare Vorrichtung 102 vor. Der Hauptspeicher 112 kann einen nichtflüchtigen Speicher wie beispielsweise einen Flash (beispielsweise implementiert als ein Festkörper-Laufwerk (SSD = Solid State Drive)), einen PCRAM, einen RRAM, einen STT-RAM und dergleichen und eine Speicherverwaltungsfirmware (nicht gezeigt) wie beispielsweise FTL (Flash Translation Layer), GC (Garbage Collector) und dergleichen aufweisen, ist jedoch nicht darauf beschränkt. Eine oder mehrere logische Vorrichtungen 121 können zu einem Abschnitt des Hauptspeichers 112 beitragen. Der tatsächliche physikalische Speicherplatz, welcher für die logischen Vorrichtungen 121 alloziert wird, hängt von den Raum- bzw. Platzeffizienz-Anforderungen ab. Eine logische Vorrichtung mit Thin Provisioning bzw. schlanker Speicherzuweisung kann weniger physikalischen Speicherplatz besetzen als eine logische Vorrichtung mit Thick Provisioning bzw. einer nichtschlanken Speicherzuweisung.The main memory 112 implements native or built-in storage functionalities and sees the storage space for the reconfigurable device 102 in front. The main memory 112 can one nonvolatile memory such as a flash (implemented, for example, as a solid state drive (SSD)), a PCRAM, an RRAM, an STT RAM, and the like, and a memory management firmware (not shown) such as FTL (Flash Translation Layer). , GC (Garbage Collector) and the like, but is not limited thereto. One or more logical devices 121 can go to a section of main memory 112 contribute. The actual physical space required for the logical devices 121 depends on space or space efficiency requirements. A thin-provisioned logical device may occupy less physical memory space than a thick-provisioned logical device.

Während eines normalen Betriebs kann der Host-Controller 108 Befehle 124, welche einer Inhalts-Lese-/Schreib-Operation zugeordnet sind, zu einem Speichercontroller 111 ausgeben, um des dem Host 100 zu ermöglichen, Inhalte, welche in einem Hauptspeicher 112 gespeichert sind, zu verarbeiten, oder neue Inhalte in dem Hauptspeicher 112 zu speichern. Hier kann das Verarbeiten der Inhalte in dem Host 100 ein Anzeigen oder Drucken der Inhalte in der Form von Bildern und Dokumenten, eine Wiedergabe der Inhalte in der Form von Audio und/oder Video und ein Installieren oder Ausführen der Inhalte in der Form einer Anwendung wie beispielsweise einem Computerprogramm auf einer funktionalen Einheit wie beispielsweise dem Prozessor 104 aufweisen.During normal operation, the host controller may 108 commands 124 which are associated with a content read / write operation to a memory controller 111 spend to the host's 100 to allow content to be stored in a main memory 112 are stored, processed, or new content in main memory 112 save. Here can be processing the content in the host 100 displaying or printing the contents in the form of images and documents, reproducing the contents in the form of audio and / or video and installing or executing the contents in the form of an application such as a computer program on a functional entity such as the processor 104 exhibit.

Der Speichercontroller 111 empfängt den Befehl, welcher den Inhalten zugeordnet ist, von dem Host-Controller 108 und steuert Inhalte 126, welche in dem Hauptspeicher 112 gespeichert sind, gemäß dem empfangenen Befehl. Beispielsweise kann, wenn der empfangene Befehl ein Lesebefehl ist, der Speichercontroller 111 die Inhalte 126, welche in dem Hauptspeicher 112 gespeichert sind, für den Host 100 vorsehen, und wenn der empfangene Befehl ein Schreibbefehl ist, kann der Speichercontroller 111 neue Inhalte 126 von dem Host 100 empfangen und die empfangenen Inhalte in dem Hauptspeicher 112 speichern.The memory controller 111 receives the command associated with the contents from the host controller 108 and controls content 126 which are in main memory 112 stored in accordance with the received command. For example, if the received command is a read command, the memory controller 111 the content 126 which are in main memory 112 are stored for the host 100 provide, and if the received command is a write command, the memory controller 111 new content 126 from the host 100 receive and the received contents in the main memory 112 to save.

Weiterhin können, obwohl der Host-Controller 108 und der Speichercontroller 111 als getrennte Komponenten gezeigt sind, in einer alternativen Ausführungsform, der Host-Controller 108 und der Speichercontroller 111 als eine integrierte Einheit implementiert sein, falls dies notwendig ist.Furthermore, although the host controller 108 and the memory controller 111 shown as separate components, in an alternative embodiment, the host controller 108 and the memory controller 111 be implemented as an integrated unit, if necessary.

Wie obenstehend beschrieben, ist ein Problem bei den herkömmlichen Speichervorrichtungen, dass sie fixierte Vorrichtungen mit wenig eingebauter Intelligenz sind. Demzufolge kann der Vorgang des Anpassens der Speichervorrichtung an eine Käuferanforderung kostenintensiv und zeitverbrauchend sein.As described above, a problem with the conventional memory devices is that they are fixed devices with little built-in intelligence. As a result, the process of adapting the storage device to a buyer request may be costly and time consuming.

Gemäß der beispielhaften Ausführungsform ist der Host 100 weiterhin mit einer Konfigurations-Übersetzungskomponente 110 vorgesehen, während die rekonfigurierbare Speichervorrichtung 102 mit einer Konfigurationskomponente 118, einem Funktionensatz 120 und einem Vorrichtungsprofil 122 vorgesehen ist. In einer Ausführungsform kann die Konfigurations-Übersetzungskomponente 110 auf dem Host 100 konfiguriert sein, so dass sie Verwender-Anforderungen 123, welche Verhaltenscharakteristiken für die rekonfigurierbare Speichervorrichtung 102 beschreiben, empfängt und in einen Konfigurationsbefehl 128 umwandelt, welcher Funktionseinstellungen für die Verhaltenscharakteristiken für die rekonfigurierbare Speichervorrichtung 102 definiert. In einer Ausführungsform können Funktionen der Konfigurations-Übersetzungskomponente 110 durch getrennte Komponenten wie beispielsweise einen Konfigurationsplaner 136, einen Vorrichtungsprogrammierer 136 und einen Konfigurationsratgeber 138 durchgeführt werden.According to the exemplary embodiment, the host is 100 continue with a configuration translation component 110 provided while the reconfigurable storage device 102 with a configuration component 118 , a feature set 120 and a device profile 122 is provided. In one embodiment, the configuration translation component 110 on the host 100 be configured so that they user requirements 123 which behavioral characteristics for the reconfigurable storage device 102 describe, receive and in a configuration command 128 which function settings for the behavioral characteristics for the reconfigurable storage device 102 Are defined. In one embodiment, functions of the configuration translation component 110 by separate components such as a configuration planner 136 , a device programmer 136 and a configuration advisor 138 be performed.

Folglich kann die Konfigurationskomponente 118 auf der rekonfigurierbaren Speichervorrichtung 102 konfiguriert sein, so dass sie den Konfigurationsbefehl 128 empfängt und die Funktionseinstellungen entsprechend dem Konfigurationsbefehl 128 implementiert, wodurch sie Verhaltenscharakteristiken der rekonfigurierbaren Speichervorrichtung 102 automatisch konfiguriert. Danach kann der Speichercontroller 110 Inhalte 126 zu/von dem Host 100 senden/empfangen, während der Hauptspeicher 112 gemäß den eingestellten Verhaltenscharakteristiken getrieben bzw. betrieben wird.Consequently, the configuration component 118 on the reconfigurable storage device 102 be configured, so that they have the configuration command 128 receives and the function settings according to the configuration command 128 implementing, thereby, behavioral characteristics of the reconfigurable storage device 102 automatically configured. Thereafter, the memory controller 110 content 126 to / from the host 100 send / receive while the main memory 112 is driven or operated according to the set behavioral characteristics.

In einem weiteren Aspekt der beispielhaften Ausführungsform kann während des Betriebs der rekonfigurierbaren Speichervorrichtung 102 die Konfigurations-Übersetzungskomponente 110 ein Feedback bzw. eine Rückmeldung 130 von der rekonfigurierbaren Speichervorrichtung 102 betreffend Leistungsfähigkeitscharakteristiken der rekonfigurierbaren Speichervorrichtung 102 empfangen und kann den Konfigurationsbefehl 128 (und demzufolge den Funktionssatz) entsprechend basierend auf der Rückmeldung 130 anpassen.In another aspect of the exemplary embodiment, during operation of the reconfigurable memory device 102 the configuration translation component 110 a feedback or a feedback 130 from the reconfigurable storage device 102 concerning performance characteristics of the reconfigurable storage device 102 receive and can the configuration command 128 (and consequently the function set) accordingly based on the feedback 130 to adjust.

In einer Ausführungsform sind die Konfigurations-Übersetzungskomponente 110 und die Konfigurationskomponente 118 als Softwarekomponenten implementiert. In einer anderen Ausführungsform können die Komponenten als eine Kombination von Hardware und Software implementiert sein. Obwohl die Konfigurations-Übersetzungskomponente 110 und die Konfigurationskomponente 118 als einzelne Komponenten gezeigt sind, kann die Funktionalität jeder in einer geringeren oder größeren Anzahl von Modulen/Komponenten kombiniert sein. Beispielsweise können in einer Ausführungsform der Speichercontroller 111 und der Host-Controller 108 beide auf dem Host 100 als eine integrierte Komponente oder als separate Komponenten implementiert sein.In one embodiment, the configuration translation component is 110 and the configuration component 118 implemented as software components. In another embodiment, the Components should be implemented as a combination of hardware and software. Although the configuration translation component 110 and the configuration component 118 As shown as individual components, the functionality of each can be combined in a smaller or larger number of modules / components. For example, in one embodiment, the memory controller 111 and the host controller 108 both on the host 100 be implemented as an integrated component or as separate components.

Ebenso könnte, obwohl die Verwender-Anforderungsinformationen 123 als dem Host 100 zugeführt gezeigt werden, in einer alternativen Ausführungsform die rekonfigurierbare Speichervorrichtung 102 angepasst sein, um die Verwender-Anforderungsinformationen 123 zu empfangen und die Verwender-Anforderungsinformationen 123 für den Host 100 vorzusehen.Likewise, although the user request information 123 as the host 100 supplied, in an alternative embodiment, the reconfigurable memory device 102 be adapted to the user request information 123 to receive and the user request information 123 for the host 100 provided.

Das rekonfigurierbare Speichersystem der beispielhaften Ausführungsformen kann auf einen breiten Bereich von Speichermärkten von einem Auftraggeber an ein Unternehmen angewandt werden, welches auf eine Platte bzw. Festplatte für eine einzelne alleinstehende Maschine (wie beispielsweise Desktop, Laptop, Workstation, Server und dergleichen), eine Speicheranordnung bzw. ein Speicher-Array, einen software-definierten Speicher (SDS = Software Defined Storage), einen anwendungsspezifischen Speicher, eine virtuelle Maschine (VM = Virtual Machine), eine virtuelle Desktop-Infrastruktur (VDI = Virtual Desktop Infrastructure), ein Inhalts-Verteilungsnetzwerk (CDN = Content Distribution Network) und dergleichen angewandt werden könnte.The reconfigurable storage system of the exemplary embodiments may be applied to a wide range of storage markets from a customer to a business which stores on a single standalone machine disk (such as desktop, laptop, workstation, server, and the like) a storage device or a storage array, software-defined storage (SDS), application-specific storage, a virtual machine (VM), a virtual desktop infrastructure (VDI), a content Distribution network (CDN = Content Distribution Network) and the like.

In einer Ausführungsform kann die rekonfigurierbare Speichervorrichtung 102 beispielsweise in einer Halbleitervorrichtung integriert sein, um eine Personal Computer Memory Card International Association (PCMCIA), einen Compact Flash (CF), eine Smart Media-Karte (SM, SMC), einen Speicher-Stick, eine Multimedia-Karte (MMC, RS-MMC, MMCmicro), eine SD-Karte (SD, miniSD, microSD, SDHC), eine Universal Flash-Speicher(UFS = Universal Flash Storage)-Vorrichtung und dergleichen zu bilden.In an embodiment, the reconfigurable memory device 102 For example, integrated into a semiconductor device may be a Personal Computer Memory Card International Association (PCMCIA), a Compact Flash (CF), a Smart Media Card (SM, SMC), a Memory Stick, a Multimedia Card (MMC, RS -MMC, MMCmicro), an SD card (SD, miniSD, microSD, SDHC), a universal flash memory (UFS = Universal Flash Storage) device and the like.

In einer Ausführungsform kann beispielsweise der Hauptspeicherteil 112 aus einer Mehrzahl von nichtflüchtigen Speicherchips, d. h. einer Mehrzahl von Flash-Speichern gebildet sein. Als ein anderes Beispiel kann der Hauptspeicherteil 112 aus nichtflüchtigen Speicherchips unterschiedlichen Typs (beispielsweise PRAM, FRAM, MRAM, etc.) anstelle von Flash-Speicherchips gebildet sein. Alternativ kann der Hauptspeicherteil 112 aus flüchtigen Speichern, d. h. DRAM oder SRAM gebildet sein, und kann einen Hybrid-Typ haben, wo zwei oder mehr Typen von Speichern gemischt sind.For example, in one embodiment, the main memory part 112 be formed of a plurality of nonvolatile memory chips, that is, a plurality of flash memories. As another example, the main memory part 112 of nonvolatile memory chips of different types (e.g., PRAM, FRAM, MRAM, etc.) instead of flash memory chips. Alternatively, the main memory part 112 may be formed of volatile memory, ie, DRAM or SRAM, and may have a hybrid type where two or more types of memories are mixed.

Die 2A und 2B sind Flussdiagramme, welche eine Ausführungsform eines Vorgangs zum Rekonfigurieren eines Speichersystems veranschaulichen. 2A ist ein Flussdiagramm, welches einen Konfigurationsvorgang zum Rekonfigurieren der rekonfigurierbaren Speichervorrichtung nach Anforderungen eines Verwenders veranschaulicht, während 2B ein Flussdiagramm ist, welches den Vorgang zum Konfigurieren der rekonfigurierbaren Speichervorrichtung 102 während des Betriebs des rekonfigurierbaren Speichersystems veranschaulicht.The 2A and 2 B FIG. 10 are flowcharts illustrating one embodiment of a process for reconfiguring a storage system. FIG. 2A FIG. 10 is a flow chart illustrating a configuration process for reconfiguring the reconfigurable storage device as required by a user 2 B Fig. 10 is a flow chart illustrating the process for configuring the reconfigurable storage device 102 during operation of the reconfigurable storage system.

Bezug nehmend auf 2A kann der Vorgang dadurch beginnen, dass die Konfigurations-Übersetzungskomponente 110 Verwender-Anforderungsinformationen 123 für eine Speichervorrichtung empfängt und automatisch Funktionseinstellungen für die Speichervorrichtung aus den Verwender-Anforderungsinformationen und ein Vorrichtungsprofil für die Speichervorrichtung (Block 200) erzeugt. Die Konfigurationskomponente 118 kann dann die Funktionseinstellungen verwenden, um die Speichervorrichtung automatisch in eine oder mehrere logische Vorrichtungen 121, welche unabhängige Verhaltenscharakteristiken haben, zu rekonfigurieren (Block 202).Referring to 2A The process may begin by having the configuration translation component 110 Users request information 123 for a storage device and automatically receives function settings for the storage device from the user request information and a device profile for the storage device (block 200 ) generated. The configuration component 118 can then use the feature settings to automatically place the storage device in one or more logical devices 121 which have independent behavioral characteristics to reconfigure (Block 202 ).

Bezug nehmend auf 2B ist ein Flussdiagramm, welches den Vorgang zum Konfigurieren der rekonfigurierbaren Speichervorrichtung 102 während des Betriebs des rekonfigurierbaren Speichersystems veranschaulicht, gezeigt. In dieser Ausführungsform empfängt die Konfigurations-Übersetzungskomponente 110 eine Rückmeldung 130 von der Speichervorrichtung betreffend Laufzeit-Leistungsfähigkeitsdaten 134 wenigstens eines der Speichervorrichtung und der logischen Vorrichtungen (Block 204). In Antwort auf eine Bestimmung, dass die Laufzeit-Leistungsfähigkeitsdaten die Verwender-Anforderungsinformationen nicht erfüllen, passt die Konfigurations-Übersetzungskomponente 110 dynamisch die Konfiguration der einen oder mehreren logischen Vorrichtungen an, um die Verwender-Anforderungsinformationen zu erfüllen (Block 206).Referring to 2 B FIG. 10 is a flow chart illustrating the process for configuring the reconfigurable storage device. FIG 102 during operation of the reconfigurable memory system. In this embodiment, the configuration translation component receives 110 feedback 130 from the storage device regarding runtime performance data 134 at least one of the storage device and the logical devices (block 204 ). In response to a determination that the runtime performance data does not satisfy the user request information, the configuration translation component fits 110 dynamically configure the one or more logical devices to satisfy the user request information (block 206 ).

Ein Vorteil des rekonfigurierbaren Speichersystems ist, dass die Speicherverwaltung der Konfigurations-Übersetzungskomponente 110 (d. h. die Verwender-Software) über neuere konfigurierbare Vorrichtungen vereinfacht werden kann, da die beispielhaften Ausführungsformen Eigenheiten und die Rekonfigurationskomplexität von Speichervorrichtungen abstrahieren. Ein anderer Vorteil ist, dass die Verwender-Software, welche neue konfigurierbare Speichervorrichtungen verwendet, unabhängig von Modellen von Speichervorrichtungen virtuell konstant verbleiben kann, da die Verwender-Software ihre eigene logische Vorrichtung aus den rekonfigurierbaren Speichervorrichtungen dynamisch nach den Verwender-Anforderungen definieren und erzeugen kann.An advantage of the reconfigurable storage system is that the memory management of the configuration translation component 110 (ie the user software) can be simplified via newer configurable devices, as the example embodiments have peculiarities and the Abstract reconfiguration complexity of storage devices. Another advantage is that the user software using new configurable storage devices can remain virtually constant regardless of models of storage devices because the user software can dynamically define and generate its own logical device from the reconfigurable storage devices according to the user requirements ,

Bezug nehmend wiederum auf 1 können gemäß einem anderen Aspekt der beispielhaften Ausführungsform die Verwender-Anforderungsinformationen 123 eine High-Level-Beschreibung bzw. Beschreibung auf hoher Ebene der Verhaltenscharakteristiken der rekonfigurierbaren Speichervorrichtung 102 aufweisen, im Gegensatz zu aktuellen Werten für unterschiedliche Funktionen. Gemäß einer Ausführungsform kann die High-Level-Beschreibung eine Service Level Vereinbarung bzw. eine Dienstgütevereinbarung (SLA = Service Level Agreement) für die rekonfigurierbare Speichervorrichtung 102 aufweisen. SLAs sind gemeinhin Serviceverträge bzw. Servicevereinbarungen, welche zwischen zwei Parteien wie beispielsweise einem Käufer und einem Hersteller geschlossen werden.Referring again to 1 According to another aspect of the exemplary embodiment, the user request information 123 a high-level description or description at high level of the behavioral characteristics of the reconfigurable memory device 102 as opposed to current values for different functions. According to one embodiment, the high-level description may be a service level agreement (SLA) for the reconfigurable storage device 102 exhibit. SLAs are commonly service contracts or service agreements concluded between two parties, such as a buyer and a manufacturer.

Gemäß einer weiteren Ausführungsform kann die High-Level-Beschreibung weiterhin Servicequalitäts bzw. Dienstgüte(QoS = Quality of Service)-Anforderungen aufweisen, welche in einer Ausführungsform Teil der SLA sind. In einer anderen Ausführungsform jedoch kann die QoS getrennt von der SLA sein, wenn der Verwender bzw. User nur an einem Leistungsfähigkeitsaspekt interessiert ist. QoSs können in den beispielhaften Ausführungsformen Leistungsfähigkeitscharakteristiken der Speichervorrichtung in Form der Latenz, IOPS, der Bandbreite, Jitter bzw. Bildinstabilitäten bzw. Bildschwankungen, WAF/RAF aufweisen, welche zum Definieren der detaillierten Leistungsfähigkeitserwartung des Verwenders sind. Beispielsweise kann es, nachdem eine virtuelle Vorrichtung erzeugt ist, wünschenswert sein, nur die QoS anzupassen anstelle des Erzeugens einer neuer logischen Vorrichtung. Ein automatisches Konfigurieren der rekonfigurierbaren Speichervorrichtung 102 unter Verwendung der SLA und QoS, wie hierin offenbart, führt dazu, dass die Konfiguration in einer quantitativen Art und Weise bewerkstelligt wird.According to another embodiment, the high-level description may further include quality of service (QoS) requirements, which in one embodiment are part of the SLA. In another embodiment, however, the QoS may be separate from the SLA if the user is only interested in a performance aspect. QoSs, in the exemplary embodiments, may include performance characteristics of the memory device in terms of latency, IOPS, bandwidth, jitter, WAF / RAF, which are for defining the detailed performance expectancy of the user. For example, after a virtual device is created, it may be desirable to adjust only the QoS rather than creating a new logical device. An automatic configuration of the reconfigurable storage device 102 using the SLA and QoS as disclosed herein results in the configuration being accomplished in a quantitative manner.

In einer Ausführungsform kann eine SLA Spezifikationen für eine beliebige Kombination von Attributen, welche in einem XML-Format ausgedrückt sind, aufweisen. Ein Attribut kann Leistungsfähigkeitscharakteristiken (QoS) von einer Speichervorrichtung wie beispielsweise eine Latenz und IOPS oder Nicht-Leistungsfähigkeitscharakteristiken wie beispielsweise eine Kapazität, ein Adressier-Modus und ein Schutz sein. Commitment bzw. Verpflichtung ist die durchschnittliche Prozentzahl des QoS-Erfüllungsverhältnisses von Operationen. Die Reaktion ist, was der Host im Fall einer QoS-Verletzung erwartet. Die Kapazitätsspezifikation kann eine Menge bzw. einen Betrag von Datenraum und Raumersparnis spezifizieren. Die Kapazität kann eine Menge von Daten in dem Verwenderraum, nicht den aktuellen bzw. tatsächlichen Speicherplatz, welcher in der Vorrichtung alloziert ist, anzeigen. In diesem Sinne ist die Kapazitätsspezifikation unabhängig von dem Mechanismus, den die Vorrichtung aktuell bzw. tatsächlich verwendet, um dies zu implementieren, jedoch ist alles, was benötigt wird, eine Garantie, dass die Datenmenge auf dem User-Level bzw. Verwender-Level gespeichert werden kann. Beispielsweise alloziert eine Vorrichtung, welche eine Thick Provisioning- bzw. nichtschlanke Speicherzuweisungs-Technik anwendet, den aktuellen Platz bzw. Raum, wenn einer Anfrage stattgegeben wird, während eine Vorrichtung, welche eine Thin Provisioning- bzw. schlanke Speicherzuweisungs-Technik einsetzt, den Platz nicht im Voraus allozieren kann. Ähnlich kann der tatsächliche physikalische Platz bzw. Raum, welchen eine Vorrichtung mit einer Platz-Sparfunktion wie beispielsweise Over-Commitment bzw. Mehrfachvergabe, Kompression, De-Duplikation alloziert, viel kleiner sein als der Datenraum bzw. Datenplatz, den der Verwender anfordert.In one embodiment, an SLA may have specifications for any combination of attributes expressed in an XML format. An attribute may be performance characteristics (QoS) of a storage device such as latency and IOPS or non-performance characteristics such as capacity, addressing mode and protection. Commitment is the average percentage of QoS compliance of operations. The reaction is what the host expects in the event of a QoS violation. The capacity specification may specify an amount of data space and space savings. The capacity may indicate a lot of data in the user space, not the actual storage space allocated in the device. In this sense, the capacity specification is independent of the mechanism that the device is currently using to implement it, but all that is needed is a guarantee that the amount of data is stored at the user level can be. For example, an apparatus employing a thick provisioning technique allocates the current space when a request is granted, while a device employing a thin provisioning technique allocates the space can not allocate in advance. Similarly, the actual physical space a device allocates with a space-saving function, such as over-commitment, compression, de-duplication, may be much smaller than the data space that the user requests.

Die Adressier-Modus-Spezifikation kann die Art und Weise spezifizieren, in welcher Daten im Speicher zu adressieren sind: Byte-adressierbar, Wort-adressierbar und/oder Block-adressierbar. Beispielsweise ist eine Peripheral Component Interconnect Express(PCIe)-Vorrichtung Byte-adressierbar wie auch Block-adressierbar. Ähnlich kann ein Ein-Adressraum-Betriebssystem (Single Address Space Operating System) eine Byte-Adressierung über eine Block-adressierbare Vorrichtung emulieren. Die QoS sollte in dem Zusammenhang eines bestimmten Adressierungs-Modus interpretiert werden.The addressing mode specification may specify the manner in which data is to be addressed in memory: byte-addressable, word-addressable, and / or block-addressable. For example, a Peripheral Component Interconnect Express (PCIe) device is byte-addressable as well as block-addressable. Similarly, a single address space operating system can emulate byte addressing via a block addressable device. The QoS should be interpreted in the context of a particular addressing mode.

Die Schutzspezifikation kann eine Sicherheits- und Zugriffssteuerung spezifizieren. Eine Vorrichtung kann eine Verschlüsselung unterstützen und der Verwender kann einen bestimmten Verschlüsselungsalgorithmus (beispielsweise 128 Bit RSA, 256 AES) für seine Sicherheitsanforderungen verwenden. Der Verwender kann auch eine sichere Löschung von Daten benötigen mit dem Risiko der Unwiederherstellbarkeit für den Verwender, wenn die Daten gelöscht sind. Zusätzlich kann der Verwender Zugriffssteuerungen wie nur-lesen, schreibbar, einmal schreiben, auf dem Vorriuchtungs-Level definieren. Beispielsweise kann ein Wiederherstellungsabbild des Systems in einer einmal schreibbaren logischen Vorrichtung gespeichert sein.The protection specification may specify a security and access control. A device may support encryption and the user may use a particular encryption algorithm (e.g., 128-bit RSA, 256 AES) for its security requirements. The user may also require secure deletion of data with the risk of irreversibility to the user if the data is deleted. In addition, the user can define access controls such as read-only, write-once, write-once, at the query level. For example, a recovery image of the system may be stored in a write once logical device.

Die Leistungsfähigkeitsspezifikation kann eine Latenz, einen Datendurchsatz, eine Bandbreite und/oder Eingabe-/Ausgabe-Operationen pro Sekunde(IOPS = Input/Output Operations per Second)-Messungen spezifizieren, und so kann der Verwender detaillierte Leistungsfähigkeitsanforderungen für eine Vorrichtung haben. Beispielsweise müssen die Speichervorrichtungen, welche zum Speichern von Videoclips in einem Video-on-Demand-Server bzw. Video-auf-Anforderunge-Server verwendet werden, eine hohe sequentielle Lese-Leistungsfähigkeit aufweisen. Im Gegensatz dazu kann eine Speichervorrichtung, welche zum Verwalten von Metadaten verwendet wird, eine hohe IOPS (und eine geringe Latenz) benötigen. The performance specification may specify latency, data throughput, bandwidth, and / or input / output operations per second (IOPS) measurements, and so the user may have detailed performance requirements for a device. For example, the storage devices used to store video clips in a video-on-demand server or video-on-demand server must have high sequential read performance. In contrast, a storage device used to manage metadata may require high IOPS (and low latency).

Beispielhafte SLAs können das Folgende aufweisen: Beispiel 1) <sla>

Figure DE102013114069A1_0002
Exemplary SLAs may include the following: Example 1) <sla>
Figure DE102013114069A1_0002

In dem obigen Beispiel kann der Verwender an einer 100 GB-Vorrichtung interessiert sein, welche Byte-adressierbar ist. Zusätzlich muss die 4 KB-Seiten-Leselatenz kleiner als 10 ms sein, und die 4 KB-Schreiblatenz muss ebenso kleiner als 10 ms sein. Letztendlich muss die IOPS der Vorrichtung wenigstens 1 K sein.In the above example, the user may be interested in a 100 GB device that is byte addressable. In addition, the 4 KB page read latency must be less than 10 ms, and the 4 KB write latency must also be less than 10 ms. Finally, the IOPS of the device must be at least 1K.

Beispiel 2) <sla>

Figure DE102013114069A1_0003
Example 2) <sla>
Figure DE102013114069A1_0003

Beispiel 3) <qos>

Figure DE102013114069A1_0004
Example 3) <qos>
Figure DE102013114069A1_0004

Die rekonfigurierbare Speichervorrichtung 102 kann weiterhin eine Mehrzahl von Betriebsfunktionen aufweisen, auf welche hier als Funktionssatz 120 Bezug genommen wird. In einer Ausführungsform kann der Funktionssatz 120 eine Hardware-Operation (beispielsweise eine Taktfrequenz, ein übermäßiges Rücklageverhältnis), eine Befehls-Terminierungsstrategie (beispielsweise Lesen vor Schreiben, Direktzugriff vor sequentiellem Zugriff, kleine Anfrage vor großer Anfrage, einen Zeitplanungs-Algorithmus, Lesen vor GC), logische Vorrichtungs-Charakteristiken (beispielsweise Kapazität, Queue- bzw. Warteschlangen-Länge, Timeout-Steuerung, Schutz), eine Mapping-Strategie von logischen Adressen auf physikalischen Adressen (beispielsweise Page-Mapping, Block-Mapping, Hybrid-Mapping), eine Hintergrund-Job-Ausführungsstrategie (beispielsweise Garbage Collection-Algorithmus bzw. Algorithmus fpür eine automatische Speicherbereinigung, Periode und Frequenz von Garbage-Collection bzw. automatischer Speicherbereinigung, Hintergrund-TRIM, Hintergrundverdichtung bzw. -kompaktierung) usw. aufweisen, welche nicht erschöpfend sind.The reconfigurable storage device 102 may further comprise a plurality of operating functions, to which here as a function set 120 Reference is made. In one embodiment, the functional set 120 a hardware operation (eg, a clock frequency, an excessive reset ratio), an instruction termination strategy (eg, read before write, random access before sequential access, small request before large request, a scheduling algorithm, read before GC), logical device characteristics ( for example, capacity, queue length, time-out control, protection), a mapping strategy of logical addresses on physical addresses (for example, page mapping, block mapping, hybrid mapping), a background job execution strategy ( for example, garbage collection algorithm, period and frequency of garbage collection, background TRIM, background compaction, etc.), which are not exhaustive.

Wenn die Konfigurations-Übersetzungskomponente 110 die Verwender-Anforderungsinformationen 123 erhält, kann die Konfigurations-Übersetzungskomponente 110 automatisch die Verwender-Anforderungsinformationen 123 in Funktionseinstellungen übersetzen, welche verwendet werden können, um bestimmte Funktionen in den Funktionssatz 120 zu aktivieren/deaktivieren, sowie um Werte für bestimmte Funktionen zu spezifizieren. Die Wirkung einer Funktion kann global für alle logischen Vorrichtungen 120 oder lokal für eine bestimmte logische Vorrichtung sein. Beispielsweise ist die Anpassung der Betriebsfrequenz der Vorrichtung global, welche das Verhalten aller logischen Vorrichtungen 121 ändert, während die Erhöhung bzw. Zunahme der Warteschlangenlänge einer logischen Vorrichtung ausschließlich lokal für die Vorrichtung ist.If the configuration translation component 110 the user request information 123 can receive the configuration translation component 110 automatically the user request information 123 translate into function settings which can be used to set specific functions in the function set 120 to activate / deactivate, as well as to specify values for certain functions. The effect of a function can be global for all logical devices 120 or local to a particular logical device. For example, adjusting the operating frequency of the device is global, which is the behavior of all logical devices 121 changes while increasing or increasing the queue length of a logical device is only local to the device.

Gemäß einem Aspekt der beispielhaften Ausführungsform erzeugt die Konfigurations-Übersetzungskomponente 110 die Funktionseinstellungen basierend auf sowohl den Verwender-Anforderungsinformationen 123 als auch dem Vorrichtungsprofil 122. According to one aspect of the exemplary embodiment, the configuration translation component generates 110 the function settings based on both the user request information 123 as well as the device profile 122 ,

In einer Ausführungsform kann das Vorrichtungsprofil 122 Leistungsfähigkeitsbereiche 131 von Funktionen (beispielsweise Bereich einer anpassbaren Taktfrequenz) insbesondere für die Speichervorrichtung, Leistungsfähigkeitsmodelle 132 und Laufzeit-Leistungsfähigkeitsdaten 134 aufweisen. Die Laufzeit-Leistungsfähigkeitsdaten 134 können Laufzeit-Leistungsfähigkeitsstatistiken aufweisen, welche durch die Vorrichtung während des Betriebs gemessen werden.In one embodiment, the device profile 122 Performance ranges 131 of functions (for example, the range of an adaptable clock frequency), in particular for the memory device, performance models 132 and runtime performance data 134 exhibit. The runtime performance data 134 may have transit time performance statistics measured by the device during operation.

Gemäß einer beispielhaften Ausführungsform können die Leistungsfähigkeitsmodelle 132 erzeugt werden und Funktionen der rekonfigurierbaren Speichereinheit 102 zugeordnet werden, welche eine Korrelation mit der Vorrichtungs-Leistungsfähigkeit haben. In einer Ausführungsform können die Leistungsfähigkeitsmodelle 132 mathematische Modelle (beispielsweise linear, polynom, logarithmisch (log), exponentiell oder Stufenfunktion) für individuelle Funktionen und/oder Kombinationen von Funktionseinstellungen haben und/oder ideale Leistungsfähigkeitsdaten, welche in einer gesteuerten Umgebung gemessen werden, um den QoS abzuschätzen.According to an example embodiment, the performance models 132 and functions of the reconfigurable memory unit 102 which have a correlation with the device performance. In one embodiment, the performance models 132 have mathematical models (eg, linear, polynomial, logarithmic, exponential or step function) for individual functions and / or combinations of function settings and / or ideal performance data measured in a controlled environment to estimate the QoS.

Tabelle 1 zeigt untenstehend einen beispielhaften Funktionssatz 120 und zugeordnete Leistungsfähigkeitsmodelle. Die Modelle in dieser Erfindung sind beispielhaft und hängen von Anbietern und Vorrichtungen ab. Funktion Wirkung Leistungsfähigkeitsmodell Taktfrequenz IOPS Modell W (beispielsweise linear) Warteschlangengröße IOPS Modell X (beispielsweise Log) Thermisch IOPS/Latenz Modell Y (beispielsweise invers polynom) Over-Provisioning Latenz Modell Z (beispielsweise Log) Time-out N/A Konstant TABELLE 1 Table 1 below shows an exemplary set of functions 120 and associated performance models. The models in this invention are exemplary and depend on suppliers and devices. function effect Performance model clock speed IOPS Model W (for example, linear) queue size IOPS Model X (for example Log) thermal IOPS / latency Model Y (for example, inverse polynomial) Over-Provisioning latency Model Z (eg Log) time-out N / A Constant TABLE 1

In einer Ausführungsform kann eine beliebige Funktion, welche die Leistungsfähigkeitscharakteristiken der Vorrichtung ändern kann, ein zugeordnetes Leistungsfähigkeitsmodell 132 und/oder ideale Leistungsfähigkeits-Referenztabellen haben, wenn ein Modell nicht praktikabel ist. In einer Ausführungsform können entweder die Konfigurations-Übersetzungskomponente 110 oder die Konfigurations-Komponente 118 das Vorrichtungsprofil 122 und/oder die Leistungsfähigkeitsmodelle 132 verwenden, um zu bestimmen, ob eine Spezifikation der Verwender-Anforderungsinformationen 123 durch die rekonfigurierbare Speichervorrichtung 102 erfüllt werden kann. Beispielsweise kann ein Verwender die Antwortzeit einer Leseoperation durch ein Erhöhen der Taktrate der physikalischen Vorrichtung verbessern. Eine Vorrichtung jedoch hat einen bestimmten Bereich von Taktraten, welche angepasst werden können. Wenn die Vorrichtung bereits ihre maximale Taktrate erreicht, kann die Taktraten-Anpassungsfunktion nicht verwendet werden, um die Latenz-Zeit zu verbessern. Ähnlich kann, wenn IOPS zu Taktrate als eine lineare Funktion in einem gewissen Ausmaß modelliert werden kann, beispielsweise bestimmt werden, um wie viel die Taktrate zu erhöhen ist.In one embodiment, any function that may change the performance characteristics of the device may be an associated performance model 132 and / or have ideal performance reference tables if a model is impractical. In one embodiment, either the configuration translation component 110 or the configuration component 118 the device profile 122 and / or the performance models 132 to determine if a specification of the user request information 123 through the reconfigurable storage device 102 can be fulfilled. For example, a user may improve the response time of a read operation by increasing the clock rate of the physical device. However, a device has a certain range of clock rates that can be adjusted. When the device is already reaching its maximum clock rate, the clock rate adjustment function can not be used to improve latency. Similarly, if IOPS can be modeled at clock rate as a linear function to a certain extent, for example, how much the clock rate is to be increased can be determined.

In einer Ausführungsform kann das Vorrichtungsprofil 122, welches die Leistungsfähigkeitsmodelle 132 aufweist, der Konfigurations-Übersetzungskomponente 110 zugänglich gemacht werden, beispielsweise durch die rekonfigurierbare Speichervorrichtung 102 der Konfigurations-Übersetzungskomponente 110 berichtet werden. In einer anderen Ausführungsform kann das Vorrichtungsprofil 122 auf dem Host 100 oder an einem entfernten Platz, auf welchen durch den Host 100 zugegriffen werden kann, und/oder der rekonfigurierbaren Speichervorrichtung 102 gespeichert sein. Obwohl die Leistungsfähigkeitsmodelle 132 als ein Teil des Vorrichtungsprofils 122 gespeichert gezeigt sind, können in einer alternativen Ausführungsform die Leistungsfähigkeitsmodelle 132 getrennt von dem Vorrichtungsprofil 122 gespeichert sein.In one embodiment, the device profile 122 which the performance models 132 comprising the configuration translation component 110 be made available, for example by the reconfigurable storage device 102 the configuration translation component 110 be reported. In another embodiment, the device profile 122 on the host 100 or in a remote place, on which by the host 100 can be accessed, and / or the reconfigurable storage device 102 be saved. Although the performance models 132 as part of the device profile 122 stored in an alternative embodiment, the performance models 132 separate from the device profile 122 be saved.

Wenn ein Anbieter der rekonfigurierbaren Speichervorrichtung 102 das Vorrichtungsprofil 122 zu dem Host 100 darlegen kann, kann die Konfigurations-Übersetzungskomponente 110 in dem Host 100 die Leistungsfähigkeitsbereiche 131, die Leistungsfähigkeitsmodelle 132 und die Laufzeit-Leistungsfähigkeitsdaten 134 wirksam einsetzen. Andernfalls kann die Konfigurations-Übersetzungskomponente 110 Zugriff auf ihr eigenes Vorrichtungsprofil 122 für jeden Typ der rekonfigurierbaren Speichervorrichtung 102 benötigen. If a provider of the reconfigurable storage device 102 the device profile 122 to the host 100 can explain the configuration translation component 110 in the host 100 the performance areas 131 , the performance models 132 and the runtime performance data 134 use effectively. Otherwise, the configuration translation component 110 Access to their own device profile 122 for each type of reconfigurable storage device 102 need.

In einer Ausführungsform können die Laufzeit-Leistungsfähigkeitsdaten 134, das Anforderungsprofil 122 typische Leistungsfähigkeits-Indizes, welche über eine Standard-Schnittstelle wie beispielsweise SMART (Self-Monitoring, Analysis and Reporting Technology) in der ATA-Spezifikation verfügbar sind, und Anbieter-spezifische Laufzeit-Leistungsfähigkeits-Metriken wie beispielsweise min/max/avg- bzw. Minimal/Maximal-/Durchschnitts-Lese-/Schreib-Latenz, Minimal-/Maximal-/Durchschnitts-Warteschlangenlänge und -Wartezeit, Minimal-/Maximal-/Durchschnitts-interne IOPS, ein Lese-/Schreib-Verstärkungsverhältnis, eine Garbage Collection-Zeit bzw. Garbage-Sammelzeit, eine Timeout-Zählung und dergleichen aufweisen.In one embodiment, the runtime performance data may be 134 , the requirement profile 122 typical performance indices that are available through a standard interface such as SMART (Self-Monitoring, Analysis and Reporting Technology) in the ATA specification, and vendor-specific runtime performance metrics such as min / max / avg resp Minimum / maximum / average read / write latency, minimum / maximum / average queue length and wait time, minimum / maximum / average internal IOPS, a read / write gain ratio, garbage collection Time or garbage collection time, a timeout count and the like.

In einer Ausführungsform können andere Informationen, welche als ein Teil der Laufzeit-Leistungsfähigkeitsdaten 134 gespeichert werden, Folgendes aufweisen, sie sind jedoch nicht beschränkt auf: Vorrichtungs-Status, Vorrichtungs-Hintergrundjob-Status und Host-Hintergrundjob-Status.In one embodiment, other information may be provided as part of the runtime performance data 134 are stored, but not limited to: device status, device background job status, and host background job status.

Der Vorrichtungs-Status kann Status-Informationen über Hardware und Software der rekonfigurierbaren Speichervorrichtung 102 aufweisen. Dies kann nicht nur die globalen Informationen wie beispielsweise den Grad der Verschlechterung bzw. Alterung des Speichermediums (Verschleiß-Level), einen Status eines Superkondensators, eine Vorrichtungstemperatur, ein Over-Provisioning-Verhältnis (oder Menge) und dergleichen aufweisen, sondern auch die lokalen Informationen der logischen Vorrichtung wie beispielsweise eine Vorrichtungsgröße, eine Vorrichtungskapazität, eine Vorrichtungsnutzung, ein SLA, einen Funktionssatz, Funktionseinstellungen, den Grad der Datenfragmentierung, ein Timeout, einen Schutz, einen Adressierungs-Modus etc. aufweisen.The device status may include status information about hardware and software of the reconfigurable storage device 102 exhibit. This may include not only the global information such as the degree of deterioration of the storage medium (wear level), a supercapacitor state, a device temperature, an over-provisioning ratio (or amount), and the like, but also the local ones Information of the logical device such as a device size, a device capacity, a device usage, an SLA, a function set, function settings, the degree of data fragmentation, a timeout, a protection, an addressing mode, etc.

Der Vorrichtungs-Hintergrundjob-Status kann einen Status von Vorrichtungs-Hintergrundjobs, welcher durch Vorrichtungs-Strategien bestimmt ist, jedoch nicht für außerhalb der Vorrichtung sichtbar ist, wie beispielsweise Hintergrund-TRIM, Hintergrund-Garbage-Sammlung, Hintergrund-Kompaktierung und andere aufweisen.The device background job status may include a status of device background jobs determined by device policies, but not visible to outside the device, such as background TRIM, background garbage collection, background compaction, and others.

Der Host-Hintergrundjob-Status kann den Status der Vorrichtungs-Hintergrundjobs aufweisen, welche durch den Host getriggert bzw. ausgelöst werden, wie beispielsweise den Offline-Test der SMART-Selbsttest-Suite in der ATA-Spezifikation.The host background job status may include the status of the device background jobs triggered by the host, such as the offline test of the SMART self-test suite in the ATA specification.

Die Konfigurations-Übersetzungskomponente 110 in dem Host 100, welche in 1 gezeigt ist, kann die High-Level-Verwender-QoS-Anforderungen in SLA-vorrichtungsspezifische Konfigurationsbefehle umwandeln, um die Konfiguration der rekonfigurierbaren Speichervorrichtung 102 zu ändern. Die Konfigurations-Übersetzungskomponente 110 kann die Beziehung zwischen den Verwender-Anforderungen 123 und Operationen/Strategien der rekonfigurierbaren Speichervorrichtung 102, welche vorrichtungsspezifisch sind, verstehen. Beispielsweise kann eine Speichervorrichtung eine Warteschlange bzw. Queue mit einer großen Warteschlangen-Tiefe benötigen, um eine bestimmte IOPS-Anforderung zu erfüllen. Ähnlich können Low-End-Vorrichtungen eine Warteschlange mit einer großen Warteschlangen-Tiefe und einer Lese-Priorität benötigen, um eine kurze Lese-Latenz zu erreichen, während High-End-Vorrichtungen dieselbe Latenz ohne eine Lese-Priorität erreichen können.The configuration translation component 110 in the host 100 , what a 1 1, the high-level user QoS requirements may be converted to SLA device-specific configuration commands to configure the reconfigurable memory device 102 to change. The configuration translation component 110 can the relationship between the user requirements 123 and operations / strategies of the reconfigurable storage device 102 , which are device-specific, understand. For example, a storage device may require a queue with a large queue depth to meet a particular IOPS request. Similarly, low-end devices may require a queue with a large queue depth and a read priority to achieve a short read latency, while high-end devices may achieve the same latency without a read priority.

3 ist ein Flussdiagramm, welches in einem weiteren Detail den Vorgang zum Konfigurieren der rekonfigurierbaren Speichervorrichtung 102 veranschaulicht. In einer Ausführungsform werden die Vorgangsschritte, welche auf dem Host 100 durchgeführt werden, durch die Konfigurations-Übersetzungskomponente 110 durchgeführt, und die Vorgangsschritte, welche auf der rekonfigurierbaren Speichervorrichtung 102 durchgeführt werden, werden durch die Konfigurationskomponente 118 durchgeführt. 3 FIG. 10 is a flowchart which, in further detail, illustrates the process of configuring the reconfigurable storage device. FIG 102 illustrated. In one embodiment, the process steps performed on the host 100 be performed by the configuration translation component 110 and the process steps performed on the reconfigurable storage device 102 are performed by the configuration component 118 carried out.

Der Vorgang kann auf dem Host 100 beginnen durch ein Empfangen eines SLA sowie ein Empfangen des Vorrichtungsprofils 122 (Block 300). Für jede QoS-Anforderung des SLA werden konfigurierbare Funktionseinstellungen basierend auf dem Vorrichtungsprofil 122 der rekonfigurierbaren Speichervorrichtung 102 bestimmt (Block 302) und mögliche Kombinationen von Funktionseinstellungen (QoS) werden für die SLA bestimmt (Block 304). Die Kombination von Funktionseinstellungen werden basierend auf dem Vorrichtungsprofil 122 für die rekonfigurierbare Speichervorrichtung 102 priorisiert (Block 306). Für jede der Kombination von Funktionseinstellungen wird ein Satz von Konfigurationsbefehlen, auf welchen als ein Plan Bezug genommen wird, erzeugt (Block 308). Der Plan oder individuelle Konfigurationsbefehle des Plans werden mit einer Transaktions-ID zu der rekonfigurierbaren Speichervorrichtung 102 übertragen (Block 310). Ein Plan kann durch die Konfigurationskomponente in der Vorrichtung zurückgewiesen werden, da der Vorrichtungszustand sich im Fall von Abläufen (races) ändern kann, während Plane erzeugt werden. Demnach kann der Host 100 Plane iterieren, bis einer oder keiner der Pläne Erfolg hat (Block 312).The process may be on the host 100 begin by receiving an SLA and receiving the device profile 122 (Block 300 ). For each SLA QoS request, configurable feature settings are based on the device profile 122 the reconfigurable storage device 102 determined (block 302 ) and possible combinations of function settings (QoS) are determined for the SLA (block 304 ). The combination of feature settings will be based on the device profile 122 for the reconfigurable storage device 102 prioritized (block 306 ). For each of the combination of function settings, a set of configuration commands is referred to as a plan is generated (block 308 ). The plan or individual configuration commands of the plan become a reconfigurable storage device with a transaction ID 102 transferred (block 310 ). A plan may be rejected by the configuration component in the device because the device state may change in the case of races while creating tarpaulins. Accordingly, the host can 100 Plan iteratively until one or none of the plans succeed (Block 312 ).

Der Vorgang kann auf der Speichervorrichtung 102 durch ein Empfangen des Plans von dem Host beginnen (Block 320). Der Plan wird durch ein Überprüfen der Verfügbarkeit und Anwendbarkeit jeder Funktion basierend auf dem Vorrichtungsprofil 122 validiert (Block 322). Alle Funktionen in dem Plan werden automatisch eingestellt, und im Fall einer Fehlfunktion werden jegliche Änderungen rückgängig gemacht (Block 324). Eine oder mehrere logische Vorrichtungen werden basierend auf den Funktionseinstellungen erzeugt (Block 326). Das Vorrichtungsprofil 122 wir pro Konfiguration des Plans aktualisiert (Block 328). Eine Vollendungsantwort wird dann zu dem Host 100 gesendet (Block 330).The process may be on the storage device 102 by receiving the plan from the host (block 320 ). The plan is made by checking the availability and applicability of each feature based on the device profile 122 validated (block 322 ). All functions in the plan are automatically set, and in the event of a malfunction, any changes are undone (block 324 ). One or more logical devices are generated based on the function settings (block 326 ). The device profile 122 we updated per configuration of the plan (block 328 ). A completion response then becomes the host 100 sent (block 330 ).

Während des Betriebs der Speichervorrichtung 102 wird der Plan mit dem Vorrichtungsprofil verglichen, insbesondere die Echtzeit-Leistungsfähigkeitsstatistiken 134 (Block 332). Eine Benachrichtigung wird dann zu dem Host als Rückmeldung 130 gesendet, wenn das Vorrichtungsprofil den Plan nicht erfüllt (Block 334). Der Konfigurationsratgeber 138 verwendet dann die Rückmeldung, um den Konfigurationsplaner zu einer angemessenen Anpassung zu führen (6).During operation of the storage device 102 the plan is compared to the device profile, in particular the real-time performance statistics 134 (Block 332 ). A notification will then be sent to the host as feedback 130 sent if the device profile does not meet the plan (block 334 ). The configuration advisor 138 then uses the feedback to guide the configuration planner to a proper fit ( 6 ).

Das Folgende beschreibt im weiteren Detail die Funktion der drei Komponenten, welche die Konfigurations-Übersetzungskomponente 110 wie in 1 gezeigt aufweisen – der Konfigurationsplaner 136, der Konfigurationsratgeber 138 und der Vorrichtungsprogrammierer 136 sowohl als die Konfigurationskomponente 118 in der rekonfigurierbaren Speichervorrichtung 102.The following describes in more detail the function of the three components that comprise the configuration translation component 110 as in 1 have shown - the configuration planner 136 , the configuration advisor 138 and the device programmer 136 as well as the configuration component 118 in the reconfigurable storage device 102 ,

Der Konfigurationsplaner 136 empfängt die Verwender-Anforderungen 123 (beispielsweise die SLA) und analysiert mögliche Konfigurationspläne, welche Konfigurationsbefehle 128 aufweisen, basierend auf den Strategien, die die Vorrichtung unterstützt, wie in dem Vorrichtungsprofil 122 (beispielsweise den Laufzeit-Leistungsfähigkeitsdaten 134) spezifiziert ist, und erzeugt einen Konfigurationsplan als eine Empfehlung. Genauer weist der Konfigurationsplaner 136 einen Umwandlungs-Algorithmus auf, um SLA-Spezifikationen in Funktionseinstellungen umzuwandeln basierend auf dem Vorrichtungsprofil 122, er bestimmt optimale Kombinationen aus den umgewandelten Funktionseinstellungen und erzeugt einen Plan, welcher Konfigurationsbefehle 128 aufweist, aus den optimalen Kombinationen.The configuration planner 136 receives the user requests 123 (for example, the SLA) and analyzes possible configuration plans, which configuration commands 128 based on the strategies that the device supports, as in the device profile 122 (for example, the runtime performance data 134 ) and generates a configuration plan as a recommendation. More specifically, the configuration planner 136 a conversion algorithm to convert SLA specifications to function settings based on the device profile 122 It determines optimal combinations from the converted function settings and generates a plan which configuration commands 128 has, from the optimal combinations.

Als ein Beispiel sei angenommen, dass die Speichervorrichtung ein Vorrichtungsprofil wie folgt hat: Die Latenz erhöht sich um x% und IOPS verringert sich um y% mit einer Verschlüsselungsfunktion, während ein Priorisieren von Lesen vor Schreiben die Lese-Latenz um z% verbessert, und die Erhöhung der Warteschlangen-Tiefe IOPS um w%-Verhältnis verbessert. Wenn der Verwender die gleiche Leistungsfähigkeit auch mit einer Option der Verschlüsselung erreichen will, kann der Konfigurationsplaner 136 eine Lese-Priorität aktivieren müssen und/oder die Warteschlangen-Tiefe erhöhen müssen, um den Latenz-Anstieg aufgrund der Verschlüsselung auszugleichen.As an example, assume that the storage device has a device profile as follows: latency increases by x% and IOPS decreases by y% with an encryption function, while prioritizing read before write improves read latency by z%, and the increase in queue depth IOPS improved by w% ratio. If the user wants to achieve the same performance even with an encryption option, the configuration scheduler can 136 must enable a read priority and / or increase the queue depth to compensate for the latency increase due to encryption.

Der Konfigurationsplaner 136 kann mehrere Konfigurationspläne aus den Verwender-Anforderungen erzeugen, und der Konfigurationsplaner 136 wählt den besten Plan aus, wobei er die Leistungsfähigkeit und den Status der Speichervorrichtung 102 und die Verwender-Anforderungen berücksichtigt. Der Konfigurationsplaner 136 kann mehrere Leistungsfähigkeitsmodelle 132 haben, welche mit jeder Funktion der rekonfigurierbaren Speichervorrichtung verknüpft sind, eine Korrelation und Anti-Korrelation zwischen Funktionen und andere und mehrere Planungs-Algorithmen, welche die Leistungsfähigkeitsmodelle 132 auswerten und die Konfigurationspläne erzeugen. Der Konfigurationsplaner 136 kann die Leistungsfähigkeitsmodelle 132 mit der Speichervorrichtung 102 gemeinsam verwenden, wenn die Speichervorrichtung 102 Zugriff auf die Leistungsfähigkeitsprofile 132 vorsieht. Andernfalls kann der Host 100 seine eigenen Leistungsfähigkeitsprofile haben.The configuration planner 136 can generate multiple configuration plans from the user requests, and the configuration planner 136 chooses the best plan, specifying the performance and status of the storage device 102 and the user requirements. The configuration planner 136 can have multiple performance models 132 which are associated with each function of the reconfigurable memory device, have a correlation and anti-correlation between functions and other and multiple scheduling algorithms representing the performance models 132 evaluate and generate the configuration plans. The configuration planner 136 can the performance models 132 with the storage device 102 use together when the storage device 102 Access to the performance profiles 132 provides. Otherwise, the host may 100 have their own performance profiles.

Wenn die Konfigurationskomponente 118 in der Speichervorrichtung 102 den Plan empfängt, kann die Konfigurationskomponente 118 den Plan zurückweisen, wenn der Plan das Leistungsvermögen, welches die Vorrichtung unterstützen kann, überschreitet. Beispielsweise kann, wenn die Vorrichtung keine Leistungsfähigkeitsprofile vorsieht, oder wenn die Vorrichtung beliebige Verzögerungen oder Abläufe erfährt, wenn sie die gegenwärtigen Leistungsfähigkeitscharakteristiken einfängt, das Leistungsfähigkeitsprofil, das die Vorrichtung vorsieht, veraltet bzw. abgestanden (stale) sein. In diesem Fall kann die Vorrichtung den Plan nicht honorieren, auch wenn die Entscheidung auf ihrem Leistungsfähigkeitsprofil 122 basiert ist. In einer Ausführungsform jedoch kann die Konfigurationskomponente 118 den Plan ebenso mit ihrem eigenen Risiko durchsetzen bzw. erzwingen.If the configuration component 118 in the storage device 102 the plan receives the configuration component 118 reject the plan if the plan exceeds the capability that the device can support. For example, if the device does not provide performance profiles, or if the device experiences any delays or sequences when capturing the current performance characteristics, the performance profile provided by the device may be stale. In this case, the device can not reward the plan, even if the decision on their performance profile 122 is based. In one embodiment however, the configuration component 118 enforce or enforce the plan at your own risk as well.

Der Konfigurationsplan kann einen Satz von Konfigurationsbefehlen aufweisen, von welchen jeder ein vorbestimmter Anbieter-einzigartiger Befehl oder ein Standardbefehl ist, welchen die Speichervorrichtung 102 verstehen kann. Für das vorangehende Beispiel muss der Konfigurationsplaner 136 zwei Befehle zu senden: einen für die Zeitplanungsstrategie, welcher eine Priorität von Lesen vor Schreiben gibt, und einen anderen für die Warteschlangen-Eigenschaften, der die Warteschlangen-Größe erhöht. Optional kann der Konfigurationsplaner 136 einen Befehl für den gesamten Plan mit einer Transaktions-ID senden. Abhängig von den Einstellungen und dem Status der Speichervorrichtung 102 kann die Konfigurationskomponente 118 die Konfigurationsbefehle oder den Plan honorieren oder nicht.The configuration plan may include a set of configuration commands, each of which is a predetermined vendor-unique command or a standard command to which the storage device 102 can understand. For the previous example, the configuration planner must be 136 To send two commands: one for the scheduling strategy, which gives a priority to read before write, and another for the queue properties, which increases the queue size. Optionally, the configuration planner 136 send a command for the entire plan with a transaction ID. Depending on the settings and status of the storage device 102 can the configuration component 118 the configuration commands or the plan reward or not.

4 ist ein Flussdiagramm, welches einen beispielhaften Umwandlungsvorgang veranschaulicht, welcher durch den Konfigurationsplaner 136 durchgeführt wird, um einen Plan zu erzeugen. Der Vorgang entspricht den Blöcken 300 bis 308 der 3. Wenn das SLA empfangen ist (Block 400) wird bestimmt, ob mehrere QoS-Anforderungen aufzulösen sind (Block 402). Wenn dies der Fall ist, werden mögliche Kombinationen von Funktionseinstellungen, welche eine gegenwärtige QoS-Anforderung erfüllen können, identifiziert (Block 404). Die Entscheidung in diesem Schritt ist mehr oder weniger eine allgemeine Richtlinie basierend auf den statischen Informationen (davor definiertem Wissen), welche abhängig von Vorrichtungen variieren kann, jedoch den Suchraum der nächsten Schritte verringern kann. Es wird dann bestimmt, ob eine Kombination von Funktionseinstellungen die gegenwärtige QoS-Anforderung mit einer bestimmten Vorrichtung von Interesse erfüllt, basierend auf dem Leistungsfähigkeitsprofil (Block 406). Falls nicht, wird die nächste Kombination von Funktionseinstellungen erhalten (Block 408). Es wird dann bestimmt, ob die Kombination leer ist, um zu bestätigen, dass alle möglichen Kombinationen im Fall von Fehlfunktionen versucht werden (Block 410), und wenn dies der Fall ist, wird ein Fehler erzeugt (Block 412). Wenn die Kombination nicht leer ist, fährt der Vorgang bei Block 406 fort. 4 FIG. 3 is a flowchart illustrating an exemplary conversion process performed by the configuration scheduler 136 is performed to generate a plan. The process corresponds to the blocks 300 to 308 of the 3 , When the SLA is received (block 400 ) determines if multiple QoS requests are to be resolved (block 402 ). If so, possible combinations of feature settings that can satisfy a current QoS request are identified (Block 404 ). The decision in this step is more or less a general policy based on the static information (previously defined knowledge), which may vary depending on devices, but may reduce the search space of the next steps. It is then determined whether a combination of function settings satisfies the current QoS request with a particular device of interest based on the performance profile (Block 406 ). If not, the next combination of function settings is obtained (block 408 ). It is then determined if the combination is empty to confirm that all possible combinations are attempted in the event of malfunction (block 410 ), and if so, an error is generated (block 412 ). If the combination is not empty, the process moves to block 406 continued.

Wenn die Kombination von Funktionseinstellungen die gegenwärtige QoS-Anforderung erfüllt (Block 406), dann wird bestimmt, ob die Kombination von Funktionseinstellungen mit den bereits ausgewählten Konfigurationen für alle SLAs und QoSs dieser Vorrichtung kombiniert ist (Block 414). Wiederum mag aufgrund der dynamischen Änderung der Vorrichtungs-Leistungsfähigkeit im Falle von Abläufen (races) die Kombination nicht arbeiten. Falls dies der Fall ist, wird ein Konfigurationsbefehl für die Funktionseinstellungen zu dem Plan hinzugefügt (Block 416) und die nächste unaufgelöste QoS in der SLA wird erhalten (Block 418). Wenn bestimmt wird, dass es nicht mehr QoS-Anforderungen für den Vorgang gibt (Block 402), gibt der Konfigurationsplaner 136 den Plan an die Konfigurationskomponente 118 in der rekonfigurierbaren Speichervorrichtung 102 aus (Block 420).If the combination of function settings meets the current QoS requirement (block 406 ), then it is determined if the combination of function settings is combined with the already selected configurations for all the SLAs and QoSs of that device (Block 414 ). Again, due to the dynamic change in device performance in the case of races, the combination may not work. If so, a function settings configuration command is added to the plan (Block 416 ) and the next unresolved QoS in the SLA is obtained (block 418 ). If it is determined that there are no longer QoS requirements for the operation (block 402 ), gives the configuration planner 136 the plan to the configuration component 118 in the reconfigurable storage device 102 off (block 420 ).

Bezug nehmend wiederum auf 1 empfängt der Vorrichtungsprogrammierer 140 den Plan, welcher durch den Konfigurationsplaner 136 ausgewählt ist und sendet den Plan zu der rekonfigurierbaren Speichervorrichtung 102 über einen Konfigurations-Befehlskanal (Konfigurations-Befehlskanäle) zur Ausführung des Plans und der Konfiguration der Speichervorrichtung demgemäß. Der Vorrichtungsprogrammierer 140 kann eine Antwort von der rekonfigurierbaren Speichervorrichtung betreffend eine Ausführung des Plans empfangen.Referring again to 1 the device programmer receives 140 the plan, which by the configuration planner 136 is selected and sends the plan to the reconfigurable storage device 102 via a configuration command channel (configuration command channels) for executing the plan and configuration of the memory device accordingly. The device programmer 140 may receive a response from the reconfigurable storage device regarding execution of the plan.

Da der Konfigurationsplaner 136 mehrere Plane empfiehlt (welche wahrscheinlich durch die Planqualität geordnet sind), kann der Vorrichtungsprogrammierer 140 die Pläne im Fall einer negativen Antwort von der rekonfigurierbaren Speichervorrichtung 102 iterieren müssen, bis ein Plan gefunden ist, welcher tatsächlich mit der rekonfigurierbaren Speichervorrichtung 102 arbeitet. Wenn der Vorrichtungsprogrammierer 140 beliebige Fehler während der Planprogrammierung erfährt (beispielsweise aufgrund der Zurückweisung von der Konfigurationskomponente 118), sollte der Vorrichtungsprogrammierer 140 in der Lage sein, die Änderungen, welche durch den Plan getätigt werden, zurückzunehmen, falls dies notwendig ist.Because the configuration planner 136 several plans recommend (which are probably arranged by the layout quality), the device programmer can 140 the plans in case of a negative response from the reconfigurable storage device 102 until a plan is found which is actually with the reconfigurable storage device 102 is working. If the device programmer 140 any errors during schedule programming (for example due to the rejection of the configuration component) 118 ), the device programmer should 140 be able to withdraw the changes made by the plan, if necessary.

Der (die) Konfigurations-Befehlskanal(-kanäle), welcher (welche) verwendet werden, um die Konfigurationsbefehle auszuführen, und der Rückmeldungskanal (Rückmeldungskanäle), welcher (welche) verwendet werden, um das Leistungsfähigkeitsprofil und Statusinformationen der Vorrichtung zu überwachen und zu sammeln, können eine Standard-Host-Schnittstelle wie beispielsweise SATA, SAS, PCIe und NVMe oder eine besondere Schnittstelle, welche für diesen Zweck entworfen ist, sein.The configuration command channel (s) used to execute the configuration commands and the feedback channel (feedback channels) which are used to monitor and collect the performance profile and status information of the device , may be a standard host interface such as SATA, SAS, PCIe and NVMe or a special interface designed for this purpose.

5 ist ein Flussdiagramm, welches eine Verarbeitung der Konfigurationskomponente 118 auf der rekonfigurierbaren Speichervorrichtung 102 veranschaulicht. Dieser Vorgang entspricht Block 202 der 2A, wo die rekonfigurierbare Speichervorrichtung unter Verwendung der Funktionseinstellungen von dem Host 100 rekonfiguriert wird, wie in den Blöcken 320 bis 328 der 3. 5 FIG. 10 is a flowchart showing a processing of the configuration component. FIG 118 on the reconfigurable storage device 102 illustrated. This process corresponds to block 202 of the 2A . where the reconfigurable storage device using the function settings from the host 100 is reconfigured, as in the blocks 320 to 328 of the 3 ,

Der Vorgang kann beginnen, wenn die Konfigurationskomponente 118 einen Plan von dem Vorrichtungsprogrammierer 140 auf dem Host 100 empfängt, welcher wenigstens einen Konfigurationsbefehl 128 aufweist, welcher Funktionseinstellungen enthält (Block 500).The process can begin when the configuration component 118 a plan from the device programmer 140 on the host 100 receives which at least one configuration command 128 which contains function settings (block 500 ).

Die Konfigurationskomponente 118 kann zuerst die Verfügbarkeit und Anwendbarkeit der Funktionseinstellungen in dem Plan basierend auf dem Vorrichtungsprofil überprüfen (Block 502). Das Überprüfen der Verfügbarkeit kann ein Bestimmen aufweisen, ob die Speichervorrichtung die Funktionseinstellungen unterstützt, durch ein Vergleichen des Plans mit dem Vorrichtungsprofil 122. Das Überprüfen der Anwendbarkeit kann ein Abschätzen eines Anpassungsgrades an Funktionen basierend auf dem Vorrichtungsprofil 122 und durch ein Steuern der Anpassung der Funktionen innerhalb einer anwendbaren Funktionsgrenze basierend auf dem Vorrichtungsprofil 122 aufweisen.The configuration component 118 can first check the availability and applicability of the feature settings in the plan based on the device profile (block 502 ). Checking for availability may include determining whether the storage device supports the feature settings by comparing the plan to the device profile 122 , Checking for applicability may include estimating a degree of adaptation to functions based on the device profile 122 and by controlling the adaptation of the functions within an applicable functional boundary based on the device profile 122 exhibit.

Der Plan wird validiert, wenn sowohl die Verfügbarkeit als auch die Anwendbarkeit der Funktionseinstellungen wahr sind (Block 504). Die Konfigurationskomponente 118 führt den Plan (Block 506) in einer Ausführungsform aus, wobei das Ausführen des Plans ein automatisches Ausführen individueller Konfigurationsbefehle aufweist.The plan is validated if both the availability and applicability of the feature settings are true (Block 504 ). The configuration component 118 leads the plan (block 506 In one embodiment, performing the plan includes automatically executing individual configuration commands.

Wenn der Plan nicht gültig ist (Block 504), weist die Konfigurationskomponente 118 den Plan zurück und macht alle Änderungen, welche hinsichtlich des Plans getätigt wurden, rückgängig und sendet eine Benachrichtigung (beispielsweise ein Fehlersignal) an die Konfigurations-Übersetzungskomponente 110 (Block 508). Beispielsweise wird, wenn die gegenwärtige Taktfrequenz bereits zu einer maximalen Taktrate gesetzt ist, jeder Plan, welcher versucht, die Taktgeschwindigkeit zu erhöhen, zurückgewiesen werden. Die Rückgängigmachungen könnten eine Quelle von Ungenauigkeit in dem Leistungsfähigkeitsprofil der rekonfigurierbaren Speichervorrichtung im Falle von Abläufen (races) sein.If the plan is not valid (block 504 ), assigns the configuration component 118 Revert the plan and undo any changes made to the plan and send a notification (such as an error signal) to the configuration translation component 110 (Block 508 ). For example, if the current clock frequency is already set at a maximum clock rate, any schedule attempting to increase clock speed will be rejected. The undo might be a source of inaccuracy in the performance profile of the reconfigurable memory device in the event of races.

Wenn die Ausführung des Plans erfolgreich ist (Block 510) werden eine oder mehrere logische Vorrichtungen auf der rekonfigurierbaren Speichervorrichtung durch ein Zuordnen des Plans (d. h. ausgeführten Konfigurationsbefehlen) zu einem Speicherplatz erzeugt (Block 512). Letztendlich aktualisiert die Konfigurationskomponente 118 das Vorrichtungsprofil 122 (Block 514).If execution of the plan is successful (block 510 ), one or more logical devices are created on the reconfigurable storage device by associating the plan (ie, executed configuration commands) with a storage location (Block 512 ). Finally, the configuration component updates 118 the device profile 122 (Block 514 ).

Gemäß der beispielhaften Ausführungsform kann eine physikalische Speichervorrichtung mehrere logische Vorrichtungen 122 hosten bzw. beherbergen, und jede logische Vorrichtung 121 kann unabhängig konfiguriert werden und ihre eigenen Charakteristiken haben. Demnach erzeugt das rekonfigurierbare Speichersystem der beispielhaften Ausführungsform QoS-bewusste logische Vorrichtungen 121. Die logischen Vorrichtungen 121 können sich auf verschiedene Technologien wie beispielsweise Raum-Partitionierung bzw. Platz-Partitionierung (wie eine traditionelle OS-Partition), Multi-Warteschlange (wie NMVe-Standard), Multi Tenancy (wie Cloud-PaaS), Virtualisierung (wie SR-IOV-Standard) und andere, welche vorrichtungsspezifisch sind, stützen.According to the exemplary embodiment, a physical storage device may include a plurality of logical devices 122 host, and any logical device 121 can be configured independently and have its own characteristics. Thus, the reconfigurable memory system of the exemplary embodiment generates QoS-aware logical devices 121 , The logical devices 121 can apply to different technologies such as space partitioning or space partitioning (like a traditional OS partition), multi-queue (like NMVe standard), multi-tenancy (like Cloud PaaS), virtualization (like SR-IOV) Standard) and others which are device specific.

Beispielsweise sei angenommen, dass der Verwender zwei 100 GB-Speicherplätze in einer einzelnen Vorrichtung benötigt: einen für leseintensive Arbeitslasten und den anderen für schreibintensive Arbeitslasten. Mit einer einfachen rekonfigurierbaren Speichervorrichtung basierend auf der Raum-Partitionierungstechnik mit Multi-Warteschlangen kann der Verwender zwei Partitionen (beispielsweise /dev/sda[1, 2]) auf der Vorrichtung erzeugen und dann eine Partition (beispielsweise /dev/sdal), welche mit einer Warteschlange verknüpft ist als eine logische Vorrichtung für Lesen und die andere Partition (beispielsweise /dev/sda2), welche mit der anderen Warteschlange verknüpft ist, als eine logische Vorrichtung für Schreiben erzeugen. Dann kann die Vorrichtung die erhaltene Leseleistungsfähigkeit durch die logische Vorrichtung für Lesen ohne eine Leistungsfähigkeitsverschlechterung aufgrund von Schreiben liefern. Eine typische Speichervorrichtung kann die lange Latenz mit diesem Szenario zeigen, aufgrund der Garbage-Sammlung aufgrund von Schreiben.For example, assume that the user requires two 100 GB storage spaces in a single device: one for read-intensive workloads and the other for write-intensive workloads. With a simple reconfigurable memory device based on the multi-queuing space partitioning technique, the user can create two partitions (for example, / dev / sda [1, 2]) on the device, and then create a partition (eg, / dev / sdal) with a queue is linked as a read logical device and the other partition (e.g., / dev / sda2) associated with the other queue as a logical device for writing. Then, the device can provide the obtained reading performance by the logical device for reading without performance degradation due to writing. A typical storage device may show the long latency with this scenario due to garbage collection due to write.

Bezug nehmend wiederum auf 1 kann der Konfigurationsratgeber 138 das Vorrichtungsprofil 122 als die Rückmeldung 130 über (einen) Rückmeldungskanal (Rückmeldungskanäle) (nicht gezeigt) empfangen. Um den Datentransfer-Overhead zu verringern, können die tatsächlichen Informationen, welche zu dem Bus gesandt werden, variieren. Der Konfigurationsratgeber 138 überwacht das eine oder die mehreren logischen Laufwerke über eine oder mehrere physikalische Speichervorrichtungen hinweg und bestimmt, ob all die Verwender-Anforderungen 123 erfüllt sind. Der Konfigurationsratgeber 138 benachrichtigt auch den Konfigurationsplaner 136, den Plan basierend auf dem Vorrichtungsprofil im Fall einer SLA-Verletzung anzupassen.Referring again to 1 can the configuration guide 138 the device profile 122 as the feedback 130 received via (a) feedback channel (feedback channels) (not shown). To reduce the data transfer overhead, the actual information sent to the bus may vary. The configuration advisor 138 monitors the one or more logical drives across one or more physical storage devices and determines if all the user requests 123 are fulfilled. The configuration advisor 138 also notifies the configuration planner 136 to adjust the plan based on the device profile in case of SLA violation.

6 ist ein Flussdiagramm, welches einen Ausführungsfluss des Konfigurationsratgebers 138 gemäß einer Ausführungsform veranschaulicht. Der Konfigurationsratgeber 138 wartet auf die Konfigurationskomponente 118, um das Vorrichtungsprofil 122, einschließlich der Laufzeit-Leistungsfähigkeitsdaten 134 der logischen Vorrichtungen 121 als eine Rückmeldung 130 zu sammeln und zu senden (Block 600). In einer Ausführungsform kann der Host 100 ein oder mehrere Rückmeldungskanal (Rückmeldungskanäle) aufweisen, welche eine Standard-Schnittstelle aufweisen, um ein Eingangs-/Ausgangs-Spuren (traces), welche in der rekonfigurierbaren Speichervorrichtung 102 erfasst sind, zu übertragen. In einer anderen Ausführungsform kann (können) der (die) Rückmeldungskanal (Rückmeldungskanäle) eine spezielle Schnittstelle aufweisen, um es dem Konfigurationsratgeber 138 zu ermöglichen, die Leistungsfähigkeit der rekonfigurierbaren Speichervorrichtung 102 zu überwachen. 6 FIG. 11 is a flowchart illustrating an execution flow of the configuration advisor. FIG 138 illustrated according to one embodiment. The configuration advisor 138 waits for the configuration component 118 to the device profile 122 including runtime performance data 134 the logical devices 121 as a feedback 130 to collect and send (block 600 ). In one embodiment, the host 100 have one or more feedback channels (feedback channels) having a standard interface to provide an input / output trace used in the reconfigurable memory device 102 are transferred. In another embodiment, the feedback channel (s) may have a special interface to it to the configuration advisor 138 to enable the performance of the reconfigurable storage device 102 to monitor.

In Antwort auf einen Empfang des Vorrichtungsprofils 122 überwacht der Konfigurationsratgeber 138 die Leistungsfähigkeit der rekonfigurierbaren Speichervorrichtung 102 durch ein Vergleichen der Rückmeldung 130 mit den Verwender-Anforderungen 123 (Block 602). Wenn der Konfigurationsratgeber 138 bestimmt, dass die Laufzeit-Leistungsfähigkeitsdaten 134 keiner der logischen Vorrichtungen die Verwender-Anforderungen 123 verletzen (Block 604), dann ist ein Programmieren der rekonfigurierbaren Speichervorrichtung 102 vollendet bzw. komplett (Block 606). Falls eine beliebige der logischen Vorrichtungen 121 versagt, die Verwender-Anforderungen 123 zu erfüllen, benachrichtigt der Konfigurationsratgeber 138 den Konfigurationsplaner 136 (beispielsweise durch ein Vorsehen der Laufzeit-Leistungsfähigkeitsdaten 134, welche der logischen Vorrichtung entsprechen), um einen neuen Konfigurationsplan für die logische Vorrichtung vorzusehen (Block 608), wobei Einstellungen und Charakteristiken der Speichervorrichtung 102 dynamisch angepasst werden.In response to receiving the device profile 122 monitors the configuration advisor 138 the performance of the reconfigurable storage device 102 by comparing the feedback 130 with the user requirements 123 (Block 602 ). If the configuration advisor 138 determines that the runtime performance data 134 none of the logical devices the user requirements 123 hurt (block 604 ), then is programming the reconfigurable storage device 102 completed or complete (block 606 ). If any of the logical devices 121 fails, the user requirements 123 to comply, the configuration guide notifies 138 the configuration planner 136 (For example, by providing the runtime performance data 134 corresponding to the logical device) to provide a new logical device configuration plan (block 608 ), where settings and characteristics of the storage device 102 be dynamically adjusted.

In einer Ausführungsform kann, wenn eine Verletzung erfasst ist, der Konfigurationsratgeber 138 auch das Vorrichtungsprofil 122 von der rekonfigurierbaren Speichervorrichtung 102 anfordern, um die aktuellsten umfassenden bzw. umfassendsten Leistungsfähigkeitsdaten zu erhalten, um einen neuen Plan zu erzeugen, da die Benachrichtigung nur die Leistungsfähigkeit von logischen Vorrichtungen von Interesse enthalten kann. In einer Ausführungsform kann die rekonfigurierbare Speichervorrichtung 102 das Vorrichtungsprofil 122 periodisch oder wann immer der Status der Laufzeit-Leistungsfähigkeitsdaten 134 sich ändert, aktiv berichten. Beispielsweise kann, unter der Voraussetzung einer Verwender-Anforderung, dass alle Leseanfragen innerhalb X ms bedient werden müssen, der Konfigurationsratgeber 138 die Speichervorrichtung instruieren, die Dienstzeit bzw. Servicezeit von Lese-Operationen aufzuzeichnen bzw. zu protokollieren oder ein Lese-Flag zu setzen, wenn die Servicezeit über X ms ist. Eher als ein Warten auf das Vorrichtungsprofil 122, welches von der rekonfigurierbaren Speichervorrichtung 102 zu senden ist, kann der Host 100 auch das Vorrichtungsprofil 122 von der rekonfigurierbaren Speichervorrichtung 102 periodisch oder auf Anforderungsbasis anfordern.In one embodiment, if a violation is detected, the configuration advisor may 138 also the device profile 122 from the reconfigurable storage device 102 to obtain the most recent comprehensive performance data to generate a new plan, since the notification can only include the performance of logical devices of interest. In an embodiment, the reconfigurable memory device 102 the device profile 122 periodically or whenever the status of the runtime performance data 134 changes, actively report. For example, assuming a user request, all read requests must be serviced within X ms, the configuration advisor 138 instruct the storage device to record the service time of read operations or set a read flag if the service time is over X ms. Rather than waiting for the device profile 122 that of the reconfigurable storage device 102 can be sent to the host 100 also the device profile 122 from the reconfigurable storage device 102 request periodically or on a request basis.

In einer Ausführungsform kann der Konfigurationsratgeber 138 durch die folgenden Ereignisse aktiviert werden: wenn neue Verwender-Anforderungen 123 übermittelt werden; wenn existierende Verwender-Anforderungen 123 geändert werden; wenn die Laufzeit-Leistungsfähigkeitsdaten 134 aktualisiert werden; wann immer die Laufzeit-Leistungsfähigkeitsdaten 134 benötigt werden (aufgrund eines Timeout); und/oder wann immer die rekonfigurierbare Speichervorrichtung 102 die Verwender-Anforderungen 123 nicht erfüllen kann.In one embodiment, the configuration advisor 138 be activated by the following events: when new user requests 123 be transmitted; if existing user requirements 123 to be changed; when the runtime performance data 134 to be updated; whenever the runtime performance data 134 needed (due to a timeout); and / or whenever the reconfigurable storage device 102 the user requirements 123 can not meet.

7 ist ein Blockschaltbild, welches eine weitere Ausführungsform für ein rekonfigurierbares Speichersystem veranschaulicht. Diese Ausführungsform veranschaulicht, dass eine einzelne Konfigurations-Übersetzungskomponente 700 nicht nur mehrere logische Vorrichtungen auf einer physikalischen rekonfigurierbaren Speichervorrichtung 702 verwalten kann, sondern dass sie auch mehrere andere physikalische rekonfigurierbare Speichervorrichtungen 704, 706 und 708 verwalten kann, von welchen jede mehrere logische Vorrichtungen aufweisen kann. 7 Figure 13 is a block diagram illustrating another embodiment for a reconfigurable memory system. This embodiment illustrates that a single configuration translation component 700 not just multiple logical devices on a physical reconfigurable storage device 702 It can also manage several other physical reconfigurable storage devices 704 . 706 and 708 can manage, each of which can have multiple logical devices.

Ein Verfahren und ein System für ein rekonfigurierbares Speichersystem ist offenbart worden. Die vorliegende Erfindung wurde in Übereinstimmung mit den gezeigten Ausführungsformen beschrieben und es kann Variationen für die Ausführungsformen geben, und jede Variation bzw. Abänderung wäre innerhalb des Gedankens und Umfangs der vorliegenden Erfindung. Beispielsweise kann die beispielhafte Ausführungsform unter Verwendung von Hardware, Software, einem computerlesbaren Medium, welches Programmbefehle enthält, oder einer Kombination davon implementiert werden. Software, welche gemäß der vorliegenden Erfindung geschrieben ist, muss entweder in einer Form eines computerlesbaren Mediums wie beispielsweise einem Speicher, einer Festplatte, oder einer CD/DVD-ROM gespeichert werden und muss durch einen Prozessor ausgeführt werden. Demzufolge können viele Abwandlungen durch einen Fachmann getätigt werden, ohne vom Gedanken und dem Umfang der beigefügten Ansprüche abzuweichen.A method and system for a reconfigurable storage system has been disclosed. The present invention has been described in accordance with the illustrated embodiments, and there may be variations for the embodiments, and any variation would be within the spirit and scope of the present invention. For example, the exemplary embodiment may be implemented using hardware, software, a computer-readable medium containing program instructions, or a combination thereof. Software written in accordance with the present invention must be stored in either a form of computer readable medium such as a memory, a hard disk, or a CD / DVD-ROM and must be executed by a processor. Accordingly, many modifications may be made by one skilled in the art without departing from the spirit and scope of the appended claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • KR 10-2012-0005764 [0001] KR 10-2012-0005764 [0001]

Claims (41)

Verfahren zum Rekonfigurieren eines Speichersystems, wobei das Verfahren durch wenigstens eine Softwarekomponente durchgeführt wird, welche auf wenigstens einem Prozessor (114) ablauft, aufweisend: ein Empfangen von Verwender-Anforderungsinformationen (123) für eine Speichervorrichtung (102) und ein automatisches Erzeugen von Funktionseinstellungen für die Speichervorrichtung (102) aus den Verwender-Anforderungsinformationen (123) und einem Vorrichtungsprofil (122) für die Speichervorrichtung (102); und ein Verwenden der Funktionseinstellungen, um automatisch die Speichervorrichtung (102) in eine oder mehrere logische Vorrichtungen (121) zu rekonfigurieren, welche unabhängige Verhaltenscharakteristiken haben.A method of reconfiguring a memory system, the method being performed by at least one software component residing on at least one processor ( 114 ), comprising: receiving user request information ( 123 ) for a storage device ( 102 ) and automatically generating function settings for the storage device ( 102 ) from the user request information ( 123 ) and a device profile ( 122 ) for the storage device ( 102 ); and using the function settings to automatically save the storage device ( 102 ) into one or more logical devices ( 121 ), which have independent behavioral characteristics. Verfahren nach Anspruch 1, das weiterhin Folgendes aufweist: ein Empfangen einer Rückmeldung (130) von der Speichervorrichtung (102) betreffend Laufzeit-Leistungsfähigkeitsdaten (134) wenigstens einer von der Speichervorrichtung (102) und den logischen Vorrichtungen (121); und reagierend auf eine Bestimmung, dass die Laufzeit-Leistungsfähigkeitsdaten (134) die Verwender-Anforderungsinformationen (123) nicht erfüllen, ein dynamisches Anpassen der Konfiguration einer oder mehrerer logischer Vorrichtungen (121), um die Verwender-Anforderungsinformationen (123) zu erfüllen.The method of claim 1, further comprising: receiving a response ( 130 ) from the storage device ( 102 ) concerning runtime performance data ( 134 ) at least one of the storage device ( 102 ) and the logical devices ( 121 ); and responding to a determination that the runtime performance data ( 134 ) the user request information ( 123 ) dynamically adjust the configuration of one or more logical devices ( 121 ), the user request information ( 123 ). Verfahren nach Anspruch 1, wobei die Verwender-Anforderungsinformationen (123) eine High-Level-Beschreibung von Verhaltenscharakteristiken der Speichervorichtung (102) aufweisen.The method of claim 1, wherein the user request information ( 123 ) a high-level description of behavioral characteristics of the memory device ( 102 ) exhibit. Verfahren nach Anspruch 2, wobei die High-Level-Beschreibung wenigstens eine von einer Dienstgüte-Vereinbarung (SLA) und Dienstgüte(QoS)-Anforderungen aufweist.The method of claim 2, wherein the high level description comprises at least one of a quality of service agreement (SLA) and quality of service (QoS) requirements. Verfahren nach Anspruch 3, wobei die SLA weiterhin Spezifikationen für eine beliebige Kombination von Attributen einschließlich der Kapazität, des Adressierungs-Modus, des Schutzes und der Leistungsfähigkeit aufweist.The method of claim 3, wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. Verfahren nach Anspruch 1, das weiterhin Folgendes aufweist: ein Verwenden des Vorrichtungsprofils, um zu bestimmen, ob eine Spezifikation der Verwender-Anforderungsinformationen (123) durch die Speichervorrichtung (102) erfüllt werden kann.The method of claim 1, further comprising: using the device profile to determine whether a specification of the user request information ( 123 ) by the storage device ( 102 ) can be fulfilled. Verfahren nach Anspruch 6, wobei das Vorrichtungsprofil (122) Leistungsfähigkeitsmodelle (132) aufweist, welche Funktionen der Speichervorrichtung (102), welche eine Korrelation mit der Vorrichtungs-Leistungsfähigkeit haben, zugeordnet sind.The method of claim 6, wherein the device profile ( 122 ) Performance models ( 132 ), which functions of the memory device ( 102 ), which have a correlation with the device performance, are assigned. Verfahren nach Anspruch 6, das weiterhin Folgendes aufweist: ein Speichern des Vorrichtungsprofils (122) auf der Speichervorrichtung (102) und ein Zur-Verfügung-Stellen des Vorrichtungsprofils (122) für einen Host (100).The method of claim 6, further comprising: storing the device profile ( 122 ) on the storage device ( 102 ) and providing the device profile ( 122 ) for a host ( 100 ). Verfahren nach Anspruch 6, weiterhin aufweisend: ein Speichern des Vorrichtungsprofils (122) in wenigstens einem von: einem Host (100) und einem entfernten Ort, auf welchen durch den Host (100) oder die Speichervorrichtung (102) zugegriffen werden kann.The method of claim 6, further comprising: storing the device profile ( 122 ) in at least one of: a host ( 100 ) and a remote location hosted by the host ( 100 ) or the storage device ( 102 ) can be accessed. Verfahren nach Anspruch 1, wobei das automatische Erzeugen von Funktionseinstellungen weiterhin Folgendes aufweist: ein Verwenden der Funktionseinstellungen, um bestimmte Funktionen der Speichervorrichtung (102) zu aktivieren/deaktivieren, und um Werte für bestimmte Funktionen zu spezifizieren, wobei eine Wirkung der Funktionen global für alle logischen Vorrichtungen (121) oder lokal für eine bestimmte logische Vorrichtung (121) ist.The method of claim 1, wherein automatically generating function settings further comprises: using the function settings to perform certain functions of the memory device ( 102 ) and to specify values for certain functions, wherein an effect of the functions global for all logical devices ( 121 ) or locally for a particular logical device ( 121 ). Verfahren nach Anspruch 2, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) einen Teil des Vorrichtungsprofils (122) aufweisen und Leistungsfähigkeits-Indizes, welche über eine Selbstüberwachungs-, Analyse- und Berichts-Technologie(SMART = self-monitoring, analysis and reporting technology)-Schnittstelle verfügbar sind, und Anbieter-spezifische Laufzeit-Leistungsfähigkeits-Metriken aufweisen, welche eine minimale/maximale/durchschnittliche Lese-/Schreib-Latenz, eine minimale/maximale/durchschnittliche Warteschlangen-Länge, eine minimale/maximale/durchschnittliche interne IOPS, ein Lese-/Schreib-Verstärkungsverhältnis und eine Garbage-Collection-Zeit aufweisen.The method of claim 2, wherein the runtime performance data ( 134 ) a part of the device profile ( 122 ) and performance indices that are available via a self-monitoring, analysis and reporting technology (SMART) interface and vendor-specific runtime performance metrics that provide a minimum / maximum / average read / write latency, a minimum / maximum / average queue length, a minimum / maximum / average internal IOPS, a read / write gain ratio, and a garbage collection time. Verfahren nach Anspruch 11, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) weiterhin Folgendes aufweisen: einen Vorrichtungs-Status, einen Vorrichtungs-Hintergrundjob-Status und einen Host-Hintergrundjob-Status. The method of claim 11, wherein the runtime performance data ( 134 ) further comprise: a device status, a device background job status, and a host background job status. Rekonfigurierbares Speichersystem, das Folgendes aufweist: eine Konfigurations-Übersetzungskomponente (110), welche auf einem Host (100) abläuft, welcher Verwender-Anforderungsinformationen (123) für eine Speichervorrichtung (102) empfängt und automatisch Funktionseinstellungen für die Speichervorrichtung (102) aus den Verwender-Anforderungsinformationen (123) und einem Vorrichtungsprofil (122) für die Speichervorrichtung (102) erzeugt; und eine Konfigurationskomponente, welche auf der Speichervorrichtung (102) abläuft, welche die Funktionseinstellungen von dem Host (100) empfängt und die Funktionseinstellungen verwendet, um automatisch die Speichervorrichtung (102) in eine oder mehrere logische Vorrichtungen (121) zu rekonfigurieren, welche unabhängige Verhaltenscharakteristiken haben.A reconfigurable storage system comprising: a configuration translation component ( 110 ), which are hosted on a host ( 100 ), which user request information ( 123 ) for a storage device ( 102 ) and automatically receives function settings for the storage device ( 102 ) from the user request information ( 123 ) and a device profile ( 122 ) for the storage device ( 102 ) generated; and a configuration component residing on the storage device ( 102 ) executing the function settings from the host ( 100 ) and uses the function settings to automatically save the storage device ( 102 ) into one or more logical devices ( 121 ), which have independent behavioral characteristics. System nach Anspruch 13, wobei die Konfigurations-Übersetzungskomponente (110) weiterhin konfiguriert ist, um: eine Rückmeldung (130) von der Speichervorrichtung (102) betreffend Laufzeit-Leistungsfähigkeitsdaten (134) wenigstens eines der Speichervorrichtung (102) und der logischen Vorrichtungen (121) zu empfangen; und um in Antwort auf eine Bestimmung, dass die Laufzeit-Leistungsfähigkeitsdaten (134) die Verwender-Anforderungsinformationen (123) nicht erfüllen, die Konfiguration der einen oder mehreren logischen Vorrichtungen (121) dynamisch anzupassen, um die Verwender-Anforderungsinformationen (123) zu erfüllen.The system of claim 13, wherein the configuration translation component ( 110 ) is still configured to: 130 ) from the storage device ( 102 ) concerning runtime performance data ( 134 ) at least one of the storage devices ( 102 ) and the logical devices ( 121 ) to recieve; and in response to a determination that the runtime performance data ( 134 ) the user request information ( 123 ), the configuration of the one or more logical devices ( 121 ) dynamically adjust the user request information ( 123 ). System nach Anspruch 13, wobei die Verwender-Anforderungsinformationen (123) eine High-Level-Beschreibung von Verhaltenscharakteristiken der Speichervorrichtung (102) aufweisen.The system of claim 13, wherein the user request information ( 123 ) a high-level description of behavioral characteristics of the memory device ( 102 ) exhibit. System nach Anspruch 15, wobei die High-Level-Beschreibung wenigstens eines einer Dienstgüte-Vereinbarung (SLA) und Dienstgüte(QoS)-Anforderungen aufweist.The system of claim 15, wherein the high level description comprises at least one of a quality of service agreement (SLA) and quality of service (QoS) requirements. System nach Anspruch 16, wobei die SLA weiterhin Spezifikationen für eine beliebige Kombination von Attributen einschließlich der Kapazität, des Adressierungs-Modus, des Schutzes und der Leistungsfähigkeit aufweist.The system of claim 16, wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. System nach Anspruch 13, wobei die Konfigurations-Übersetzungskomponente (110) weiterhin konfiguriert ist, um das Vorrichtungsprofil (122) zu verwenden, um zu bestimmen, ob eine Spezifikation der Verwender-Anwendungsinformationen durch die Speichervorrichtung (102) erfüllt werden kann.The system of claim 13, wherein the configuration translation component ( 110 ) is further configured to change the device profile ( 122 ) to determine whether a specification of the user application information by the storage device ( 102 ) can be fulfilled. System nach Anspruch 18, wobei das Vorrichtungsprofil (122) Leistungsfähigkeitsmodelle (132) aufweist, welche Funktionen der Speichervorrichtung (102), welche eine Korrelation mit der Vorrichtungs-Leistungsfähigkeit haben, zugeordnet sind.The system of claim 18, wherein the device profile ( 122 ) Performance models ( 132 ), which functions of the memory device ( 102 ), which have a correlation with the device performance, are assigned. System nach Anspruch 18, wobei das Vorrichtungsprofil (122) auf der (102) gespeichert ist und dem Host (100) zur Verfügung gestellt wird.The system of claim 18, wherein the device profile ( 122 ) on the ( 102 ) and the host ( 100 ) is made available. System nach Anspruch 18, wobei das Vorrichtungsprofil (122) in wenigstens einem von dem Host (100) und einem entfernten Ort, auf welchen durch den Host (100) oder die Speichervorrichtung (102) zugegriffen werden kann, ist.The system of claim 18, wherein the device profile ( 122 ) in at least one of the host ( 100 ) and a remote location hosted by the host ( 100 ) or the storage device ( 102 ) is accessible. System nach Anspruch 13, wobei die Konfigurations-Übersetzungskomponente (110) weiterhin konfiguriert ist, um die Funktionseinstellungen zu verwenden, um bestimmte Funktionen der Speichervorrichtung (102) zu aktivieren/deaktivieren, und um Werte für bestimmte Funktionen zu spezifizieren, wobei eine Wirkung der Funktionen global für alle logischen Vorrichtungen (121) ist oder lokal für eine bestimmte logische Vorrichtung (121).The system of claim 13, wherein the configuration translation component ( 110 ) is further configured to use the function settings to perform certain functions of the memory device ( 102 ) and to specify values for certain functions, wherein an effect of the functions global for all logical devices ( 121 ) or local to a particular logical device ( 121 ). System nach Anspruch 22, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) einen Teil des Vorrichtungsprofils (122) aufweisen und Leistungsfähigkeits-Indizes, welche über eine Selbstüberwachungs-, Analyse- und Berichts-Technologie(SMART = self-monitoring, analysis and reporting technology)-Schnittstelle verfügbar sind, und Anbieter-spezifische Laufzeit-Leistungsfähigkeits-Metriken aufweisen, welche eine minimale/maximale/durchschnittliche Lese-/Schreib-Latenz, eine minimale/maximale/durchschnittliche Warteschlangen-Länge, eine minimale/maximale/durchschnittliche interne IOPS, ein Lese-/Schreib-Verstärkungsverhältnis und eine Garbage-Collection-Zeit aufweisen.The system of claim 22, wherein the runtime performance data ( 134 ) a part of the device profile ( 122 ) and performance indices that are available via a self-monitoring, analysis and reporting technology (SMART) interface and provider-specific runtime performance metrics that have a minimum / maximum / average read / write latency, a minimum / maximum / average queue length, a minimum / maximum / average internal IOPS, a read / write gain ratio, and a garbage collection time. System nach Anspruch 23, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) weiterhin Folgendes aufweisen: einen Vorrichtungs-Status, einen Vorrichtungs-Hintergrundjob-Status und einen Host-Hintergrundjob-Status. The system of claim 23, wherein said runtime performance data ( 134 ) further comprise: a device status, a device background job status, and a host background job status. Ausführbares Softwareprodukt, welches auf einem computerlesbaren Speichermedium gespeichert ist, welches Programmbefehle zum Rekonfigurieren eines Speichersystems aufweist, wobei die Programmbefehle für Folgendes sind: ein Empfangen von Verwender-Anforderungsinformationen (123) für eine Speichervorrichtung (102) und ein automatisches Erzeugen von Funktionseinstellungen für die Speichervorrichtung (102) aus den Verwender-Anforderungsinformationen (123) und einem Vorrichtungsprofil (122) für die Speichervorrichtung (102); und ein Verwenden der Funktionseinstellungen, um die Speichervorrichtung (102) automatisch in eine oder mehrere logische Vorrichtungen (121) zu rekonfigurieren, welche unabhängige Verhaltenscharakteristiken haben.An executable software product stored on a computer-readable storage medium having program instructions for reconfiguring a storage system, the program instructions being: receiving user request information ( 123 ) for a storage device ( 102 ) and automatically generating function settings for the storage device ( 102 ) from the user request information ( 123 ) and a device profile ( 122 ) for the storage device ( 102 ); and using the function settings to save the storage device ( 102 ) automatically into one or more logical devices ( 121 ), which have independent behavioral characteristics. Ausführbares Softwareprodukt nach Anspruch 25, weiterhin aufweisend Programmbefehle für: ein Empfangen einer Rückmeldung (130) von der Speichervorrichtung (102) betreffend Laufzeit-Leistungsfähigkeitsdaten (134) wenigstens eines der Speichervorrichtung (102) und der logischen Vorrichtungen (121); und in Antwort auf eine Bestimmung, dass die Laufzeit-Leistungsfähigkeitsdaten (134) die Verwender-Anforderungsinformationen (123) nicht erfüllen, ein dynamisches Anpassen der Konfiguration der einen oder mehreren logischen Vorrichtungen (121), um die Verwender-Anforderungsinformationen (123) zu erfüllen.The executable software product of claim 25, further comprising program instructions for: receiving a response ( 130 ) from the storage device ( 102 ) concerning runtime performance data ( 134 ) at least one of the storage devices ( 102 ) and the logical devices ( 121 ); and in response to a determination that the runtime performance data ( 134 ) the user request information ( 123 ), dynamically adjusting the configuration of the one or more logical devices ( 121 ), the user request information ( 123 ). Ausführbares Softwareprodukt nach Anspruch 25, wobei die Verwender-Anforderungsinformationen (123) eine High-Level-Beschreibung von Verhaltenscharakteristiken der Speichervorrichtung (102) aufweisen.An executable software product according to claim 25, wherein the user request information ( 123 ) a high-level description of behavioral characteristics of the memory device ( 102 ) exhibit. Ausführbares Softwareprodukt nach Anspruch 27, wobei die High-Level-Beschreibung wenigstens eines einer Dienstgüte-Vereinbarung (SLA) und Dienstgüte(QoS)-Anforderungen aufweist.The executable software product of claim 27, wherein the high level description comprises at least one of a quality of service agreement (SLA) and quality of service (QoS) requirements. Ausführbares Softwareprodukt nach Anspruch 28, wobei die SLA weiterhin Spezifikationen für eine beliebige Kombination von Attributen einschließlich der Kapazität, des Adressierungs-Modus, des Schutzes und der Leistungsfähigkeit aufweist.The executable software product of claim 28, wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. Ausführbares Softwareprodukt nach Anspruch 25, weiterhin aufweisend Programmbefehle für: ein Verwenden des Vorrichtungsprofils (122), um zu bestimmen, ob eine Spezifikation der Verwender-Anforderungsinformationen (123) durch die Speichervorrichtung (102) erfüllt werden kann.The executable software product of claim 25, further comprising program instructions for: using the device profile ( 122 ) to determine if a specification of the user request information ( 123 ) by the storage device ( 102 ) can be fulfilled. Ausführbares Softwareprodukt nach Anspruch 30, wobei das Vorrichtungsprofil (122) Leistungsfähigkeitsmodelle (132) aufweist, welche Funktionen der Speichervorrichtung (102) zugeordnet sind, welche eine Korrelation mit der Vorrichtungs-Leistungsfähigkeit haben.An executable software product according to claim 30, wherein the device profile ( 122 ) Performance models ( 132 ), which functions of the memory device ( 102 ) having a correlation with the device performance. Ausführbares Softwareprodukt nach Anspruch 30, weiterhin aufweisend Programmbefehle für: ein Speichern des Vorrichtungsprofils (122) auf der Speichervorrichtung (102) und ein Zur-Verfügung-Stellen des Vorrichtungsprofils (122) für einen Host (100).The executable software product of claim 30, further comprising program instructions for: storing the device profile ( 122 ) on the storage device ( 102 ) and providing the device profile ( 122 ) for a host ( 100 ). Ausführbares Softwareprodukt nach Anspruch 30, weiterhin aufweisend Programmbefehle für: ein Speichern des Vorrichtungsprofils (122) in wenigstens einem von: einem Host (100) und einem entfernten Ort, auf welchen durch den Host (100) oder die Speichervorrichtung (102) zugegriffen werden kann.The executable software product of claim 30, further comprising program instructions for: storing the device profile ( 122 ) in at least one of: a host ( 100 ) and a remote location hosted by the host ( 100 ) or the storage device ( 102 ) can be accessed. Ausführbares Softwareprodukt nach Anspruch 25, wobei das automatische Erzeugen von Funktionseinstellungen weiterhin Programmbefehle für Folgendes aufweist: ein Verwenden der Funktionseinstellungen, um bestimmte Funktionen der Speichervorrichtung (102) zu aktivieren/deaktivieren, und um Werte für bestimmte Funktionen zu spezifizieren, wobei eine Wirkung der Funktionen global für alle logischen Vorrichtungen (121) oder lokal für eine spezifische logische Vorrichtung (121) ist/sind.The executable software product of claim 25, wherein automatically generating function settings further comprises program instructions for: using the function settings to perform certain functions of the memory device ( 102 ) and to specify values for certain functions, wherein an effect of the functions global for all logical devices ( 121 ) or locally for a specific logical device ( 121 ) is / are. Ausführbares Softwareprodukt nach Anspruch 34, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) einen Teil des Vorrichtungsprofils (122) aufweisen und Leistungsfähigkeits-Indizes, welche über eine Selbstüberwachungs-, Analyse- und Berichts-Technologie(SMART = self-monitoring, analysis and reporting technology)-Schnittstelle verfügbar sind, und Anbieter-spezifische Laufzeit-Leistungsfähigkeits-Metriken aufweisen, welche eine minimale/maximale/durchschnittliche Lese-/Schreib-Latenz, eine minimale/maximale/durchschnittliche Warteschlangen-Länge, eine minimale/maximale/durchschnittliche interne IOPS, ein Lese-/Schreib-Verstärkungsverhältnis und eine Garbage-Collection-Zeit aufweisen.An executable software product according to claim 34, wherein said runtime performance data ( 134 ) a part of the device profile ( 122 ) and performance indices that are available via a self-monitoring, analysis and reporting technology (SMART) interface and vendor-specific runtime performance metrics that provide a minimum / maximum / average read / write latency, a minimum / maximum / average queue length, a minimum / maximum / average internal IOPS, a read / write gain ratio, and a garbage collection time. Ausführbares Softwareprodukt nach Anspruch 35, wobei die Laufzeit-Leistungsfähigkeitsdaten (134) weiterhin Folgendes aufweisen: einen Vorrichtungs-Status, einen Vorrichtungs-Hintergrundjob-Status und einen Host-Hintergrundjob-Status. An executable software product according to claim 35, wherein said runtime performance data ( 134 ) further comprise: a device status, a device background job status, and a host background job status. Host (100), der eine Speichervorrichtung (102) rekonfiguriert, Folgendes aufweisend: einen Speicher (106); einen Prozessor (114), welcher mit dem Speicher (106) gekoppelt ist; und eine erste Softwarekomponente, welche durch den Prozessor (114) ausgeführt wird, welche konfiguriert ist, um: Verwender-Anforderungsinformationen (123) zu empfangen, welche Dienstgüte-Vereinbarungs(SLA)-Spezifikationen aufweisen; die SLA-Spezifikationen in Funktionseinstellungen basierend auf einem Vorrichtungsprofil (122) umzuwandeln; optimale Kombinationen der Funktionseinstellungen zu bestimmen; mehrere Pläne, welche Konfigurationsbefehle enthalten, aus den optimalen Kombinationen zu erzeugen; und einen der Pläne unter Berücksichtigung der Leistungsfähigkeit und des Status der Speichervorrichtung (102) und der Verwender-Anforderungen auszuwählen; und eine zweite Softwarekomponente, welche durch den Prozessor (114) ausgeführt wird, welche konfiguriert ist, um: den ausgewählten Plan zu empfangen; den Plan zu dem rekonfigurierbaren Speicher (106) über einen Konfigurationskanal zu senden; eine Antwort von der Speichervorrichtung (102) zu empfangen; und die Pläne im Falle einer negativen Antwort von der Speichervorrichtung (102) zu iterieren; und eine dritte Softwarekomponente, welche durch den Prozessor (114) ausgewählt wird, welche konfiguriert ist, um: das Vorrichtungsprofil (122) zu sammeln und das Vorrichtungsprofil (122) zu dem Konfigurationsplaner (136) zu senden; die eine oder mehrere logische Vorrichtung(en) (121), welche auf der Speichervorrichtung (102) erzeugt ist (sind), zu überwachen, und um zu bestimmen, ob alle Verwender-Anforderungen erfüllt sind; und den Konfigurationsplaner (136) zu benachrichtigen, um den Plan basierend auf dem Vorrichtungsprofil (122) im Falle einer SLA-Verletzung anzupassen.Host ( 100 ) having a storage device ( 102 ) reconfigured, comprising: a memory ( 106 ); a processor ( 114 ), which with the memory ( 106 ) is coupled; and a first software component generated by the processor ( 114 ) configured to: user request information ( 123 ) having quality of service agreement (SLA) specifications; the SLA specifications in feature settings based on a device profile ( 122 ) to transform; to determine optimal combinations of function settings; create multiple schedules containing configuration commands from the optimal combinations; and one of the plans taking into account the performance and status of the storage device ( 102 ) and to select the user requirements; and a second software component generated by the processor ( 114 ) configured to: receive the selected schedule; the plan to the reconfigurable memory ( 106 ) via a configuration channel; a response from the storage device ( 102 ) to recieve; and the plans in case of a negative response from the storage device ( 102 ) to iterate; and a third software component provided by the processor ( 114 ) which is configured to: the device profile ( 122 ) and the device profile ( 122 ) to the configuration planner ( 136 ) to send; the one or more logical device (s) ( 121 ) stored on the storage device ( 102 ) is generated, and to determine if all user requests are met; and the configuration planner ( 136 ) to update the plan based on the device profile ( 122 ) in case of SLA violation. Host (100) nach Anspruch 37, weiterhin aufweisend: mehrere Leistungsfähigkeitsmodelle (132), welche jeder Funktion der rekonfigurierbaren Speichervorrichtung (102) zugeordnet sind, Korrelationen und Anti-Korrelationen zwischen Funktionen und Planungs-Algorithmen, welche die Leistungsfähigkeitsmodelle (132) auswerten und die Konfigurationspläne erzeugen.Host ( 100 ) according to claim 37, further comprising: a plurality of performance models ( 132 ), which corresponds to each function of the reconfigurable memory device ( 102 ) correlations and anti-correlations between functions and scheduling algorithms, which are the performance models ( 132 ) and generate the configuration plans. Rekonfigurierbare Speichervorrichtung (102), die Folgendes aufweist: einen Hauptspeicher (112); einen Prozessor (114), welcher mit dem Hauptspeicher (112) gekoppelt ist; und eine Softwarekomponente, welche durch den Prozessor (114) ausgeführt wird, welche konfiguriert ist, um: einen Plan, welcher wenigstens einen Konfigurationsbefehl, welcher Funktionseinstellungen enthält, aufweist, zu empfangen; eine Verfügbarkeit und Anwendbarkeit der Funktionseinstellungen in dem Plan basierend auf einem Vorrichtungsprofil (122) zu überprüfen; wenn der Plan nicht gültig, den Plan zurückzuweisen und beliebige Änderungen, welche durch den Plan getätigt wurden, rückgängig zu machen, den Plan zu validieren, wenn sowohl die Verfügbarkeit als auch Anwendbarkeit der Funktionseinstellungen wahr sind; den Plan auszuführen und das Vorrichtungsprofil (122) zu aktualisieren; und eine oder mehrere logische Vorrichtungen (121) auf der rekonfigurierbaren Speichervorrichtung (102) durch ein Zuordnen des ausgeführten Plans zu einem Speicherort zu erzeugen.Reconfigurable storage device ( 102 ), comprising: a main memory ( 112 ); a processor ( 114 ), which is connected to the main memory ( 112 ) is coupled; and a software component generated by the processor ( 114 ) configured to: receive a schedule having at least one configuration command containing function settings; availability and applicability of function settings in the plan based on a device profile ( 122 ) to check; if the plan is not valid, reject the plan and undo any changes made by the plan to validate the plan if both the availability and applicability of the feature settings are true; execute the plan and the device profile ( 122 ) to update; and one or more logical devices ( 121 ) on the reconfigurable storage device ( 102 ) by associating the executed plan with a storage location. Rekonfigurierbare Speichervorrichtung (102) nach Anspruch 39, wobei die Softwarekomponente die Verfügbarkeit der Funktionseinstellungen durch Folgendes überprüft: ein Bestimmen, ob die rekonfigurierbare Speichervorrichtung (102) die Funktionseinstellungen unterstützt durch ein Vergleichen des Plans mit dem Vorrichtungsprofil (122).Reconfigurable storage device ( 102 ) according to claim 39, wherein the software component checks the availability of the function settings by: determining whether the reconfigurable memory device ( 102 ) supports the function settings by comparing the plan with the device profile ( 122 ). Rekonfigurierbare Speichervorrichtung (102) nach Anspruch 40, wobei die Softwarekomponente die Anwendbarkeit der Funktionseinstellungen überprüft durch: ein Abschätzen eines Grades der Anpassung an Funktionen basierend auf dem Vorrichtungsprofil (122) und durch ein Steuern der Anpassung der Funktionen innerhalb einer anwendbaren Grenzfunktion basierend auf dem Vorrichtungsprofil (122).Reconfigurable storage device ( 102 ) according to claim 40, wherein the software component checks the applicability of the function settings by: estimating a degree of adaptation Functions based on the device profile ( 122 ) and by controlling the adaptation of the functions within an applicable limit function based on the device profile ( 122 ).
DE201310114069 2013-01-03 2013-12-16 Memory system for changing operating characteristics of storage device i.e. solid state drive, has storage including adaptation controller to receive command from configuration controller and to determine whether to enable feature Pending DE102013114069A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/733,309 2013-01-03
US13/733,309 US20130185482A1 (en) 2012-01-18 2013-01-03 Memory system using a storage having firmware with a plurality of features
US13/936,992 2013-07-08
US13/936,992 US9239786B2 (en) 2012-01-18 2013-07-08 Reconfigurable storage device

Publications (1)

Publication Number Publication Date
DE102013114069A1 true DE102013114069A1 (en) 2014-07-03

Family

ID=50928582

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201310114069 Pending DE102013114069A1 (en) 2013-01-03 2013-12-16 Memory system for changing operating characteristics of storage device i.e. solid state drive, has storage including adaptation controller to receive command from configuration controller and to determine whether to enable feature

Country Status (4)

Country Link
JP (1) JP6694665B2 (en)
KR (1) KR102087612B1 (en)
CN (1) CN103927127B (en)
DE (1) DE102013114069A1 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282100B2 (en) * 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
CN104301430B (en) * 2014-10-29 2016-04-13 北京麓柏科技有限公司 Software definition storage system, method and common control equipment thereof
JP6394315B2 (en) 2014-11-20 2018-09-26 富士通株式会社 Storage management device, performance adjustment method, and performance adjustment program
JP6428231B2 (en) 2014-12-15 2018-11-28 富士通株式会社 Storage management device, performance adjustment method, and performance adjustment program
KR102336443B1 (en) * 2015-02-04 2021-12-08 삼성전자주식회사 Storage device and user device supporting virtualization function
US9645922B2 (en) * 2015-09-10 2017-05-09 HoneycombData Inc. Garbage collection in SSD drives
US10423331B2 (en) * 2016-02-02 2019-09-24 Samsung Electronics Co., Ltd. Polymorphic storage devices
US11287973B2 (en) 2016-02-02 2022-03-29 Samsung Electronics Co., Ltd. Polymorphic storage devices
US10616050B2 (en) * 2017-05-05 2020-04-07 VCE IP Holding Company LLC Software defined storage (SDS) system with network tiering
CN109783000B (en) * 2017-11-10 2022-08-26 成都华为技术有限公司 Data processing method and equipment
US10678439B2 (en) * 2018-04-02 2020-06-09 Micron Technology, Inc. Optimization of memory systems based on performance goals
CN109614035A (en) * 2018-11-01 2019-04-12 郑州云海信息技术有限公司 A kind of method and system for supporting settlement server storage medium sequence flexible configuration
US11210215B2 (en) 2019-10-01 2021-12-28 Neuchips Corporation Computing device and operation method thereof
US11321257B2 (en) * 2019-12-31 2022-05-03 Micron Technology, Inc. Quality of service control of logical devices for a memory sub-system
US10992299B1 (en) * 2020-03-09 2021-04-27 Gowin Semiconductor Corporation Method and system for providing word addressable nonvolatile memory in a programmable logic device
CN113657720B (en) * 2021-07-21 2023-08-29 新浪技术(中国)有限公司 Method, system, medium and equipment for automatically planning CDN server disk
CN115826886B (en) * 2023-02-24 2023-05-12 浪潮电子信息产业股份有限公司 Data garbage collection method, device and system in additional write mode and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120005764A (en) 2010-07-09 2012-01-17 삼성에스디아이 주식회사 Dyes for dye-sensitive solar cells, manufacturing method thereof and solar cells using the same

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487562B1 (en) * 1999-12-20 2002-11-26 Emc Corporation Dynamically modifying system parameters in data storage system
US7010493B2 (en) * 2001-03-21 2006-03-07 Hitachi, Ltd. Method and system for time-based storage access services
US7159093B2 (en) * 2002-12-20 2007-01-02 Veritas Operating Corporation Development of a detailed logical volume configuration from high-level user requirements
US8416691B1 (en) * 2006-04-27 2013-04-09 Alcatel Lucent Associating hosts with subscriber and service based requirements
JP5745749B2 (en) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method for automatically managing storage infrastructure and suitable storage infrastructure
US8095764B1 (en) * 2008-06-30 2012-01-10 Emc Corporation Dynamic application aware storage configuration
WO2010047989A1 (en) * 2008-10-20 2010-04-29 At & T Mobility Ii Llc Device network technology selection and display in multi-technology wireless environments
US8495295B2 (en) 2009-05-10 2013-07-23 Infinidat Ltd. Mass storage system and method of operating thereof
KR101673622B1 (en) * 2011-01-28 2016-11-08 삼성전자주식회사 Method and apparatus for providing qos-based service in wireless communication system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120005764A (en) 2010-07-09 2012-01-17 삼성에스디아이 주식회사 Dyes for dye-sensitive solar cells, manufacturing method thereof and solar cells using the same

Also Published As

Publication number Publication date
CN103927127B (en) 2018-07-03
KR102087612B1 (en) 2020-04-14
CN103927127A (en) 2014-07-16
JP2014132457A (en) 2014-07-17
JP6694665B2 (en) 2020-05-20
KR20140088834A (en) 2014-07-11

Similar Documents

Publication Publication Date Title
DE102013114069A1 (en) Memory system for changing operating characteristics of storage device i.e. solid state drive, has storage including adaptation controller to receive command from configuration controller and to determine whether to enable feature
US9239786B2 (en) Reconfigurable storage device
DE202010017613U1 (en) Data storage device with host-controlled garbage collection
DE112019000194T5 (en) Use a failed storage device in a peer-to-peer storage system to perform a storage-centric task
DE112013001889T5 (en) Dynamically allocate a workload across a variety of clouds
DE202012013432U1 (en) Storing data on storage nodes
DE102016105589A1 (en) Apply firmware updates in a zero-downtime system by selectively turning off and on hardware using a hypervisor layer
DE102015102678A1 (en) START IMAGE DISCOVERY AND REPRODUCTION
DE202010017667U1 (en) Data storage device with flash memory chips
DE112012004318T5 (en) Use a virtual disk as a hot spare for a RAID group
DE102013215009A1 (en) Method and system for optimizing data transmission
DE112012003505T5 (en) Automated selection of capabilities to reduce storage capacity based on performance requirements
DE102013204186A1 (en) Determine priorities for cached objects to organize the transfer of changes to cached objects based on measured network bandwidth
DE102012218269A1 (en) Interface for managing data movement in a thin provisioning storage system
DE112012001162T5 (en) Defragmentation of datastore pools
DE112013004805T5 (en) Support coordinated access to a shared storage of a file system using automatic alignment of a parallel file access protocol and metadata management
DE112010003794T5 (en) Data storage using bitmaps
DE112012002452T5 (en) Adaptive caching of data sets for semiconductor boards
DE102017128967A1 (en) A storage device that performs a hashing-based translation between a logical address and a physical address
DE112020004181T5 (en) PROVIDE DIRECT DATA ACCESS BETWEEN ACCELERATORS AND STORAGE IN A COMPUTING ENVIRONMENT
DE102021115763A1 (en) WRITE CURRENT PRIORITY IDENTIFICATION AND CLASSIFICATION
DE112011106066T5 (en) System and method for providing differentiated storage service in the database
DE102018209188A1 (en) Technologies for managing the quality of service for platform connections
DE102018110704A1 (en) A storage device for pre-managing a physical address to be assigned to a write data
DE112019000402T5 (en) CHRONOLOGICALLY ORDERED OUT-OF-PLACE UPDATE KEY VALUE STORAGE SYSTEM

Legal Events

Date Code Title Description
R012 Request for examination validly filed