DE102019112772A1 - Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung - Google Patents

Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung Download PDF

Info

Publication number
DE102019112772A1
DE102019112772A1 DE102019112772.6A DE102019112772A DE102019112772A1 DE 102019112772 A1 DE102019112772 A1 DE 102019112772A1 DE 102019112772 A DE102019112772 A DE 102019112772A DE 102019112772 A1 DE102019112772 A1 DE 102019112772A1
Authority
DE
Germany
Prior art keywords
qos
path
deadline
request packet
metadata
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
DE102019112772.6A
Other languages
English (en)
Inventor
Piotr Wysocki
Maciej Andrzej KOPROWSKI
Grzegorz JERECZEK
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102019112772A1 publication Critical patent/DE102019112772A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

Technologien für eine Ende-zu-Ende-Dienstgüte für E/A-Operationen umfassen ein Datenverarbeitungsgerät in einem E/A-Pfad. Das Datenverarbeitungsgerät empfängt ein E/A-Anforderungspaket von einem anderen Datenverarbeitungsgerät in dem E/A-Pfad. Das E/A-Anforderungspaket enthält eine oder mehrere QoS-Fristmetadaten. Die QoS-Fristmetadaten geben Latenzinformationen an, die sich auf eine aktuell ausgeführte Arbeitslast in Bezug auf eine festgelegte QoS beziehen. Das Datenverarbeitungsgerät bewertet die QoS-Fristmetadaten und weist dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten Metadaten eine Priorität zu.

Description

  • HINTERGRUND
  • Die Dienstgüte (Quality of Service, QoS) bezieht sich im Allgemeinen auf eine Messung der Gesamtleistung eines Dienstes. Eine Dienstgütevereinbarung (Service Level Agreement, SLA) zwischen einem Anbieter (z. B. einem Cloud-Dienstanbieter) und einem Benutzer kann QoS-Anforderungen festlegen, die von dem Anbieter eingehalten werden müssen, während der Dienst für den Benutzer durchgeführt wird. Beispielsweise kann die SLA Leistungsmetriken, wie etwa E/A-Latenz, Netzwerkbandbreite und Verfügbarkeit, festlegen, die im Rahmen der Dienstgüte eingehalten werden sollen.
  • Die E/A-Latenz ist eine QoS-Metrik, die zunehmende Bedeutung gewinnt. Beispielsweise kann ein Benutzer bei einem verteilten Speicherschema wünschen, dass Speicher-E/A-Leseanforderungen mit einer relativ geringen Latenz gemäß einer SLA verarbeitet werden, z. B. unter 500 µs. Viele Beitragende beeinflussen jedoch die Gesamtlatenz einer E/A-Anforderung, wie etwa die Latenz von Softwareschichten des anfordernden Datenverarbeitungsgeräts, die Latenz von zwischengeschalteten Netzwerkgeräten, die durch Netzwerkkabel verursachte Latenz, die Latenz von Softwareschichten in einem verteilten Speichergerät, die Latenz von Speicherlaufwerken und dergleichen. In einem aktuellen Ansatz wird die statische Priorisierung von E/A-Anforderungen verwendet, um sicherzustellen, dass die E/A-Latenz die QoS-Anforderungen erfüllt. Dieser Ansatz ist jedoch ineffizient, da einige Anforderungen in bestimmten Situationen möglicherweise überpriorisiert werden und die Infrastruktur mehr als erforderlich herausfordern.
  • Figurenliste
  • Die hierin beschriebenen Konzepte werden beispielhaft und nicht einschränkend in den beigefügten Figuren dargestellt. Zur Vereinfachung und Klarheit der Darstellung sind die in den Figuren veranschaulichten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Wo es angemessen erscheint, wurden Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen.
    • 1 ist ein vereinfachtes Blockdiagramm einer beispielhaften Computerumgebung, in der E/A-Anforderungen unter Verwendung eines Dienstgüte(QoS)-Frist-bewussten Planers priorisiert werden;
    • 2 ist ein vereinfachtes Blockdiagramm, das Beitragende zu einer Latenz einer E/A-Anforderung von Ende zu Ende darstellt;
    • 3 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform eines beispielhaften Datenverarbeitungsgeräts, das in Bezug auf 1 beschrieben wurde;
    • 4 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform einer Umgebung, die durch das Datenverarbeitungsgerät von 3 eingerichtet werden kann;
    • 5 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform von QoS-Metadaten, die in ein E/A-Anforderungspaket in dem Datenverarbeitungsgerät von 3 eingebettet sein können;
    • 6 und 7 sind vereinfachte Flussdiagramme eines Verfahrens zur Verarbeitung eines E/A-Anforderungspakets, das QoS-Anforderungen unterliegt; und
    • 8 ist ein vereinfachtes Flussdiagramm, das die Latenz in jeder Stufe eines E/A-Pfads für eine beispielhafte E/A-Anforderung darstellt.
  • DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Konzepte der vorliegenden Offenbarung verschiedenen Modifizierungen und alternativen Formen unterliegen können, sind dennoch spezifische Ausführungsformen hierin beispielhaft in den Zeichnungen dargestellt und detailliert beschrieben. Es sollte jedoch beachtet werden, dass nicht beabsichtigt ist, die Konzepte der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu beschränken, sondern alle Modifikationen, Äquivalente und Alternativen abzudecken, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen im Einklang stehen.
  • Die Bezugnahme in dieser Beschreibung auf „eine bestimmte Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ etc. bedeutet, dass die Ausführungsform eine bestimmte Funktion, eine Struktur oder ein Merkmal einschließen kann, nicht aber jede Ausführungsform diese bestimmte Funktion, die Struktur oder das Merkmal notwendigerweise einschließen kann oder muss. Darüber hinaus beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Ferner, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird vorgebracht, dass es im Wissen von Fachleuten auf dem Gebiet liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu erwirken, egal, ob es bzw. sie explizit beschrieben wird oder nicht. Darüber hinaus sollte beachtet werden, dass Elemente, die in einer Liste in der Form von „mindestens eines von A, B und C“ enthalten sind, nur A, nur B, nur C, nur A und B, nur A und C, nur B und C oder A, B und C bedeuten können. In ähnlicher Weise können Elemente, die in der Form „mindestens eines von A, B oder C“ aufgelistet sind, nur A, nur B, nur C, nur A und B, nur A und C, nur B und C oder A, B und C bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert sein. Die offenbarten Ausführungsformen können auch als Anweisungen implementiert werden, die auf einem vorübergehenden oder nicht vorübergehenden maschinenlesbaren (z. B. computerlesbaren) Speichermedium getragen oder gespeichert werden, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als ein(e) beliebige(r) Speichervorrichtung, Mechanismus oder andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (z. B. ein flüchtiger oder nicht flüchtiger Speicher, eine Medienplatte oder andere Medienvorrichtung) verkörpert sein.
  • In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in spezifischen Anordnungen und/oder Sortierungen gezeigt werden. Es sollte jedoch erkannt werden, dass solche spezifischen Anordnungen und/oder Sortierungen möglicherweise nicht erforderlich sind. Vielmehr können solche Merkmale in einigen Ausführungsformen auf eine andere Art und/oder in einer anderen Reihenfolge als in den beispielhaften Figuren gezeigt angeordnet sein. Zusätzlich soll das Einbeziehen eines Struktur- oder Verfahrensmerkmals in einer bestimmten Figur nicht implizieren, dass ein solches Merkmal in allen Ausführungsformen erforderlich ist und in einigen Ausführungsformen nicht enthalten sein oder mit anderen Merkmalen kombiniert sein kann.
  • Bezugnehmend auf 1 wird eine Computerumgebung 100 gezeigt, in der ein Dienstgüte (QoS)-Frist-bewusster E/A-Planer angepasst werden kann. In einigen Ausführungsformen ist die Computerumgebung 100 als Cloud-Anbieter-Netzwerk 102 verkörpert, das mit einem Netzwerk 116 (z. B. dem Internet) verbunden ist. Das Cloud-Anbieter-Netzwerk 102 kann ein Datenverarbeitungsgerät 104, ein oder mehrere Netzwerkgeräte 108 und ein Speichergerät 110 enthalten. Sowohl das Datenverarbeitungsgerät 104 als auch das Speichergerät 110 können als ein physisches Computersystem (z. B. ein Desktop-Computer, ein Arbeitsplatzrechner etc.) oder als eine virtuelle Datenverarbeitungsinstanz (z. B. in der Cloud ausgeführt) verkörpert sein. Die Netzwerkgeräte 108 können als ein beliebiges physisches Netzwerkgerät (z. B. ein Router oder ein Schalter) oder eine virtuelle Datenverarbeitungsinstanz verkörpert sein.
  • Das Speichergerät 110 kann einen verteilten Speicherdienst 111 ausführen, der für das Datenverarbeitungsgerät 104 einen Fernspeicher-E/A-Zugriff auf ein oder mehrere Speicherlaufwerke 114 (z. B. Solid-State-Laufwerke (SSDs), Festplattenlaufwerke (HDDs) und dergleichen) bereitstellt. Insbesondere kann das Datenverarbeitungsgerät 104 eine oder mehrere Arbeitslasten, wie etwa eine Anwendung 105, für Benutzer ausführen. Während der Ausführung kann die Anwendung 105 eine E/A-Anforderung zur Durchführung eines Speicher-E/A-Vorgangs (z. B. einen Speicher-E/A-Lese- oder □ Schreibvorgang) an den Speicherdienst 111 senden. Der Speicherdienst 111 führt wiederum den angeforderten Vorgang auf einem der Speicherlaufwerke 114 aus und gibt eine Bestätigung an die Anwendung 105 zurück. Ferner verbinden die Netzwerkgeräte 108 das Datenverarbeitungsgerät 104 mit dem Speichergerät 110. Dadurch kann der Datenverkehr (z. B. E/A-Anforderungen und □ Bestätigungen) zwischen dem Datenverarbeitungsgerät 104 und dem Speichergerät 110 ein oder mehrere der Netzwerkgeräte 108 durchlaufen.
  • In der beispielhaften Computerumgebung 100 kann die Arbeitslast einer QoS-Anforderung in Bezug auf die E/A-Latenz unterliegen. Beispielsweise kann eine Dienstgütevereinbarung (SLA) erfordern, dass die E/A-Latenz innerhalb eines bestimmten Bereichs bleibt, beispielsweise unter 500 µs pro Anforderung. In der Regel wird die resultierende Latenz einer E/A-Operation von einer Reihe von Beitragenden beeinflusst. Beispielsweise wird bezugnehmend auf 2 ein Blockdiagramm gezeigt, das solche Beitragenden zur Latenz in einer E/A-Operation in dem Cloud-Anbieter-Netzwerk 102 veranschaulicht. Zur Veranschaulichung stellt 2 einen E/A-Pfad mit Verarbeitungsstufen dar, die dem Datenverarbeitungsgerät 104, den Netzwerkgeräten 1081-3 und dem Speichergerät 110 zugeordnet sind. In diesem Beispiel stammt eine E/A-Anforderung von der Anwendung 105, wird bei einem Speichersoftware-Stapel/von Betriebssystem (OS)-Treibern 202 des Datenverarbeitungsgeräts verarbeitet, durchläuft jedes der Netzwerkgeräte und kommt bei dem Speicherdienst 110 an. Der Speicherdienst 110 führt dann die E/A-Operation auf den Speicherlaufwerken 114 durch und gibt eine Bestätigung an die Anwendung 105 zurück. Wie gezeigt, verursacht die E/A-Anforderung in jeder Verarbeitungsstufe des Pfads eine gewisse Latenz. Beispielsweise verursacht die E/A-Anforderung 10 µs Latenz bei dem/den Speicherstapel/OS-Treibern 202, und die E/A-Anforderung verursacht 5 µs, wenn sie sich zwischen dem Datenverarbeitungsgerät 104 und dem Netzwerkgerät 1081 bewegt. Gemäß diesem Beispiel soll ein perfekter Lese-E/A-Pfad innerhalb von 340 µs abgeschlossen werden.
  • Wie hierin ferner beschrieben, offenbaren Ausführungsformen einen Dienstgütefrist-bewussten Ende-zu-Ende-E/A-Planer, der mit jeder Komponente des Cloud-Anbieter-Netzwerks 102 (z. B. dem Datenverarbeitungsgerät 104, den Netzwerkgeräten 108, dem Speichergerät 110 und dem/den Speicherlaufwerk(en) 114) konfiguriert ist. Unter erneuter Bezugnahme auf 1 enthalten jedes von dem Datenverarbeitungsgerät 104, den Netzwerkgeräten 108 und dem Speichergerät 110 jeweils einen E/A-Planer 106, 109 und 112. Obwohl nicht in 1 gezeigt, enthalten die Speicherlaufwerke 114 in einigen Ausführungsformen ebenfalls einen E/A-Planer. Der E/A-Planer ist konfiguriert, um eine Information in Bezug auf eine QoS-Anforderung (z. B. die E/A-Latenz) in einer E/A-Anforderung zu enthalten, wie etwa im Paket-Header der Anforderung. In jeder Verarbeitungsstufe in einem bekannten E/A-Pfad bewertet die Komponente mittels des jeweiligen E/A-Planers die QoS-Information, um Zeitgebungsmerkmale zu bestimmen, wie etwa eine tatsächliche verbleibende Zeit, um eine QoS-Anforderung zu erfüllen, die verbleibende Zeit auf jedem Pfad, um die E/A-Anforderung unter idealen Bedingungen zu verarbeiten, und eine Fortschrittsanzeige (z. B. welche Stufen im E/A-Pfad die Verarbeitung der Anforderung abgeschlossen haben). Auf diese Weise kann der E/A-Planer die E/A-Anforderung basierend auf der im Paket enthaltenen QoS-Information dynamisch priorisieren. Daher erübrigt sich durch das Einschließen von QoS-Informationen in ein E/A-Anforderungspaket die Notwendigkeit, einer bestimmten Prioritätsstufe eine E/A-Klasse zuzuweisen, wodurch sichergestellt wird, dass jede Komponente im E/A-Pfad effizient verwendet wird, unabhängig davon, ob eine Arbeitslast oder mehrere Arbeitslasten gleichzeitig E/A-Anforderungen ausgeben.
  • Zu beachten ist, dass sich das Folgende auf eine Datenverarbeitungsumgebung bezieht, die Fernspeicher-E/A-Operationen als Referenzbeispiel für einen QoS -Frist-bewussten E/A-Planer durchführt. Fachleute auf dem Gebiet werden jedoch erkennen, dass die hierin beschriebenen Ausführungsformen an verschiedene E/A-Operationen angepasst werden können, wie etwa Netzwerk-E/A-Operationen.
  • Bezugnehmend auf 3 kann ein Datenverarbeitungsgerät 300 als ein beliebiger Typ von Gerät verkörpert sein, der in der Lage ist, die hierin beschriebenen Funktionen durchzuführen, einschließlich des Empfangens eines E/A-Anforderungspakets von einem Datenverarbeitungsgerät (oder einer anderen E/A-Pfadkomponente) in einem E/A-Pfad, des Bewertens von einem oder mehreren QoS-Fristmetadatenelementen in dem E/A-Anforderungspaket und des Zuweisens einer Priorität zum E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten. Es sei angemerkt, dass das Datenverarbeitungsgerät 300 für eines der mit Bezug auf 1 und 2 beschriebenen Datenverarbeitungsgeräte 104, Netzwerkgeräte 108 und Speichergeräte 110 repräsentativ sein kann.
  • Wie gezeigt, enthält das beispielhafte Datenverarbeitungsgerät 300 eine Datenverarbeitungs-Engine 302, ein Eingabe-/Ausgabe (E/A)-Subsystem 308, eine Kommunikationsschaltung 310 und eine oder mehrere Datenspeichergeräte 314. Selbstverständlich kann in anderen Ausführungsformen das Datenverarbeitungsgerät 300 andere oder zusätzliche Komponenten enthalten, wie etwa jene, die üblicherweise in einem Computer (z. B. eine Anzeigevorrichtung, Peripheriegeräte etc.) zu finden sind, wie etwa Peripheriegeräte. Zusätzlich können in einigen Ausführungsformen eine oder mehrere der beispielhaften Komponenten in eine andere Komponente eingeschlossen sein oder auf andere Weise einen Teil davon bilden.
  • Die Datenverarbeitungs-Engine 302 kann als ein beliebiger Typ von Gerät oder eine Sammlung von Geräten verkörpert sein, die in der Lage sind, verschiedene nachstehend beschriebene Datenverarbeitungsfunktionen durchzuführen. In einigen Ausführungsformen kann die Datenverarbeitungs-Engine 302 als eine einzelne Vorrichtung, wie etwa eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Gate-Array (FPGA), ein Ein-Chip-System (System-on-a-Chip, SOC) oder ein anderes integriertes System oder Gerät, verkörpert sein. Zusätzlich enthält in einigen Ausführungsformen die Datenverarbeitungs-Engine 302 einen Prozessor 304 und einen Speicher 306 oder ist als solche verkörpert. Der Prozessor 304 kann als ein oder mehrere Prozessoren verkörpert sein, wobei jeder Prozessor ein Typ ist, der die hier beschriebenen Funktionen ausführen kann. Beispielsweise kann der Prozessor 304 als Einzel- oder Mehrkernprozessoren, Mikrocontroller oder anderer Prozessor oder Verarbeitungs-/Steuerschaltung verkörpert sein. In einigen Ausführungsformen kann der Prozessor 304 als ein FPGA, ein ASIC, eine rekonfigurierbare Hardware oder Hardwareschaltung oder eine andere spezialisierte Hardware verkörpert, in dieser enthalten oder damit gekoppelt sein, um die Durchführung der hierin beschriebenen Funktionen zu erleichtern.
  • Der Speicher 306 kann als ein beliebiger Typ eines flüchtigen Speichers (z. B. dynamischer Direktzugriffsspeicher etc.) oder nichtflüchtigen Speichers (z. B. byteadressierbarer Speicher) oder Datenspeichers verkörpert sein, der in der Lage ist, die hierin beschriebenen Funktionen durchzuführen. Der flüchtige Speicher kann ein Speichermedium sein, das Strom benötigt, um den Zustand der auf dem Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Arten von Direktzugriffsspeichern (RAM) umfassen, wie etwa ein DRAM oder ein statischer Direktzugriffsspeicher (SRAM). Ein bestimmter DRAM-Typ, der in einem Speichermodul verwendet werden kann, ist ein synchroner dynamischer Direktzugriffsspeicher (SDRAM). In bestimmten Ausführungsformen kann der DRAM einer Speicherkomponente einem von JEDEC herausgegebenen Standard entsprechen, wie JESD79F für DDR-SDRAM, JESD79-2F für DDR2-SDRAM, JESD79-3F für DDR3-SDRAM, JESD79-4A für DDR4-SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden, und die Kommunikationsschnittstellen der Speichergeräte, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden.
  • In einer Ausführungsform ist das Speichergerät ein blockadressierbares Speichergerät, wie etwa jene, die auf NAND- oder NOR-Technologien basieren. Ein Speichergerät kann auch eine dreidimensionale Crosspoint-Speichervorrichtung (z. B. ein Intel 3D XPoint™-Speicher) oder eine andere byteadressierbare nichtflüchtige überschreibende Speichervorrichtung enthalten. In einer Ausführungsform kann das Speichergerät eine Speichervorrichtung sein oder enthalten, die Chalkogenidglas, einen NAND-Flash-Speicher mit mehreren Schwellenwerten, einen NOR-Flash-Speicher, einen ein- oder mehrstufigen Phasenänderungsspeicher (Phase Change Memory, PCM), einen resistiven Speicher, einen Nanodrahtspeicher, einen ferroelektrischen Transistor-Direktzugriffsspeicher (Ferroelectric Transistor Random Access Memory, FeTRAM), einen anti-ferroelektrischen Speicher, einen magnetoresistiven Direktzugriffsspeicher (Magnetoresistive Random Access Memory, MRAM) mit Memristortechnologie, einen resistiven Speicher, der den Metalloxid-basierten, den Sauerstoffleerstellen-basierten und den leitfähigen Brücken-Direktzugriffsspeicher (Conductive Bridge Random Access Memory, CB-RAM) beinhaltet, oder einen Spin-Transfer-Drehmoment (Spin-Transfer Torque, STT)-MRAM, eine auf einem magnetischen Spintronic-Übergangsspeicher basierende Vorrichtung, eine auf einem magnetischen Tunnelübergang (Magnetic Tunneling Junction, MJT) basierende Vorrichtung, eine auf einer Domänenwand (DW) und auf einem Spin-Bahn-Transfer (Spin-Orbit Transfer, SOT) basierende Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination aus einem der vorstehenden oder einem anderen Speicher verwendet. Das Speichergerät kann sich auf den Chip selbst und/oder auf ein verpacktes Speicherprodukt beziehen.
  • In einigen Ausführungsformen kann ein 3D-Crosspoint-Speicher (z. B. ein Intel 3D XPoint™-Speicher) eine stapelbare Crosspoint-Architektur ohne Transistor umfassen, in der Speicherzellen am Schnittpunkt von Wortleitungen und Bitleitungen sitzen und einzeln adressierbar sind und in der die Bitspeicherung auf einer Änderung des Bahnwiderstands basiert. In einigen Ausführungsformen kann der gesamte Speicher 306 oder ein Teil davon in den Prozessor 304 integriert sein.
  • Die Datenverarbeitungs-Engine 302 ist kommunikativ mit anderen Komponenten der Datenverarbeitungsumgebung 100 über das E/A-Subsystem 308 gekoppelt, das als Schaltung und/oder Komponenten verkörpert sein kann, um Eingabe-/Ausgabeoperationen mit der Datenverarbeitungs-Engine 302 (z. B. mit dem Prozessor 304 und/oder dem Speicher 306) und anderen Komponenten des Datenverarbeitungsgeräts 300 zu ermöglichen. Beispielsweise kann das E/A-Subsystem 308 als Speichersteuerungs-Hubs, Eingabe-/Ausgabesteuer-Hubs, integrierte Sensor-Hubs, Firmwaregeräte, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenspuren etc.) und/oder andere Komponenten und Subsysteme zur Erleichterung der Eingabe-/Ausgabeoperationen verkörpert sein oder diese enthalten. In einigen Ausführungsformen kann das E/A-Subsystem 308 einen Teil eines Ein-Chip-Systems (SoC) bilden und zusammen mit dem Prozessor 304, dem Speicher 306 und/oder anderen Komponenten des Datenverarbeitungsgeräts 300 in die Datenverarbeitungs-Engine 302 eingeschlossen sein.
  • Die Kommunikationsschaltung 310 kann als eine beliebige Kommunikationsschaltung, □ vorrichtung oder □ sammlung davon verkörpert sein, die in der Lage ist, Kommunikationen über ein Netzwerk zwischen dem Datenverarbeitungsgerät 300 und anderen Geräten, wie etwa Komponentenvorrichtungen in einem gegebenen E/A-Pfad (z. B. das Datenverarbeitungsgerät 104, Netzwerkgerät 108, Speichergerät 110 etc.) zu ermöglichen. Die Kommunikationsschaltung 310 kann konfiguriert sein, um eine oder mehrere Kommunikationstechnologien (z. B. die drahtgebundene oder drahtlose Kommunikation) und zugeordnete Protokolle (z. B. Ethernet, Bluetooth®, Wi-Fi®, WiMAX etc.) zu verwenden, um eine solche Kommunikation zu bewirken.
  • Die beispielhafte Kommunikationsschaltung 310 enthält eine Netzwerkschnittstellensteuerung (Network Interface Controller, NIC) 312, die auch als Host-Fabric-Schnittstelle (Host Fabric Interface, HFI) bezeichnet werden kann. Die NIC 312 kann als eine oder mehrere Erweiterungskarten, Tochterkarten, Steuerungs-Chips, Chipsätze oder andere Vorrichtungen verkörpert sein, die von dem Datenverarbeitungsgerät 300 zur Netzwerkkommunikation mit entfernten Geräten verwendet werden können. Beispielsweise kann die NIC 312 als eine Erweiterungskarte verkörpert sein, die über einen Erweiterungsbus, wie etwa PCI Express, mit dem E/A-Subsystem 308 gekoppelt ist.
  • Die eine oder mehreren beispielhaften Datenspeichergeräte 314 können als jede Art von Vorrichtungen verkörpert sein, die zum kurzzeitigen oder langfristigen Speichern von Daten konfiguriert sind, wie etwa beispielsweise Speichergeräte und Schaltungen, Speicherkarten, Festplattenlaufwerke (HDDs), Solid-State-Laufwerke (SSDs) oder andere Datenspeichergeräte. Jedes Datenspeichergerät 314 kann eine Systempartition enthalten, die Daten und Firmwarecode für das Datenspeichergerät 314 speichert. Jedes Datenspeichergerät 314 kann auch eine Betriebssystempartition enthalten, die Datendateien und ausführbare Dateien für ein Betriebssystem speichert.
  • Zusätzlich oder alternativ kann das Datenverarbeitungsgerät 300 ein oder mehrere Peripheriegeräte enthalten. Solche Peripheriegeräte können jeden Typ von Peripheriegerät enthalten, der üblicherweise in einem Datenverarbeitungsgerät zu finden ist, wie etwa eine Anzeigevorrichtung, Lautsprecher, eine Maus, eine Tastatur und/oder andere Eingabe-/Ausgabegeräte, Schnittstellengeräte und/oder andere Peripheriegeräte.
  • Wie vorstehend beschrieben, kommuniziert der Cloud-Anbieter-Dienst 102 beispielsweise über das Netzwerk 116, das als eine beliebige Art von drahtgebundenem oder drahtlosem Kommunikationsnetzwerk verkörpert sein kann, einschließlich globaler Netzwerke (z. B. das Internet), lokaler Netzwerke (LANs) oder Weitverkehrsnetzwerke (WANs), Mobilfunknetze (z. B. Global System for Mobile Communications (GSM), 3G, Long Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMAX) etc.), digitaler Teilnehmerleitungs(DSL)-Netzwerke, Kabelnetzwerke (z. B. Koaxialnetzwerke, Glasfasernetzwerke etc.) oder eine beliebige Kombination davon.
  • Bezugnehmend auf 4 kann das Datenverarbeitungsgerät 300 während des Betriebs eine Umgebung 400 einrichten. Die beispielhafte Umgebung 400 enthält ein Netzwerkkommunikationsgerät 420, eine Taktkomponente 430 und einen E/A-Planer 440. Jede der Komponenten der Umgebung 400 kann als Hardware, Firmware, Software oder eine Kombination davon verkörpert sein. Ferner können in einigen Ausführungsformen eine oder mehrere der Komponenten der Umgebung 400 als eine Schaltung oder eine Sammlung von elektrischen Vorrichtungen (z. B. eine Netzwerkkommunikationsschaltung 420, eine Taktkomponentenschaltung 430 und eine E/A-Planerschaltung 440 etc.) verkörpert sein. Es sollte jedoch erkannt werden, dass in solchen Ausführungsformen eine oder mehrere der Netzwerkkommunikationsschaltungen 420, der Taktkomponentenschaltungen 430, der E/A-Planungsschaltungen 440 einen Teil einer oder mehrerer der NIC 312, der Datenverarbeitungs-Engine 302, der Kommunikationsschaltung 310, dem E/A-Subsystem 308 und/oder andere Komponenten des Datenverarbeitungsgeräts 300 bilden können.
  • In der beispielhaften Ausführungsform enthält die Umgebung 400 E/A-Pfaddaten 402, die als beliebige Daten verkörpert sein können, die bekannte E/A-Pfade von E/A-Komponenten anzeigen (z. B. das Datenverarbeitungsgerät 104, Software, die in dem Datenverarbeitungsgerät 104 ausgeführt wird, die Netzwerkgeräte 108, das Speichergerät 110, der Speicherdienst 111, die Speicherlaufwerke 114 etc.). Die E/A-Pfaddaten 402 beschreiben einen oder mehrere Hop-to-Hop-Pfade, die eine bestimmte E/A-Anforderung für eine bestimmte Arbeitslast durchläuft. Die E/A-Pfaddaten 402 enthalten auch eine ideale Pfadlatenz für jeden Pfad. In einigen Ausführungsformen kann die ideale Pfadlatenz durch Erzeugen und Sammeln von Zeitstempeln einer oder mehrerer Trainings-E/A-Anforderungen über den Pfad bestimmt werden. Ferner enthält die Umgebung 400 auch Prioritätsschwellenwertdaten 404, die als Daten verkörpert sein können, die Dringlichkeitsfaktorschwellenwerte angeben, die Prioritätsstufen für eine E/A-Anforderung entsprechen. Wie hierin ferner beschrieben, wird ein Dringlichkeitsfaktor von E/A-Pfadkomponenten verwendet, um zu bestimmen, wie eine bestimmte E/A-Anforderung basierend auf QoS-Fristinformationen priorisiert werden soll. Der Dringlichkeitsfaktor wird einer der Prioritätsstufen basierend darauf zugeordnet, welche(r) Schwellenwert(e) in den Prioritätsschwellenwertdaten 404 überschritten wird (werden).
  • Das Netzwerkkommunikationsgerät 420, das wie vorstehend erläutert als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, ist konfiguriert, um eingehende und ausgehende Netzwerkkommunikationen (z. B. Netzwerkdatenverkehr, Netzwerkpakete, Netzwerkflüsse etc.) zu und von anderen E/A-Pfadkomponenten zu erleichtern. Zu diesem Zweck ist das Netzwerkkommunikationsgerät 420 konfiguriert, um Datenpakete von einem System oder Datenverarbeitungsgerät (z. B. dem Datenverarbeitungsgerät 104, den Netzwerkgeräten 108, dem Speichergerät 110, dem Speicherdienst 111, den Speicherlaufwerken 114 etc.) zu empfangen und Datenpakete vorzubereiten und an ein anderes Datenverarbeitungsgerät oder □ system zu senden. Folglich kann in einigen Ausführungsformen mindestens ein Teil der Funktionalität des Netzwerkkommunikationsgeräts 420 von der Kommunikationsschaltung 310 und in der beispielhaften Ausführungsform von der NIC 312 ausgeführt werden.
  • Die Taktkomponente 430, die als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, soll Zeitdaten für E/A-Anforderungspakete bereitstellen. Beispielsweise kommuniziert die Taktkomponente 430 mit der Systemuhr und synchronisiert die Zeit mit anderen E/A-Pfadkomponenten unter Verwendung von Standardsynchronisationstechniken.
  • Der E/A-Planer 440, der als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, soll E/A-Anforderungspakete empfangen, in den E/A-Anforderungspaketen enthaltene QoS-Fristmetadaten bewerten und den E/A-Anforderungspaketen dynamisch eine Priorität zuweisen, die von den Komponenten des E/A-Pfads durchgesetzt werden kann, um sicherzustellen, dass die E/A-Anforderung auf effiziente Weise gemäß den QoS-Anforderungen verarbeitet wird. Zu diesem Zweck enthält der E/A-Planer 440 eine Bewertungskomponente 442, eine Priorisierungskomponente 444, eine Durchsetzungskomponente 446 und eine Aktualisierungskomponente 448.
  • Die beispielhafte Bewertungskomponente 442 soll ein E/A-Paket analysieren, das von dem Datenverarbeitungsgerät 300 empfangen wird (z. B. von dem Netzwerkkommunikationsgerät 420). In einigen Ausführungsformen enthält das E/A-Paket QoS-Fristmetadaten, die in jedem Paket bereitgestellt werden, um bei jeder Komponente analysiert zu werden. In einigen Ausführungsformen können QoS-Fristmetadaten in einem E/A-Anforderungspaket enthalten sein, z. B. in einem Header des Pakets. Die Bewertungskomponente 442 kann einen festgelegten Header-Versatz bewerten, um die QoS-Fristmetadaten zu identifizieren. Die QoS-Fristmetadaten enthalten Informationen, die sich auf die Berechnung von Echtzeit- und erwarteten Latenzinformationen für eine bestimmte Anforderung beziehen, sodass eine Priorisierung angewendet werden kann, um die Latenzanforderungen für eine QoS zu erfüllen.
  • Beispielsweise wird bezugnehmend auf 5 ein Diagramm von beispielhaften QoS-Fristmetadaten 500 gezeigt. Wie gezeigt, können die Fristmetadaten 500 Fristinformationen 502, Latenzstufeninformationen 504 und Informationen über abgeschlossene Stufen 506 enthalten. Die Fristinformationen 502 können als beliebige Daten verkörpert sein, die eine Frist angeben, in der eine E/A-Anforderung abgeschlossen werden muss, um einer gegebenen QoS-Anforderung zu entsprechen. Zum Beispiel können die Fristinformationen 502 in absoluter Zeit für einen gesamten Ende-zu-Ende-E/A-Fluss ausgedrückt werden (z. B. Jahr/Monat/Tag/Stunde/Minute/Sekunde/Millisekunde etc.). Die Latenzstufeninformationen 504 können als beliebige Daten verkörpert sein, die eine Beschreibung einer Folge von Stufen in dem E/A-Pfad (z. B. bei einem idealen E/A-Pfad) und den entsprechenden erwarteten Latenzbeitrag bei jeder Stufe unter idealen Bedingungen angeben. Die Informationen über abgeschlossene Stufen 506 können als beliebige Daten verkörpert sein, die angeben, welche Stufen in dem E/A-Pfad vollständig sind. Beispielsweise können die Informationen über abgeschlossene Stufen 506 als eine Bitmap verkörpert sein, in der abgeschlossenen Stufen ein bestimmtes Bit zugewiesen wird und unvollständigen Stufen ein anderes Bit zugewiesen wird.
  • Unter erneuter Bezugnahme auf 4 kann die Bewertungskomponente 442 aus den QoS-Fristmetadaten (z. B. aus den Fristinformationen 502) eine tatsächliche Zeit bis zur Frist für die E/A-Anforderung bestimmen, während die Anforderung von dem Datenverarbeitungsgerät 300 in Echtzeit empfangen wird. Die tatsächliche Zeit bis zur Frist bezieht sich auf die synchronisierten Takte der einzelnen Geräte in dem E/A-Pfad. Die Bewertungskomponente 442 bestimmt ferner (z. B. aus den Latenzstufeninformationen 504 und den Informationen über abgeschlossene Stufen 506) eine verbleibende Zeit auf dem E/A-Pfad basierend auf den Latenzen (z. B. in einer idealen Situation), die den unvollständigen Stufen des E/A-Pfads zugeordnet sind.
  • In einigen Ausführungsformen kann die Bewertungskomponente 442 einen Dringlichkeitsfaktor aus den Messungen der bestimmten tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad erzeugen. Beispielsweise kann der Dringlichkeitsfaktor wie folgt berechnet werden:
    urgency_factor = (time_to_deadline - ideal_path_TODO_left) / time_to_deadline (1), wobei time_do_deadline die Messung der tatsächlichen Zeit bis zur Frist und ideal_path_TODO_left die verbleibende Zeit auf dem E/A-Pfad ist.
  • Die beispielhafte Priorisierungskomponente 444 dient dazu, den erzeugten Dringlichkeitsfaktor in Bezug auf die Prioritätsschwellenwertdaten 404 zu bewerten. Wie angegeben, können die Prioritätsschwellenwertdaten 404 eine Prioritätsstufe angeben, die auf (einem) Schwellenwert(en) basiert, den/die der Dringlichkeitsfaktor überschreitet. Nach der Auswertung kann die Priorisierungskomponente 444 der E/A-Anforderung eine Prioritätsstufe zuweisen. Die beispielhafte Durchsetzungskomponente 446 dient dazu, die der E/A-Anforderung zugewiesene Prioritätsstufe zu bewerten und die E/A-Anforderung in eine Warteschlange von E/A-Anforderungen zu stellen, die verarbeitet oder weitergeleitet werden sollen. Die Position der E/A-Anforderung in der Warteschlange basiert auf der Prioritätsstufe der E/A-Anforderung in Bezug auf die Prioritätsstufen anderer zu bedienender Anforderungen. Dadurch wird sichergestellt, dass, wenn eine gegebene E/A-Anforderung eine höhere Priorität aufweist, das Datenverarbeitungsgerät 300 die Anforderung bedient, um die QoS-Anforderungen zu erfüllen.
  • Die beispielhafte Aktualisierungskomponente 448 dient dazu, die QoS-Fristmetadaten in dem E/A-Anforderungspaket zu modifizieren, bevor das E/A-Anforderungspaket an die nächste Stufe in dem E/A-Pfad weitergeleitet wird. Beispielsweise kann die Aktualisierungskomponente 448 die Informationen über abgeschlossene Stufen 506 modifizieren, um anzugeben, dass die laufende Verarbeitungsstufe in dem Datenverarbeitungsgerät 300 abgeschlossen ist. Die Aktualisierungskomponente 448 kann das Netzwerkkommunikationsgerät 420 anweisen, das aktualisierte E/A-Anforderungspaket an die nächste Komponente im E/A-Pfad weiterzuleiten.
  • Es sollte jedoch erkannt werden, dass das Netzwerkkommunikationsgerät 420, die Taktkomponente 430 und der E/A-Planer 440 jeweils separat als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein können. Beispielsweise können das Netzwerkkommunikationsgerät 420 und die Taktkomponente 430 als Hardwarekomponenten verkörpert sein, während der E/A-Planer 440 als virtualisierte Hardwarekomponente oder als eine andere Kombination aus Hardware, Firmware, Software, virtualisierter Hardware, emulierter Architektur und/oder eine Kombination davon verkörpert sein kann.
  • Bezugnehmend auf 6 und 7 führt das Datenverarbeitungsgerät 300 im Betrieb ein Verfahren 600 zum Verarbeiten eines E/A-Anforderungspakets durch, das QoS-Anforderungen unterliegt. Das Verfahren 600 kann von einer beliebigen Komponente in einem E/A-Pfad von einer Anwendungsarbeitslast bis zu einem E/A-Dienst durchgeführt werden, wie etwa dem Datenverarbeitungsgerät 300.
  • Wie gezeigt, beginnt das Verfahren 600 bei Block 602, bei dem das Datenverarbeitungsgerät 300 ein E/A-Anforderungspaket empfängt. Beispielsweise kann das E/A-Anforderungspaket eine Anforderung an einen verteilten Speicherdienst durch eine Arbeitslast zum Ausführen eines Speicher-E/A-Lesevorgangs darstellen. Der Lesevorgang selbst kann einer bestimmten Anforderung an die QoS-Latenz unterliegen. Bei Block 604 bestimmt das Datenverarbeitungsgerät 300, ob QoS-Fristmetadaten in dem E/A-Anforderungspaket vorhanden sind. Wenn nicht, gibt das Datenverarbeitungsgerät 300 bei Block 606 einen Fehler zurück.
  • Andernfalls bewertet das Datenverarbeitungsgerät 300 das E/A-Anforderungspaket für die QoS-Fristmetadaten, wie bei Block 608 angegeben. Zu diesem Zweck bewertet das Datenverarbeitungsgerät 300 beispielsweise bei Block 610 den E/A-Anforderungspaket-Header hinsichtlich der Fristmetadaten, einschließlich Fristinformationen, Latenzstufeninformationen des Pfads und Informationen über abgeschlossene Stufen. Bei Block 612 bestimmt das Datenverarbeitungsgerät 300 die tatsächliche Zeit bis zur Frist in Abhängigkeit von den Fristinformationen. Zu diesem Zweck ruft das Datenverarbeitungsgerät 300 die absolute Zeitfrist aus den QoS-Fristmetadaten ab und berechnet die Zeit bis zur Frist aus dem Zeitstempel, der angibt, wann das E/A-Paket von dem Datenverarbeitungsgerät 300 empfangen wurde. Bei Block 614 bestimmt das Datenverarbeitungsgerät 300 die verbleibende Zeit auf dem E/A-Pfad in Abhängigkeit von den Latenzstufeninformationen des Pfads und den Informationen über abgeschlossene Stufen. Insbesondere kann das Datenverarbeitungsgerät 300 unvollständige Verarbeitungsstufen basierend auf den QoS-Metadaten identifizieren und basierend auf den erwarteten Latenzen dieser Stufen (wie in den QoS-Metadaten festgelegt) die verbleibende Zeit berechnen, zu der die E/A-Anforderung abgeschlossen werden muss, sodass die QoS-Anforderungen erfüllt werden können.
  • Unter Bezugnahme auf 7 bestimmt das Datenverarbeitungsgerät 300 bei Block 616 einen Dringlichkeitsfaktor basierend auf den QoS-Fristmetadaten. Insbesondere bestimmt das Datenverarbeitungsgerät 300 bei Block 618 den Dringlichkeitsfaktor in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem Pfad. Wie angegeben, wird der Dringlichkeitsfaktor verwendet, um zu bestimmen, wie die E/A-Anforderung in Bezug auf die anderen vorhandenen E/A-Anforderungen, die an dem Datenverarbeitungsgerät 300 ankommen, priorisiert werden soll. Bei Block 620 weist das Datenverarbeitungsgerät 300 eine Planungspriorität für die E/A-Anforderung in Abhängigkeit von dem bestimmten Dringlichkeitsfaktor zu. Zu diesem Zweck kann das Datenverarbeitungsgerät 300 beispielsweise den Dringlichkeitsfaktor anhand eines oder mehrerer Schwellenwerte bewerten, die den entsprechenden Prioritätsstufen zugeordnet sind. In einigen Ausführungsformen kann das Datenverarbeitungsgerät 330 die E/A-Anforderung einer gegebenen Prioritätsstufe basierend darauf zuweisen, welche Schwellenwerte die Dringlichkeit überschreiten.
  • Bei Block 622 leitet das Datenverarbeitungsgerät 300 das E/A-Anforderungspaket an das nächste Gerät in dem E/A-Pfad weiter. Das E/A-Anforderungspaket enthält aktualisierte Metadaten, die angeben, dass die Verarbeitungsstufe bei dem Datenverarbeitungsgerät 300 abgeschlossen ist. Zu diesem Zweck aktualisiert das Datenverarbeitungsgerät 300 bei Block 624 die QoS-Metadaten in dem E/A-Anforderungspaket. Zum Beispiel kann das Datenverarbeitungsgerät 300 ein Bit einer Bitmap modifizieren, die die abgeschlossenen Stufen darstellt.
  • Bezugnehmend auf 8 wird ein Diagramm eines Beispiels 300 eines E/A-Pfadverlaufs dargestellt, der durch eine E/A-Pfadkomponente (z. B. das Datenverarbeitungsgerät 300) identifiziert werden kann. Wie gezeigt, ist jede Stufe in Bezug auf eine zugeordnete Latenz dargestellt. Der Pfad und die zugeordneten Latenzen in jeder Stufe können in den QoS-Metadaten ausgedrückt werden, z. B. als Latenzstufeninformationen 504. Beispielhaft stellen die Stufen 802 Verarbeitungsstufen in dem E/A-Pfad dar, die abgeschlossen sind. Solche Informationen können in den QoS-Metadaten angegeben werden, z. B. als Informationen über abgeschlossene Stufen 506. Ferner geben die Stufen 804 Stufen an, die bei Ankunft des E/A-Anforderungspakets in der aktuellen E/A-Pfadkomponente unvollständig sind.
  • Das Datenverarbeitungsgerät 300 kann die tatsächliche Zeit bis zur Frist und die verbleibende Zeit auf dem Pfad basierend auf den Informationen ableiten, die von den QoS-Metadaten bereitgestellt werden. Beispielsweise kann das Datenverarbeitungsgerät 300 beim Bewerten der Fristinformationen und der Taktdaten bestimmen, dass die tatsächliche Zeit bis zur Frist 250 µs beträgt. Ferner kann das Datenverarbeitungsgerät 300 durch Bewerten der erwarteten Latenzzeitinformationen, die den Stufen 804 zugeordnet sind, bestimmen, dass die verbleibende Zeit auf dem Pfad 240 µs beträgt. Auf diese Weise kann das Datenverarbeitungsgerät 300 einen Dringlichkeitsfaktor von 0,04 ableiten, der dann verwendet werden kann, um eine Prioritätsstufe für die E/A-Anforderung zu bestimmen.
  • BEISPIELE
  • Beispielhafte Beispiele der hierin offenbarten Technologien werden nachstehend bereitgestellt. Eine Ausführungsform der Technologien kann eines oder mehrere und eine beliebige Kombination der nachfolgend beschriebenen Beispiele einschließen.
  • Beispiel 1 enthält ein Datenverarbeitungsgerät, das eine Kommunikationsschaltung umfasst; und eine Datenverarbeitungs-Engine, um durch die Kommunikationsschaltung und von einem von einer Vielzahl von Datenverarbeitungsgeräten in einem E/A-Pfad, ein E/A-Anforderungspaket zu empfangen, wobei das E/A-Anforderungspaket ein oder mehrere QoS-Fristmetadatenelemente enthält, wobei die QoS-Fristmetadaten Latenzinformationen anzeigen, die sich auf eine Arbeitslast in Bezug auf eine festgelegte QoS beziehen; die einen oder mehreren QoS-Fristmetadatenelemente zu bewerten; und dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten eine Priorität zuzuweisen.
  • Beispiel 2 enthält den Gegenstand von Beispiel 1, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente das Bewerten eines Headers in dem E/A-Anforderungspaket für die QoS-Fristmetadaten umfasst.
  • Beispiel 3 enthält den Gegenstand von einem beliebigen der Beispiele 1 und 2, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente das Bewerten einer QoS-Frist, der Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, umfasst.
  • Beispiel 4 enthält den Gegenstand von einem beliebigen der Beispiele 1 bis 3, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente ferner das Bestimmen einer tatsächlichen Zeit bis zur Frist in Abhängigkeit von der QoS-Frist umfasst; und das Bestimmen einer verbleibenden Zeit auf dem E/A-Pfad in Abhängigkeit von der tatsächlichen Zeit bis zur Frist, den Latenzinformationen und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind.
  • Beispiel 5 enthält den Gegenstand von einem beliebigen der Beispiele 1 bis 4, und wobei die Datenverarbeitungs-Engine ferner einen Dringlichkeitsfaktor in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad bestimmen soll.
  • Beispiel 6 enthält den Gegenstand von einem beliebigen der Beispiele 1 bis 5, und wobei das Zuweisen der Priorität zu dem E/A-Anforderungspaket das Bewerten des Dringlichkeitsfaktors in Bezug auf einen oder mehrere Schwellenwerte umfasst, die jeweils einer Prioritätsstufe entsprechen.
  • Beispiel 7 enthält das Datenverarbeitungsgerät nach Anspruch 6, wobei die Datenverarbeitungs-Engine ferner die Informationen aktualisieren soll, die angeben, welche der Vielzahl von Stufen in dem E/A-Pfad abgeschlossen sind; und das E/A-Anforderungspaket an ein nächstes der Datenverarbeitungsgeräte in dem E/A-Pfad weiterleiten soll.
  • Beispiel 8 enthält den Gegenstand von einem beliebigen der Beispiele 1 bis 7, und wobei das Empfangen des E/A-Anforderungspakets das Empfangen eines Speicher-E/A-Anforderungspakets oder eines Netzwerk-E/A-Anforderungspakets umfasst.
  • Beispiel 9 enthält den Gegenstand von einem beliebigen der Beispiele 1 bis 8, und wobei die Datenverarbeitungs-Engine ferner die zugewiesene Priorität des E/A-Anforderungspakets durchsetzen soll.
  • Beispiel 10 enthält ein oder mehrere maschinenlesbare Speichermedien, die eine Vielzahl von Anweisungen speichern, die bei Ausführung auf einem Datenverarbeitungsgerät das Datenverarbeitungsgerät veranlassen, von einem von einer Vielzahl von Datenverarbeitungsgeräten in einem E/A-Pfad ein E/A-Anforderungspaket zu empfangen, wobei das E/A-Anforderungspaket eine oder mehrere Dienstgüte (QoS)-Fristmetadaten enthält, wobei die QoS-Fristmetadaten Latenzinformationen im Hinblick auf eine Arbeitslast in Bezug auf eine bestimmte QoS angeben; die einen oder mehreren QoS-Fristmetadatenelemente zu bewerten; und dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten eine Priorität zuzuweisen.
  • Beispiel 11 enthält den Gegenstand von Beispiel 10, und wobei das Bewerten des einen oder der mehreren QoS-Fristmetadatenelemente das Bewerten eines Headers in dem E/A-Anforderungspaket für die QoS-Fristmetadaten umfasst.
  • Beispiel 12 enthält den Gegenstand von einem beliebigen der Beispiele 10 und 11, und wobei das Bewerten des einen oder der mehreren QoS-Fristmetadatenelemente das Bewerten einer QoS-Frist, der Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, umfasst.
  • Beispiel 13 enthält den Gegenstand von einem beliebigen der Beispiele 10 bis 12, und wobei das Bewerten des einen oder der mehreren QoS-Fristmetadatenelemente ferner das Bestimmen einer tatsächlichen Zeit bis zur Frist in Abhängigkeit von der QoS-Frist umfasst; und das Bestimmen einer verbleibenden Zeit auf dem E/A-Pfad in Abhängigkeit von der tatsächlichen Zeit bis zur Frist, den Latenzinformationen und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind.
  • Beispiel 14 enthält den Gegenstand von einem beliebigen der Beispiele 10 bis 13, und wobei die Vielzahl von Anweisungen ferner das Datenverarbeitungsgerät veranlassen, einen Dringlichkeitsfaktor in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad zu bestimmen.
  • Beispiel 15 enthält den Gegenstand von einem beliebigen der Beispiele 10 bis 14, und wobei das Zuweisen der Priorität zu dem E/A-Anforderungspaket das Bewerten des Dringlichkeitsfaktors in Bezug auf einen oder mehrere Schwellenwerte umfasst, die jeweils einer Prioritätsstufe entsprechen.
  • Beispiel 16 enthält das eine oder die mehreren maschinenlesbaren Speichermedien nach Anspruch 15, wobei die Vielzahl von Anweisungen ferner das Datenverarbeitungsgerät veranlassen, die Informationen zu aktualisieren, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind; und das E/A-Anforderungspaket an ein nächstes der Datenverarbeitungsgeräte in dem E/A-Pfad weiterzuleiten.
  • Beispiel 17 enthält den Gegenstand von einem beliebigen der Beispiele 10 bis 16, und wobei das Empfangen des E/A-Anforderungspakets dazu dient, ein Speicher-E/A-Anforderungspaket oder ein Netzwerk-E/A-Anforderungspaket zu empfangen.
  • Beispiel 18 enthält den Gegenstand von einem beliebigen der Beispiele 10 bis 17, und wobei die Vielzahl von Anweisungen ferner das Datenverarbeitungsgerät veranlassen, die zugewiesene Priorität des E/A-Anforderungspakets durchzusetzen.
  • Beispiel 19 enthält ein Verfahren und umfasst das Empfangen, von einem von einer Vielzahl von Datenverarbeitungsgeräten in einem E/A-Pfad, eines E/A-Anforderungspakets, wobei das E/A-Anforderungspaket eines oder mehrere QoS-Fristmetadatenelemente enthält, wobei die QoS-Fristmetadaten Latenzinformationen anzeigen, die sich auf eine aktuell ausgeführte Arbeitslast in Bezug auf eine festgelegte QoS beziehen; das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente; und das Zuweisen einer Priorität zu dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten.
  • Beispiel 20 enthält den Gegenstand von Beispiel 19, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente das Bewerten eines Headers in dem E/A-Anforderungspaket für die QoS-Fristmetadaten umfasst.
  • Beispiel 21 enthält den Gegenstand von einem beliebigen der Beispiele 19 und 20, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente das Bewerten einer QoS-Frist, der Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, umfasst.
  • Beispiel 22 enthält den Gegenstand von einem beliebigen der Beispiele 19 bis 21, und wobei das Bewerten der einen oder mehreren QoS-Fristmetadatenelemente ferner das Bestimmen einer tatsächlichen Zeit bis zur Frist in Abhängigkeit von der QoS-Frist umfasst; und das Bestimmen einer verbleibenden Zeit auf dem E/A-Pfad in Abhängigkeit von der tatsächlichen Zeit bis zur Frist, den Latenzinformationen und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind.
  • Beispiel 23 enthält den Gegenstand von einem beliebigen der Beispiele 19 bis 22, und beinhaltet ferner das Bestimmen eines Dringlichkeitsfaktors in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad.
  • Beispiel 24 enthält ein Datenverarbeitungsgerät, das eine Schaltung für das Empfangen, von einem von einer Vielzahl von Datenverarbeitungsgeräten in einem E/A-Pfad, eines E/A-Anforderungspakets umfasst, wobei das E/A-Anforderungspaket ein oder mehrere QoS-Fristmetadatenelemente enthält, wobei die QoS-Fristmetadaten Latenzinformationen anzeigen, die sich auf eine Arbeitslast in Bezug auf eine festgelegte QoS beziehen; ein Mittel zum Bewerten der einen oder mehreren QoS-Fristmetadatenelemente; und ein Mittel zum Zuweisen einer Priorität zu dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten.
  • Beispiel 25 enthält den Gegenstand von Beispiel 24, und wobei das Mittel zum Bewerten des einen oder der mehreren QoS-Fristmetadatenelemente das Mittel zum Bewerten eines Headers in dem E/A-Anforderungspaket für die QoS-Fristmetadaten umfasst; und ein Mittel zum Bewerten, in dem Header, einer QoS-Frist, der Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und der Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind.

Claims (22)

  1. System, umfassend: eine Kommunikationsschaltung; und eine Datenverarbeitungs-Engine, um: durch die Kommunikationsschaltung und von einem von einer Vielzahl von Geräten in einem E/A-Pfad, ein E/A-Anforderungspaket zu empfangen, wobei das E/A-Anforderungspaket eine oder mehrere QoS-(Quality of Service-)Fristmetadaten enthält, wobei die QoS-Fristmetadaten Latenzinformationen anzeigen, die sich auf eine Arbeitslast in Bezug auf eine festgelegte QoS beziehen; die einen oder mehreren QoS-Fristmetadaten zu bewerten; und dem E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten eine Priorität zuzuweisen.
  2. System nach Anspruch 1, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten umfasst: einen Header im E/A-Anforderungspaket für die QoS-Fristmetadaten zu bewerten.
  3. System nach Anspruch 1, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten umfasst: eine QoS-Frist, Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, zu bewerten.
  4. System nach Anspruch 2, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten ferner umfasst: in Abhängigkeit von der QoS-Frist eine tatsächliche Zeit bis zur Frist zu bestimmen; und eine verbleibende Zeit auf dem E/A-Pfad in Abhängigkeit von der tatsächlichen Zeit bis zur Frist, den Latenzinformationen und den Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, zu bestimmen.
  5. System nach Anspruch 4, wobei die Datenverarbeitungs-Engine ferner einen Dringlichkeitsfaktor in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad bestimmen soll.
  6. System nach Anspruch 5, wobei das Zuweisen der Priorität zu dem E/A-Anforderungspaket das Bewerten des Dringlichkeitsfaktors in Bezug auf einen oder mehrere Schwellenwerte umfasst, die jeweils einer Prioritätsstufe entsprechen.
  7. System nach Anspruch 6, wobei die Datenverarbeitungs-Engine ferner dazu dient: die Informationen, die angeben, welche der Vielzahl von Stufen in dem E/A-Pfad abgeschlossen sind, zu aktualisieren; und das E/A-Anforderungspaket an ein nächstes der Datenverarbeitungsgeräte in dem E/A-Pfad weiterzuleiten.
  8. System nach Anspruch 1, wobei das Empfangen des E/A-Anforderungspakets das Empfangen eines Speicher-E/A-Anforderungspakets oder eines Netzwerk-E/A-Anforderungspakets umfasst.
  9. System nach Anspruch 1, wobei die Datenverarbeitungs-Engine ferner dazu dient: die zugewiesene Priorität des E/A-Anforderungspakets durchzusetzen.
  10. System nach Anspruch 1, wobei das System mit der Vielzahl von Geräten in dem E/A-Pfad verbunden und Teil dieser ist.
  11. Verfahren, umfassend: Empfangen, von einem von einer Vielzahl von Geräten in einem E/A-Pfad, eines E/A-Anforderungspakets, wobei das E/A-Anforderungspaket eine oder mehrere QoS-(Quality of Service-)Fristmetadaten enthält, wobei die QoS-Fristmetadaten Latenzinformationen anzeigen, die sich auf eine Arbeitslast in Bezug auf eine festgelegte QoS beziehen; Bewerten der einen oder mehreren QoS-Fristmetadaten; und Zuweisen einer Priorität für das E/A-Anforderungspaket in Abhängigkeit von den bewerteten QoS-Metadaten.
  12. Verfahren nach Anspruch 11, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten das Bewerten eines Headers in dem E/A-Anforderungspaket für die QoS-Fristmetadaten umfasst.
  13. Verfahren nach Anspruch 11, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten das Bewerten einer QoS-Frist, von Latenzinformationen für jede von einer Vielzahl von Stufen in dem E/A-Pfad und von Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind, umfasst.
  14. Verfahren nach Anspruch 12, wobei das Bewerten der einen oder mehreren QoS-Fristmetadaten ferner umfasst: Bestimmen, in Abhängigkeit von der QoS-Frist, einer tatsächlichen Zeit bis zur Frist; und Bestimmen einer verbleibenden Zeit auf dem E/A-Pfad in Abhängigkeit von der tatsächlichen Zeit bis zur Frist, den Latenzinformationen und den Informationen, die angeben, welche der Vielzahl von Stufen im E/A-Pfad abgeschlossen sind.
  15. Verfahren nach Anspruch 14, ferner umfassend das Bestimmen eines Dringlichkeitsfaktors in Abhängigkeit von der tatsächlichen Zeit bis zur Frist und der verbleibenden Zeit auf dem E/A-Pfad.
  16. Verfahren nach Anspruch 15, wobei das Zuweisen der Priorität zu dem E/A-Anforderungspaket das Bewerten des Dringlichkeitsfaktors in Bezug auf einen oder mehrere Schwellenwerte umfasst, die jeweils einer Prioritätsstufe entsprechen.
  17. Verfahren nach Anspruch 16, ferner umfassend: Aktualisieren der Informationen, die angeben, welche der Vielzahl von Stufen in dem E/A-Pfad abgeschlossen sind; und Weiterleiten des E/A-Anforderungspakets an ein nächstes der Datenverarbeitungsgeräte in dem E/A-Pfad.
  18. Verfahren nach Anspruch 11, wobei das Empfangen des E/A-Anforderungspakets das Empfangen eines Speicher-E/A-Anforderungspakets oder eines Netzwerk-E/A-Anforderungspakets umfasst.
  19. Verfahren nach Anspruch 11, ferner umfassend: Durchsetzen der zugewiesenen Priorität des E/A-Anforderungspakets.
  20. Verfahren nach Anspruch 11, wobei das System mit der Vielzahl von Geräten in dem E/A-Pfad verbunden und Teil dieser ist.
  21. Maschinenlesbares Speichermedium bzw. maschinenlesbare Speichermedien, die eine Vielzahl von darauf gespeicherten Anweisungen umfassen, die in Reaktion auf ihre Ausführung ein System veranlassen, das Verfahren nach einem der Ansprüche 11 bis 20 durchzuführen.
  22. System, umfassend Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 11 bis 20.
DE102019112772.6A 2018-06-28 2019-05-15 Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung Pending DE102019112772A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/021,827 2018-06-28
US16/021,827 US11025745B2 (en) 2018-06-28 2018-06-28 Technologies for end-to-end quality of service deadline-aware I/O scheduling

Publications (1)

Publication Number Publication Date
DE102019112772A1 true DE102019112772A1 (de) 2020-01-02

Family

ID=65231238

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019112772.6A Pending DE102019112772A1 (de) 2018-06-28 2019-05-15 Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung

Country Status (3)

Country Link
US (1) US11025745B2 (de)
CN (1) CN110659114A (de)
DE (1) DE102019112772A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046007B (zh) * 2018-10-12 2023-08-18 伊姆西Ip控股有限责任公司 管理存储系统的方法、装置和计算机程序产品
US11663092B2 (en) 2019-04-30 2023-05-30 Rubrik, Inc. Systems and methods for continuous data protection
US11500664B2 (en) 2019-04-30 2022-11-15 Rubrik, Inc. Systems and method for continuous data protection and recovery by implementing a set of algorithms based on the length of I/O data streams
US11609775B2 (en) * 2019-04-30 2023-03-21 Rubrik, Inc. Systems and methods for continuous data protection comprising storage of completed I/O requests intercepted from an I/O stream using touch points
US11663089B2 (en) 2019-04-30 2023-05-30 Rubrik, Inc. Systems and methods for continuous data protection
US11656782B2 (en) * 2019-10-30 2023-05-23 Dell Products L.P. Global deadline driven local synchronous replication I/O handling and recover
US20210397526A1 (en) * 2020-06-18 2021-12-23 General Electric Company Systems and methods of providing an abstraction layer between an application layer and hardware components of a computing device
US11146485B1 (en) * 2021-02-22 2021-10-12 Rad Data Communications Ltd. Time sensitive network programming

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248182A1 (en) * 2005-05-02 2006-11-02 Polycentric Networks Corporation Formatted and/or tunable QoS data publication, subscription, and/or distribution including dynamic network formation
US8489722B2 (en) * 2009-11-24 2013-07-16 International Business Machines Corporation System and method for providing quality of service in wide area messaging fabric
US8707316B1 (en) * 2012-01-05 2014-04-22 The Boeing Company Methods and systems for mission-driven quality of service management
US20140185628A1 (en) * 2012-12-28 2014-07-03 Broadcom Corporation Deadline aware queue management
US10237889B2 (en) * 2015-12-09 2019-03-19 Qualcomm Incorporated Conditional uplink grant
US10805222B2 (en) * 2017-05-01 2020-10-13 General Electric Company Resilient network configuration for time sensitive traffic
US10856243B2 (en) * 2016-06-24 2020-12-01 The University Of Western Ontario System, method, and apparatus for end-to-end synchronization, adaptive link resource reservation and data tunneling
US10560383B2 (en) * 2016-11-10 2020-02-11 Futurewei Technologies, Inc. Network latency scheduling
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法

Also Published As

Publication number Publication date
CN110659114A (zh) 2020-01-07
US20190045028A1 (en) 2019-02-07
US11025745B2 (en) 2021-06-01

Similar Documents

Publication Publication Date Title
DE102019112772A1 (de) Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE102021209146A1 (de) Adaptive edge-ressourcenverwaltung mit begrenzter dauer
DE102019130686A1 (de) Technologien zur bereitstellung dynamischer auswahl von edge- und lokalen beschleunigerressourcen
DE102019116213A1 (de) Qualität von für Enterprise-Halbleiterlaufwerke optimierten dienstbasierten Arbitrierungen
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
DE102020103570A1 (de) Host-definierte bandbreitenzuweisung für ssd-aufgaben
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102020133269A1 (de) Konfigurieren von Parametern von Zielsubsystemen von nichtflüchtigem Speicher für die Arbeitslast-Anforderungs-Servicequalität
DE112020003742T5 (de) Verfahren, systeme, erzeugnisse und vorrichtungen zur verbesserung von jobplanungseffizienz
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE112011105911T5 (de) Server mit Switch-Schaltungen
DE102014110423A1 (de) Techniken zum Bewegen von Daten zwischen einem Netzwerk-Eingabe/Ausgabe-Gerät und einem Speichergerät
DE102019127285A1 (de) Verfahren und Vorrichtung zur sicheren Datenzentrumsüberbrückung in einem Multi-Tenant-System
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE102020119017A1 (de) Ausgang aus Eingangswarteschlangen mit Gerechtigkeit auf Zeitstempelbasis
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
DE102022105933A1 (de) Lenkung von warteschlangen nach priorität durch die nic und frequenzabstimmung der prozessoreinheit basierend auf paketflussanalysen
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE102020132767A1 (de) Verwaltung der Dienstgüte (QoS) eines Speichersystems
DE102020132760A1 (de) Persistenzdienst für Edge-Architekturen