DE112010001469B4 - Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen - Google Patents

Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen Download PDF

Info

Publication number
DE112010001469B4
DE112010001469B4 DE112010001469.8T DE112010001469T DE112010001469B4 DE 112010001469 B4 DE112010001469 B4 DE 112010001469B4 DE 112010001469 T DE112010001469 T DE 112010001469T DE 112010001469 B4 DE112010001469 B4 DE 112010001469B4
Authority
DE
Germany
Prior art keywords
fabric
integrated
message
port
logic
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.)
Active
Application number
DE112010001469.8T
Other languages
English (en)
Other versions
DE112010001469T5 (de
Inventor
Michael Klinglesmith
Mohan Nair
Joseph Murray
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US12/415,470 priority Critical
Priority to US12/415,470 priority patent/US7873068B2/en
Application filed by Intel Corp filed Critical Intel Corp
Priority to PCT/US2010/026284 priority patent/WO2010117524A2/en
Publication of DE112010001469T5 publication Critical patent/DE112010001469T5/de
Application granted granted Critical
Publication of DE112010001469B4 publication Critical patent/DE112010001469B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1845Arrangements for providing special services to substations for broadcast or conference, e.g. multicast broadcast or multicast in a specific location, e.g. geocast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00
    • H04L29/02Communication control; Communication processing
    • H04L29/06Communication control; Communication processing characterised by a protocol
    • H04L29/08Transmission control procedure, e.g. data link level control procedure
    • H04L29/08081Protocols for network applications
    • H04L29/08135Protocols for network applications in which application tasks are distributed across nodes in the network
    • H04L29/08306Arrangements for peer-to-peer networking [P2P]; functionalities, architectural details or applications of P2P networks
    • H04L29/0845Arrangements for peer-to-peer networking [P2P]; functionalities, architectural details or applications of P2P networks involving resource distribution mechanisms
    • H04L29/08468Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1074Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks for supporting resource transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Vorrichtung, umfassend:einen virtuellen Port (20), der zwischen einer Upstream-Fabric und einer Integrated-Device-Fabric (30) gekoppelt ist, wobei der virtuelle Port (20) eine Master-Schnittstelle zum Verbinden mit der Upstream-Fabric und eine Zielschnittstelle zum Verbinden mit der Integrated-Device-Fabric (30) enthält;die Integrated-Device-Fabric (30), die eine Multifunktionslogik (35) zum Handhaben von Interrupts, Energiemanagementmeldungen und nicht funktionsspezifischen Fehlermeldungen enthält, wobei die Integrated-Device-Fabric (30) mit mindestens einem Intellectual Property (IP)-Block gekoppelt ist und einen primären Kanal (49a, 49b) zum Kommunizieren von Daten und Befehlsinformation zwischen dem mindestens einen IP-Block und dem virtuellen Port (20) und einen Seitenbandkanal zum Kommunizieren von Seitenbandinformation zwischen dem mindestens einen IP-Block und der Multifunktionslogik (35) aufweist, wobei die Integrated-Device-Fabric (30) eingerichtet ist, einen Befehlsabschnitt einer Meldung an den zumindest einen IP-Block über den primären Kanal zu senden, eine Dekodierbestätigung von einem anvisierten des zumindest einen IP-Blocks zu empfangen, um anzuzeigen, dass die Meldung für den anvisierten IP-Block vorgesehen ist, und zu bestimmen, ob der anvisierte IP-Block verfügbare Ressourcen zum Handhaben der Meldung aufweist, und falls ja, die Meldung an den anvisierten IP-Block zu senden; undden mindestens einen IP-Block zum Durchführen einer Funktion, wobei der virtuelle Port (20), die Integrated-Device-Fabric (30) und der IP-Block auf einem einzigen Halbleiter-Die eingerichtet sind.

Description

  • Hintergrund
  • Mainstream-Prozessorchips, sowohl in Hochleistungs- als auch Niedrigverbrauchssegmenten, integrieren zunehmend zusätzliche Funktionalität, wie zum Beispiel Grafik, Display-Engines, Sicherheits-Engines, PCIe™-Ports (d. h. Ports gemäß der Peripheral Component Interconnect Express (PCI Express™ (PCIe™ )) Specification, Base Specification Version 2.0 (am 17. Januar 2007 veröffentlicht) (nachfolgend die PCIe™-Spezifikation genannt)) und andere PCIe™-basierte Peripheriegeräte.
  • Traditionelle Entwürfe bzw. Bauformen von peripheren Hub-Produkten sind aufgrund von variierenden Anforderungen von den Server-, Desktop-, mobilen, embedded, ultramobile und mobile Internet Device-Segmenten stark segmentiert. Unterschiedliche Märkte versuchen Single-Chip-System-on-Chip (SoC)-Lösungen zu verwenden, die zumindest einige von Prozessorkernen, Memory Controller Hub (MCH), Eingabe/Ausgabe-Controller (ICH) und andere Segment spezifische Beschleunigungselemente auf einem einzigen Chip kombinieren. Die Entwürfe, die diese Merkmale anhäufen, lassen sich jedoch aufgrund der Schwierigkeit beim Integrieren von Intellectual Property (IP)-Blöcken auf einem einzigen Die in internen Standardverbindungseinrichtungen nur langsam entwickeln.
  • US 2009/0077297 A1 offenbart ein Computersystem, das sich zur Zuordnung einer Mehrzahl von zuweisbaren Ressourcen zu einem PCI-Card-Bus-Controller eignet. Das Computersystem umfasst eine CPU zur Verwaltung einer Mehrzahl von Vorrichtungen des Computersystems einschließlich des PCI-Card-Bus-Controllers. Ein Root-Komplex, der mit der CPU gekoppelt ist, umfasst eine Mehrzahl von Root-Ports, die mit einer ersten Mehrzahl von virtuellen PCI-zu-PCI-Brücken assoziiert sind, und eine der ersten Mehrzahl von PCI-zu-PCI-Brücken ist dazu geeignet, den PCIe-Card-Bus-Controller mit dem Root-Komplex zu koppeln. Das Computersystem umfasst weiter ein BIOS zur Zusammenarbeit mit der CPU, um das Computersystem zu booten und ein Betriebssystem zu laden. Das BIOS weist der Mehrzahl von Vorrichtungen des Computersystems eine Mehrzahl von Voreinstellungsressourcen zu und berechnet die Mehrzahl von zuweisbaren Ressourcen, die verfügbar sind, und ordnet dem PCIc-Card-Bus-Controller die Mehrzahl von zuweisbaren Resourcen zu.
  • US 2008/0147943 A1 offenbart einen Mechanismus, der es zulässt, dass ein PCIe-Adapter von zwei oder mehr System-Images (SI) verwendet wird. Es wird ein Mechanismus bereitgestellt, der es ermöglicht, dass ein Endpunkt, wie beispielsweise ein PCIe-E/A-Adapter, gleichzeitig von mehreren SIs innerhalb desselben Root-Komplexes oder in mehreren Root-Komplexen (RCs), die sich einen gemeinsamen PCI-Switch-Fabric teilen und damit verbunden sind, verwendet wird. Der Mechanismus ermöglicht es, jedem Rout-Komplex und seinen damit assoziierten physikalischen und/oder virtuellen Endpunkten über einen eigenen eindeutigen PCI-Speicheradressraum zu verfügen.
  • US 2006/0242353 A1 offenbart eine PCI-Express-Interconnect-Vorrichtung. Die Vorrichtung umfasst einen ersten und einen zweiten Upstream-Port, einen ersten und einen zweiten Downstream-Port und eine Management-Einheit. Die Management-Einheit kann betrieben werden, um die Vorrichtung logisch zu partitionieren, sodass der erste Upstream-Port betrieben werden kann, um mit dem ersten Downstream-Port zu kommunizieren und der zweite Upstream-Port betrieben werden kann, um mit dem zweiten Downstream-Port zu kommunizieren. Die Management-Vorrichtung kann zusätzlich so betrieben werden, um den ersten Downstream-Port von einer Partition, in der der erste Downstream-Port betrieben werden kann, um mit dem ersten Upstream-Port zu kommunizieren, in eine Partition zu migrieren, in der der erste Downstream-Port betrieben werden kann, um mit dem zweiten Upstream-Port zu kommunizieren.
  • Die Erfindung ist definiert in den unabhängigen Ansprüchen 1, 10 und 19. Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
  • Figurenliste
    • 1 zeigt ein Blockdiagramm eines integrierten Endpunkts und virtuellen Ports gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 zeigt ein Blockdiagramm eines integrierten Endpunkts und virtuellen Ports gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 zeigt ein Blockdiagramm eines System-on-Chip (SoC) gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 4 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5 zeigt ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 zeigt ein Flussdiagramm eines Verfahrens zur Handhabung von eintreffenden Meldungen von gekoppelten Agenten gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • In zahlreichen Ausführungsformen kann Schnittstellenfunktionalität eines PCIe™-Endpunktes zwischen Fabric-Logik und einem Agenten, wie zum Beispiel einem Intellectual Property (IP)-Block oder einem anderen Logikblock, der konfiguriert ist, um ein oder mehr Funktionen durchzuführen, segmentiert sein, um eine effiziente Wiederverwendung des Agenten über zahlreiche Plattformen zu ermöglichen. In der hierin verwendeten Form können die Begriffe „Agent“ und „IP-Block“ synonyme Bezeichnungen einer unabhängigen Logik sein, die in einem Halbleiterbaustein bzw. einer Halbleitereinrichtung gemeinsam mit anderen derartigen Agenten eingepasst sein kann, wobei die Agenten von einem oder mehr Herstellern stammen können. Für eine Implementierung kann ein derartiger Agent on-chip gemeinsam mit einem virtuellen Downstream-Port (Root-Port oder Switch-Port), der eine separate PCIe™-Einrichtung sein kann, einer Integrated-Device-Fabric (IDF), enthaltend Multifunktions (Multi-Function (MF))-Logik, und einem oder mehr Agenten, der/die jeweils eine oder mehr PCIe™-Funktionen implementieren kann/können, implementiert sein. Auf diese Weise kann/können ein oder mehr Agent(en) in einer On-Die- PCIe™-Einrichtung integriert sein.
  • Der virtuelle Downstream-Port erscheint für Software als ein Standard- PCIe™-Downstream-Port, jedoch sind die Verbindungsschicht und physikalische Schicht entfernt und durch eine Master-Schnittstelle zum Kommunizieren mit einer Upstream-Komponente, z. B. einem Prozessor, und durch eine Zielschnittstelle zum Kommunizieren mit der IDF ersetzt. In einer Ausführungsform enthält der virtuelle Downstream-Port einen Typel- PCIe™-Konfigurations-Header und zugehörige virtuelle Peer-to-Peer-Brücken-Logik. Der virtuelle Port erscheint für Software als ein „realer“ Port, aber die Verbindungsschicht und physikalische Schicht fehlen. Die Software kann nicht den Unterschied feststellen. Zahlreiche Werte für Verbindungsregister und physikalische Register können in dem virtuellen Port so gesetzt werden, dass die Software denkt, dass die Verbindungsschicht und physikalische Schicht vorhanden sind. Die IDF, MF-Logik und Agenten erscheinen wiederum für die Software als ein PCIe™-Endpunkt. Software kann nicht feststellen, dass der Endpunkt nicht mit dem Downstream-Port mit einer Standard- PCIe™-Verbindung verbunden ist, da dieselbe Funktionalität und Information präsentiert wird. Das heißt, dass die Kombination von virtuellem Port und IDF, MF-Logik und Agenten eine vollständige Transparenz für Software, wie zum Beispiel ein Shrink-Wrap-Betriebssystem (Operating System (OS)), ermöglicht. Zusätzlich ist diese Schnittstelle Plug-and-Play-OS-kompatibel und unterstützt zahlreiche Funktionen wie zum Beispiel unter anderen Funktionen PCI-Plug-and-Play-Enumeration und PCI-Ordnung.
  • In einer Ausführungsform ist die Integrated-Device-Fabric eine Implementierung einer Fabric, die MF-Logik enthält. Die MF-Logik liefert die Funktionalität, die notwendig ist, um separaten Agenten, die gemäß einer Schnittstellenspezifikation entworfen sind, zu ermöglichen, mit Software zu interagieren und für sie als eine Standard- PCIe™-Multifunktionseinrichtung zu erscheinen, die z. B. über eine Off-Chip (z. B. PCIe™)-Verbindung gekoppelt ist. Diese Fabric liefert die Ablaufsteuerungs-, Arbitrierungs- und Ordnungslogik. Zusätzlich unterstützt die Multifunktionslogik zahlreiche Funktionsanforderungen eines bestimmten Standards. Zum Beispiel kann in einer Ausführungsform die MF-Logik Logik zum Handhaben von maximaler Nutzlastgröße in Einrichtungen bzw. Geräten enthalten, die die Alternate Requester ID Interpretation (ARI), Legacy Interrupts, PCI-Power Management (PM)-Meldungen, nicht funktionsspezifische Fehler und Latenztoleranzberichterstattung unterstützen.
  • Ein oder mehr Agenten können mit dieser IDF gekoppelt sein, um eine oder mehr PCIe™-Funktionen zu implementieren. Die Agenten können in einer Root-Complex-Fabric direkt integriert oder, wie unten beschrieben, unter einer Integrated-Device-Fabric verbunden sein. Die IDF in Verbindung mit den Agenten bildet einen integrierten PCIe™-Endpunkt, der mit einem integrierten virtuellen Port (Root-Port oder Switch-Port) verbunden werden kann.
  • Ausführungsformen ermöglichen somit, dass Standardagenten, die für eine Schnittstellenspezifikation entworfen worden sind, zwischen Projekten, entweder als Funktionen innerhalb einer Multifunktionseinrichtung oder als Root-Complex-Integrated-Device, wieder verwendet werden. Es gibt keine Beschränkungen für die Agenten, die sie von der Implementierung des vollständigen Merkmalsatzes der PCIe™-Spezifikation abhalten. Durch Entfernen von Verbindungsschicht und physikalischer Schicht und Ersetzen der Schichten durch eine Fabric wird der Bedarf an zahlreicher Logik von derartigen Schichten, z. B. zyklische Redundanzprüfung (Cyclic Redundancy Checksum (CRC)) und Wiedergabepuffer, beseitigt. Dies erzeugt eine Lösung mit geringer Latenzzeit, geringer Energie und kleinerer Bauform.
  • Die Wiederverwendung wird durch Bauformregeln verbessert, um Logik zwischen Agent und Fabric effizient aufzuteilen. Ein PCIe™-Einrichtung weist typischerweise gewisse gemeinsame Logik für die gesamte Einrichtung und gewisse Logik auf, die für eine Funktion spezifisch ist. Ausführungsformen der vorliegenden Erfindung definieren die Partionierung und Implementierung von Logik, die sich in einem Agenten befindet (oder ein oder mehr Funktionen), und Logik, die sich in der Fabric befindet (oder einrichtungsspezifische Logik), zum Optimieren der Wiederverwendung für eine große Vielzahl von Plattformen. Ein Teil des Ziels des Entwurfes besteht darin, dem Agenten zu ermöglichen, als Teil einer Einrichtung, die in verschiedenen Komponenten, wie zum Beispiel Endpunkten, Fabrics integriert ist und innerhalb oder außerhalb eines Root Complex integriert sein kann, leicht verwendet zu werden. Somit ist gewisse Funktionalität und Komplexität in der Fabric enthalten, weil sie nicht notwendig sind, wenn ein Agent innerhalb eines Root Complex vorhanden ist.
  • Unter Bezugnahme auf 1 ist dort ein Blockdiagramm eines integrierten Endpunktes gezeigt, der mit einem virtuellen Port verbunden ist, die auf einen einzigen Halbleiter-Die gemäß einer Ausführungsform der vorliegenden Erfindung gebildet sein können. Wie in 1 gezeigt ist, kann der integrierte Endpunkt 10 eine IDF 30 und ein oder mehr Agenten 50 enthalten und mit einem virtuellen Port 20 gekoppelt sein, der in Abhängigkeit von der Einheit, mit der der integrierte Endpunkt 10 gekoppelt ist, ein virtueller Root-Port oder ein virtueller Switch-Port sein kann. Wenn zum Beispiel der virtuelle Port 20 mit einer Root-Complex-Fabric gekoppelt ist, kann er ein virtueller Root-Port sein, während der virtuelle Port 20, wenn er mit einer Switch-Fabric gekoppelt ist, stattdessen ein virtueller Switch-Port sein kann. In zahlreichen Ausführungsformen kann der virtuelle Port 20 ein architekturmäßig sichtbarer Registerraum sein und eine Menge von Konfigurationsregistern zur Unterstützung von Plug-and-Play und Funktionsermittlung enthalten. Der virtuelle Port 20 ist wiederum mit der IDF 30 gekoppelt, die Multifunktionslogik 35 enthält.
  • Die IDF 30 kann wiederum mit einem oder mehr Agenten 501 - 50n gekoppelt sein. Jeder derartige Agent ist ein unabhängiger IP-Block und kann verwendet werden, um ein oder mehr Funktionen, wie zum Beispiel eine oder mehr PCIe™-Funktionen, durchzuführen. Im Gegensatz zu einer herkömmlichen Kopplung von genannten Agenten über eine PCIe™- oder andere Verbindung kann in zahlreichen Ausführungsformen die integrierte, d. h. On-Die, Kopplung von Agenten 50 mit dem virtuellen Port 20 durch IDF 30 realisiert sein. Auf diese Weise kann der Bedarf an Verbindungsschicht und physikalischer Schicht, sowohl beim virtuellen Port 20 als auch bei den Agenten 50 (und auch IDF 30) vermieden werden. Stattdessen kann der virtuelle Port 20 mit der IDF 30 an der Transaktionsschicht direkt kommunizieren, und in ähnlicher Weise kann die IDF 30 mit Agenten 50 an der Transaktionsschicht direkt kommunizieren. Man sollte beachten, dass die Agenten, die durch die Agenten 50 beispielhaft erläutert sind, heterogene Blöcke von einem oder mehr verschiedenen Herstellern sein können. Zum Beispiel kann ein SoC-Hersteller zahlreiche Agenten in einer einzigen On-Die-Lösung enthalten, die sowohl ihre eigenen Agenten als auch ein oder mehr Agenten von anderen Herstellern, z. B. zum Bereitstellen oder Verbessern von bestimmter Funktionalität, enthält.
  • Nunmehr unter Bezugnahme auf 2 ist dort ein Blockdiagramm eines integrierten Endpunktes 100 gezeigt, der mit einem virtuellen Port gekoppelt ist. Dieser integrierte Endpunkt kann ähnlich wie derjenige von 1 konfiguriert sein. Es werden jedoch weitere Details der IDF 30 vorgestellt. Genauer gesagt, wie in 2 gezeigt ist, kann die IDF 30 Multifunktionslogik 35 enthalten, die eine Vielzahl von unabhängigen Logiken 40a - 40d (zum Beispiel) enthält, die zahlreiche Funktionalität handhaben können, die die Interaktion von unterschiedlichen Agenten in dem integrierten Endpunkt 100 ermöglicht, während die Sichtbarkeit für die Systemsoftware (z. B. ein Betriebssystem) erhalten bleibt. In der Ausführungsform von 2 enthält derartige Logik Registerschattenlogik (Register Shadow Logic) 40a, Energiemanagement (Power Management (PM))-Logik 40b, Legacy Interrupt-Logik 40c und Fehlerlogik 40d. Während sie mit diesen besonderen Logikfunktionalitäten gezeigt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt und kann andere Logik in der MF-Logik 35 vorhanden sein. Zusätzlich enthält die Multifunktionslogik 35 einen Seitenbandendpunkt 42 zur Kopplung mit einem Seitenband-Router 50 über einen Seitenbandkanal 62.
  • Unter weiterer Bezugnahme auf 2 enthält die IDF 30 ferner Arbiters sowohl in der Upstream- als auch in der Downstream-Richtung (d. h. Arbiters 48a - 48b ). Genannte Arbiters können Ablaufsteuerung und Arbitrierung zwischen Kommunikation mit den zahlreichen Agenten, zum Beispiel gemäß einem Credit Flow Control- und Prioritätsarbitrierungsschema, handhaben. Arbiter 48a und 48b können die Ressourcen der Agenten 50 überprüfen, um sicherzustellen, dass Platz in den Warteschlangen vorhanden ist, und in der Upstream-Richtung überprüfen sie Ressourcen und arbitrieren, welcher Agent Zugriff auf den Upstream Primary-Kanal 49b haben kann. In einer Ausführungsform kann der Arbiter 48a als ein Verkehrspolizist für die Befehlsleitungen fungieren und in zwei Phasen arbeiten. Als erstes wird ein Befehl an die Agenten gesendet, um Zieldekodieren durchzuführen, d. h. es wird an alle Agenten rundgesendet. Dann antwortet der Zielagent. Da der Arbiter nun weiß, wo sich das Ziel befindet, wird der Arbiter als nächstes seine Ressourcenverfügbarkeit überprüfen und, wenn er ermittelt hat, dass die Ressourcen zur Verfügung stehen, kann er die Zuteilung melden und werden der aktuelle Befehl und die Daten an den Zielagenten geliefert.
  • Über einen primären Kanal 49, der separate Verbindungen 49a und 49b in der Downstream- bzw. Upstream-Richtung enthalten kann, kann Kommunikation mit den Agenten 50 stattfinden. In einer Ausführungsform kann der primäre Kanal 49 unterschiedliche Leitungen für Befehls- und Dateninformation aufweisen. Wie ferner ersichtlich ist, kann der Seitenband-Router 60 mit jedem Agenten 50 über einen bestimmten Seitenband-Kanal 651 - 653 kommunizieren. Es ist zu beachten, dass Peer-to-Peer-Kommunikation zwischen den Agenten 50 zulässig ist, obwohl dies in 2 nicht gezeigt ist. Während sie mit dieser speziellen Implementierung in der Ausführungsform von 2 gezeigt ist, soll der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt sein.
  • In anderen Implementierungen einer Integrated-Device-Fabric kann die Fabric anstelle von Koppeln mit Agenten, bei denen alle Befehls- und Datenbreiten dieselben sind, eine Warteschlangenbildung und Einspeicherung (Staging) durchführen, um Mehrfachtaktdaten zu akzeptieren und sie danach aufzuweiten oder umgekehrt. Zur einfachen Darstellung ist in der 2 keine interne Warteschlangenbildung gezeigt, obwohl Ausführungsformen eine derartige Warteschlangenbildung vorsehen können. Während in einigen Ausführungsformen Downstream-Meldungen an alle verbundenen Agenten rundgesendet werden können, die ein Dekodieren durchführen, um zu ermitteln, ob ein Befehl für den bestimmten Agenten ist, können ferner andere Ausführungsformen Dekodieren in der IDF implementieren. Zum Beispiel können Downstream-Warteschlangen vorhanden sein, um Transaktionen von dem Root-Port zu akzeptieren, die dann an einen internen Dekodierer weitergeleitet werden, um das beabsichtigte Ziel zu ermitteln.
  • Ein Agent, der eine oder mehr PCIe™-Funktionen implementiert, kann in einer Root-Complex-Fabric unter einem virtuellen Root-Port als ein Teil eines integrierten Bausteins oder in einer selbständigen PCIe™-Endpunkt-Komponente integriert sein. Um eine Wiederverwendung eines Agenten in diesen unterschiedlichen Systemen zu ermöglichen, wird gewisse Funktionalität zwischen der Fabric und dem Agenten aufgeteilt, wie dies oben beschrieben ist. Zusätzlich werden Protokolle darüber, wie gewisse Meldungen gesendet werden, durch die IDF erzeugt.
  • Eine integrierte Funktion ist ein Agent, der eine oder mehr PCI-Funktionen implementiert. Diese können Legacy-PCI-Funktionen oder PCIe™-konforme Funktionen sein. Integrierte Funktionen, die die ARI unterstützen, können bis zu 256 Funktionen in einem Agenten implementieren. Einige Ausführungsformen können Single Root IO Virtualization (SR-IOV) unterstützen, was bis zu 64k Funktionen in einer integrierten Funktion ermöglicht.
  • Bei Verbindung mit einer Root-Complex-Fabric werden die Funktionen in einer integrierten Funktion zu einem Root-Complex-Integrated-Endpunkt. Bei Verbindung mit einem Switch-Fabric sind die integrierten Funktionen ein Teil eines Multifunktionsbausteins bzw. einer Multifunktionseinrichtung, der/die einen Upstream-Switch-Port enthält. Bei Verbindung mit einer Integrated-Device-Fabric sind die integrierten Funktionen ein Teil eines integrierten PCIe™-Endpunkts. Somit können zur Maximierung der Wiederverwendbarkeit integrierte Funktionen so implementiert werden, dass sie eine Verbindung mit einer Root-Complex-Fabric, einer Switch-Fabric oder einer Integrated-Device-Fabric herstellen können. Es ist zu beachten, dass zusätzliche Funktionalität vorhanden sein kann, wenn integrierte Funktionen zum Erzeugen eines PCIe™-Endpunkts verwendet werden.
  • Immer noch unter Bezugnahme auf die 2 kann die Legacy Interrupt-Logik 42c zum Handhaben von Agenten verwendet werden, die PCI-Legacy-Interrupts erzeugen können. Agenten, die PCI- oder PCIe™-konforme Funktionen implementieren, die Interrupts erzeugen, sind durch die PCI- und PCIe™-Spezifikationen zum Unterstützen von Legacy Interrupts erforderlich. Das Ziel für diese Legacy Interrupts ist ein Input/Output Advanced Programmable Interrupt Controller (IOxAPIC). Interrupt-Leitungen (d. h. Legacy Interrupt-Leitungen (INTx#)) werden unter Verwendung von Meldungen virtuell ausgeliefert. Eine Assert INTx#-Meldung zeigt einen Hoch-zu-Niedrig-Übergang des virtuellen INTx#-Signals an, während eine DeAssert INTx#-Meldung den Niedrig-zu-Hoch-Übergang des virtuellen INTx#-Signals anzeigt.
  • In zahlreichen Ausführungsformen können INTx Meldungen an sowohl primäre als auch Seitenbandmeldungen-Schnittstellen geliefert werden. Zur Sicherstellung von Interoperabilität der Agenten werden die folgenden Regeln zur Lieferung von Legacy Interrupts verwendet. Agenten, die die Ursprungsquelle von INTx-Meldungen sind (z. B. Endpunkt oder Root-Port), werden sie unter Verwendung von Seitenbandmeldungen senden. Agenten, die mehr als eine PCT/PCI-e™-Funktion enthalten, die sich virtuelle INTx-Leitungen logisch „oder“ virtuellen Leitungen teilen vor Senden der Assert/de-assert-Meldungen. Agenten, die mehr als eine PCI/ PCIe™-Funktion enthalten, die sich nicht virtuelle INTx-Leitungen teilen, senden die Meldungen mit unterschiedlichen Seitenbandquellen-IDs, wodurch der Empfänger die Quelle der INTx-Meldungen unterscheiden kann.
  • Die Legacy Interrupt-Logik 40c aggregiert die Legacy INTx-Meldungen, die von den Agenten unter der Fabric gemeinsam benutzt werden. Der aggregierte Zustand der virtuellen INTx-Leitung wird dann stromaufwärts (Upstream) auf dem primären Kanal 49 weitergeleitet. Agenten, die einen PCIe™-Root-Port implementieren, werden Legacy-INTx-Meldungen auf einem Seitenbandkanal senden, der einen lokalen IOxAPIC als Ziel hat.
  • Die PM-Logik 42b kann verwendet werden, um PCI-Energiemanagement (PCI Power Management (PCI-PM)) zu unterstützen. Die folgenden drei Meldungen können zur Handhabung von Power Management-Ereignissen, nämlich einer Energiemanagement- Ereignismeldung, und ähnlicher Abschalt- und Abschaltbestätigungsmeldungen verwendet werden: PME, PME Turn Off (TO) und PME TO Ack. In einer Ausführungsform enthält die PCI-PM-Meldung einen Meldungscode zum Anzeigen, ob die Meldung eine PME, PME Turn Off oder PME TO Ack ist. Die Meldung enthält auch den Bus, Baustein und die Funktionsnummer des Meldungsabsenders.
  • Zur Unterstützung der Interoperabilität von Agenten, die die PCI-Energiemanagement-Fähigkeiten implementieren, werden die folgenden Regeln verwendet. Agenten, die die PCI-PM-Fähigkeit implementieren, senden PME-Meldungen, Empfangen PME-Turn Off-Meldungen und senden PME TO Ack-Meldungen auf der Seitenbandmeldungsschnittstelle. IDF 30 liefert wiederum die folgende Funktionalität. Erstens empfängt die IDF PME Turn Off-Meldungen an der Upstream-Primärschnittstelle und sendet sie an jeden gekoppelten Agenten, der PCI-PM unterstützt (dies kann als ein echtes Multicast oder als mehrere Unicast-Meldungen durchgeführt werden). Außerdem empfängt die IDF PME TO Ack-Meldungen über die Seitenbandmeldungsschnittstelle, aggregiert die Meldungen und leitet eine PME TO Ack-Meldung stromaufwärts (Upstream) auf der primären Schnittstelle und empfängt PME-Meldungen auf der Seitenbandmeldungsschnittstelle und leitet sie stromaufwärts auf der primären Schnittstelle weiter. Agenten, die PCIe™-Root-Ports implementieren, empfangen PME Turn Off-Meldungen auf der Seitenbandmeldungsschnittstelle und leiten sie stromabwärts (Downstream) auf dem primären Kanal weiter und empfangen PME TO Ack-Meldungen von Downstream (über eine IDF für virtuelle Root-Ports, über eine PCIe™-Verbindung für aktuelle Root-Ports) und leiten eine PME TO Ack-Meldung auf der Seitenbandmeldungsschnittstelle weiter. Agenten, die einen PCIe™-Root-Complex Event-Collector implementieren, werden PME-Meldungen auf der Seitenbandmeldungsschnittstelle empfangen.
  • Die Fehlerlogik 40d kann für Unterstützung von PCIe™-Fehlermeldüngen sorgen, die die folgenden drei Meldungen einschließen: Fehler korrigiert (ERR CORR), kein fataler Fehler (ERR NONFATAL) und fataler Fehler (ERR FATAL). Zur Unterstützung von Interoperatbilität von Agenten, die diese Meldungen implementieren, werden die folgenden Regeln in einer Ausführungsform verwendet werden. Agenten, die PCIe™-Fehlermeldungen erzeugen, senden Fehlermeldungen auf der Seitenbandmeldungsschnittstelle, und Integrated-Device-Fabric 30 empfängt Fehlermeldungen auf der Seitenbandmeldungsschnittstelle und leitet sie auf dem primären Kanal 49 stromaufwärts (Upstream). Agenten, die PCIe™-Root-Ports implementieren, empfangen Fehlermeldungen entweder über die PCIe™-Verbindung oder auf dem primären Kanal auf der Downstream-Seite bei Implementierung als ein virtueller Root-Port. Agenten, die einen PCIe™-Root-Complex-Event-Collector implementieren, werden Fehlermeldungen auf der Seitenbandmeldungsschnittstelle empfangen. In anderen Implementierungen können derartige Meldungen auf der primären Schnittstelle gesendet werden.
  • Die PCIe™-Fehlermeldüngen enthalten eine Anforderer-ID (die Busnummer, Baustein und Funktion enthalten kann) und einen Meldungscode. Die PCIe™-Spezifikation gibt an, dass nicht funktionsspezifische Fehler, die an einem Endpunkt auftreten, in jeder Funktion protokolliert werden, wobei jedoch nur eine Fehlermeldung für jeden aktivierten Schweregrad gesendet wird. Wenn zum Beispiel alle Funktionen so programmiert sind, dass sie den Fehler als fatal behandeln, dann wird nur eine Fataler-Fehler-Meldung gesendet, aber wenn einige Funktionen so programmiert sind, dass sie den Fehler als fatal behandeln, und andere so programmiert sind, dass sie den Fehler als nicht fatal behandeln, dann werden eine Fataler-Fehler- und eine Nicht-Fataler-Fehler-Meldung gesendet. Die folgenden Fehler können nicht funktionsspezifisch sein: nicht unterstützte Anfrage (Unsupported Request (UR)), bei Verursachung durch keine Funktion, die ein Transaktionsschichtpaket (Transaction Layer Packet (TLP)) fordert; unerwartete Ausführung bei Verursachung durch keine Funktion, die eine Ausführung fordert; falsch formatiertes TLP; End-CRC (ECRC)-Scheitern; Empfänger-Overflow; und Ablaufsteuerungsprotokollfehler. Es ist zu beachten, dass in zahlreichen Ausführungsformen die letzten beiden nicht einsetzbar sind. ECRC-Scheitern ist optional und kann nur auftreten, wenn ECRC-Überprüfung aktiviert ist.
  • Die Fehlerlogik 40d der Integrated-Device-Fabric 30 hat die Verantwortung, zu bestimmen, dass eine Transaktion zu einem nichtfunktionsspezifischen Fehler führt. Bei Detektion eines nicht funktionsspezifischen Fehlers wird die IDF an jedem Downstream-Agenten, der Teil der integrierten Einrichtung ist, eine Eingabe mit einem nicht spezifischen Fehlersignal (cmd nfserr) vornehmen. Wenn ein Agent eine Eingabe mit dem behaupteten cmd nfserr empfängt, protokolliert er den Fehler, aber sendet keine Fehlermeldung, selbst wenn er zum Senden einer Meldung konfiguriert ist. MF-Logik 35 ist für das Senden der geeigneten Fehlermeldungen verantwortlich. Ein Single Bit Strap wird in der integrierten Funktion verwendet, um zu wissen, dass sie unter einer Integrated-Device-Fabric angeschlossen ist.
  • Die MF-Logik 35 schattiert die notwendigen Bits von jeder Funktion unter der Integrated-Device-Fabric, die angibt, welchen Schweregradfehler die Funktion für den Fehler melden sollte. In einer Ausführungsform kann eine Tabelle in der Fehlerlogik 40d vorgesehen sein, um anzuzeigen, welche Bits erforderlich sind. Die Integrated-Device-Fabric detektiert somit, dass der Fehler eingetreten ist, und sendet das TLP an alle integrierten Funktionen unter der Integrated-Device-Fabric. Das Rundsenden kann mit einem simultanen ... oder sequentiellen ... an alle Ziele erfolgen. Die MF-Logik wird danach die Schattenkopien der Fehlerkonfigurationsbits überprüfen und die korrekten Fehlermeldungen stromaufwärts (Upstream) senden.
  • Die MF-Logik 35 kann ferner Registerschattenlogik 40a enthalten. Wenn eine Funktion in einem Agenten PCIe™-ARI-Fähigkeit implementiert, dann müssen sie alle ARI implementieren. Jede integrierte Funktion, die die ARI-Fähigkeit implementiert, implementiert ein privates Register mit maximaler Nutzlastgröße, das von dem Konfigurationsregister mit PCIe™-definierter maximaler Nutzlastgröße getrennt ist, und eine Strap-Eingabe (Strap Input), um anzuzeigen, ob die integrierte Funktion in einem Root-Complex oder außerhalb eines Root-Complex instantiiert ist. Dieses Register ist von der Seitenbandmeldungsschnittstelle erreichbar. Wenn die integrierte Funktion benutzt wird, um anzuzeigen, dass sie sich außerhalb des Root-Complex befindet, dann ignorieren alle Funktionen mit einer Funktionsnummer ungleich Null das Register mit PCIe™-spezifikationsdefinierter maximaler Nutzlastgröße und Verwenden das private Register für den maximalen Nutzlastgrößenwert. Es gehört zur Verantwortung der Registerschattenlogik 40a der MF-Logik 30, die Null-Werte für die maximale Nutzlastgröße der Funktionen in den anderen Agenten, die mit der IDF 30 verbunden sind, zu schattieren. Die MF-Logik 35 kann in einigen Ausführungsformen andere Funktionen enthalten. In einer Ausführungsform kann jeder Agent eine Latenzzeitmeldung über den Seitenbandkanal an die Multifunktionslogik senden, die Meldungen aggregiert, die Latenzzeitzahl für den ungünstigsten Fall nimmt und an den virtuellen Port zur Berichterstattung stromaufwärts (upstream) sendet.
  • Nunmehr unter Bezugnahme auf 3 ist dort ein Blockdiagramm eines System-on-Chip (SoC) gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 3 gezeigt ist, kann der SoC 200 ein Einzel-Die-Baustein sein, der zahlreiche Einheiten enthält, die unterschiedliche Funktionen durchführen. Wie in 3 gezeigt ist, kann ein Server Controller Hub (SCH) 210 eine Schnittstelle zu einem Systemcontroller, wie zum Beispiel einer Zentralverarbeitungseinheit (Central Processing Unit (CPU)) oder einer anderen Hauptverarbeitungseinheit, bereitstellen. Über zahlreiche Einstellungen können z. B. Sicherungsauswähleinstellungen, wie z. B. Schmelzverbindungen, die durch Schalter S1 und S2 repräsentiert werden, gesteuert werden, um Koppeln von unterschiedlichen Schaltkreisen mit SCH 210 zu ermöglichen. Wie ersichtlich ist, kann der Schalter S1 eine direkte Kopplung eines virtuellen Ports 220, der ein virtueller Root-Port oder ein virtueller Switch-Port sein kann, direkt mit SCH 210 ermöglichen. Wenn S1 den virtuellen Port 220 mit SCH 210 verbindet, ist der virtuelle Port 220 ein Root-Port. In einer alternativen Konfiguration kann der virtuelle Port 220 mit einer Switch-Fabric (SWF) 270 direkt koppeln. Wenn S1 den virtuellen Port 220 mit SWF 270 verbindet, ist er ein Switch-Port. Der Schalter S2 kann gesteuert werden, um eine Integrated-Device-Fabric 230 mit einer Speichercontrollereinheit (Storage controller unit (SCU)) 260 zu koppeln oder die Kopplung zu deaktivieren.
  • Wie ferner in 3 gezeigt ist, kann die IDF 230 mit einer Schnittstelle 240 gekoppelt sein, die eine Schnittstelle für zahlreiche Off-Chip-Einrichtungen, wie zum Beispiel SMBUS, nichtflüchtiger SRAM, serieller Flash und Ethernet, bereitstellen kann. Ferner kann IDF 230 mit einer SCU 250 koppeln, die auch mit zahlreichen Off-Chip-Einrichtungen, wie zum Beispiel Festplattenlaufwerken oder einem SAS-Netzwerk, koppeln kann. Ferner kann in einer bestimmten Implementierung der Schalter S1 direktes Koppeln des virtuellen Ports 220 mit der Switch-Fabric 270 ermöglichen, die wiederum mit einem Upstream-Switch-Port 280 koppelt, der mit Downstream-Switch-Ports (nicht gezeigt) koppeln kann, die mit einem Off-Chip-Endpunkt koppeln. SoC 200 kann ferner einen Design-for-Test (DFx)-Agenten 290 zur Durchführung von zahlreichen Design-for-Test-Funktionen enthalten. Während sie mit dieser besonderen Implementierung in der Ausführungsform von 3 gezeigt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt.
  • Ausführungsformen können ferner in einem weiteren Systemkontext implementiert werden, wie zum Beispiel einem PCIe™/PCI-System. Unter Bezugnahme auf 4 ist dort ein Blockdiagramm eines Systems 300 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 4 gezeigt ist, kann das System 300 zahlreiche Fabrics zum Koppeln von unterschiedlichen Arten von Funktionen und Einrichtungen mit Upstream-Komponenten, wie zum Beispiel einer Haupt-CPU und einem Speicherkomplex, durch CPU 305 repräsentiert, enthalten. Während sie als ein einzelner Block gezeigt ist, versteht es sich, dass die CPU 305 eine oder mehrere CPUs und lokalen Speicher enthalten kann, die beispielsweise in einer Gruppen- oder Ringtopologie implementiert sein können. Die CPU 305 koppelt mit einer Root Complex-Fabric 310.
  • Root-Complex 310 kann das Root einer IO-Hierarchie kennzeichnen, das die CPU 305 mit dem IO-Subsystem verbindet. Wie ersichtlich, können zahlreiche Einheiten mit dem Root-Complex 310 gekoppelt sein, die Root-Complex-Integrated-Endpunkte 312a - 312n , Root-Ports, die einen physikalischen Root-Port 314 und einen virtuellen Root-Port 330 enthalten, und eine andere derartige Schnittstelle 313 enthalten, die in einer Ausführungsform eine DMI oder DMIc-Schnittstelle sein kann. In der Ausführungsform von 4 können einige dieser Schnittstellen und Ports Off-Die über Cross-Die-Verbindungen 316 und 345 koppeln, während der virtuelle Root-Port 330 On-Die in einer Integrated-Device-Fabric 335 integriert sein kann, die wiederum mit einem integrierten PCIe™-Endpunkt 340 gekoppelt ist, der eine oder mehr integrierte Funktionen 341a - 314n enthält. Somit können sowohl der Root-Port 314 als auch der virtuelle Root-Port 330 für die auf der CPU 305 laufende Software als mit Off-Chip- PCIe™-Einrichtungen gekoppelt erscheinen. Es ist zu beachten, dass die Endpunkte 312a - 312n und Funktionen 341a - 341n für dieselben Regeln entworfen sind, so dass ein Systemintegrator wählen kann, einen Agenten als entweder einen RCintegrierten Endpunkt oder eine integrierte Funktion zu instantiieren, ohne Änderungen an der Implementierung mit wieder verwendbaren Agenten vorzunehmen.
  • Ferner ist in 4 gezeigt, dass eine Cross-Die-Verbindung 316 mit einer weiteren Schnittstelle 317 koppeln kann, die wiederum mit einer Root-Complex-Fabric 320 koppelt, mit der ein oder mehr Root-Complex-Integrated-Endpunkte 322a - 322n gekoppelt sein können.
  • Über die Cross-Die-Verbindung 345 kann eine PCIe™-Multifunktionseinrichtung 350 vorliegen, die auch mit einer Switch-Fabric 360 über einen Switch-Port 352 und eine integrierte Funktion 354 koppeln kann. Die Switch-Fabric 360 kann wiederum mit zahlreichen Downstream-Ports koppeln, die einen Switch-Port 365 und virtuelle Switch-Ports 368a und 368b einschließen. Diese virtuellen Switch-Ports können mit IDFs 370 und 375 koppeln, von denen jede ein oder mehr damit gekoppelte PCIe™-Endpunkte enthalten kann. In der in 4 gezeigten Ausführungsform kann ein PCIe™-Endpunkt 372 eine integrierte Funktion 373 enthalten und kann ein PCIe™-Endpunkt 380 integrierte Funktionen 383a - 383n enthalten. Während sie mit dieser Implementierung in der Ausführungsform von 4 gezeigt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt.
  • Nunmehr unter Bezugnahme auf 5 ist dort ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 5 gezeigt ist, kann das Verfahren 400 in einer Integrated-Device-Fabric zur Handhabung von eintreffenden Meldungen von einer damit gekoppelten Upstream-verbundenen Einrichtung implementiert sein. Wie in 5 gezeigt ist, kann das Verfahren 400 zur Handhabung von eintreffenden Meldungen verwendet werden, die von Upstream-Komponenten, wie zum Beispiel einem virtuellen Port, mit dem die IDF gekoppelt ist, empfangen werden (Block 410).
  • Bei Empfang in der IDF kann eine Meldung, die ein Befehl sein kann, an alle Downstream-Agenten über einen primären Kanal gesendet werden (Block 420). Dann kann die IDF bestimmen, ob sie eine Dekodierbestätigung von einem der Agenten empfängt (Raute 430). Das heißt, dass, wie oben erörtert, eine Übertragung von Meldungen stromabwärts (Downstream) in einem Zwei-Phasen-Prozess stattfinden kann, in dem die Meldung als erstes an alle Agenten gesendet wird, die deren eigenes Zieldekodieren durchführen. Wenn die Meldung nicht für eine der Downstream-Komponenten vorgesehen ist, dann wird eine Fehlermeldung erzeugt und stromaufwärts (Upstream) gesendet (Block 435).
  • Wenn stattdessen eine Zielbestätigung von einem der Agenten empfangen wird, schreitet die Steuerung zu Raute 440, wo bestimmt werden kann, ob der anvisierte Agent Ressourcen zur Handhabung der Meldung aufweist (Raute 440). Falls ja, so schreitet die Steuerung zu Block 450 vor, wo die Meldung mit anderen Meldungen zur Downstream-Übertragung arbitriert werden kann. Danach kann bei Block 460 die Meldung an den anvisierten Agenten gesendet werden. Natürlich können andere Mechanismen zur Handhabung von empfangenen Meldungen in anderen Ausführungsformen verwendet werden. Wie oben erörtert wurde, kann zum Beispiel Adressdekodierung in der Fabric selbst in einigen Implementierungen stattfinden.
  • Nunmehr unter Bezugnahme auf 6 ist dort ein Flussdiagramm eines Verfahrens zur Handhabung von eintreffenden Meldungen von gekoppelten Agenten gezeigt. Wie in 6 gezeigt ist, kann das Verfahren 500 durch Empfang von Seitenbandmeldungen von einem oder mehr Agenten über einen Seitenbandkanal beginnen (Block 510). Zum Beispiel können eintreffende Seitenbandmeldungen an einen Seitenbandendpunkt geliefert werden, der Teil von Multifunktionslogik einer Integrated-Device-Fabric ist. Dieser Endpunkt kann Meldungen zu einer geeigneten Logik in der Multifunktionslogik lenken (Block 520). Zum Beispiel können Fehlermeldungen zu Fehlerlogik gesendet werden, Energiemanagement-Meldungen zu Energiemanagement-Logik gesendet werden und so weiter. Die bestimmte Logik kann dann die empfangenen Meldungen verarbeiten (Block 530). Wie oben erörtert, kann zum Beispiel die Logik eine Aggregation von mehreren Seitenbandmeldungen durchführen, um dadurch eine geeignete aggregierte Meldung für Upstream-Übertragung zu bilden. Wie in 6 gezeigt ist, kann dann die aggregierte Meldung stromaufwärts (Upstream), z. B. zu einem virtuellen Port über den primären Kanal weitergeleitet werden (Block 540).
  • Durch Verwendung von Ausführungsformen der vorliegenden Erfindung kann somit eine Standardlösung zur Implementierung von Agenten realisiert werden, die entweder als Root-Complex-Integrated-Einrichtungen oder als Non-Root-Complex-Integrated-Devices verwendet werden können. Dementsprechend kann die Wiederverwendung von Agenten über zahlreiche Produkte erfolgen, so dass Agenten von einem oder mehr Herstellern in einen Single-Die-IC (Integrated Circuit) eingebaut sein können.
  • Es ist zu beachten, dass die Ausführungsformen für eine identische Integration eines IP-Blocks unter einem PCIe™-Schalter, Switch-Port, PCIe™-Root-Port oder direkt unter einem Root-Complex sorgen. Im Gegensatz dazu dürfen gemäß der PCIe™-Spezifikation Schalter eine Einrichtung nicht auf einem internen Bus integrieren. (Sprache der PCIe™-Spezifikation: „Endpoints (represented by Type ooh Configuration Space headers) must not appear to configuration Software on the Switches internal bus as peers of the virtual PCI-to-PCI Bridges representing the Switch Downstream Ports.“) Wie jedoch in 4 gezeigt ist, kann ein IP-Block als eine Funktion einer integrierten Einrichtung integriert sein, die einen Port stromaufwärts vom Schalter (Switch Upstream Port) enthält. In diesem Fall ist die Switch-Fabric 360 eine einzelne Fabric, die Verkehr für zwei logische PCI-Busse überträgt, die zur primären und sekundären Seite der Upstream-Switch-Port Virtual Peer-to-Peer-Bridge gehören.
  • Die Ausführungsformen können auch voll PCIe™-konform sein, wodurch ermöglicht wird, dass für eine Standardschnittstelle entworfene Agenten innerhalb eines Root-Complex oder in einer integrierten Einrichtung verwendet werden. Außerdem sorgt die Verwendung einer IDF mit Multifunktionslogik gemäß einer Ausführungsform der vorliegenden Erfindung für einen Standardweg zur Handhabung von Interaktionen zwischen Agenten, so dass Agenten von unterschiedlichen Anbietern in einer einzigen Multifunktionseinrichtung miteinander verbunden werden können.
  • Die Ausführungsformen können in Code implementiert und auf einem Speichermedium gespeichert werden, das Anweisungen enthält, die zum Programmieren eines Systems zur Durchführung der Anweisungen verwendet werden können. Das Speichermedium kann, ohne darauf beschränkt zu sein, jeden Typ von Platte, einschließlich Disketten, optische Platten, Solid-State-Laufwerke (Solid-State-Drives (SSDs)), Compact Disk Read-Only Memory (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetooptische Platten, Halbleitereinrichtungen, wie zum Beispiel Nur-Lesespeicher (Read-Only Memories (ROMs)), Direktzugriffsspeicher (Random Access Memories (RAMs)), wie zum Beispiel Dynamic Random Access Memories (DRAMs), Static Random Access Memories (SRAMs), löschbare programmierbare Nur-Lesespeicher (Erasable Programmable Read-Only Memories (EPROMs)), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lesespeicher (Electrically Erasable Programmable Read-Only Memories (EEPROMs)), magnetische oder optische Karten, oder irgendeinen anderen Typ von zur Speicherung von elektronischen Anweisungen geeigneten Medien, einschließen.
  • Während die vorliegende Erfindung unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden ist, werden Fachleute auf dem Gebiet zahlreiche Modifikationen und Abwandlungen davon erkennen. Die beigefügten Ansprüche sollen alle derartigen Modifikationen und Abwandlungen, die in den wahren Geist und Umfang der vorliegenden Erfindung fallen, abdecken.

Claims (22)

  1. Vorrichtung, umfassend: einen virtuellen Port (20), der zwischen einer Upstream-Fabric und einer Integrated-Device-Fabric (30) gekoppelt ist, wobei der virtuelle Port (20) eine Master-Schnittstelle zum Verbinden mit der Upstream-Fabric und eine Zielschnittstelle zum Verbinden mit der Integrated-Device-Fabric (30) enthält; die Integrated-Device-Fabric (30), die eine Multifunktionslogik (35) zum Handhaben von Interrupts, Energiemanagementmeldungen und nicht funktionsspezifischen Fehlermeldungen enthält, wobei die Integrated-Device-Fabric (30) mit mindestens einem Intellectual Property (IP)-Block gekoppelt ist und einen primären Kanal (49a, 49b) zum Kommunizieren von Daten und Befehlsinformation zwischen dem mindestens einen IP-Block und dem virtuellen Port (20) und einen Seitenbandkanal zum Kommunizieren von Seitenbandinformation zwischen dem mindestens einen IP-Block und der Multifunktionslogik (35) aufweist, wobei die Integrated-Device-Fabric (30) eingerichtet ist, einen Befehlsabschnitt einer Meldung an den zumindest einen IP-Block über den primären Kanal zu senden, eine Dekodierbestätigung von einem anvisierten des zumindest einen IP-Blocks zu empfangen, um anzuzeigen, dass die Meldung für den anvisierten IP-Block vorgesehen ist, und zu bestimmen, ob der anvisierte IP-Block verfügbare Ressourcen zum Handhaben der Meldung aufweist, und falls ja, die Meldung an den anvisierten IP-Block zu senden; und den mindestens einen IP-Block zum Durchführen einer Funktion, wobei der virtuelle Port (20), die Integrated-Device-Fabric (30) und der IP-Block auf einem einzigen Halbleiter-Die eingerichtet sind.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Integrated-Device-Fabric (30) mit einer Transaktionsschicht des virtuellen Ports (20) und einer Transaktionsschicht des mindestens einen IP-Blocks ohne Eingriff einer Verbindungsschicht oder einer physikalischen Schicht koppelt.
  3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Multifunktionslogik (35) einen Seitenbandendpunkt (42) zum Kommunizieren mit einem Seitenband-Router (60) über den Seitenbandkanal enthält, wobei der Seitenband-Router (60) ferner mit dem mindestens einen IP-Block gekoppelt ist.
  4. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Integrated-Device-Fabric (30) ferner einen Arbiter (48a, 48b) zum Arbitrieren von Meldungen entlang des primären Kanals (49a, 49b) von dem virtuellen Port (20) zu einer Vielzahl von IP-Blöcken, die mit der Integrated-Device-Fabric (30) gekoppelt sind, enthält.
  5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Multifunktionslogik (35) eine erste Logik zum Detektieren einer nicht funktionsspezifischen Fehlermeldung von der Vielzahl von IP-Blöcken über den Seitenbandkanal und Erzeugen einer Aggregatmeldung zur Übertragung zum virtuellen Port (20) über den primären Kanal enthält.
  6. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Multifunktionslogik (35) eine zweite Logik zum Empfangen einer Energiemanagement-Meldung von dem virtuellen Port (20) über den primären Kanal (49a, 49b) und zum Erzeugen einer Downstream-Energiemanagement- Meldung an die Vielzahl von IP-Blöcken über den Seitenbandkanal enthält.
  7. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Vielzahl von IP-Blöcken heterogene Blöcke sind und dass die Integrated-Device-Fabric (30) zum Standardisieren der Kommunikation zwischen den heterogenen Blöcken und dem virtuellen Port (20) dient.
  8. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass die Integrated-Device-Fabric (30) und die Vielzahl von IP-Blöcken für Software als ein einziger Peripheral Component Interconnect (PCI)-Endpunkt, der über eine PCI-Verbindung gekoppelt ist, erscheint.
  9. Vorrichtung nach Anspruch 1, ferner umfassend eine erste Schmelzverbindung zum Koppeln der Integrated-Device-Fabric (30) mit einer Switch-Fabric über den virtuellen Port (20), wobei der virtuelle Port (20) als ein Switch-Port fungiert, wenn die erste Schmelzverbindung aktiviert ist, und eine zweite Schmelzverbindung zum Koppeln mit der Integrated-Device-Fabric (30) mit einem Hub-Agenten über den virtuellen Port (20), wobei der virtuelle Port (20) als ein Root-Port fungiert, wenn die zweite Schmelzverbindung aktiviert ist.
  10. Verfahren, umfassend: Empfangen (410) einer Meldung in einer Integrated-Device-Fabric von einem mit der Integrated-Device-Fabric gekoppelten virtuellen Port, wobei die Integrated-Device-Fabric eine Multifunktionslogik zum Handhaben von erster Funktionalität für eine Vielzahl von Endpunkteinrichtungen enthält, die Integrated-Device-Fabric mit der Vielzahl von Endpunkteinrichtungen gekoppelt ist und einen primären Kanal zum Kommunizieren von Daten und Befehlsinformation zwischen der Vielzahl von Endpunkteinrichtungen und dem virtuellen Port und einen Seitenbandkanal zum Kommunizieren von Seitenbandinformation zwischen der Vielzahl von Endpunkteinrichtungen und der Multifunktionslogik aufweist; Senden (420) eines Befehlsabschnitts der Meldung an die Vielzahl von mit der Integrated-Device-Fabric gekoppelten Endpunkteinrichtungen über den primären Kanal; Empfangen (430) einer Dekodierbestätigung von einer anvisierten der Vielzahl von Endpunkteinrichtungen, um anzuzeigen, dass die Meldung für die anvisierte Endpunkteinrichtung vorgesehen ist; und Bestimmen (440), ob die anvisierte Endpunkteinrichtung verfügbare Ressourcen zum Handhaben der Meldung aufweist, und falls ja, Senden der Meldung an die anvisierte Endpunkteinrichtung.
  11. Verfahren nach Anspruch 10, ferner umfassend Arbitrieren (450) der Meldung mit anderen Meldungen zur Übertragung an die Vielzahl von Endpunkteinrichtungen.
  12. Verfahren nach Anspruch 10, ferner umfassend Erzeugen (435) einer Fehlermeldung und Senden der Fehlermeldung stromaufwärts (Upstream) an den virtuellen Port, wenn die Integrated-Device-Fabric die Dekodierbestätigung nicht empfängt.
  13. Verfahren nach Anspruch 10, ferner umfassend Koppeln einer Transaktionsschicht des virtuellen Ports mit einer Transaktionsschicht der anvisierten Endpunkteinrichtung ohne Eingriff einer Verbindungsschicht oder einer physikalischen Schicht.
  14. Verfahren nach Anspruch 10, ferner umfassend Empfangen einer Vielzahl von Interrupt-Meldungen in der Multifunktionslogik von mindestens einigen der Endpunkteinrichtungen und Aggregieren der Interrupt-Meldungen in einer an den virtuellen Port zu sendenden Aggregatmeldung.
  15. Verfahren nach Anspruch 10, ferner umfassend Detektieren eines Schreibens in ein Register mit Funktion-Null-Größe auf dem primären Kanal und Schattieren des Schreibens an die Vielzahl von Endpunkteinrichtungen über den Seitenbandkanal.
  16. Verfahren nach Anspruch 13, ferner umfassend Empfangen der Meldung in der Integrated-Device-Fabric und Senden der Meldung an die anvisierte Endpunkteinrichtung ohne Durchführung einer Verbindungsschichtverarbeitung oder physikalischen Schichtverarbeitung.
  17. Verfahren nach Anspruch 10, ferner umfassend Empfangen von nicht funktionsspezifischen Fehlermeldungen von der Vielzahl von Endpunkteinrichtungen in einer ersten Logik der Multifunktionslogik über den Seitenbandkanal und Erzeugen einer Fehlermeldung zur Übertragung an den virtuellen Port über den primären Kanal.
  18. Verfahren nach Anspruch 17, ferner umfassend Empfangen einer Energiemanagement-Meldung von dem virtuellen Port in einer zweiten Logik der Multifunktionslogik über den primären Kanal und Senden einer Downstream-Energiemanagement-Meldung an die Vielzahl von Endpunkteinrichtungen über den Seitenbandkanal.
  19. System, umfassend: einen Prozessor; eine Root-Complex-Fabric, die mit dem Prozessor, einer Vielzahl von integrierten Endpunkteinrichtungen und einem Root-Port gekoppelt ist, wobei der Root-Port mit einer Peripheral Component Interconnect Express (PCIe)-Einrichtung über eine Off-Chip-Verbindung gekoppelt ist, wobei die PCIe-Einrichtung für auf dem Prozessor laufende Software sichtbar ist und der Root-Port und die PCIe-Einrichtung jeweils eine Transaktionsschicht, eine Verbindungsschicht und eine physikalische Schicht enthalten; einen virtuellen Root-Port (20), der mit der Root-Complex-Fabric gekoppelt ist und eine Master-Schnittstelle zum Verbinden mit der Root-Complex-Fabric und eine Zielschnittstelle zum Verbinden mit einer Integrated-Device-Fabric (30) aufweist; und die Integrated-Device-Fabric (30), die mit dem virtuellen Root-Port (20) über eine On-Chip-Verbindung gekoppelt ist und eine Multifunktionslogik (35) zum Handhaben von Interrupts, Energiemanagement-Meldungen und nicht funktionsspezifischen Fehlermeldungen enthält, wobei die Integrated-Device-Fabric (30) mit mindestens einem Agenten (501) gekoppelt ist und einen primären Kanal (49a, 49b) zum Kommunizieren von Daten und Befehlsinformation zwischen dem mindestens einen Agenten (501) und dem virtuellen Root-Port (20) und einen Seitenbandkanal zum Kommunizieren von Seitenbandinformation zwischen dem mindestens einen Agenten (501) und der Multifunktionslogik (35) aufweist, wobei Kommunikation zwischen dem virtuellen Root-Port (20) und dem mindestens einen Agenten (501) auf der Transaktionsschicht ohne Eingriff der Verbindungsschicht oder der physikalischen Schicht erfolgt und der mindestens eine Agent für die auf dem Prozessor laufende Software als eine PCIe-Einrichtung sichtbar ist, die mit dem virtuellen Root-Port (20) über eine Off-Chip-Verbindung gekoppelt ist, wobei die Integrated-Device-Fabric (30) eingerichtet ist, einen Befehlsabschnitt einer Meldung an den zumindest einen Agenten über den primären Kanal zu senden, eine Dekodierbestätigung von einem anvisierten des zumindest einen Agenten zu empfangen, um anzuzeigen, dass die Meldung für den anvisierten Agenten vorgesehen ist, und zu bestimmen, ob der anvisierte Agent verfügbare Ressourcen zum Handhaben der Meldung aufweist, und falls ja, die Meldung an den anvisierten Agenten zu senden.
  20. System nach Anspruch 19, dadurch gekennzeichnet, dass die Multifunktionslogik (35) eine erste Logik zum Empfangen der nicht funktionsspezifischen Fehlermeldungen von einer Vielzahl von Agenten (501) über den Seitenbandkanal (651) und zum Erzeugen einer Fehlermeldung zur Übertragung an den virtuellen Root-Port (20) über den primären Kanal (49a, 49b) enthält.
  21. System nach Anspruch 20, dadurch gekennzeichnet, dass die Multifunktionslogik (35) eine zweite Logik zum Empfangen einer Energiemanagement-Meldung von dem virtuellen Root-Port (20) über den primären Kanal (49a, 49b) und zum Erzeugen einer Dwonstream-Energiemanagement-Meldung an die Vielzahl von Agenten (501) über den Seitenbandkanal (651) enthält.
  22. System nach Anspruch 19, dadurch gekennzeichnet, dass die Multifunktionslogik (35) eine dritte Logik zum Empfangen von Latenzzeittoleranzinformation von der Vielzahl von Agenten (501) und zum Aggregieren von Latenzzeittoleranzinformation in einer an den virtuellen Root-Port (20) zu sendenden Latenzzeitmeldung enthält.
DE112010001469.8T 2009-03-31 2010-03-05 Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen Active DE112010001469B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/415,470 2009-03-31
US12/415,470 US7873068B2 (en) 2009-03-31 2009-03-31 Flexibly integrating endpoint logic into varied platforms
PCT/US2010/026284 WO2010117524A2 (en) 2009-03-31 2010-03-05 Flexibly integrating endpoint logic into varied platforms

Publications (2)

Publication Number Publication Date
DE112010001469T5 DE112010001469T5 (de) 2012-05-16
DE112010001469B4 true DE112010001469B4 (de) 2020-06-18

Family

ID=42784180

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010001469.8T Active DE112010001469B4 (de) 2009-03-31 2010-03-05 Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen

Country Status (4)

Country Link
US (5) US7873068B2 (de)
CN (4) CN103795615B (de)
DE (1) DE112010001469B4 (de)
WO (1) WO2010117524A2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873068B2 (en) * 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8170062B2 (en) 2009-04-29 2012-05-01 Intel Corporation Packetized interface for coupling agents
US8196013B2 (en) 2009-10-23 2012-06-05 Plx Technology, Inc. Supporting global input/output interconnect features on ports of a midpoint device
US8395416B2 (en) * 2010-09-21 2013-03-12 Intel Corporation Incorporating an independent logic block in a system-on-a-chip
US9098438B2 (en) * 2010-09-30 2015-08-04 Texas Instruments Incorporated Synchronized voltage scaling and device calibration
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8929373B2 (en) * 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8711875B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US9100348B2 (en) * 2011-10-03 2015-08-04 Intel Corporation Managing sideband routers in on-die system fabric
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9626207B2 (en) 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9311127B2 (en) 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9805221B2 (en) * 2011-12-21 2017-10-31 Intel Corporation Incorporating access control functionality into a system on a chip (SoC)
US9342393B2 (en) 2011-12-30 2016-05-17 Intel Corporation Early fabric error forwarding
US9077624B2 (en) * 2012-03-07 2015-07-07 International Business Machines Corporation Diagnostics in a distributed fabric system
US9436623B2 (en) 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
US9153867B2 (en) 2012-12-19 2015-10-06 Futurewei Technologies, Inc. Reconfigurable multiband antenna
US9762446B2 (en) 2012-12-28 2017-09-12 Futurewei Technologies Co., Ltd. Methods for dynamic service deployment for virtual/physical multiple device integration
CN104956347B (zh) * 2013-02-28 2018-05-22 英特尔公司 将一种互连协议的枚举和/或配置机制用于不同的互连协议
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
CN104756081B (zh) * 2013-09-11 2016-08-17 华为技术有限公司 一种故障处理的方法、计算机系统和装置
CN104679694B (zh) * 2013-11-28 2017-11-14 英业达科技有限公司 快捷外设互联标准的选择设定系统及微服务器
US9747245B2 (en) 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
US9727679B2 (en) 2014-12-20 2017-08-08 Intel Corporation System on chip configuration metadata
US9984017B2 (en) * 2014-12-27 2018-05-29 Intel Corporation Intelligent network fabric to connect multiple computer nodes with one or more SR-IOV devices
US10210120B2 (en) * 2015-03-26 2019-02-19 Intel Corporation Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
US10157160B2 (en) 2015-06-04 2018-12-18 Intel Corporation Handling a partition reset in a multi-root system
US9990327B2 (en) 2015-06-04 2018-06-05 Intel Corporation Providing multiple roots in a semiconductor device
CN106502941A (zh) * 2016-11-25 2017-03-15 北京兆芯电子科技有限公司 输入输出扩展器、计算机系统以及其配置方法
US10255223B2 (en) 2016-12-05 2019-04-09 International Business Machines Corporation Detecting a type of storage adapter connected and miscabling of a microbay housing the storage adapter
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242353A1 (en) * 2005-04-22 2006-10-26 Ola Torudbakken Virtualized PCI switch
US20080147943A1 (en) * 2006-12-19 2008-06-19 Douglas M Freimuth System and method for migration of a virtual endpoint from one virtual plane to another
US20090077297A1 (en) * 2007-09-14 2009-03-19 Hongxiao Zhao Method and system for dynamically reconfiguring PCIe-cardbus controllers

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6799278B2 (en) * 2000-12-21 2004-09-28 Dell Products, L.P. System and method for processing power management signals in a peer bus architecture
JP3824548B2 (ja) * 2001-12-20 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation 情報処理装置、電源制御装置、情報処理装置制御方法、プログラム、及び記録媒体
US6915365B2 (en) * 2002-03-22 2005-07-05 Intel Corporation Mechanism for PCI I/O-initiated configuration cycles
US7698483B2 (en) * 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US7953074B2 (en) * 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7778245B2 (en) * 2003-11-10 2010-08-17 Broadcom Corporation Method and apparatus for remapping module identifiers and substituting ports in network devices
US20050132095A1 (en) * 2003-12-10 2005-06-16 Collins David L. Method and apparatus for controlling peripheral devices in a computer system
US7411591B2 (en) * 2003-12-24 2008-08-12 Intel Corporation Graphics memory switch
US20050270988A1 (en) * 2004-06-04 2005-12-08 Dehaemer Eric Mechanism of dynamic upstream port selection in a PCI express switch
US7552242B2 (en) * 2004-12-03 2009-06-23 Intel Corporation Integrated circuit having processor and switch capabilities
US7650275B2 (en) * 2005-01-20 2010-01-19 Hewlett-Packard Development Company, L.P. Virtualization of a parition based on addresses of an I/O adapter within an external emulation unit
US7260664B2 (en) * 2005-02-25 2007-08-21 International Business Machines Corporation Interrupt mechanism on an IO adapter that supports virtualization
US7516263B2 (en) * 2006-02-27 2009-04-07 Emerson Network Power - Embedded Computing, Inc. Re-configurable PCI-Express switching device
US7865654B2 (en) * 2006-02-28 2011-01-04 Emulex Design And Manufacturing Corporation Programmable bridge header structures
US7743197B2 (en) * 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
JP4810349B2 (ja) * 2006-08-11 2011-11-09 日本電気株式会社 I/o装置及び方法
US7814371B2 (en) * 2006-09-27 2010-10-12 Intel Corporation Apparatus and method for point-to-point interconnect testing
US7574551B2 (en) * 2007-03-23 2009-08-11 International Business Machines Corporation Operating PCI express resources in a logically partitioned computing system
US7730361B2 (en) * 2007-03-30 2010-06-01 Texas Instruments Incorporated Aggregation of error messaging in multifunction PCI express devices
US20080263248A1 (en) * 2007-04-20 2008-10-23 Harriman David J Multi-drop extension for a communication protocol
US20080301350A1 (en) * 2007-05-31 2008-12-04 Larson Chad J Method for Reassigning Root Complex Resources in a Multi-Root PCI-Express System
US20090063894A1 (en) * 2007-08-29 2009-03-05 Billau Ronald L Autonomic PCI Express Hardware Detection and Failover Mechanism
JP2009210448A (ja) * 2008-03-05 2009-09-17 Toshiba Corp 半導体装置
US7707346B2 (en) * 2008-03-12 2010-04-27 Lsi Corporation PCI express multi-root IOV endpoint retry buffer controller
JP5182771B2 (ja) * 2008-04-02 2013-04-17 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 共有i/oにおけるリセットの変換
CN101262439A (zh) * 2008-04-21 2008-09-10 湖北融合通信技术有限公司 一种多业务路由器
US7743189B2 (en) * 2008-05-05 2010-06-22 International Business Machines Corporation PCI function south-side data management
US20090292854A1 (en) * 2008-05-22 2009-11-26 Khoo Ken Use of bond option to alternate between pci configuration space
US8595343B2 (en) * 2008-11-14 2013-11-26 Dell Products, Lp System and method for sharing storage resources
US8838867B2 (en) * 2008-12-24 2014-09-16 Nuon, Inc. Software-based virtual PCI system
JP5310175B2 (ja) * 2009-03-25 2013-10-09 富士通株式会社 スイッチシステム、及びスイッチシステムの制御方法
US7873068B2 (en) * 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242353A1 (en) * 2005-04-22 2006-10-26 Ola Torudbakken Virtualized PCI switch
US20080147943A1 (en) * 2006-12-19 2008-06-19 Douglas M Freimuth System and method for migration of a virtual endpoint from one virtual plane to another
US20090077297A1 (en) * 2007-09-14 2009-03-19 Hongxiao Zhao Method and system for dynamically reconfiguring PCIe-cardbus controllers

Also Published As

Publication number Publication date
CN101873339A (zh) 2010-10-27
US8537820B2 (en) 2013-09-17
US8831029B2 (en) 2014-09-09
CN103297330B (zh) 2016-09-28
US8537848B2 (en) 2013-09-17
US20100246594A1 (en) 2010-09-30
WO2010117524A3 (en) 2011-01-13
CN103297330A (zh) 2013-09-11
CN102326362B (zh) 2014-04-02
US9122811B2 (en) 2015-09-01
US20110131456A1 (en) 2011-06-02
US20110080920A1 (en) 2011-04-07
US20110131362A1 (en) 2011-06-02
DE112010001469T5 (de) 2012-05-16
WO2010117524A2 (en) 2010-10-14
US7873068B2 (en) 2011-01-18
CN101873339B (zh) 2013-05-15
US20140052889A1 (en) 2014-02-20
CN103795615B (zh) 2017-04-12
CN103795615A (zh) 2014-05-14
CN102326362A (zh) 2012-01-18

Similar Documents

Publication Publication Date Title
US9798556B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
DE102018214774A1 (de) Technologien zum dynamischen Managen der Zuverlässigkeit disaggregierter Betriebsmittel in einem gemanagten Knoten
CN104426814B (zh) Numa节点外围交换机
US8995302B1 (en) Method and apparatus for translated routing in an interconnect switch
DE112011101705B4 (de) Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung
US6684343B1 (en) Managing operations of a computer system having a plurality of partitions
DE69334172T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69829584T2 (de) Lokalisierung von endgeräten und servern
US8144582B2 (en) Differentiating blade destination and traffic types in a multi-root PCIe environment
DE112013004094B4 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US8924688B2 (en) Plural processing cores communicating packets with external port via parallel bus to serial converter and switch with protocol translation and QOS
US7363404B2 (en) Creation and management of destination ID routing structures in multi-host PCI topologies
US8359408B2 (en) Enabling functional dependency in a multi-function device
US8341327B2 (en) Computer system and method for sharing PCI devices thereof
US8103810B2 (en) Native and non-native I/O virtualization in a single adapter
DE202016008869U1 (de) Mehrschichtige Dienstgüte (Quality of Service, QoS) für Plattformen zur Virtualisierung von Netzwerkfunktionen
CN101763331B (zh) 一种实现i2c总线控制的系统及方法
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US6973517B1 (en) Partition formation using microprocessors in a multiprocessor computer system
CN100413274C (zh) 高级切换对等协议
US7907604B2 (en) Creation and management of routing table for PCI bus address based routing with integrated DID
DE10392279B4 (de) Kommunikationsbrücke zwischen einem Fahrzeuginformationsnetz und einem Fernsystem
US7934033B2 (en) PCI-express function proxy
US6889253B2 (en) Cluster resource action in clustered computer system incorporation prepare operation
US6961761B2 (en) System and method for partitioning a computer system into domains

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division