DE112013000808T5 - Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten - Google Patents

Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten Download PDF

Info

Publication number
DE112013000808T5
DE112013000808T5 DE112013000808.4T DE112013000808T DE112013000808T5 DE 112013000808 T5 DE112013000808 T5 DE 112013000808T5 DE 112013000808 T DE112013000808 T DE 112013000808T DE 112013000808 T5 DE112013000808 T5 DE 112013000808T5
Authority
DE
Germany
Prior art keywords
pcie
address
endpoint
destination
function information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112013000808.4T
Other languages
English (en)
Inventor
c/o IBM Israel Haifa University Granovsky Ilya
c/o IBM Israel Aba Hushi Av. Haifa Adar Etai
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013000808T5 publication Critical patent/DE112013000808T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/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 OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Vorrichtung und Verfahren zur schnellen Decodierung von Adressen von PCIe-Multifunktionseinheiten unter Nutzung einer Suchtabelle mit Zielfunktionsdaten. Eine oder mehrere Decodierrichtlinien (z. B. geplante Funktion) werden im Kopf des PCIe-Anforderungspakets bereitgestellt, wodurch die Notwendigkeit beseitigt wird, während des Decodierprozesses im Endpunkt nach der Zielfunktion zu suchen. Dies ermöglicht in komplexen Multifunktionseinheiten die Realisierung der Decodierung in einem einzigen Decodierer mit einem einzigen Schritt.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Datenübertragung und insbesondere eine Vorrichtung und ein Verfahren zur schnellen Decodierung von Adressen von PCIe-Multifunktionseinheiten, wobei eine Zielfunktions-Suchtabelle verwendet wird.
  • HINTERGRUND DER ERFINDUNG
  • Peripheral Component Interconnect Express (PCIe) ist ein Standard für Computer-Erweiterungskarten, der als Ersatz für ältere PCI-, PCI-X- und AGP-Busstandards entwickelt wurde. Neueste Versionen des PCIe-Standards unterstützen die Virtualisierung von Hardware-E/As. PCIe beruht auf einer Punkt-zu-Punkt-Topologie mit getrennten seriellen Verbindungen, über die jede Einheit mit dem Stammkomplex (Host) verbunden ist. Eine PCIe-Busverbindung unterstützt die Vollduplex-Datenübertragung zwischen beliebigen zwei Endpunkten ohne Begrenzung des gleichzeitigen Zugriffs auf mehrere Endpunkte. Die PCIe-Datenübertragung ist in Pakete eingebettet, wobei die Arbeit des Paketierens und Entpaketierens von Daten- und Statusmeldungsverkehr durch die Transaktionsschicht des PCIe-Anschlusses abgewickelt wird.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Daher wird gemäß der Erfindung ein Verfahren zum Decodieren von PCI-Express-Adressen (PCIe-Adressen) bereitgestellt, wobei das Verfahren aufweist das Bereitstellen einer Suchtabelle in einem PCIe-Host, wobei die Suchtabelle betriebsfähig ist, um ein Zuordnen aus einem Adressbereich zu einer Zielfunktion durchzuführen und die Suchtabelle zu nutzen, das Senden einer Adresse und einer vorgeschlagenen Zielfunktion an einem PCIe-Endpunkt, das Decodieren der empfangenen Adresse am PCIe-Endpunkt unter Nutzung der vorgeschlagenen Zielfunktion und das Überprüfen von Informationen vorgeschlagener Zielfunktionen.
  • Außerdem wird gemäß der Erfindung ein Verfahren zum Decodieren von PCI-Express-Adressen (PCIe-Adressen) zur Verwendung in einem PCIe-Host bereitgestellt, wobei das Verfahren aufweist das Empfangen von PCIe-Anforderungen, die jeweils eine Adresse aufweisen, das Ermitteln einer Zieleinheitenfunktion gemäß jeder Adresse und das Zuweisen der Zielfunktionen zu Anforderungen, die an die PCIe-Endpunkte ausgegeben werden.
  • Ferner wird gemäß der Erfindung ein Verfahren zum Decodieren von PCI-Express-Adressen (PCIe-Adressen) zur Verwendung in einem PCIe-Host bereitgestellt, wobei das Verfahren das Durchsuchen von PCIe-Einheiten und -funktionen während einer PCIe-Bus-Initialisierungsphase aufweist, das Zuweisen von Adressbereichen zu Funktionen und das Aufbauen einer Suchtabelle, die die Adressbereiche den Zielfunktionen zuordnet.
  • Außerdem wird gemäß der Erfindung ein Verfahren zum Decodieren von PCI-Express-Adressen (PCIe-Adressen) zur Verwendung in einem PCIe-Endpunkt bereitgestellt, wobei das Verfahren das Empfangen eines Lese-/Schreibanforderungspakets von einem PCIe-Host aufweist, das Ermitteln, ob das Anforderungspaket Daten empfohlener Zielfunktionen aufweist, und wenn dies der Fall ist, das Validieren der in dem Paket empfangenen Zielfunktionsdaten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung wird hierin lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, wobei:
  • 1 ein Blockschema ist, das ein beispielhaftes PCIe-Netzwerk mit einem Mechanismus zur schnellen Decodierung von PCIe-Adressen der vorliegenden Erfindung veranschaulicht;
  • 2 eine schematische Darstellung ist, die einen ersten beispielhaften parallelen Ansatz zur Adressdecodierung in einem PCIe-Endpunkt veranschaulicht;
  • 3 eine schematische Darstellung ist, die einen zweiten beispielhaften sequenziellen Ansatz zur Adressdecodierung in einem PCIe-Endpunkt veranschaulicht;
  • 4 eine schematische Darstellung ist, die einen dritten beispielhaften Ansatz mit parallelen Decodierdaten veranschaulicht, um Adressen in einem PCIe-Endpunkt zu decodieren; und
  • 5 ein Flussdiagramm ist, das das Verfahren der vorliegenden Erfindung zur schnellen Decodierung von PCIe-Adressen veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Neueste Erweiterungen des PCI-Express-Standards (PCIe-Standard) wie zum Beispiel Alternate RequestorID Interpretation (ARI) und Single Root I/O Virtualization (SR-IOV) ermöglichen einen höheren Grad der Integration von Multifunktionsanwendungen in einer einzigen PCIe-Einheit. Derartige Anwendungen nutzen eine übliche PCIe-Verbindung zum Host, die von verschiedenen Funktionen gemeinsam genutzt wird, die auf der Einheit realisiert sind. Eine Systemansicht, die ein beispielhaftes PCIe-Netzwerk mit einem Mechanismus zur schnellen Decodierung von PCIe-Adressen der vorliegenden Erfindung veranschaulicht, ist in 1 dargestellt.
  • Das System, das allgemein mit 10 bezeichnet ist, weist einen PCI-Host 12, einen PCIe-Switch 22 und eine Vielzahl von PCIe-Endpunkten 24 auf. Der PCIe-Switch 22 ist über PCIe-Verbindungen 20 mit dem PCIe-Host und den Endpunkten verbunden. Der PCIe-Host 12 weist einen oder mehrere Prozessorkerne 14 und einen PCIe-Stammkomplex 16 auf, der eine Tabelle 18 mit Zuordnungen zwischen Adressen und Funktionen aufweist. Die PCIe-Endpunkte 24 weisen eine Adressdecodierschaltung 26, eine Vielzahl von Funktionen 0, 1, ... N 28 und eine Vielzahl von Konfigurationsräumen 29 auf.
  • Jede Funktion 28 realisiert ihre eigene PCIe-Konfiguration 29 durch Bereitstellen von Standardmitteln zur Steuerung der Arbeitsweise einer Funktion. Ein großer Teil der Konfigurationsraumlogik einer Funktion ist speziell zur Konfiguration und Steuerung von Adressregionen vorgesehen, die dieser Funktion zugeordnet sind. Jede eingehende Transaktion durchläuft eine Adressdecodierlogik, um die Zieleinheit zu ermitteln. Der PCIe-Standard lässt eine erhebliche Flexibilität bei der Zuordnung und Programmierung von Adressräumen zu, was zu einer komplexen Adressdecodierlogik führt, die für jede Funktion erforderlich ist.
  • Mit dem höheren Grad der Integration mehrerer Funktionen entstehen für Logikentwickler Probleme bei der Realisierung einer schnellen und effizienten Adressdecodierung. Ein Ansatz besteht darin, eine parallele Decodierung durchzuführen, wie in 2 dargestellt. Das parallele Schema, das allgemein mit 30 bezeichnet ist, weist eine Vielzahl von Konfigurationsräumen F0, F1, ..., Fn 34, BAR-Decodierern 32 (BAR = Base Address Register, Basisadressregister) und RX-Adressinformationen 38 (RX = Receiver, Empfänger) auf. Die RX-Adresse wird parallel auf alle BAR-Decodierer gleichzeitig angewendet, um eine decodierte Funktion/ein decodiertes BAR 36 zu erzeugen.
  • Bei dem Ansatz mit der parallelen Decodierung realisiert die PCI-Endpunkteinheit für jede Funktion eine speziell vorgesehene Decodierlogik (BAR-Decodierer). Die Adressdecodierung wird bei allen Funktionen in einer einzigen Einheit parallel ausgeführt. Dieser Ansatz erfordert die Verwendung zahlreicher Decodierlogikinstanzen, was zu einer sehr großen Decodierlogik mit möglichen Problemen bei der Steuerung der Signalweiterleitung führt.
  • Ein zweiter Ansatz besteht darin, eine sequenzielle Adressdecodierung durchzuführen, wie in 3 dargestellt. Das sequenzielle Schema, das allgemein mit 40 bezeichnet ist, weist eine Vielzahl von Konfigurationsräumen F0, F1, ..., Fn 46, einen seriellen BAR-Auswahlmultiplexer 44 und einen BAR-Decodierer 42 auf. Der serielle BAR-Auswahlmultiplexer empfängt die Daten von den Konfigurationsräumen 46 und einer Auswahlsteuerung 52. Die BAR-Decodiererschaltung 42 empfängt die RX-Adressinformationen 48, die im Lese-/Schreibanforderungspaket und in der Ausgabe des seriellen BAR-Auswahlmultiplexers empfangen wurden, und ist betriebsfähig, um die decodierte Funktion/das decodierte BAR 50 zu erzeugen. Der serielle BAR-Auswahlmultiplexer wählt nacheinander alle Konfigurationsraumdaten der Funktion zum Abgleichen durch den BAR-Decodierer 42 aus.
  • Bei dem Ansatz mit der sequenziellen Decodierung führt der Endpunkt für jede unterstützte Funktion eine Adressdecodierung durch, bis die Zielfunktion erkannt wurde. Die Adressdecodierung wird unter Verwendung eines einzigen, gemeinsam genutzten Adressdecodierers 42 durchgeführt. Die Adressdecodierung wird in mehreren Schritten ausgeführt, wobei in jedem Schritt eine der Funktionen ihre Adresskonfiguration 46 in den Decodierer lädt und die Ergebnisse der Decodierung ausgewertet werden. Der Decodierablauf stoppt, wenn eine positive Decodierung festgestellt wurde. Obwohl dieser Ansatz minimale Logikressourcen nutzt, erfordert er erhebliche Latenzen bei der Decodierung, was zu einer Verschlechterung der Bandbreite führt.
  • Bei einem dritten Ansatz werden im Kopf der PCIe-Anforderung eine oder mehrere Decodierrichtlinien (z. B. geplante Funktion) bereitgestellt, wodurch die Notwendigkeit beseitigt wird, während des Decodierprozesses im Endpunkt nach der Zielfunktion zu suchen. Dies ermöglicht in komplexen Multifunktionseinheiten die Realisierung der Decodierung in einem einzigen Decodierer mit einem einzigen Schritt.
  • Eine schematische Darstellung zur Veranschaulichung eines dritten beispielhaften Ansatzes mit parallelen Decodierdaten, um Adressen in einem PCIe-Endpunkt zu decodieren, ist in 4 abgebildet. Das Decodierdatenschema, das allgemein mit 60 bezeichnet ist, weist eine Vielzahl von Konfigurationsräumen F0, F1, ..., Fn 66, einen BAR-Auswahlmultiplexer 64 und einen BAR-Decodierer 62 auf. Der BAR-Auswahlmultiplexer empfängt Daten von den Konfigurationsräumen 66 und wählt unter Verwendung erweiterter Decodierdaten 70, die vom Host empfangen wurden, direkt eine der Adresskonfigurationen aus. Die BAR-Decodiererschaltung 62 empfängt die RX-Adressinformationen 68, die im Lese-/Schreibanforderungspaket und in der Ausgabe des seriellen BAR-Auswahlmultiplexers 64 empfangen wurden, und ist betriebsfähig, um die bestätigte (bzw. validierte) Funktion/das bestätigte (bzw. validierte) BAR 72 zu erzeugen. Der BAR-Auswahlmultiplexer wählt die Konfigurationsraumdaten der Funktion zum Abgleichen (Validieren) durch den BAR-Decodierer 62 aus.
  • Bei einer Ausführungsform weist der PCIe-Host (oder ein beliebiger anderer Anforderer) gemäß dem Decodierdatenmechanismus Zielfunktionsdaten in dem PCIe-Anforderungspaket auf. PCIe-Funktionen in den Endpunkten realisieren Konfigurationsraumfähigkeiten, die eine Kontrolle über die Verwendung von Decodierinformationen der Zielfunktion in den Anforderungen bereitstellen. Zu beachten ist, dass dieses Merkmal optional sein kann. Daher ignorieren Einheiten, die den Decodierdatenmechanismus realisieren, einfach Zielfunktionsdaten in dem Lese-/Schreibanforderungspaket und führen eine Adressdecodierung entweder unter Verwendung des oben beschriebenen parallelen oder sequenziellen Schemas durch.
  • Ein Flussdiagramm, das das Verfahren der vorliegenden Erfindung zur schnellen Decodierung von PCIe-Adressen veranschaulicht, ist in 5 dargestellt. Die PCIe-Endpunkteinheit empfängt eine PCIe-Lese-/Schreibanforderung (Schritt 80). Die Inhalte des Pakets werden anschließend wie normalerweise üblich validiert (Schritt 82). Der PCIe-Endpunkt prüft, ob Zielfunktionsdaten in dem Anforderungspaket enthalten sind (Schritt 84).
  • Der PCIe-Endpunkt prüft anschließend, ob die Verwendung von Zielfunktionsdaten aktiviert ist (Schritt 86). Zu beachten ist, dass das Decodierdatenmerkmal durch Setzen eines Merkers im Konfigurationsraum der Einheit gesteuert werden kann. Wenn keine Zielfunktionsdaten im Anforderungspaket enthalten sind oder die Verwendung von Zielfunktionsdaten im Konfigurationsraum der Einheit nicht aktiviert ist, führt die Endpunkteinheit unter Verwendung des oben beschriebenen parallelen oder sequenziellen Schemas einen Adressdecodierablauf durch (beim sequenziellen Schema führt der Endpunkt z. B. für jede unterstützte Funktion eine Adressdecodierung durch, bis die Zielfunktion erkannt wurde) (Schritt 92).
  • Wenn Zielfunktionsdaten im Anforderungspaket vorliegen und die Verwendung von Zielfunktionsdaten im Konfigurationsraum der Einheit aktiviert ist, prüft die Endpunkteinheit, ob die Anforderungsadresse mit einem der Adressbereiche der vorgeschlagenen Zielfunktion übereinstimmt (Schritt 88). Wenn der Adressbereich der Zielfunktion positiv decodiert wurde, ist die Adressdecodierung validiert und abgeschlossen (Schritt 90). Wenn der Adressbereich nicht innerhalb der decodierten Funktionsadresse der Konfiguration liegt, kann der Einheitenendpunkt weitere Schritte unternehmen, einschließlich beispielsweise der Meldung eines Fehlers wegen falscher Verwendung von Zielfunktionsdaten oder wegen des Versuchs einer parallelen oder sequenziellen Adressdecodierung.
  • Angemerkt wird, dass es nicht entscheidend ist, wie der PCIe-Host die Zuordnung zwischen Adressbereich und Zielfunktionsdaten durchführt und wie die Zielfunktionsinformationen zu den Endpunkten übertragen werden. Bei einer Ausführungsform erzeugt der Auslöser der Anforderung (z. B. der PCIe-Host) während der Initialisierungsphase des PCIe-Busses eine Zuordnung zwischen PCIe-Adressbereichen und Zieleinheiten/-funktionen. Während dieser Initialisierungsphase durchsucht eine Host-Software alle PCIe-Einheiten und -funktionen, indem sie den Bedarf hinsichtlich ihrer Adressbereiche abfragt und anschließend Adressbereiche zuweist. Während dieser Phase wird im Host eine Tabelle mit Verknüpfungen zwischen Adressbereichen und Zielfunktionen aufgebaut. Diese Suchtabelle wird anschließend verwendet, um Anforderungen, die an PCIe-Endpunkte ausgegeben werden, Zielfunktionsattribute zuzuweisen.
  • Die Zielfunktionsdaten werden in einer beliebigen geeigneten Weise in die PCIe-Anforderung eingebettet, wobei nachstehend verschiedene mögliche Beispiele vorgestellt werden.
  • Bei einem ersten Schema sind vollständige Zielfunktionsdaten oder ein Teil davon in Bits des Kopfes der PCIe-Anforderung enthalten, die normalerweise reserviert sind. Bei einem zweiten Schema wird ein Mechanismus zur Erweiterung des PCIe-Kopfes verwendet, um Decodierdaten von Funktionen aufzunehmen. Bei einem dritten Schema sind Zielfunktionsdaten in Nutzdaten enthalten, wobei ein festgelegtes Kopffeld das Vorhandensein von Zieldaten in den Nutzdaten anzeigt. Bei einem vierten Schema werden ECRC-Metadaten (ECAC = End-to-End Cyclic Redundancy Check), die am Ende des Anforderungspakets enthalten sind, durch Zieldaten ersetzt.
  • Nachstehend folgt eine Beschreibung eines beispielhaften Verfahrens zum Aufbauen der Suchtabelle des Stammanschlusses und Ermitteln der Anzahl von Zielfunktionen. Bei einer Ausführungsform realisiert der Stammanschluss eine Suchtabelle mit fester Größe, die für eine Teilmenge von Adressbereichen mit kritischen Ansprüchen an die Latenz Umsetzungen zwischen Adressen und Funktionsanzahl enthält. Anforderungen bezüglich anderer Funktionen werden ohne Funktionsdecodierung gesendet. Zu beachten ist, dass dies zu höheren Latenzen bei der Verarbeitung führen kann, da der sequenzielle Decodierpfad durchlaufen wird.
  • Als Erstes durchsucht die Host-Software alle Konfigurationsräume von PCIe-Einheiten nach einem Bedarf hinsichtlich der Adressbereiche (z. B. nach der Anzahl von Bereichen jeder Einheit/Funktion und der Bereichsgröße). Zu beachten ist, dass dies normalerweise eine Standardverfahrensweise bei PCIe ist. Als Zweites erzeugt die Host-Software eine Speicherzuordnung, indem sie Einheiten/Funktionen Adressbereiche zuweist und Basisadresswerte in Konfigurationsräume von Funktionen schreibt. Als Drittes erzeugt die Host-Software, während PCIe-Bereiche zugewiesen werden, für alle PCIe-Bereiche eine vollständige Tabelle mit Zuordnungen zwischen Adressen und Funktionen, während PCIe-Bereiche zugewiesen werden. Diese Tabelle wird im Hauptspeicher gespeichert.
  • Als Nächstes initialisiert die Host-Software die Stammanschluss-Zuordnungstabelle mit den Zuordnungen zwischen Adresse und Funktionsanzahl für Funktionen mit kritischem Betriebsverhalten. Diese Tabelle kann während des laufenden Betriebs aktualisiert/neu geladen werden, um Änderungen von Systemanforderungen zu unterstützen. Als Nächstes kann die Stammanschluss-Zuordnungstabelle als lokaler Cache-Zwischenspeicher dienen. Wenn eine Anforderung zum Beispiel keine Funktionsinformationen in der Stammanschluss-Zuordnungstabelle findet, wird ihre Adresse erfasst, und die Softwareroutine wird aufgerufen, um zu ermitteln, ob die Verfügbarkeit einer Umsetzung für diese Art von Anforderung von entscheidender Bedeutung ist. Wenn die Software oder ein anderer Mechanismus entscheidet, dass eine Umsetzung benötigt wird, werden Funktionsinformationen aus der Zuordnungstabelle im Hauptspeicher abgerufen und in der lokalen Stammanschlusstabelle gespeichert. Bei einer vollen Tabelle kann einer der bestehenden Einträge gelöscht werden.
  • Bei einer Ausführungsform weist die Struktur der Einträge der Stammanschluss-Suchtabelle Folgendes auf: (1) ein Gültig-Bit; (2) die Basisadresse (z. B. bis zu 64 Bits); (3) eine Bereichsgröße, die systemabhängig ist und zur Anzeige des log2-Wertes der Bereichsgröße dient (wobei vorausgesetzt wird, dass Bereiche stets als Zweierpotenz angegeben sind); und (4) die Zielfunktionsinformationen (z. B. bis zu 16 Bits).
  • Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Erfindung gedacht. Die im vorliegenden Dokument verwendeten Einzahlformen „ein/eine” und „der/die/das” schließen auch die Pluralformen ein, sofern dies im Kontext nicht ausdrücklich anderweitig angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „weist auf” und/oder „aufweisend” bei Verwendung in der vorliegenden Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Elemente und/oder Komponenten bezeichnen, aber das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Step plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zur Ausführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung der vorliegenden Erfindung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht als erschöpfend gedacht oder auf die Erfindung in der offenbarten Form beschränkt. Da für den Fachmann ohne Weiteres zahlreiche Modifikationen und Veränderungen denkbar sind, versteht es sich, dass die Erfindung nicht auf die begrenzte Anzahl von hierin beschriebenen Ausführungsformen beschränkt ist. Dementsprechend wird klar sein, dass alle vorgenommenen geeigneten Variationen, Modifikationen und Äquivalente in den Schutzbereich der vorliegenden Erfindung fallen. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Erfindung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis für verschiedene Ausführungsformen mit verschiedenen Abänderungen für die betreffende betrachtete Verwendung zu ermöglichen.

Claims (15)

  1. Verfahren zum Decodieren von PCI-Express-Adressen (PCIe-Adressen), wobei das Verfahren in einem PCIe-Host aufweist: Empfangen von PCIe-Anforderungen, die jeweils eine Adresse aufweisen; Ermitteln einer Zieleinheitenfunktion gemäß jeder Adresse; und Zuweisen der Zielfunktionen zu Anforderungen, die an PCIe-Endpunkte ausgegeben werden.
  2. Verfahren nach Anspruch 1, wobei das Verfahren in einem PCIe-Host aufweist: Durchsuchen von PCIe-Einheiten und -funktionen während einer PCIe-Bus-Initialisierungsphase; Zuweisen von Adressbereichen zu Funktionen; und Aufbauen einer Suchtabelle, die die Adressbereiche den Zielfunktionen zuordnet.
  3. Verfahren nach Anspruch 2, ferner aufweisend das Nutzen der Suchtabelle, um gemäß einer PCI-Anforderungsadresse eine Zieleinheitenfunktion zu ermitteln.
  4. Verfahren nach Anspruch 3, ferner aufweisend das Senden eines PCIe-Lese-/Schreibanforderungspakets an einen PCIe-Endpunkt, das die Anforderungsadresse und die Zielfunktionsinformationen enthält.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren in einem PCIe-Endpunkt aufweist: Empfangen eines Lese-/Schreibanforderungspakets von einem PCIe-Host; Ermitteln, ob das Anforderungspaket Daten empfohlener Zielfunktionen aufweist; und wenn dies der Fall ist, Validieren der in dem Paket empfangenen Zielfunktionsdaten.
  6. Verfahren nach Anspruch 5, wobei die Zielfunktionsdaten anhand von Inhalten von Basisadressregistern (BAR-Inhalten) validiert werden.
  7. Verfahren nach Anspruch 5, wobei die Zielfunktionsinformationen unter Verwendung von normalerweise reservierten Kopf-Bits zum Endpunkt übertragen werden.
  8. Verfahren nach Anspruch 5, wobei die Zielfunktionsinformationen unter Verwendung einer Erweiterung des PCIe-Kopfes zum Endpunkt übertragen werden.
  9. Verfahren nach Anspruch 5, wobei die Zielfunktionsinformationen zum Endpunkt innerhalb von Nutzdaten mit einem Feld in einem entsprechenden Kopf übertragen werden, der das Vorhandensein von Zielfunktionsinformationen in den Nutzdaten anzeigt.
  10. Verfahren nach Anspruch 14, wobei die Zielfunktionsinformationen anstelle von ECRC-Metadaten (ECRC = End-to-end Cyclic Redundancy Checking), die normalerweise am Ende des Pakets enthalten sind, zum Endpunkt übertragen werden.
  11. Verfahren nach Anspruch 1, wobei das Verfahren aufweist: Bereitstellen einer Suchtabelle in einem PCIe-Host, wobei die Suchtabelle betriebsfähig ist, um ein Zuordnen aus einem Adressbereich zu einer Zielfunktion durchzuführen; und unter Nutzung der Suchtabelle Senden einer Adresse und einer vorgeschlagenen Zielfunktion an einem PCIe-Endpunkt; Decodieren der empfangenen Adresse am PCIe-Endpunkt unter Nutzung der vorgeschlagenen Zielfunktion; und Überprüfen von Informationen vorgeschlagener Zielfunktionen.
  12. Verfahren nach Anspruch 1 oder 11, wobei die Zielfunktionsinformationen unter Verwendung von normalerweise reservierten Kopf-Bits zum Endpunkt übertragen werden.
  13. Verfahren nach Anspruch 1 oder 11, wobei die Zielfunktionsinformationen unter Verwendung einer Erweiterung des PCIe-Kopfes zum Endpunkt übertragen werden.
  14. Verfahren nach Anspruch 1 oder 11, wobei die Zielfunktionsinformationen zum Endpunkt innerhalb von Nutzdaten mit einem Feld in einem entsprechenden Kopf übertragen werden, der das Vorhandensein von Zielfunktionsinformationen in den Nutzdaten anzeigt.
  15. Verfahren nach Anspruch 14, wobei die Zielfunktionsinformationen anstelle von ECRC-Metadaten (ECRC = End-to-end Cyclic Redundancy Checking), die normalerweise am Ende des Pakets enthalten sind, zum Endpunkt übertragen werden.
DE112013000808.4T 2012-03-02 2013-02-25 Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten Pending DE112013000808T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/411,203 2012-03-02
US13/411,203 US9032102B2 (en) 2012-03-02 2012-03-02 Decode data for fast PCI express multi-function device address decode
PCT/IB2013/051507 WO2013128362A1 (en) 2012-03-02 2013-02-25 Decode data for fast pci express multi-function device address decode

Publications (1)

Publication Number Publication Date
DE112013000808T5 true DE112013000808T5 (de) 2014-10-09

Family

ID=49043493

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000808.4T Pending DE112013000808T5 (de) 2012-03-02 2013-02-25 Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten

Country Status (5)

Country Link
US (1) US9032102B2 (de)
CN (1) CN104169897B (de)
DE (1) DE112013000808T5 (de)
GB (1) GB2515928B (de)
WO (1) WO2013128362A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563256B2 (en) * 2013-01-04 2017-02-07 Intel Corporation Processor hiding its power-up latency with activation of a root port and quickly sending a downstream cycle
US9286258B2 (en) 2013-06-14 2016-03-15 National Instruments Corporation Opaque bridge for peripheral component interconnect express bus systems
CN105793828B (zh) 2013-12-26 2019-06-21 英特尔公司 具有pci快速增强的系统和方法
US10013385B2 (en) * 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
US9792245B2 (en) * 2014-12-09 2017-10-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Peripheral component interconnect express (PCIe) devices with efficient memory mapping by remapping a plurality of base address registers (BARs)
US10445018B2 (en) * 2016-09-09 2019-10-15 Toshiba Memory Corporation Switch and memory device
US10846250B2 (en) 2018-11-12 2020-11-24 Arm Limited Apparatus and method for handling address decoding in a system-on-chip
CN111241602B (zh) * 2018-11-29 2023-05-02 阿里巴巴集团控股有限公司 Fpga的ip核加载方法、装置及电子设备
US11030144B2 (en) * 2018-12-14 2021-06-08 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
CN113886311A (zh) * 2020-07-02 2022-01-04 许继集团有限公司 一种按槽位进行固定pcie总线地址分配的方法及装置
US20210255973A1 (en) * 2020-12-17 2021-08-19 Intel Corporation Stream routing and ide enhancements for pcie

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694047B1 (en) 2005-02-17 2010-04-06 Qlogic, Corporation Method and system for sharing input/output devices
JP4628149B2 (ja) * 2005-03-14 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ アクセス制御装置及びアクセス制御方法
US7890752B2 (en) * 2005-10-31 2011-02-15 Scenera Technologies, Llc Methods, systems, and computer program products for associating an originator of a network packet with the network packet using biometric information
JP4770425B2 (ja) * 2005-11-24 2011-09-14 富士ゼロックス株式会社 保護済み実行プログラムの作成のためのプログラム、方法及び装置
JP4577288B2 (ja) * 2006-09-27 2010-11-10 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
US8139575B2 (en) 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
US20090043921A1 (en) * 2007-08-09 2009-02-12 Protip Roy Method and System for Virtualization and Re-Direction of I/O Connections to Peripheral Devices
US7958298B2 (en) 2008-03-26 2011-06-07 Lsi Corporation System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
WO2009151447A1 (en) * 2008-06-10 2009-12-17 Hewlett-Packard Development Company, L.P. Presenting multi-function devices behind a switch hierarchy as a single function device
US9213662B2 (en) 2008-11-13 2015-12-15 Nec Corporation I/O bus system
JP2010238150A (ja) * 2009-03-31 2010-10-21 Toshiba Corp PCIExpress通信システム、及びその通信方法
US7934045B2 (en) * 2009-06-09 2011-04-26 International Business Machines Corporation Redundant and fault tolerant control of an I/O enclosure by multiple hosts
US8495252B2 (en) * 2011-01-17 2013-07-23 International Business Machines Corporation Implementing PCI-express memory domains for single root virtualized devices

Also Published As

Publication number Publication date
CN104169897A (zh) 2014-11-26
US9032102B2 (en) 2015-05-12
CN104169897B (zh) 2016-11-16
GB2515928B (en) 2018-08-08
GB201416684D0 (en) 2014-11-05
US20130232279A1 (en) 2013-09-05
WO2013128362A1 (en) 2013-09-06
GB2515928A (en) 2015-01-07

Similar Documents

Publication Publication Date Title
DE112013000808T5 (de) Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE112012003336B4 (de) Optimiertes Cachespeichern von Umsetzungseinträgen für virtuelle Funktionen
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE102010053097B4 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
DE112012003342T5 (de) Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE102015005744A1 (de) SYSTEM UND VERFAHREN FÜR PEER-ZU-PEER-PCIe-SPEICHERTRANSFERS
DE112012001753B4 (de) 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur
US9092365B2 (en) Splitting direct memory access windows
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE102015118711B4 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE112010001404T5 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112013001904T5 (de) Paketvermittlung auf der Ebene 2 ohne Nachschlagetabelle für Ethernet-Switches
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE102018124173A1 (de) Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium
DE112016006065T5 (de) Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE102010033615A1 (de) Pufferung bei Mediums- und Pipeline-Verarbeitungskomponenten
DE102022205478A1 (de) Busübergreifende speicherabbildung
US9104600B2 (en) Merging direct memory access windows
DE102018110704A1 (de) Speicherungsvorrichtung für ein vorausgehendes Verwalten einer Schreibdaten zuzuweisenden physischen Adresse
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence