Procedure for exchanging interface information concerning a PCI Express interface
The method automates the configuration of PCI Express interfaces by serializing interface definitions and automatically adapting communication partners, addressing the complexity of manual updates in systems with multiple data processing units, enhancing efficiency in development processes.
Patent Information
- Application Number
- DE102024201286
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-13
- Publication Date
- 2025-08-14
AI Technical Summary
The complexity and time-consuming nature of developing systems with multiple data processing units communicating via PCI Express due to the need for manual exchange of configuration files and adaptations to memory layouts, especially in complex systems like autonomous driving and metrology systems, is a significant challenge.
A method for exchanging interface information between communication partners via PCI Express, involving determining an interface definition, serializing it, and automatically configuring the second communication partner using a serialized form, thereby eliminating the need for manual configuration updates.
Automates the configuration process, reducing development complexity and time by enabling dynamic adaptation of communication partners without manual intervention, particularly beneficial for systems like autonomous driving and metrology systems.
Smart Images

Figure 00000006_0000 
Figure 00000006_0001
Abstract
Description
State of the art
[0001] PCIe, or PCI Express, is a point-to-point bus system that enables communication between individual data processing units of a hardware system, for example, between a peripheral device and a main processor. PCI Express enables very high data transfer speeds.
[0002] The data processing units that communicate with each other via a PCI Express bus are also referred to as communication partners.
[0003] A key feature of PCI Express is that it enables direct access to the (internal) memory of the communication partner with which communication is taking place via PCI Express. In particular, the processor (CPU) of the communication partner with which communication is taking place is not involved in the communication. One (data-sending) communication partner writes the data directly into the memory of the other (data-receiving) communication partner, without the other communication partner's processor being involved. This enables high communication speeds, particularly because the communication speed is not limited by the capacity of the processors of the data-receiving and data-sending communication partners. In particular, the data-sending communication partner does not have to first route the data through a communication stack, which involves splitting, packaging, and sending the data.,This typically requires processor resources that can be saved by using PCI Express for communication between the communication partners.
[0004] For such communication to be possible, the memory management of the respective communication partners must be known to each other. The communication partner must know exactly which areas of the other communication partner's memory it should and is allowed to read / write to.
[0005] This PCI Express requirement represents a significant challenge, particularly when developing complex systems comprising hardware and software with a large number of data processing units involved that communicate via PCI Express and with complex dependencies between the individual data processing units.
[0006] Such systems include, for example, systems for highly automated or autonomous driving of motor vehicles. Such systems are used, for example, to process sensor data obtained from the vehicle's sensors in order to acquire information for the highly automated or autonomous driving of the vehicle. Such systems typically comprise a large number of data processing units that perform successive data processing tasks, thus requiring efficient communication between the individual data processing units. Communication between the data processing units in such systems typically takes place via PCI Express.
[0007] Other systems where the use of PCI Express for communication between data processing units poses significant challenges, especially during development, are measurement systems that record data for later use in experiments or as training data for machine learning.
[0008] Typically, communication between data processing units via PCI Express requires a configuration in advance to communicate the memory areas and / or memory structures of the communication partners. The respective memory areas / memory structures (local and remote) are configured within the drivers of the respective communication partners. The term "local" refers to resources (e.g., memory) of the respective communication partner itself. The term "remote" refers to resources (e.g., memory) of the other (remote) communication partner. The first communication partner thus knows which memory locations on the second communication partner can be accessed (read and write), so that the second communication partner can interpret the data correctly.Access to the data in the memory of the remote communication partner is carried out by the hardware of the local communication partner according to the configuration specified by a driver.
[0009] During the development of such systems, the development work on the individual data processing units regularly requires changes to interfaces with other data processing units, and in particular, adjustments to the memory layout and allocation. This adaptation is usually achieved by providing customized configuration files that describe the interfaces. Such customized configuration files must be regularly exchanged manually between development teams of the various data processing units during the development of complex systems with multiple data processing units. These files are then used to configure the respective drivers of the communication partners.The use of PCI Express as a communication interface between the computing units often requires even minor adjustments to a computing unit to exchange new configurations between the individual computing units or between the development teams developing individual computing units. This makes the process of developing such systems extremely complex and time-consuming. Disclosure of the invention
[0010] Based on this, a novel method for adapting PCI Express interfaces for communication between different data processing units or communication partners is proposed here, which significantly reduces the described complexity in the development process.
[0011] Here, a method for exchanging interface information between different communication partners for communication between the communication partners via PCI Express is proposed, comprising the following steps: a) Determining an interface definition which describes memory areas and an internal memory layout of a first communication partner which a second communication partner should access to read and / or write data; b) Creating a serialized form of the interface definition determined in step a); c) providing the serialized form of the interface definition created in step b) to the second communication partner; and d) Automatic configuration of the second communication partner with the provided interface definition for communication between the communication partners.
[0012] This describes a method for communication between a first communication partner and a second communication partner. This method can be applied to both communication partners. Likewise, both communication partners can read or write to the respective memory areas. In preferred embodiments, both communication partners are data processing units that interact within a (larger) data processing system. Such data processing units can also interact and communicate with each other in both directions within a (larger) data processing system, so that one data processing unit is temporarily used as the first communication partner and temporarily as the second communication partner. The second communication partner in each case actively accesses (read and / or write) the memory of the first communication partner.
[0013] PCI Express provides for direct access to the memory of a communication partner. This applies to both read and write access. The processor (or CPU / DMA) of the second communication partner directly accesses the memory of the first communication partner. For the designated memory area of the first communication partner, addresses are provided in the local address space of the second communication partner that are mapped to the memory of the first communication partner.
[0014] When the second communication partner writes / reads data to these addresses in its local address space, this data is automatically written / read into the memory of the first communication partner.
[0015] This automatic transfer of data to / from the memory of the first communication partner occurs via PCI Express. The processor of the first communication partner is not involved in the transfer. The processor of the second communication partner's access to the designated local addresses in its address space automatically triggers the data transfer.
[0016] PCI Express preferably maps the first three layers of the ISO / OSI reference model: the physical layer, the data link layer, and the transaction layer. Above these three layers, custom programming is usually required to set up a PCI Express interface. The linking of the addresses in the local address space of the second communication partner with the corresponding addresses in the memory of the first communication partner must be individually configured in the local driver when configuring a PCI Express interface.
[0017] Here, it is proposed to automate the configuration of PCI Express interfaces, at least temporarily. For this purpose, it is proposed to provide a description of an interface that describes the memory areas provided for data access as well as a memory layout of a first communication partner in an interface definition, wherein the interface definition is provided in serialized form (steps a) and b)). Determining the interface definition according to step a) can, for example, comprise reading out an object structure of the interface that describes the memory areas and the memory layout provided for communication with the second communication partner. The serialized form can, for example, be implemented according to step b) using a function for serializing objects that is available in standard programming languages.
[0018] The interface definition can then be provided in serialized form (step c). The interface definition then automatically configures at least one communication partner according to step d).
[0019] It is therefore proposed to provide the interface description or interface definition in the form of a serialized information object. This allows a connected PCI Express device (the second communication partner) to dynamically connect to the interface of the first communication partner without knowing the exact PCIe protocol interface of the first communication partner.
[0020] The method described here proposes a new approach to make the memory layout intended for communication via PCI Express of a first communication partner known to another (second communication partner).
[0021] It is particularly preferred if the interface definition determined in step a) also includes protocol information.
[0022] In particular, the interface definition determined in step a) contains information about registers and / or virtual registers to be described and their structures.
[0023] Protocol information or protocol register structures contain, in particular, information on how protocol data relating to communication via a PCI Express interface is to be stored and evaluated in order to ensure error-free communication via the PCI Express interface.
[0024] Providing the memory description in a serialized structure enables particularly efficient transmission of the memory description according to step c). In the serialized interface description, additional information, in addition to the memory layout, can be efficiently transmitted in a single definition. This includes, in particular, protocol information.
[0025] With the help of the interface definition, an automated dynamic adaptation of second communication partners can be carried out.
[0026] It is preferred if the provision of the interface definition according to step c) comprises storing the interface definition in serialized form in a memory area of the first communication partner provided for this purpose, wherein second communication partners retrieve the interface definition from the memory area of the first communication partner.
[0027] In systems where changes are regularly made to individual data processing units, communication between these data processing units is often complex to implement. This often results in the problem of "hard" information dependency. For example, the memory layout and its usage must be known in advance by the two data processing units that are to communicate with each other as communication partners.
[0028] To solve this problem, we propose providing the memory definition and its use as a serialized object in an accessible memory of the first communication partner. The first communication partner then uses this interface definition to communicate how the second communication partner (other data processing units) should access data in its memory.
[0029] It is preferred if the interface definition according to step a) is first created as an XML structure or JSON structure and a serialization according to step b) is then carried out with a serialization function for XML or JSON.
[0030] XML and / or JSON are particularly suitable for describing complex structures. In addition to the memory layout, XML and / or JSON, in particular, can be used to provide additional information in a data structure, such as the protocol information described above.
[0031] The second communication partner can preferentially read the interface definition and adjust its system to the memory layout used by the first communication partner during “development” or at runtime.
[0032] Preferably, the second communication partner has a configurable communication stack for communication with the first communication partner, wherein this configurable communication stack is configured in step d) with the transmitted interface definition.
[0033] The configurable communication stack here forms a kind of configurable driver for the second communication partner, which is configured with the interface definition provided by the first communication partner in order to enable smooth communication between the communication partners and, in particular, to avoid manually exchanging interface definitions between the communication partners when changes occur to the memory structure relevant for the communication between the communication partners.
[0034] The configurable communication stack or configurable driver is preferably configured to configure itself using the interface definition provided in step c). Particularly preferably, the interface definition is first deserialized for this purpose. The configurable communication stack or configurable driver is preferably configured to then adapt to the data-receiving communication partner according to the interface definition.
[0035] It is particularly preferred if the method is used during the development of data processing units for the data processing of sensor data for highly automated driving.
[0036] Data processing units that appear in particular as second communication partners in the described method are, for example, sensors or sensor systems that make sensor data available to further data processing units that appear in particular as first communication partners in the described method.
[0037] Particularly during the development of such systems, developers often implement changes to data processing units, which also affect the memory layout. Without the described procedure, manual driver configuration on all other data processing units communicating with a data processing unit is often necessary. This is often a very significant effort, which massively complicates the development of such systems. Using the described procedure, this effort can be largely eliminated or replaced by automation.
[0038] Also to be described here is a system for data processing comprising at least two data processing units, wherein at least one data processing unit as a second communication partner and at least one further data processing unit as a first communication partner are set up to exchange interface information with one another according to a method according to one of the preceding claims.
[0039] The invention and the technical context of the invention are explained in more detail below with reference to the figures. The figures show preferred embodiments to which the invention is not limited. It should be noted in particular that the figures, and in particular the proportions depicted in the figures, are only schematic. They show: Fig. 1: a system comprising two data processing units which are configured to exchange interface information with each other according to the method described here; and Fig. 2: a flowchart of the described procedure.
[0040] Fig. Figure 1 shows a system 1 comprising two data processing units 2 that can exchange interface information with each other according to the method described here. One of the data processing units 2 is a second communication partner 3. Another of the data processing units 2 is a first communication partner 4. Both data processing units 2 preferably each have a processor 5 or a CPU and a memory 6. Communication between the two data processing units 2 preferably takes place via a PCI Express interface.
[0041] Preferably, the data processing unit 2 used as the first communication partner 4 makes the interface definition 7 available in a designated memory area 8 of its memory 6. Preferably, the data processing unit 2 used as the second communication partner 3 retrieves this interface definition 7 from this memory area 8. This is schematically illustrated here by the interface transmission 10. Particularly preferred is a processor 5 of the data processing unit 2 used as the second communication partner 3, which is configured to configure a configurable communication stack or a configurable driver 9 with the interface definition 7. This configuration 13 is illustrated as an arrow.The configuration 13 is carried out using the interface definition 7 so that data transmission 11 via the PCI Express interface 12 is subsequently carried out in such a way that the data is correctly stored in the corresponding memory areas 8 provided for this purpose in the memory 6 of the data processing module 2 used as the first communication partner 4 (write access) or the desired data is correctly retrieved from the designated memory areas 8 in the memory 6 of the first communication partner 4 (read access). The arrow for data transmission 11 therefore represents read access and write access, which are carried out using the communication stack or the configurable driver 9 and their configuration according to the interface definition 7.
[0042] Fig.Figure 2 shows a schematic flow diagram of the described method. It shows the process steps a), b), c), and d), which are carried out according to the described method to exchange interface information between communication partners that communicate with each other via a PCI Express interface.
Claims
[1] Method for exchanging interface information between different communication partners for the communication of the communication partners (3,4) via PCI Express, comprising the following steps: a) determining an interface definition (7) which describes memory areas (8) and an internal memory layout of a first communication partner (4) which a second communication partner (3) is to access for reading and / or writing data; b) creating a serialized form of the interface definition (7) determined in step a); c) providing the serialized form of the interface definition (7) created in step b) to the second communication partner (3); and d) Automatic configuration of the second communication partner (3) with the provided interface definition (7) for the communication of the communication partners (3,4). [2] Method according to claim 1, wherein the interface definition (7) determined in step a) also includes protocol information. [3] Method according to one of the preceding claims, wherein the transmission of the interface definition (7) according to step c) comprises storing the interface definition (7) in serialized form in a memory area (8) of the first communication partner (4) provided for this purpose, wherein second communication partners (3) retrieve (10) the interface definition (7) from the memory area (8) of the first communication partner (4). [4] Method according to one of the preceding claims, wherein the interface definition (7) according to step a) is first created as an XML structure or JSON structure and a serialization according to step b) is then carried out with a serialization function for XML or JSON. [5] Method according to one of the preceding claims, wherein the second communication partner (3) has a configurable communication stack (9) for communication with the first communication partner (4), wherein this configurable communication stack (9) is configured in step d) with the provided interface definition (7). [6] Method according to one of the preceding claims, wherein the method is used during the development of data processing units (2) for the data processing of sensor data for highly automated driving. [7] System (1) for data processing comprising at least two data processing units (2), wherein at least one data processing unit (2) as a second communication partner (3) and at least one further data processing unit (2) as a first communication partner (4) are set up to exchange interface information with one another according to a method according to one of the preceding claims.
Citation Information
Patent Citations
KR000102568909B1