WO2014089980A1 - 基于PCIe的数据传输系统及方法 - Google Patents
基于PCIe的数据传输系统及方法 Download PDFInfo
- Publication number
- WO2014089980A1 WO2014089980A1 PCT/CN2013/080943 CN2013080943W WO2014089980A1 WO 2014089980 A1 WO2014089980 A1 WO 2014089980A1 CN 2013080943 W CN2013080943 W CN 2013080943W WO 2014089980 A1 WO2014089980 A1 WO 2014089980A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- terminal device
- pcie
- destination
- data packet
- switch
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 226
- 230000002093 peripheral effect Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 13
- 238000011144 upstream manufacturing Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 abstract 1
- 238000004148 unit process Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101150071434 BAR1 gene Proteins 0.000 description 1
- 101100378536 Ovis aries ADRB1 gene Proteins 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Definitions
- PCIe-based data transmission system and method This application claims to be submitted to the Chinese Patent Office on December 11, 2012, and the application number is 201210531995. 5. The invention is entitled “Data Transmission System and Method Based on Peripheral Component Interface Fast Track PCIe" Priority of the patent application, the entire contents of which is incorporated herein by reference.
- TECHNICAL FIELD The present invention relates to a Peripheral Component Interconnect-Express (PCIe) system, and more particularly to a data transmission system and method based on a peripheral component interface fast channel PCIe.
- PCIe Peripheral Component Interconnect-Express
- PCIe Peripheral Component Interconnect-Express
- RC Root Node
- SW switches
- Endpoint Endpoint
- EP terminal devices
- a multi-host shared PCIe switching network is realized, and the Virtual Switch Mode technology is adopted, that is, multiple SWs are virtualized in one PCIe SW, and each virtual The Virtual Switch has an upstream port connected to the host (Host) and multiple downstream ports (link ports) to link the EP device.
- Each Virtual Switch is completely independent and isolated. It can support multiple Hosts on multiple upstream ports in a PCIe chip, support port migration, and implement failover (Fai lover).
- a system based on a peripheral component interface fast path PCIe tunnel provided by an embodiment of the present invention includes:
- PCIe switch with one uplink port and multiple downlink ports
- a management unit connected to the uplink port of the PCIe switch
- the plurality of switch terminal devices are also respectively connected to a plurality of the host processing units or a plurality of the terminal processing units one-to-one;
- the management unit is configured to establish a first path rule, where the first path rule includes a routing path that is routed based on the PCIe switch between each of the switch terminal devices connected to the PCIe switch;
- the host processing unit stores a second path rule, where the second path rule includes a first destination switch that the host processing unit needs to pass when transmitting the first PCIe data packet to the destination terminal device according to the first path rule.
- the second path rule includes a first destination switch that the host processing unit needs to pass when transmitting the first PCIe data packet to the destination terminal device according to the first path rule.
- the host processing unit is further configured to receive the first PCIe data packet sent by the host connected to the host processing unit, where the first PCIe data packet carries a data payload and a terminal of the destination terminal device Routing information; determining, according to the second path rule and the terminal routing information, the first destination switch terminal device corresponding to the destination terminal device, and converting from the first source based on the first PCIe data packet configuration
- the terminal device is routed to the second PCIe data packet of the first destination switch terminal device, where the first source switch terminal device is a switch terminal device connected to the host processing unit; Sending the second PCIe data packet to the first source switch terminal device, so that the first source switch terminal device routes the second PCIe data packet to the first according to the first path rule a destination switch terminal device, the second PCIe data packet includes the data payload;
- the first destination switch terminal device sends the second PCIe data packet to the destination terminal processing unit, where the destination terminal processing unit is the first destination in the multiple terminal processing units a terminal processing unit connected to the switch terminal device; After receiving the second PCIe data packet, the destination terminal processing unit parses the data payload and sends the data payload to the destination terminal device connected to the destination terminal processing unit.
- the host processing unit is configured to be able to route from the first source switch terminal device to the first destination switch terminal device based on the first PCIe data packet configuration.
- the second PCIe packet includes:
- the host processing unit parses the first PCIe data packet, and obtains the terminal routing information and the data payload;
- the host processing unit when constructing the second PCIe data packet, uses the terminal routing information of the target terminal device and the data payload as a data payload of the second PCIe data packet, and adds the The routing information of the first destination switch terminal device is such that the second PCIe data packet can be routed from the first source switch terminal device to the first destination switch terminal device through the PCIe switch.
- the management unit is connected to the PCIe switch when the PCIe switch is powered on.
- Each of the switch terminal devices allocates corresponding device information, where the device information includes a first BDF number and a first BAR space address; the first path rule is a configuration table, and the configuration table includes a BDF number or the first
- the first PCIe data packet further includes: a PCIe data type
- the management unit is specifically configured to:
- the host processing unit is further configured to acquire the first after the first path rule is established by the management unit a path between each of the switch terminal devices included in the path rule;
- the host processing unit is further configured to enumerate PCIe initialization for the terminal device initiated after the first path rule is established according to a path between each of the switch terminal devices included in the first path rule. The process of generating and storing the second path rule.
- the host processing unit includes a structural unit and multiple levels
- the P2P defined in the PCIe specification the first level P2P includes a first P2P, the first P2P is used to connect to the host, the second level P2P includes one or more second P2Ps, and the first P2P is associated with one or a plurality of the second P2Ps connected; each of the second P2Ps being connected to the structural unit;
- the first P2P is configured to receive the first PCIe data packet sent by the host, and select, according to the terminal routing information, a second P2P connected to the first P2P to send the first PCIe data packet to
- the constructing unit is configured to determine, according to the stored second path rule and the terminal routing information, a first destination switch terminal device corresponding to the destination terminal device; based on the received by the host processing unit
- the first PCIe packet constructs a second PCIe data packet that can be routed from the first source switch terminal device to the first destination switch terminal device through the PCIe switch; transmitting the second PCIe data packet to The first source switch terminal device, where the second path rule includes, between the destination switch terminal device and the destination terminal device, when the PCIe data packet is transmitted to the destination terminal device Correspondence.
- the terminal processing unit includes a third path rule, where the third path rule includes a correspondence between the second destination switch terminal device and the destination host that the terminal processing unit needs to pass when the third PCIe data packet is sent to the destination host, where The destination host is a host that needs to receive the third PCIe data packet sent by the terminal processing unit, and the second destination switch terminal device is the host processing unit and the remote switch terminal device.
- the terminal processing unit is further configured to receive the third PCIe data packet sent by the terminal device that is connected to the terminal processing unit, where the third PCIe data packet carries Data payload and host routing information of the destination host; determining, according to the third path rule and the host routing information, the destination host a second destination switch terminal device, and constructing, according to the third PCIe data packet, a fourth PCIe data packet that can be routed from the second source switch terminal device to the second destination switch terminal device, where Two source switch terminal equipment a switch terminal device connected to the terminal processing unit; transmitting the configured fourth PCIe data packet to the second source switch terminal device, so that the second source switch terminal device is configured according to the The first path rule routes the fourth PCIe data packet to the second destination switch terminal device, and the fourth PCIe data packet includes the data payload;
- the second destination switch terminal device After receiving the fourth PCIe data packet, the second destination switch terminal device sends the data packet to the destination host processing unit, where the destination host processing unit is the second host processing unit and the second a host processing unit for the purpose of connecting the destination switch terminal device;
- the destination host processing unit After receiving the fourth PCIe data packet, the destination host processing unit parses the data payload and sends the data payload to the destination host connected to the destination host processing unit.
- an embodiment of the present invention provides a data transmission method based on a peripheral component interface fast channel PCIe, including:
- the host processing unit receives a first PCIe data packet sent by the host connected to the host processing unit, where the first PCIe data packet carries a data payload and terminal routing information of the destination terminal device, where the destination terminal device is Receiving a terminal device of the first PCIe data packet sent by the host;
- the second path rule includes the host processing unit transmitting the first PCIe data packet to the When the terminal device is described, the correspondence between the destination switch terminal device and the destination terminal device that needs to pass;
- the second PCIe data packet includes the data payload, so that the destination switch terminal device sends the second PCIe data packet to be sent to the destination switch terminal device.
- the destination terminal processing unit Determining, by the destination terminal processing unit, the destination terminal processing unit, after receiving the second PCIe data packet, parsing the data payload and transmitting the data payload to the destination terminal connected thereto; wherein, the first path rule a routing path that is routed based on the PCIe switch between each of the switch terminal devices connected to the PCIe switch, where the source switch terminal device is a switch terminal connected to the host processing unit
- the destination terminal processing unit is a terminal processing unit connected to the destination switch terminal device among the plurality of terminal processing units.
- the first PCIe packet configuration can be routed from the source switch terminal device connected to the host processing unit to the device through the PCIe switch.
- the second PCIe data packet of the destination switch terminal device includes:
- the terminal device routes to the destination switch terminal device.
- the first PCIe data packet further includes: a PCIe data type
- Transmitting the constructed second PCIe data packet to the source switch terminal device, so that the source switch terminal device passes the rule that the second PCIe data packet passes the PCIe exchange according to the first path Routing to the destination switch terminal device includes:
- the configuration table is configured to represent the first path rule, and the configuration table includes a routing path between each switch terminal device established according to the first BDF number or the first BAR space address.
- the first BDF number and the first BAR space address are allocated by the management unit to each of the switch terminal devices connected to the PCIe switch when the PCIe switch is powered on.
- the first path rule is used by the uplink port of the PCIe switch
- the connected management unit is established according to the allocated routing information, and the routing information is allocated by the management unit for PCIe initialization enumeration for each of the switch terminal devices.
- the host processing unit is established in the first path rule And obtaining a path between each of the switch terminal devices included in the first path rule; and after the host is established according to the first path rule, the initiated PCIe initialization enumeration process for the terminal device And generating and storing the second path specification lj.
- an embodiment of the present invention provides a data transmission apparatus based on a peripheral component interface fast path PCIe, including:
- a receiving unit configured to receive a first PCIe data packet sent by the host, where the first PCIe data packet carries a data payload and terminal routing information of the destination terminal device, where the destination terminal device needs to receive the host sending Terminal device for PCIe data packets;
- a constructing unit configured to determine, according to the stored second path rule and the terminal routing information, the destination switch terminal device corresponding to the destination terminal device, where the second path rule includes: the first PCIe according to the first path rule a correspondence between the destination switch terminal device and the destination terminal device that needs to pass when the data packet is transmitted to the destination terminal device; and the first PCIe data packet received by the receiving unit is configured to generate energy Routing a second PCIe data packet from the source switch terminal device to the destination switch terminal device through the PCIe switch; transmitting the second PCIe data packet constructed by the configuration unit to the source switch a terminal device, such that the source switch terminal device receives the second PCIe data packet, and routes the second PCIe data packet to the destination switch through the PCIe switch according to the first path rule Transmitting, by the terminal device, the destination switch terminal device to the destination terminal processing unit after receiving the second PCIe data packet, and After the destination terminal processing unit receives the second PCIe data packet, parses the data payload and sends the data pay
- the constructing unit includes:
- a determining unit configured to determine, according to the stored second path rule and the terminal routing information, a destination switch terminal device corresponding to the destination terminal device;
- a parsing unit configured to parse the first PCIe data packet, obtain the terminal routing information, and the data payload
- a packet processing unit configured to be connected to the parsing unit, configured to use the terminal routing information of the destination terminal device and the data payload as the second PCIe data packet when constructing the second PCIe data packet Data payload, and adding routing information of the destination switch terminal device determined by the determining unit, so that the second PCIe data packet can be routed from the source switch terminal device to the server through the PCIe switch Describe the switch terminal device.
- the receiving unit includes a P2P defined in a multi-level PCIe specification, and the first level P2P includes a First P2P, The first P2P is used to connect to the host, the second level P2P includes one or more second P2Ps, and the first P2P is connected to one or more of the second P2Ps; each of the second P2Ps The structural units are connected;
- the first P2P is configured to receive the first PCIe data packet sent by the host, and select, according to the terminal routing information, a second P2P connected to the first P2P to send the first PCIe data packet to The construction unit.
- the embodiment of the present invention provides a data transmission apparatus based on a peripheral component interface fast path PCIe, including: a host processing unit, receiving a first PCIe data packet sent by a host connected to the host processing unit, The first PCIe data packet carries a data payload and terminal routing information of the destination terminal device; determining, according to the terminal routing information and the stored second path rule, the destination switch terminal device corresponding to the destination terminal device, and Constructing, according to the first PCIe data packet, a second PCIe data packet that can be routed from the source switch terminal device to the destination switch terminal device, and sending the second PCIe data packet, where the second path rule Corresponding relationship between the destination switch terminal device and the destination terminal device that the host processing unit needs to pass when the first PCIe data packet is transmitted to the destination terminal device according to the first path rule, the destination terminal
- the device is a terminal device that needs to receive a PCIe data packet sent by the host, the first road Rules, each of said switch between said first terminal device
- a source switch terminal device connected to the host processing unit, receiving the second PCIe data packet from the host processing unit, and passing the second PCIe data packet through the PCIe exchange according to the first path rule
- the second PCIe data packet includes the data payload
- the destination switch terminal device sends the second PCIe data packet to the destination terminal processing unit, And causing the destination terminal processing unit to parse the data payload after receiving the second PCIe data packet, and send the data payload to the destination terminal connected thereto, where the first path rule includes the PCIe switch.
- the host processing unit includes: a receiving unit, configured to receive a first PCIe data packet sent by a host, where the first PCIe data packet carries a data payload and Terminal routing information of the destination terminal device, where the destination terminal device is a terminal device that needs to receive a PCIe data packet sent by the host;
- the second path rule includes: between the destination switch terminal device and the destination terminal device that needs to pass when the first PCIe data packet is transmitted to the destination terminal device according to the first path rule.
- the first path rule includes a routing path that is routed based on the PCI e switch between each of the switch terminal devices connected to the PCIe switch.
- the constructing unit includes: a determining unit, configured to: according to the stored second path rule and the terminal route Determining, by the information, a destination switch terminal device corresponding to the destination terminal device;
- a parsing unit configured to parse the first PCIe data packet, obtain the terminal routing information, and the data payload
- a packet processing unit configured to be connected to the parsing unit, configured to use the terminal routing information of the destination terminal device and the data payload as the second PCIe data packet when constructing the second PCIe data packet Data payload, and adding routing information of the destination switch terminal device determined by the determining unit, so that the second PCIe data packet can be routed from the source switch terminal device to the server through the PCIe switch Describe the switch terminal device.
- the data transmission system and method based on the peripheral component interface fast channel PCIe provided by the embodiment of the present invention, by setting a host processing unit corresponding to the host, a terminal processing unit corresponding to the terminal, and a switch terminal device, so that each host or terminal device passes
- the processing unit and the switch terminal device are connected to the downlink port of the PCIe switch, and the standard PCIe switch supports multiple downlink ports, so the limitation of the PCIe switching partition can be exceeded.
- FIG. 1 is a schematic structural diagram of a data transmission system based on a peripheral component interface fast channel PCIe according to the present invention
- FIG. 2 is a schematic diagram of a P2P generated by a host processing unit in a data transmission system based on a peripheral component interface fast channel PCIe according to the present invention
- FIG. 3 is a schematic diagram of a process of constructing a second PCIe data packet according to Embodiment 1 of the present invention.
- FIG. 4 is a schematic flowchart of a method for data transmission based on PCIe according to Embodiment 2 of the present invention.
- FIG. 5 is a schematic structural diagram of a PCIe data transmission system based on specific hardware according to Embodiment 3 of the present invention
- FIG. FIG. 6 is a schematic structural diagram of a PCIe-based data transmission apparatus according to Embodiment 4 of the present invention
- FIG. 7 is a schematic structural diagram of a PCIe-based data transmission apparatus according to Embodiment 5 of the present invention.
- FIG. 1 is a schematic structural diagram of a data transmission system based on a peripheral component interface fast channel PCIe according to the present invention.
- the PCIe tunnel-based system includes: a PCIe switch 11, a switch endpoint (swEP), and a switch management unit (Switch MCPU).
- the PCIe switch 11 includes an uplink port and a plurality of downlink ports, and the management unit 13 is connected to the uplink port of the PCIe switch 11, and the switch terminal device 12 is connected to the downlink port of the PCIe switch.
- the host processing unit 14 or the terminal processing unit 15 is connected to the switch terminal device 12, the host 16 corresponds to the host processing unit 14, and the terminal device 17 corresponds to the terminal processing unit 15.
- the PCIe switch 11 (PCIe Switch) has one uplink port and multiple downlink ports, and the uplink port is connected to the management unit 13, and each switch port is connected to the switch terminal device 12, and each A switch terminal device 12 is coupled to the host processing unit 14 or the terminal processing unit 15. If the switch terminal device 12 corresponds to a host, the switch terminal device 12 is connected to the host processing unit 14, otherwise, if the switch terminal device 12 corresponds to a terminal device, the switch terminal device 12 and the terminal processing unit 15 connection. Both the host processing unit and the terminal processing unit 15 are used to implement similar functions, which may be collectively referred to as "processing units", and the names of the two are distinguished here for better illustration.
- the host processing unit (such as the host processing unit 1, 2) is not performed. Strictly distinguished, it can be considered that the description of the host processing unit can be applied to each host processing unit.
- Each of the processing units (including the host processing unit 14 and the terminal processing unit 15) and each of the switch terminal devices 12 may be based on a Field Programmable Grating Array (FPGA) or an Application Specific Integrated Circuit (Application Specific Integrated Circuit). The following is referred to as logic device such as ASIC or other similar processor.
- FPGA Field Programmable Grating Array
- ASIC Application Specific Integrated Circuit
- the switch terminal device refers to a terminal device (Endpoint, hereinafter referred to as EP) directly connected to the PCIe switch, how to use logic device or the like.
- EP a terminal device
- These switch terminal devices 12 are implemented by those skilled in the art and will not be described here.
- the management unit 13 may be a CPU, and the PCIe switch 11 may use an existing PCIe switch chip.
- the optional physical form is that the management unit 13 and the PCIe switch are integrated on a single board, and the host 16 and the corresponding host processing unit 14 and the switch terminal device 12 are integrated on a single board, and the terminal device 17 corresponds to the same.
- the terminal processing unit 15 and the switch terminal device 12 are integrated on a single board.
- the board where the host 16 is located and the board where the terminal device 17 is located are connected to the board where the PCIe switch 11 is located through the PCIe interface.
- the above is only a specific application implementation form, and other hardware methods are used (such as several terminals).
- the device 17, the terminal processing unit 15 and the switch terminal device 12 are implemented on a single board. This embodiment is also not limited.
- EP peripheral component interface fast channel
- the management unit 13 When the system is initially powered up, the management unit 13 completes the configuration of all the switch terminal devices 12 in the system, that is, the switch terminal devices 12 implemented by all logic devices (such as FPGAs): swEP1, swEP2, swEP3, swEP4, swEP5 Corresponding device information. Then, the management unit 13 establishes a first path rule by using the PCIe initialization enumeration according to the allocated device information, where the first path rule includes a routing path based on PCIe between each switch terminal device 12 connected to the PCIe switch 11. In this embodiment, a routing path between swEP 1 and swEP3, swEP1 and swEP4, swEP2, and swEP5 is established based on the first path rule.
- the switch terminal devices 12 implemented by all logic devices (such as FPGAs): swEP1, swEP2, swEP3, swEP4, swEP5 Corresponding device information.
- the first path rule is established by the management unit 13. Specifically, the management unit 13 allocates routing information to each switch terminal device 12 when performing PCIe initialization enumeration; and establishes a first path rule according to the allocated routing information.
- the PCIe initialization enumeration is a process of the root complex (Root Complex, hereinafter referred to as RC) of the PCIe specification.
- the node is connected to the uplink port of the PCIe switch 11, which is an RC node.
- Each of the switch terminal devices 12 is connected to the downlink port of the PCIe switch 11, which is an EP node.
- the RC ie, the management unit 13
- allocates routing information for the EP ie, the switch terminal device 12.
- ID routing uses BDF Information as routing information.
- BDF information refers to the general name of Bus number, Device number, and Function number. Address routing uses the BAR space address as routing information.
- the management unit 13 After the routing information is allocated, the management unit 13 establishes a first path rule according to the allocated routing information, and the path definition may specifically be a configuration table, and the configuration table includes between each switch terminal device established according to the BDF information or the BAR space address. Routing path
- Table 1 An example of a configuration table is shown in Table 1:
- swEP1 - BDF1 represents the BDF information of swEP1
- swEP1 - BAR1 represents the BAR space address of swEP1, and the rest are similar.
- the first horizontal entry defines the path from swEP1 to swEP3 via BDF information.
- the second horizontal entry defines the path from swEP1 to ljswEP3 via the BAR information.
- a general PCIe switch needs to forward PCIe packets of various data types (the data type of the packet will be carried in the packet and identified by some identifier bits). Therefore, the paths for these two specific routing methods must be defined.
- the routing information corresponding to the specific routing mode may also be used, such as using only BDF information or only using a BAR space address. It should be noted that the foregoing configuration table is only a configuration table used in an example in a logical sense, and the specific implementation method is not limited in this embodiment.
- the establishment of the first path rule is equivalent to opening a channel between the switch terminal devices that need to establish a path, and the switch terminal devices at both ends of the subsequent path can route the PCIe data packet based on the first path rule.
- the host processing unit 14 stores a second path rule, and the second path rule includes a correspondence between the destination switch terminal device and the destination terminal device that the host processing unit 14 needs to pass when transmitting the PCIe data packet to the destination terminal device.
- the destination terminal device is a terminal device that needs to receive a PCIe data packet sent by the host
- the destination switch terminal device is a switch terminal device that is connected to the destination terminal device by the terminal processing unit among the plurality of switch terminal devices. For example, if the host processing unit 1 sends the first PCIe data packet to the destination terminal device to the EP1 through the swEP1, it needs to know which destination swEP (the switch terminal device 12) corresponds to the EP1.
- the routing address of the destination swEP can be filled in, and passed from the swEP1 to the swEP3 in the PCIe switch 11 through the first path rule, and finally to the EP1 corresponding to the swEP3.
- the host processing unit 14 can obtain the path between the switch terminal devices included in the first path rule. Specifically, it can be obtained by using various methods, such as storing the first path in an area, and letting the host processing unit 14 obtain the information; or sending the path information to the host processing unit 14 directly through some messages.
- the host processing unit 14 is further configured to: according to the path between the switch terminal devices 12 included in the first path rule, after the first path rule is established, the host processing unit 14 initiates a PCIe initialization enumeration process for the terminal device 17 In to generate and store the second path rule.
- the host processing unit 14 also performs PCIe initialization enumeration on the EP devices (such as EP1 and EP2) that are connected to the host.
- the data packets used for enumeration pass through the respective terminals through the terminal device 17.
- the node includes a terminal processing unit and a switch terminal device 12. Therefore, it is easy to obtain the destination EP corresponding to the destination swEP.
- the host processing unit 1 and the path included in the first path rule of the swEPl-- SW EP3 finally access the EP1
- the host processes Unit 1 obviously knows that swEP3 corresponds to EP1 (each swEP is connected to only one terminal, so it must be accessed through swEP3, ie swEP3 corresponds to EP1).
- FIG. 2 is a host processing in the data transmission system of the peripheral component interface fast channel PCIe according to the present invention.
- the unit generates a schematic diagram of P2P. Therefore, in this embodiment, the host processing unit can "simulate" a PCIe switch and let the host act as an RC.
- the host processing unit may include multi-level P2P (also known as P2P bridge, or peer-to-peer device, or point-to-point bridge).
- the P2P is a concept defined in the PCIe protocol.
- the first level P2P includes a first P2P, that is, one P2P closest to the host 1 in FIG. 2 is the first P2P of the first level, the first P2P is connected to the host, and the second level P2P includes one or more second P2Ps.
- the second P2P may be connected to other subunits in the host unit (such as a construction unit for constructing a second PCIe packet).
- the P2P is only a logical concept.
- the corresponding logic device can respond to the packets sent by some hosts by using the P2P response mode defined in the PCIe specification, and the host receives the response packets. After that, it is considered to be a P2P transmission.
- the number of second-level P2Ps can be the same as the number of terminal devices connected to the host.
- host 1 needs to communicate with EP1 and EP2, and two second P2Ps are needed to implement two paths.
- more second P2Ps may also be generated, and these additional second P2Ps are used to serve other newly added EPs.
- the host processing unit generates some additional second P2Ps, which are also assigned routing information (such as BDF information, or a BAR space address) during the host initialization enumeration, and subsequent new EPs are added (for example, In Figure 1, the board where the EP3 is located is inserted into the system and connected to the PCIe switch.
- the host 1 needs to access the EP3.
- the management unit 13 can add a path from swEP1 to swEP5 in the first path rule to open the swEPl.
- the host processing unit may further allocate a routing information to the new EP according to the additional second P2P routing information by using a PCIe initialization enumeration (eg, the new EP's BAR space address is in the additional second P2P BAR space address.
- the subsequent transmission can send data packets to the new EP, and pass to the new EP through all levels of P2P and swEP1.
- the host can implement PCIe initialization enumeration through the depth-first algorithm and allocate routing information for the terminal device (such as EP1).
- the data packets to be enumerated need to pass through the PCIe switch 11.
- the first path rule since the first path rule is already available, it is equivalent to opening the channel between the PCIe switches.
- the routing information of the peer switch routing device (the original packet is used as the Payload) needs to be added. After a new packet is reconstructed, it can be transmitted between the switch devices at both ends of the PCIe switch.
- the host may send a PCIe data packet to the terminal.
- the host 1 sends data to the EP1 as an example, and the data transmission system based on the peripheral component interface fast channel PCIe of the present invention is used.
- host 1 is the source host
- swEP1 is the source switch terminal device
- swEP3 is the destination switch terminal device
- EP1 is the destination terminal device.
- the host processing unit 1 is configured to receive a first PCIe data packet sent by the host 1 connected thereto, where the first PCIe data packet carries the terminal routing information of the EP1 and the data payload; where the terminal routing information is based on the PCIe data packet type (by The specific field in the field TLP Header in the PCIe packet is determined to be different from the BDF information or the BAR space address, and the data payload is located in the payload field in the packet; the most critical part of the first PCIe packet is the data payload, ie The data that is really needed to be received by the terminal device is to serve the data payload to the terminal device.
- the host processing unit 1 is further configured to determine, according to the second path rule and the terminal routing information, the destination switch terminal device 12, BPswEP3 corresponding to EP1, and according to the first PCIe data packet configuration, can be routed from the swEP1 connected to the host processing unit 1 to the swEP3.
- the destination terminal device can be known by the terminal routing information.
- the second path rule includes the correspondence between the destination switch terminal device and the destination terminal device, the destination switch device corresponding to the destination terminal device swEP3 is also known. .
- Constructing a second PCIe packet can be done based on the following methods:
- the host processing unit 1 parses the first PCIe data packet, and acquires terminal routing information and a data payload; Determining, according to the terminal routing information and the second path rule, the first destination switch terminal device swEP3 that the host processing unit 1 needs to pass when transmitting the first PCIe data packet to the destination terminal device EP1;
- the host processing unit 1 uses the terminal routing information and the data payload of the target terminal device EP1 as the data payload of the second PCIe data packet, and adds the routing information of the first destination switch terminal device swEP3. So that the second PCIe data packet can be routed from the first source switch terminal device swEP1 to the first destination switch terminal device swEP3 through the PCIe switch 11.
- the host processing unit may include a construction unit, and the configuration unit may be connected to the second P2P in the host processing unit, where the configuration unit stores a second path rule, and is configured to receive the first PCIe data packet sent by the second P2P, according to The second path rule and the terminal routing information determine the first destination switch terminal device corresponding to the destination terminal device, and are configured to be routed from the first source switch terminal device swEP1 to the first destination switch terminal device based on the first PCIe data packet.
- the second PCIe data packet of the swEP3 transmits the second PCIe data packet constructed by the construction unit to the first source switch terminal device swEP1.
- FIG. 3 is a schematic diagram of a process of constructing a second PCIe data packet according to an embodiment of the present invention.
- the upper part of the figure is the first PCIe data packet, the payload is Payloadl, and the terminal routing information is included in the TLP Headerl; the lower half of FIG. 3 is the second PCIe data packet, and the second PCIe data is constructed.
- the TLP Header, Payloadl, ECRCl (optional) in the first PCIe packet is used as the Payload of the second PCIe packet (ie, Payload2 in the figure), and is added in the second PCIe packet TLP H ea der2
- the routing information of the destination switch terminal (swEP3) is enabled to be routed to swEP3 through the PCIe switch 11. It should be noted that the above construction manner is not unique. Except for TLP Header, Payloadl, ECRCl (optional), which can be used as the second PCIe packet, the other fields in the first PCIe packet may also be used.
- a PCIe packet is used as the Payload in the second PCIe packet (as long as the Payload2 size is larger than the size of the first PCIe packet).
- the main function of constructing the second PCIe data packet here is that the data payload in the first PCIe data packet can be routed to the destination switch terminal device through the PCIe switch.
- the host processing unit 1 is further configured to send the constructed second PCIe data packet to swEP1, so that swEP1 routes the second PCIe data packet to swEP3 according to the first path rule, and the second PCIe data packet includes the data payload.
- the first path rule has opened the path between the switch terminal devices, so it can be routed to the destination switch terminal device swEP3 through the routing information of the destination switch terminal device in the TLP Headerf.
- the swEP3 will receive the second PCIe data packet and send it to the destination terminal processing unit 1 connected thereto.
- the destination terminal processing unit 1 parses the data payload and sends it to the destination terminal device EP1 connected thereto. . Since the correspondence between the destination terminal processing unit 1 and the destination terminal device EP1 is determined, the second PCIe number is received. According to the packet, the parsed data payload can be directly sent to the destination terminal device.
- a person skilled in the art can easily implement the step of the destination terminal processing unit transmitting the data payload to the destination terminal device. Through the above steps, the process of transmitting the data payload in the PCIe data packet sent by the host to the terminal is implemented.
- the entire PCIe data packet may be parsed, and the data payload may be parsed; or, instead of parsing the data payload, the first PCIe data packet may be directly sent to the terminal. , parsing by the terminal device, these are equivalent implementations, and will not be described here.
- the terminal device can also send a data packet to the host, and the process is similar to the host sending the data packet to the terminal device.
- the terminal processing unit includes a third path rule, and the third path rule includes the terminal processing unit to use the third PCIe data packet.
- the acquisition of the third path rule may be referred to the second path rule, and is not described here.
- the terminal processing unit is further configured to receive a third PCIe data packet sent by the terminal device connected to the terminal processing unit, where the third PCIe data packet carries the data payload and the host routing information of the host; and is determined according to the third path rule and the host routing information.
- a second destination switch terminal device corresponding to the destination host, and constructing, according to the third PCIe data packet, a fourth PCIe data packet that can be routed from the second source switch terminal device to the second destination switch terminal device, where the second source
- the switch terminal device is a switch terminal device connected to the terminal processing unit; and the configured fourth PCIe data packet is sent to the second source switch terminal device, so that the second source switch terminal device according to the first path rule Four PCIe data packets are routed to the second destination switch terminal device, and the fourth PCIe data packet includes a data payload;
- the second destination switch terminal device receives the fourth PCIe data packet and sends the data to the destination host processing unit, where
- the host processing unit is connected to the second destination switch terminal device among the plurality of host processing units
- the main object of the processing unit; Objective PCIe host processing unit receives a fourth data packet payload and sends the parsed data to the destination host is connected to the processing unit of the destination host.
- each host can perform a similar operation and access its corresponding terminal device, and details are not described herein again.
- the host/terminal processing unit, the switch terminal device and the like in this embodiment are only logical functional divisions, and does not indicate that there is a one-to-one corresponding "hardware" unit in the actual device. It can be understood that the functions of these units can also be implemented by other logic modules or even another hardware.
- the logic module (construction unit) for constructing the second PCIe data packet in the host processing unit in this embodiment can also be put into swEP is implemented (ie, the swEP constructs the second PCIe packet after receiving the first PCIe packet and sends it), or, by other new modules.
- Block implementation, even by adding a new hardware unit (such as adding another logic device), these technologies are well known to those skilled in the art, and are equivalent to this embodiment, here is not Narration.
- the host processing unit After the PCIe data packet sent by the host is processed by the host processing unit, a new PCIe data packet is constructed and transmitted in the PCIe switch, and transmitted to the terminal device through the terminal processing unit. Therefore, the host can access the terminal device.
- the host does not need to be connected to the RC (uplink port) of the PCIe switch, but can be indirectly connected to the downlink port, and the existing PCIe switch does not have a limitation on the number of downlink ports. Therefore, more hosts can share the PCIe switching network to access the terminal device.
- the PCIe protocol is simple to implement, and the length of the TLP header in the PCIe is not large (the size is 3DW, or 4DW). Therefore, when constructing a new PCIe packet and when transmitting, the overhead is not large. The transmission delay is also small, making the solution more applicable in the communication system.
- FIG. 4 is a schematic flowchart of a method for data transmission based on PCIe according to Embodiment 2 of the present invention. Referring to Figure 4, the method includes:
- the host processing unit receives the first PCIe data packet sent by the host connected to the host processing unit, where
- the PCIe data packet carries the data payload and the terminal routing information of the destination terminal device, wherein the destination terminal device is a terminal device that needs to receive the PCIe data packet sent by the host.
- the second PCIe data packet includes a data payload, so that the destination switch terminal device receives the second PCIe data packet and sends it to the destination terminal processing unit connected to the destination switch terminal device, and causes the destination terminal processing unit to receive
- the first path rule includes a routing path based on PCIe between each switch terminal device connected to the PCIe switch.
- the terminal routing information and the data payload of the target terminal device are used as the data payload of the second PCIe data packet, and the routing information of the destination switch terminal device is added, so that the second PCIe data packet can be enabled. Routing from the source switch terminal device to the destination switch terminal device through the PCIe switch.
- the first PCIe data packet further includes: a PCIe data type
- the source switch terminal device switch terminal device performs the second rule according to the first path.
- Routing the PCIe data packet to the destination switch terminal device through the PCIe switch includes: causing the first source switch terminal device to select each switch terminal device established according to the first BDF number or the first BAR space address in the configuration table according to the PCIe data type The routing path between the second PCIe packet is routed to the destination terminal device;
- the configuration table is used to indicate a path rule, and the configuration table includes a routing path between each switch terminal device established according to the first BDF number or the first BAR space address, and the first BDF number and the first BAR space address are managed.
- the unit is allocated for each switch terminal device connected to the PCIe switch.
- the first path rule is established by the management unit connected to the uplink port of the PCIe switch according to the allocated routing information, and the routing information is allocated by the management unit for the PCIe initialization enumeration for each switch terminal device.
- the host processing unit acquires a path between each switch terminal device included in the first path rule; and, according to the path between each switch terminal device included in the first path rule, The host generates and stores the second path rule in the PCIe initialization enumeration process initiated by the host according to the first path rule.
- the present embodiment is based on the first embodiment. Therefore, those skilled in the art can refer to the first embodiment for the refinement of the specific steps in the embodiment, or the supplement of other steps, or the explanation of various concepts. .
- FIG. 5 is a schematic structural diagram of a PCIe-based data transmission system based on specific hardware according to Embodiment 3 of the present invention.
- the PCIe-based data transmission system provided in this embodiment includes: PCIe switch chip 56;
- the switch processor 53 for connecting to the uplink port of the chip of the PCIe switch 56;
- a plurality of host logic devices 54 are connected to a host processor 51 and respectively associated with the PCIe switch chip
- a downstream port of 56 is connected.
- a plurality of terminal logic devices 55 are respectively coupled to a terminal processor 52 and are respectively coupled to a downstream port of the PCIe switch 56.
- the switch processor 53 and the PCIe switch 56 can be located on a single board.
- the host processor 51 and the host logic unit 54 can be located on a single board.
- the terminal processor 52 and the terminal logic unit 55 can be located on a single board.
- such hardware partitioning is not limited.
- the host processor 51 and the terminal processor 52 are both processors such as a CPU, which are respectively used to implement the functions of the host in the embodiment 1 and the functions of the terminal.
- the host logic device and the terminal logic device 55 are both logic devices such as an FPGA and an ASIC for implementing the host processing unit 14 and the switch terminal device 12 and the terminal processing unit 15 in the embodiment 1 shown by the broken line portion in FIG. With the function of the switch terminal device 12.
- Each processor and each logic device can be externally connected with a memory for storing the code required for the program to run or the data required for the program to run. If the CPU chip or the FPGA chip has sufficient memory for itself, the memory can be omitted.
- Each processor performs the functions of the host in Embodiment 1 by reading the code stored in the memory; each logic device performs the embodiment by logically programming or reading the corresponding code (the general logic device integrates the processor)
- the functions of the respective processing units, and the functions of the respective units have been described in detail in the first embodiment.
- the functions of the modules in the embodiment can be implemented by the hardware in the embodiment, and details are not described herein again.
- FIG. 6 is a schematic structural diagram of a PCIe-based data transmission device according to Embodiment 4 of the present invention. Referring to FIG. 6, the device provided in this embodiment is provided. 60, including:
- the receiving unit 61 is configured to receive a first PCIe data packet sent by the host, where the first PCIe data packet carries a data payload and terminal routing information of the destination terminal device, where the destination terminal device needs to receive the PCIe data packet sent by the host. Terminal Equipment.
- the constructing unit 62 is configured to determine, according to the stored second path rule and the terminal routing information, the destination switch terminal device corresponding to the destination terminal device, where the second path rule includes transmitting the first PCIe data packet to the destination terminal device according to the first path rule.
- the constructing unit 62 may specifically include:
- a determining unit 621 configured to determine, according to the stored second path rule and the terminal routing information, the destination switch terminal device corresponding to the destination terminal device;
- the parsing unit 622 is configured to parse the first PCIe data packet to obtain the terminal routing information and the data payload.
- the packet processing unit 623 is connected to the parsing unit 622, and configured to: when constructing the second PCIe data packet, the destination terminal device The terminal routing information and the data payload are used as data payloads of the second PCIe data packet, and the routing information of the destination switch terminal device determined by the determining unit is added, so that the second PCIe data packet can pass from the source switch terminal through the PCIe switch. The device routes to the destination switch terminal device.
- the receiving unit 61 includes a first P2P having an uplink port, and the first P2P provides an RC in the RC function host through an uplink port connection included by the first P2P, where the first P2P is configured to receive the first PCIe data packet;
- One or more second P2Ps respectively having downlink ports, each of the second P2Ps for connecting the switch terminal device through the downlink port included by itself; the second P2P is configured to transmit the second PCIe data packet constructed by the constructing unit to Source switch terminal device.
- the present embodiment is based on the foregoing embodiments. Therefore, the specific processing method and hardware implementation method of each unit in this embodiment may be based on the description in the foregoing embodiments, and details are not described herein again.
- the present embodiment provides a PCIe-based data transmission device 70
- FIG. 7 is a schematic structural diagram of a PCIe-based data transmission device according to Embodiment 5 of the present invention.
- the embodiment provides The device 70 includes:
- the host processing unit 71 receives the first PCIe data packet sent by the host connected to the host processing unit 71, where the first PCIe data packet carries the data payload and the terminal routing information of the destination terminal device; according to the terminal routing information and the stored second
- the path rule determines a destination switch terminal device corresponding to the destination terminal device, and constructs a second PCIe data packet that can be routed from the source switch terminal device to the destination switch terminal device based on the first PCIe data packet, and sends a second PCIe data packet, where the second path rule includes a correspondence between the destination switch terminal device and the destination terminal device that the host processing unit needs to pass when transmitting the first PCIe data packet to the destination terminal device according to the first path rule.
- the destination terminal device is a terminal device that needs to receive a PCIe data packet sent by the host, the first path rule, and the first path rule includes a routing route based on the PCIe switch between the switch terminal devices connected to the PCIe switch. path.
- the source switch terminal device 72 is connected to the host processing unit, receives the second PCIe data packet from the host processing unit, and routes the second PCIe data packet to the destination switch terminal device through the PCIe switch according to the first path rule, and second The PCIe data packet includes a data payload, so that the destination switch terminal device sends the second PCIe data packet to the destination terminal processing unit, and causes the destination terminal processing unit to parse the data payload and send the second PCIe data packet.
- the first path rule includes a routing path based on the PCI e switch between each switch terminal device connected to the PCIe switch.
- the host processing unit 71 specifically includes:
- the receiving unit 711 is configured to receive the first PCIe data packet sent by the host, where the first PCIe data packet carries the data payload and the terminal routing information of the destination terminal device, where the destination terminal device needs to receive the PCIe data packet sent by the host.
- Terminal Equipment Terminal Equipment
- the constructing unit 712 determines, according to the stored second path rule and the terminal routing information, the destination switch terminal device corresponding to the destination terminal device; and constructs the first PCIe data packet received by the receiving unit from the source switch terminal device through the PCIe switch Transmitting a second PCIe data packet to the destination switch terminal device; transmitting, by the constructing unit, the second PCIe data packet to the source switch terminal device, where the second path rule includes: the first PCIe data according to the first path rule The correspondence between the destination switch terminal device and the destination terminal device that needs to pass when the packet is transmitted to the destination terminal device; the first path rule includes the PCIe switch between the switch terminal devices connected to the PCIe switch. The routing path of the route.
- the constructing unit 712 specifically includes:
- a determining unit 7121 configured to determine, according to the stored second path rule and the terminal routing information, the destination switch terminal device corresponding to the destination terminal device;
- the parsing unit 7122 is configured to parse the first PCIe data packet to obtain the terminal routing information and the data payload.
- the packet processing unit 7123 is connected to the parsing unit, and configured to: when constructing the second PCIe data packet, the destination terminal device The terminal routing information and the data payload are used as data payloads of the second PCIe data packet, and the routing information of the destination switch terminal device determined by the determining unit is added, so that the second PCIe data packet can pass from the source switch terminal device through the PCIe switch. Route to the destination switch terminal device.
- the present embodiment is based on the foregoing embodiments. Therefore, the specific processing method and hardware implementation method of each unit in this embodiment may be based on the description in the foregoing embodiments, and details are not described herein again.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种基于周边组件接口快速通道PCIe的数据传输系统及方法。该系统包括:PCIe交换网、多个交换器终端设备、管理单元、多个主机处理单元和多个终端处理单元、多个主机及多个终端设备。主机发送的PCIe数据包通过主机处理单元处理后,构造出一个能在PCIe交换器传输的新的PCIe数据包,并通过交换器终端设备,终端处理单元传递到终端设备。本实施例可以突破PCIe单个根节点的限制,实现多主机共享PCIe交换网。
Description
基于 PCIe的数据传输系统及方法 本申请要求于 2012年 12月 11 日提交中国专利局、 申请号为 201210531995. 5、 发 明名称为 "基于周边组件接口快速通道 PCIe 的数据传输系统及方法" 的中国专利申请 的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本 发 明 涉 及 周 边 组 件 接 口 快 速 通 道 ( Peripheral Component Interconnect-Express , 以下简称 PCIe )系统, 尤其涉及一种基于周边组件接口快速通 道 PCIe的数据传输系统及方法。 背景技术 周边组件接口快速通道 ( Peripheral Component Interconnect-Express , 以下简 称 PCIe ) 总线, 是在周边组件接口 (Peripheral Component Interconnect , 以下简称 PCI ) 总线和 /PCI-X总线基础上发展出来的第三代输入输出 (Input/Output , 以下简称 1/0) 局部总线标准。 标准的 PCI Express系统是 Tree型的拓扑结构, 主要组件包括一个 根节点 (Root Complex, 以下简称 RC) , 若干交换器 (Switch, 以下简称 SW) 和若干终 端设备 ( Endpoint , EP, 或者也称 "端点" ) 组成。
现阶段为突破 PCIe系统中多个只能存在单个 RC的限制, 实现多主机共享 PCIe交换 网, 采用分区功能 (Virtual Switch Mode ) 技术, 即在一个 PCIe SW中虚拟出多个 SW, 每个虚拟的交换器(Virtual Switch)中有一个上行端口(upstream port )与主机(Host ) 相连, 有多个下行端口 (downstream port ) 链接 EP设备。 每个 Virtual Switch之间是 完全独立且隔离的, 可以实现在一个 PCIe 芯片中多个 upstream端口支持多个 Host , 支 持端口迁移, 实现失效备援 (Fai lover) 。
在实现本发明实施例的过程中, 发明人发现现有技术中, 芯片最高只支持 8个 upstream端口, 以至于 PCIe最多只支持 8个 Host。 因此, 由于端口限制, 依旧无法实现 更多主机的共享 PCIe交换网。 发明内容
本发明实施例提供一种基于周边组件接口快速通道 PCIe隧道的系统及方法,用于解 决现有技术存在着的现有芯片受端口限制, 无法实现更多主机共享 PCIe交换网的问题。
第一个方面, 本发明实施例提供的基于周边组件接口快速通道 PCIe隧道的系统, 包 括:
PCIe交换器, 具有一个上行端口和多个下行端口;
管理单元, 与所述 PCIe交换器的所述上行端口相连;
多个交换器终端设备, 分别与所述多个下行端口一对一相连;
多个用于连接主机的主机处理单元;
多个用于连接终端设备的终端处理单元;
所述多个交换器终端设备还分别与多个所述主机处理单元或多个所述终端处理单 元一对一相连;
所述管理单元用于建立第一路径规则,所述第一路径规则包括所述 PCIe交换器上所 连接的各所述交换器终端设备之间基于所述 PCIe交换器进行路由的路由路径;
所述主机处理单元存储有第二路径规则,所述第二路径规则包括所述主机处理单元 将第一 PCIe数据包根据第一路径规则传送到目的终端设备时, 需要经过的第一目的交换 器终端设备与所述目的终端设备之间的对应关系, 其中, 所述目的终端设备为需要接收 所述主机发送的所述第一 PCIe数据包的终端设备,所述第一目的交换器终端设备为所述 多个交换器终端设备中通过所述终端处理单元与所述目的终端设备相连的交换器终端 设备;
所述主机处理单元还用于接收与所述主机处理单元连接的所述主机发送的所述第 一 PCIe数据包,所述第一 PCIe数据包携带有数据净荷以及所述目的终端设备的终端路由 信息; 根据所述第二路径规则以及所述终端路由信息确定所述目的终端设备对应的所述 第一目的交换器终端设备, 并基于所述第一 PCIe数据包构造能从第一源交换器终端设备 路由到所述第一目的交换器终端设备的第二 PCIe数据包, 其中, 所述第一源交换器终端 设备为与所述主机处理单元相连的交换器终端设备; 将构造出的所述第二 PCIe数据包发 送给所述第一源交换器终端设备,使得所述第一源交换器终端设备根据所述第一路径规 则将所述第二 PCIe数据包路由到所述第一目的交换器终端设备,所述第二 PCIe数据包包 括所述数据净荷;
所述第一目的交换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单 元, 其中, 所述目的终端处理单元为所述多个终端处理单元中的与所述第一目的交换器 终端设备相连的终端处理单元;
所述目的终端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷并发送给 与所述目的终端处理单元相连的所述目的终端设备。
在第一个方面的第一种可能的实现方式中,所述主机处理单元基于所述第一 PCIe数 据包构造能从第一源交换器终端设备路由到所述第一目的交换器终端设备的第二 PCIe 数据包, 包括:
所述主机处理单元对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所 述数据净荷;
所述主机处理单元在构造所述第二 PCIe数据包时,将所述目标终端设备的所述终端 路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净荷, 并添加所述第一目的 交换器终端设备的路由信息,使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述 第一源交换器终端设备路由到所述第一目的交换器终端设备。
结合第一方面及第一个方面的第一种可能的实现方式, 在第二种可能的实现方式 中, 所述管理单元在所述 PCIe交换器上电时, 为所述 PCIe交换器所连接的各所述交换器 终端设备分配对应的设备信息, 所述设备信息包括第一 BDF号和第一 BAR空间地址; 所述第一路径规则为一配置表, 所述配置表包括根据所述第一 BDF号或者所述第一
BAR空间地址而建立的各所述交换器终端设备之间的路由路径;
所述第一 PCIe数据包还包括: PCIe数据类型;
所述将构造出的所述第二 PCIe数据包发送给所述第一源交换器终端设备,使得所述 第一源交换器终端设备根据所述第一路径规则将所述第二 PCIe数据包路由到所述第一 目的交换器终端设备, 包括:
将构造出的所述第二 PCIe数据包发送给所述第一源交换器终端设备,使得所述第一 源交换器终端设备根据所述 PCIe数据类型选择所述配置表中根据所述第一 BDF号或者所 述第一 BAR空间地址建立的各所述交换器终端设备之间的路由路径将所述第二 PCIe数据 包路由到所述目的终端设备。
结合第一个方面、 第一个方面的第一种及第二种可能的实现方式, 在第三种可能的 实现方式中, 所述管理单元具体用于:
进行 PCIe初始化枚举为各所述交换器终端设备分配路由信息;
根据分配的所述路由信息建立所述第一路径规则。
结合第一方面的第三种可能的实现方式, 在第四种可能的实现方式中, 所述主机处 理单元还用于在所述管理单元建立所述第一路径规则后, 获取所述第一路径规则中包括 的各所述交换器终端设备之间的路径;
所主机处理单元还用于根据所述第一路径规则中包括的各所述交换器终端设备之 间的路径,在所述第一路径规则建立后发起的针对所述终端设备的 PCIe初始化枚举过程 中以生成并存储所述第二路径规则。
结合第一方面及第一个方面的第一种、 第二种、 第三种及第四种可能的实现, 在第 五种可能的实现方式中, 所述主机处理单元包括构造单元以及多级 PCIe规范中定义的 P2P, 第一级 P2P包括一个第一 P2P, 所述第一 P2P用于连接所述主机, 第二级 P2P包括一 个或多个第二 P2P, 所述第一 P2P与一个或多个所述第二 P2P相连; 每个所述第二 P2P与所 述构造单元相连;
所述第一 P2P用于接收所述主机发送的所述第一 PCIe数据包, 根据所述终端路由信 息选择与所述第一 P2P相连的一个第二 P2P将所述第一 PCIe数据包发送给所述构造单元; 所述构造单元用于根据存储的第二路径规则以及所述终端路由信息确定所述目的 终端设备对应的第一目的交换器终端设备; 基于所述主机处理单元接收的所述第一 PCIe 数据包构造出能从第一源交换器终端设备通过所述 PCIe交换器路由到所述第一目的交 换器终端设备的第二 PCIe数据包; 将所述第二 PCIe数据包传输到所述第一源交换器终端 设备, 其中, 所述第二路径规则包括将 PCIe数据包传送到所述目的终端设备时, 需要经 过的所述目的交换器终端设备与所述目的终端设备之间的对应关系。
结合第一方面及第一个方面的第一种、 第二种、 第三种、 第四种及第五种可能的实 现, 在第六种可能的实现方式中, 所述终端处理单元包括第三路径规则, 所述第三路径 规则包括所述终端处理单元将第三 PCIe数据包发送到目的主机时, 需要经过的第二目的 交换器终端设备与所述目的主机之间的对应关系, 其中, 所述目的主机为需要接收所述 终端处理单元发送的第三 PCIe数据包的主机,所述第二目的交换器终端设备为所述多个 交换器终端设备中通过所述主机处理单元与所述目的主机相连的交换器终端设备; 所述终端处理单元还用于接收与所述终端处理单元相连的所述终端设备发送的所 述第三 PCIe数据包,所述第三 PCIe数据包携带有数据净荷以及所述目的主机的主机路由 信息; 根据所述第三路径规则以及所述主机路由信息确定所述目的主机对应的所述第二 目的交换器终端设备, 并基于所述第三 PCIe数据包构造能从第二源交换器终端设备路由 到所述第二目的交换器终端设备的第四 PCIe数据包, 其中, 所述第二源交换器终端设备
为与所述终端处理单元相连的交换器终端设备; 将构造出的所述第四 PCIe数据包发送给 所述第二源交换器终端设备,使得所述第二源交换器终端设备根据所述第一路径规则将 所述第四 PCIe数据包路由到所述第二目的交换器终端设备,所述第四 PCIe数据包包括所 述数据净荷;
所述第二目的交换器终端设备收到所述第四 PCIe数据包后发送给所述目的主机处 理单元, 其中, 所述目的主机处理单元为所述多个主机处理单元中与所述第二目的交换 器终端设备相连的目的的主机处理单元;
所述目的主机处理单元收到所述第四 PCIe数据包后解析出所述数据净荷并发送给 与所述目的主机处理单元相连的所述目的主机。
第二个方面,本发明实施例提供一种基于周边组件接口快速通道 PCIe的数据传输方 法, 包括:
主机处理单元接收与所述主机处理单元相连的主机发送的第一 PCIe数据包,所述第 一 PCIe数据包携带有数据净荷以及目的终端设备的终端路由信息, 其中, 所述目的终端 设备为需要接收所述主机发送的所述第一 PCIe数据包的终端设备;
根据存储的第二路径规则以及所述终端路由信息确定所述目的终端设备对应的目 的交换器终端设备,所述第二路径规则包括所述主机处理单元将所述第一 PCIe数据包传 送到所述目的终端设备时, 需要经过的所述目的交换器终端设备与所述目的终端设备之 间的对应关系;
基于所述第一 PCIe数据包构造能从与所述主机处理单元相连的源交换器终端设备 通过 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数据包;
将构造出的所述第二 PCIe数据包发送给所述源交换机终端设备,使得所述源交换机 终端设备根据第一路径规则将所述第二 PCIe数据包通过所述 PCIe交换器路由到所述目 的交换器终端设备, 所述第二 PCIe数据包包括所述数据净荷, 使得所述目的交换器终端 设备收到所述第二 PCIe数据包后发送给与所述目的交换器终端设备相连的目的终端处 理单元, 并使得所述目的终端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷 并发送给与之相连的所述目的终端; 其中, 所述第一路径规则包括所述 PCIe交换器上所 连接的各所述交换器终端设备之间基于所述 PCIe交换器进行路由的路由路径,所述源交 换器终端设备为与所述主机处理单元相连的交换器终端设备,所述目的终端处理单元为 所述多个终端处理单元中的与所述目的交换器终端设备相连的终端处理单元。
在第二个方面的第一种可能的实现方式中,所述基于所述第一 PCIe数据包构造能从 与所述主机处理单元相连的源交换器终端设备通过所述 PCIe交换器路由到所述目的交 换器终端设备的第二 PCIe数据包, 包括:
对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述数据净荷; 在构造所述第二 PCIe数据包时,将所述目标终端设备的所述终端路由信息以及所述 数据净荷作为所述第二 PCIe数据包的数据净荷, 并添加所述目的交换器终端设备的路由 信息,使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由 到所述目的交换器终端设备。
结合第二个方面及第二个方面的第一种可能的实现方式,在第二种可能的实现方式 中, 所述第一 PCIe数据包还包括: PCIe数据类型;
所述将构造出的所述第二 PCIe数据包发送给所述源交换器终端设备,使得所述源交 换机终端设备根据所述第一路径将规则所述第二 PCIe数据包通过所述 PCIe交换器路由 到所述目的交换器终端设备包括:
将构造出的所述第二 PCIe数据包发送给所述源交换器终端设备,使得所述源交换器 终端设备根据所述 PCIe数据类型选择配置表中根据第一 BDF号或者第一 BAR空间地址建 立的各所述交换器终端设备之间的路由路径将所述第二 PCIe数据包路由到所述目的终 端设备;
其中, 所述配置表用于表示所述第一路径规则, 所述配置表包括根据所述第一 BDF 号或者所述第一 BAR空间地址而建立的各交换器终端设备之间的路由路径,所述第一 BDF 号和所述第一 BAR空间地址通过所述管理单元在所述 PCIe交换器上电时, 为所述 PCIe交 换器所连接的各所述交换器终端设备分配得到。
结合第二个方面及第二个方面的第一种及第二种可能的实现方式,在第三种可能的 实现方式中,所述第一路径规则由所述 PCIe交换器的所述上行端口连接的所述管理单元 根据分配的路由信息建立的,所述路由信息由所述管理单元进行 PCIe初始化枚举为各所 述交换器终端设备分配的。
结合第二个方面及第二个方面的第一种、 第二种及第三种可能的实现方式, 在第四 种可能的实现方式中, 所述主机处理单元在所述第一路径规则建立后, 获取所述第一路 径规则中包括的各所述交换器终端设备之间的路径; 并在主机根据所述第一路径规则建 立后,发起的针对所述终端设备的 PCIe初始化枚举过程中以生成并存储所述第二路径规 贝 lj。
第三个方面,本发明实施例提供一种基于周边组件接口快速通道 PCIe的数据传输装 置, 包括:
接收单元, 用于接收主机发送的第一 PCIe数据包, 所述第一 PCIe数据包携带有数据 净荷以及目的终端设备的终端路由信息, 其中, 所述目的终端设备为需要接收所述主机 发送的 PCIe数据包的终端设备;
构造单元,用于根据存储的第二路径规则以及所述终端路由信息确定所述目的终端 设备对应的目的交换器终端设备,所述第二路径规则包括根据第一路径规则将所述第一 PCIe数据包传送到所述目的终端设备时, 需要经过的所述目的交换器终端设备与所述目 的终端设备之间的对应关系; 基于所述接收单元接收的所述第一 PCIe数据包构造出能从 源交换器终端设备通过所述 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数 据包; 将所述构造单元构造出的所述第二 PCIe数据包传输到所述源交换器终端设备, 以 使得所述源交换器终端设备接收所述第二 PCIe数据包, 并根据所述第一路径规则将所述 第二 PCIe数据包通过所述 PCIe交换器路由到所述目的交换器终端设备,使得所述目的交 换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单元, 并使得所述目的终 端处理单元收到所述第二 PCIe数据包后解析所述数据净荷并发送给与之相连的所述目 的终端,所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之间 基于所述 PCI e交换器进行路由的路由路径。
在第三个方面的第一种可能的实现方式中, 所述构造单元, 包括:
确定单元,用于根据存储的所述第二路径规则以及所述终端路由信息确定所述目的 终端设备对应的目的交换器终端设备;
解析单元, 用于对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述 数据净荷;
包处理单元, 与所述解析单元连接, 用于在构造所述第二 PCIe数据包时, 将所述目 的终端设备的所述终端路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净 荷, 并添加所述确定单元确定的所述目的交换器终端设备的路由信息, 使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由到所述目的交换器 终端设备。
结合第三个方面及第三个方面的第一种可能的实现方式,在第二种可能的实现方式 中, 所述接收单元, 包括多级 PCIe规范中定义的 P2P, 第一级 P2P包括一个第一 P2P, 所
述第一 P2P用于连接所述主机, 第二级 P2P包括一个或多个第二 P2P, 所述第一 P2P与一个 或多个所述第二 P2P相连; 每个所述第二 P2P与所述构造单元相连;
所述第一 P2P用于接收所述主机发送的所述第一 PCIe数据包, 根据所述终端路由信 息选择与所述第一 P2P相连的一个第二 P2P将所述第一 PCIe数据包发送给所述构造单元。
第四个方面,本发明实施例提供一种基于周边组件接口快速通道 PCIe的数据传输装 置,包括: 主机处理单元,接收与所述主机处理单元连接的主机发送的第一 PCIe数据包, 所述第一 PCIe数据包携带有数据净荷以及所述目的终端设备的终端路由信息; 根据所述 终端路由信息以及存储的第二路经规则确定所述目的终端设备对应的目的交换器终端 设备, 并基于所述第一 PCIe数据包构造能从源交换器终端设备路由到所述目的交换器终 端设备的第二 PCIe数据包, 并发送所述第二 PCIe数据包, 其中, 所述第二路径规则包括 所述主机处理单元将所述第一 PCIe数据包根据第一路径规则传送到目的终端设备时, 需 要经过的目的交换器终端设备与所述目的终端设备之间的对应关系,所述目的终端设备 为需要接收所述主机发送的 PCIe数据包的终端设备, 所述第一路径规则, 所述第一路径 规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之间基于所述 PCIe交换器 进行路由的路由路径;
源交换器终端设备, 与所述主机处理单元连接, 从所述主机处理单元接收所述第二 PCIe数据包, 并根据所述第一路径规则将所述第二 PCIe数据包通过所述 PCIe交换器路由 到所述目的交换器终端设备, 所述第二 PCIe数据包包括所述数据净荷, 使得所述目的交 换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单元, 并使得所述目的终 端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷并发送给与之相连的所述 目的终端,所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之 间基于所述 PCIe交换器进行路由的路由路径。
在第四个方面的第一种可能的实现方式中, 所述主机处理单元包括: 接收单元, 用 于接收主机发送的第一 PCIe数据包,所述第一 PCIe数据包携带有数据净荷以及目的终端 设备的终端路由信息, 其中, 所述目的终端设备为需要接收所述主机发送的 PCIe数据包 的终端设备;
构造单元,根据存储的第二路径规则以及所述终端路由信息确定所述目的终端设备 对应的目的交换器终端设备; 基于所述接收单元接收的所述第一 PCIe数据包构造出能从 源交换器终端设备通过所述 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数 据包; 将所述构造单元构造出的所述第二 PCIe数据包传输到所述源交换器终端设备, 其
中,所述第二路径规则包括根据第一路径规则将所述第一 PCIe数据包传送到所述目的终 端设备时, 需要经过的所述目的交换器终端设备与所述目的终端设备之间的对应关系; 所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之间基于所 述 PCI e交换器进行路由的路由路径。
结合第四个方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述构造 单元, 包括: 确定单元, 用于根据存储的所述第二路径规则以及所述终端路由信息确定 所述目的终端设备对应的目的交换器终端设备;
解析单元, 用于对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述 数据净荷;
包处理单元, 与所述解析单元连接, 用于在构造所述第二 PCIe数据包时, 将所述目 的终端设备的所述终端路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净 荷, 并添加所述确定单元确定的所述目的交换器终端设备的路由信息, 使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由到所述目的交换器 终端设备。
本发明实施例提供的基于周边组件接口快速通道 PCIe的数据传输系统及方法,通过 设置与主机对应的主机处理单元、 与终端对应的终端处理单元以及交换器终端设备, 使 得各个主机或终端设备通过处理单元及交换器终端设备连接在 PCIe交换器的下行端口 上, 而标准的 PCIe交换器是支持多个下行端口的, 所以可以突破 PCIe交换分区的限制。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现有 技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还 可以根据这些附图获得其他的附图。
图 1为本发明基于周边组件接口快速通道 PCIe的数据传输系统的架构示意图; 图 2为本发明基于周边组件接口快速通道 PCIe的数据传输系统中主机处理单元生成 P2P的示意图;
图 3为本发明实施例一构造第二 PCIe数据包的过程示意图;
图 4为本发明实施例二基于 PCIe进行数据传输的方法流程示意图;
图 5为本发明实施例三基于具体硬件实现 PCIe数据传输系统的结构示意图;
图 6为本发明实施例四的基于 PCIe的数据传输装置的结构示意图; 图 7为本发明实施例五的基于 PCIe的数据传输装置的结构示意图。 具体实 Itt式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例中 的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例 是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技 术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范 围。
实施例一
图 1为本发明基于周边组件接口快速通道 PCIe的数据传输系统的架构示意图。如图 1 所示, 该基于 PCIe隧道的系统包括: PCIe交换器 11, 多个交换器终端设备 (Switch Endpoint, 以下简称 swEP) 12, 管理单元 (Switch Manage Central Processing Unit, 以下简称 Switch MCPU) 13, 多个主机处理单元 14, 多个终端处理单元 15, 多个主机 16 及多个终端设备 17。
具体的, 请参照图 1, PCIe交换器 11包括一个上行端口和多个下行端口, 管理单元 13与 PCIe交换器 11的上行端口相连, 交换器终端设备 12与 PCIe交换器的下行端口一对一 相连, 主机处理单元 14或终端处理单元 15连接在交换器终端设备 12上, 主机 16与主机处 理单元 14对应, 终端设备 17与终端处理单元 15对应。
本发明实施例中, PCIe交换器 11 (PCIe Switch, 以下简称 PCIe SW) 具有一个上行 端口和多个下行端口, 上行端口与管理单元 13相连, 每一下行端口上连接交换器终端设 备 12, 每一交换器终端设备 12与主机处理单元 14或是终端处理单元 15相连。 若交换器终 端设备 12对应的是主机, 则该交换器终端设备 12与主机处理单元 14连接, 否则, 若交换 器终端设备 12对应的是终端设备, 该交换器终端设备 12与终端处理单元 15连接。 主机处 理单元以及终端处理单元 15都用于实现类似的功能, 可以统称为 "处理单元", 这里为 了更好地说明而分明对两者名字进行区别。 同时, 除了用于具体说明某个例子而限定为 某个具体主机处理单元(如主机处理单元 1 )夕卜, 本实施例中, 并不对主机处理单元(如 主机处理单元 1、 2) , 进行严格区分, 可以认为, 针对主机处理单元的描述, 可以适用 于各个主机处理单元。
其中, 各处理单元 (包括主机处理单元 14, 终端处理单元 15) 以及各交换器终端设 备 12可以基于现场可编程门阵列 (Field Programmable Gata Array, 以下简称 FPGA) 或专用集成电路 (Application Specific Integrated Circuit, 以下简称 ASIC等逻辑 器件或其他类似的处理器来实现, 这里的交换器终端设备是指直接连接在 PCIe交换器上 的终端设备 (Endpoint, 以下简称 EP) , 如何用逻辑器件或其他类似处理器实现这些交 换器终端设备 12为本领域技术人员所公知的技术, 这里不再赘述。 管理单元 13可以是一 个 CPU, PCIe交换器 11可以采用现有的 PCIe交换器芯片。 本实施例的一个可选的物理形 态是将管理单元 13跟 PCIe交换器集成在一块单板上, 主机 16及与其对应的主机处理单元 14和交换器终端设备 12集成在一块单板上, 终端设备 17及与其对应的终端处理单元 15和 交换器终端设备 12集成在一块单板, 主机 16所在的单板以及终端设备 17所在单板通过 PCIe接口与 PCIe交换器 11所在的单板相连。 当然, 上述只是一种具体的应用实现形式, 采用其他的硬件方式(如将几个终端设备 17、 终端处理单元 15和交换器终端设备 12做到 一块单板上) 本实施例也不限定。
下面, 结合图 1对本发明实施例提供的基于周边组件接口快速通道 PCIe的数据传输 系统进行详细说明。 本实施例中, 通过数据传输系统建立主机 1、 主机 2与终端设备 (Endpoint, 以下简称 EP) EP1、 EP2及 EP3的通信连接。
系统初始上电的时候, 管理单元 13完成对系统中所有交换器终端设备 12的配置, 即 对所有逻辑器件 (如 FPGA) 实现的交换器终端设备 12: swEPl , swEP2, swEP3, swEP4, swEP5分配对应的设备信息。 然后, 管理单元 13根据分配后的设备信息通过 PCIe初始化 枚举建立第一路径规则,第一路径规则包括 PCIe交换器 11上所连接的各交换器终端设备 12之间基于 PCIe进行路由的路由路径, 本实施例中, 基于第一路径规则建立 swEP 1与 swEP3、 swEPl与 swEP4、 swEP2与 swEP5之间的路由路径。
第一路径规则由管理单元 13来建立, 具体的, 管理单元 13, 在进行 PCIe初始化枚举 时为各交换器终端设备 12分配路由信息; 根据分配的路由信息建立第一路径规则。
PCIe初始化枚举是 PCIe规范定义的根联合体 (Root Complex, 以下简称 RC) 节点扫 描发现各 EP节点的过程, 本实施中, 管理单元 13连接 PCIe交换器 11的上行端口, 为一个 RC节点,各交换器终端设备 12连接 PCIe交换器 11的下行端口, 为 EP节点,在枚举过程中, RC (即管理单元 13) 为 EP (即交换器终端设备 12) 分配路由信息, 在 PCIe中, 根据 PCIe 包类型的不同, 路由分两种, 一种是 ID路由, 一种是地址路由。 其中, ID路由使用 BDF
信息作为路由信息, BDF信息是指 Bus (总线)号、 Device (设备)号、 Function (功能) 号的统称; 地址路由使用 BAR空间地址作为路由信息。
分配完路由信息后, 管理单元 13根据分配的路由信息建立第一路径规则, 路径的定 义具体可以为一个配置表,配置表包括根据 BDF信息或者 BAR空间地址而建立的各个交换 器终端设备之间的路由路径;
一个配置表的示例如表 1所示:
表 1
表 1中, swEPl— BDF1表示 swEPl的 BDF信息, swEPl— BAR1表示 swEPl的 BAR空间地址, 其余表示类似。 第一个横向的条目定义了通过 BDF信息, 从 swEPl路由到 swEP3的路径。 第二个横向的条目定义通过 BAR信息,从 swEPl路由至 ljswEP3的路径。实际当中,一般 PCIe 交换器需要转发各种数据类型 PCIe数据包(包的数据类型会在包中携带, 通过某些标识 位进行标识) 。 因此, 针对这两种具体路由方式的路径都要定义。 当然, 如果能够确定 某条路径只用于传输某种特定的路由方式对应的 PCIe数据包,那么也可使用该特定的路 由方式对应的路由信息, 如只使用 BDF信息或只使用 BAR空间地址。 需要说明的是, 上述 配置表只是一个逻辑意义上用于示例的配置表, 本实施例并不限定其具体实现方法。
通过第一路径规则的建立,相当于在需要建立路径的交换器终端设备之间打通了通 道, 后续路径两端的交换器终端设备之间可以基于第一路径规则对 PCIe数据包进行路 由。
主机处理单元 14存储有第二路径规则,第二路径规则包括主机处理单元 14将 PCIe数 据包传送到目的终端设备时, 需要经过的目的交换器终端设备与目的终端设备之间的对 应关系。 其中, 目的终端设备为需要接收主机发送的 PCIe数据包的终端设备, 目的交换 器终端设备为多个交换器终端设备中通过终端处理单元与目的终端设备相连的交换器 终端设备。 例如, 如果主机处理单元 1通过 swEPl向目的终端设备向 EP1发送第一 PCIe数 据包时, 需要知道接收端是哪个目的 swEP (交换器终端设备 12) 与 EP1相对应, 这样才
能填上该目的 swEP的路由地址, 以通过第一路径规则在 PCIe交换器 11中从 swEPl传到 swEP3, 并最终传到 swEP3对应的 EP1。
本实施例中, 主机处理单元 14在管理单元 13建立好第一路径规则后, 可以获取第一 路径规则中包括的各交换器终端设备之间的路径。 具体可以通过多种方法获取, 如将第 一路径存储在一块区域, 让主机处理单元 14去获取; 或者直接通过某些消息将这些路径 信息发送给主机处理单元 14。
主机处理单元 14还用于根据第一路径规则中包括的各交换器终端设备 12之间的路 径, 在第一路径规则建立后, 主机处理单元 14发起的针对终端设备 17的 PCIe初始化枚举 过程中以生成并存储第二路径规则。
本实施例中, 主机处理单元 14也对自己下挂的 EP设备 (如 EP1、 EP2 )进行 PCIe初始 化枚举, 在枚举过程中, 用于枚举的数据包会经过通过终端设备 17的各个节点, 包括终 端处理单元及交换器终端设备 12。 因此, 很容易获取目的 swEP对应的目的 EP, 例如, 主 机 1枚举时,通过主机处理单元 1以及经过 swEPl--SWEP3这条第一路径规则中包括的路径 最终访问到了 EP1 , 那么主机处理单元 1显然知道 swEP3是对应于 EP1的(每个 swEP都只连 接了一个终端, 所以必然是通过 swEP3来访问到的, 也即 swEP3对应于 EP1 ) 。
由于 PCIe初始化枚举是需要由 PCIe交换器中 RC来完成, 所以在主机进行枚举时, 要 让主机作为一个 RC, 图 2为本发明基于周边组件接口快速通道 PCIe的数据传输系统中主 机处理单元生成 P2P的示意图。 因此, 本实施例中, 主机处理单元可以"模拟"一个 PCIe 交换器, 让主机作为一个 RC。 具体的, 参见图 2, 以主机处理单元 1为例, 主机处理单元 可以包括多级 P2P (P2P也称 P2P桥, 或点对点设备, 或点对点桥) , P2P为 PCIe协议中定 义的一个概念, 第一级的 P2P包括一个第一 P2P, 即图 2中最靠近主机 1的一个 P2P为第一 级的第一 P2P, 第一 P2P与主机中相连, 第二级 P2P包括一个或多个第二 P2P, 第二 P2P可 以连接主机单元中的其他子单元 (如用于构造第二 PCIe数据包的构造单元) 。
需要说明的是, 本实施例中 P2P只是一个逻辑上的概念, 具体实现时, 可以让对应 的逻辑器件用 PCIe规范中定义的 P2P响应方式响应一些主机发送的包, 让主机收到这些 响应包后, 认为是一个 P2P发送的。
第二级 P2P的数量可以与主机相连的终端设备的数量相同, 例如, 图 1中, 主机 1需 要与 EP1以及 EP2通信, 则需要两个第二 P2P来实现两条通路。 事实上, 为了更好地扩展, 更好地支持热插拔, 本实施例中, 也可以生成更多个的第二 P2P, 这些额外的第二 P2P用 于为后续其他新加入的 EP服务。
具体的,主机处理单元生成一些额外的第二 P2P,这些 P2P在主机初始化枚举过程中, 也会被分配路由信息 (如 BDF信息、 或 BAR空间地址) , 后续有新的 EP加入后 (例如, 图 1中 EP3所在的单板插入到系统与 PCIe交换器相连, 需要让主机 1也能访问到 EP3) , 管理 单元 13可以在第一路径规则中增加一条从 swEPl到 swEP5的路径, 打通 swEPl到 swEP5的连 接。 然后, 主机处理单元可以再通过一次 PCIe初始化枚举根据额外的第二 P2P的路由信 息为新的 EP分配一个路由信息 (如新 EP的 BAR空间地址在额外的第二 P2P的 BAR空间地址 所在的范围内) , 后续使可以向新 EP发送数据包, 通过各级 P2P, swEPl传递给新 EP。
通过上述各个 P2P, 主机就能够通过深度优先算法实现 PCIe初始化枚举, 为终端设 备 (如 EP1 ) 分配路由信息。 在枚举过程中, 枚举要用到的数据包需要通过 PCIe交换器 11, 而本实施例中, 由于已经有了第一路径规则, 所以相当于打通了 PCIe交换器之间的 通道, 只需要加上对端交换器路由设备的路由信息 (原包作为 Payload) , 重新构造一 个新包后, 就可以在 PCIe交换器两端的交换器设备之间进行传输。
在获取了第一路径规则, 第二路径规则之后, 主机便可以向终端发送 PCIe数据包, 具体的, 以主机 1向 EP1发送数据为例, 对本发明基于周边组件接口快速通道 PCIe的数据 传输系统进行详细阐述, 主机 1为源主机, swEPl为源交换器终端设备, swEP3为目的交 换器终端设备, EP1为目的终端设备。
主机处理单元 1用于接收与之相连的主机 1发送的第一 PCIe数据包,第一 PCIe数据包 携带有 EP1的终端路由信息以及数据净荷;这里的终端路由信息根据 PCIe数据包类型(由 PCIe数据包中字段 TLP Header当中的特定域确定)不同可以是 BDF信息或者 BAR空间地址, 数据净荷位于包中的 payload字段当中; 第一 PCIe数据包中最关键的部分是数据净荷, 即真正需要让终端设备接收的数据,其他信息都是为了将数据净荷能够传递到终端设备 来服务的。
主机处理单元 1还用于根据第二路径规则以及终端路由信息确定 EP1对应的目的交 换器终端设备 12, BPswEP3, 并基于第一 PCIe数据包构造能从与主机处理单元 1相连的 swEPl路由到 swEP3的第二 PCIe数据包;
通过终端路由信息可以知道目的终端设备, 同时, 由于第二路径规则包括目的交换 器终端设备与目的终端设备之间的对应关系, 因此, 也就知道了目的终端设备对应的目 的交换器终端设备 swEP3。
构造第二 PCIe数据包可以基于下面方法来完成:
主机处理单元 1对第一 PCIe数据包进行解析, 获取终端路由信息以及数据净荷;
根据终端路由信息和第二路径规则确定主机处理单元 1将第一 PCIe数据包传送到目 的终端设备 EP1时需要经过的第一目的交换器终端设备 swEP3;
主机处理单元 1在构造第二 PCIe数据包时,将目标终端设备 EP1的终端路由信息以及 数据净荷作为第二 PCIe数据包的数据净荷, 并添加第一目的交换器终端设备 swEP3的路 由信息, 使得第二 PCIe数据包能够通过 PCIe交换器 11从第一源交换器终端设备 swEPl路 由到第一目的交换器终端设备 swEP3。
本实施中, 主机处理单元可以包括构造单元, 构造单元可以与主机处理单元中的第 二 P2P相连, 构造单元存储有第二路径规则, 用于接收第二 P2P发送的第一 PCIe数据包, 根据第二路径规则以及终端路由信息确定目的终端设备对应的第一目的交换器终端设 备, 并基于第一 PCIe数据包构造出能从第一源交换器终端设备 swEPl路由到第一目的交 换器终端设备 swEP3的第二 PCIe数据包, 将构造单元构造出的第二 PCIe数据包传输到第 一源交换器终端设备 swEPl。
更具体的, 参见图 3, 图 3为本发明实施例一构造第二 PCIe数据包的过程示意图。 如 图 3所示, 图中上半部分为第一 PCIe数据包, 净荷为 Payloadl , 终端路由信息包括在 TLP Headerl里面; 图 3中下半部分为第二 PCIe数据包, 构建第二 PCIe数据包时, 将第一 PCIe 数据包中的 TLP Header, Payloadl , ECRCl (可选) 作为第二 PCIe数据包的 Payload (即 图中的 Payload2) , 并且在第二 PCIe数据包 TLP Header2中添加目的交换器终端设备 ( swEP3) 的路由信息, 使之能够通过 PCIe交换器 11路由到 swEP3。 需要说明的是, 上述 构造方式并不唯一, 除了 TLP Header, Payloadl , ECRCl (可选) 可以作为第二 PCIe数 据包的 Payload外, 第一 PCIe数据包中其他字段也可以, 甚至可以将整个第一 PCIe数据 包作为第二 PCIe数据包中的 Payload (只要 Payload2大小大于第一 PCIe数据包的大小) 。 这里构造第二 PCIe数据包主要作用是能将第一 PCIe数据包中数据净荷通过 PCIe交换器 路由传递给目的交换器终端设备。
主机处理单元 1还用于将构造出的第二 PCIe数据包发送给 swEPl , 使得 swEPl根据第 一路径规则将第二 PCIe数据包路由到 swEP3, 该第二 PCIe数据包包括数据净荷。 第一路 径规则已经打通了交换器终端设备之间的通路, 因此, 可以通过 TLP Headerf中的目的 交换器终端设备的路由信息将其路由到目的交换器终端设备 swEP3。
swEP3将收到第二 PCIe数据包后发送给与其相连的目的终端处理单元 1, 目的终端处 理单元 1收到第二 PCIe数据包后解析出数据净荷并发送给与之相连的目的终端设备 EP1。 由于目的终端处理单元 1跟目的终端设备 EPl对应关系是确定的, 因此, 收到第二 PCIe数
据包后, 可以直接将解析出数据净荷发送给目的终端设备。 本领域技术人员很容易实现 目的终端处理单元将数据净荷往目的终端设备上发送的步骤。 通过上述步骤, 就实现了 将主机发送的 PCIe数据包中的数据净荷发送给终端的过程。
类似的, 如果封装的是整个 PCIe数据包, 则可以解析出整个 PCIe数据包, 再解析出 数据净荷; 或者, 也可以不解析出数据净荷, 而直接将第一 PCIe数据包发送给终端, 由 终端设备来进行解析, 这些都是等同的实现方式, 这里不再赘述。
同理,终端设备也可以向主机发送数据包,过程与主机向终端设备发送数据包类似, 此时, 终端处理单元包括第三路径规则, 第三路径规则包括终端处理单元将第三 PCIe数 据包发送到目的主机时, 需要经过的第二目的交换器终端设备与目的主机之间的对应关 系, 其中, 目的主机为需要接收终端处理单元发送的 PCIe数据包的主机, 第二目的交换 器终端设备为多个交换器终端设备中通过主机处理单元与目的主机相连的交换器终端 设备; 这里第三路径规则的获取可参考第二路径规则的获取, 这里不再赘述。
终端处理单元还用于接收与终端处理单元相连的终端设备发送的第三 PCIe数据包, 第三 PCIe数据包携带有数据净荷以及主机的主机路由信息; 根据第三路径规则以及主机 路由信息确定目的主机对应的第二目的交换器终端设备, 并基于第三 PCIe数据包构造能 从第二源交换器终端设备路由到第二目的交换器终端设备的第四 PCIe数据包, 其中, 第 二源交换器终端设备为与终端处理单元相连的交换器终端设备; 将构造出的第四 PCIe数 据包发送给第二源交换器终端设备,使得第二源交换器终端设备根据第一路径规则将第 四 PCIe数据包路由到第二目的交换器终端设备, 第四 PCIe数据包包括数据净荷; 第二目 的交换器终端设备收到第四 PCIe数据包后发送给与目的主机处理单元, 其中, 目的主机 处理单元为多个主机处理单元中与第二目的交换器终端设备相连的目的的主机处理单 元; 目的主机处理单元收到第四 PCIe数据包后解析出数据净荷并发送给与目的主机处理 单元相连的目的主机。
需要说明的是, 本实施例举例时用了主机 1与 EP1进行通信的例子, 实际中, 各个主 机都可以进行类似的操作, 访问自己对应的终端设备, 这里不再赘述。
还需要说明的是, 本实施例主机 /终端处理单元, 交换器终端设备等单元都只是逻 辑功能上的划分, 并不表示实际设备中会存在一一对应的 "硬件"单元。 可以理解, 这 些单元的功能也可以由其他逻辑模块甚至另一个硬件来实现, 例如, 本实施例中主机处 理单元中用于构造第二 PCIe数据包的逻辑模块(构造单元)其实也可以放到 swEP上来实 现(即 swEP收到第一 PCIe数据包后构造第二 PCIe数据包并发送) , 或者, 由其他新的模
块来实现, 甚至通过新增的一件硬件单元 (如再增加一个逻辑器件)来实现, 这些技术 都为本领域技术人员所公知的技术, 与本实施例都为等同的方案, 这里并不赘述。
本发明实施例提供的基于 PCIe的数据传输系统, 主机发送的 PCIe数据包经主机处理 单元处理后, 构造出一个新的 PCIe数据包在 PCIe交换器中传输, 并通过终端处理单元传 送到终端设备, 从而可以实现主机访问终端设备。 而本实施例中, 主机并不需要都挂在 PCIe交换器的 RC (上行端口) 上, 而是可以间接地连接在下行端口上, 而现有的 PCIe交 换器并不存在下行端口数量的限定, 因此, 可以实现更多主机共享 PCIe交换网, 来访问 终端设备。
此外, 本实施例中, PCIe协议实现简单, PCIe中的 TLP Header长度也不大, (大小 为 3DW, 或者 4DW) , 因此, 实现构建新的 PCIe数据包时以及传输时, 开销都不大, 传输 延迟也小, 使得本方案在在通信系统中更具有应用价值。
实施例二
基于实施例一, 本实施例提供了一种基于 PCIe的数据传输方法, 图 4为本发明实施 例二基于 PCIe进行数据传输的方法流程示意图。 请参见图 4, 该方法包括:
S21、 主机处理单元接收与主机处理单元相连的主机发送的第一 PCIe数据包, 第一
PCIe数据包携带有数据净荷以及目的终端设备的终端路由信息, 其中, 目的终端设备为 需要接收主机发送的 PCIe数据包的终端设备。
522、 根据存储的第二路径规则以及终端路由信息确定目的终端设备对应的目的交 换器终端设备,第二路径规则包括主机处理单元将第一 PCIe数据包传送到目的终端设备 时, 需要经过的目的交换器终端设备与目的终端设备之间的对应关系。
523、 基于第一 PCIe数据包构造能从与主机处理单元相连的源交换器终端设备通过 PCIe交换器路由到目的交换器终端设备的第二 PCIe数据包。
524、 将构造出的第二 PCIe数据包发送给源交换机终端设备交换器终端设备, 使得 源交换机终端设备交换器终端设备根据第一路径将规则第二 PCIe数据包通过 PCIe交换 器路由到目的交换器终端设备, 第二 PCIe数据包包括数据净荷, 使得目的交换器终端设 备收到第二 PCIe数据包后发送给与目的交换器终端设备相连的目的终端处理单元, 并使 得目的终端处理单元收到第二 PCIe数据包后解析出数据净荷并发送给与之相连的目的 终端; 其中, 第一路径规则包括 PCIe交换器上所连接的各交换器终端设备之间基于 PCIe 进行路由的路由路径。
具体的, 上述基于第一 PCIe数据包构造能从与主机处理单元相连的源交换器终端设 备路由到目的交换器终端设备的第二 PCIe数据包, 包括:
对第一 PCIe数据包进行解析, 获取终端路由信息以及数据净荷;
根据终端路由信息和第二路径规则确定主机处理单元将 PCIe数据包传送到目的终 端设备时需要经过的目的交换器终端设备;
在构造第二 PCIe数据包时,将目标终端设备的终端路由信息以及数据净荷作为第二 PCIe数据包的数据净荷, 并添加目的交换器终端设备的路由信息, 使得第二 PCIe数据包 能够通过 PCIe交换器从源交换器终端设备路由到目的交换器终端设备。
本实施例中, 第一 PCIe数据包还包括: PCIe数据类型;
上述步骤中的使得源交换机终端设备交换器终端设备根据第一路径将规则第二
PCIe数据包通过 PCIe交换器路由到目的交换器终端设备包括: 使得第一源交换器终端设 备根据 PCIe数据类型选择配置表中根据第一 BDF号或者第一 BAR空间地址建立的各交换 器终端设备之间的路由路径将第二 PCIe数据包路由到目的终端设备;
其中, 配置表用于表示路径规则, 配置表包括根据第一 BDF号或者第一 BAR空间地址 而建立的各交换器终端设备之间的路由路径,第一 BDF号和第一 BAR空间地址通过管理单 元在 PCIe交换器上电时, 为 PCIe交换器所连接的各交换器终端设备分配得到。
本实施例中,第一路径规则由 PCIe交换器的上行端口连接的管理单元根据分配的路 由信息建立的, 路由信息由管理单元进行 PCIe初始化枚举为各交换器终端设备分配的。
本实施例方法还包括:
主机处理单元在第一路径规则建立后, 获取第一路径规则中包括的各交换器终端设 备之间的路径; 并且, 根据第一路径规则中包括的各交换器终端设备之间的路径, 在主 机根据第一路径规则建立后发起的针对终端设备的 PCIe初始化枚举过程中生成并存储 第二路径规则。
由于本实施例基于实施例一进行论述, 因此, 本领域技术人员对于本实施例中具体 步骤的细化, 或者其他步骤的补充, 或者各种概念的解释可以参考实施例一, 这里不再 赘述。
实施例三
基于上述各实施例, 本实施例提供了一种基于 PCIe的数据传输系统。 图 5为本发明 实施例三基于具体硬件实现 PCIe数据传输系统的结构示意图, 请参见图 5, 本实施例提 供的基于 PCIe的数据传输系统, 包括:
PCIe交换器芯片 56 ;
交换器处理器 53, 用于与 PCIe交换器 56的芯片的上行端口相连;
多个主机逻辑器件 54, 分别与一个主机处理器 51相连, 并且分别与 PCIe交换器芯片
56的一个下行端口相连。
多个终端逻辑器件 55, 分别与一个终端处理器 52相连, 并且分别与 PCIe交换器 56的 一个下行端口相连。
本实施例中, 交换器处理器 53以及 PCIe交换器 56可以位于一个单板, 主机处理器 51 以及主机逻辑器件 54可以位于一个单板, 终端处理器 52以及终端逻辑单元 55可以位于一 个单板。 当然, 在另一实施例中, 也不限定这种硬件划分。
本实施例中, 主机处理器 51、 终端处理器 52都为如 CPU之类的处理器, 分别用于实 现实施例 1中主机的功能以及终端的功能。 主机逻辑器件以及终端逻辑器件 55都为如 FPGA、 ASIC之类的逻辑器件, 用于实现图 1虚线部分所示的实施例 1中的主机处理单元 14 与交换器终端设备 12以及终端处理单元 15与交换器终端设备 12的功能。各处理器以及各 逻辑器件可以外挂一个存储器, 用于存储程序运行所需的代码或者程序运行所需的数 据, 如果 CPU芯片或者 FPGA芯片自带足够用的存储器的话, 也可以不外挂存储器。
各处理器分别通过读取存储在存储器中的代码来执行实施例 1中主机所具有的功 能; 各逻辑器件通过逻辑编程或读取相应的代码 (一般逻辑器件都会集成处理器)来执 行实施例中各处理单元所具有的功能, 具体各单元的功能已经在实施例 1中详细介绍, 本领域技术人员可以根据本实施例中的硬件来实现实施例当中各模块的功能, 这里不再 赘述。
实施例四
基于上述各实施例, 本实施例提供了一种基于 PCIe的数据传输装置 60, 图 6为本发 明实施例四的基于 PCIe的数据传输装置的结构示意图, 参见图 6, 本实施例提供的装置 60, 包括:
接收单元 61, 用于接收主机发送的第一 PCIe数据包, 第一 PCIe数据包携带有数据净 荷以及目的终端设备的终端路由信息, 其中, 目的终端设备为需要接收主机发送的 PCIe 数据包的终端设备。
构造单元 62,用于根据存储的第二路径规则以及终端路由信息确定目的终端设备对 应的目的交换器终端设备,第二路径规则包括根据第一路径规则将第一 PCIe数据包传送 到目的终端设备时, 需要经过的目的交换器终端设备与目的终端设备之间的对应关系;
基于接收单元接收的第一 PCIe数据包构造出能从源交换器终端设备通过 PCIe交换器路 由到目的交换器终端设备的第二 PCIe数据包; 将构造单元构造出的第二 PCIe数据包传输 到源交换器终端设备, 以使得源交换器终端设备接收第二 PCIe数据包, 并根据第一路径 规则将第二 PCIe数据包通过 PCIe交换器路由到目的交换器终端设备,使得目的交换器终 端设备收到第二 PCIe数据包后发送给目的终端处理单元, 并使得目的终端处理单元收到 第二 PCIe数据包后解析数据净荷并发送给与之相连的目的终端,第一路径规则包括 PCIe 交换器上所连接的各交换器终端设备之间基于 PCIe交换器进行路由的路由路径。
进一步的, 构造单元 62, 具体可以包括:
确定单元 621, 用于根据存储的第二路径规则以及终端路由信息确定目的终端设备 对应的目的交换器终端设备;
解析单元 622, 用于对第一 PCIe数据包进行解析, 获取终端路由信息以及数据净荷; 包处理单元 623, 与解析单元 622连接, 用于在构造第二 PCIe数据包时, 将目的终端 设备的终端路由信息以及数据净荷作为第二 PCIe数据包的数据净荷, 并添加确定单元确 定的目的交换器终端设备的路由信息,使得第二 PCIe数据包能够通过 PCIe交换器从源交 换器终端设备路由到目的交换器终端设备。
进一步的, 接收单元 61包括一个具有上行端口的第一 P2P, 第一 P2P通过自身包括的 上行端口连接提供 RC功能主机中的 RC, 第一 P2P用于接收第一 PCIe数据包; 以及,
一个或多个分别具有下行端口的第二 P2P,每个第二 P2P用于通过自身包括的下行端 口连接交换器终端设备; 第二 P2P用于将构造单元构造出的第二 PCIe数据包传输到源交 换器终端设备。
由于本实施例基于上述各实施例, 因此, 本实施例中各单元的具体处理方法及硬件 实现方法可以基于上述各实施例中的描述, 这里不再赘述。
实施例五
基于上述各实施例, 本实施例提供了一种基于 PCIe的数据传输装置 70, 图 7为本发 明实施例五的基于 PCIe的数据传输装置的结构示意图, 请参见图 7, 本实施例提供的装 置 70, 包括:
主机处理单 71, 接收与主机处理单元 71连接的主机发送的第一 PCIe数据包, 第一 PCIe数据包携带有数据净荷以及目的终端设备的终端路由信息; 根据终端路由信息以及 存储的第二路经规则确定目的终端设备对应的目的交换器终端设备, 并基于第一 PCIe数 据包构造能从源交换器终端设备路由到目的交换器终端设备的第二 PCIe数据包, 并发送
第二 PCIe数据包, 其中, 第二路径规则包括主机处理单元将第一 PCIe数据包根据第一路 径规则传送到目的终端设备时, 需要经过的目的交换器终端设备与目的终端设备之间的 对应关系, 目的终端设备为需要接收主机发送的 PCIe数据包的终端设备,第一路径规则, 第一路径规则包括 PCIe交换器上所连接的各交换器终端设备之间基于 PCIe交换器进行 路由的路由路径。
源交换器终端设备 72,与主机处理单元连接,从主机处理单元接收第二 PCIe数据包, 并根据第一路径规则将第二 PCIe数据包通过 PCIe交换器路由到目的交换器终端设备,第 二 PCIe数据包包括数据净荷,使得目的交换器终端设备收到第二 PCIe数据包后发送给目 的终端处理单元, 并使得目的终端处理单元收到第二 PCIe数据包后解析出数据净荷并发 送给与之相连的目的终端,第一路径规则包括 PCIe交换器上所连接的各交换器终端设备 之间基于 PCI e交换器进行路由的路由路径。
再请参照图 7, 进一步的, 主机处理单元 71具体包括:
接收单元 711, 用于接收主机发送的第一 PCIe数据包, 第一 PCIe数据包携带有数据 净荷以及目的终端设备的终端路由信息, 其中, 目的终端设备为需要接收主机发送的 PCIe数据包的终端设备;
构造单元 712, 根据存储的第二路径规则以及终端路由信息确定目的终端设备对应 的目的交换器终端设备; 基于接收单元接收的第一 PCIe数据包构造出能从源交换器终端 设备通过 PCIe交换器路由到目的交换器终端设备的第二 PCIe数据包; 将构造单元构造出 的第二 PCIe数据包传输到源交换器终端设备, 其中, 第二路径规则包括根据第一路径规 则将第一 PCIe数据包传送到目的终端设备时, 需要经过的目的交换器终端设备与目的终 端设备之间的对应关系; 第一路径规则包括 PCIe交换器上所连接的各交换器终端设备之 间基于 PCIe交换器进行路由的路由路径。
图 7实施例中, 构造单元 712, 具体包括:
确定单元 7121,用于根据存储的第二路径规则以及终端路由信息确定目的终端设备 对应的目的交换器终端设备;
解析单元 7122,用于对第一 PCIe数据包进行解析,获取终端路由信息以及数据净荷; 包处理单元 7123, 与解析单元连接, 用于在构造第二 PCIe数据包时, 将目的终端设 备的终端路由信息以及数据净荷作为第二 PCIe数据包的数据净荷, 并添加确定单元确定 的目的交换器终端设备的路由信息,使得第二 PCIe数据包能够通过 PCIe交换器从源交换 器终端设备路由到目的交换器终端设备。
由于本实施例基于上述各实施例, 因此, 本实施例中各单元的具体处理方法及硬件 实现方法可以基于上述各实施例中的描述, 这里不再赘述。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对其限制; 尽 管参照前述各实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解: 其 依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特 征进行等同替换; 而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施 例技术方案的范围。
Claims
1、 一种基于周边组件接口快速通道 PCIe的数据传输系统, 其特征在于, 包括: PCIe交换器, 具有一个上行端口和多个下行端口;
管理单元, 与所述 PCIe交换器的所述上行端口相连;
多个交换器终端设备, 分别与所述多个下行端口一对一相连;
多个用于连接主机的主机处理单元;
多个用于连接终端设备的终端处理单元;
所述多个交换器终端设备还分别与多个所述主机处理单元或多个所述终端处理单 元一对一相连;
所述管理单元用于建立第一路径规则,所述第一路径规则包括所述 PCIe交换器上所 连接的各所述交换器终端设备之间基于所述 PCIe交换器进行路由的路由路径;
所述主机处理单元存储有第二路径规则,所述第二路径规则包括所述主机处理单元 将第一 PCIe数据包根据第一路径规则传送到目的终端设备时, 需要经过的第一目的交换 器终端设备与所述目的终端设备之间的对应关系, 其中, 所述目的终端设备为需要接收 所述主机发送的所述第一 PCIe数据包的终端设备,所述第一目的交换器终端设备为所述 多个交换器终端设备中通过所述终端处理单元与所述目的终端设备相连的交换器终端 设备;
所述主机处理单元还用于接收与所述主机处理单元连接的所述主机发送的所述第 一 PCIe数据包,所述第一 PCIe数据包携带有数据净荷以及所述目的终端设备的终端路由 信息; 根据所述第二路径规则以及所述终端路由信息确定所述目的终端设备对应的所述 第一目的交换器终端设备, 并基于所述第一 PCIe数据包构造能从第一源交换器终端设备 路由到所述第一目的交换器终端设备的第二 PCIe数据包, 其中, 所述第一源交换器终端 设备为与所述主机处理单元相连的交换器终端设备; 将构造出的所述第二 PCIe数据包发 送给所述第一源交换器终端设备,使得所述第一源交换器终端设备根据所述第一路径规 则将所述第二 PCIe数据包路由到所述第一目的交换器终端设备,所述第二 PCIe数据包包 括所述数据净荷;
所述第一目的交换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单 元, 其中, 所述目的终端处理单元为所述多个终端处理单元中的与所述第一目的交换器 终端设备相连的终端处理单元;
所述目的终端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷并发送给
与所述目的终端处理单元相连的所述目的终端设备。
2、 根据权利要求 1所述的系统, 其特征在于, 所述主机处理单元基于所述第一 PCIe 数据包构造能从第一源交换器终端设备路由到所述第一目的交换器终端设备的第二 PCIe数据包, 包括:
所述主机处理单元对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所 述数据净荷;
所述主机处理单元在构造所述第二 PCIe数据包时,将所述目标终端设备的所述终端 路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净荷, 并添加所述第一目的 交换器终端设备的路由信息,使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述 第一源交换器终端设备路由到所述第一目的交换器终端设备。
3、 根据权利要求 1或 2所述的系统, 其特征在于:
所述管理单元在所述 PCIe交换器上电时, 为所述 PCIe交换器所连接的各所述交换器 终端设备分配对应的设备信息, 所述设备信息包括第一 BDF号和第一 BAR空间地址; 所述第一路径规则为一配置表, 所述配置表包括根据所述第一 BDF号或者所述第一
BAR空间地址而建立的各所述交换器终端设备之间的路由路径;
所述第一 PCIe数据包还包括: PCIe数据类型;
所述将构造出的所述第二 PCIe数据包发送给所述第一源交换器终端设备,使得所述 第一源交换器终端设备根据所述第一路径规则将所述第二 PCIe数据包路由到所述第一 目的交换器终端设备, 包括:
将构造出的所述第二 PCIe数据包发送给所述第一源交换器终端设备,使得所述第一 源交换器终端设备根据所述 PCIe数据类型选择所述配置表中根据所述第一 BDF号或者所 述第一 BAR空间地址建立的各所述交换器终端设备之间的路由路径将所述第二 PCIe数据 包路由到所述目的终端设备。
4、 根据权利要求 1-3任一项所述的系统, 其特征在于, 所述管理单元具体用于: 进行 PCIe初始化枚举为各所述交换器终端设备分配路由信息;
根据分配的所述路由信息建立所述第一路径规则。
5、 根据权利要求 4所述的系统, 其特征在于:
所述主机处理单元还用于在所述管理单元建立所述第一路径规则后, 获取所述第一 路径规则中包括的各所述交换器终端设备之间的路径;
所主机处理单元还用于根据所述第一路径规则中包括的各所述交换器终端设备之 间的路径,在所述第一路径规则建立后发起的针对所述终端设备的 PCIe初始化枚举过程 中以生成并存储所述第二路径规则。
6、 根据权利要求 1-5任一项所述的系统, 其特征在于:
所述主机处理单元包括构造单元以及多级 PCIe规范中定义的 P2P,第一级 P2P包括一 个第一 P2P, 所述第一 P2P用于连接所述主机, 第二级 P2P包括一个或多个第二 P2P, 所述 第一 P2P与一个或多个所述第二 P2P相连; 每个所述第二 P2P与所述构造单元相连;
所述第一 P2P用于接收所述主机发送的所述第一 PCIe数据包, 根据所述终端路由信 息选择与所述第一 P2P相连的一个第二 P2P将所述第一 PCIe数据包发送给所述构造单元; 所述构造单元用于根据存储的第二路径规则以及所述终端路由信息确定所述目的 终端设备对应的第一目的交换器终端设备; 基于所述主机处理单元接收的所述第一 PCIe 数据包构造出能从第一源交换器终端设备通过所述 PCIe交换器路由到所述第一目的交 换器终端设备的第二 PCIe数据包; 将所述第二 PCIe数据包传输到所述第一源交换器终端 设备, 其中, 所述第二路径规则包括将 PCIe数据包传送到所述目的终端设备时, 需要经 过的所述目的交换器终端设备与所述目的终端设备之间的对应关系。
7、 根据权利要求 1-6任一项所述的系统, 其特征在于:
所述终端处理单元包括第三路径规则,所述第三路径规则包括所述终端处理单元将 第三 PCIe数据包发送到目的主机时, 需要经过的第二目的交换器终端设备与所述目的主 机之间的对应关系, 其中, 所述目的主机为需要接收所述终端处理单元发送的所述第三 PCIe数据包的主机,所述第二目的交换器终端设备为所述多个交换器终端设备中通过所 述主机处理单元与所述目的主机相连的交换器终端设备;
所述终端处理单元还用于接收与所述终端处理单元相连的所述终端设备发送的所 述第三 PCIe数据包,所述第三 PCIe数据包携带有数据净荷以及所述目的主机的主机路由 信息; 根据所述第三路径规则以及所述主机路由信息确定所述目的主机对应的所述第二 目的交换器终端设备, 并基于所述第三 PCIe数据包构造能从第二源交换器终端设备路由 到所述第二目的交换器终端设备的第四 PCIe数据包, 其中, 所述第二源交换器终端设备 为与所述终端处理单元相连的交换器终端设备; 将构造出的所述第四 PCIe数据包发送给
所述第二源交换器终端设备,使得所述第二源交换器终端设备根据所述第一路径规则将 所述第四 PCIe数据包路由到所述第二目的交换器终端设备,所述第四 PCIe数据包包括所 述数据净荷;
所述第二目的交换器终端设备收到所述第四 PCIe数据包后发送给所述目的主机处 理单元, 其中, 所述目的主机处理单元为所述多个主机处理单元中与所述第二目的交换 器终端设备相连的目的的主机处理单元;
所述目的主机处理单元收到所述第四 PCIe数据包后解析出所述数据净荷并发送给 与所述目的主机处理单元相连的所述目的主机。
8、 一种基于周边组件接口快速通道 PCIe的数据传输方法, 其特征在于, 所述方法 包括:
主机处理单元接收与所述主机处理单元相连的主机发送的第一 PCIe数据包,所述第 一 PCIe数据包携带有数据净荷以及目的终端设备的终端路由信息, 其中, 所述目的终端 设备为需要接收所述主机发送的所述第一 PCIe数据包的终端设备;
根据存储的第二路径规则以及所述终端路由信息确定所述目的终端设备对应的目 的交换器终端设备,所述第二路径规则包括所述主机处理单元将所述第一 PCIe数据包传 送到所述目的终端设备时, 需要经过的所述目的交换器终端设备与所述目的终端设备之 间的对应关系;
基于所述第一 PCIe数据包构造能从与所述主机处理单元相连的源交换器终端设备 通过 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数据包;
将构造出的所述第二 PCIe数据包发送给所述源交换机终端设备,使得所述源交换机 终端设备根据第一路径规则将所述第二 PCIe数据包通过所述 PCIe交换器路由到所述目 的交换器终端设备, 所述第二 PCIe数据包包括所述数据净荷, 使得所述目的交换器终端 设备收到所述第二 PCIe数据包后发送给与所述目的交换器终端设备相连的目的终端处 理单元, 并使得所述目的终端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷 并发送给与之相连的所述目的终端; 其中, 所述第一路径规则包括所述 PCIe交换器上所 连接的各所述交换器终端设备之间基于所述 PCIe交换器进行路由的路由路径,所述源交 换器终端设备为与所述主机处理单元相连的交换器终端设备,所述目的终端处理单元为 所述多个终端处理单元中的与所述目的交换器终端设备相连的终端处理单元。
9、 根据权利要求 8所述的方法, 其特征在于:
所述基于所述第一 PCIe数据包构造能从与所述主机处理单元相连的源交换器终端 设备通过所述 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数据包, 包括: 对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述数据净荷; 在构造所述第二 PCIe数据包时,将所述目的终端设备的所述终端路由信息以及所述 数据净荷作为所述第二 PCIe数据包的数据净荷, 并添加所述目的交换器终端设备的路由 信息,使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由 到所述目的交换器终端设备。
10、 根据权利要求 8或 9所述的方法, 其特征在于:
所述第一 PCIe数据包还包括: PCIe数据类型;
所述将构造出的所述第二 PCIe数据包发送给所述源交换器终端设备,使得所述源交 换机终端设备根据所述第一路径将规则将所述第二 PCIe数据包通过所述 PCIe交换器路 由到所述目的交换器终端设备包括:
将构造出的所述第二 PCIe数据包发送给所述源交换器终端设备,使得所述源交换器 终端设备根据所述 PCIe数据类型选择配置表中根据第一 BDF号或者第一 BAR空间地址建 立的各所述交换器终端设备之间的路由路径并将所述第二 PCIe数据包路由到所述目的 终端设备;
其中, 所述配置表用于表示所述第一路径规则, 所述配置表包括根据所述第一 BDF 号或者所述第一 BAR空间地址而建立的各所述交换器终端设备之间的路由路径, 所述第 一 BDF号和所述第一 BAR空间地址通过所述管理单元在所述 PCIe交换器上电时, 为所述 PCIe交换器所连接的各所述交换器终端设备分配得到。
11、 根据权利要求 8-10任一项所述的方法, 其特征在于, 所述第一路径规则由所述 PCIe交换器的所述上行端口连接的所述管理单元根据分配的路由信息建立的,所述路由 信息由所述管理单元进行 PCIe初始化枚举为各所述交换器终端设备分配的。
12、 根据权利要求 8-11任一项所述的方法, 其特征在于, 所述方法还包括:
所述主机处理单元在所述第一路径规则建立后, 获取所述第一路径规则中包括的各 所述交换器终端设备之间的路径; 并在主机根据所述第一路径规则建立后, 发起的针对 所述终端设备的 PCIe初始化枚举过程中以生成并存储所述第二路径规则。
13、 一种基于周边组件接口快速通道 PCIe的数据传输装置, 其特征在于, 所述装置 包括:
接收单元, 用于接收主机发送的第一 PCIe数据包, 所述第一 PCIe数据包携带有数据 净荷以及目的终端设备的终端路由信息, 其中, 所述目的终端设备为需要接收所述主机 发送的 PCIe数据包的终端设备;
构造单元,用于根据存储的第二路径规则以及所述终端路由信息确定所述目的终端 设备对应的目的交换器终端设备,所述第二路径规则包括根据第一路径规则将所述第一
PCIe数据包传送到所述目的终端设备时, 需要经过的所述目的交换器终端设备与所述目 的终端设备之间的对应关系; 基于所述接收单元接收的所述第一 PCIe数据包构造出能从 源交换器终端设备通过所述 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数 据包; 将所述构造单元构造出的所述第二 PCIe数据包传输到所述源交换器终端设备, 以 使得所述源交换器终端设备接收所述第二 PCIe数据包, 并根据所述第一路径规则将所述 第二 PCIe数据包通过所述 PCIe交换器路由到所述目的交换器终端设备,使得所述目的交 换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单元, 并使得所述目的终 端处理单元收到所述第二 PCIe数据包后解析所述数据净荷并发送给与之相连的所述目 的终端,所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之间 基于所述 PCI e交换器进行路由的路由路径。
14、 根据权利要求 13所述的装置, 其特征在于, 所述构造单元, 包括:
确定单元,用于根据存储的所述第二路径规则以及所述终端路由信息确定所述目的 终端设备对应的目的交换器终端设备;
解析单元, 用于对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述 数据净荷;
包处理单元, 与所述解析单元连接, 用于在构造所述第二 PCIe数据包时, 将所述目 的终端设备的所述终端路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净 荷, 并添加所述确定单元确定的所述目的交换器终端设备的路由信息, 使得所述第二
PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由到所述目的交换器 终端设备。
15、 根据权利要求 13或 14所述的装置, 其特征在于:
所述接收单元, 包括多级 PCIe规范中定义的 P2P, 第一级 P2P包括一个第一 P2P, 所 述第一 P2P用于连接所述主机, 第二级 P2P包括一个或多个第二 P2P, 所述第一 P2P与一个 或多个所述第二 P2P相连; 每个所述第二 P2P与所述构造单元相连;
所述第一 P2P用于接收所述主机发送的所述第一 PCIe数据包, 根据所述终端路由信 息选择与所述第一 P2P相连的一个第二 P2P将所述第一 PCIe数据包发送给所述构造单元。
16、 一种基于周边组件接口快速通道 PCIe的数据传输装置, 其特征在于, 所述装置 包括:
主机处理单元, 接收与所述主机处理单元连接的主机发送的第一 PCIe数据包, 所述 第一 PCIe数据包携带有数据净荷以及所述目的终端设备的终端路由信息; 根据所述终端 路由信息以及存储的第二路经规则确定所述目的终端设备对应的目的交换器终端设备, 并基于所述第一 PCIe数据包构造能从源交换器终端设备路由到所述目的交换器终端设 备的第二 PCIe数据包, 并发送所述第二 PCIe数据包, 其中, 所述第二路径规则包括所述 主机处理单元将所述第一 PCIe数据包根据第一路径规则传送到目的终端设备时, 需要经 过的目的交换器终端设备与所述目的终端设备之间的对应关系,所述目的终端设备为需 要接收所述主机发送的 PCIe数据包的终端设备, 所述第一路径规则, 所述第一路径规则 包括所述 PCIe交换器上所连接的各所述交换器终端设备之间基于所述 PCIe交换器进行 路由的路由路径;
源交换器终端设备, 与所述主机处理单元连接, 从所述主机处理单元接收所述第二 PCIe数据包, 并根据所述第一路径规则将所述第二 PCIe数据包通过所述 PCIe交换器路由 到所述目的交换器终端设备, 所述第二 PCIe数据包包括所述数据净荷, 使得所述目的交 换器终端设备收到所述第二 PCIe数据包后发送给目的终端处理单元, 并使得所述目的终 端处理单元收到所述第二 PCIe数据包后解析出所述数据净荷并发送给与之相连的所述 目的终端,所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之 间基于所述 PCIe交换器进行路由的路由路径。
17、 如权利要求 16所述的装置, 所述主机处理单元包括:
接收单元, 用于接收主机发送的第一 PCIe数据包, 所述第一 PCIe数据包携带有数据 净荷以及目的终端设备的终端路由信息, 其中, 所述目的终端设备为需要接收所述主机 发送的 PCIe数据包的终端设备;
构造单元,根据存储的第二路径规则以及所述终端路由信息确定所述目的终端设备 对应的目的交换器终端设备; 基于所述接收单元接收的所述第一 PCIe数据包构造出能从 源交换器终端设备通过所述 PCIe交换器路由到所述目的交换器终端设备的第二 PCIe数 据包; 将所述构造单元构造出的所述第二 PCIe数据包传输到所述源交换器终端设备, 其 中,所述第二路径规则包括根据第一路径规则将所述第一 PCIe数据包传送到所述目的终 端设备时, 需要经过的所述目的交换器终端设备与所述目的终端设备之间的对应关系; 所述第一路径规则包括所述 PCIe交换器上所连接的各所述交换器终端设备之间基于所 述 PCI e交换器进行路由的路由路径。
18、 根据权利要求 17所述的装置, 其特征在于, 所述构造单元包括:
确定单元,用于根据存储的所述第二路径规则以及所述终端路由信息确定所述目的 终端设备对应的目的交换器终端设备;
解析单元, 用于对所述第一 PCIe数据包进行解析, 获取所述终端路由信息以及所述 数据净荷;
包处理单元, 与所述解析单元连接, 用于在构造所述第二 PCIe数据包时, 将所述目 的终端设备的所述终端路由信息以及所述数据净荷作为所述第二 PCIe数据包的数据净 荷, 并添加所述确定单元确定的所述目的交换器终端设备的路由信息, 使得所述第二 PCIe数据包能够通过所述 PCIe交换器从所述源交换器终端设备路由到所述目的交换器 终端设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13807883.7A EP2768188A4 (en) | 2012-12-11 | 2013-08-07 | PCIE-BASED DATA TRANSMISSION SYSTEM AND METHOD |
US14/193,217 US9632963B2 (en) | 2012-12-11 | 2014-02-28 | System and method for transmitting data based on PCIe |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210531995.5A CN103023824B (zh) | 2012-12-11 | 2012-12-11 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN201210531995.5 | 2012-12-11 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/193,217 Continuation US9632963B2 (en) | 2012-12-11 | 2014-02-28 | System and method for transmitting data based on PCIe |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014089980A1 true WO2014089980A1 (zh) | 2014-06-19 |
Family
ID=47971964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/080943 WO2014089980A1 (zh) | 2012-12-11 | 2013-08-07 | 基于PCIe的数据传输系统及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9632963B2 (zh) |
EP (1) | EP2768188A4 (zh) |
CN (1) | CN103023824B (zh) |
WO (1) | WO2014089980A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086295A1 (en) * | 2010-02-22 | 2013-04-04 | Youichi Hidaka | Communication control system, switching node, communication control method and communication control program |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023824B (zh) * | 2012-12-11 | 2015-08-26 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN103701680A (zh) * | 2013-12-17 | 2014-04-02 | 杭州华为数字技术有限公司 | 一种跨PCIe域报文传输的方法、设备及系统 |
US9792452B2 (en) * | 2014-09-12 | 2017-10-17 | Anthony Tan | Pervasive intermediate network attached storage application |
CN104579772B (zh) | 2014-12-30 | 2018-12-14 | 华为技术有限公司 | 计算机设备与计算机设备的配置管理方法 |
WO2017031126A1 (en) * | 2015-08-17 | 2017-02-23 | Brocade Communications Systems, Inc. | Pci express connected network switch |
CN110489365B (zh) | 2016-01-13 | 2023-09-12 | 华为技术有限公司 | 交换设备、外围部件互连高速系统及其初始化方法 |
CN107809325B (zh) * | 2016-09-09 | 2021-03-26 | 佛山市顺德区顺达电脑厂有限公司 | 外围元件互连的拓扑方法、网络拓扑系统及网络拓扑方法 |
CN108090004B (zh) * | 2016-11-21 | 2020-03-13 | 英业达科技有限公司 | 硬件资源共用系统及连线桥接平台的操作方法 |
US10503687B2 (en) * | 2017-04-18 | 2019-12-10 | Western Digital Technologies, Inc. | Multi-host peripheral component interconnect express (PCIe) switching based on interrupt vector from PCIe device |
US10476816B2 (en) * | 2017-09-15 | 2019-11-12 | Facebook, Inc. | Lite network switch architecture |
CN108052739B (zh) * | 2017-12-13 | 2021-07-20 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计快速通道设计方法 |
US11132319B2 (en) * | 2018-01-12 | 2021-09-28 | Intel Corporation | Timer control for peripheral component interconnect express components implemented with thunderbolt controllers |
US11106616B1 (en) * | 2019-11-21 | 2021-08-31 | Xilinx, Inc. | Virtualized peripheral component interconnect express (PCIe) device |
WO2021147045A1 (zh) * | 2020-01-22 | 2021-07-29 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
EP4080840A4 (en) * | 2020-01-22 | 2022-12-28 | Huawei Technologies Co., Ltd. | DATA TRANSFER METHOD AND DEVICE BASED ON PCIE |
CN113498600B (zh) * | 2020-01-22 | 2022-11-25 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
WO2021147048A1 (zh) * | 2020-01-22 | 2021-07-29 | 华为技术有限公司 | 一种基于PCIe的数据传输方法、装置及系统 |
EP4080845A4 (en) * | 2020-01-22 | 2023-01-11 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DATA TRANSMISSION ON PCIE BASE |
EP4086778A4 (en) * | 2020-01-22 | 2023-01-18 | Huawei Technologies Co., Ltd. | PCIE-BASED DATA TRANSMISSION METHOD, DEVICE AND SYSTEM |
EP4080839B1 (en) * | 2020-01-22 | 2024-01-03 | Huawei Technologies Co., Ltd. | Pcie-based data transmission method and apparatus |
US11645405B2 (en) | 2020-09-30 | 2023-05-09 | Duvon Corporation | Secure fetch of digital content |
CN112835837B (zh) * | 2021-02-04 | 2023-06-23 | 北京百度网讯科技有限公司 | 建立数据连接的方法、相关装置及计算机程序产品 |
CN114285917B (zh) * | 2021-12-29 | 2023-03-10 | 无锡众星微系统技术有限公司 | 一种基于PCIe NTB的多主机通讯方法和装置 |
CN115114219B (zh) * | 2022-07-22 | 2023-10-20 | 深圳星云智联科技有限公司 | 一种pci-e拓扑方法、装置、设备及存储介质 |
WO2024035807A1 (en) * | 2022-08-09 | 2024-02-15 | Enfabrica Corporation | System and method for ghost bridging |
CN115632976A (zh) * | 2022-10-25 | 2023-01-20 | 深圳市楠菲微电子有限公司 | 一种pcie事务层报文生成方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277196A (zh) * | 2007-03-30 | 2008-10-01 | 杭州华三通信技术有限公司 | 一种基于pcie交换网的通信系统、通信方法及线卡板 |
US20120005539A1 (en) * | 2010-07-01 | 2012-01-05 | Dell Products, Lp | Peripheral Component Interconnect Express Root Port Mirroring |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012168995A1 (ja) * | 2011-06-06 | 2012-12-13 | 株式会社日立製作所 | I/oスイッチの制御方法、仮想計算機の制御方法及び計算機システム |
US20140112131A1 (en) * | 2011-06-17 | 2014-04-24 | Hitachi, Ltd. | Switch, computer system using same, and packet forwarding control method |
-
2012
- 2012-12-11 CN CN201210531995.5A patent/CN103023824B/zh active Active
-
2013
- 2013-08-07 EP EP13807883.7A patent/EP2768188A4/en not_active Withdrawn
- 2013-08-07 WO PCT/CN2013/080943 patent/WO2014089980A1/zh active Application Filing
-
2014
- 2014-02-28 US US14/193,217 patent/US9632963B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277196A (zh) * | 2007-03-30 | 2008-10-01 | 杭州华三通信技术有限公司 | 一种基于pcie交换网的通信系统、通信方法及线卡板 |
US20120005539A1 (en) * | 2010-07-01 | 2012-01-05 | Dell Products, Lp | Peripheral Component Interconnect Express Root Port Mirroring |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2768188A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086295A1 (en) * | 2010-02-22 | 2013-04-04 | Youichi Hidaka | Communication control system, switching node, communication control method and communication control program |
US9047416B2 (en) * | 2010-02-22 | 2015-06-02 | Nec Corporation | Communication control system, switching node, communication control method and communication control program including PCI express switch and LAN interface |
Also Published As
Publication number | Publication date |
---|---|
CN103023824B (zh) | 2015-08-26 |
EP2768188A4 (en) | 2015-01-14 |
US20140181354A1 (en) | 2014-06-26 |
CN103023824A (zh) | 2013-04-03 |
US9632963B2 (en) | 2017-04-25 |
EP2768188A1 (en) | 2014-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014089980A1 (zh) | 基于PCIe的数据传输系统及方法 | |
US9043526B2 (en) | Versatile lane configuration using a PCIe PIe-8 interface | |
US8856419B2 (en) | Register access in distributed virtual bridge environment | |
JP5601601B2 (ja) | 通信制御システム、スイッチノード、及び通信制御方法 | |
US9455926B2 (en) | Queue credit management | |
TWI446755B (zh) | 用以介接光纖通道網路與乙太網路式網路之方法 | |
US8594090B2 (en) | Multicasting using a multitiered distributed virtual bridge hierarchy | |
ES2720256T3 (es) | Comunicación internodal directa escalable sobre una interconexión de componentes periféricos expreso ¿ (Peripheral Component Interconnect Express (PCIE)) | |
US8619796B2 (en) | Forwarding data frames with a distributed fiber channel forwarder | |
US8571408B2 (en) | Hardware accelerated data frame forwarding | |
US8489763B2 (en) | Distributed virtual bridge management | |
US9544221B2 (en) | Temperature sensitive routing of data in a computer system | |
US9077636B2 (en) | Flexible and scalable data link layer flow control for network fabrics | |
JP2019503599A (ja) | クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム | |
JP2005318495A (ja) | 異なる仮想チャネルへのトランザクションの分離 | |
JP2006087093A (ja) | 出力バッファを使用するパケット伝送 | |
WO2014000271A1 (zh) | 一种pcie交换系统、装置及交换方法 | |
CN108959134B (zh) | 用于现场可编程门阵列设备的通信 | |
US10341256B2 (en) | Exchange switch protocol version in a distributed switch environment | |
JP2021182732A (ja) | 通信ネットワークにおける一次デスティネーションおよび二次デスティネーションを有するトラフィックのルーティング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
REEP | Request for entry into the european phase |
Ref document number: 2013807883 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013807883 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13807883 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |