DE102017120182A1 - Zuordnen von Datenbussen zu Management-Bus-Verbindungen für Peripheriegeräte - Google Patents

Zuordnen von Datenbussen zu Management-Bus-Verbindungen für Peripheriegeräte Download PDF

Info

Publication number
DE102017120182A1
DE102017120182A1 DE102017120182.3A DE102017120182A DE102017120182A1 DE 102017120182 A1 DE102017120182 A1 DE 102017120182A1 DE 102017120182 A DE102017120182 A DE 102017120182A DE 102017120182 A1 DE102017120182 A1 DE 102017120182A1
Authority
DE
Germany
Prior art keywords
peripheral device
command
management
peripheral
management bus
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
DE102017120182.3A
Other languages
English (en)
Inventor
Luke Remis
Wilson Velez
Mark E. Andersen
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.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte 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
Application filed by Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Publication of DE102017120182A1 publication Critical patent/DE102017120182A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

Eine Vorrichtung, ein System, ein Verfahren und ein Programmprodukt werden offenbart zum Assoziieren von Datenbussen und Managementbussen für Peripheriegeräte. Ein Befehlsmodul sendet einen Befehl zu einem Peripheriegerät, um eine Aktivität auf dem Peripheriegerät zu triggern. Das Peripheriegerät ist kommunikativ mit einem Informationshandhabungsgerät unter Verwenden eines separaten Datenbusses und einer Management-Bus-Verbindung eines Managementbusses gekoppelt. Der Befehl wird über den Datenbus zu dem Peripheriegerät gesendet. Ein Überwachungsmodul prüft den Managementbus des Informationshandhabungsgerätes, um zu bestimmen, welche Management-Bus-Verbindung zu dem Peripheriegerät, das in Reaktion auf den gesendeten Befehl aktiv war, verbunden ist. Ein Assoziationsmodul assoziiert die bestimmte Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät.

Description

  • Gebiet
  • Der Gegenstand, der hierin offenbart wird, bezieht sich auf Peripheriecomputergeräte und betrifft insbesondere ein Assoziieren von separaten Datenbussen und Managementbussen von Peripheriegeräten.
  • Hintergrund
  • Computergeräte können Peripheriegeräte einschließen, welche mit dem Computergerät unter Verwendung von einem oder mehreren Kommunikationsbussen verbunden sind. Die Kommunikationsbusse können ein Teil des gleichen Kabels oder können in verschiedene Kabel getrennt sein, um die Kabelgröße und die Systemkomplexität zu reduzieren. Das Verwenden von unterschiedlichen Kommunikations-Bus-Kabeln für ein einzelnes Peripheriegerät, kann jedoch Probleme in dem Computergerät verursachen, wenn ein Paar Kommunikations-Bus-Kabel, die beide mit dem gleichen Peripheriegerät verbunden werden sollten, jeweils mit unterschiedlichen Peripheriegeräten verbunden werden.
  • Kurze Zusammenfassung
  • Es wird eine Vorrichtung zum Assoziieren von Datenbussen und Managementbussen für Peripheriegeräte offenbart. Ein Verfahren und ein Computerprogrammprodukt führen auch die Funktionen der Vorrichtung aus.
  • Eine Vorrichtung umfasst ein Befehlsmodul, das einen Befehl zu einem Peripheriegerät von einem oder mehreren Peripheriegeräten sendet, um auf dem Peripheriegerät eine Aktivität zu triggern. Das Peripheriegerät ist kommunikativ mit einem Informationshandhabungsgerät unter Verwenden eines separaten Datenbusses und einer Management-Bus-Verbindung von einem oder mehreren Managementbussen gekoppelt. Der Befehl wird über den Datenbus des Peripheriegerätes gesendet. Ein Überwachungsmodul prüft den einen oder die mehreren Managementbusse des Informationshandhabungsgerätes, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. Ein Assoziierungsmodul assoziiert die bestimmte Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät.
  • In einer Ausführungsform fragt das Überwachungsmodul jedes von einem oder mehreren Peripheriegeräten unter Verwenden einer Management-Bus-Verbindung zu jedem von einem oder mehreren Managementbussen ab, bis das Überwachungsmodul bestimmt, welches Peripheriegerät des einen oder der mehreren Peripheriegeräte in Reaktion auf den gesendeten Befehl aktiv war. In einer weiteren Ausführungsform bestimmt das Überwachungsmodul, ob ein Peripheriegerät des einen oder der mehreren Peripheriegeräte durch Einlesen von Daten, die durch eine Management-Bus-Verbindung zu einem Peripheriegerät verfügbar sind, aktiv ist. Die Daten können Informationen einschließen, die anzeigen, ob das Peripheriegerät in Reaktion auf den gesendeten Befehl aktiv war.
  • In einigen Ausführungsformen ist jedes von einem oder mehreren Peripheriegeräten mit einem oder mehreren adressierbaren Managementbussen verbunden und umfasst eine Management-Bus-Verbindung zu einem Peripheriegerät des einen oder der mehreren Peripheriegeräte eine adressierbare Management-Bus-Verbindung. In verschiedenen Ausführungsformen ist jedes von einem oder mehreren Peripheriegeräten mit einem separaten Managementbus verbunden. Jede Management-Bus-Verbindung kann eine Verbindung über einen einzelnen Managementbus zwischen dem Informationshandhabungsgerät und einem Peripheriegerät des einen oder der mehreren Peripheriegeräte aufweisen.
  • In einer Ausführungsform überwacht das Überwachungsmodul jede der ein oder mehreren Management-Bus-Verbindungen auf Daten, die von dem Peripheriegerät in Reaktion auf den Befehl gesendet werden, was anzeigt, welche der einen oder mehreren Management-Bus-Verbindungen mit dem Peripheriegerät gekoppelt ist. In einigen Ausführungsformen enthält das Assoziationsmodul eine Karte von Assoziationen zwischen den Management-Bus-Verbindungen, den Datenbussen und den Peripheriegeräten, so dass eine Management-Bus-Verbindung, die mit einem Peripheriegerät gekoppelt ist, mit einem Datenbus korreliert wird, der mit dem Peripheriegerät gekoppelt ist.
  • In einer weiteren Ausführungsform umfasst die Vorrichtung ein Gerätemodul, das beim Systemstart durch Feststellen, welche Datenbusse einer Vielzahl von Datenbussen mit einem Peripheriegerät verbunden sind, das eine oder die mehreren Peripheriegeräte bestimmt, die kommunikativ mit dem Informationshandhabungsgerät verbunden sind. In einigen Ausführungsformen sendet das Befehlsmodul den Befehl zu einem Peripheriegerät, bestimmt das Überwachungsmodul eine Management-Bus-Verbindung und assoziiert das Assoziationsmodul den Datenbus, den Peripheriebus und die Managementverbindung für jedes bestimmte Peripheriegerät.
  • In einigen Ausführungsformen sendet das Befehlmodul wiederholt den Befehl bis das Überwachungsmodul bestimmt, welche Management-Bus-Verbindung mit dem Peripheriegerät verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. In bestimmten Ausführungsformen umfasst der Befehl, der zu dem Peripheriegerät auf dem Datenbus gesendet wurde, einen Leseanfragebefehl für Daten, die auf dem Peripheriegerät gespeichert sind. Das Peripheriegerät kann ein Peripheriespeichergerät einschließen, so dass die Daten der Leseanfrage abgeworfen werden, ohne durch das Informationshandhabungsgerät bearbeitet zu werden.
  • In einer Ausführungsform umfasst die Vorrichtung ein Aktivitätsmodul, das über eine Management-Bus-Verbindung des einen oder der mehreren Managementbusse einen Aktivitätsindikator für das Peripheriegerät erfasst. Der Aktivitätsindikator kann in Reaktion darauf, dass das Peripheriegerät den zu dem Peripheriegerät gesendeten Befehl ausführt, getriggert werden. In einigen Ausführungsformen umfasst der Aktivitätsindikator eine erfassende Licht emittierende Diode (“LED”), die ihren Zustand zwischen Ein und Aus umschaltet. In einer weiteren Ausführungsform umfasst das Peripheriegerät ein nichtflüchtiges Speicherexpress-(“NVMe“)Speichergerät. In verschiedenen Ausführungsformen umfasst der Datenbus einen Peripheral Component Interconnect Express-(“PCIe”)Kommunikationsbus.
  • Ein Verfahren umfasst ein Senden eines Befehls an ein Peripheriegerät von einem oder mehreren Peripheriegeräten, um eine Aktivität auf dem Peripheriegerät zu triggern. Das Peripheriegerät ist kommunikativ mit einem Informationshandhabungsgerät unter Verwenden eines separaten Datenbusses und einer Management-Bus-Verbindung von einem oder mehreren Managementbussen gekoppelt. Der Befehl wird über den Datenbus an das Peripheriegerät gesendet. Das Verfahren umfasst ein Prüfen des einen oder der mehreren Managementbusse des Informationshandhabungsgerätes, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. Das Verfahren umfasst ein Assoziieren der bestimmten Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät.
  • In einer Ausführungsform umfasst das Verfahren ein Abfragen von jedem der einen oder der mehreren Peripheriegeräte unter Verwenden einer Management-Bus-Verbindung von jedem der einen oder der mehreren Managementbusse, bis bestimmt ist, welches Peripheriegerät des einen oder der mehreren Peripheriegeräte in Reaktion auf den gesendeten Befehl aktiv war.
  • In einer Ausführungsform umfasst ein Bestimmen, ob ein Peripheriegerät des einen oder der mehreren Peripheriegeräte aktiv ist, ein Lesen von Daten, die über eine Management-Bus-Verbindung zu einem Peripheriegerät verfügbar sind. Die Daten können Informationen einschließen, welche anzeigen, ob das Peripheriegerät in Reaktion auf den gesendeten Befehl aktiv war. In einigen Ausführungsformen ist jedes des einen oder der mehreren Peripheriegeräte mit einem oder mehreren adressierbaren Managementbussen verbunden, und umfasst eine Management-Bus-Verbindung zu einem Peripheriegerät des einen oder der mehreren Peripheriegeräte eine adressierbare Management-Bus-Verbindung.
  • Ein Programmprodukt umfasst ein computerlesbares Speichermedium, das einen durch einen Prozessor ausführbaren Code speichert. Der ausführbare Code umfasst einen Code, um ein Senden eines Befehls zu einem Peripheriegerät eines oder mehrerer Peripheriegeräte auszuführen, um eine Aktivität auf dem Peripheriegerät zu triggern. Das Peripheriegerät ist kommunikativ mit einem Informationshandhabungsgerät unter Verwenden eines separaten Datenbusses und einer Management-Bus-Verbindung von einem oder mehreren Managementbussen gekoppelt. Der Befehl wird über den Datenbus zu dem Peripheriegerät gesendet. Der ausführbare Code umfasst einen Code, um ein Prüfen des einen oder der mehreren Managementbusse des Informationshandhabungsgerätes auszuführen, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. Der ausführbare Code umfasst einen Code, um ein Assoziieren der bestimmten Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät auszuführen.
  • Kurze Beschreibung der Zeichnungen
  • Eine genauere Beschreibung der Ausführungsformen, die oben kurz beschrieben wurden, werden nun durch Bezugnahme auf spezifische Ausführungsformen wiedergegeben, die in den anhängenden Zeichnungen dargestellt werden. Es ist verständlich, dass diese Zeichnungen nur einige Ausführungsformen wiedergeben und deshalb nicht als Begrenzung des Umfangs zu betrachten sind, wobei die Ausführungsformen mit zusätzlicher Spezifikation und Detail durch den Gebrauch der begleitenden Zeichnungen beschrieben und erläutert werden, in denen:
  • 1 ein schematisches Blockdiagramm ist, das eine Ausführungsform eines Systems zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt;
  • 2 ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Vorrichtung zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt;
  • 3 ein schematisches Blockdiagramm ist, das eine Ausführungsform einer anderen Vorrichtung zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt;
  • 4 ein schematisches Flussdiagramm ist, das eine Ausführungsform eines Verfahrens zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt;
  • 5 ein schematisches Flussdiagramm ist, das eine Ausführungsform eines anderen Verfahrens zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt; und
  • 6 ein schematisches Flussdiagramm ist, das eine Ausführungsform eines Verfahrens zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte darstellt.
  • Detaillierte Beschreibung
  • Wie es für den Fachmann der Technik ersichtlich ist, können Aspekte der Ausführungsformen als ein System, ein Verfahren oder ein Programmprodukt zum Ausdruck gebracht werden. Dementsprechend können Ausführungsformen die Form einer vollständigen Hardwareausführung, einer vollständigen Softwareausführung (einschließlich Firmenware, residenter Software, Mikrocode usw.) oder eine Ausführungsform, die Software- und Hardwareaspekte kombiniert, annehmen, auf die hierin alle allgemein als ein “Schaltkreis”, “Modul” oder “System” Bezug genommen wird. Darüber hinaus können Ausführungsformen die Form eines Programmproduktes annehmen, das in einem oder mehreren computerlesbaren Speichergeräten enthalten ist, welche maschinenlesbare Codes, computerlesbare Codes und/oder Programmcodes speichern, auf die hiernach als Code Bezug genommen wird. Die Speichergeräte können materiel, nicht flüchtig und/oder nicht übertragend sein. Die Speichergeräte können keine Signale verkörpern. In einer bestimmten Ausführungsform verwenden die Speichergeräte Signale nur als Zugriffscode.
  • Viele der funktionellen Einheiten, die in dieser Spezifikation beschrieben werden, wurden als Module bezeichnet, um insbesondere ihre Anwendungsunabhängigkeit hervorzuheben. Zum Beispiel kann ein Modul als eine Hardwareschaltung implementiert sein, die kundenspezifische VLSI-Schaltkreise oder Gate-Arrays, standardmäßige Halbleiter wie Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Ein Modul kann auch in programmierbaren Hardwaregeräten wie Field Programmable Gate-Arrays, programmierbarer Arraylogik, programmierbaren Logikgeräten oder dergleichen implementiert sein.
  • Module können auch in einem Code und/oder Software zum Ausführen durch verschiedene Arten von Prozessoren implementiert sein. Ein identifiziertes Modul des Codes kann zum Beispiel ein oder mehrere physische oder logische Blöcke von ausführbaren Codes umfassen, welches beispielsweise als ein Objekt, ein Verfahren oder eine Funktion organisiert sein kann. Nichts desto trotz müssen die ausführbaren Programme eines identifizierten Moduls nicht physisch zusammen angeordnet sein, sondern können verstreute Instruktionen, die an verschiedenen Orten gespeichert sind, umfassen, welche, wenn sie logisch zusammengefügt werden, das Modul umfassen und den angegebenen Zweck des Moduls erfüllen.
  • Tatsächlich kann ein Modul eines Codes eine einzige Instruktion oder viele Instruktionen sein und kann selbst über mehrere unterschiedliche Codesegmente, unter verschiedenen Programmen und über mehrere Speichergeräte verteilt sein. Auf ähnliche Weise können Betriebsdaten identifiziert und hierin innerhalb von Modulen dargestellt werden und können in irgendeiner geeigneten Form verkörpert und innerhalb irgendeiner geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz gesammelt werden oder können über verschiedene Orte verteilt sein, einschließlich über verschiedene computerlesbare Speichergeräte. Wo ein Modul oder Abschnitte eines Moduls in Software ausgeführt ist bzw. sind, werden die Softwareabschnitte auf einem oder mehreren computerlesbaren Speichergeräten gespeichert.
  • Es können irgendwelche Kombinationen von einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Speichermedium sein. Das computerlesbare Speichermedium kann ein Speichergerät sein, das den Code speichert. Das Speichergerät kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes holografisches, mikromechanisches oder Halbleiter-System, -Vorrichtung oder -Gerät oder irgendeine geeignete Kombination des Vorhergehenden sein, ist aber nicht darauf begrenzt.
  • Spezifischere Beispiele (einer nicht erschöpfenden Liste) des Speichergerätes würde Folgendes umfassen: eine elektrische Verbindung, die ein oder mehr Drähte aufweist, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (“RAM”), einen Festwertspeicher (“ROM”), einen löschbaren programmierbaren Festwertspeicher (“EPROM” oder Flash-Speicher), einen tragbaren Compact Disk-Festwertspeicher (“CD-ROM”), ein optisches Speichergerät, ein magnetisches Speichergerät oder irgendeine geeignete Kombination der Vorhergehenden. Im Kontext dieses Dokumentes kann ein computerlesbares Speichermedium irgendein materielles Medium sein, welches ein Programm für den Gebrauch durch oder in Verbindung mit einem Instruktionsausführungs-System, einer -Vorrichtung oder einem -Gerät enthalten oder speichern kann.
  • Ein Code zum Ausführen von Vorgängen für Ausführungsformen kann in irgendeiner Kombination von einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer Objekt orientierten Programmiersprache wie Python, Ruby, Java, Smalltalk, C++, oder dergleichen, und in konventioneller Prozessprogrammiersprache wie die "C" Programmiersprache, oder dergleichen, und/oder in Maschinensprachen wie Assemblersprachen. Der Code kann vollständig auf dem Computer des Nutzers, teilweise auf dem Computer des Nutzers, als ein alleistehendes Softwarepaket, teilweise auf dem Computer des Nutzers und teilweise auf einem Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. In letzterem Szenario kann der Remote-Computer mit dem Computer des Nutzers über irgendeine Art von Netzwerk, einschließlich eines lokalen Netzwerkes (“LAN”) oder eines Weitverkehrsnetzes (“WAN”), verbunden sein oder kann die Verbindung zu einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwenden eines Internet Service Providers).
  • Eine Bezugnahme in dieser gesamten Spezifikation auf “eine einzelne Ausführungsform”, “eine Ausführungsform” oder ähnliche Sprachausdrücke bedeutet, dass ein besonderes Merkmal, eine Struktur oder ein Kennzeichen, das in Verbindung mit der Ausführungsform beschrieben wird, in wenigstens einer Ausführungsform enthalten ist. Somit kann sich das Auftreten der Ausdrücke “in einer einzigen Ausführungsform”, “in einer Ausführungsform” oder ähnlicher Sprachausdrücke in dieser gesamten Spezifikation insgesamt auf die gleiche Ausführungsform beziehen, muss dies aber nicht notwendigerweise, bedeutet jedoch “eine oder mehrere, aber nicht alle Ausführungsformen”, außer es wird ausdrücklich in anderer Weise spezifiziert. Die Ausdrücke “enthaltend”, “umfassend”, “aufweisend” und Variationen davon bedeuten “einschließlich, aber nicht begrenzt auf”, außer es wird ausdrücklich in anderer Weise spezifiziert. Eine bezifferte Auflistung von Gegenständen bedeutet nicht das irgendeins oder alle der Gegenstände wechselseitig exklusiv sind, außer es wird ausdrücklich in anderer Weise spezifiziert. Die Ausdrücke “ein”, “eine” und “der, die, das” beziehen sich auch auf “ein oder mehr”, außer es wird ausdrücklich in anderer Weise spezifiziert.
  • Darüber hinaus können die beschriebenen Merkmale, Strukturen oder Kennzeichen der Ausführungsformen in irgendeiner geeigneten Weise kombiniert werden. In der folgenden Beschreibung wird eine Vielzahl von spezifischen Details bereitgestellt wie Beispiele des Programmierens, der Softwaremodule, der Nutzerauswahl, der Netzwerktransaktionen, der Datenbankanfragen, der Datenbankstrukturen, der Hardwaremodule, der Hardwareschaltungen, der Hardwarechips, usw., um ein sorgfältiges Verständnis der Ausführungsformen bereitzustellen. Ein Fachmann der relevanten Technik wird jedoch erkennen, dass Ausführungsformen ohne eine oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien und so weiter durchgeführt werden können. In anderen Beispielen werden gut bekannte Strukturen, Materialien oder Vorgänge nicht gezeigt oder im Detail beschrieben, um verwirrende Aspekte einer Ausführungsform zu vermeiden.
  • Aspekte der Ausführungsformen werden unten mit Bezug auf schematische Flussdiagramme und/oder schematische Blockdiagramme von Verfahren, Vorrichtungen, Systemen und Programmprodukten gemäß den Ausführungsformen beschrieben. Es ist verständlich, dass jeder Block der schematischen Flussdiagramme und/oder schematischen Blockdiagramme und Kombinationen der Blöcke in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen durch einen Code ausgeführt sein können. Diese Codes können einem Prozessor eines Computers für allgemeine Zwecke, eines Computers für spezielle Zwecke oder anderen programmierbaren Datenverarbeitungsvorrichtungen zur Verfügung gestellt werden, um eine Maschine zu erzeugen, so dass die Instruktionen, die durch den Prozessor des Computers oder anderer programmierbarer Datenvorrichtungen ausgeführt werden, Mittel zum Ausführen der Funktionen/Aktionen erzeugen, die in in dem Block oder den Blöcken der schematischen Flussdiagramme und/oder schematischen Blockdiagramme spezifiziert sind.
  • Der Code kann auch in einem Speichergerät gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Geräte anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die Instruktionen, die in dem Speichergerät gespeichert sind, einen Gegenstand der Herstellung produzieren können, einschließlich Instruktionen, welche die Funktion/Aktion, die in dem Block bzw. den Blöcken der schematischen Flussdiagramme- und/oder schematischen Blockdiagramme spezifiziert sind, implementieren.
  • Der Code kann auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Geräte geladen werden, um eine Reihe von Betriebsschritten auf dem Computer, anderen programmierbaren Vorrichtungen oder anderen Geräten auszuführen, um einen computerimplementierten Prozess zu erzeugen, so dass der Code, der auf dem Computer oder anderen programmierbaren Vorrichtung ausgeführt wird, Vorgänge zum Ausführen der Funktionen/Aktionen, die in dem bzw. den schematischen Flussdiagramm- und/oder schematischen Blockdiagramm, dem Block oder den Blöcken spezifiziert werden, bereitstellt.
  • Die schematischen Flussdiagramme und/oder schematischen Blockdiagramme in den Figuren stellen die Architektur, Funktionalität und den Betrieb von möglichen Ausführungsformen der Vorrichtungen, Systeme, Verfahren und Programmprodukte gemäß verschiedenen Ausführungsformen dar. In dieser Beziehung kann jeder Block in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen ein Modul, ein Segment oder einen Abschnitt des Codes darstellen, welcher eine oder mehrere ausführbare Instruktionen des Codes zum Ausführen der spezifizierten logischen Funktion(en) umfasst.
  • Es sollte auch angemerkt werden, dass in einigen alternativen Ausführungen die Funktionen, die in dem Block notiert sind, außerhalb der Reihenfolge, die in den Figuren dargestellt ist, sein können. Zum Beispiel können zwei Blöcke, die in Reihenfolge gezeigt werden, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder können die Blöcke abhängig von der betroffenen Funktionalitätmanchmal in umgekehrter Reihenfolge ausgeführt werden. Andere Schritte und Verfahren können erdacht werden, die zu einem oder mehreren Blöcken, oder Abschnitten davon, der dargestellten Figuren in Funktion, Logik oder Effekt äquivalent sind.
  • Obwohl verschiedene Pfeiltypen und Linienarten in den Flussdiagrammen und/oder Blockdiagrammen angewandt sein können, werden diese nicht als den Umfang der entsprechenden Ausführungsformen begrenzend verstanden. Tatsächlich können einige Pfeile oder andere Verbindungen verwendet werden, um nur den logischen Fluss der dargestellten Ausführungsform anzuzeigen. Zum Beispiel kann ein Pfeil eine Warte- oder Überwachungsperiode von nicht spezifizierter Dauer zwischen mehreren Schritten der dargestellten Ausführungsform anzeigen. Es ist auch anzumerken, dass jeder Block der Blockdiagramme und/oder der Flussdiagramme und Kombinationen der Blöcke in den Blockdiagrammen und/oder Flussdiagrammen durch Hardware basierte Systeme für spezielle Anwendungen ausgeführt werden können, welche die speziellen Funktionen oder Aktionen, oder Kombinationen von Hardware für spezielle Anwendungen und Code ausführen.
  • Die Beschreibung von Elementen in jeder Figur kann sich auf Elemente von vorhergehenden Figuren beziehen. Ähnliche Zahlen beziehen sich in allen Figuren auf ähnliche Elemente, einschließlich alternativer Ausführungsformen oder ähnlicher Elementen.
  • 1 zeigt eine Ausführungsform eines Systems 100 zum Assoziieren von Datenbussen und Management-Bus-Verbindungen für Peripheriegeräte. In einer Ausführungsform umfasst das System 100 ein Informationshandhabungsgerät 102. Das Informationshandhabungsgerät 102 kann einen Desktopcomputer, einen Laptopcomputer, einen Tabletcomputer, ein Smartphone, eine Set-top Box, eine Spielekonsole, ein Smart-TV, eine Smartwatch, ein Fitnessband oder andere tragbare Aktivitätsverfolgungsgeräte, ein optisches Head-mounted Display (z.B. ein Virtual Reality-Headset, Smartglasses oder dergleichen), einen Personal Digital Assistant oder ein anderes Computergerät umfassen, das einen Prozessor 104, einen flüchtigen Speicher 108 und/oder ein nichtflüchtiges Speichermedium umfasst, welche wenigstens als eines der Peripheriegeräte 114a–n verkörpert sein können.
  • Der Prozessor 104 kann ein oder mehrere zentrale Verarbeitungseinheiten (“CPUs”), ein oder mehrer Prozessorkerne, ein Field Programmable Gate-Array (“FPGA”) oder eine andere programmierbare Logik, einen anwendungsspezifischen integrierten Schaltkreis (“ASIC”), ein Steuergerät, ein Mikrosteuergerät und/oder ein anderes halbleiterintegriertes Schaltungsgerät umfassen. Der Prozessor 104 kann Firmenware, die verwendet wird, um Hardwareinitialisierungen während des Boot-Prozesses auszuführen, wie beispielsweise ein Basis-Eingabe/Ausgabe-System (“BIOS”) 106 einschließen. Das BIOS 106 kann in einer Ausführungsform ein Beispiel der Unified Extensible Firmware Interface (“UEFI”) Firmware umfassen.
  • Das Informationshandhabungsgerät 102 umfasst in bestimmten Ausführungsformen ein oder mehrere Peripheriegeräte 114a–n (kollektiv 114). Die Peripheriegeräte 114 können, wie hierin verwendet, interne und/oder externe Geräte einschließen, welche eine Eingabe und/oder eine Ausgabe für das Informationshandhabungsgerät 102 bereitstellen. Beispielsweise können die Peripheriegeräte 114 als Speichergeräte (z.B. nichtflüchtige Speicher-(“NVM“)Geräte, NVM-Express-(“NVMe”)Geräte, Festkörperspeichergeräte (“SSSD”) und/oder dergleichen), Flash-Speichergeräte, Netzwerkkarten, Grafikkarten und/oder dergleichen ausgeführt sein.
  • In einer Ausführungsform sind die Peripheriegeräte 114 mit dem Informationshandhabungsgerät 102 über eine Rückseitenplatine 122 verbunden. Wie hierin verwendet, kann eine Rückseitenplatine 122 als eine gedruckte Leiterplatte (“PCB”) ausgeführt sein, die mehrere Schlitze für ein Verbinden mehrere Peripheriegeräte 114 oder andere Schaltungsplatten der Rückseitenplatine 122 umfasst. Zum Beispiel kann die Rückseitenplatine 122 eine Vielzahl von Schlitzen, Kabelverbindungen (z.B. Datenbus- 116 und/oder Management-Bus- 118 Kabelverbindungen) und/oder andere Arten von Steckern zum Verbinden von MVMe-Speichergeräten mit dem Informationshandhabungsgerät 102 einschließen. Wie in 1 dargestellt, ist die Rückseitenplatine 122 innerhalb des Informationshandhabungsgerätes 102 enthalten. In einer anderen Ausführungsform kann die Rückseitenplatine 122 in einem separaten Gerät enthalten sein, wie einem separaten Speichergehäuse, z.B. einem Speichergestell, das mit dem Informationshandhabungsgerät 102 unter Verwenden von einem oder mehreren Kommunikationsbussen gekoppelt ist.
  • In bestimmten Ausführungsformen sind die Peripheriegeräte 114 kommunikativ unter Verwenden von einem oder mehreren Kommunikationsbussen 116a–n/118 mit dem Prozessor 104 gekoppelt. In einer Ausführungsform ist jedes Peripheriegerät 114 mit dem Prozessor 104 unter Verwenden eines Datenbusses 116a–n (kollektiv 116) gekoppelt. Zum Beispiel kann hier ein 1:1 Verhältnis zwischen den Peripheriegeräten 114 und den Datenbussen 116 bestehen, so dass jedes Peripheriegerät 114 mit dem Informationshandhabungsgerät 102 unter Verwenden eines separaten und unabhängigen Datenbusses 116 gekoppelt ist.
  • Der Datenbus 116 kann, um Eingabe/Ausgabe-(“E/A”) Vorgänge (z.B. Datenübertragung) zwischen dem Prozessor 104 und den Peripheriegeräten 114 auszuführen, verwendet werden. In einigen Ausführungsformen wird der Datenbus 116 als ein Kabel verkörpert, das zwischen dem Peripheriegerät 114 und dem Prozessor 104 koppelbar ist. Der Datenbus 116 kann auch über eine oder mehrere Datenleitungen auf der Rückseitenplatine 112 mit dem Peripheriegerät 114 gekoppelt sein. In bestimmten Ausführungsformen ist der Datenbus 116 ein Peripheral Component Interconnect-Bus (“PCI”), ein PCI extended (“PCI-X”) Bus, ein Accelerated Graphics Port-Bus (“AGP”), ein PCI-Express-Bus (“PCIe”), ein Universal Serial Bus (“USB”), ein Serial Advanced Technology Attachment-Bus (“SATA”) und/oder dergleichen.
  • In einer Ausführungsform ist ein Managementbus 118 konfiguriert, um Managementmitteilungen zu/von dem Prozessor 104 von/zu den Peripheriegeräten 114 zu übertragen. Ein Managementbus 118 kann als ein Inter Integrated Circuit-(“I2C”)Kommunikationsbus eingebaut sein. Managementmitteilungen können Mitteilungen einschließen, welche einen Status des Peripheriegerätes 118 steuern, wie Leistung-Einschalten/Leistung-Ausschalten, Ausschalten/Einschalten, Standby-Betrieb, Rücksetzen und/oder dergleichen. Zum Beispiel kann ein Betriebssystem, das auf dem Informationshandhabungsgerät 102 läuft, eine Mitteilung über einen Managementbus 118 senden, um ein Speichergerät, das mit dem Informationshandhabungsgerät 102 über ein PCIe-Kabel angeschlossen ist, zurückzusetzen. Ein Managementbus 118 kann als ein Kabel verkörpert sein, das zwischen dem Informationshandhabungsgerät und beispielsweise dem Prozessor 104 und/oder der Peripheriegerätevorrichtung 110 und der Rückseitenplatine 122 verbunden ist. Selbst wenn nur ein Managementbus 118 in 1 gezeigt wird, können mehrere Managementbusse 118 verwendet werden, um die Peripheriegeräte 114 auf einer einzigen Rückseitenplatine 122 oder auf mehreren Rückseitenplatinen 122 zu verbinden.
  • In einigen (nicht gezeigten) Ausführungsformen ist jeder Managementbus 118 kommunikativ mit einem einzigen entsprechenden Peripheriegerät 114 gekoppelt. In einer derartigen Ausführungsform kann es ein 1:1 Verhältnis zwischen Managementbussen 118 und Peripheriegeräten 114 geben, so dass jedes Peripheriegerät 114 mit dem Informationshandhabungsgerät 102 unter Verwenden einer separaten und unabhängigen Managementbusverbindung 124 eines Managementbusses 118 gekoppelt ist. Bezugnehmend nun auf 1, sollte, anstelle des Verwendens eines einzigen Managementbusses 118, der mit der Rückseitenplatine 122 verbunden ist, das heißt, mit einer Mehrzahl von Managementbusverbindungen 124 assoziiert ist, jede Managementbusverbindung 124 für ein Peripheriegerät 114 mit einem separaten und eindeutigen Managementbus 118 assoziiert sein. Zum Beispiel kann jedes Peripheriegerät 114 mit einem entsprechenden Managementbuskabel verbunden sein, anstelle eines Verwendens eines einzelnen Managementbuskabels, um mehrere Peripheriegeräte 114 zu managen.
  • In einer anderen Ausführungsform, wie in 1 gezeigt, kann es ein 1:n oder ein eins-zu-vielen Verhältnis zwischen einem Managementbus 118 und den Peripheriegeräten 114 geben. In einer derartigen Ausführungsform kann ein Managementbus 118 eine Mehrzahl von Management-Bus-Verbindungen 124a–n (kollektiv 124) umfassen, von denen jede mit einem Peripheriegerät 114 verbindbar ist und unter Verwenden einer Kennung, wie einer einzigartigen Adresse (z.B. einer Adresse für die Management-Bus-Verbindung 124, einer Adresse für ein Peripheriegerät 114 oder dergleichen) und/oder dergleichen adressierbar ist. In einer derartigen Ausführungsform kann der Managementbus 118 mit einem Storage ENclosure Processor (“SEP“) 115 für die Rückseitenplatine 122 verbunden sein. Wie hierin verwendet, kann ein SEP 115 ein Prozessor sein, der auf der Rückseitenplatine 122 angeordnet ist, um Peripheriegeräte 114 auf der Rückseitenplatine 122 zu verwalten.
  • Beispielsweise kann der SEP 115 die Management-Bus-Verbindungen 124 für den Managementbus 118 verwalten, um Managementmitteilungen zwischen dem Informationshandhabungsgerät 102 und den Peripheriegeräten 114 auf der Rückseitenplatine 122 zu übertragen, basierend auf einer einzigartigen Adresse für die Management-Bus-Verbindung 124 und/oder das Peripheriegerät 114. Zum Beispiel kann ein Betriebssystem für das Informationshandhabungsgerät 102 einen Rücksetzbefehl an ein Peripheriegerät 114 senden durch Bereitstellen einer Kennung oder einer Adresse für das Peripheriegerät 114 und/oder die Management-Bus-Verbindung 124 des Managementbusses 118. In einem derartigen Beispiel kann der SEP 115 die bereitgestellte Kennung oder Adresse verwenden, um den Rücksetzbefehl an das Peripheriegerät 114, das mit der Kennung oder der Adresse assoziiert ist, zu senden. In einem weiteren Beispiel kann der SEP 115 die bereitgestellte Kennung oder Adresse in eine andere Kennung oder Adresse, welche zum Kommunizieren mit dem Peripheriegerät 114 auf der Rückseitenplatine 122 verwendet werden, übersetzen, abbilden oder in anderer Weise in Querbezug setzen.
  • Wie hierin verwendet, ist eine Managementverbindung zwischen dem Prozessor 104, der Peripheriegerätevorrichtung 110 oder dergleichen und einem Peripheriegerät 114 als eine Management-Bus-Verbindung 124 bekannt, unabhängig davon, ob es einen einzelnen Managementbus 118 gibt, der mit jedem Peripheriegerät 114 verbunden ist (z.B. einer Management-Bus-Verbindung 124 pro Managementbus 118), oder einen einzelnen Managementbus 118, der mit mehreren Peripheriegeräten 114 verbunden ist (z.B. mehreren adressierbaren Management-Bus-Verbindungen 124 pro Managementbus 118).
  • Das Basisplatinen-Managementsteuergerät (“BMC”) 113 ist in einer Ausführungsform eine spezialisierte Hardwarekomponente des Informationshandhabungsgerätes 102, die verwendet wird, um die Schnittstelle zwischen der Systemmanagementsoftware, wie dem BIOS 106, einem Betriebssystem oder anderer Managementsoftware, und einer Plattformhardware, wie den Peripheriegeräten 114, unter Verwenden eines Systemmanagementbusses 119 zu verwalten. Zum Beispiel kann das BMC 113 die Übertragung von Managementmitteilungen zwischen dem Prozessor, dem BIOS 106, der Peripheriegerätevorrichtung 110, einem Betriebssystem, und/oder dergleichen, und den Peripheriegeräten 114, dem SEP 115, und/oder dergleichen, verwalten.
  • Die Brücke 112 verbindet in einer Ausführungsform die Peripheriegeräte 114 mit dem Prozessor 104 und/oder der Peripheriegerätevorrichtung 110 über Datenbusse 116. Die Brücke 112 kann als ein Schalter agieren und kann Daten auf den Datenbussen 116 zwischen dem Prozessor 104 und den entsprechenden Peripheriegeräten 114 leiten. In bestimmten Ausführungsformen kann eine Mehrzahl von Brücken 112 in dem Informationshandhabungsgerät 102 angeordnet sein, wobei jede Brücke 112 mit einem oder mehreren Peripheriegeräten 114 verbunden ist.
  • Die Peripheriegerätevorrichtung 110 ist in einer Ausführungsform konfiguriert, um einen Datenbus 116 mit einer entsprechenden Management-Bus-Verbindung 124 eines Managementbusses 118 zu assoziieren oder zu korrelieren, der mit dem gleichen Peripheriegerät 114 wie der Datenbus 116 verbunden ist. In einer Ausführungsform sendet die Peripheriegerätevorrichtung 110 einen Befehl über einen Datenbus 116 zu einem Peripheriegerät 114, um eine Aktivität auf dem Peripheriegerät 114 zu triggern. Die Peripheriegerätevorrichtung 110 prüft in einer weiteren Ausführungsform die Managementbusse 118 des Informationshandhabungsgerätes 102, um zu bestimmen, welche Management-Bus-Verbindung 124 mit dem Peripheriegerät 114 verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. In einigen Ausführungsformen assoziiert die Peripheriegerätevorrichtung 110 die bestimmte Management-Bus-Verbindung 124 mit dem Datenbus 116, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät 114. In einigen Ausführungsformen ist wenigstens ein Abschnitt der Peripheriegerätevorrichtung 110 auf dem Prozessor 104, auf der Rückseitenplatine 122, auf dem BMC 113 und/oder auf dem SEP 115 angeordnet. Die Peripheriegerätevorrichtung 110 wird in größerem Detail unten mit Bezug auf die 2 und 3 beschrieben.
  • In einer Ausführungsform ist das Informationshandhabungsgerät 102 mit einem Datennetzwerk 120 verbunden. Das Datennetzwerk 120 umfasst in einer Ausführungsform ein digitales Kommunikationsnetzwerk, das digitale Kommunikationen überträgt. Das Datennetzwerk 120 kann ein drahtloses Netzwerk, wie ein drahtloses Mobilfunknetzwerk, ein lokales drahtloses Netzwerk, wie ein Wi-Fi-Netzwerk, ein Bluetooth® Netzwerk, ein Nahfeldkommunikations-(“NFC”)Netzwerk, ein Ad-hoc-Netzwerk und/oder dergleichen umfassen. Das Datennetzwerk 120 kann ein Weitverkehrsnetz (“WAN”), ein Speichernetzwerk (“SAN”), ein lokales Netzwerk (“LAN”), ein optisches Fasernetzwerk, das Internet oder ein anderes digitales Kommunikationsnetzwerk umfassen. Das Datennetzwerk 120 kann zwei oder mehr Netzwerke einschließen. Das Datennetzwerk 120 kann ein oder mehrere Server, Router, Schaltgeräte und/oder andere Netzwerkanlagen einschließen. Das Datennetzwerk kann auch ein oder mehrere computerlesbare Speichermedien, ein Festplattenlaufwerk, ein optisches Laufwerk, einen nichtflüchtigen Speicher, ein RAM oder dergleichen einschließen.
  • In einer Ausführungsform ist das Informationshandhabungsgerät 102 mit einem oder mehreren anderen Computergeräten 130/132 über das Datennetzwerk 106 verbunden. Die anderen Computergeräte 130 können zum Beispiel Smartphones, Tabletcomputer, Laptops und/oder dergleichen einschließen. In einer weiteren Ausführungsform können die anderen Computergeräte 132 Server, andere Geräte in einem Datenzentrum, das an einem Ort oder auf einem externen Datennetzwerk 120 und/oder dergleichen angeordnet ist, umfassen.
  • 2 zeigt eine Ausführungsform einer Vorrichtung 200 zum Assoziieren von Datenbussen 116 und Management-Bus-Verbindungen 124 für Peripheriegeräte 114. Die Vorrichtung 200 umfasst eine Ausführungsform einer Peripheriegerätevorrichtung 110 mit einem Befehlsmodul 202, einem Überwachungsmodul 204 und einem Assoziationsmodul 206, die unten in größerem Detail beschrieben werden.
  • Das Befehlsmodul 202 sendet einen Befehl an ein Peripheriegerät 114, um eine Aktivität auf dem Peripheriegerät 114 zu triggern. In bestimmten Ausführungsformen sendet das Befehlsmodul 202 den Befehl an einen Datenbus 116, der mit dem Peripheriegerät 114 verbunden ist. Das Befehlsmodul 202 kann einen Befehl basierend auf einer Art eines Peripheriegerätes 114 senden, das den Befehl empfängt. Wenn das Peripheriegerät 114 zum Beispiel ein NVMe-Speichergerät ist, kann das Befehlsmodul 202 einen Leseanfragebefehl für Daten, die auf dem Peripheriegerät 114 gespeichert sind, senden. In einer derartigen Ausführungsform können die Daten der Leseanfrage, ohne ausgeführt, gelesen oder übertragen zu werden oder dergleichen durch/von dem Prozessor 104, das Informationshandhabungsgerät 102, ein Speichersteuergerät (nicht gezeigt) und/oder dergleichen, abgelehnt werden.
  • Zum Beispiel kann, in Reaktion auf das Empfangen eines Leseanfragebefehls an ein NVMe-Speichergerät, das Befehlsmodul 202 ein Datenlesen von dem NVMe-Speichergerät ablehnen oder ignorieren, um den Leseanfragebefehl ohne Übertragen der Daten über einen PCIe-Datenbus 116, der mit dem NVMe-Speichergerät gekoppelt ist, zu erfüllen. Andere Befehle für unterschiedliche Peripheriegeräte 114 können verwendet werden, wie Netzwerkbefehle für eine Peripherienetzwerkkarte, Grafikbefehle für eine Peripheriegrafikkarte, Soundbefehle für eine Peripheriesoundkarte und/oder dergleichen.
  • In bestimmten Ausführungsformen sendet das Befehlsmodul 202 einen Managementbefehl an das Peripheriegerät 114 unter Verwenden einer Management-Bus-Verbindung 124 eines Managementbusses 118, um eine Aktivität, eine Reaktion und/oder dergleichen auf dem Peripheriegerät 114 zu triggern. Zum Beispiel kann das Befehlsmodul 202 einen Rücksetzbefehl zu einem Peripheriegerät 114 auf einer Management-Bus-Verbindung 124, die mit dem Peripheriegerät 114 verbunden ist, senden, um das Peripheriegerät in einen Rücksetzzustand zu versetzen (z.B. um das Peripheriegerät 114 auszuschalten und dann einzuschalten, um das Peripheriegerät 114 zu deaktivieren und dann zu aktivieren, oder dergleichen).
  • Das Überwachungsmodul 204 prüft Management-Bus-Verbindungen 124, die mit den Peripheriegeräten 114 verbunden sind, um zu bestimmen, welche Management-Bus-Verbindung 124 eines Managementbusses 116 in Reaktion auf das Empfangen des Befehls, den das Befehlsmodul 202 an das Peripheriegerät 114 sendete, aktiv war. In einer Ausführungsform fragt das Überwachungsmodul 204 jedes Peripheriegerät 114, das mit dem Informationshandhabungsgerät 102 verbunden ist, unter Verwenden einer Management-Bus-Verbindung 124 ab, bis das Überwachungsmodul 204 bestimmt, welches Peripheriegerät 114 in Reaktion auf die gesendete Mitteilung aktiv war. Zum Beispiel kann das Überwachungsmodul 204 eine Anfrage an den SEP 115 und/oder an das Peripheriegerät 114 senden, um zu prüfen, ob das Peripheriegerät 114 in Reaktion auf den Befehl, der an das Peripheriegerät 114 gesendet wurde, aktiv war.
  • Das Überwachungsmodul 204 kann zum Beispiel ein aktives Bit, das durch das Peripheriegerät 114 und/oder den SEP 115 gesetzt wurde, prüfen, wenn das Peripheriegerät 114 eine Aktivität in Reaktion auf bestimmte Befehle ausführt. In bestimmten Ausführungsformen liest das Überwachungsmodul 204 Daten, die für ein Peripheriegerät 114 durch eine Management-Bus-Verbindung 124 eines Managementbusses 118 verfügbar sind, um zu bestimmen, ob das Peripheriegerät 114 eine Aktivität in Reaktion auf den gesendeten Befehl ausgeführt hat. Zum Beispiel können die Daten von einem Speicher oder einem Speicherort, der mit dem Peripheriegerät 114 und/oder dem SEP 115 assoziiert ist, ausgelesen werden und können diese Informationen einschließen, die anzeigen, ob das Peripheriegerät 114 in Reaktion auf den gesendeten Befehl aktiv war. Zum Beispiel können die Daten ein aktives Bit umfassen, welches das Peripheriegerät 114 oder der SEP 115 gesetzt hat, um anzuzeigen, ob das Peripheriegerät 114 aktiv war, nachdem das Befehlsmodul 202 den Befehl gesendet hat. Die Daten können andere Daten umfassen, einschließlich, aber nicht begrenzt auf, eine Kennung für das Peripheriegerät 114, eine Kennung für den Anschluss, mit dem das Peripheriegerät 114 verbunden ist, die Art des Befehls, der gesendet wurde, und/oder dergleichen.
  • In einer weiteren Ausführungsform überwacht das Überwachungsmodul 204 ein oder mehrere Management-Bus-Verbindungen 124 eines Managementbusses 118 auf Daten, die von dem Peripheriegerät 114 gesendet wurden, in Reaktion auf den Befehl, der zu dem Peripheriegerät 114 über den Datenbus 116, der mit dem Peripheriegerät 114 verbunden ist, gesendet wurde. In einigen Ausführungsformen überwacht das Überwachungsmodul 204 jede der ein oder mehreren Management-Bus-Verbindungen 124 in Reaktion auf den Befehl, der zu dem Peripheriegerät 114 gesendet wurde. Zum Beispiel kann das Befehlsmodul 202 einen Leseanfragebefehl zu einem NVMe-Speichergerät auf dem PCIe-Datenbus 116, der mit dem Speichergerät gekoppelt ist, senden. In Reaktion darauf, dass das Befehlsmodul 202 die Leseanfrage sendet, kann das Überwachungsmodul 204 jede der Management-Bus-Verbindungen 124 auf dem Informationshandhabungsgerät 102 nach Daten überwachen, die anzeigen, welches Peripheriegerät 114 die Leseanfrage empfangen hat, um zu bestimmen, welches Peripheriegerät 114 mit dem Managementbus 118 oder mit der Management-Bus-Verbindung 124 verbunden ist.
  • In einer derartigen Ausführungsform können die Daten anzeigen, welche der Management-Bus-Verbindungen 124 eines Managementbusses 118 mit dem Peripheriegerät 114, das den Befehl empfangen hat, gekoppelt ist. Beispielsweise kann ein NVMe-Speichergerät mit einem PCIe-Datenbus 116 auf einem PCIe-Anschluss 0 verbunden sein. Das Befehlsmodul 202 kann einen Leseanfragebefehl auf dem Peripheriegerät 114 auf dem PCIe-Anschluss 0 senden. In Reaktion auf den gesendeten Leseanfragebefehl kann das Überwachungsmodul 204 jede Management-Bus-Verbindung 124 auf dem Informationshandhabungsgerät 102 überwachen. Das Überwachungsmodul 204 kann Daten auf einem Managementbus 118 empfangen, der mit dem Managementbusanschluss 1 gekoppelt ist, der anzeigt, dass der Leseanfragebefehl auf dem PCIe-Anschluss 0 empfangen wurde, der mit dem NVMe-Speichergerät gekoppelt ist.
  • In einer Ausführungsform, bei der das Befehlsmodul 202 einen Managementbefehl an ein Peripheriegerät 114 über eine Management-Bus-Verbindung 124 eines Managementbusses 118 sendet, um eine Reaktion oder eine Aktivität auf dem Peripheriegerät 114 zu triggern, prüft das Überwachungsmodul 204 jedes der Peripheriegeräte 114 des Informationshandhabungsgerätes 103, um zu bestimmen, welches der Peripheriegeräte 114 auf den Managementbefehl reagiert hat.
  • Zum Beispiel kann das Befehlsmodul 202 einen Rücksetzbefehl zu einem besonderen Peripheriegerät 114 über eine Management-Bus-Verbindung 124 senden. Das Überwachungsmodul 204 kann in Reaktion auf den Rücksetzbefehl einen Befehl an jeden Datenbus 116, der mit einem Peripheriegerät 114 verbunden ist, senden, wie einen Leseanfragebefehl, um zu bestimmen, welches der Peripheriegeräte 102 nicht reagiert, inaktiv ist, in einem Rücksetzzustand ist und/oder dergleichen. Auf diese Weise kann das Überwachungsmodul 204 identifizieren, welcher Datenbus 116 mit dem Peripheriegerät 114, das die Managementmitteilung auf einer besonderen Management-Bus-Verbindung 124 empfangen hat, verbunden ist, weil das Überwachungsmodul 204 keine Reaktion auf einem Datenbus 116 empfangen kann, der mit dem Peripheriegerät 114, das zurückgesetzt wurde, verbunden ist. Dementsprechend können, wie unten beschrieben, die Management-Bus-Verbindung 124 und der Datenbus 116 mit dem Peripheriegerät 114, das den Rücksetzbefehl erhalten hat, korreliert oder assoziiert werden.
  • In einigen Ausführungsformen sendet das Überwachungsmodul 202 den Befehl wiederholt auf dem Datenbus 106 und/oder der Management-Bus-Verbindung 124 eines Managementbusses 118 zu einem Peripheriegerät 114, bis das Überwachungsmodul 204 bestimmt, welche Management-Bus-Verbindung 124 mit dem Peripheriegerät, das in Reaktion auf den gesendet Befehl aktiv war, verbunden ist. Zum Beispiel kann das Befehlsmodul 202 einen Leseanfragebefehl alle 100 Millisekunden über einen besonderen Datenbus 116 senden, bis es eine Anzeige von dem Überwachungsmodul 204 empfängt, dass eine Management-Bus-Verbindung 124 in Reaktion auf den Leseanfragebefehl identifiziert wurde. Danach kann das Befehlsmodul 202 einen Befehl zu dem nächsten identifizierten Peripheriegerät 114 senden, bis eine Management-Bus-Verbindung 124 für jedes Peripheriegerät 114 des Informationshandhabungsgerätes 102 identifiziert wurde.
  • Das Assoziationsmodul 206 assoziiert, korreliert und/oder dergleichen die identifizierte Management-Bus-Verbindung 124 eines Managementbusses 118 mit dem Datenbus 116, über den der Befehl gesendet wurde. Mit dem vorhergehenden Beispiel fortsetzend, kann das Assoziationsmodul 206 den PCI-Anschluss 0 mit dem Managementbusanschluss 1 für das spezifische NVMe-Speichergerät assoziieren. In einer weiteren Ausführungsform kann das Assoziationsmodul 206 eine Liste, Tabelle, Datenbank, Karte und/oder dergleichen der Datenbusse 116 (z.B. Datenbus- 116 Anschlüsse), Managementbusse 118 (z.B. Managementbus- 118 Anschlüsse), Management-Bus-Verbindungen 124 (z.B. Adressen oder Kennungen für Management-Bus-Verbindungen 124) und Peripheriegeräte- 114 Assoziationen aufrechterhalten, welche durch ein Programm verwendet oder auf ein Programm, wie ein Betriebssystem, bezogen werden können, um zu bestimmen, welche Managementbusse 118 und/oder welche Management-Bus-Verbindungen 124 und Datenbusse 116 mit einem besonderen Peripheriegerät 114 gekoppelt sind.
  • Wie oben beschrieben, kann in einigen Ausführungsformen ein Peripheriegerät 114 mit einem Informationshandhabungsgerät 102 unter Verwenden eines separaten Datenbus- 116 Kabels und eines separaten Managementbus- 118 Kabels, welche einer Anzahl von Peripheriegeräten 114 über verschiedene adressierbare Management-Bus-Verbindungen 124 dienen können, gekoppelt sein. Wenn die Peripheriegeräte 114 in einem Informationshandhabungsgerät 102 installiert sind, kann keine Korrelation oder Assoziation zwischen den Datenbus- 116 Kabeln und den Managementbus- 110 Kabeln, einschließlich der verschiedenen adressierbaren Management-Bus-Verbindungen 124, die mit einem Managementbus- 118 Kabel assoziiert sind, erfolgen. Somit kann zum Beispiel ein NVMe-Speichergerät mit einem Datenbus- 116 Kabel auf dem PCIe-Anschluss 1 und einem Managementbus- 118 Kabel auf dem Managementbusanschluss 3 gekoppelt sein. Wenn zum Beispiel ein Betriebssystem das MVMe-Speichergerät, das auf dem PCIe-Anschluss 1 angeordnet ist, deaktivieren möchte, kann es nicht wissen, welcher Managementbus- 118 Anschluss oder welche Management-Bus-Verbindungs- 124 Adresse zu verwenden ist, um den Deaktivierungsbefehl zu senden, weil es keine Garantie dafür gibt, dass das Managementbus- 118 Kabel mit der gleichen Anschlusskennung wie das Datenbus- 116 Kabel gekoppelt ist, z.B. dem PCIe-Anschluss 1. In diesem Beispiel ist das Managementbus- 118 Kabel nicht mit der gleichen Anschlussnummer wie der PCIe-Anschluss gekoppelt, was Probleme mit den NVMe-Speichergeräten verursachen kann, wenn das Betriebssystem beabsichtigt, das MVMe-Speichergerät auf dem PCIe-Anschluss 1 durch Senden eines Deaktivierungsbefehls unter Verwenden des Managementbusanschlusses 1 zu deaktivieren, weil es mit einem anderen NVMe-Speichergerät auf einem anderen PCIe-Anschluss verbunden sein kann.
  • Demgemäß hält das Assoziationsmodul 206 eine Zuordnung der Managementbusse 118/Management-Bus-Verbindungen 124 zu den Datenbussen 116, die mit einem Peripheriegerät 114 gekoppelt sind, aufrecht, um sicherzustellen, dass die korrekten Managementbusse 118 und/oder Management-Bus-Verbindungen 124 und die Datenbusse 116 für ein spezielles Peripheriegerät 114 verwendet werden. Auf diese Weise spielt es keine Rolle, mit welchen Anschlüsse das Datenbus- 116 Kabel und/oder das Managementbus- 118 Kabel und/oder die Verbindungen 124 gekoppelt sind; die Peripheriegerätevorrichtung 110 kann dynamisch die Assoziation oder Korrelation zwischen dem Datenbus 116 und dem Managementbus 118 und/oder den Management-Bus-Verbindungen 124 für jedes Peripheriegerät 114, das mit dem Informationshandhabungsgerät gekoppelt ist, bestimmen.
  • 3 zeigt eine Ausführungsform einer Vorrichtung 300 zum Assoziieren von Datenbussen 116 und Management-Bus-Verbindungen 124 für Peripheriegeräte 114. Die Vorrichtung 300 umfasst eine Ausführungsform einer Peripheriegerätevorrichtung 110 mit einem Befehlsmodul 202, einem Überwachungsmodul 204 und einem Assoziationsmodul 206, welche ähnlich zu dem Befehlsmodul 202, dem Überwachungsmodul 204 und dem Assoziationsmodul 206, die oben beschrieben wurden, sind. Die Peripheriegerätevorrichtung 110 umfasst in einigen Ausführungsformen ein Gerätemodul 302 und ein Aktivitätsmodul 304, wie unten beschrieben wird.
  • Das Gerätemodul 302 bestimmt in einer Ausführungsform, welches der Peripheriegeräte 114 kommunikativ mit dem Informationshandhabungsgerät 102 verbunden ist. In einigen Ausführungsformen scannt das Gerätemodul 302 jeden Datenbus 116, wie jeden PCIe-Bus des Informationshandhabungsgerätes 102, um zu bestimmen, welcher Datenbus 116 ein mit ihm gekoppeltes Peripheriegerät 114 aufweist. Zum Beispiel kann das Gerätemodul 302 jeden PCIe-Anschluss der Brücke 112, eines Motherboards, des Prozessors 104 oder dergleichen scannen, um zu bestimmen, welcher PCIe-Anschluss ein zugeordnetes Peripheriegerät 114 aufweist.
  • In bestimmten Ausführungsformen bestimmt das Gerätemodul 302 jedes Peripheriegerät 114 des Informationshandhabungsgerätes 102 im Startup- bzw. Anlaufbetrieb. Zum Beispiel kann das System BIOS/UEFI 106 ein Scannen auf jedem PCIe-Anschluss auf dem Informationshandhabungsgerät 102 ablaufen lassen, um jedes NVMe-Speichergerät, das mit jedem PCIe-Anschluss unter Verwenden eines PCIe-Datenbusses 116 verbunden ist, zu bestimmen oder zu identifizieren. In einer weiteren Ausführungsform kann das Gerätemodul 302 jeden bestimmten Datenbus 116, der mit einem Peripheriegerät 114 gekoppelt ist, in einer Liste, Tabelle, Datenbank, Karte oder dergleichen aufzählen oder auflisten, was später durch das Assoziationsmodul 206 verwendet werden kann, um jeden bestimmten Datenbus 116 mit seinem korrespondierenden Managementbus 118 und/oder seiner Management-Bus-Verbindung 124 zu assoziieren.
  • In bestimmten Ausführungsformen aktiviert das Gerätemodul 302 jede Management-Bus-Verbindung 124 eines Managementbusses 118 beim System-Startup durch Initialisieren jedes Peripheriegerätes 114, das kommunikativ mit dem Informationshandhabungsgerät 102 über einen Datenbus 116 und einen Managementbus 118 verbunden ist. Wenn zum Beispiel das BIOS/UEFI 106 ein NVMe-Speichergerät findet, das mit einem PCIe-Datenbus 116 beim System-Startup gekoppelt ist, kann das BIOS/UEFI 106 und/oder das NVMe-Speichergerät die Mangement-Bus-Verbindung 124 für das NVMe-Speichergerät aktivieren, so dass das BIOS/UEFI 106 und/oder das NVMe-Speichergerät Managementdaten über die Management-Bus-Verbindung 124 zu dem Managementbus 118 übertragen kann. Dementsprechend kann ein Aktivieren von jedem der Management-Bus-Verbindungen 124 es dem BIOS/UEFI 106 ermöglichen, jede der Management-Bus-Verbindungen 124 und/oder jeden der Managementbusse 118 und jeden der PCIe-Datenbusse 116 aufzuzählen, die mit einem NVMe-Speichergerät gekoppelt sind; an diesem Punkt gibt es jedoch keine Assoziation oder Korrelation zwischen den PCIe-Datenbussen 116 und den Management-Bus-Verbindungen 124 für jedes der NVMe-Speichergeräte. Deshalb können, basierend auf dem Gegenstand, der hierin offenbart wird, Assoziationen zwischen einem Datenbus 116 und einer Management-Bus-Verbindung 124 für ein Peripheriegerät 114 bestimmt werden.
  • In einigen Ausführungsformen scannt das Befehlsmodul 304 die Liste der Datenbusse 116, die mit den Peripheriegeräten 114 gekoppelt sind, welche das Gerätemodul 302 generiert hat, und sendet einen Befehl zu jedem Peripheriegerät 114 über die aufgelisteten Datenbusse 116. Wie oben beschrieben, überwacht das Überwachungsmodul 204 in Reaktion darauf, dass das Befehlsmodul 304 die Befehle über die aufgelisteten Datenbusse 116 sendet, jeden Managementbus 118, welcher durch das Gerätemodul 302 aktiviert wurde, auf Daten (welche in Reaktion darauf, dass das Aktivitätsmodul 202 eine Aktivitätskennung auf einem Peripheriegerät 114 erfasst, gesendet werden konnten), die anzeigen, welches Peripheriegerät mit dem Managementbus 118 assoziiert ist, und dementsprechend, welcher Datenbus 116 mit dem Managementbus 118 assoziiert ist. Auf diese Weise kann ein Datenbus 116 dynamisch mit einem Managementbus 118 für ein spezielles Peripheriegerät 114 assoziiert werden.
  • Das Aktivitätsmodul 304 erfasst in einer Ausführungsform über eine Management-Bus-Verbindung 124 eines Managementbusses 118 einen Aktivitätsindikator für ein Peripheriegerät 114 in Reaktion darauf, dass der Befehl über einen Datenbus 116 zu dem Peripheriegerät 114 gesendet wurde. Der Aktivitätsindikator kann in einer Ausführungsform einen Indikator von dem Peripheriegerät einschließen, der anzeigt, dass das Peripheriegerät aktiv ist. Zum Beispiel kann der Aktivitätsindikator eine Licht emittierende Diode (“LED”) auf einem NVMe-Speichergerät sein, welche in Reaktion auf das Lesen oder Schreiben von Daten an das NVMe-Speichergerät blinkt oder seinen Zustand umschaltet. In einem anderen Beispiel kann der Aktivitätsindikator einen Sound (z.B. einen Beep-Ton), ein Signal, eine Reihe von Signalen und/oder dergleichen umfassen.
  • In einer Ausführungsform erfasst das Aktivitätsmodul 304 wenn eine LED auf dem Peripheriegerät 114 ihren Zustand in Reaktion auf das Empfangen eines Befehls über den Datenbus 116, der mit dem Peripheriegerät 114 gekoppelt ist, von einem “Aus” Zustand, der durch eine logische ‘0’ dargestellt werden kann, in einen “Ein” Zustand, der durch eine logische ‘1’ dargestellt werden kann, schaltet. Zum Beispiel kann der SEP 115 mit einem Anschlussstift oder einer Datenleitung des Peripheriegerätes 114 verbunden sein, die anzeigt, ob die LED ihren Zustand umschaltet. Das Peripheriegerät 114, der SEP 115 und/oder dergleichen können ein aktives Bit für das aktive Peripheriegerät in einen Datensatz einstellen, welches zum Beispiel durch das Aktivitätsmodul 304 und/oder das Überwachungsmodul 204 abgefragt werden kann, um zu bestimmen, ob das Peripheriegerät 114 in Reaktion auf den gesendeten Befehl aktiv war.
  • 4 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 400 zum Assoziieren von Datenbussen 116 und Management-Bus-Verbindungen 124 für Peripheriegeräte 114 darstellt. Das Verfahren 400 beginnt und sendet bei 402 über einen Datenbus 116 einen Befehl an ein Peripheriegerät 114. Das Peripheriegerät 114 ist kommunikativ mit einem Informationshandhabungsgerät 102 unter Verwenden eines Datenbusses 116 und einer separaten Management-Bus-Verbindung 124 gekoppelt.
  • Das Verfahren 400 prüft bei 404 eine oder mehrere Management-Bus-Verbindungen 124 eines Managementbusses 118, um zu bestimmen, welche Management-Bus-Verbindung 124 mit dem Peripheriegerät 114 verbunden ist, das in Reaktion auf den gesendeten Befehl aktiv war. Das Verfahren 400 assoziiert bei 406 die bestimmte Management-Bus-Verbindung 124 mit dem Datenbus 116, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät 114, und das Verfahren 400 endet. In einer Ausführungsform führen das Befehlsmodul 202, das Überwachungsmodul 204 und/oder das Assoziationsmodul 206 verschiedene Schritte des Verfahrens 400 aus.
  • 5 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 500 für ein Assoziieren von Datenbussen 116 und Management-Bus-Verbindungen 124 eines Managementbusses 118 für Peripheriegeräte 114 darstellt. Das Verfahren 500 beginnt und bestimmt in einer Ausführungsform bei 502 jedes Peripheriegerät 114, das kommunikativ mit dem Informationshandhabungsgerät 102 bei einem System-Startup gekoppelt ist, beispielsweise wenn das Informationshandhabungsgerät 102 gebootet wird. Zum Beispiel kann das Verfahren 500 jeden PCIe-Datenbus 116 scannen, um bei 502 zu bestimmen, welcher PCIe-Datenbus 116 ein mit ihm gekoppeltes Peripheriegerät 114 aufweist.
  • In einer weiteren Ausführungsform initialisiert das Verfahren 500 bei 504 jedes der bestimmten Peripheriegeräte 114. Zum Beispiel kann das Verfahren 500 unter Verwenden eines BIOS/UEFI 106 jedes Peripheriegerät 114, das mit dem Informationshandhabungsgerät 102 gekoppelt ist, aktivieren, einschalten, freigeben oder dergleichen. Das Verfahren 500 kann ferner jede Management-Bus-Verbindung 124 eines Managementbusses 118 für das Informationshandhabungsgerät 102 bei 506 freigeben. Mit jeder freigegebenen Management-Bus-Verbindung 124 und jedem Datenbus 116, der bestimmt wurde, dass er ein gekoppeltes Peripheriegerät 114 aufweist, kann das Verfahren 500 bestimmen, welche Management-Bus-Verbindungen 124 mit den besonderen Datenbussen 116 assoziiert sind.
  • Das Verfahren 500 sendet in einer Ausführungsform bei 508 einen Befehl zu jedem Peripheriegerät 114, um eine Aktivität auf jedem Peripheriegerät 114 zu triggern. Der Befehl kann zum Beispiel einen Leseanfragebefehl auf Daten, die auf einem peripheren NVMe-Speichergerät gespeichert sind, umfassen. In einigen Ausführungsformen wird die Datenleseanfrage, z.B. die Daten zum Erfüllen der Leseanfrage, abgelehnt oder in anderer Weise nicht bearbeitet oder übertragen.
  • Das Verfahren 500 erfasst bei 510 einen Aktivitätsindikator, der mit einem Peripheriegerät 114 in Reaktion auf den Befehl, der an das Peripheriegerät 114 über einen Datenbus 116 gesendet wurde, assoziiert wird. Der Aktivitätsindikator kann zum Beispiel ein LED-Aktivitätslicht sein, das zwischen Ein und Aus umschaltet, wenn Daten von/zu einem NVMe-Speichergerät gelesen oder geschrieben werden. Das Verfahren 500 erfasst bei 510, dass die LED ihren Zustand von einem Ein-Zustand zu einem Aus-Zustand ändert. In Reaktion auf die erfasste Aktivität kann das Verfahren 500 ein aktives Bit (nicht gezeigt) eines Datensatzes setzen, der mit dem Peripheriegerät assoziiert ist, und/oder proaktiv eine Mitteilung senden, z.B. eine Managementmitteilung auf der Management-Bus-Verbindung 124, die mit dem Peripheriegerät 114 gekoppelt ist, welche anzeigt, dass das Peripheriegerät aktiv war.
  • Das Verfahren 500 prüft bei 512 eine oder mehrere Management-Bus-Verbindungen 124 eines Managementbusses 18, um zu bestimmen, welche der einen oder mehreren Management-Bus-Verbindungen 124 mit dem Peripheriegerät 114, das den Befehl über den Datenbus 116 empfangen hat, gekoppelt ist. Das Verfahren 500 kann zum Beispiel Daten über eine Management-Bus-Verbindung 124, die mit dem Peripheriegerät 114 assoziiert ist, lesen, um zu bestimmen, ob ein aktives Bit für das Peripheriegerät in Reaktion auf den gesendeten Befehl gesetzt wurde. In einer Ausführungsform assoziiert das Verfahren 500 bei 516 die bestimmte Management-Bus-Verbindung 124 des Managementbusses 118 mit dem Datenbus 116, auf welchem der Befehl gesendet wurde, und speichert die Assoziation, Korrelation, die Beziehung oder dergleichen in einer Tabelle, Liste oder dergleichen für eine weitere Bezugnahme, und das Verfahren 500 endet. In einer Ausführungsform führen das Befehlsmodul 202, das Überwachungsmodul 204, das Assoziationsmodul 206, das Gerätemodul 302 und/oder das Aktivitätsmodul 304 verschiedene Schritte des Verfahrens 500 aus.
  • 6 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 600 zum Assoziieren von Datenbussen 116 und Management-Bus-Verbindungen 124 für Peripheriegeräte 114 darstellt. Das Verfahren 600 beginnt und sendet bei 602 einen Managementbefehl an ein Peripheriegerät 114 über eine Management-Bus-Verbindung 124 eines Managementbusses 118. Das Peripheriegerät 114 ist kommunikativ mit einem Informationshandhabungsgerät 102 unter Verwenden eines Datenbusses 116 und einer separaten Management-Bus-Verbindung 124 gekoppelt.
  • Das Verfahren 600 prüft bei 604 einen oder mehrere Datenbusse 116, um zu bestimmen, welcher Datenbus 116 mit dem Peripheriegerät 114 verbunden ist, das auf den Managementbefehl, der auf der Management-Bus-Verbindung 124 gesendet wurde, reagiert hat. Zum Beispiel kann das Verfahren 600 bei 602 einen Rücksetzbefehl oder einen anderen Managementbefehl an das Peripheriegerät 114 senden, das mit einer besonderen Management-Bus-Verbindung 124 verbunden ist. Das Rücksetzen oder ein anderer Managementbefehl veranlasst das Peripheriegerät 114 von einem oder mehreren der Datenbusse 116 aus gesehen dazu, anders als andere verbundene Peripheriegeräte 114 zu agieren. Das Verfahren 600 kann dann jedes Peripheriegerät 114 durch Senden eines Datenbusbefehls, wie eines Leseanfragebefehls, über jeden Datenbus 116, der mit einem Peripheriegerät 114 verbunden ist, prüfen, um zu bestimmen, welches Peripheriegerät 114 nicht auf den Managementbefehl reagiert oder in anderer Weise eine Reaktion, welche unterschiedlich zu den Reaktionen von anderen Peripheriegeräten 114 ist, die den Managementbefehl nicht empfangen, bereitstellt. Deshalb erkennt das Verfahren 600, welcher Datenbus 116 mit dem Peripheriegerät 114 verbunden ist, welches den Managementbefehl empfängt.
  • Das Verfahren 600 assoziiert bei 606 den bestimmten Datenbus 116, der mit dem Peripheriegerät 114, das den Managementbefehl empfangen hat, verbunden ist, mit der Management-Bus-Verbindung 124, auf welcher der Befehl gesendet wurde, und mit dem Peripheriegerät 114, und das Verfahren 600 endet. In einer Ausführungsform führen das Befehlsmodul 202, das Überwachungsmodul 204 und/oder das Assoziationsmodul 206 verschiedene Schritte des Verfahrens 600 aus.
  • Ausführungsformen können in anderen spezifischen Formen praktiziert werden. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als darstellend und nicht begrenzend zu betrachten. Der Umfang der Erfindung ist deshalb durch die anhängenden Ansprüche eher angezeigt als durch die vorhergehende Beschreibung. Alle Änderungen, welche in den Bereich der Bedeutung und den Bereich der Äquivalenz der Ansprüche kommen, sind innerhalb ihres Schutzumfangs eingeschlossen. Was beansprucht wird, ist:

Claims (20)

  1. Vorrichtung, umfassend: – ein Befehlsmodul, das einen Befehl an ein Peripheriegerät von einem oder mehreren Peripheriegeräten sendet, um eine Aktivität auf dem Peripheriegerät zu triggern, wobei jedes des einen oder der mehreren Peripheriegeräte kommunikativ mit einem Informationshandhabungsgerät über einen separaten Datenbus und durch eine Management-Bus-Verbindung von einem oder mehreren Managementbussen gekoppelt ist, wobei der Befehl über den Datenbus, der mit dem Peripheriegerät verbunden ist, gesendet wird; – ein Überwachungsmodul, das den einen oder die mehreren Managementbusse des Informationshandhabungsgerätes überprüft, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät, das in Reaktion auf den gesendeten Befehl aktiv war, verbunden ist; und – ein Assoziationsmodul, das die bestimmte Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät assoziiert.
  2. Vorrichtung nach Anspruch 1, wobei das Überwachungsmodul jedes des einen oder der mehreren Peripheriegeräte unter Verwenden einer Management-Bus-Verbindung zu jedem des einen oder der mehreren Managementbusse abfragt, bis das Überwachungsmodul bestimmt, welches Peripheriegerät des einen oder der mehreren Peripheriegeräte in Reaktion auf den gesendeten Befehl aktiv war.
  3. Vorrichtung nach Anspruch 2, wobei das Überwachungsmodul durch Lesen von Daten, die über eine Management-Bus-Verbindung zu einem Peripheriegerät verfügbar sind, bestimmt, ob ein Peripheriegerät des einen oder der mehreren Peripheriegeräte aktiv ist, wobei die Daten Informationen umfassen, die anzeigen, ob das Peripheriegerät in Reaktion auf den gesendeten Befehl aktiv war.
  4. Vorrichtung nach Anspruch 1, wobei jedes des einen oder der mehreren Peripheriegeräte mit einem oder mehreren adressierbaren Managementbussen verbunden ist und eine Management-Bus-Verbindung zu einem Peripheriegerät des einen oder der mehreren Peripheriegeräte eine adressierbare Management-Bus-Verbindung umfasst.
  5. Vorrichtung nach Anspruch 1, wobei jedes des einen oder der mehreren Peripheriegeräte mit einem separaten Managementbus verbunden ist, wobei jede Management-Bus-Verbindung eine Verbindung über einen einzelnen Managementbus zwischen dem Informationshandhabungsgerät und einem Peripheriegerät des einen oder der mehreren Peripheriegeräte umfasst.
  6. Vorrichtung nach Anspruch 1, wobei das Überwachungsmodul jede der einen oder mehreren Management-Bus-Verbindungen auf Daten überwacht, die von dem Peripheriegerät in Reaktion auf den Befehl gesendet werden, welche anzeigen, welche der einen oder mehreren Management-Bus-Verbindungen mit dem Peripheriegerät gekoppelt ist.
  7. Vorrichtung nach Anspruch 1, wobei das Assoziationsmodul eine Karte der Assoziationen zwischen den Management-Bus-Verbindungen, den Datenbussen und den Peripheriegeräten derart aufrechterhält, dass eine Management-Bus-Verbindung, die mit einem Peripheriegerät gekoppelt ist, mit einem Datenbus, der mit dem Peripheriegerät gekoppelt ist, korreliert wird.
  8. Vorrichtung nach Anspruch 1, ferner ein Gerätemodul umfassend, das beim System-Startup das eine oder die mehreren Peripheriegeräte bestimmt, die kommunikativ mit dem Informationshandhabungsgerät gekoppelt sind, durch Bestimmen, welcher einer Vielzahl von Datenbussen mit einem Peripheriegerät verbunden ist.
  9. Vorrichtung nach Anspruch 8, wobei das Befehlsmodul den Befehl an ein Peripheriegerät sendet, das Überwachungsmodul eine Management-Bus-Verbindung bestimmt und das Assoziationsmodul den Datenbus, den Peripheriebus und die Managementverbindung für jedes bestimmte Peripheriegerät assoziiert.
  10. Vorrichtung nach Anspruch 1, wobei das Befehlsmodul den Befehl wiederholt sendet, bis das Überwachungsmodul bestimmt, welche Management-Bus-Verbindung mit dem Peripheriegerät, das in Reaktion auf den gesendeten Befehl aktiv war, verbunden ist.
  11. Vorrichtung nach Anspruch 1, wobei der Befehl, der zu dem Peripheriegerät auf dem Datenbus gesendet wurde, einen Leseanfragebefehl nach Daten, die auf dem Peripheriegerät gespeichert sind, umfasst, wobei das Peripheriegerät ein Peripheriespeichergerät umfasst, wobei die Daten der Leseanfrage verworfen werden, ohne durch das Informationshandhabungsgerät bearbeitet zu werden.
  12. Vorrichtung nach Anspruch 1, ferner ein Aktivitätsmodul umfassend, welches, über eine Management-Bus-Verbindung des einen oder der mehreren Managementbusse, einen Aktivitätsindikator für das Peripheriegerät erfasst, und wobei der Aktivitätsindikator in Reaktion darauf getriggert wird, dass das Peripheriegerät den Befehl, der an das Peripheriegerät gesendet wurde, verarbeitet.
  13. Vorrichtung nach Anspruch 12, wobei der Aktivitätsindikator ein Erfassen einer Licht emittierenden Diode (“LED”), die ihren Zustand zwischen Ein und Aus umschaltet, umfasst.
  14. Vorrichtung nach Anspruch 1, wobei das Peripheriegerät ein nichtflüchtiges Speicherexpress (“NVMe”)-Speichergerät umfasst.
  15. Vorrichtung nach Anspruch 1, wobei der Datenbus einen Peripheral Component Interconnect Express(“PCIe”)-Kommunikationsbus umfasst.
  16. Verfahren, umfassend: – Senden eines Befehls an ein Peripheriegerät von einem oder mehreren Peripheriegeräten, um eine Aktivität auf dem Peripheriegerät zu triggern, wobei jedes des einen oder der mehreren Peripheriegeräte kommunikativ mit einem Informationshandhabungsgerät über einen separaten Datenbus und durch eine Management-Bus-Verbindung mit einem oder mehreren der Managementbusse gekoppelt ist, wobei der Befehl über den Datenbus, der mit dem Peripheriegerät verbunden ist, gesendet wird; – Prüfen des einen oder der mehreren Managementbusse des Informationshandhabungsgerätes, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät, das in Reaktion auf den gesendeten Befehl aktiv war, verbunden ist; und – Assoziieren der bestimmten Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät.
  17. Verfahren nach Anspruch 16, ferner ein Abfragen jedes des einen oder der mehreren Peripheriegeräte unter Verwenden einer Management-Bus-Verbindung zu jedem des einen oder der mehreren Managementbusse, bis bestimmt ist, welches Peripheriegerät des einen oder der mehreren Peripheriegeräte in Reaktion auf den gesendet Befehl aktiv war, umfassend.
  18. Verfahren nach Anspruch 17, wobei ein Bestimmen, ob ein Peripheriegerät des einen oder der mehreren Peripheriegeräte aktiv ist, ein Lesen von Daten umfasst, die durch eine Management-Bus-Verbindung zu einem Peripheriegerät verfügbar sind, wobei die Daten Informationen umfassen, die anzeigen, ob das Peripheriegerät in Reaktion auf den gesendeten Befehl aktiv war.
  19. Verfahren nach Anspruch 16, wobei jedes des einen oder der mehreren Peripheriegeräte mit einem oder mehreren adressierbaren Managementbussen verbunden ist und eine Management-Bus-Verbindung mit einem Peripheriegerät des einen oder der mehreren Peripheriegeräte eine adressierbare Management-Bus-Verbindung aufweist.
  20. Programmprodukt ein computerlesbares Speichermedium umfassend, das einen Code speichert, der durch einen Prozessor ausführbar ist, wobei der ausführbare Code umfasst zum Ausführen: – eines Sendens eines Befehls an ein Peripheriegerät von einem oder mehreren Peripheriegeräten, um eine Aktivität auf dem Peripheriegerät zu triggern, wobei jedes des einen oder der mehreren Peripheriegeräte kommunikativ mit einem Informationshandhabungsgerät über einen separaten Datenbus und durch eine Management-Bus-Verbindung von einem oder mehreren Managementbussen gekoppelt ist, wobei der Befehl über den Datenbus, der mit dem Peripheriegerät verbunden ist, gesendet wird; – eines Prüfens des einen oder der mehreren Managementbusse des Informationshandhabungsgerätes, um zu bestimmen, welche Management-Bus-Verbindung mit dem Peripheriegerät, das in Reaktion auf den gesendeten Befehl aktiv war, verbunden ist; und – Assoziieren der bestimmten Management-Bus-Verbindung mit dem Datenbus, auf dem der Befehl gesendet wurde, und mit dem Peripheriegerät.
DE102017120182.3A 2016-09-14 2017-09-01 Zuordnen von Datenbussen zu Management-Bus-Verbindungen für Peripheriegeräte Pending DE102017120182A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/265,655 2016-09-14
US15/265,655 US10210110B2 (en) 2016-09-14 2016-09-14 Associating data buses and management bus connections for peripheral devices

Publications (1)

Publication Number Publication Date
DE102017120182A1 true DE102017120182A1 (de) 2018-03-15

Family

ID=61247203

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017120182.3A Pending DE102017120182A1 (de) 2016-09-14 2017-09-01 Zuordnen von Datenbussen zu Management-Bus-Verbindungen für Peripheriegeräte

Country Status (3)

Country Link
US (1) US10210110B2 (de)
CN (1) CN107818061B (de)
DE (1) DE102017120182A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324888B2 (en) * 2016-09-22 2019-06-18 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Verifying a communication bus connection to a peripheral device
CN113227917A (zh) * 2019-12-05 2021-08-06 Mzta科技中心有限公司 模块化plc自动配置系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4683531A (en) * 1984-07-02 1987-07-28 Ncr Corporation Polling method for data processing system
DE69118466T2 (de) * 1990-08-31 1996-10-31 Advanced Micro Devices Inc Übertragungssystem zwischen einer Rechnervorrichtung und Peripheriegeräten
DE69330812T2 (de) * 1992-06-26 2002-04-11 Yokogawa Electric Corp Steuerungsgerät für Duplex-Kommunikation
US6202103B1 (en) * 1998-11-23 2001-03-13 3A International, Inc. Bus data analyzer including a modular bus interface
US6968406B2 (en) * 2003-02-20 2005-11-22 Dell Products L.P. System and method for arbitrating access between common access requests on a bus
US9003206B2 (en) * 2009-12-23 2015-04-07 Bae Systems Information And Electronic Systems Integration Inc. Managing communication and control of power components
US20140325096A1 (en) * 2013-04-30 2014-10-30 Intellectual Discovery Data management system for controlling a plurality of peripherals and method therefor
US9986409B2 (en) * 2014-08-28 2018-05-29 Screenovate Technologies Ltd. Method and system for discovering and connecting device for streaming connection with a computerized communication device
CN104516838B (zh) * 2014-11-25 2018-02-09 华为技术有限公司 管理路径确定方法及装置
CN105808407B (zh) * 2014-12-31 2019-09-13 华为技术有限公司 管理设备的方法、设备和设备管理控制器

Also Published As

Publication number Publication date
CN107818061A (zh) 2018-03-20
US20180074981A1 (en) 2018-03-15
US10210110B2 (en) 2019-02-19
CN107818061B (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
DE102012210914B4 (de) Switch-Fabric-Management
DE102015102678B4 (de) Systeme und verfahren zur abbild-recovery
DE102017121465A1 (de) Datenprotokoll zum verwalten von peripheriegeräten
DE102012210582B4 (de) Verringern der Auswirkung des Ausfalls einer Vermittlungsstelle in einem Schaltnetzwerk mittels Schaltkarten
US9026687B1 (en) Host based enumeration and configuration for computer expansion bus controllers
DE102004042170A1 (de) Nachrichtenbasierte Interrupttabelle
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE102017115933B4 (de) Koordinieren einer Eingabe an mehreren lokalen Geräten
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE102016206170B4 (de) Serielle draht-debug-brücke
DE112019002138T5 (de) Automatische usb-host-erkennung und port-konfiguration
DE102016211986A1 (de) Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst
DE102013202627B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit
DE102018209188A1 (de) Technologien zum Verwalten der Dienstgüte für Plattformverbindungen
CN110704365A (zh) 一种基于fpga的重构装置
DE202015009308U1 (de) Universelle Serienbus-Emulation von Peripheriegeräten
DE102017120182A1 (de) Zuordnen von Datenbussen zu Management-Bus-Verbindungen für Peripheriegeräte
DE112016001739T5 (de) Busschnittstellensystem
DE19960574B4 (de) Peripheral Component Interconnection-(PCI) Debuggingvorrichtung und -verfahren
DE112013005768T5 (de) Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images
DE112011100854B4 (de) Schnelle Datenfernübertragung und Fernberechnung zwischen Prozessoren
DE112007001561T5 (de) Verfahren und Anordnungen für Vorrichtungen zum Teilen einer gemeinsamen Adresse auf einem Bus
DE102019101114A1 (de) System, Vorrichtung und Verfahren zum Bereitstellen einer Fabric für einen Beschleuniger
DE102018211730A1 (de) Technologien für kopflose Serververwaltbarkeit und autonomes Logging

Legal Events

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

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE