DE102013209515A1 - Bereitstellen eines I2C-Busses über Ethernet - Google Patents
Bereitstellen eines I2C-Busses über Ethernet Download PDFInfo
- Publication number
- DE102013209515A1 DE102013209515A1 DE102013209515A DE102013209515A DE102013209515A1 DE 102013209515 A1 DE102013209515 A1 DE 102013209515A1 DE 102013209515 A DE102013209515 A DE 102013209515A DE 102013209515 A DE102013209515 A DE 102013209515A DE 102013209515 A1 DE102013209515 A1 DE 102013209515A1
- Authority
- DE
- Germany
- Prior art keywords
- local
- dfp
- dfp system
- bus units
- processor
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2424—Interrupt packet, e.g. event
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/162—Implementing security features at a particular protocol layer at the data link layer
Abstract
Description
- Hintergrund
- Die vorliegende Erfindung bezieht sich auf Ethernet-Switches und Vermittlung, und insbesondere bezieht sich diese Erfindung auf das Bereitstellen eines I2C-Busses über Ethernet.
- Ein beträchtlicher Teil von Netz-Switches hat verschiedene Einheiten, die einen I2C-Bus als Schnittstelle mit einem gegenüber dem Netz-Switch externen lokalen Host oder mit einem lokalen Prozessor des Netz-Switch, z.B. einer Zentraleinheit (CPU, Central Processing Unit) verwenden. Einheiten, die Daten über einen I2C-Bus austauschen, werden im gesamten Dokument als I2C-Bus-Einheiten bezeichnet. Diese I2C-Bus-Einheiten werden für gewöhnlich vom lokalen Prozessor über den I2C-Bus des Netz-Switch gesteuert. Einige typische I2C-Bus-Einheiten beinhalten Lüftersteuereinheiten, Netzteile, verschiedene Wärmemessanzeigen, einen seriellen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (SEEPROM, Serial Electrically Erasable Programmable Read Only Memory), Speicher verschiedener Subeinheiten usw., ohne jedoch auf diese beschränkt zu sein. Bei horizontal skalierten Cell-Based Distributed Fabric Protocol (cDFP)- und/oder Ethernet-Based Distributed Fabric Protocol (eDFP)-Systemen (die hier zusammenfassend als DFP-Systeme bezeichnet werden) gibt es mehrere einzelne Systemelemente, die vom Systemmaster in Echtzeit gesteuert werden müssen, um korrekt zu funktionieren. Bei herkömmlichen verteilten Systemen oder Clusters gibt es jedoch keine Möglichkeit, einen Echtzeit-I2C-Bus über Ethernet bereitzustellen.
- Kurzdarstellung
- Bei einer Ausführungsform enthält ein System einen lokalen Prozessor, einen Peripheral-Component-Interconnect-Express-(PCIe-) Switch, der elektrisch mit dem lokalen Prozessor verbunden ist, eine oder mehrere lokale I2C-Bus-Einheiten, einen zweckbestimmten Prozessor (dedicated processor), der elektrisch mit der einen oder den mehreren lokalen I2C-Bus-Einheiten und dem PCIe-Switch verbunden ist, und einen lokalen Netz-Switch, der elektrisch mit dem zweckbestimmten Prozessor und dem PCIe-Switch verbunden ist, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er Interrupts von der einen oder den mehreren lokalen I2C-Bus-Einheiten an den lokalen Prozessor leitet, und wobei der lokale Prozessor so ausgelegt ist, dass er den Interrupt von der einen oder den mehreren lokalen I2C-Bus-Einheiten bearbeitet.
- Bei einer weiteren Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beinhaltet: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung eines lokalen Prozessors über einen zweckbestimmten n Prozessor auf jede lokale I2C-Bus-Einheit zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem Distributed-Fabric-Protocol-(DFP-)Systemelement vorhanden sind, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement empfängt, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem fernen DFP-Systemmaster bereitzustellen sind, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Bestätigung der Anforderung zurück an den fernen DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets beinhaltet, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfängt und die Identität der Leseanforderung prüft, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Paket verkapselt, in dem die Leseanforderung empfangen wurde, und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-AccessControl-(MAC-) Adresse sendet, um es zumindest an den DFP-Systemmaster zu vermitteln.
- Bei einer noch weiteren Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beinhaltet: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Nachricht an ein oder mehrere DFP-Systemelemente sendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem DFP-Systemmaster enthält, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster empfängt, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren lokalen I2C-Bus-Einheiten verkapselt sind, die beim fernen DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das zumindest eine Paket unter Verwendung eines zweckbestimmten Prozessor des DFP-Systemmaster entschlüsselt, um Details zu der einen oder den mehreren lokalen I2C-Bus-Einheiten abzurufen, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er alle I2C-Bus-Einheiten vom jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster zuordnet, und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung des lokalen Prozessors des DFP-Systemmaster auf die registrierten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen zugreift.
- Bei einer weiteren Ausführungsform beinhaltet ein Verfahren Zugreifen auf jede lokale I2C-Bus-Einheit unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem DFP-Systemelement vorhanden sind, Empfangen einer Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem DFP-Systemmaster bereitzustellen sind, Senden einer Bestätigung der Anforderung zurück an den DFP-Systemmaster, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets enthält, Ermöglichen des Vernetzens der lokalen I2C-Bus-Einheiten, Empfangen einer Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten und Prüfen der Identität der Leseanforderung, Verkapseln von Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Paket, in dem die Leseanforderung empfangen wurde, und Senden des gleichen Pakets in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte MAC-Adresse, um es zumindest an den DFP-Systemmaster zu vermitteln.
- Gemäß einer noch weiteren Ausführungsform beinhaltet ein Verfahren Senden einer Nachricht an ein oder mehrere DFP-Systemelemente, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von I2C-Bus-Einheiten auf jedem DFP-Systemelement (entfernte I2C-Buseinheiten) bei einem DFP-Systemmaster enthält, Empfangen von einer oder mehreren Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren fernen I2C-Bus-Einheiten verkapselt sind, die beim DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: Entschlüsseln des zumindest einen Pakets unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster, um Details zu der einen oder den mehreren fernen I2C-Bus-Einheiten abzurufen, Zuordnen aller fernen I2C-Bus-Einheiten von jedem des einen oder der mehreren DFP-Systemelemente als lokale I2C-Bus-Einheiten unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster, Installieren von I2C-Treibern für alle zugeordneten I2C-Bus-Einheiten am lokalen Prozessor, Zugreifen auf die zugeordneten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen unter Verwendung des lokalen Prozessors des DFP-Systemmaster unter Verwendung von Software-Treiber-Anwendungsprogrammschnittstellen (APIs, Application Programming Interfaces), und Installieren einer Interrupt-Service-Routine (ISR, Interrupt Service Routine) für alle entfernt erzeugten Interrupts, die von den zugeordneten I2C-Bus-Einheiten produziert wurden, die an den DFP-Systemmaster gesendet werden, wobei die entfernt erzeugten Interrupts durch zweckbestimmte Prozessoren des einen oder der mehreren DFP-Systemelemente an den DFP-Systemmaster gesendet werden.
- Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor, die die Grundgedanken der Erfindung in Zusammenschau mit den Zeichnungen beispielhaft veranschaulicht.
- KURZBESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNGEN
-
1 zeigt eine Netzarchitektur gemäß einer Ausführungsform. -
2 zeigt eine repräsentative Hardware-Umgebung, die den Servern und/oder den Clients von1 zugehörig sein kann, gemäß einer Ausführungsform. -
3 ist ein vereinfachtes Schaubild eines virtualisierten Datenzentrums gemäß einer Ausführungsform. -
4 zeigt eine Cloud-Infrastruktur einer virtuellen Einheit gemäß einer Ausführungsform. -
5 ist ein vereinfachtes Systemblockschaubild gemäß einer Ausführungsform. -
6 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform. -
7 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform. - Ausführliche Beschreibung
- Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung und soll die hier beanspruchten Erfindungsgedanken nicht einschränken. Darüber hinaus können bestimmte hier beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Abänderungen verwendet werden.
- Wenn hier nicht anderweitig spezifisch definiert, sind alle Begriffe breitestmöglich auszulegen, so dass sie die in der Beschreibung implizierten Bedeutungen sowie die vom Fachmann verstandenen Bedeutungen und/oder die in Wörterbüchern, Abhandlungen usw. definierten Bedeutungen mit einschließen.
- Es muss ferner angemerkt werden, dass die Singularformen „ein/e/r/s“ und „der/die/das“, wie sie in der Beschreibung und den beiliegenden Ansprüchen verwendet werden, die Pluraläquivalente mit einschließen, außer wenn anderweitig angegeben.
- Bei einem Ansatz kann ein Systemmaster eines Distributed-Fabric-Protocol-(DFP-)Systems oder -Cluster bereitgestellt werden, der in der Lage ist, die I2C-Bus-Einheiten eines fernen Elements zu lesen, um die Funktionalität des DFP-Systems oder -Cluster sowie die Echtzeit-Beschaffenheit des DFP zu verbessern, wobei beides wiederum die Systemnutzbarkeit steigert. Bei einigen weiteren Ausführungsformen kann der Systemmaster in der Lage sein, die Steuerung einer oder mehrerer I2C-Bus-Einheiten des Elements auszuüben, um die Steuerung des gesamten DFP-System zu bündeln.
- Bei einer allgemeinen Ausführungsform enthält ein System einen lokalen Prozessor, einen Peripheral-Component-Interconnect-Express-(PCIe-) Switch, der elektrisch mit dem lokalen Prozessor verbunden ist, eine oder mehrere lokale I2C-Bus-Einheiten, einen zweckbestimmten Prozessor, der elektrisch mit der einen oder den mehreren lokalen I2C-Bus-Einheiten und dem PCIe-Switch verbunden ist, und einen lokalen Netz-Switch, der elektrisch mit dem zweckbestimmten Prozessor und dem PCIe-Switch verbunden ist, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er Interrupts von der einen oder den mehreren lokalen I2C-Bus-Einheiten an den lokalen Prozessor leitet, und wobei der lokale Prozessor so ausgelegt ist, dass er die Interrupts von der einen oder den mehreren lokalen I2C-Bus-Einheiten bearbeitet.
- Bei einer weiteren allgemeinen Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beinhaltet: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor auf jede lokale I2C-Bus-Einheit zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem Distributed-Fabric-Protocol-(DFP-)Systemelement vorhanden sind, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement empfängt, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem fernen DFP-Systemmaster bereitzustellen sind, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Bestätigung der Anforderung zurück an den fernen DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets beinhaltet, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfängt und die Leseanforderung auf Identität prüft, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Paket verkapselt, in dem die Leseanforderung empfangen wurde, und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control(MAC-)Adresse sendet, um es zumindest an den DFP-Systemmaster zu vermitteln.
- Bei einer noch weiteren allgemeinen Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beinhaltet: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Nachricht an ein oder mehrere DFP-Systemelemente sendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem DFP-Systemmaster enthält, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster empfängt, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren lokalen I2C-Bus-Einheiten verkapselt sind, die beim fernen DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das zumindest eine Paket unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster entschlüsselt, um Details zu der einen oder den mehreren lokalen I2C-Bus-Einheiten abzurufen, einen computerlesbaren Programmcode, der so konfiguriert ist, dass er alle I2C-Bus-Einheiten vom jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster zuordnet, und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung des lokalen Prozessors des DFP-Systemmaster auf die registrierten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen zugreift.
- Bei einer weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren das Zugreifen auf jede lokale I2C-Bus-Einheit unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem DFP-Systemelement vorhanden sind, Empfangen einer Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem DFP-Systemmaster bereitzustellen sind, Senden einer Bestätigung der Anforderung zurück an den DFP-Systemmaster, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets enthält, Ermöglichen des Vernetzens der lokalen I2C-Bus-Einheiten, Empfangen einer Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten und Prüfen der Identität der Leseanforderung, Verkapseln von Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Paket, in dem die Leseanforderung empfangen wurde, und Senden des gleichen Pakets in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte MAC-Adresse, um es zumindest an den DFP-Systemmaster zu vermitteln.
- Gemäß einer noch weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren Senden einer Nachricht an ein oder mehrere DFP-Systemelemente, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von I2C-Bus-Einheiten auf jedem DFP-Systemelement (ferne I2C-Buseinheiten) bei einem DFP-Systemmaster enthält, Empfangen von einer oder mehreren Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren fernen I2C-Bus-Einheiten verkapselt sind, die beim DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: Entschlüsseln des zumindest einen Pakets unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster, um Details zu der einen oder den mehreren fernen I2C-Bus-Einheiten abzurufen, Zuordnen aller fernen I2C-Bus-Einheiten von jedem des einen oder der mehreren DFP-Systemelemente als lokale I2C-Bus-Einheiten unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster, Installieren von I2C-Treibern für alle zugeordneten I2C-Bus-Einheiten am lokalen Prozessor, Zugreifen auf die zugeordneten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen unter Verwendung des lokalen Prozessors des DFP-Systemmaster unter Verwendung von Software-Treiber-Anwendungsprogrammschnittstellen (APIs), und Installieren einer Interrupt-Service-Routine (ISR) für alle entfernt erzeugten Interrupts, die von den zugeordneten I2C-Bus-Einheiten produziert wurden, die an den DFP-Systemmaster gesendet werden, wobei die entfernt erzeugten Interrupts durch zweckbestimmten Prozessoren des einen oder der mehreren DFP-Systemelemente an den DFP-Systemmaster gesendet werden.
- Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung in Form eines Systems, eines Verfahrens oder eines Computerprogrammprodukts umgesetzt sein. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer ausschließlich aus Hardware bestehenden Ausführungsform, einer ausschließlich aus Software bestehenden Ausführungsform (Firmware, residente Software, Mikrocode usw. mit eingeschlossen) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier allesamt allgemein als „Logik“, „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das als ein oder mehrere computerlesbare Medien umgesetzt ist, die einen computerlesbaren Programmcode aufweisen.
- Es kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein nichtflüchtiges computerlesbares Speichermedium sein. Ein nichtflüchtiges computerlesbares Speichermedium kann beispielsweise ein/e elektronische/s, magnetische/s, optische/s, elektromagnetische/s, Infrarot- oder Halbleitersystem, – vorrichtung oder -einheit oder eine geeignete Kombination des Vorstehenden sein, ohne jedoch auf diese beschränkt zu sein. Spezifischere Beispiele (nichterschöpfende Liste) für das nichtflüchtige computerlesbare Speichermedium sind unter anderem: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM, Random Access Memory), ein Nur-Lese-Speicher (ROM, Read Only Memory), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM (Erasable Programmable Read Only Memory) oder Flash-Speicher), ein tragbarer Compact Disk-Nur-Lese-Speicher (CD-ROM, Compact Disc-Read Only Memory), ein Blu-ray-Disk-Nur-Lese-Speicher (BD-ROM, Blu-ray Disc Read Only Memory), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination des Vorstehenden. Im Kontext dieses Dokuments kann ein nichtflüchtiges computerlesbares Speichermedium ein beliebiges konkretes Medium sein, das in der Lage ist, ein Programm oder eine Anwendung zur Verwendung durch ein/e Anweisungsausführungssystem, -vorrichtung oder -einheit oder in Verbindung damit zu enthalten oder zu speichern.
- Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal beinhalten, das einen computerlesbaren Programmcode aufweist, beispielsweise im Basisband oder als Teil einer Trägerwelle. Ein solches weitergeleitetes Signal kann eine Vielzahl von Formen annehmen, beispielsweise elektromagnetisch, optisch oder eine geeignete Kombination davon, ohne jedoch auf diese beschränkt zu sein. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein nichtflüchtiges computerlesbares Speichermedium handelt und das ein Programm zur Verwendung durch ein/e Anweisungsausführungssystem, -vorrichtung oder -einheit, z.B. eine elektrische Verbindung mit einem oder mehreren Leitungen, ein Lichtwellenleiter usw., oder in Verbindung damit übertragen, weiterleiten oder transportieren kann.
- Der in einem computerlesbaren Medium enthaltene Programmcode kann mithilfe eines geeigneten Mediums übertragen werden, beispielsweise drahtlos, drahtgebunden, Lichtwellenleiterkabel, HF usw. oder eine Kombination des Vorstehenden, ohne jedoch auf diese beschränkt zu sein.
- Ein Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in irgendeiner Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, beispielsweise objektorientierte Programmiersprachen wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie die „C“-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann zur Gänze auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder zur Gänze auf dem entfernt angeordneten Computer oder -Server ausgeführt werden. Bei letzterem Szenario kann der entfernt angeordnete Computer oder -Server über einen beliebigen Netztyp, beispielsweise ein lokales Netz (LAN, Local Area Network), ein Speicherbereichsnetz (SAN, Storage Area Network) und/oder ein Weitverkehrsnetz (WAN, Wide Area Network), mit dem Computer des Benutzers verbunden sein oder die Verbindung zu einem externen Computer kann hergestellt werden, z.B. über einen Internet-Diensteanbieter über Internet.
- Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf die Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu produzieren, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel für das Umsetzen der in dem einen oder den mehreren Ablaufplan- und/oder Blockschaubildblöcken angegebenen Funktionen/Aktionen zu erstellen.
- Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu arbeiten, so dass die im computerlesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt produzieren, das Anweisungen beinhaltet, die die in den einen oder mehreren Ablaufplan- und/oder Blockschaubildblöcken angegebene Funktion/Aktion umsetzen.
- Die Computerprogrammanweisungen können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu bewirken, dass eine Reihe von Betriebsschritten im Computer, auf der anderen programmierbaren Vorrichtung oder auf anderen Einheiten durchgeführt wird, um ein computerausgeführtes Verfahren zu produzieren, so dass die Anweisungen, die auf dem Computer oder auf der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zum Umsetzen der in dem einen oder den mehreren Ablaufplan- und/oder Blockschaubildblöcken angegebenen Funktionen/Aktionen bereitstellen.
-
1 zeigt eine Netzarchitektur100 gemäß einer Ausführungsform. Wie in1 gezeigt, ist eine Vielzahl von fernen Netzen102 bereitgestellt, darunter ein erstes fernes Netz104 und ein zweites fernes Netz106 . Ein Gateway101 kann zwischen den fernen Netzen102 und einem nahen Netz108 angeschlossen sein. Im Kontext der vorliegenden Netzarchitektur100 können die Netze104 ,106 jeweils eine beliebige Form annehmen, beispielsweise ein LAN, ein WAN wie das Internet, das öffentliche Telefonnetz (PSTN, Public Switched Telephone Network), ein internes Telefonnetz usw., ohne jedoch auf diese beschränkt zu sein. - In Gebrauch dient das Gateway
101 als Eintrittspunkt aus den fernen Netzen102 in das nahe Netz108 . Als solches kann das Gateway101 als Router agieren, der in der Lage ist, ein bestimmtes Datenpaket weiterzuleiten, das am Gateway101 empfangen wird, und als Switch, der den tatsächlichen Pfad in den Gateway101 und aus diesem heraus für ein bestimmtes Paket bereitstellt. - Ferner ist zumindest ein Datenserver
114 enthalten, der mit dem nahen Netz108 verbunden ist und auf den über das Gateway101 von den fernen Netzen102 zugegriffen werden kann. Es sei angemerkt, dass der bzw. die Datenserver114 einen beliebigen Typ einer Datenverarbeitungseinheit/Groupware beinhalten kann bzw. können. Eine Vielzahl von Benutzereinheiten116 ist mit jeden Datenserver114 verbunden. Zu solchen Benutzereinheiten116 können ein Desktop-Computer, ein Laptop-Computer, ein tragbarer Computer, ein Drucker und/oder ein anderer beliebiger Typ einer Einheit gehören, die eine Logik enthält. Es sei angemerkt, dass eine Benutzereinheit111 bei einigen Ausführungsformen auch direkt mit einem der Netze verbunden sein kann. - Eine Peripherieeinheit
120 oder eine Reihe von Peripherieeinheiten120 , z.B. Faxgeräte, Drucker, Scanner, Festplattenlaufwerke, vernetzte und/oder lokale Speichereinheiten oder -systeme usw., können mit einem oder mehreren der Netze104 ,106 ,108 verbunden sein. Es sei angemerkt, dass Datenbanken und/oder weitere Komponenten mit einem beliebigen Typ von Netzelement verwendet oder in dieses integriert werden können, das mit den Netzen104 ,106 ,108 verbunden ist. Im Kontext der vorliegenden Beschreibung kann sich ein Netzelement auf eine beliebige Komponente eines Netzes beziehen. - Gemäß einigen Ansätzen können hier beschriebene Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen umgesetzt sein, die ein oder mehrere andere Systeme emulieren, z.B. ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung beherbergt, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert usw. Diese Virtualisierung und/oder Emulation kann durch die Verwendung von VMWARE-Software bei einigen Ausführungsformen verbessert werden.
- Bei mehreren Ansätzen kann bzw. können ein oder mehrere Netze
104 ,106 ,108 einen System-Cluster darstellen, der für gewöhnlich als „Cloud“ bezeichnet wird. Beim Cloud-Computing werden gemeinsam genutzte Ressourcen wie Verarbeitungsleistung, Peripherieeinheiten, Software, Daten, Server usw. für ein beliebiges System in der Cloud in einem bedarfsgesteuerten Verhältnis bereitgestellt, wodurch ein Zugriff auf Services und eine Verteilung dieser unter vielen Computersystemen möglich wird. Das Cloud-Computing beinhaltet für gewöhnlich eine Internetverbindung zwischen den in der Cloud arbeitenden Systemen, aber es können auch andere Systemverbindungsmethoden herangezogen werden, wie auf dem Gebiet der Technik bekannt. -
2 zeigt eine repräsentative Hardware-Umgebung, der eine Benutzereinheit116 und/oder ein Server114 von1 zugehörig sein können, gemäß einer Ausführungsform.2 zeigt eine typische Hardware-Konfiguration einer Workstation mit einer Zentraleinheit210 , z.B. einem Mikroprozessor, und einer Vielzahl von anderen Einheiten, die über einen Systembus212 miteinander verbunden sind, gemäß einer Ausführungsform. - Die in
2 gezeigte Workstation beinhaltet einen Direktzugriffsspeicher (RAM, Random Access Memory)214 , einen Nur-Lese-Speicher (ROM, Read Only Memory)216 und einen E/A-Adapter218 zum Verbinden von Peripherieeinheiten wie Plattenspeichereinheiten220 mit dem Bus212 , einen Benutzeroberflächenadapter222 zum Verbinden einer Tastatur224 , einer Maus226 , eines Lautsprechers228 , eines Mikrofons232 und/oder anderer Benutzeroberflächeneinheiten wie einen Touchscreen, eine Digitalkamera (nicht gezeigt) usw. mit dem Bus212 , einen Kommunikationsadapter234 zum Verbinden der Workstation mit einem Kommunikationsnetz235 (z.B. ein Datenverarbeitungsnetz) und einen Bildschirmadapter236 zum Verbinden des Busses212 mit einer Anzeigeeinheit238 . - Die Workstation kann ein Betriebssystem wie das MICROSOFT WINDOWS-Betriebssystem (OS, Operating System), ein MAC-OS, ein UNIX-OS usw. aufweisen. Es ist klar, dass eine bevorzugte Ausführungsform auch auf Plattformen und Betriebssystemen umgesetzt sein kann, bei denen es sich nicht um die erwähnten handelt. Eine bevorzugte Ausführungsform kann unter Verwendung der Sprachen JAVA-, XML-, C- und/oder C++ oder anderer Programmiersprachen sowie mit einer objektorientierten Programmiermethodik geschrieben werden. Es kann das objektorientierte Programmieren (OOP) herangezogen werden, das bei der Entwicklung von komplexen Anwendungen zunehmend verwendet wird.
- Es wird nun auf
3 Bezug genommen, die eine konzeptionelle Sicht eines Overlay-Netzes300 gemäß einer Ausführungsform zeigt. Um Netzdienste zu virtualisieren, bei denen es sich nicht lediglich um das Bereitstellen eines Fabric-Pfads (Konnektivität) zwischen Einheiten handelt, kann ein Cell-Based Distributed-Fabric-Protocol-(cDFP-)System und/oder ein Ethernet-Based Distributed-Fabric-Protocol-(eDFP-)System virtualisiert werden. Das Overlay-Netz300 weist bei einem Ansatz eine oder mehrere virtuelle Netze304 ,306 innerhalb einer physischen (realen) Netzinfrastruktur302 auf. Die Netzinfrastruktur302 kann beliebige Komponenten, Hardware, Software und/oder Funktionen beinhalten, die für gewöhnlich mit einer Netzinfrastruktur in Zusammenhang stehen und/oder in dieser verwendet werden, beispielsweise Switches, Verbindungseinheiten, Leitungen, Schaltungen, Kabel, Server, Hosts, Speichermedien, Betriebssysteme, Anwendungen, Anschlüsse, E/A usw., ohne jedoch auf diese beschränkt zu sein. - Jedes virtuelle Netz
304 ,306 kann eine beliebige Anzahl von virtuellen Maschinen (VMs)308 ,310 beinhalten. Bei einer Ausführungsform enthält ein virtuelles Netz A304 eine oder mehrere VMs308 und ein virtuelles Netz B306 enthält eine oder mehrere VMs310 . Wie in3 gezeigt, werden die VMs308 ,310 nicht gemeinsam von den virtuellen Netzen304 ,306 genutzt, sondern sind zu einem bestimmten Zeitpunkt ausschließlich in lediglich einem virtuellen Netz304 ,306 enthalten, aber dies ist selbstverständlich weder erforderlich noch einschränkend gedacht. - Es wird nun auf
4 Bezug genommen, die einen Überblick über eine Komponenten-Konnektivität410 eines cDFP und/oder eines eDFP (DFP400 ) gemäß einer Ausführungsform zeigt. Der Systemmaster402 ist eine Hauptsteuereinheit des DFP400 . Bei einer Ausführungsform kann keine andere Steuereinheit in der Domäne des DFP400 verwendet werden. Bei alternativen Ausführungsformen können andere Steuereinheiten (nicht gezeigt) verwendet werden, um spezifische oder allgemeine Funktionen der Domäne zu steuern, z.B. Vermitteln, Testen usw. Datenverkehr (gesendete Daten/Anforderungen/Alarme oder dergleichen) von außerhalb der Domäne tritt über den Netzmanager412 in den DFP400 ein. - Die Standby-Einheit
404 ist im DFP400 bereitgestellt, so dass die Standby-Einheit404 im Fall eines Konnektivitäts-Verlusts mit dem Systemmaster402 oder eines Versagens des Systemmaster402 aus beliebigen Gründen so ausgelegt ist, dass sie zum Systemmaster wird und alle Funktionen eines Systemmaster bereitstellt. - Der Systemmaster
402 ist für das Ermitteln von Services verantwortlich, die für einen bestimmten Datenfluss (Versatz von Daten/Anforderungen/Alarmen oder dergleichen durch den DFP400 ) verwendet werden, und leitet ihn durch eine Reihe von Elementen406 um, je nach dem bestimmten beteiligten Datenfluss, wie der Fachmann verstehen wird. - Bei einer Ausführungsform stellt die Topologie des DFP
400 , bei der es sich um ein Cell Switched Clos handelt, eine hohe Verfügbarkeit von allen Links/Einheiten auf dem DFP400 bereit. Konnektivitäts-Details und Querschnittsbandbreite können umsetzungsspezifisch sein und auf einer anwendungsspezifischen Grundlage ermittelt werden, wie der Fachmann verstehen wird. - Von der Vernetzung her gesehen kann die gesamte Domäne des DFP
400 von außerhalb wie ein End-Host erscheinen, wobei einige Services auf Datenflüsse angewendet werden. Gemäß einer Ausführungsform ist eine Endlos-Schleifenbildung dank der Rückwandplatine der Topologie, bei der es sich um eine Zellenvermittlungsschnittstelle wie oben beschrieben handelt, nicht möglich, und diese nutzt die verfügbare Rückwandplatinen-Bandbreite auf effiziente Weise, indem sie Zellen über mehrere Links für ein einzelnes Ziel verbreitet. Einzelne Elemente406 können der Domäne des DFP400 hinzugefügt oder aus dieser entfernt werden, ohne andere Services, Einheiten usw. zu unterbrechen. - Gemäß einer Ausführungsform können bis zu
800 Elemente in der DFP400 miteinander gruppiert werden. Dies ermöglicht gemäß einem Beispiel ungefähr 32.768 Ethernet-Anschlüsse in einer einzelnen Domäne eines DFP400 . Bei einer weiteren Ausführungsform ist mit der hier beschriebenen Architektur gemäß verschiedenen Ausführungsformen eine konstante Latenzzeit von ungefähr 2,5 Mikrosekunden oder weniger sowie eine große Anzahl von Ethernet-Anschlüssen in einer Datenverkehr-Verwaltungsdomäne möglich. Gemäß einem Beispiel kann der DFP400 als einzelner Switch mit mehr als 32.000 Ethernet-Anschlüssen umgesetzt sein. - Demgemäß sind bei einigen Ausführungsformen zusätzlich dazu, dass die Vielzahl von Ethernet-Anschlüssen in den DFP
400 integriert wird, alle Anforderungen eines Datenzentrums in den DFP400 integriert. Aus diesem Grund erleichtert der DFP400 die Virtualisierung, wenn ein neues flaches Datenzentrum mit äußerst geringer Latenzzeit initiiert wird, da der Großteil der virtualisierten Datenzentren, insbesondere Server auf der Grundlage von Hypervisors, eine Vielzahl von VMs ausführt. Bei einer Architektur mit „flachem Switch“ kann die Vielzahl von VMs Daten auf einfache und effiziente Weise über die Architektur versetzen. Es ist für VMs im Allgemeinen sehr schwer, Daten über Layer-3-Domänen, zwischen einem Teilnetz zu einem anderen Teilnetz, Internetprotokoll-(IP-)Subnetz zu IP-Teilnetz usw. zu versetzen. Wenn jedoch die Architektur einem großen flachen Switch in einer sehr großen Layer-2-Domäne ähnelt, wird den VMs das Versetzen von Daten über die Architektur erleichtert. - Gemäß einer Ausführungsform wird ein zweckbestimmten Prozessor, bei dem es sich um ein vor Ort programmierbares Gate-Array (FPGA, Field Programmable Gate Array) handeln kann, auf jedem Element des DFP-Systems bereitgestellt. Der zweckbestimmten Prozessor kann so ausgelegt sein, dass er alle erforderlichen lokalen Interrupts (z.B. lokale Interrupts, die eine sofortige Bearbeitung erfordern können, die vom zweckbestimmten Prozessor ermittelt oder von einem Benutzer programmiert werden können) aus diversen Quellen lokaler Interrupts (z.B. auf dem Hardware-Board) sammelt und alle I2C-Bus-Einheiten miteinander verbindet, darunter ein lokaler Prozessor, z.B. eine Zentraleinheit (CPU) oder ein Host. Der zweckbestimmten Prozessor hat vollständige Einsicht in alle lokalen I2C-Bus-Einheiten. Der lokale Prozessor des Systemmaster ist so ausgelegt, dass er I2C-Lese/Schreib-Anforderungen über Ethernet an den zweckbestimmten Prozessor sendet. Diese Anforderungen können in Enhanced-Layer-2-Transport-(EL2T-)Protokollpakete verkapselt werden. Bei Empfang dieser I2C-Anforderungen am EL2T-Protokoll vom Systemmaster führt der zweckbestimmten Prozessor eine entsprechende Aktion durch und antwortet unter Verwendung des gleichen EL2T-Pakets zurück, das zurück an den Systemmaster gesendet wird. Eine ausführlichere Beschreibung dieses Systems und der Funktionen ist im Folgenden gemäß verschiedenen Ausführungsformen dargeboten.
- Es wird nun auf
5 Bezug genommen, in der ein Blockschaubild eines Systems500 gemäß einer Ausführungsform gezeigt ist. Gemäß verschiedenen Ausführungsformen kann es sich bei dem System500 um einen Systemmaster, ein DFP-Systemelement oder ein Standby handeln. Natürlich können andere Komponenten, Module, Logik, Schaltungen usw., die in5 nicht spezifisch gezeigt sind, gemäß diversen Ansätzen in das System500 aufgenommen sein, z.B. Lüfter, Lüftersteuereinheit, Hauptplatine, Verkabelung, Interconnects, Netzteil usw. - Ein Systemmaster steuert für gewöhnlich ein DFP-System, während DFP-Systemelemente Anweisungen vom Systemmaster empfangen und die Anweisungen/Anforderungen des Systemmaster erfüllen. Das Standby arbeitet wie ein Element, bis die Verbindung mit dem Systemmaster aus einem beliebigen Grund verloren geht, und in diesem Fall wird das Standby zum Systemmaster und agiert entsprechend.
- Das System
500 weist einen lokalen Prozessor502 , einen PCIe-Switch504 , eine oder mehrere lokale I2C-Bus-Einheiten506 , einen zweckbestimmten Prozessor508 und einen lokalen Netz-Switch510 gemäß einer Ausführungsform auf. Jede Komponente des Systems500 wird im Folgenden ausführlicher beschrieben. - Der lokale Prozessor
502 ist bei einigen Ansätzen elektrisch mit dem PCIe-Switch504 und dem zweckbestimmten Prozessor508 verbunden und kann eines oder mehrere des Folgenden aufweisen: eine Zentraleinheit (CPU), eine integrierte Schaltung (IC, Integrated Circuit), ein vor Ort programmierbares Gate-Array (FPGA), eine anwendungsspezifischen integrierte Schaltung (ASIC, Application Specific Integrated Circuit), einen Mikrocontroller oder einen anderen geeigneten Prozessor. Bei einer Ausführungsform kann der lokale Prozessor502 eine lokale CPU sein, die so ausgelegt ist, dass sie Operationen des Systems500 steuert, darunter das Bearbeiten von einem oder mehreren lokalen Interrupts, die von der einen oder den mehreren lokalen I2C-Bus-Einheiten506 produziert wurden, und dass sie Operationen der lokalen I2C-Bus-Einheiten506 steuert. - Bei einer weiteren Ausführungsform kann der lokale Prozessor
502 die Funktion des Steuerns der lokalen I2C-Bus-Einheiten506 aufweisen, die ausgesetzt und/oder entfernt wurden, so dass nur ein Systemmaster des DFP-Systems in der Lage ist, die lokalen I2C-Bus-Einheiten506 zu steuern. - Der PCIe-Switch
504 ist bei einem Ansatz elektrisch mit dem lokalen Prozessor502 , dem zweckbestimmten Prozessor508 und dem lokalen Netz-Switch510 verbunden. Die Komponenten können mithilfe von geeigneten Verbindungseinheiten miteinander verbunden werden, wie auf dem Gebiet der Technik bekannt. Die Verbindung mit dem zweckbestimmten Prozessor508 kann gemäß verschiedenen Ausführungsformen auf dem MSI-Protokoll, MESI-Protokoll, MOSI-Protokoll oder einem anderen geeigneten Übertragungsprotokoll beruhen. Der Datenaustausch zwischen dem zweckbestimmten Prozessor508 und dem lokalen Netz-Switch510 und/oder der Datenaustausch zwischen dem lokalen Prozessor502 und dem zweckbestimmten Prozessor508 kann über MSI-Nachrichten erfolgen. Natürlich kann der Datenaustausch zwischen beliebigen anderen Komponenten des Systems500 bei einigen Ansätzen ebenfalls über MSI erfolgen. - Der PCIe-Switch
504 kann eine beliebige geeignete Switch-Einheit und/oder einen beliebigen geeigneten Prozessor aufweisen, wie auf dem Gebiet der Technik bekannt. Darüber hinaus kann der PCIe-Switch504 bei einigen Ausführungsformen so ausgelegt sein, dass er Protokolle und Einheiten vermittelt, die über lediglich auf PCIe beruhende Protokolle und Einheiten hinausgehen, da jedes bekannte Übertragungsprotokoll durch den PCIe-Switch vermittelt werden kann. - Bei einem Ansatz kann der PCIe-Switch
504 mehrere PCIe-Busverbindungen aufweisen, die einen oder mehrere PCIe-Busse bedienen. - Die eine oder mehreren lokalen I2C-Bus-Einheiten
506 können ein/e beliebige/s Einheit, Modul, Komponente und/oder Logik beinhalten, die bzw. das über den I2C-Bus Daten austauschen kann. Darüber hinaus kann jede dieser lokalen I2C-Bus-Einheiten einen oder mehrere Interrupts produzieren oder erstellen, die eine Ausnahme des normalen Betriebs anzeigen. Einige Interrupts müssen sofort behandelt werden, einige Interrupts hingegen können verworfen werden und/oder dienen nur Informationszwecken. Die Interrupts, die sofort oder so bald wie möglich behandelt werden müssen, sollten vom lokalen Prozessor502 behandelt werden, um das System500 effektiv zu verwalten, gemäß herkömmlichen Systemen. - Gemäß hier beschriebenen Ausführungsformen, bei denen das System
500 ein DFP-Systemelement ist, können diese Interrupts jedoch an einen fernen DFP-Systemmaster gesendet werden, der so ausgelegt ist, dass er diese Interrupts bearbeitet und/oder die lokalen I2C-Bus-Einheiten506 von der fernen Position des DFP-Systemmaster steuert. - Zu einigen Beispielen für lokale I2C-Bus-Einheiten
506 zählen ein Lüfter oder eine Lüftersteuereinheit, ein Netzteil, eine Temperaturanzeige oder eine Logik, die die Temperaturanzeige interpretiert, usw. Der eine oder die mehreren Interrupts, die von den lokalen I2C-Bus-Einheiten506 bereitgestellt werden, können gemäß einer Ausführungsform zur Bearbeitung vom zweckbestimmten Prozessor508 an den lokalen Prozessor502 geleitet werden, wenn das System500 ein ferner DFP-Systemmaster oder ein DFP-Systemelement ist und aus irgendeinem Grund nicht mit einem fernen DFP-Systemmaster verbunden ist. Bei einer weiteren Ausführungsform können diese Interrupts, wenn das System500 ein DFP-Systemelement und mit dem fernen DFP-Systemmaster verbunden ist, zur Bearbeitung an den fernen Systemmaster gesendet werden. - Einige der lokalen I2C-Bus-Einheiten
506 können gemäß verschiedenen Ausführungsformen Interrupts mittels fester Codierung direkt dem lokalen Prozessor502 bereitstellen, einige können Interrupts über I2C-Protokoll bereitstellen usw. Jeder Interrupt, der bereitgestellt wird, kann gemäß einem Ansatz jedoch an den zweckbestimmten Prozessor508 geleitet werden, um an eine externe Einheit, z.B. einen fernen DFP-Systemmaster, geleitet zu werden. - Der zweckbestimmte Prozessor
508 kann elektrisch mit dem PCIe-Switch504 und mit dem lokalen Netz-Switch510 verbunden sein. Die Komponenten können mithilfe von geeigneten Verbindungseinheiten miteinander verbunden werden, wie auf dem Gebiet der Technik bekannt. Darüber hinaus können die lokalen I2C-Bus-Einheiten506 gemäß verschiedenen Ausführungsformen elektrisch mit dem zweckbestimmten Prozessor508 verbunden sein, so dass der zweckbestimmten Prozessor508 in der Lage ist, Interrupts von den lokalen I2C-Bus-Einheiten506 zu empfangen und/oder die lokalen I2C-Bus-Einheiten506 entweder direkt oder über Befehle von einem fernen DFP-Systemmaster, Befehle vom lokalen Prozessor502 usw. zu steuern. - Der zweckbestimmten Prozessor
508 , der in herkömmlichen Switches für gewöhnlich nicht bereitgestellt ist, ist so ausgelegt, dass er Interrupts von den lokalen I2C-Bus-Einheiten506 sammelt. Ferner ist er bei einem Ansatz so ausgelegt, dass er ein oder mehrere Interrupts an den lokalen Prozessor502 auf der Grundlage der von den lokalen I2C-Bus-Einheiten506 empfangenen Interrupts erzeugt und Multicast- oder Unicast-Pakete, z.B. EL2T-Pakete, erstellt, in denen Details zu den Interrupts verkapselt sind, die an eine externe Einheit, z.B. einen fernen DFP-Systemmaster, zu senden sind. Diese Pakete werden dann an den lokalen Netz-Switch510 gesendet, wo sie an den fernen DFP-Systemmaster vermittelt werden können. Der zweckbestimmte Prozessor508 kann einen beliebigen geeigneten, auf dem Gebiet der Technik bekannten Prozessor beinhalten, z.B. eine CPU, eine IC, eine ASIC, einen Mikrocontroller und/oder ein FPGA. - Gemäß einer Ausführungsform kann der zweckbestimmten Prozessor
508 , wenn das System500 ein DFP-Systemelement ist, so ausgelegt sein, dass er: auf jede lokale I2C-Bus-Einheit506 unter Verwendung des lokalen Prozessors502 zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten506 auf dem DFP-Systemelement vorhanden sind; eine Anforderung von einem fernen DFP-Systemmaster zum Registrieren der lokalen I2C-Bus-Einheiten506 empfängt, um Zugriff auf die lokalen I2C-Bus-Einheiten506 zu ermöglichen, die dem ferner DFP-Systemmaster bereitzustellen sind; eine Bestätigung der Anforderung zurück an den fernen DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten506 und deren bestimmter Offsets enthält, wie der Fachmann versteht; das Vernetzen der lokalen I2C-Bus-Einheiten506 ermöglicht; eine Leseanforderung vom fernen DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten506 empfängt und die Leseanforderung auf Identität prüft; Details zu der zumindest einen der lokalen I2C-Bus-Einheiten506 in ein gleiches Paket verkapselt, in dem die Leseanforderung empfangen wurde; und das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch510 verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-) Adresse sendet, um es zumindest an den fernen DFP-Systemmaster zu vermitteln. - Darüber hinaus kann der zweckbestimmte Prozessor
508 gemäß einer Ausführungsform so ausgelegt sein, dass er die lokalen Interrupts verpackt und die verpackten Interrupts an den lokalen Netz-Switch510 sendet. Ferner kann es sich bei dem zweckbestimmten Prozessor508 um ein FPGA und bei den Paketen um EL2T-Protokollpakete handeln. Selbstverständlich können andere Protokolle zum Verkapseln der Details zu den lokalen Interrupts verwendet werden, die von den lokalen I2C-Bus-Einheiten506 empfangen wurden. - Die Details zu den lokalen Interrupts können neben anderen Details, die hier nicht spezifisch erwähnt sind, die der Fachmann aber beim Lesen der vorliegenden Beschreibungen versteht, die Switch-ID des DFP-Systemelements, die Interrupt-Quelle (z.B. welche lokale I2C-Bus-Einheit
506 den Interrupt erstellt hat), den Interrupt-Typ, die Interrupt-Priorität beinhalten, ohne jedoch auf diese beschränkt zu sein. - Der lokale Netz-Switch
510 ist elektrisch mit dem PCIe-Switch504 und dem zweckbestimmten Prozessor508 verbunden. Die Komponenten können mithilfe von geeigneten Verbindungseinheiten miteinander verbunden werden, wie auf dem Gebiet der Technik bekannt. Der lokale Netz-Switch510 kann ein beliebiges Übertragungsprotokoll vermitteln, beispielsweise Ethernet, PCIe, PCIe-over-Ethernet, Fabric, Fibre Channel (FC), Fibre Channel-over-Ethernet (FCoE) usw., ohne jedoch auf diese beschränkt zu sein. Gemäß einem Ansatz kann die Verbindung zwischen dem zweckbestimmten Prozessor508 und dem lokalen Netz-Switch510 ein lokaler Netzanschluss sein (der ein unabhängiges VLAN darstellen würde). Natürlich kann je nach Typ des Netz-Switch bei einigen Ansätzen eine andere auf dem Gebiet bekannte Verbindung verwendet werden. - Bei einer Ausführungsform kann der lokale Netz-Switch
510 eine ASIC aufweisen, z.B. eine Paketvermittlungs-ASIC (z.B. ein BROADCOM Modell BCM88650) oder ein anderer geeigneter Paketvermittlungsprozessor, gemäß verschiedenen Ausführungsformen. - Der lokale Netz-Switch
510 ist so ausgelegt, dass er Daten, Informationen und/oder Pakete von internen Komponenten (z.B. dem zweckbestimmten Prozessor508 , dem PCIe-Switch504 usw.) empfängt, die an Einheiten außerhalb des Systems500 auszusenden sind. Darüber hinaus ist er so ausgelegt, dass er diese Pakete an die Einheiten außerhalb des Systems500 aussendet und Pakete von diesen Einheiten außerhalb des Systems500 empfängt. Der lokale Netz-Switch510 ist dann so ausgelegt, dass er diese empfangenen Pakete von außerhalb des Systems500 an die korrekten internen Komponenten sendet (z.B. den zweckbestimmten Prozessor508 , den PCIe-Switch504 usw.). - Der lokale Netz-Switch
510 kann gemäß einer Ausführungsform so ausgelegt sein, dass er interne Pakete vom zweckbestimmten Prozessor508 und/oder dem PCIe-Switch504 empfängt, die außerhalb des Systems500 zu senden sind, und dass er die internen Pakete an eine externe Einheit sendet und externe Pakete von der externen Einheit empfängt und die externen Pakete an den zweckbestimmten Prozessor508 und/oder den PCIe-Switch504 sendet. - Wenn ein Problem bei der Übertragung der lokalen Interrupts an den zweckbestimmten Prozessor
508 , den lokalen Netz-Switch510 oder an einem anderen Punkt im Netz auftritt, wie im Folgenden noch ausführlicher beschrieben, können die lokalen Interrupts an den lokalen Prozessor502 oder über den zweckbestimmten Prozessor508 über den PCIe-Switch504 bei anderen Ansätzen gesendet werden, so dass der lokale Prozessor502 die Interrupts interpretieren und die Interrupts bearbeiten kann. Bei einem Ansatz kann der lokale Prozessor die Interrupt-Details lesen, um zu ermitteln, wie er auf den Interrupt antworten soll, um zum Normalbetrieb zurückzukehren, und kann eine oder mehrere Aufgaben durchführen, um den Interrupt zu bearbeiten, z.B. Starten oder Beenden einer Komponente oder Operation, Ändern von Bedingungen, Warnen eines Benutzers über eine Situation usw. - Darüber hinaus kann der lokale Prozessor
502 bei einigen Ansätzen in der Lage sein, die lokalen I2C-Bus-Einheiten506 zu bearbeiten, zu steuern oder anderweitig zu verwalten, wenn ein Verbindungsverlust zu dem fernen DFP-Systemmaster auftritt. - Bei einer weiteren Ausführungsform kann der lokale Netz-Switch
510 , wenn das System500 ein Standby oder Element eines DFP-Systems ist, so ausgelegt sein, dass er Multicast- oder Unicast-Pakete, in denen Details zu dem einen oder den mehreren lokalen Interrupts verkapselt sind, an einen fernen DFP-Systemmaster sendet. Darüber hinaus kann der lokale Netz-Switch510 so ausgelegt sein, dass er Befehle, Anweisungen und/oder Anforderungen vom fernen DFP-Systemmaster empfängt und diese Nachrichten an einen entsprechenden Empfänger weiterleitet, z.B. an den zweckbestimmten Prozessor508 , den PCIe-Switch504 usw. - Gemäß einer weiteren Ausführungsform kann es sich bei dem lokalen Prozessor
502 , wenn das System500 ein ferner DFP-Systemmaster ist, um eine CPU handeln, die so ausgelegt ist, dass sie Operationen des Systems500 steuert, darunter das Bearbeiten der lokalen Interrupts von den lokalen I2C-Bus-Einheiten506 , und dass sie ferne Interrupts, Pakete, Nachrichten (die über den lokalen Netz-Switch510 erhalten werden) und/oder Details zu den fernen I2C-Bus-Einheiten auf den DFP-Systemelementen außerhalb des Systems500 analysiert und auf diese antwortet. - Ferner kann der zweckbestimmte Prozessor
508 bei einigen Ansätzen so ausgelegt sein, dass er einen oder mehrere Interrupts an den lokalen Prozessor502 auf der Grundlage des einen oder der mehreren lokalen Interrupts erzeugt, die von den lokalen I2C-Bus-Einheiten506 empfangen wurden (um sein eigenes System zu verwalten), dass er Multicast- oder Unicast-Pakete, in denen Details zu fernen Interrupts von fernen I2C-Bus-Einheiten (von DFP-Systemelementen) verkapselt sind, über den lokalen Netz-Switch510 empfängt, und dass er die Multicast- oder Unicast-Pakete entschlüsselt, um Details zu den externen Interrupts und fernen I2C-Bus-Einheiten zu ermitteln. Außerdem kann es sich bei dem lokalen Netz-Switch510 bei einigen Ansätzen um eine Paketvermittlungs-ASIC handeln und kann so ausgelegt sein, dass er die Multicast- oder Unicast-Pakete, in denen Details zu den externen Interrupts und fernen I2C-Bus-Einheiten verkapselt sind, von einem oder mehreren DFP-Systemelementen empfängt. - Bei einer weiteren Ausführungsform, bei der das System
500 ein DFP-Systemmaster ist, kann der zweckbestimmte Prozessor508 so ausgelegt sein, dass er Multicast- oder Unicast-EL2T-Protokollpakete, in denen Details zu externen Interrupts (von DFP-Systemelementen) und fernen I2C-Bus-Einheiten verkapselt sind, durch den lokalen Netz-Switch510 empfängt, kann der zweckbestimmte Prozessor508 so ausgelegt sein, dass er die Multicast- oder Unicast-EL2T-Pakete entschlüsselt, um Details zu den externen Interrupts und fernen I2C-Bus-Einheiten zu ermitteln, die in den Multicast- oder Unicast-EL2T-Paketen verkapselt sind, kann der zweckbestimmte Prozessor508 so ausgelegt sein, dass er eine auf einem MSI beruhende Nachricht, die Details zu den externen Interrupts und fernen I2C-Bus-Einheiten enthält, an den lokalen Prozessor502 sendet, kann der lokale Netz-Switch510 so ausgelegt sein, dass er die Multicast- oder Unicast-EL2T-Pakete, in denen Details zu den externen Interrupts und fernen I2C-Bus-Einheiten verkapselt sind, von einem oder mehreren DFP-Systemelemente empfängt, und kann der lokale Prozessor502 so ausgelegt sein, dass er die externen Interrupts liest und auf diese antwortet und/oder die fernen I2C-Bus-Einheiten von einem oder mehreren DFP-Systemelementen steuert. - Wie zuvor erwähnt, findet das Blockschaubild von
5 gleichermaßen auf Elementsysteme, Standby-Systeme und Systemmaster gemäß verschiedenen Ausführungsformen Anwendung. Es folgen Beschreibungen von Logik und Funktionen, die auf Elementen, Standbys und Systemmaster gemäß verschiedenen Ausführungsformen vorhanden sein können. - Es wird nun auf
6 Bezug genommen, in der ein Ablaufplan eines Verfahrens600 gemäß einer Ausführungsform gezeigt ist. Das Verfahren600 kann gemäß der vorliegenden Erfindung bei verschiedenen Ausführungsformen unter anderem in einer der in den1 bis5 gezeigten Umgebungen durchgeführt werden. Natürlich können mehr oder weniger Operationen als die in6 spezifisch beschriebenen im Verfahren600 enthalten sein, wie der Fachmann beim Lesen der vorliegenden Beschreibungen versteht. - Jeder der Schritte des Verfahrens
600 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Beispielsweise kann das Verfahren600 bei einer Ausführungsform bei einem Ansatz teilweise oder zur Gänze durch ein Element eines DFP-Systems durchgeführt werden, wie hierin ausführlicher beschrieben. - Im Folgenden beschriebene optionale Operationen sind gemäß verschiedenen Ausführungsformen jene Operationen, die ausgelassen oder einmal durchgeführt werden können, während andere Operationen mehrmals durchgeführt oder von anderen Entitäten oder Systemen durchgeführt werden können, und die die Grundlage für andere Operationen bilden.
- Wie in
6 gezeigt, kann das Verfahren600 mit einer optionalen Operation602 beginnen, wobei ein VLAN auf einem lokalen Netz-Switch bei einem Ansatz erstellt wird. Es kann ein beliebiges geeignetes VLAN erstellt werden, z.B. VLAN 4095, VLAN 4096 oder eine andere vorab festgelegte VLAN-ID. - Bei einer Ausführungsform kann es sich bei dem lokalen Netz-Switch um eine Paketvermittlungs-ASIC, z.B. ein BROADCOM BCM88650, oder einen anderen Paketvermittlungsprozessor handeln.
- Bei der optionalen Operation
604 wird ein lokaler Netzanschluss, der mit einem zweckbestimmten Prozessor (z.B. ein zweckbestimmter Prozessor des DFP-Systemelements) verbunden ist, zum VLAN hinzugefügt. - Bei einem Ansatz kann es sich bei dem zweckbestimmten Prozessor um ein FPGA handeln, der so ausgelegt ist, dass er zumindest die für den zweckbestimmten Prozessor im Verfahren
600 beschriebenen Funktionen durchgeführt. - Bei der optionalen Operation
606 wird der zweckbestimmte Prozessor (z.B. ein zweckbestimmter Prozessor des DFP-Systemelements) geladen und initialisiert. Natürlich können auch andere zugehörige Aktionen durchgeführt werden, wie der Fachmann beim Lesen der vorliegenden Beschreibungen versteht, gemeinsam mit dem Laden und Initialisieren. - Bei einer weiteren Ausführungsform können die optionalen Operationen
602 bis606 beim Systemstart eines DFP-Systemelements durchgeführt werden, das den lokalen Netz-Switch aufweist. - Bei Operation
608 wird von einem lokalen Prozessor über den zweckbestimmten Prozessor auf jede lokale I2C-Bus-Einheit zugegriffen, um festzustellen, welche lokalen I2C-Bus-Einheiten auf dem System vorhanden sind. Wenn dies bereits durchgeführt wurde und das System alle lokalen I2C-Bus-Einheiten kennt, kann die Operation608 ausgelassen werden. - Gemäß einer Ausführungsform kann es sich bei dem lokalen Prozessor um eine CPU handeln. Da alle lokalen I2C-Bus-Einheiten über den zweckbestimmten Prozessor geleitet werden, muss der lokale Prozessor über den zweckbestimmten Prozessor auf die lokalen I2C-Bus-Einheiten zugreifen.
- Bei der optionalen Operation
610 wird der lokale Prozessor zu einem Element eines DFP-Systems, indem er auf eine Anforderung von einem fernen DFP-Systemmaster antwortet, Teil des DFP-Systems zu werden. Natürlich kann die Operation610 ausgelassen werden, wenn das System bereits ein DFP-Systemelement ist. Bei den meisten Ansätzen werden der lokale Prozessor und alle Komponenten des Systems nach Antworten auf die Anforderung zu einem Element eines DFP-Systems. - Bei Operation
612 wird eine Anforderung zum Registrieren von lokalen I2C-Einheiten auf dem DFP-Systemelement von einem DFP-Systemmaster empfangen, um Zugriff auf die lokalen I2C-Einheiten zu ermöglichen, die dem DFP-Systemmaster bereitzustellen sind. Die Anforderung kann per Unicasting oder Multicasting erfolgen. - Bei Operation
614 wird eine Bestätigung der Anforderung gesendet, beispielsweise zurück an den DFP-Systemmaster. Die Bestätigung kann Informationen enthalten, z.B. Identifikationsinformationen, Positionsinformationen usw. Darüber hinaus kann die Bestätigung bei einem Ansatz vom zweckbestimmten Prozessor gesendet werden. - Bei einem Ansatz kann die Bestätigung eine Liste von lokalen I2C-Bus-Einheiten und deren bestimmter Offsets enthalten.
- Bei Operation
616 wird ermöglicht, dass eine oder mehrere lokale I2C-Bus-Einheiten vernetzt werden (über MSI mit dem lokalen Netz-Switch). Dies kann bei einem Ansatz durch den zweckbestimmten Prozessor des DFP-Systemelements oder durch eine andere beliebige geeignete Komponente, Einheit und/oder Logik durchgeführt werden. - Die Quell-MAC-Adresse jeder lokalen I2C-Bus-Einheit kann durch den zweckbestimmten Prozessor gepflegt werden.
- Bei Operation
618 wird eine Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfangen. Darüber hinaus wird die Leseanforderung nach Empfang bei einem Ansatz auf Identität geprüft. - Bei Operation
620 werden Details zu der zumindest einen der lokalen I2C-Bus-Einheiten für jede auf Identität geprüfte Leseanforderung in ein gleiches Paket verkapselt, in dem die Leseanforderung empfangen wurde. Das Paket, z.B. ein EL2T-Paket oder ein anderer geeigneter Übertragungspakettyp, kann bei einer Ausführungsform aus der Leseanforderung wiederverwendet werden, und die Details zu den lokalen I2C-Bus-Einheiten werden in Nutzdaten des Pakets gespeichert. Darüber hinaus ist in den Nutzdaten eine Switch-ID des DFP-Systemelements im DFP-System enthalten. Die Switch-ID des DFP-Systemelements kann im DFP-Systemelement vorprogrammiert sein, wobei dies durch den DFP-Systemmaster entschieden und bereitgestellt wird, usw. - Bei einigen Ansätzen beinhalten Details, die in dem Paket gespeichert werden können, neben anderen Details, die nicht spezifisch erwähnt sind, aber vom Fachmann beim Lesen der vorliegenden Beschreibungen verstanden werden, die Switch-ID des DFP-Systemelements, die Quelle der lokalen I2C-Bus-Einheit, den Interrupt-Typ und/oder die Interrupt-Priorität, ohne jedoch auf diese beschränkt zu sein.
- Bei Operation
622 wird das gleiche Paket, z.B. das gleiche in der Anforderung verwendete EL2T-Paket, über den Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-)Adresse gesendet, um es zumindest an den DFP-Systemmaster zu vermitteln. Dieses Senden kann bei einem Ansatz durch den zweckbestimmten Prozessor oder eine andere geeignete Einheit, Logik usw. durchgeführt werden. Dieses EL2T-Paket kann bei einem Ansatz über MSI oder ein anderes geeignetes Übertragungsprotokoll gesendet werden. - Bei der optionalen Operation
624 kann das zumindest eine Paket, z.B. das gleiche EL2T-Paket, das in der auf Identität geprüften Leseanforderung erhalten wurde, beispielsweise über den lokalen Netz-Switch gemäß einer Layer-2-Unicast-Weiterleitungsdatenbank an seinen Zielort (z.B. den fernen DFP-Systemmaster) vermittelt werden. Natürlich können andere Vermittlungsaktionen durchgeführt werden, z.B. Multicast-Vermittlung und Vermittlung an verschiedene Ziele, z.B.in Reaktion auf mehrere auf Identität geprüfte Leseanforderungen. - Bei einem Ansatz kann ein Message Signaled Interrupt (MSI) über einen mit dem lokalen PCIe-Switch verbundenen PCIe-Bus gleichzeitig an den lokalen Prozessor gesendet werden, wenn dies für die Verarbeitung des Interrupt als notwendig erachtet wird.
- Bei einer Ausführungsform kann das zumindest eine Paket unter Verwendung des lokalen Netz-Switch an zumindest den DFP-Systemmaster vermittelt werden.
- Gemäß verschiedenen Ausführungsformen kann das Verfahren
600 unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemelements durchgeführt werden, kann der zweckbestimmten Prozessor ein FPGA sein und/oder kann das zumindest eine Paket ein EL2T-Protokollpaket sein. - Bei einer weiteren Ausführungsform kann das zumindest eine Paket eine Switch-ID des DFP-Systemelements und eine Interrupt-Quelle (die lokale I2C-Bus-Einheit), einen Interrupt-Typ und/oder eine Interrupt-Priorität für jede der einen oder mehreren lokalen I2C-Bus-Einheiten enthalten. Natürlich kann es weitere Details/Informationen außer den hier spezifisch beschriebenen beinhalten, wie der Fachmann beim Lesen der vorliegenden Beschreibungen versteht.
- Die I2C-Einheit-Informationen können gemäß einer Ausführungsform gleichzeitig an mehrere MAC-Adressen gesendet werden. Bei einer alternativen Ausführungsform können die Informationen an eine eindeutige Multicast-MAC-Adresse gesendet werden, wenn Multicasting bevorzugt wird.
- Gemäß verschiedenen Ausführungsformen kann das Verfahren
600 durch ein System, einen Computer oder eine andere Einheit durchgeführt werden, das/der/die in der Lage ist, Befehle, Logiken usw. auszuführen. - Bei einer solchen Ausführungsform weist ein Computerprogrammprodukt zum Bearbeiten von lokalen Interrupts ein computerlesbares Speichermedium auf, das einen computerlesbaren Programmcode beinhaltet. Der computerlesbare Programmcode weist auf: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er auf jede lokale I2C-Bus-Einheit unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem DFP-Systemelement vorhanden sind; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung von einem DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement empfängt, um Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem DFP-Systemmaster bereitzustellen sind; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Bestätigung der Anforderung zurück an den DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets enthält; dass er ein Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfängt und die Leseanforderung auf Identität prüft; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in einem gleichen Paket verkapselt, in dem die Leseanforderung empfangen wurde; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte MAC-Adresse sendet, um es zumindest an den DFP-Systemmaster zu vermitteln.
- Bei einer weiteren Ausführungsform kann das Computerprogrammprodukt ferner aufweisen: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er den lokalen Prozessor veranlasst, zu einem Element eines DFP-Systems zu werden, indem er auf eine Anforderung vom DFP-Systemmaster antwortet, Teil des DFP-Systems zu werden; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er ein VLAN auf dem lokalen Netz-Switch erstellt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen mit dem zweckbestimmten Prozessor verbundenen lokalen Netzanschluss zum VLAN hinzufügt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen zweckbestimmten Prozessor des DFP-Systemelements beim Hochfahren des DFP-Systemelements lädt und initialisiert; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung an dem lokalen Netz-Switch des DFP-Systemelements, ein Teil des DFP-Systems zu werden, empfängt.
- Es wird nun auf
7 Bezug genommen, in der ein Ablaufplan eines Verfahrens700 gemäß einer Ausführungsform gezeigt ist. Das Verfahren700 kann gemäß der vorliegenden Erfindung bei verschiedenen Ausführungsformen unter anderem in einer der in den1 bis5 gezeigten Umgebungen durchgeführt werden. Natürlich können mehr oder weniger Operationen als die in7 spezifisch beschriebenen im Verfahren700 enthalten sein, wie der Fachmann beim Lesen der vorliegenden Beschreibungen versteht. - Jeder der Schritte des Verfahrens
700 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Beispielsweise kann das Verfahren700 bei einer Ausführungsform bei einem Ansatz teilweise oder zur Gänze durch einen DFP-Systemmaster durchgeführt werden, wie hierin ausführlich beschrieben. - Im Folgenden beschriebene optionale Operationen sind gemäß verschiedenen Ausführungsformen jene Operationen, die ausgelassen oder einmal durchgeführt werden können, während andere Operationen mehrmals durchgeführt oder von anderen Entitäten oder Systemen durchgeführt werden können, und die die Grundlage für andere Operationen bilden.
- Wie in
7 gezeigt, kann das Verfahren700 mit einer optionalen Operation702 beginnen, wobei ein VLAN bei einem Ansatz auf einem lokalen Netz-Switch (z.B. des DFP-Systemmaster) erstellt wird. Es kann ein beliebiges geeignetes VLAN erstellt werden, z.B. VLAN 4095, VLAN 4096 oder eine andere vorab festgelegte VLAN-ID. - Bei einer Ausführungsform kann es sich bei dem lokalen Netz-Switch um eine Paketvermittlungs-ASIC handeln. Bei einer weiteren Ausführungsform kann die optionale Operation
702 beim Systemstart eines DFP-Systemmaster durchgeführt werden, der den lokalen Netz-Switch aufweist. - Bei der optionalen Operation
704 wird ein lokaler Netzanschluss, der mit einem zweckbestimmten Prozessor (z.B. des DFP-Systemmaster) verbunden ist, zum VLAN hinzugefügt. Diese Funktion kann unter Verwendung des lokalen Netz-Switch oder einer anderen geeigneten Einheit erzielt werden. - Bei einem Ansatz kann es sich bei dem zweckbestimmten Prozessor um einen FPGA handeln, der so ausgelegt ist, dass er zumindest die für den zweckbestimmten Prozessor im Verfahren
700 beschriebenen Funktionen durchgeführt. - Bei der optionalen Operation
706 wird der zweckbestimmte Prozessor geladen und initialisiert, gemeinsam mit anderen beliebigen zugehörigen Aktionen, wie der Fachmann beim Lesen der vorliegenden Beschreibungen versteht. - Diese Operationen
702 bis706 können bei einigen Ansätzen beim Hochfahren des DFP-Systemmaster durchgeführt werden. - Bei Operation
708 wird eine Nachricht an ein oder mehrere DFP-Systemelemente gesendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem lokalen Systemmaster enthält. Bei einigen Ansätzen kann die Nachricht durch einen lokalen Prozessor oder einen zweckbestimmten Prozessor des DFP-Systemmaster initiiert werden. Der lokale Prozessor und/oder der zweckbestimmte Prozessor kann eines oder mehrere des Folgenden aufweisen: eine CPU, eine IC, einen FPGA, eine ASIC usw. - Bei einer weiteren Ausführungsform kann jedes DFP-Systemelement ermitteln, ob es auf die Nachricht antwortet und/oder an welche lokalen I2C-Bus-Einheiten Details zurück an den DFP-Systemmaster zu senden sind.
- Bei einer weiteren Ausführungsform kann es sich bei der Anforderung um ein Multicast-EL2T-Paket handeln, das eine Anforderung für diverse lokale I2C-Bus-Einheiten (die gegenüber dem DFP-Systemmaster fern sind) enthält.
- Bei Operation
710 empfängt der lokale Prozessor eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen (z.B. über einen lokalen Netz-Switch des DFP-Systemmaster), wobei jede Bestätigung zumindest ein Paket aufweist, in dem Details zu einer oder mehreren fernen I2C-Bus-Einheiten verkapselt sind, die beim DFP-Systemmaster zu registrieren sind. - Bei einer Ausführungsform kann jede Bestätigung ein Paket, z.B. ein EL2T-Paket, enthalten, das Details zu einem oder mehreren fernen I2C-Bus-Einheiten für das DFP-Systemelement beinhaltet, das die Bestätigung gesendet hat.
- Bei der optionalen Operation
712 kann während einer vorab festgelegten Zeitdauer, einer gewissen Zeitdauer nach Empfang einer letzten Bestätigung usw. auf die eine oder mehreren Bestätigungen gewartet werden. Nachdem die Zeitdauer abgelaufen ist, kann angenommen werden, dass alle Bestätigungen empfangen wurden. - Gemäß einer Ausführungsform kann bzw. können die eine oder mehreren Bestätigungen von DFP-Systemelementen des DFP-Systems gesendet werden, für das der DFP-Systemmaster ein Master ist.
- Bei Operation
714 wird bei Empfang eines Pakets (z.B. bei Empfang des zumindest einen Pakets) das zumindest eine Paket entschlüsselt, um Details zu dem einen oder den mehreren fernen I2C-Bus-Einheiten abzurufen. Bei einem Ansatz kann der zweckbestimmte Prozessor (z.B. des DFP-Systemmaster) das Entschlüsseln durchführen. - Gemäß einigen Ansätzen beinhalten die Details, die im Paket enthalten sein können, neben anderen Details, die nicht spezifisch erwähnt sind, die der Fachmann aber beim Lesen der vorliegenden Beschreibungen versteht, die Switch-ID des DFP-Systemelements, einen bestimmten Offset für jede ferne I2C-Bus-Einheit, ohne jedoch auf diese beschränkt zu sein.
- Bei Operation
716 werden alle fernen I2C-Bus-Einheiten von jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der Details zugeordnet, die in dem zumindest einen Paket enthalten sind, unter Verwendung eines lokalen Prozessors des DFP-Systemmaster als lokale I2C-Bus-Einheiten zugeordnet. - Bei Operation
718 werden I2C-Treiber für alle zugeordneten I2C-Bus-Einheiten auf dem lokalen Prozessor installiert. - Bei Operation
720 wird auf dem einen oder den mehreren DFP-Systemelementen unter Verwendung des lokalen Prozessors des DFP-Systemmaster unter Verwendung von Software-Treiber-Anwendungsprogrammschnittstellen (APIs) auf die zugeordneten I2C-Bus-Einheiten zugegriffen. Dies kann durchgeführt werden, um Interrupts zu identifizieren, die durch die zugeordneten fernen I2C-Bus-Einheiten produziert wurden, und/oder um Operationen der zugeordneten fernen I2C-Bus-Einheiten zu steuern. Dadurch wird ein Teil der Verarbeitungslast von jedem der DFP-Systemelemente genommen und diesen ermöglicht, andere Vermittlungsfunktionen, für die sie vorgesehen sind, effektiver durchzuführen. - Bei Operation
722 wird eine Interrupt-Service-Routine (ISR) für alle fern erzeugten Interrupts installiert, die durch die zugeordneten I2C-Bus-Einheiten produziert wurden, die an den DFP-Systemmaster gesendet werden. Die fern erzeugten Interrupts werden bei einem Ansatz vom zweckbestimmten Prozessor des einen oder der mehreren DFP-Systemelemente an den DFP-Systemmaster gesendet. - Bei der optionalen Operation
724 wird der lokale Prozessor des DFP-Systemmaster veranlasst, der DFP-Systemmaster zu werden, nachdem ein Auswahlverfahren an allen Mitgliedern des DFP-Systems durchgeführt wurde. Das Auswahlverfahren kann ermitteln, welches einer Vielzahl von Systemen als der Systemmaster agieren wird und welche als Standby, wobei das restliche System als Elemente des Systems bei einem Ansatz relegiert wird. - Bei einer Ausführungsform kann bzw. können das eine oder die mehreren DFP-Systemelemente EL2T-Pakete, in denen Interrupt-Details verkapselt sind, an den zweckbestimmten Prozessor des DFP-Systemmaster senden und gleichzeitig PCIe-MSI an einen lokalen Prozessor des einen oder der mehreren DFP-Systemelemente senden. Darüber hinaus kann der zweckbestimmte Prozessor des DFP-Systemmaster bei Empfang des EL2T-Pakets mit verkapseltem Interrupt einen PCIe-MSI an den lokalen Prozessor des DFP-Systemmaster erzeugen, und der lokale Prozessor des DFP-Systemmaster kann eine ISR aufrufen, um den MSI zu bedienen.
- Gemäß verschiedenen Ausführungsformen kann das Verfahren
700 durch ein System, einen Computer oder eine andere Einheit durchgeführt werden, das/der/die in der Lage ist, Befehle, Logiken usw. auszuführen. - Bei einer solchen Ausführungsform weist ein Computerprogrammprodukt ein computerlesbares Speichermedium auf, das einen computerlesbaren Programmcode beinhaltet. Der computerlesbare Programmcode weist auf: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Nachricht an ein oder mehrere DFP-Systemelemente sendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem DFP-Systemmaster enthält; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster empfängt, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren lokalen I2C-Bus-Einheiten verkapselt sind, die beim DFP-Systemmaster zu registrieren sind; und bei Empfang des zumindest einen Pakets: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das zumindest eine Paket unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster entschlüsselt, um Details zu der einen oder den mehreren lokalen I2C-Bus-Einheiten abzurufen; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er alle I2C-Bus-Einheiten vom jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster zuordnet; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung des lokalen Prozessors des DFP-Systemmaster auf die registrierten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen zugreift.
- Bei einer weiteren Ausführungsform kann das Computerprogrammprodukt ferner aufweisen: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er ein VLAN am lokalen Netz-Switch erstellt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen lokalen Netzanschluss, der mit dem zweckbestimmten Prozessor verbunden ist, zum VLAN hinzufügt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen zweckbestimmten Prozessor des DFP-Systemmaster beim Hochfahren des DFP-Systemmaster lädt und initialisiert; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er während einer vorab festgelegten Zeitdauer auf die eine oder mehreren Bestätigungen wartet; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen lokalen Prozessor des DFP-Systemmaster veranlasst, der DFP-Systemmaster zu werden, nachdem ein Auswahlverfahren an allen Elementen des DFP-Systems durchgeführt wurde.
- Obwohl oben verschiedene Ausführungsformen beschrieben wurden, sollte klar sein, dass sie lediglich beispielhaft und nicht einschränkend dargeboten wurden. Somit sollten die Breite und der Umfang einer Ausführungsform der vorliegenden Erfindung durch keine der oben beschriebenen beispielhaften Ausführungsformen beschränkt sein, sondern sollten nur gemäß den folgenden Ansprüchen und deren Äquivalente definiert sein.
Claims (15)
- System, das aufweist: einen lokalen Prozessor; einen Peripheral-Component-Interconnect-Express-(PCIe-)Switch, der elektrisch mit dem lokalen Prozessor verbunden ist; eine oder mehrere lokale I2C-Bus-Einheiten; einen zweckbestimmten Prozessor, der elektrisch mit der einen oder den mehreren lokalen I2C-Bus-Einheiten und dem PCIe-Switch verbunden ist; und einen lokalen Netz-Switch, der elektrisch mit dem zweckbestimmten Prozessor und dem PCIe-Switch verbunden ist, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er Interrupts von der einen oder den mehreren lokalen I2C-Bus-Einheiten an den lokalen Prozessor leitet, und wobei der lokale Prozessor so ausgelegt ist, dass er die Interrupts von der einen oder den mehreren lokalen I2C-Bus-Einheiten bearbeitet.
- System nach Anspruch 1, wobei das System entweder ein Element eines Distributed-Fabric-Protocol-(DFP-)Systems, eines DFP-Systemmaster oder eines DFP-Standby ist.
- System nach Anspruch 1, wobei es sich bei dem lokalen Prozessor um eine Zentraleinheit (CPU) handelt, die so ausgelegt ist, dass sie Operationen des Systems steuert, darunter das Bearbeiten von Interrupts, die von der einen oder den mehreren lokalen I2C-Bus-Einheiten produziert wurden.
- System nach Anspruch 1, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er auf jede lokale I2C-Bus-Einheit unter Verwendung des lokalen Prozessors zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten vorhanden sind, dass er eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf einem DFP-Systemelement empfängt, um Zugriff auf die lokalen I2C-Einheiten zu ermöglichen, die dem fernen DFP-Systemmaster bereitzustellen sind, dass er eine Bestätigung der Anforderung zurück an den DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets aufweist, dass er das Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht, dass er eine Leseanforderung vom fernen DFP-Systemmaster empfängt, um zumindest eine der lokalen I2C-Bus-Einheiten zu lesen, und die Leseanforderung auf Identität prüft, und dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Paket verkapselt, in dem die Leseanforderung empfangen wurde, und dass er das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-)Adresse sendet, um es zumindest an den fernen DFP-Systemmaster zu vermitteln.
- System nach Anspruch 4, wobei es sich bei dem zweckbestimmten Prozessor um ein vor Ort programmierbares Gate-Array (FPGA) und bei dem Paket um ein Enhanced-Layer-2-Transport-(EL2T-)Protokollpaket handelt.
- System nach Anspruch 4, wobei der lokale Netz-Switch so ausgelegt ist, dass er das gleiche Paket, in dem die Details zu der zumindest einen der lokalen I2C-Bus-Einheiten verkapselt sind, an den fernen DFP-Systemmaster sendet.
- System nach Anspruch 1, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er ein oder mehrere ferne Pakete empfängt, in denen Details zu einem oder mehreren fernen Interrupts verkapselt sind, die von einer oder mehreren fernen I2C-Bus-Einheiten produziert wurden, und dass er das eine oder die mehreren Pakete entschlüsselt, und wobei der lokale Prozessor so ausgelegt ist, dass er die Details des einen oder der mehreren fernen Interrupts vom zweckbestimmten Prozessor empfängt und die eine oder mehreren fernen I2C-Bus-Einheiten steuert, um auf den einen oder die mehreren fernen Interrupts zu antworten.
- System nach Anspruch 1, wobei es sich bei dem zweckbestimmte Prozessor um ein vor Ort programmierbares Gate-Array (FPGA) handelt, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er ein Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er eine Leseanforderung vom fernen DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfängt und die Leseanforderung auf Identität prüft, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in ein gleiches Enhanced-Layer-2-Transport-(EL2T-)Protokollpaket verkapselt, in dem die Leseanforderung empfangen wurde, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er das gleiche EL2T-Protokollpaket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-)Adresse sendet, um es zumindest an den fernen DFP-Systemmaster zu vermitteln, und wobei der lokale Netz-Switch so ausgelegt ist, dass er das gleiche EL2T-Protokollpaket, in dem Details zu den lokalen I2C-Bus-Einheiten verkapselt sind, zumindest an den DFP-Systemmaster sendet.
- System nach Anspruch 1. wobei es sich bei dem lokalen Prozessor um eine Zentraleinheit (CPU) handelt, die so ausgelegt ist, dass sie Operationen des Systems steuert, darunter das Steuern der lokalen I2C-Bus-Einheiten.
- System nach Anspruch 1, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er: eine Nachricht an ein oder mehrere Distributed-Fabric-Protocol-(DFP-) Systemelemente sendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem fernen DFP-Systemmaster enthält; eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster empfängt, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren lokalen I2C-Bus-Einheiten verkapselt sind, die beim fernen DFP-Systemmaster zu registrieren sind, und der zweckbestimmte Prozessor bei Empfang des zumindest einen Pakets so ausgelegt ist, dass er: das zumindest eine Paket unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster entschlüsselt, um Details zu der einen oder den mehreren lokalen I2C-Bus-Einheiten abzurufen; alle I2C-Bus-Einheiten vom jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des fernen DFP-Systemmaster zuordnet; und unter Verwendung des lokalen Prozessors des fernen DFP-Systemmaster auf die registrierten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen zugreift, und/oder wobei es sich bei dem lokalen Netz-Switch um eine anwendungsspezifische integrierte Schaltung (ASIC) mit Paketvermittlung handelt und so ausgelegt ist, dass sie die eine oder mehreren Bestätigungen empfängt.
- System nach Anspruch 1, wobei es sich bei dem zweckbestimmten Prozessor um ein vor Ort programmierbares Gate-Array (FPGA) ist, und/oder wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er Multicast- oder Unicast-Enhanced-Layer-2-Transport-(EL2T-)Protokollpakete, in denen Details zu fernen Interrupts verkapselt sind, über den lokalen Netz-Switch empfängt, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er die Multicast- oder Unicast-EL2T-Pakete entschlüsselt, um Details zu einem oder mehreren fernen Interrupts und Details zu einer oder mehreren fernen I2C-Bus-Einheiten zu ermitteln, die von dem einen oder den mehreren fernen Interrupts produziert wurden, die in den Multicast- oder Unicast-EL2T-Paketen verkapselt sind, wobei der zweckbestimmte Prozessor so ausgelegt ist, dass er eine auf einem MSI beruhende Nachricht an den lokalen Prozessor sendet, die Details zu den fernen Interrupts enthält, wobei es sich bei dem lokalen Netz-Switch um eine anwendungsspezifische integrierte Schaltung (ASIC) mit Paketvermittlung handelt und so ausgelegt ist, dass sie die Multicast- oder Unicast-EL2T-Pakete von einem oder mehreren Distributed-Fabric-Protocol- (DFP-) Elementen empfängt, die die fernen Interrupts erzeugt haben, und wobei der lokale Prozessor so ausgelegt ist, dass er die fernen Interrupts liest und auf diese antwortet.
- Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das einen computerlesbaren Programmcode beinhaltet, wobei der computerlesbare Programmcode aufweist: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor auf jede lokale I2C-Bus-Einheit zugreift, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem Distributed-Fabric-Protocol-(DFP-)Systemelement vorhanden sind; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement empfängt, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem fernen DFP-Systemmaster bereitzustellen sind; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Bestätigung der Anforderung zurück an den fernen DFP-Systemmaster sendet, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets aufweist; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er ein Vernetzen der lokalen I2C-Bus-Einheiten ermöglicht; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten empfängt und die Leseanforderung auf Identität prüft; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in einem gleichen Paket verkapselt, in dem die Leseanforderung empfangen wurde; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das gleiche Paket in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-)Adresse sendet, um es zumindest an den DFP-Systemmaster zu vermitteln, und/oder wobei das Computerprogrammprodukt ferner aufweist: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er den lokalen Prozessor veranlasst, zu einem Element eines DFP-Systems zu werden, indem er auf eine Anforderung vom fernen DFP-Systemmaster antwortet, Teil des DFP-Systems zu werden; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er ein virtuelles lokales Netz (VLAN) auf dem lokalen Netz-Switch erstellt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen lokalen Netzanschluss, der mit dem zweckbestimmten Prozessor verbunden ist, zum VLAN hinzufügt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen zweckbestimmten Prozessor des DFP-Systemelements beim Hochfahren des DFP-Systemelements lädt und initialisiert; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Anforderung an dem lokalen Netz-Switch des DFP-Systemelements, ein Teil des DFP-Systems zu werden, empfängt.
- Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das einen computerlesbaren Programmcode beinhaltet, wobei der computerlesbare Programmcode aufweist: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine Nachricht an ein oder mehrere Distributed-Fabric-Protocol-(DFP-) Systemelemente sendet, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von lokalen I2C-Bus-Einheiten auf jedem DFP-Systemelement bei einem DFP-Systemmaster aufweist; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er eine oder mehrere Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster empfängt, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren lokalen I2C-Bus-Einheiten verkapselt sind, die beim fernen DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er das zumindest eine Paket unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster entschlüsselt, um Details zu der einen oder den mehreren lokalen I2C-Bus-Einheiten abzurufen; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er alle I2C-Bus-Einheiten vom jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der in dem zumindest einen Paket enthaltenen Details unter Verwendung eines lokalen Prozessors des DFP-Systemmaster zuordnet; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er unter Verwendung des lokalen Prozessors des DFP-Systemmaster auf die registrierten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen zugreift, und/oder wobei das Computerprogrammprodukt aufweist: einen computerlesbaren Programmcode, der so konfiguriert ist, dass er ein virtuelles lokales Netz (VLAN) auf dem lokalen Netz-Switch erstellt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen lokalen Netzanschluss, der mit dem zweckbestimmten Prozessor verbunden ist, zum VLAN hinzufügt; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen zweckbestimmten Prozessor des DFP-Systemmaster beim Hochfahren des DFP-Systemmaster lädt und initialisiert; einen computerlesbaren Programmcode, der so konfiguriert ist, dass er während einer vorab festgelegten Zeitdauer auf die eine oder mehreren Bestätigungen wartet; und einen computerlesbaren Programmcode, der so konfiguriert ist, dass er einen lokalen Prozessor des DFP-Systemmaster veranlasst, der DFP-Systemmaster zu werden, nachdem ein Auswahlverfahren an allen Elementen des DFP-Systems durchgeführt wurde.
- Verfahren, das aufweist: Zugreifen auf jede lokale I2C-Bus-Einheit unter Verwendung eines lokalen Prozessors über einen zweckbestimmten Prozessor, um festzustellen, welche lokalen I2C-Bus-Einheiten auf einem Distributed-Fabric-Protocol-(DFP-)Systemelement vorhanden sind; Empfangen einer Anforderung von einem fernen DFP-Systemmaster zum Registrieren von lokalen I2C-Bus-Einheiten auf dem DFP-Systemelement, um den Zugriff auf die lokalen I2C-Bus-Einheiten zu ermöglichen, die dem DFP-Systemmaster bereitzustellen sind; Senden einer Bestätigung der Anforderung zurück an den DFP-Systemmaster, wobei die Bestätigung eine Liste der lokalen I2C-Bus-Einheiten und deren bestimmter Offsets aufweist; Ermöglichen des Vernetzens der lokalen I2C-Bus-Einheiten; Empfangen einer Leseanforderung vom DFP-Systemmaster zum Lesen zumindest einer der lokalen I2C-Bus-Einheiten und Prüfen der Leseanforderung auf Identität; Verkapseln von Details zu der zumindest einen der lokalen I2C-Bus-Einheiten in einem gleichen Paket, in dem die Leseanforderung empfangen wurde; und Senden des gleichen Pakets in Reaktion auf die auf Identität geprüfte Leseanforderung über einen Netzanschluss, der mit dem lokalen Netz-Switch des DFP-Systemelements verbunden ist, an zumindest eine registrierte Media-Access-Control-(MAC-)Adresse, um es zumindest an den DFP-Systemmaster zu vermitteln, und/oder wobei das Verfahren unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemelements durchgeführt wird, wobei der zweckbestimmte Prozessor ein vor Ort programmierbares Gate-Array (FPGA) ist, und wobei das zumindest eine Paket ein Enhanced-Layer-2-Transport-(EL2T-)Protokollpaket ist, und/oder wobei das zumindest eine Paket eine Switch-ID des DFP-Systemelements, eine Quelle lokaler I2C-Bus-Einheiten, einen Offset, einen Interrupt-Typ und eine Interrupt-Priorität für jede der einen oder mehreren lokalen I2C-Bus-Einheiten aufweist, und/oder wobei das Verfahren ferner aufweist: Veranlassen, dass der lokale Prozessor ein Element eines DFP-Systems wird, durch Antworten auf eine Anforderung vom DFP-System, Teil des DFP-Systems zu werden; Erstellen eines virtuellen lokalen Netzes (VLAN) auf dem lokalen Netz-Switch; Hinzufügen eines lokalen Netzanschlusses, der mit dem zweckbestimmten Prozessor verbunden ist, zum VLAN; Laden und Initialisieren eines zweckbestimmten Prozessors des DFP-Systemelements beim Hochfahren des DFP-Systemelements; und Empfangen einer Anforderung an dem lokalen Netz-Switch des DFP-Systemelements, ein Teil des DFP-Systems zu werden. und/oder wobei das Verfahren ferner aufweist: Senden eines Message Signaled Interrupt (MSI) an den lokalen Prozessor über einen PCIe-Bus, der mit dem lokalen PCIe-Switch verbunden ist, gleichzeitig mit dem Senden des gleichen Pakets in Reaktion auf die auf Identität geprüfte Leseanforderung; und Vermitteln des zumindest einen Pakets zumindest an den DFP-Systemmaster unter Verwendung des lokalen Netz-Switch.
- Verfahren, das aufweist: Senden einer Nachricht an ein oder mehrere Distributed-Fabric-Protocol-(DFP-)Systemelemente, um einen Masterstatus über dem einen oder den mehreren DFP-Systemelementen zu bilden, wobei die Nachricht eine Anforderung zum Registrieren von I2C-Bus-Einheiten auf jedem DFP-Systemelement, das gegenüber den I2C-Bus-Einheiten fern ist, bei einem DFP-Systemmaster enthält; Empfangen einer oder mehrerer Bestätigungen der Anforderung von dem einen oder den mehreren DFP-Systemelementen an einem lokalen Netz-Switch des DFP-Systemmaster, wobei jede Bestätigung zumindest ein Paket enthält, in dem Details zu einer oder mehreren fernen I2C-Bus-Einheiten verkapselt sind, die beim DFP-Systemmaster zu registrieren sind; bei Empfang des zumindest einen Pakets: Entschlüsseln des zumindest einen Pakets unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster, um Details zu der einen oder den mehreren fernen I2C-Bus-Einheiten abzurufen; Zuordnen aller fernen I2C-Bus-Einheiten von jedem des einen oder der mehreren DFP-Systemelemente unter Verwendung der Details, die in dem zumindest einen Paket enthalten sind, unter Verwendung eines lokalen Prozessors des DFP-Systemmaster als lokale I2C-Bus-Einheiten; Installieren von I2C-Treibern für alle zugeordneten I2C-Bus-Einheiten auf dem lokalen Prozessor; Zugreifen auf die zugeordneten I2C-Bus-Einheiten auf dem einen oder den mehreren DFP-Systemelementen unter Verwendung des lokalen Prozessors des DFP-Systemmaster unter Verwendung von Software-Treiber-Anwendungsprogrammschnittstellen (APIs); und Installieren einer Interrupt-Service-Routine (ISR) für alle entfernt erzeugten Interrupts, die von den zugeordneten I2C-Bus-Einheiten produziert wurden, die an den DFP-Systemmaster gesendet werden, wobei die entfernt erzeugten Interrupts durch zweckbestimmte Prozessoren des einen oder der mehreren DFP-Systemelemente an den DFP-Systemmaster gesendet werden, und/oder wobei das Verfahren unter Verwendung eines zweckbestimmten Prozessors des DFP-Systemmaster durchgeführt wird, wobei der zweckbestimmte Prozessor ein vor Ort programmierbares Gate-Array (FPGA) ist, wobei es sich bei dem zumindest einen Paket um ein Enhanced-Layer-2-Transport-(EL2T-)Protokollpaket handelt, und wobei das zumindest eine Paket eine Switch-ID des DFP-Systemelements, eine Quelle lokaler I2C-Bus-Einheiten, einen Offset, einen Interrupt-Typ und/oder eine Interrupt-Priorität für jede der einen oder mehreren lokalen I2C-Bus-Einheiten enthält, und/oder wobei das eine oder die mehreren DFP-Systemelemente EL2T-Pakete, in denen Interrupt-Details verkapselt sind, an den zweckbestimmten Prozessor des DFP-Systemmaster sendet bzw. senden und gleichzeitig ein Peripheral-Component-Interconnect-Express-(PCIe-)Message-Signaled-Interrupt (MSI) an einen lokalen Prozessor des einen oder der mehreren DFP-Systemelemente sendet bzw. senden, wobei der zweckbestimmte Prozessor des DFP-Systemmaster bei Empfang des EL2T-Pakets mit verkapseltem Interrupt einen PCIe-MSI an den lokalen Prozessor des DFP-Systemmaster erzeugt, und wobei der lokale Prozessor des DFP-Systemmaster eine Interrupt-Service-Routine (ISR) aufruft, um den MSI zu bedienen, und/oder wobei das Verfahren ferner aufweist: Erstellen eines virtuellen lokalen Netzes (VLAN) auf dem lokalen Netz-Switch; Hinzufügen eines lokalen Netzanschlusses, der mit dem zweckbestimmten Prozessor verbunden ist, zum VLAN; Laden und Initialisieren des zweckbestimmten Prozessors des DFP-Systemmaster beim Hochfahren des DFP-Systemmaster; Warten auf die eine oder mehreren Bestätigungen während einer vorab festgelegten Zeitdauer; und Veranlassen eines lokalen Prozessors des DFP-Systemmaster, der DFP-Systemmaster zu werden, nachdem ein Auswahlverfahren an allen Elementen des DFP-Systems durchgeführt wurde.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/487,072 US8984201B2 (en) | 2012-06-01 | 2012-06-01 | Providing I2C bus over Ethernet |
US13/487,072 | 2012-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102013209515A1 true DE102013209515A1 (de) | 2013-12-05 |
DE102013209515B4 DE102013209515B4 (de) | 2022-11-10 |
Family
ID=49579695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102013209515.5A Active DE102013209515B4 (de) | 2012-06-01 | 2013-05-22 | Bereitstellen eines I2C-Busses über Ethernet |
Country Status (2)
Country | Link |
---|---|
US (3) | US8984201B2 (de) |
DE (1) | DE102013209515B4 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984201B2 (en) | 2012-06-01 | 2015-03-17 | International Business Machines Corporation | Providing I2C bus over Ethernet |
US8966148B2 (en) | 2012-06-01 | 2015-02-24 | International Business Machines Corporation | Providing real-time interrupts over Ethernet |
US9253121B2 (en) * | 2012-12-31 | 2016-02-02 | Broadcom Corporation | Universal network interface controller |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU766657B2 (en) * | 1998-05-23 | 2003-10-23 | Aristocrat Technologies Australia Pty Limited | Secured inter-processor and virtual device communications system |
US20050058149A1 (en) | 1998-08-19 | 2005-03-17 | Howe Wayne Richard | Time-scheduled and time-reservation packet switching |
US7039046B1 (en) * | 2000-05-20 | 2006-05-02 | Ciena Corporation | Network device including central and distributed switch fabric subsystems |
US7013084B2 (en) | 2001-02-28 | 2006-03-14 | Lambda Opticalsystems Corporation | Multi-tiered control architecture for adaptive optical networks, and methods and apparatus therefor |
US7188364B2 (en) * | 2001-12-20 | 2007-03-06 | Cranite Systems, Inc. | Personal virtual bridged local area networks |
US7299277B1 (en) | 2002-01-10 | 2007-11-20 | Network General Technology | Media module apparatus and method for use in a network monitoring environment |
US7274703B2 (en) | 2002-03-11 | 2007-09-25 | 3Com Corporation | Stackable network units with resiliency facility |
US7209435B1 (en) * | 2002-04-16 | 2007-04-24 | Foundry Networks, Inc. | System and method for providing network route redundancy across Layer 2 devices |
US7240130B2 (en) | 2003-06-12 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Method of transmitting data through an 12C router |
US7010639B2 (en) | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
EP2677691A1 (de) | 2004-05-25 | 2013-12-25 | Rockstar Consortium US LP | Konnektivitätsfehler-Benachrichtigung |
US7466922B2 (en) | 2004-06-28 | 2008-12-16 | Jds Uniphase Corporation | Flexible control and status architecture for optical modules |
US7444453B2 (en) | 2006-01-03 | 2008-10-28 | International Business Machines Corporation | Address translation device |
CA2672100A1 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
US7562176B2 (en) * | 2007-02-28 | 2009-07-14 | Lsi Corporation | Apparatus and methods for clustering multiple independent PCI express hierarchies |
US7805556B2 (en) | 2007-05-01 | 2010-09-28 | Ricoh Company, Ltd. | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method |
US8358591B2 (en) | 2007-06-06 | 2013-01-22 | Hewlett-Packard Development Company, L.P. | Network traffic monitoring in a server network environment |
US20090327572A1 (en) * | 2008-06-30 | 2009-12-31 | In Sung Cho | Exchanging information between components coupled with an a i2c bus via separate banks |
US8165119B2 (en) | 2008-06-30 | 2012-04-24 | Dell Products, Lp | System and method of enabling a transparent Ethernet switch |
US8595343B2 (en) * | 2008-11-14 | 2013-11-26 | Dell Products, Lp | System and method for sharing storage resources |
US20100185896A1 (en) * | 2009-01-22 | 2010-07-22 | International Business Machines Corporation | Method and apparatus for fully redundant control of low-speed peripherals |
FR2949931B1 (fr) * | 2009-09-10 | 2011-08-26 | Canon Kk | Procedes et dispositifs de transmission d'un flux de donnees, produit programme d'ordinateur et moyen de stockage correspondants. |
US8351433B2 (en) | 2009-09-18 | 2013-01-08 | Schweitzer Engineering Laboratories Inc | Intelligent electronic device with segregated real-time ethernet |
US9876735B2 (en) | 2009-10-30 | 2018-01-23 | Iii Holdings 2, Llc | Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect |
US8370534B2 (en) | 2009-12-03 | 2013-02-05 | Dell Products, Lp | Host-based messaging framework for PCIe device management |
US8572635B2 (en) | 2010-06-23 | 2013-10-29 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification |
WO2012150608A1 (en) * | 2011-04-30 | 2012-11-08 | Ineda Systems Pvt. Ltd | Peripheral device sharing in multi host computing systems |
US8966148B2 (en) | 2012-06-01 | 2015-02-24 | International Business Machines Corporation | Providing real-time interrupts over Ethernet |
US8984201B2 (en) | 2012-06-01 | 2015-03-17 | International Business Machines Corporation | Providing I2C bus over Ethernet |
-
2012
- 2012-06-01 US US13/487,072 patent/US8984201B2/en active Active
-
2013
- 2013-05-22 DE DE102013209515.5A patent/DE102013209515B4/de active Active
-
2015
- 2015-01-27 US US14/606,982 patent/US9282062B2/en not_active Expired - Fee Related
-
2016
- 2016-01-21 US US15/003,751 patent/US9904654B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160154766A1 (en) | 2016-06-02 |
US9282062B2 (en) | 2016-03-08 |
US8984201B2 (en) | 2015-03-17 |
US9904654B2 (en) | 2018-02-27 |
DE102013209515B4 (de) | 2022-11-10 |
US20130322290A1 (en) | 2013-12-05 |
US20150146738A1 (en) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4622835B2 (ja) | 仮想計算機システム及びそのネットワーク通信方法 | |
DE102021122880A1 (de) | Infrastrukturverarbeitungseinheit | |
DE112012001753B4 (de) | 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur | |
DE102018006890A1 (de) | Technologien zur Verarbeitung von Netzpaketen durch einen intelligenten Netzwerk-Schnittstellenkontroller | |
DE112011102415B4 (de) | Registerzugriff in einer verteilten virtuellen Brückenumgebung | |
TWI521437B (zh) | 用於網路的方法和系統 | |
DE102008030587B4 (de) | Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem | |
DE112016004347T5 (de) | Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten | |
DE112012002404B4 (de) | Konfiguration und Management virtueller Netzwerke | |
DE112005001502T5 (de) | Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden | |
DE102015105884A1 (de) | Zuverlässige und deterministische Live-Migration von virtuellen Maschinen | |
DE102015118705A1 (de) | Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren | |
DE102013209306A1 (de) | Bereitstellen von Echtzeit-Interrupts über Ethernet | |
DE102011103218A1 (de) | Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen | |
DE112008001168T5 (de) | System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers | |
DE112014002799B4 (de) | Bereitstellen einer sicheren Kundendomäne in einer virtualisierten Mehr-Mieter-Umgebung | |
DE112014000442T5 (de) | Auf Einzelmikroregler beruhendes Management mehrerer Rechenknoten | |
DE102018129112A1 (de) | Systemdecoder für Trainingsbeschleuniger | |
DE112018007780T5 (de) | Transparente verschlüsselung | |
EP3949273A1 (de) | Hochskalierbares, software-definiertes netzwerkinternes multicasting von laststatistikdaten | |
DE102021109231A1 (de) | Bedienungssystem installation mechanismus | |
DE112019000965T5 (de) | Technologien zur reduzierung der nic-anschlüsse mit beschleunigter schaltung | |
DE102013209515B4 (de) | Bereitstellen eines I2C-Busses über Ethernet | |
DE112017001757T5 (de) | Verfahren und vorrichtung zum koordinieren und authentifizieren von anfragen nach daten | |
AT512665B1 (de) | Verfahren und Apparat zur Bildung von Software Fault Containment Units in einem verteilten Echtzeitsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |