DE102016100584A1 - bus system - Google Patents

bus system Download PDF

Info

Publication number
DE102016100584A1
DE102016100584A1 DE102016100584.3A DE102016100584A DE102016100584A1 DE 102016100584 A1 DE102016100584 A1 DE 102016100584A1 DE 102016100584 A DE102016100584 A DE 102016100584A DE 102016100584 A1 DE102016100584 A1 DE 102016100584A1
Authority
DE
Germany
Prior art keywords
bus system
bus
function block
subscriber
pci express
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
DE102016100584.3A
Other languages
German (de)
Inventor
Thomas Zerrer
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.)
SMARTLOGIC GmbH
Original Assignee
SMARTLOGIC GmbH
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 SMARTLOGIC GmbH filed Critical SMARTLOGIC GmbH
Priority to DE102016100584.3A priority Critical patent/DE102016100584A1/en
Publication of DE102016100584A1 publication Critical patent/DE102016100584A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/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

Abstract

Die Erfindung betrifft ein Bussystem mit einer Anzahl von Busteilnehmern (5), welche über ein PCI-Express-Protokoll Informationen austauschen, wobei wenigstens ein Busteilnehmer (5) eine Einfachfunktionseinheit (6) bildet. Dieser Busteilnehmer (5) weist einen Einfachfunktionsblock (7) mit einer Logik des PCI-Express-Protokolls auf. Dem Einfachfunktionsblock (7) sind Logikblöcke 12, 13, 14 zugeordnet, mittels derer ohne Änderung des Einfachfunktionsblocks (7) die Einfachfunktionseinheiten (6) zu einem Mehrfachteilnehmer (11) weitergebildet sind.The invention relates to a bus system with a number of bus subscribers (5) which exchange information via a PCI Express protocol, wherein at least one bus subscriber (5) forms a single functional unit (6). This bus subscriber (5) has a single function block (7) with logic of the PCI Express protocol. Logic blocks 12, 13, 14 are assigned to the simple function block (7), by means of which the simple function units (6) are developed further to a multiple participant (11) without changing the single function block (7).

Description

Die Erfindung betrifft ein Bussystem gemäß dem Oberbegriff des Anspruchs 1.The invention relates to a bus system according to the preamble of claim 1.

Bei einem derartigen Bussystem handelt es sich um ein bidirektionales Hochgeschwindigkeitsbussystem, bei welchem zwischen einer CPU und weiteren Busteilnehmern eine Kommunikation gemäß dem PCI-Express-Protokoll efolgt. Das PCI Express Protokoll selbst wurde von der PCI Special Interest Group (PCISIG), einem US amerikanischem Konsortium, spezifiziert.Such a bus system is a bidirectional high-speed bus system in which a communication according to the PCI Express protocol takes place between a CPU and other bus subscribers. The PCI Express protocol itself was specified by the PCI Special Interest Group (PCISIG), a US American consortium.

Aufgrund der hohen Datenrate von 2.5 GBit pro Sekunde und höher, werden bei diesem Bussystem ausschließlich Punkt-zu-Punkt Verbindungen gebildet. Um mehrere Busteilnehmer über dieses Bussystem zu vernetzen, können sogenannte Switches, das heißt Datenpaketverteiler, vorgesehen sein, an die mehrere Busteilnehmer angeschlossen sind. Über derartige Switches können Datenpakete von der CPU jeweils dem richtigen Busteilnehmer zugeordnet werden. Nach dem Einschalten des Bussystems scannt die CPU über den PCI Express Zugang alle Busteilnehmer des Bussystems ab. Dabei vergibt die CPU während dieser Enumerierungsphase an jeden Busteilnehmer eine eindeutige Identifikations-ID. Nach der Enumerierungsphase ordnet das Betriebssystem der CPU jedem Busteilnehmer einen Software-Treiber zu, um die an den jeweiligen Busteilnehmer angeschlossenen Peripherieeinheit (z.B. serielle Schnittstelle, Ethernet Controller, Grafikkarte, etc) von Seite der Software ansprechen zu können. Anschließend wird die Kommunikation des Bussystems freigegeben, so dass die Busteilnehmer des Bussystems Daten austauschen können.Due to the high data rate of 2.5 GBit per second and higher, only point-to-point connections are made in this bus system. In order to network several bus subscribers via this bus system, so-called switches, that is to say data packet distributors, can be provided, to which several bus subscribers are connected. Using such switches, data packets from the CPU can be assigned to the correct bus subscriber. After switching on the bus system, the CPU scans all bus users of the bus system via the PCI Express access. During this enumeration phase, the CPU assigns each bus user a unique identification ID. After the enumeration phase, the CPU's operating system allocates a software driver to each bus user in order to be able to address the peripheral unit (for example, serial interface, Ethernet controller, graphics card, etc.) connected to the respective bus subscriber from the software side. Subsequently, the communication of the bus system is released, so that the bus users of the bus system can exchange data.

Derartige Bussysteme finden in Rechnersystemen aller Art, insbesondere in Desktop- oder Laptop-PC-Systemen Anwendung.Such bus systems find application in computer systems of all kinds, especially in desktop or laptop PC systems.

Bei dem PCI-Express-Bussystem kann ein Busteilnehmer als reiner Einfachteilnehmer vorgesehen sein, das heißt der Busteilnehmer koppelt eine einzige Peripherieeinheit an das Bussystem an. In diesem Ausprägungsfall des Einfachteilnehmers ist dem Busteilnehmer eine Identifikations-ID und ein Softwaretreiber auf Betriebssystem Seite zugeordnet.In the case of the PCI Express bus system, a bus subscriber can be provided as a simple single subscriber, that is to say the bus subscriber couples a single peripheral unit to the bus system. In this embodiment case of the simple subscriber, the bus subscriber is assigned an identification ID and a software driver on the operating system side.

Um Switches und damit Baukosten einzusparen, erlaubt es die PCI-Express-Spezifikation Busteilnehmer aufzubauen, die aus mehreren Unterteilnehmern bestehen. Jeder Unterteilnehmer des Mehrfachteilnehmers koppelt dabei eine eigene Peripherieeinheit an das PCI-Express Bussystem an. Jedem Unterteilnehmer des Mehrfachteilnehmers ist für den Betrieb im Bussystem eine eigene eindeutige Identifikations-ID und ein separater Software Treiber auf Betriebssystemseite zugeordnet. Diese Ausführungsform des Busteilnehmers wird im Folgenden als Mehrfachteilnehmer bezeichnet. Alle Unterteilnehmer des Mehrfachteilnehmers befinden sich dabei auf dem gleichen integrierten Schaltkreis (IC), der über eine Punkt zu Punkt Verbindung an das PCI Express Bussystem angekoppelt ist.In order to save switches and thus construction costs, the PCI Express specification allows to build bus subscribers, which consist of several subcontractors. Each subparticipant of the multiple subscriber thereby couples a separate peripheral unit to the PCI Express bus system. Each subparticipant of the multiple subscriber is assigned an own unique identification ID and a separate software driver on the operating system side for operation in the bus system. This embodiment of the bus subscriber is referred to below as a multiple subscriber. All sub-participants of the multiple subscriber are on the same integrated circuit (IC), which is coupled via a point-to-point connection to the PCI Express bus system.

Derartige PCI Express Busteilnehmer (Einfachteilnehmer, wie auch Mehrfachteilnehmer) werden sehr häufig mit FPGA(Fieldprogrammable Gate Array)-Bausteinen aufgebaut. Dabei verfügen Einfachteilnehmer über digitale Einfachfunktionseinheiten und Gigabit Transceiver, die als festverdrahtete Hardmacrozellen ausgeführt sind und die vorgefertigte, zertifizierte Einheiten innerhalb der FPGA-Struktur bilden. Such PCI Express bus subscribers (single subscribers, as well as multiple subscribers) are very often constructed with FPGA (field programmable gate array) modules. They have single-function digital units and Gigabit transceivers that are hard-wired hard macro cells that form pre-fabricated, certified units within the FPGA structure.

Nachteilig bei derartigen Hardmacrozellen ist, dass deren Funktion in weiten Teilen vordefiniert ist und nicht mehr nachträglich geändert werden kann. Für eine als Einfachteilnehmer ausgebildete Einfachfunktionseinheit mittels PCI-Express-Hardmacrozelle bedeutet dies, dass deren Begrenzung auf einen Einfachteilnehmer, nicht mehr nachträglich auf einen Mehrfachteilnehmer erweitert werden kann.A disadvantage of such Hardmacrozellen is that their function is predefined in large parts and can not be changed later. For a single-function unit designed as a simple user by means of a PCI-Express hard macro cell, this means that its limitation to a simple subscriber can no longer be subsequently extended to a multiple subscriber.

Prinzipiell wäre es möglich diese Einschränkung mit einem käuflichen sogenannten Soft-IP Core zu umgehen, indem die FPGA-Struktur so konfiguriert wird, dass die limitierende PCI-Express Hardmacrozelle der Einfachfunktionseinheit, nicht verwendet wird und der Mehrfachteilnehmer rein mit der programmierbaren Logik der FPGAs realisiert wird. Dies erfordert jedoch eine sehr hohe Zahl an programmierbaren FPGA Logikressourcen, was zu großen und kostenintensiven FPGA-Baugrößen führt. In principle, it would be possible to circumvent this restriction with a commercially available soft-IP core by configuring the FPGA structure such that the limiting PCI Express hard macro cell of the single-function unit is not used and the multiple subscriber realizes it purely with the programmable logic of the FPGAs becomes. However, this requires a very large number of programmable FPGA logic resources, resulting in large and expensive FPGA sizes.

Der Erfindung liegt die Aufgabe zugrunde mit minimalsten zusätzlichen Logikressourcen, einen reinen PCI Express Einfachteilnehmer auf einen PCI Express Mehrfachteilnehmer der eingangs genannten Art zu erweitern.The invention is based on the object with minimal additional logic resources to extend a pure PCI Express single subscriber to a PCI Express multiple subscriber of the type mentioned.

Zur Lösung dieser Aufgabe sind die Merkmale des Anspruchs 1 vorgesehen. Vorteilhafte Ausführungsformen und zweckmäßige Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen beschrieben. To solve this problem, the features of claim 1 are provided. Advantageous embodiments and expedient developments of the invention are described in the dependent claims.

Die Erfindung betrifft ein Bussystem mit einer Anzahl von Busteilnehmern, welche über das PCI-Express-Protokoll Informationen austauschen, wobei wenigstens ein Busteilnehmer einen Einzelteilnehmer bildet. Dieser Busteilnehmer weist einen Einfachfunktionsblock mit einer Logik des PCI-Express-Protokolls auf. Dem Einfachfunktionsblock sind neue Logikblöcke zugeordnet, mittels derer ohne Änderung des Einfachfunktionsblocks der Einzelteilnehmer zu einem Mehrfachteilnehmer weitergebildet wird. The invention relates to a bus system with a number of bus subscribers, which exchange information via the PCI Express protocol, wherein at least one bus subscriber forms an individual subscriber. This bus user has a single function block with logic of the PCI Express protocol. The simple function block is associated with new logic blocks, by means of which, without changing the simple function block, the individual subscriber is trained to form a multiple subscriber.

Der Grundgedanke der Erfindung besteht somit darin, eine Erweiterung eines Einzelteilnehmers zu einem Mehrfachteilnehmer nicht durch Ausschluss des Einfachfunktionsblocks und kompletter Neuprogrammierung der FPGA-Struktur zur Bereitstellung der Mehrfachteilnehmerfunktionalität herbeizuführen. Vielmehr wird erfindungsgemäß der Einfachfunktionsblock in seiner Struktur völlig unverändert zur Erzielung der Mehrfachteilnehmerfunktionalität mit einbezogen. Die Mehrfachteilnehmerfunktionalität wird durch eine spezifische Ansteuerung der Einfachfunktionseinheit durch zusätzliche Logikblöcke erreicht, die mit sehr wenig digitaler Logik realisiert werden. Insbesondere müssen zur Realisierung des Mehrfachteilnehmers dadurch keine größeren Baugrößen der FPGA-Struktur in Kauf genommen werden. Thus, the basic idea of the invention is not to extend an individual subscriber to a multiple subscriber by excluding the simple function block and completely reprogramming the FPGA structure to provide the multiple subscriber functionality. Rather, according to the invention, the single-function block is included in its structure completely unchanged in order to achieve the multiple subscriber functionality. The multiple subscriber functionality is achieved by specific control of the single functional unit through additional logic blocks that are implemented with very little digital logic. In particular, no larger sizes of the FPGA structure have to be accepted in order to realize the multiple subscriber.

Besonders vorteilhaft besteht der Einfachfunktionsblock aus einer fest verdrahteten PCI-Express Hardmacrozelle.Particularly advantageous is the simple function block of a hard-wired PCI-Express Hardmacrozelle.

Dabei ist die den Einfachfunktionsblock bildende Hardmacrozelle Bestandteil eines FPGA-Bausteins. The hard macrocell forming the single function block is part of an FPGA module.

In diesem Fall sind die Logikblöcke Bestandteil der rekonfigurierbaren Logik des FPGA-Bausteins.In this case, the logic blocks are part of the reconfigurable logic of the FPGA device.

Die Realisierung der vorgenannten Einheiten in FPGA-Strukturen ist keineswegs zwingend. Vielmehr können diese Einheiten auch in ASIC-Strukturen realisiert sein.The realization of the aforementioned units in FPGA structures is by no means mandatory. Rather, these units can also be realized in ASIC structures.

Ein wesentliches Element der Erfindung besteht darin, dass mittels zusätzlicher Logikblöcke – unter Nutzung der im Einfachfunktionsblock vorhandenen PCI Express Hardmacrozelle – eine konfigurierbare Anzahl von Unterteilnehmern generiert wird und dadurch ein Mehrfachteilnehmer entsteht.An essential element of the invention is that by means of additional logic blocks - using the present in the simple function block PCI Express Hardmacrozelle - a configurable number of sub-participants is generated, thereby creating a multiple participant.

Dabei wird mittels der zusätzlichen Logikblöcke – in bestimmten Grenzen frei wählbar – eine Anzahl von Adressbereichen des Einfachfunktionsblocks bestimmten Unterteilnehmern zugewiesen. In this case, by means of the additional logic blocks-within certain limits freely selectable-a number of address areas of the single-function block are assigned to certain sub-users.

Die im Einfachfunktionsblock vorhandenen Elemente, insbesondere Adressbereiche, werden durch die zusätzlichen Logikblöcke auf mehrere Unterteilnehmer verteilt, so dass allein durch die umprogrammierte Nutzung der Elemente des Einfachfunktionsblocks durch die Logikblöcke ein Mehrfachteilnehmer entsteht. Ein wesentlicher Aspekt der Logikblöcke im Sinne der Erfindung ist es insbesondere, dass diese Schreib- oder Leseanfragen auf den Konfigurationsbereich verändern können und damit auf vorgegebene Unterteilnehmer umleiten können. Dies ist möglich, da in einer eingehenden Schreib- bzw Leseanfrage die Ziel Identifikations ID und damit die Unterteilnehmernummer enthalten ist und durch die Logikblöcke verändert werden kann.The elements present in the simple function block, in particular address areas, are distributed by the additional logic blocks to a plurality of subunits, so that a multiple subscriber is created solely by the reprogrammed use of the elements of the simple function block by the logic blocks. An essential aspect of the logic blocks within the meaning of the invention is, in particular, that these write or read requests can change to the configuration area and thus can redirect to predefined sub-participants. This is possible because in an incoming write or read request, the destination identification ID and thus the sub-subscriber number is included and can be changed by the logic blocks.

Ein weiterer wesentlicher Aspekt der Erfindung besteht darin, dass Antwortpakete auf Schreib- oder Leseanfragen nur im Einfachfunktionsblock generiert werden, um den Platzbedarf der Logikblöcke so klein wie möglich zu halten.Another essential aspect of the invention is that response packets to write or read requests are only generated in the simple function block in order to minimize the space requirements of the logic blocks.

Ein weiterer Vorteil besteht darin, dass der Umleitungsmechanismus durch die Einbringung von zusätzlichen Informationen in die einlaufenden Datenpakete ohne aufwändige zusätzliche Speichertabellen bewerkstelligt werden kann, was wiederum zu einer deutlichen Einsparung an Fläche und damit zu einer sehr kleinen Lösung führt.Another advantage is that the redirection mechanism can be accomplished by the introduction of additional information in the incoming data packets without complex additional memory tables, which in turn leads to a significant saving in area and thus to a very small solution.

Die Funktionalität des von einem Einzelteilnehmer auf einen Mehrfachteilnehmer erweiterten Busteilnehmers kann weiter dadurch erhöht werden, dass mittels der Logikblöcke CRC-Fehler in der Datenübertragung erkannt werden und daraus quantitative und qualitative Güteaussagen zur Stabilität der PCI Express Busanbindung gemacht werden können.The functionality of the extended by a single subscriber to a multiple subscriber bus subscriber can be further increased by the fact that CRC errors in the data transmission are detected by the logic blocks and can be made of quantitative and qualitative statements on the stability of the PCI Express bus connection.

Gemäß einer vorteilhaften Ausgestaltung der Erfindung ist die Belegung des im Konfigurationsbereich befindlichen Revision-ID Registers, der neu hinzukonfigurierten Einfachteilnehmer, das zur Zuordnung des Software Treibers dient, auf zweierlei Weise möglich.According to an advantageous embodiment of the invention, the assignment of located in the configuration area revision ID register, the newly added simple subscriber, which serves to associate the software driver, in two ways possible.

Prinzipiell kann das Revision-ID-Register für die einzelnen Unterteilnehmern identische Werte aufweisen, so dass den einzelnen Unterteilnehmern jeweils derselbe Software-Treiber zugeordnet ist. In principle, the revision ID register can have identical values for the individual sub-users, so that the individual software sub-users are each assigned the same software driver.

Das Revision-ID Register kann aber auch für jeden einzelnen Unterteilnehmer des Mehrfachteilnehmers unterschiedliche Werte aufweisen. Damit wird als wesentlicher Vorteil der Erfindung erreicht, dass jedem Unterteilnehmer ein eigener Software-Treiber zugeordnet werden kann. Diese Software-Treiber weisen im Vergleich zu einem Software-Treiber, der mehreren Busteilnehmern zugeordnet ist, einen erheblich einfacheren Aufbau auf. Dies führt zu erheblich kürzeren Entwicklungszeiten bei der Erstellung von Software-Treibern. Zudem wird eine verbesserte und vereinfachte Wartung der Software-Treiber erzielt. However, the revision ID register can also have different values for each individual subunit user of the multiple subscriber. This is achieved as a significant advantage of the invention that each subcontractor own software driver can be assigned. These software drivers have a much simpler design compared to a software driver associated with multiple bus users. This leads to significantly shorter development times when creating software drivers. In addition, improved and simplified maintenance of the software drivers is achieved.

Gemäß einer weiteren vorteilhaften Ausgestaltung der Erfindung ist ein Logikblock vorgesehen, mittels dessen Interrupts von jedem Unterteilnehmern innerhalb des Mehrfachteilnehmers an die CPU abgesetzt werden können.According to a further advantageous embodiment of the invention, a logic block is provided, by means of which interrupts from each subunits within the multiple subscriber can be sent to the CPU.

Dies führt zu einer verbesserten Betriebssicherheit des Bussystems, da mit dem Logikblock Interrupts vorab den richtigen Unterteilnehmern zugeordnet werden, wodurch Fehlsteuerungen durch die Interrupts vermieden werden. This leads to an improved reliability of the bus system, since the logic block interrupts are assigned in advance to the correct sub-users, whereby incorrect control by the interrupts are avoided.

Die Erfindung wird im Folgenden anhand der Zeichnungen erläutert. The invention will be explained below with reference to the drawings.

1: Ausführungsbeispiel eines PCI-Express-Bussystems. 1 : Embodiment of a PCI Express Bus System.

2: Schematischer Aufbau einer Einfachfunktionseinheit für das PCI-Express-Bussystem gemäß 1. 2 : Schematic structure of a single functional unit for the PCI Express bus system according to 1 ,

3: Erweiterung der Einfachfunktionseinheit auf eine Mehrfachfunktionseinheit. 3 : Extension of the single functional unit to a multiple functional unit.

4: Aufbau eines Configuration-Space-Header. 4 : Structure of a Configuration Space Header.

5: Konfiguration mehrerer Unterteilnehmer für den Configuration Space Header. 5 : Configuration of several subunits for the Configuration Space Header.

6: Schematische Darstellung des Ablaufs bei Zugriff auf den Unterteilnehmer 0 gemäß der Darstellung von 4. 6 : Schematic representation of the process when accessing the subunit 0 as shown by 4 ,

7: Schematische Darstellung des Ablaufs bei Zugriff auf den Unterteilnehmer 1 gemäß der Darstellung von 4. 7 : Schematic representation of the process when accessing the subunit 1 as shown by 4 ,

8: Aufbau eines Configuration Request des PCI-Express. 8th : Structure of a PCI Express Configuration Request.

8a: Aufbau der Complete ID des Configuration Request gemäß 4. 8a : Structure of the Complete ID of the Configuration Request according to 4 ,

8b: Aufbau der Requester-ID des Configuration-Request gemäß 4. 8b : Structure of the requestor ID of the configuration request according to 4 ,

1 zeigt schematisch den Aufbau eines PCI-Express-Bussystems. Das PCI-Express-Bussystem umfasst eine CPU 1 (central processing unit) mit zugeordneten Speichereinheiten 2 und einem PCI Express Buszugang 3. 1 schematically shows the structure of a PCI Express bus system. The PCI Express bus system includes a CPU 1 (central processing unit) with associated memory units 2 and a PCI Express bus access 3 ,

An die CPU 1 können direkt oder über einen Switch 4 mehrere Busteilnehmer 5 des PCI-Express-Bussystems angeschlossen sein. Zwischen der CPU 1 und einem direkt angeschlossenen Busteilnehmer 5 wird eine Punkt-zu-Punkt-Verbindung gebildet. Der Switch 4 dient dazu, mehrere Busteilnehmer 5 an die CPU 1 anzuschließen. Der Switch 4 verteilt Datenpakte der CPU 1 an die angeschlossenen Busteilnehmer 5. To the CPU 1 can be directly or through a switch 4 several bus participants 5 be connected to the PCI Express bus system. Between the CPU 1 and a directly connected bus participant 5 a point-to-point connection is formed. The switch 4 serves to several bus participants 5 to the CPU 1 to join. The switch 4 distributes data packets of the CPU 1 to the connected bus subscribers 5 ,

Nach dem Einschalten des PCI-Express-Bussystems scannt die CPU 1 alle Busteilnehmer 5 ab und vergibt an jeden Busteilnehmer 5 eine eindeutige Identifikations-ID. Nach dieser Enumerierungsphase wird jedem Busteilnehmer 5 ein Software-Treiber durch das Betriebssystem, das auf der CPU läuft, zugeordnet. Danach können die Busteilnehmer 5 des PCI-Express-Bussystems über das PCI-Express-Protokoll den Datenaustausch miteinander aufnehmen. After switching on the PCI Express bus system, the CPU scans 1 all bus participants 5 and assigns to each bus participant 5 a unique identification ID. After this enumeration phase, every bus participant becomes 5 a software driver is assigned by the operating system running on the CPU. After that, the bus participants 5 of the PCI Express bus system via the PCI Express protocol to exchange data with each other.

2 zeigt schematisch einen als Einfachteilnehmer 6 ausgebildeten Busteilnehmer 5 des PCI-Express-Bussystems. Der Einfachteilnehmer 6 ist in der FPGA-Logik aufgebaut und umfasst einen Einfachfunktionsblock 7, der in Form einer festverdrahteten PCI-Express Hardmacrozelle in der FPGA-Struktur ausgebildet ist. 2 schematically shows a single subscriber 6 trained bus participants 5 of the PCI Express bus system. The simple participant 6 is built in FPGA logic and includes a single function block 7 , which is designed in the form of a hard-wired PCI-Express Hardmacrozelle in the FPGA structure.

Weiterhin ist für eine Seriell-/ Parallelwandlung von über einer PCI-Express-Schnittstelle 8 ankommenden Datenpaketen (RX) und ausgesendeten Datenpaketen (TX) ein Gigabit-Transceiver 9 vorgesehen, der ebenfalls in festverdrahteter Form als Hardmacro vorliegt. Über eine Benutzerschnittstelle 10 kann ein Benutzer in den Datenpfad zwischen Einfachfunktionsblock 7 und Gigabit-Transceiver 9 eingreifen. Furthermore, for a serial / parallel conversion of over a PCI Express interface 8th incoming data packets (RX) and transmitted data packets (TX) a gigabit transceiver 9 provided, which is also present in hardwired form as a hard macro. Via a user interface 10 a user can enter the data path between simple function block 7 and gigabit transceivers 9 intervention.

3 zeigt die erfindungsgemäße Erweiterung der Einfachfunktionseinheit 6 gemäß 2 auf einen Mehrfachteilnehmer 11, innerhalb des PCI-Express-Bussystems. Der Mehrfachteilnehmer 11 weist wie die Einfachfunktionseinheit 6, einen Einfachfunktionsblock 7, einen Gigabit-Transceiver 9, eine PCI-Express-Schnittstelle 8 und eine Benutzerschnittstelle 10 auf. Zudem sind drei Logikblöcke vorgesehen, die aus dem frei konfigurierbaren Logik Anteil des FPGA-Bausteins aufgebaut sind. 3 shows the extension of the single functional unit according to the invention 6 according to 2 to a multiple participant 11 , within the PCI Express bus system. The multiple participant 11 points like the single functional unit 6 , a simple function block 7 , a gigabit transceiver 9 , a PCI Express interface 8th and a user interface 10 on. In addition, three logic blocks are provided, which are made up of the freely configurable logic component of the FPGA module.

Zwei der Logikblöcke bilden Umleitungsblöcke, nämlich eine RX-Umleitung 12 für ankommende Datenpakete und eine TX-Umleitung 13 für ausgehende Datenpakete. Weiterhin bildet ein MIF-Remap 14 einen Logikblock für die Interrupt Zuordnungen.Two of the logic blocks form bypass blocks, namely an RX redirect 12 for incoming data packets and a TX redirect 13 for outgoing data packets. Furthermore, it forms a MIF remap 14 a logic block for the interrupt assignments.

Mit den Logikblöcken wird die Funktion des Einfachfunktionsblocks 7 auf eine Mehrteilnehmerfunktionalität erweitert.The logic blocks become the function of the simple function block 7 extended to a multi-user functionality.

Über eine Managementschnittstelle 15 ist der Mehrfachteilnehmer konfigurierbar. Via a management interface 15 is the multiple subscriber configurable.

Der Einfachfunktionsblock 7 gemäß 2 (wie auch gemäß 3) weist einen als Einzelteilnehmer ausgeführten Busteilnehmer 5 auf, wobei für diesen Einzelteilnehmer ein über das PCI-Express-Protokoll physikalisch schreib-/lesbarer Konfigurationsbereich, wie in 4 dargestellt, existiert. Der Konfigurationsbereich umfasst eine vorgegebene Anzahl von Registern R1–R10 und sechs spezifische Register in Form von Basisadressregistern, die in 4 mit BAR0 bis BAR5 bezeichnet sind, wobei diesen Registern bestimmte Adressbereiche aus dem 64-Bit PCI Express Adressraum zugeordnet sind. The simple function block 7 according to 2 (as well as according to 3 ) has a bus subscriber executed as an individual subscriber 5 on, for this individual subscriber via the PCI Express protocol physically write / readable configuration area, as in 4 represented exists. The configuration area comprises a predetermined number of registers R1-R10 and six specific registers in the form of base address registers, which in 4 are designated BAR0 to BAR5, these registers are assigned to certain address areas from the 64-bit PCI Express address space.

Zur Erweiterung einer Einfachfunktionseinheit 6 auf einen Mehrfachteilnehmer 11 werden über die Logikblöcke RX-Umleitung 12 und TX-Umleitung 13 die Anzahl und die Ausprägungsform von einzelnen Unterteilnehmern des Mehrfachteilnehmers konfiguriert.To extend a single functional unit 6 to a multiple participant 11 are via the logic blocks RX redirection 12 and TX redirection 13 the number and the form of expression of individual sub-participants of the multiple subscriber configured.

Dies ist in 5 schematisch dargestellt, wo links der physikalisch vorhandene Konfigurationsbereich des Einfachfunktionsblocks 7, das heißt der Configuration-Space-Header, dargestellt ist. Aus diesem Configuration-Space-Header sind im vorliegenden Fall drei Einzelteilnehmer innerhalb eines Mehrfachteilnehmers, entsprechend drei Busteilnehmern 5 des PCI-Express-Bussystems, abgeleitet. This is in 5 schematically shown where left the physically existing configuration area of the simple function block 7 , that is the Configuration Space header, is shown. For this configuration space header, in the present case, three individual subscribers are within a multiple subscriber, corresponding to three bus subscribers 5 derived from the PCI Express bus system.

Für die Bildung der drei Unterteilnehmer des Mehrfachteilnehmers wird der Adressbereich der Basisadressregister BAR0 bis BAR5 auf die drei Unterteilnehmer aufgeteilt. Wie aus 5 ersichtlich, werden die ersten Basisadressregister BARl, BAR2 des Configuration-Space-Header als Basisadressregister BARl, BAR2 dem Unterteilnehmer 0 zugeteilt. Die Basisadressregister BAR3, BAR 4 des Configuration-Space-Header werden als Basisadressregister BAR0, BAR1 dem Unterteilnehmer 1 zugeteilt. Das Basisadressregister BAR4 des Configuration-Space-Header wird als Basisadressregister BAR0 des Unterteilnehmers 2 zugewiesen. Das Basisadressregister BAR5 des Configuration-Space-Header wird keinem Unterteilnehmer zugewiesen. For the formation of the three subscribers of the multiple subscriber, the address range of the base address registers BAR0 to BAR5 is divided among the three sub-subscribers. How out 5 As can be seen, the first base address registers BAR1, BAR2 of the configuration space header are assigned to the subparticipant 0 as base address registers BAR1, BAR2. The base address registers BAR3, BAR 4 of the configuration space header are assigned to the sub-subscriber 1 as base address registers BAR0, BAR1. The base address register BAR4 of the configuration space header is assigned as the base address register BAR0 of the slave 2. The base address register BAR5 of the Configuration Space header is not assigned to a sub-participant.

Da der Configuration-Space-Header insgesamt sechs Basisadressregister BAR0 bis BAR5 aufweist, können maximal sechs Unterteilnehmer innerhalb eines Mehrfachteilnehmers generiert werden. Da im vorliegenden Fall nur drei Unterteilnehmer generiert werden, kann die Anzahl und Zuordnung der Basisadressregister BAR0 bis BAR5 des Configuration-Space-Header zu den Unterteilnehmern frei gewählt werden. Since the Configuration Space header has a total of six base address registers BAR0 to BAR5, a maximum of six subcontractors can be generated within a multiple subscriber. Since only three subcontractors are generated in the present case, the number and assignment of the base address registers BAR0 to BAR5 of the Configuration Space header to the subcontractors can be freely selected.

Wie aus 5 ersichtlich, bleiben die Register Rl, R2 und R4 bis R10 für alle Einzelteilnehmer gleich. Lediglich der Wert des Register R3, dem sogenannten Revision-ID-Register, wird für die einzelnen Unterteilnehmer inkrementiert (N, N + 1, N + 2). Dadurch können den einzelnen Unterteilnehmern unterschiedliche Software-Treiber zugewiesen werden. Sind für die Register R3 aller Unterteilnehmer dieselben Werte vorgesehen, wird allen Unterteilnehmern derselbe Software-Treiber zugeordnet. How out 5 As can be seen, the registers Rl, R2 and R4 to R10 remain the same for all individual subscribers. Only the value of register R3, the so-called revision ID register, is incremented for the individual sub-subscribers (N, N + 1, N + 2). As a result, different software drivers can be assigned to the individual subcontractors. If the same values are provided for registers R3 of all subcontractors, all subcontractors are assigned the same software driver.

Bei dem Diagramm gemäß 5 entspricht der Unterteilnehmer 0 dem bereits ursprünglich in der Einfachfunktionseinheit 6 vorhandenen Einfach-Teilnehmer.In the diagram according to 5 the subcontractor 0 already corresponds to the one originally in the single function unit 6 existing simple-participants.

Die weiteren Unterteilnehmer 1 und 2 entsprechen zusätzlich generierten Busteilnehmern 5 innerhalb des Mehrfachteilnehmers.The other subunits 1 and 2 correspond to additionally generated bus subscribers 5 within the multiple participant.

Für die Konfigurationsschreib- und -leseanfragen, die per PCI-Express-Protokoll über das Bussystem eingehen, wird nur der eine physikalische vorhandene Configuration-Space-Header für alle Einfachteilnehmer innerhalb des Mehrfachteilnehmers verwendet. Trotzdem kann mit Konfigurationsschreib- und -leseanfragen gezielt auf einzelne Unterteilnehmer innerhalb des Mehrfachteilnehmers zugegriffen werden, wie die folgenden 5 bis 8 zeigen. For the configuration write and read requests that are received via the PCI Express protocol over the bus system, only the one physically existing Configuration Space header is used for all the single subscribers within the multi-subscriber. Nevertheless, with configuration write and read requests, individual subscribers within the multiple party can be targeted, such as the following 5 to 8th demonstrate.

Für eine Kommunikation mit dem ersten Busteilnehmer 5 (entsprechend dem Teilnehmer 5 der ursprünglichen Einfachfunktionseinheit 6) erfolgt bei einer Konfigurationsschreib- bzw. -leseanfrage ein Zugriff auf den Unterteilnehmer 0, wie in 6 dargestellt. Dabei wird auf die Basisadressregister BAR0, BAR1 des Einfachteilnehmers 0 zugegriffen, die den Basisadressregister BAR0, BARl des physikalischen Konfigurationsbereichs, das heißt des Configuration-Space-Header entsprechen, so dass mit den Logikblöcken RX-Umleitung 12 und TX-Umleitung 13 keine Umleitung vorgenommen wird, das heißt die Anfrage wird unbearbeitet weitergeleitet (Pfeile I in 6). For communication with the first bus user 5 (according to the participant 5 the original single functional unit 6 In a configuration write or read request, an access is made to subparticipant 0, as in 6 shown. In this case, the base address registers BAR0, BAR1 of the simple subscriber 0 are accessed, which correspond to the base address register BAR0, BAR1 of the physical configuration area, that is to say the configuration space header, such that the logic blocks RX redirection 12 and TX redirection 13 No diversion is made, that is, the request is forwarded unprocessed (arrows I in 6 ).

Wird jedoch bei einer Anfrage, beispielsweise während der Enumerierungsphase, auf ein Basisadressregister BAR2 bis BAR5 des Configuration-Space-Header zugegriffen, wird diese Anfrage auf ein deaktiviertes Register umgeleitet, im vorliegenden Fall auf das Register R8, das den Adressbereich eines optionalen Expansion-ROM definiert, welches in den meisten Fällen deaktiviert ist und dasselbe Verhalten wie ein deaktiviertes Basisadressregister zeigt. Diese Umleitung ist in 6 mit den Pfeilen II gekennzeichnet. Für eine Kommunikation mit einem weiteren Busteilnehmer 5 erfolgt bei einer Schreib- und Leseanfrage ein Zugriff auf den Unterteilnehmer 1, wie in 7 dargestellt. Um den Zugriff auf diesen Unterteilnehmer 1 zu gewährleisten, erfolgt bei einer Anfrage mit der RX-Umleitung 12 eine RX-Umleitung (Pfeil I) auf die Basisadressregister BAR2, BAR3, welche als Basisadressregister BAR0, BAR1 des Unterteilnehmer 1 zugeordnet sind (5). Daher wird durch die RX-Umleitung 12 gezielt der dem weiteren Busteilnehmer 5 zugeordnete Unterteilnehmer 1 angesprochen. Die von RX-Umleitung 12 durchgeführte RX-Umleitung wird danach mit der von TX-Umleitung 13 durchgeführten TX-Umleitung wieder rückgängig gemacht (Pfeil II). Die Umleitung auf das Register R8 (Expansion-ROM) bei einem Zugriff auf deaktivierte Basisadressregister (Pfeile III) erfolgt analog zu 6. Wie die 6, 7 zeigen, werden die Datenpakte für Schreib- oder Leseanfragen nur im Einfachfunktionsblock 7 generiert. Mit den Logikblöcken werden diese Datenpakete nur in geeigneter Weise geändert, um damit mehrere Unterteilnehmer und damit Busteilnehmer 5 zu definieren und gezielt anzusprechen. Durch diese Funktion der Logikblöcke RX-Umleitung 12 und TX-Umleitung 13 kann somit für Anfragen an den Einfachfunktionsblock 7 des Configuration-Space-Header in unveränderter Form auch für die weiteren Unterteilnehmer genutzt werden, so dass ohne Änderung des Einfachfunktionsblocks 7 die Erweiterung von einer Einfachfunktionseinheit 6 auf eine Mehrfachfunktionseinheit durchgeführt werden kann. However, if a request, for example, during the enumeration phase, accesses a base address register BAR2 to BAR5 of the configuration space header, that request will be redirected to a disabled register, in this case the register R8 which contains the address range of an optional expansion ROM which is disabled in most cases and shows the same behavior as a disabled base address register. This redirect is in 6 with the arrows II characterized. For communication with another bus participant 5 In the case of a read and write request, access is made to the sub-subscriber 1, as in 7 shown. In order to ensure access to this subunit 1, a request is made with the RX redirection 12 an RX redirection (arrow I ) to the base address registers BAR2, BAR3, which are assigned as base address registers BAR0, BAR1 of the subunit 1 ( 5 ). Therefore, through the RX redirect 12 specifically the further bus participant 5 assigned sub-participants 1 addressed. The RX redirection 12 then RX redirection will be done with that of TX Redirect 13 undone TX redirection (arrow II ). Redirection to register R8 (expansion ROM) when accessing deactivated base address registers (arrows III ) takes place analogously to 6 , As the 6 . 7 show, the data packets for write or read requests are only in the simple function block 7 generated. With the logic blocks these data packets are changed only in a suitable manner, so that several subcontractors and thus bus subscribers 5 to define and specifically address. Through this function of logic blocks RX redirection 12 and TX redirection 13 can thus be used for requests to the simple function block 7 the Configuration Space header can be used in unchanged form for the other sub-participants, so that without changing the simple function block 7 the extension of a single functional unit 6 can be performed on a multiple function unit.

8 zeigt den Aufbau eines sogenannten Configuration-Request vom PCI-Express. Ein Configuration-Request ist dabei eine Lese- oder Schreibanfrage auf den Configuration-Space-Header. Diese Anfrage enthält die Unterteilnehmernummer (in der Completer-ID enthalten), die angesprochen werden soll, die Speicheradresse (Register-Nummer des Configuration Space Headers), die gelesen beziehungsweise geschrieben werden soll und die Identifikations-ID des anfragenden Busteilnehmers (Requester-ID). 8th shows the structure of a so-called configuration request from the PCI Express. A configuration request is a read or write request to the configuration space header. This request contains the subcontractor number (contained in the Completer ID) to be addressed, the memory address (register number of the Configuration Space Header) to be read or written and the identification ID of the requesting bus user (requester ID). ,

Der Aufbau der Completer-ID ist in 8a dargestellt. Der Aufbau der Requestor ID ist in 8b dargestellt. The structure of the Completer ID is in 8a shown. The structure of the requestor ID is in 8b shown.

Für den Configuration-Request wird überprüft, auf welchen Unterteilnehmer zugegriffen wird, indem die Bits 2:0 der Unterteilnehmernummer aus der Completer-ID eines einlaufenden Requests ausgewertet werden. Zeigen diese 3 Bits einen Wert ungleich 0 und signalisieren damit einen Zugriff auf einen der zusätzlich hinzukonfigurierten Unterteilnehmer, werden diese 3 Bits an die Position 7:5 der Busnummer des Requester-ID kopiert und die 3-Bit Unterteilnummer der Completer-ID gelöscht.The configuration request checks which sub-subscriber is accessed by evaluating bits 2: 0 of the sub-station number from the completer ID of an incoming request. If these 3 bits show a value other than 0 and thus signal access to one of the additionally configured subunits, these 3 bits are copied to position 7: 5 of the bus number of the requestor ID and the 3-bit subpart number of the Completer ID is deleted.

Dadurch werden alle Zugriffe auf den Unterteilnehmer 0 umgeleitet, damit der Einfachfunktionsblock 7 diese richtig beantworten wird. Würde diese Modifikation nicht durchgeführt werden, würde der Einfachfunktionsblock 7, der ja nur einen Einfachteilnehmer 5 mit einem einzigen Unterteilnehmer unterstützt, die Anfrage nur mit einem Fehler (sogenannten Unsupported Request) beantworten.This redirects all accesses to subdevice 0, so the single function block 7 this will answer correctly. If this modification were not performed, the simple function block would 7 who is only an ordinary participant 5 supported with a single sub-participant, the request only with an error (so-called Unsupported Request) answer.

Da die Requester-ID mit der Information der ursprünglichen Unterteilnehmernummer (eingefügt durch den RX-Umleitungsblock) in der Antwort des Einfachfunktionsblocks 7 unverändert wieder ausgegeben wird, erhält die TX-Umleitung 13 die ursprüngliche Unterteilnehmernummer zurück und kann diese nun wieder an seine ursprüngliche Position kopieren und die Bits 7:5 in der Requester ID auf 000 setzen. Since the requester ID with the information of the original subnumber number (inserted by the RX redirection block) in the response of the simple function block 7 is output unchanged, receives the TX redirection 13 returns the original subnumber number and can now copy it back to its original position and set the bits 7: 5 in the Requester ID to 000.

Durch Nutzung der Bits 7:5 in der Requester-ID ergibt sich die Einschränkung, dass kein anfordernder Busteilnehmer diese Bits benutzen darf, das heißt diese immer auf 0 stehen. Um diese Einschränkung so klein wie möglich zu machen, werden entsprechend der verwendeten Unterteilnehmeranzahl nur so viele Bits benutzt wie notwendig. Die nachfolgende Tabelle zeigt, wie viele Bits bei welcher Konfiguration tatsächlich verwendet werden:
Um die aktivierten und de-aktivierten Basisadressregister (BAR1 bis BAR5) aller Unterteilnehmer an den jeweilig richtigen Positionen in dem Configuration-Space-Header aller Unterteilnehmer erscheinen zu lassen, werden vom RX-Umleitungsblock 12 Adressen in geeigneter Weise verändert und weitere Informationen in den Bits 4:2 der Device-ID innerhalb des Requester-ID codiert.
By using bits 7: 5 in the Requester-ID, the restriction arises that no requesting bus user is allowed to use these bits, ie they are always at 0. To make this restriction as small as possible, only as many bits as needed are used according to the number of sub-users used. The following table shows how many bits are actually used in which configuration:
To make the activated and de-activated base address registers (BAR1 to BAR5) of all subscribers appear at the respective correct positions in the configuration space header of all subscribers, the RX redirection block is used 12 Addresses changed in a suitable manner and further information encoded in bits 4: 2 of the device ID within the Requester-ID.

Die folgende Tabelle zeigt, welche Bedeutung der in diesen Bits enthaltene Code hat. Codenummer Bedeutung 000 Keine Veränderung im Block TX-Umleitung notwendig 001 Zeige Antwort als Zugriff auf BAR0 010 Zeige Antwort als Zugriff auf BAR1 011 Zeige Antwort als Zugriff auf BAR2 100 Zeige Antwort als Zugriff auf BAR3 101 Zeige Antwort als Zugriff auf BAR4 110 Zeige Antwort als Zugriff auf BAR5 111 Merker, der anzeigt, dass auf das Revision ID Register zugegriffen wurde The following table shows the meaning of the code contained in these bits. code number importance 000 No change in block TX redirection necessary 001 Show answer as access to BAR0 010 Show answer as access to BAR1 011 Show answer as access to BAR2 100 Show answer as access to BAR3 101 Show answer as access to BAR4 110 Show answer as access to BAR5 111 Flag indicating that the revision ID register has been accessed

Durch Einbringen dieser zusätzlichen Informationen wird es nun möglich, eine einlaufende Konfigurationsanfrage, durch Änderungen der Adresse umzuleiten, und die Antwort aus dem Einfachfunktionsblock 7 wieder so zu modifizieren, dass sie als Antwort auf die ursprüngliche Anfrage erscheint. By introducing this additional information, it is now possible to redirect an incoming configuration request, by changing the address, and the response from the simple function block 7 again to be modified to appear in response to the original request.

Da die Bits der Device-Nummer innerhalb der Requester-ID anderweitig verwendet werden, ist es zwingende Voraussetzung, dass kein Busteilnehmer 5 mit einer Device-Nummer größer als drei einen Zugriff auf die Mehrfachfunktionseinheit 11 macht. Da in den allermeisten Fällen die Device-ID aber 00000 ist, ist diese Einschränkung tragbar. Since the bits of the device number are used elsewhere within the requester ID, it is imperative that no bus participant 5 with a device number greater than three, access to the multifunction unit 11 power. Since in most cases the device ID is 00000, this restriction is acceptable.

Durch diesen Umleitungsansatz ist es nicht notwendig eine Liste an einlaufenden Anfragen zu führen und mit den später generierten Antworten des Einfachfunktionsblocks 7 zusammen zuführen, sondern jede Antwort enthält durch die zusätzlichen Informationen in sich schon alle Informationen zur Nachbearbeitung. Dies führt zu erheblichen Logik-Ressourcen-Einsparungen. This redirection approach eliminates the need to keep a list of incoming requests and the replies of the simple function block generated later 7 together, but each answer contains all the information for post-processing through the additional information. This leads to significant logic resource savings.

Das PCl-Express-Bussystem unterscheidet zwei unterschiedliche Mechanismen der Interrupt Auslösung, den Legacy-Interrupt und den MSI Interrupt. The PCl-Express bus system distinguishes between two different mechanisms for interrupt triggering, the legacy interrupt and the MSI interrupt.

Im sogenannten Legacy-Interrupt Modus setzt jeder Unterteilnehmer den gleichen Interrupt ab, der vom Betriebssystem in Verbindung mit dem zugeordneten Software Treiber auf dem CPU-System als sogenannter "shared Interrupt" behandelt werden muss. In so-called legacy interrupt mode, each subcontractor issues the same interrupt, which must be treated by the operating system in conjunction with the associated software driver on the CPU system as a so-called "shared interrupt".

MSI-Interrupts bedürfen einer Spezialbehandlung. Da MSI-Interrupts durch Schreiben eines bestimmten Datenwortes ("Message-Dataregister") auf die zugewiesene Adresse des Interruptcontrollers ausgelöst werden, muss das sogenannte Message-Dataregister für jeden Unterteilnehmer gespeichert sein. Dies leistet die RX-Umleitung 12, die Schreibzugriffe auf das Message-Data-Register für jeden Unterteilnehmer erkennt und den spezifischen Wert des Message Data Registers für jeden Unterteilnehmer in einem kleinen SRAM im FPGA ablegt. MSI interrupts require special treatment. Since MSI interrupts are triggered by writing a specific data word ("message data register") to the assigned address of the interrupt controller, the so-called message data register must be stored for each subparticipant. This does the RX redirection 12 , which recognizes write accesses to the message data register for each subunit participant and stores the specific value of the message data register for each subunit participant in a small SRAM in the FPGA.

Wird nun über das Benutzerinterface ein MSI-Interrupt ausgelöst, wird dieser zunächst vom MIF-Remap 14 zurückgehalten und das richtige Message-Dataregister aus oben erwähntem SRAM in den Einfachfunktionsblock 7 geladen. Danach wird der MSI-Interrupt ausgelöst und der Interrupt zur Benutzerschnittstelle 10 als abgehandelt gekennzeichnet. Begriff Erklärung im PCI Express Kontext Anfrage Eine Anfrage ist ein sogenannter Request, der entweder als Lese- oder als Schreibrequest vom Requester an den Completer gestellt wird. ASIC Application specific integrated circuit. Dies ist ein kundenspezifi scher, festverdrahteter elektronischer Baustein. Antwort Auf eine Anfrage antwortet der angefragte Busteilnehmer (Completer) mit seiner Antwort. Die Antwort wird als Completion bezeichnet. Basisaddressregister (BAR) Jede PCI Express Funktion verfügt über 6 Basisaddressregister (BARs). BARs dienen dazu die Größe als auch die Lage eines Spei cherfensters innerhalb des PCI Express Adressraums zu definieren. Busteilnehmer Ein Busteilnehmer wir als sogenannter Endpoint bezeichnet. Ein Endpoint kann 1–8 PCI Express Functions enthalten. Ist nur eine Function realisiert, handelt es sich um einen Einzelteilnehmer, sind mehr Functions realisiert, handelt es sich um einen Mehrfachteil nehmer Datenpaketverteiler Ein Datenpaketverteiler wird im PCI Express Kontext als Switch bezeichnet. Ein Switch besteht aus einer Anzahl an Eingangs- und Ausgangsports. Die im Switch enthaltene Logik ermöglicht es, ein laufende Datenpakete dem richtigen Ausgang zu zuordnen. Einfachfunktionsblock Digitale Logikeinheit, die den Datenaustausch gemäß den Regeln des PCI Express Protokolls für ein Single Function Device enthält. In FPGAs ist diese Logikeinheit meist als festverdrahteter Hardmacro ausgeführt. Einfachteilnehmer Dies ist ein sogenanntes Single Function Device Enumerierungsphase Die Enumerierungsphase wird vor dem operativen Betrieb des PCI Express Bussystems durchlaufen. In der Enumerationsphase werden alle Configuration Space Headers initialisiert und insbesondere die BARs aufgesetzt. FPGA Field programmable Gate Array. FPGAs sind programmierbare Logikbausteine, die benutzerdefinierte Logikfunktionen enthalten. Hardmacro Ein Hardmacro ist eine festverdrahtete Zusammenschaltung von Logikelementen, wie Flipflops und Booleschen Logikfunktionen. IC Integrated Circuit: Integrierter Schaltkreis Identifikations ID Die Identifikations-ID ist ein 16-Bit Wort, das einen PCI Express Busteilnehmer eindeutig identifiziert. Es besteht aus 3 Teilen, der sogenannten Bus-ID, Device-ID und Function-ID. Konfigurationsbereich Configuration space Header. Jede Function verfügt über ihren eige nen Configuration Space Header, der insbesondere für jede Function die BAR Einstellungen trägt. Mehrfachteilnehmer Der Mehrfachteilnehmer wird in der PCI Express Spezifikation als Multi Function Device bezeichnet. Die im Multi function Device enthaltenen konfigurierten Functions werden in dieser Patentschrift als Unterteilnehmer bezeichnet. PCI Express Buszugang Über den PCI Express Buszugang kommuniziert die CPU mit den Busteilnehmern. In der PCIe Spezifikation wird der PCI Express Buszugang als Root Complex bezeichnet. PCISIG Die PCI Special Interest Group (PCISIG) ist ein US amerikanisches Konsortium, das die Spezifikationen und die Weiterentwicklung des PCI Express Systems voranbringt. Peripherieeinheit Als Peripherieeinheit werden Ein-/Ausgabeeinheiten bezeichnet, die den Funktionsumfang der CPU erweitern. Dies können beispiels weise Grafikkarten, serielle Schnittstellen, Ethernet Controller oder anderes sein. Revision-ID Register Das Revision-ID Register befindet sich im Configuration Space Header und wird (neben anderen Registern) dazu benutzt, einen Software Treiber (Device Driver) einer PCI Express Function zu zuordnen. Shared Interrupt Ein shared interrupt ist ein Interrupt, dh eine gemeinsame Interruptleitung, die sich mehrere Busteilnehmer teilen. Die Inter rupt Service Routine der CPU muss bei shared Interrupts eine Mög lichkeit haben, den interruptauslösenden Busteilnehmer identifizie ren zu können. Soft IP Core Ein Soft IP Core ist eine Beschreibung einer digitalen Funktionsein heit in Form einer Hardwarebeschreibungssprache (z.B. VHDL oder Verilog). Durch einen Logikcompiler (auch als Synthese-Werkzeug bezeichnet) wird der Soft IP Core in eine digitale Schaltung über führt und kann dann in einem FPGA oder ASIC platziert und ver drahtet werden. Unsupported Request Dies ist die Standardantwort eines PCI Express Busteilnehmers, wenn die angefragte Operation nicht möglich ist. Dies tritt z.B. dann auf, wenn ein Unterteilnehmer angefragt wird, der nicht existiert. If an MSI interrupt is now triggered via the user interface, this is first of all triggered by the MIF remap 14 retained and the correct message data register from SRAM mentioned above in the simple function block 7 loaded. Thereafter, the MSI interrupt is triggered and the interrupt to the user interface 10 marked as treated. term Explanation in the PCI Express context inquiry A request is a so-called request, which is made either by the requester to the completer as a read request or as a write request. ASIC Application specific integrated circuit. This is a customer-specific, hardwired electronic component. answer Upon request, the requested bus participant (Completer) responds with his answer. The answer is called completion. Base address register (BAR) Each PCI Express feature has 6 base address registers (BARs). BARs are used to define the size as well as the location of a memory window within the PCI Express address space. bus users A bus participant we call a so-called endpoint. An endpoint can contain 1-8 PCI Express functions. If only one function is realized, it is an individual participant, if more functions are realized, it is a multiple participant Data packet transfer A data packet distributor is called a switch in the PCI Express context. A switch consists of a number of input and Output ports. The logic contained in the switch makes it possible to assign a running data packet to the correct output. Simple function block Digital logic unit containing the data exchange according to the rules of the PCI Express protocol for a single function device. In FPGAs, this logic unit is usually designed as a hardwired hard macro. simply participants This is a so-called single function device Enumerierungsphase The enumeration phase will be completed before the operation of the PCI Express bus system. In the enumeration phase, all configuration space headers are initialized and, in particular, the BARs are set up. FPGA Field programmable gate array. FPGAs are programmable logic devices that contain user-defined logic functions. Hard Macro A hard macro is a hard-wired interconnection of logic elements, such as flip-flops and Boolean logic functions. IC Integrated Circuit: Integrated Circuit Identification ID The identification ID is a 16-bit word that uniquely identifies a PCI Express bus subscriber. It consists of 3 parts, the so-called Bus-ID, Device-ID and Function-ID. configuration area Configuration space header. Each function has its own Configuration Space header, which in particular carries the BAR settings for each function. Multiple participants The multiple subscriber is referred to in the PCI Express specification as a Multi Function Device. The configured functions contained in the multi-function device are referred to in this patent as sub-participants. PCI Express bus access Via the PCI Express bus access the CPU communicates with the Bus stations. In the PCIe specification, the PCI Express bus access is called the Root Complex. PCISIG The PCI Special Interest Group (PCISIG) is a US American consortium that advances the specifications and evolution of the PCI Express system. peripheral unit Peripheral units are I / O units that extend the functionality of the CPU. This can be, for example, graphics cards, serial ports, Ethernet controllers or other. Revision ID Register The Revision ID Register is located in the Configuration Space Header and is used (among other registers) to map a Software Driver (Device Driver) to a PCI Express Function. Shared interrupt A shared interrupt is an interrupt, ie a common interrupt line which is shared by several bus users. The interrupt service routine of the CPU in shared interrupts must have the possibility of being able to identify the interrupting bus subscriber. Soft IP Core A Soft IP Core is a description of a digital functional unit in the form of a hardware description language (eg VHDL or Verilog). Through a logic compiler (also referred to as a synthesis tool), the Soft IP Core transitions into a digital circuit and can then be placed in an FPGA or ASIC and wired. Unsupported Request This is the default response of a PCI Express bus user if the requested operation is not possible. This occurs, for example, when a subcontractor is requested that does not exist.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

11
PCI Express Buszugang PCI Express bus access
22
Speichereinheit storage unit
33
CPU CPU
44
Switch Switch
55
Busteilnehmer bus users
66
Einfachteilnehmer simply participants
77
Einfachfunktionsblock Simple function block
88th
PCI-Express-Schnittstelle PCI Express interface
99
Gigabit-Transceiver  Gigabit transceivers
1010
Benutzerschnittstelle User interface
1111
Mehrfachteilnehmer Multiple participants
1212
RX-Umleitung RX redirection
1313
TX-Umleitung TX redirection
1414
MIF-Umleitung MIF redirection
1515
Managementschnittstelle Management interface

Claims (15)

Bussystem mit einer Anzahl von Busteilnehmern (5), welche über das PCI-Express-Protokoll Informationen austauschen, wobei wenigstens ein Busteilnehmer (5) eine Einfachfunktionseinheit (6) bildet, wobei dieser Busteilnehmer (5) einen Einfachfunktionsblock (7) mit einer Logik des PCI-Express-Protokolls aufweist, dadurch gekennzeichnet, dass dem Einfachfunktionsblock (7) Logikblöcke zugeordnet sind, mittels derer ohne Änderung des Einfachfunktionsblocks (7) die Einfachfunktionseinheiten (6) zu einem Mehrfachteilnehmer (11) weitergebildet sind.Bus system with a number of bus participants ( 5 ), which exchange information via the PCI Express protocol, whereby at least one bus subscriber ( 5 ) a simple functional unit ( 6 ), this bus subscriber ( 5 ) a simple function block ( 7 ) with a logic of the PCI Express protocol, characterized in that the simple function block ( 7 ) Logic blocks are assigned by means of which without changing the simple function block ( 7 ) the simple functional units ( 6 ) to a multiple participant ( 11 ) are further developed. Bussystem nach Anspruch 1, dadurch gekennzeichnet, dass der Einfachfunktionsblock (7) aus einer fest verdrahteten Hardmacrozelle besteht.Bus system according to claim 1, characterized in that the simple function block ( 7 ) consists of a hard-wired hard macro cell. Bussystem nach Anspruch 2, dadurch gekennzeichnet, dass die den Einfachfunktionsblock (7) bildende Hardmacrozelle Bestandteil eines FPGA-Bausteins ist.Bus system according to claim 2, characterized in that the single-function block ( 7 ) forming Hardmacrozelle is part of an FPGA chip. Bussystem nach Anspruch 3, dadurch gekennzeichnet, dass die Logikblöcke Bestandteil einer rekonfigurierbaren Logik des FPGA-Bausteins sind.Bus system according to claim 3, characterized in that the logic blocks are part of a reconfigurable logic of the FPGA module. Bussystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass mittels der Logikblöcke unter Nutzung der im Einfachfunktionsblock (7) vorhandenen Struktur eine konfigurierbare Anzahl von Unterteilnehmern generiert wird. Bus system according to one of claims 1 to 4, characterized in that by means of the logic blocks using the single function block ( 7 ) existing structure a configurable number of sub-participants is generated. Bussystem nach Anspruch 5, dadurch gekennzeichnet, dass mittels der Logikblöcke frei wählbar eine Anzahl von Basisadressregistern des Einfachfunktionsblocks (7) bestimmten Unterteilnehmern zugewiesen wird.Bus system according to Claim 5, characterized in that, by means of the logic blocks, it is possible to select a number of base address registers of the simple function block ( 7 ) is assigned to specific subcontractors. Bussystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass Datenpakete für Konfigurationsschreib- oder -leseanfragen nur im Einfachfunktionsblock (7) generiert werden, und dass derartige Datenpakete von den Logikblöcken verändert werden.Bus system according to one of claims 1 to 6, characterized in that data packets for configuration write or read requests only in the simple function block ( 7 ) and that such data packets are changed by the logic blocks. Bussystem nach Anspruch 7, dadurch gekennzeichnet, dass in einer Schreib- oder Leseanfrage die einen Einzelteilnehmer kennzeichnende Unterteilnehmernummer enthalten ist.Bus system according to Claim 7, characterized in that the subcontractor number characterizing an individual subscriber is contained in a read or write request. Bussystem nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass zur Zuordnung eines Software-Treibers zu einem Unterteilnehmer ein Revision-ID-Register vorgesehen istBus system according to one of claims 1 to 9, characterized in that a revision ID register is provided for the assignment of a software driver to a subcontractor Bussystem nach Anspruch 9, dadurch gekennzeichnet, dass die Revision-ID-Register für die einzelnen Unterteilnehmer, die den Mehrfachteilnehmer bilden, unterschiedliche Werte auf- weisen können, so dass den einzelnen Einfachteilnehmern, die den Mehrfachteilnehmer bilden, unterschiedliche Software Treiber zugeordnet sind.Bus system according to claim 9, characterized in that the revision ID registers for the individual subunits, which form the multiple subscriber, may have different values, so that the individual simple subscribers, which form the multiple subscriber, are assigned different software drivers. Bussystem nach Anspruch 10, dadurch gekennzeichnet, dass die Revision-ID-Register für die einzelnen Einzelteilnehmer so konfiguriert werden können, dass sie identische Werte aufweisen, so dass den einzelnen Unterteilnehmern jeweils derselbe Software-Treiber zugeordnet ist.Bus system according to claim 10, characterized in that the revision ID registers for the individual participants can be configured so that they have identical values, so that the individual sub-participants each have the same software driver is assigned. Bussystem nach einem der Ansprüche 5 bis 11, dadurch gekennzeichnet, dass als Umleitungsblöcke ausgebildete Logikblöcke vorgesehen sind, mittels derer Schreib- oder Leseanfragen auf vorgegebene Unterteilnehmer innerhalb des Mehrfachteilnehmers umgeleitet werden. Bus system according to one of Claims 5 to 11, characterized in that logic blocks designed as diversion blocks are provided by means of which write or read requests are diverted to predetermined sub-users within the multiple subscriber. Bussystem nach Anspruch 12, dadurch gekennzeichnet, dass mittels der Umleitungsblöcke Fehler in der Datenübertragung gemeldet werden, die für quantitative und qualitative Aussagen zur Stabilität des PCI Express Busses herangezogen werden können.Bus system according to claim 12, characterized in that by means of the diversion blocks errors in the data transmission are reported, which can be used for quantitative and qualitative statements on the stability of the PCI Express bus. Bussystem nach Anspruch 13, dadurch gekennzeichnet, dass die als Umleitungsblöcke ausgebildeten Logikblöcke mittels einer Hardwarebeschreibungssprache beschrieben sind, wodurch die Anzahl und die Ausprägungsform der im Mehrfachteilnehmer enthaltenen Einzelteilnehmer mittels Parametern festlegbar ist. Bus system according to claim 13, characterized in that the logic blocks formed as diversion blocks are described by means of a hardware description language, whereby the number and the form of expression of the individual subscribers contained in the multiple subscriber can be fixed by means of parameters. Bussystem nach einem der Ansprüche 5 bis 14, dadurch gekennzeichnet, dass ein Logikblock (14) vorgesehen ist, mittels dessen Interrupts unter Nutzung des Einfachfunktionsblocks (7) von vorgegebenen Unterteilnehmern innerhalb des Mehrfachteilnehmers abgesetzt werden.Bus system according to one of Claims 5 to 14, characterized in that a logic block ( 14 ) is provided by means of which interrupts using the simple function block ( 7 ) are discontinued by predetermined subcontractors within the multiple participant.
DE102016100584.3A 2016-01-14 2016-01-14 bus system Pending DE102016100584A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016100584.3A DE102016100584A1 (en) 2016-01-14 2016-01-14 bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016100584.3A DE102016100584A1 (en) 2016-01-14 2016-01-14 bus system

Publications (1)

Publication Number Publication Date
DE102016100584A1 true DE102016100584A1 (en) 2017-07-20

Family

ID=59255940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016100584.3A Pending DE102016100584A1 (en) 2016-01-14 2016-01-14 bus system

Country Status (1)

Country Link
DE (1) DE102016100584A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289125B2 (en) * 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
US20090276551A1 (en) * 2008-05-05 2009-11-05 International Business Machines Corporation Native and Non-Native I/O Virtualization in a Single Adapter
US8645594B2 (en) * 2012-06-29 2014-02-04 Intel Corporation Driver-assisted base address register mapping

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289125B2 (en) * 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
US20090276551A1 (en) * 2008-05-05 2009-11-05 International Business Machines Corporation Native and Non-Native I/O Virtualization in a Single Adapter
US8645594B2 (en) * 2012-06-29 2014-02-04 Intel Corporation Driver-assisted base address register mapping

Similar Documents

Publication Publication Date Title
DE60212626T2 (en) FINAL NODE DISTRIBUTION BY LOCAL IDENTIFIERS
EP0951682B1 (en) IO-AND MEMORY BUS SYSTEM FOR DFPs AND UNITS WITH TWO-OR MULTI- DIMENSIONALLY PROGRAMMABLE CELL STRUCTURES
DE102013208213B4 (en) System for reducing hash collisions
EP1787204B1 (en) Message administrator and method for controlling access to data of the message memory of a communications component
DE69736872T2 (en) Data processing system
DE60027748T2 (en) BUSARCHITECTURE AND DISTRIBUTED BUSARBITRATION PROCESS FOR A COMMUNICATION PROCESSOR
DE102004033445A1 (en) Integrated circuit device has interface to convert advanced microcontroller bus architecture format into interface format e.g. static RAM format compatible to access resources of slave chip by master chip, according to request
DE102005048581B4 (en) Subscriber interface between a FlexRay communication module and a FlexRay subscriber and method for transmitting messages via such an interface
DE102008055892A1 (en) Storing sections of a data transfer descriptor in a cached and uncached address space
DE112011101039B4 (en) Implement an improved connection bandwidth in a headless link chip
DE112013003733T5 (en) Adaptive packet redirection to achieve reasonable, cost-effective, and / or energy-efficient network service quality on chip devices
WO2007039634A2 (en) User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface
DE19882975B4 (en) Access a message exchange unit from a secondary bus
DE2645341C2 (en)
EP0062141B1 (en) Circuit arrangement for entering control commands into a microcomputer system
WO2006015908A1 (en) Method for storing messages in a message memory and corresponding message memory
WO2002071248A2 (en) Methods and devices for treating and/or processing data
DE60305560T2 (en) Embedded system for overload control of broadcast traffic in a communication network
DE102006025133A1 (en) Storage and storage communication system
DE602004008712T2 (en) A memory bandwidth control device
DE102021108294A1 (en) SYSTEM AND METHOD FOR SCALABLE HARDWARE COHERENT STORAGE NODES
EP1774434B1 (en) Architecture of a network processor
DE102016100584A1 (en) bus system
EP0141332A2 (en) Arrangement with a plurality of buses for the connection of processors and memories in a multiprocessor system
DE3247083A1 (en) MULTI-PROCESSOR SYSTEM

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication