Data access method, exchange subsystem, data access system and electronic device
By introducing a configuration information response device in the switching subsystem to generate virtual configuration information and perform address data conversion, the problem of low driver development efficiency in cross-host domain data access operations is solved, and a simplified cross-host domain data access process is achieved.
Patent Information
- Application Number
- CN202510886685.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-30
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2045-06-30
AI Technical Summary
In computer clusters, cross-host domain data access operations suffer from low development efficiency due to differences in driver implementations of non-transparent bridges. Different endpoint device types require different drivers, leading to complex modification operations.
By introducing a configuration information response device into the switching subsystem, generating virtual configuration information and performing address data conversion, the bridge device can automatically perform cross-host domain addressing operations, avoiding the address conversion operations of non-transparent bridges, and only requiring simple address data conversion code to be added to the driver.
This improves driver development efficiency, reduces driver changes for different non-transparent bridges, and simplifies the implementation process of cross-host domain data access.
Smart Images

Figure CN120389996B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of information transmission, and in particular to a data access method, an exchange subsystem, a data access system and an electronic device. BACKGROUND
[0002] In the technical field of information transmission, a plurality of host devices can be arranged in a computer cluster, and the host devices can be connected with endpoint devices through an exchange subsystem. Since the exchange subsystem itself does not support cross-host-domain communication, a non-transparent bridge needs to be arranged in the exchange subsystem. When a host device in a host domain needs to access an endpoint device in host domain 2, the host device can send a data access request to the non-transparent bridge, and the non-transparent bridge performs conversion operations on address data and device identification information included in the data access request, generates a new data access request, and then sends the new data access request to the endpoint device in host domain 2. Conversely, when an endpoint device in host domain 2 needs to access a host device in host domain 1, the access can also be completed in a similar manner.
[0003] However, since the types of endpoint devices are different, access operations corresponding to different types of endpoint devices need to use different drivers, the non-transparent bridge needs to use a specific interaction interface, and the software and hardware implementation manners of non-transparent bridges designed by different manufacturers also differ. Therefore, when implementing cross-host-domain data access operations, complex modification operations need to be performed in the drivers corresponding to different device types according to the actual configuration of the non-transparent bridge, and the development efficiency is low. SUMMARY
[0004] The present application provides a data access method, device, exchange subsystem, data access system, electronic device, storage medium and program product to solve the problem of low development efficiency of drivers in a cross-host-domain access process.
[0005] In a first aspect, the present application provides a data access method, which is executed by a configuration information response device, and the method comprises:
[0006] When a configuration information access request sent by a target host device is received, target virtual configuration information corresponding to the configuration information access request is obtained according to the configuration information access request, wherein a target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device;
[0007] The target virtual configuration information is sent to the target host device, wherein when a data access request corresponding to the target endpoint device is obtained, the target host device converts original address data included in the data access request into actual address data in a target address segment based on the target virtual configuration information, and the target address segment is used to instruct a bridge device to perform cross-host-domain addressing operations to complete a data access operation on the target endpoint device.
[0008] In a second aspect, the present application provides a data access method, which is executed by a target host device, and the method comprises:
[0009] obtaining a data access request for a target endpoint device, wherein the data access request comprises original address data and target virtual configuration information, and the target endpoint device is in a different host domain from the target host device;
[0010] based on the target virtual configuration information, converting the original address data into actual address data in a target address segment corresponding to the target endpoint device, wherein the target address segment is used to instruct a bridge device to perform a cross-host-domain addressing operation;
[0011] after replacing the original address data included in the data access request with the actual address data, obtaining a converted data access request;
[0012] sending the converted data access request to a bridge device connected to the target host device, wherein the bridge device performs a data access operation on the target endpoint device based on the converted data access request.
[0013] In a third aspect, the present application provides a data access method, which is executed by a host-side bridge device, and the method comprises:
[0014] receiving a data access request sent by a target host device connected to the host-side bridge device, wherein the data access request comprises actual address data;
[0015] determining whether the actual address data falls into any one of at least one address segment according to the actual address data and the at least one address segment;
[0016] when it is determined that the actual address data falls into a target address segment of the at least one address segment, determining to perform a cross-host-domain addressing operation;
[0017] based on the target address segment, sending the actual address data to an endpoint-side bridge device connected to a target endpoint device corresponding to the target address segment, wherein the endpoint-side bridge device writes the actual address data into the target endpoint device connected to the endpoint-side bridge device to complete a data access operation on the target endpoint device.
[0018] In a fourth aspect, the present application provides a data access method, which is executed by an endpoint-side bridge device, and the method comprises:
[0019] receiving a data access request sent by a target endpoint device connected to the endpoint-side bridge device, wherein the data access request comprises actual address data;
[0020] determine whether the actual address data falls into any of the at least one address segment according to the actual address data and the at least one preset address segment;
[0021] determine to perform the cross-host-domain addressing operation when it is determined that the actual address data falls into a target address segment of the at least one address segment;
[0022] obtain physical location information corresponding to the target address segment based on the target address segment;
[0023] perform a cross-host-domain conversion operation on the data access request to obtain a converted data access request;
[0024] send the converted data access request to a host-side bridge device corresponding to the physical location information, where the host-side bridge device sends the converted data access request to a target host device connected to the host-side bridge device to complete a data access operation on the target host device.
[0025] In a fifth aspect, the present application provides a data access device, comprising:
[0026] a first obtaining module configured to, when a configuration information access request sent by a target host device is received, obtain target virtual configuration information corresponding to the configuration information access request according to the configuration information access request, where a target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device;
[0027] a first sending module configured to send the target virtual configuration information to the target host device, where the target host device, when a data access request corresponding to the target endpoint device is obtained, converts original address data included in the data access request into actual address data in a target address segment based on the target virtual configuration information, and the target address segment is used to instruct a bridge device to perform a cross-host-domain addressing operation to complete a data access operation on the target endpoint device.
[0028] In a sixth aspect, the present application provides a data access device, comprising:
[0029] a second obtaining module configured to obtain a data access request for a target endpoint device, where the data access request includes original address data and target virtual configuration information, and the target endpoint device is in a different host domain from a target host device;
[0030] a first conversion module configured to, based on the target virtual configuration information, convert the original address data into actual address data in a target address segment corresponding to the target endpoint device, where the target address segment is used to instruct a bridge device to perform a cross-host-domain addressing operation; and obtain a converted data access request after replacing the original address data included in the data access request with the actual address data;
[0031] The second sending module is configured to send the converted data access request to a bridge device connected to the target host device, where the bridge device performs a data access operation on the target endpoint device based on the converted data access request.
[0032] In a seventh aspect, the present application provides a data access device, comprising:
[0033] The first receiving module is configured to receive a data access request sent by a target host device connected to a host-side bridge device, where the data access request comprises actual address data.
[0034] The first determining module is configured to determine whether the actual address data falls into any one of at least one address segment according to the actual address data and the at least one preset address segment, and determine to perform a cross-host-domain addressing operation when it is determined that the actual address data falls into a target address segment in the at least one address segment.
[0035] The third sending module is configured to send the actual address data to an endpoint-side bridge device connected to a target endpoint device corresponding to the target address segment based on the target address segment, where the endpoint-side bridge device writes the actual address data into the target endpoint device connected to the endpoint-side bridge device to complete a data access operation on the target endpoint device.
[0036] In an eighth aspect, the present application provides a data access device, comprising:
[0037] The second receiving module is configured to receive a data access request sent by a target endpoint device connected to an endpoint-side bridge device, where the data access request comprises actual address data.
[0038] The second determining module is configured to determine whether the actual address data falls into any one of at least one address segment according to the actual address data and the at least one preset address segment, and determine to perform a cross-host-domain addressing operation when it is determined that the actual address data falls into a target address segment in the at least one address segment.
[0039] The third obtaining module is configured to obtain physical location information corresponding to the target address segment based on the target address segment.
[0040] The second converting module is configured to perform a cross-host-domain conversion operation on the data access request to obtain a converted data access request.
[0041] The fourth sending module is configured to send the converted data access request to a host-side bridge device corresponding to the physical location information, where the host-side bridge device sends the converted data access request to a target host device connected to the host-side bridge device to complete a data access operation on the target host device.
[0042] In a ninth aspect, the present application provides a switching subsystem, comprising a plurality of bridge devices and a configuration information responding device, wherein the configuration information responding device is connected with each of the bridge devices respectively, and each of the bridge devices is connected with other bridge devices except itself in the plurality of bridge devices respectively;
[0043] The configuration information responding device is configured to perform the steps of the data access method of the first aspect;
[0044] The host-side bridge device in the plurality of bridge devices is configured to perform the steps of the data access method of the third aspect.
[0045] The endpoint-side bridge device in the plurality of bridge devices is configured to perform the steps of the data access method of the fourth aspect.
[0046] In a tenth aspect, the present application provides a data access system, comprising the switching subsystem of the ninth aspect, and a plurality of host devices and a plurality of endpoint devices.
[0047] Any of the host devices is configured to perform the steps of the data access method of the second aspect.
[0048] In an eleventh aspect, the present application provides an electronic device, comprising a memory configured to store a computer program, and a processor configured to execute the computer program to implement the steps of any of the data access methods.
[0049] In a twelfth aspect, the present application provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is configured to be executed by a processor to implement the steps of any of the data access methods.
[0050] In a thirteenth aspect, the present application provides a computer program product, comprising a computer program, and the computer program is configured to be executed by a processor to implement the steps of any of the data access methods.
[0051] According to the present application, for a configuration information access request of a target endpoint device which is in a different host domain from a target host device, the configuration information responding device can respond to the configuration information access request, and although the target endpoint device is not in the domain of the target host device, the feedback target virtual configuration information of the configuration information responding device can enable the target host device to identify the target endpoint device as an endpoint device in its own host domain, and perform address data conversion operation by using the target virtual configuration information, so that the bridge device can automatically perform cross-address domain addressing operation when the actual address data in the target address segment is obtained, and access to the target endpoint device. In this way, a special non-transparent bridge is not needed to perform address conversion operation, and thus only conversion code of address data needs to be added to the original driver, which is relatively simple, and the driver does not need to be greatly modified, i.e., the development efficiency of the driver can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0053] Figure 1 A schematic diagram of cross-host domain communication using a non-transparent bridge provided in an embodiment of the present application;
[0054] Figure 2 A schematic diagram of the architecture of a switching subsystem provided in an embodiment of the present application;
[0055] Figure 3 A schematic diagram of the architecture of a data transmission system provided in an embodiment of the present application;
[0056] Figure 4 A flowchart of a data access method provided in an embodiment of the present application;
[0057] Figure 5 A schematic diagram of a response to a cross-host domain configuration information access operation provided by an embodiment of the present application;
[0058] Figure 6 A schematic diagram comparing the data flows of a "spoofed response" and a "real response" provided in an embodiment of the present application;
[0059] Figure 7 A flowchart of another data access method provided in an embodiment of the present application;
[0060] Figure 8 A schematic diagram of a data flow for accessing an endpoint device provided in an embodiment of the present application;
[0061] Figure 9 A flowchart of another data access method provided in an embodiment of the present application;
[0062] Figure 10 A schematic diagram of a data flow for accessing a host device provided in an embodiment of the present application;
[0063] Figure 11 A flowchart of another data access method provided in an embodiment of the present application;
[0064] Figure 12 A flowchart of another data access method provided in an embodiment of the present application;
[0065] Figure 13A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0066] Figure 14 A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0067] Figure 15 A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0068] Figure 16 A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0069] Figure 17 A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0070] Figure 18 A flowchart of another data access method provided by an embodiment of the present application is shown in FIG. 6;
[0071] Figure 19 A structural diagram of an electronic device provided by an embodiment of the present application is shown in FIG. 7. DETAILED DESCRIPTION
[0072] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments of the present application. Based on the embodiments in the present application, any other embodiments obtained by those skilled in the art without creative work fall within the protection scope of the present application.
[0073] It should be noted that, in the description of the present application, the terms “comprise”, “contain” or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. The terms “first”, “second” and the like in the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence.
[0074] In order for those skilled in the art to better understand the technical solutions of the present application, the present application will be further described in detail below with reference to the drawings and specific embodiments.
[0075] As Figure 1As shown, the traditional data access system includes a plurality of host devices, a switch subsystem, and a plurality of end point devices (EP) and a plurality of port devices (e.g., the thickened boxes in the figure). The switch subsystem can include a plurality of bridge devices and a non-transparent bridge (NTB), and a plurality of port devices. The host device is an independent computing system, which can include a root port, a central processing unit (CPU), a memory, etc. The end point device can be a network card, a storage controller, a graphics card, etc. The switch subsystem can be a peripheral component interconnect express (PCIE) switch.
[0076] The host device 0 and the end point device 0 are in the host domain 0, and the host device 1 and the end point device 1 are in the host domain 1. As shown, Figure 1 From the perspective of the host device 0 and the host device 1, only the respective end point devices can be seen, for example, the host device 0 can only see the end point device 0, and the host device 1 can only see the end point device 1. Since some switch subsystems (such as the PCIE switch mentioned above) do not directly support cross-host domain communication, a non-transparent bridge is needed to achieve this. Therefore, when the host device 0 needs to initiate access to the end point device 1, a data access request can be sent to the non-transparent bridge. The non-transparent bridge can convert the address data included in the data access request into address data suitable for the host domain 1, and convert the device identification information included in the data access request into device identification information suitable for the host domain 1. In this way, a converted data access request can be obtained. Finally, the converted data access request is sent to the end point device 1. The data flow of the data access request can refer to the dashed line in Figure 1
[0077] Since there are differences in the device types of the end point devices, the host device needs to call different drivers when accessing end point devices of different device types. Different manufacturers use different implementation methods and software and hardware interfaces when designing non-transparent bridges, resulting in the need for development of drivers of different device types according to the actual implementation method of the non-transparent bridge in order to achieve cross-host domain data access operations. In this way, the development efficiency of the driver is low, and great difficulty is brought to the implementation of the cross-host domain data access operation.
[0078] In order to implement the cross-host domain data access operation, the present application provides a new switch subsystem, as shown in Figure 2 As shown, a configuration information responding device is arranged in the switching subsystem, and the configuration information responding device and all bridge devices are connected to the internal interconnection bus, and the connection mode of the host device and the endpoint device remains unchanged, and accordingly, the data access system can be as Figure 3 The configuration information responding device can be a central processing unit.
[0079] Embodiments of the present application provide a data transmission method, which can be executed by the devices included in the above-mentioned data access system, as shown in Figure 4 As shown, the specific processing steps of the data access method can include:
[0080] In step S401, the configuration information responding device acquires physical configuration information corresponding to each endpoint device.
[0081] The physical configuration information corresponding to each endpoint device can include physical configuration information of the endpoint device itself, physical configuration information of the bridge device corresponding to the endpoint device, and physical configuration information of the port device. For example, the physical configuration information of the endpoint device itself can include physical device type information, physical device identification information, manufacturer identification information, and device function information.
[0082] Specifically, in order to realize the access of the host device in the source host domain (for example, host domain 0) to the endpoint device under the target host domain (for example, host domain 1), the configuration information responding device needs to construct a virtual device group in the logical topology of the host device in the source data domain, and each virtual device group can include at least one virtual bridge device, a virtual port device, and a virtual endpoint device, and accordingly, the configuration information responding device needs to acquire the physical configuration information corresponding to each endpoint device. For example, after power-on, the configuration information responding device can acquire the address information and the physical configuration information corresponding to each endpoint device according to the enumeration process of the PCIE device. For example, the address information can be the Bus Device Function (BDF) address.
[0083] In step S402, the configuration information responding device modifies each piece of physical configuration information according to a preset modification rule to obtain virtual configuration information corresponding to each piece of physical configuration information.
[0084] The preset modification rule can include preset field position information.
[0085] Specifically, in the physical configuration information corresponding to each endpoint device, the actual configuration information corresponding to the bridge device and the port device respectively does not need to be modified, and the configuration information responding device can modify the physical configuration information of the endpoint device itself according to a preset modification rule, and after the modification is completed, the construction operation of the virtual device group can be completed. Correspondingly, the configuration information responding device can modify the physical configuration information according to the following manner, and the specific modification steps can include:
[0086] Step one, according to the preset field position information, determine the target field corresponding to the preset field position information in the target physical configuration information.
[0087] Among them, the target physical configuration information is the physical configuration information corresponding to the target virtual configuration information.
[0088] Step two, extract the target physical device type information from the target field.
[0089] Step three, according to the target physical device type information, obtain the target virtual device type information corresponding to the target physical device type information.
[0090] Step four, replace the original value of the target field with the target virtual device type information to obtain the target virtual configuration information.
[0091] Among them, the target field can be the Class Code field defined by the PCIE protocol.
[0092] The configuration information responding device can first determine the target field matching the preset field position information in the target physical configuration information. Then, the target physical device type information can be extracted from the target field, and according to the target physical device type information and the mapping relationship between the physical device type information and the virtual device type information, the target virtual device type information corresponding to the target physical device type information can be determined. Finally, the configuration information responding device can replace the target physical device type information of the target field with the target virtual device type information to obtain the target virtual configuration information. In this way, for each piece of physical configuration information, the above similar processing can be performed to obtain the corresponding virtual configuration information. Through simple modification of the physical configuration information, the virtual configuration information can be obtained.
[0093] In some optional embodiments, in addition to modifying the physical device type information, the physical device identification information can also be modified, and the preset modification rule described above can also include an identification information conversion rule, and the configuration information responding device can convert the physical device identification information into virtual device identification information according to the identification information conversion rule. The preset identification information conversion rule can include a mapping relationship between the physical device identification information and the virtual device identification information, and accordingly, the configuration information responding device can determine the target virtual device identification information corresponding to the target physical device identification information according to the mapping relationship, and replace the target physical device identification information in the target physical configuration information with the target virtual device identification information to obtain the target virtual configuration information. For example, "001a" is converted into "AB002".
[0094] In step S403, the configuration information responding device stores the generated virtual configuration information in a target storage location each time a virtual configuration information is generated.
[0095] The target storage location can be a memory connected to the configuration information responding device inside the switching subsystem.
[0096] Specifically, the configuration information responding device can store the virtual configuration information and the address information (for example, the BDF address described above) of the corresponding endpoint device in the target storage location each time a virtual configuration information is generated.
[0097] In step S404, the target host device sends a configuration information access request to the configuration information responding device.
[0098] The configuration information access request can be used to obtain the target virtual configuration information of the target endpoint device, and the target endpoint device and the target host device are in different host domains.
[0099] Specifically, the process of identifying the endpoint device by the host device can be achieved through an enumeration operation: in the enumeration process, when the host device discovers that the endpoint device is connected under the lowest level port device, the host device can initiate a series of configuration information access requests to the endpoint device, and the endpoint device can generate a response data packet and output it to the host device according to its own physical configuration information when receiving the configuration information access request. In this way, the host device can receive the response data packet and extract the physical configuration information of the endpoint device from the response data packet.
[0100] In a normal case, when the host device initiates a configuration information access request for a non-existing location, a special response packet is received to indicate that the location does not exist an endpoint device. In order to make the target host device "identify" the endpoint device in other host domain, the scheme makes "deceptive response" through the configuration information response device. Correspondingly, the target host device can send a configuration information access request to the configuration information response device to obtain the target virtual configuration information.
[0101] As shown in Figure 5 the right dashed line encloses the bridge device, port device and endpoint device 1, which are physical device groups under the host domain 1. The left dashed line encloses the bridge device, port device and endpoint device 1, which are virtual device groups corresponding to the physical device groups constructed under the logical topology of the host domain 0. When the configuration information response device obtains the configuration information access request for the endpoint device 1, the configuration information response device can make "deceptive response".
[0102] As shown in Figure 6 for the endpoint device 1, the endpoint device 1 can directly make a true response to the configuration information access operation of the host device 1 under its own host domain 1. Under the host domain 0, the configuration information response device makes a response to the host device 1 instead of the endpoint device 1, that is, the configuration information response device makes "deceptive response".
[0103] In step S405, the configuration information response device obtains the target virtual configuration information corresponding to the configuration information access request according to the configuration information access request.
[0104] The target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device.
[0105] Specifically, when the configuration information response device receives the configuration information access request sent by the target host device, the configuration information response device can determine the target virtual configuration information corresponding to the configuration information access request from the virtual configuration information stored in the target storage location according to the configuration information access request. The configuration information access request can include target address information of the target endpoint device. Correspondingly, the specific steps of determining the target virtual configuration information can include:
[0106] According to the target address information, the target virtual configuration information corresponding to the target address information is determined from at least one virtual configuration information stored in the target storage location.
[0107] Since the configuration information responding device can store the virtual configuration information in correspondence with the address information when storing the virtual configuration information, when the configuration information access request is obtained, the virtual configuration information corresponding to the target address information can be determined from the virtual configuration information stored in the target storage location according to the target address information included in the configuration information access request.
[0108] In some optional embodiments, the configuration information access request received by the configuration information responding device is obtained by a host-side bridge device connected with the target host device. Accordingly, the target host device first sends the configuration information access request to the host-side bridge device. The host-side bridge device can identify whether the target address information included in the configuration information access request exists an endpoint device. If not, it indicates that the endpoint device corresponding to the target address information is not in the host domain where the target host device is located. The configuration information access request can be forwarded to the configuration information responding device. If yes, the configuration information access request can be sent to the corresponding endpoint device according to the original processing mode. Alternatively, the host-side bridge device can forward all the received configuration information access requests to the configuration information responding device in addition to processing the configuration information access requests according to the original processing mode. Through the above two modes, the configuration information responding device can receive the configuration information access request sent by the target host device.
[0109] In step S406, the configuration information responding device sends the target virtual configuration information to the target host device.
[0110] Specifically, after determining the target virtual configuration information, the configuration information responding device can directly send the target virtual configuration information to the target host device, or first send the target virtual configuration information to a host-side bridge device connected with the target host device, and then send the target virtual configuration information to the target host device by the host-side bridge device.
[0111] In this way, the configuration information responding device completes the operation of "fraudulent response". When the target host device obtains the data access request corresponding to the target endpoint device, the target host device can convert the original address data included in the data access request into actual address data in the target address segment based on the target virtual configuration information, so that the bridge device can perform the cross-host-domain addressing operation when obtaining the actual address data in the target address segment, to complete the operation on the target endpoint device. The actual address data can be Direct Memory Access (DMA) address data.
[0112] In step S407, the target host device performs a binding operation of a driver according to the target virtual configuration information and a plurality of pre-constructed drivers.
[0113] The target virtual configuration information can include target virtual device type information.
[0114] Specifically, after obtaining the target virtual configuration information, the target host device can identify the target endpoint device as an endpoint device connected at a position corresponding to the physical position information in the host domain of the target host device.
[0115] Further, when obtaining the target virtual configuration information, the target host device can determine a target driver corresponding to the target virtual configuration information from a plurality of drivers according to the target virtual configuration information, and bind the target driver with the target virtual device type information, so that the target driver can be directly called when accessing the target endpoint device corresponding to the target virtual configuration information in the future. Correspondingly, the binding operation of the driver can be performed according to the following specific steps:
[0116] Step one, determining a target field corresponding to the preset field position information in the target virtual configuration information according to the preset field position information.
[0117] Step two, extracting the target virtual device type information from the target field.
[0118] Step three, determining a target driver corresponding to the target virtual device type information from a plurality of drivers according to the target virtual device type information.
[0119] Step four, binding the target virtual device type information with the target driver.
[0120] The target host device can first determine the target virtual device type information in the target virtual configuration information, and then determine a target field corresponding to the preset field position information in the target virtual device type information according to the preset field position information, and extract the target virtual device type information from the target field. In this way, the target host device can determine a target driver corresponding to the target virtual value from a plurality of drivers according to the target virtual value, and bind the target virtual device type information with the target driver.
[0121] The data access method of the embodiment of the present application, for a configuration information access request of a target endpoint device in a different host domain from a target host device, the configuration information response device can respond to the configuration information access request, although the target endpoint device is not in the host domain where the target host device is located, the feedback target virtual configuration information of the configuration information response device can enable the target host device to identify the target endpoint device as an endpoint device in its own host domain, and perform address data conversion operation using the target virtual configuration information, so that the bridge device can automatically perform cross-address domain addressing operation when obtaining actual address data in the target address segment, and access the target endpoint device. In this way, a special non-transparent bridge is not required to perform address conversion operation, and further, only conversion code of address data needs to be added to the original driver, which is relatively simple, and the driver does not need to be greatly modified, that is, the development efficiency can be improved.
[0122] After the binding operation of the driver is completed, the target host device can initiate data access to the target endpoint device, and correspondingly, the embodiment of the present application provides a data transmission method, which can be executed by the devices included in the above data access system, as shown in the following. Figure 7 The specific processing steps of the data access method can include:
[0123] Step S701, the target host device obtains a data access request to the target endpoint device.
[0124] The data access request can include original address data and target virtual configuration information, and the target virtual configuration information can include target virtual device type information and target virtual device identification information. The target endpoint device and the target host device are in different host domains. The original address data can also be DMA address data.
[0125] Specifically, the target host device can receive a data access request sent from other devices (for example, a client), or can automatically generate a data access request according to its own mechanism.
[0126] Step S702, the target host device converts the original address data into actual address data in a target address segment corresponding to the target endpoint device based on the target virtual configuration information.
[0127] The target address segment is used to instruct the bridge device to perform cross-host domain addressing operation.
[0128] Specifically, since the original address data is the address data used by the target endpoint device under the host domain of the target host device, it cannot be used under the host domain to which the target endpoint device belongs. In addition, in order to trigger the bridge device to perform cross-address domain addressing operation, after obtaining the data access request, the target host device can first convert the original address data in the data access request to the target address segment. Correspondingly, the target host device can perform the conversion operation of the address data according to the following steps, including:
[0129] Step one, according to the target virtual device type information, obtaining the target driver bound with the target virtual device type information.
[0130] Among them, the target driver can include address mapping information corresponding to at least one virtual device identification information respectively.
[0131] Step two, according to the target virtual device identification information, determining the target address mapping information corresponding to the target virtual device identification information in the address mapping information corresponding to at least one virtual device identification information respectively.
[0132] Among them, the target address mapping information includes all actual address data in the target address segment.
[0133] Step three, according to the original address data and the target address mapping information, generating actual address data.
[0134] When the target host device obtains the data access request, it can extract the original address data and the target virtual configuration information from it. Then, the target host device can obtain the target driver bound with the target virtual device type according to the target virtual device type. Since there are different virtual devices corresponding to the same device type, the target host device can determine the target address mapping information corresponding to the target virtual device identification information in the address mapping information corresponding to at least one virtual device identification information respectively according to the target virtual device identification information. Finally, the target host device can determine the actual address data corresponding to the original address data in the target address mapping information according to the original address data. By converting the address data into the target address segment, the bridge device can accurately intercept the cross-host domain data access request.
[0135] Step S703, the target host device replaces the original address data included in the data access request with the actual address data to obtain the converted data access request.
[0136] Specifically, the target host device can delete the original address data included in the data access request and replace it with the actual address data determined in step S702, so as to obtain the converted data access request.
[0137] Step S704, the target host device sends the converted data access request to the host-side bridge device connected to the target host device.
[0138] Specifically, the target host device can send the converted data access request to the host-side bridge device.
[0139] Step S705, the host-side bridge device determines whether the actual address data falls into any of the at least one address segment according to the actual address data and the preset at least one address segment.
[0140] Specifically, the data transmission system can include two or more host domains, so that the endpoint devices under different host domains need to use different address segments. Accordingly, when the host-side bridge device obtains the data access request, it can extract the actual address data therefrom and match the actual address data with each of the preset address segments respectively to determine whether the actual address data falls into any of the address segments. If the actual address data does not fall into any of the address segments, it indicates that the target host device performs a data access operation on the endpoint device in its own host domain, and no special processing is required.
[0141] Step S706, when the host-side bridge device determines that the actual address data falls into a target address segment of the at least one address segment, it determines to perform a cross-host-domain addressing operation.
[0142] Specifically, if the actual address data falls into the target address segment, it indicates that the target host device needs to perform a data access operation on the endpoint device in the other host domain, and a cross-host-domain addressing operation is required. Thus, the host-side bridge device can perform subsequent operations of the present solution.
[0143] Step S707, the host-side bridge device sends the actual address data to an endpoint-side bridge device connected to a target endpoint device corresponding to the target address segment based on the target address segment.
[0144] Specifically, the host-side bridge device can determine the host domain to which the target endpoint device belongs according to the target address segment, and send the actual address data to the endpoint-side bridge device under the host domain to which the target endpoint device belongs, so that the endpoint-side bridge device can write the actual address data to the target endpoint device. Accordingly, the host-side bridge device can send the actual address data to the endpoint-side bridge device according to the following specific steps, including:
[0145] Step one, based on the target address segment, obtain physical location information corresponding to the target address segment.
[0146] Step two, based on the physical location information, send the actual address data to the endpoint-side bridge device.
[0147] The host-side bridge device can store at least one address segment and physical location information corresponding to the at least one address segment respectively. When the target address segment is determined, the physical location information corresponding to the target address segment can be determined from the physical location information corresponding to the at least one address segment according to the target address segment. Further, the host-side bridge device can extract the location information of the endpoint-side bridge device connected to the target endpoint device from the physical location information, and send the actual address data to the endpoint-side bridge device based on the location information.
[0148] In step S708, the endpoint-side bridge device writes the actual address data into the target endpoint device.
[0149] The target endpoint device can include a plurality of address register groups.
[0150] Specifically, when the endpoint-side bridge device receives the actual address data sent by the host-side bridge device, the endpoint-side bridge device can write the actual address data into the target endpoint device, so that the target endpoint device can subsequently access the target host device according to the actual address data to obtain the service data stored in the storage space corresponding to the actual address data in the memory of the target host device. Correspondingly, the endpoint-side bridge device can perform the operation of writing the actual address data according to the following specific steps, including:
[0151] In step one, the target address register group corresponding to the target address segment is determined from the plurality of address register groups according to the target address segment.
[0152] In step 1, the register group location information corresponding to the target address segment is determined according to the target address segment.
[0153] In step 2, the target address register group is determined from the plurality of address register groups according to the register group location information.
[0154] In step two, the actual address data is written into the target address register group.
[0155] Specifically, the target endpoint device can be provided with a plurality of address register groups used by the target endpoint device under different host domains, for example, the endpoint device 1 uses the address register group 0 under the host domain 0 and uses the address register group 1 under the host domain 1. Correspondingly, the endpoint-side bridge device can determine the target address segment in a manner similar to step S705 after receiving the actual address data, or the host-side bridge device can send the target address segment to the endpoint-side bridge device. The endpoint-side bridge device can store at least one address segment and register group position information corresponding to each address segment. In this way, the endpoint-side bridge device can determine the register group position information corresponding to the target address segment according to the target address segment. Finally, the endpoint-side bridge device can determine the target address register group corresponding to the register group position information in the plurality of address register groups according to the register group position information, that is, determine the target address register group corresponding to the target address segment, and write the actual address data into the target address register group. By using different address register groups for different host domains, the isolation between the host domains is better, and the business safety of the respective host domains can be ensured.
[0156] Reference Figure 8 In the example in FIG. 7, under the host domain 0, A0 is the original address data, and the host device 0 (target host device) converts A0 to B0 in the target address segment through the address conversion code in the customized driver, and B0 can finally be written into the address register group 0 (target address register group) of the endpoint device 1. Under the host domain 1, the host device 1 only needs to use the original standard driver to issue A1, and A1 will finally be written into the address register group 1 when accessing the endpoint device 1.
[0157] The data access method of the embodiment of the application, when the target host device obtains a data access request for a target endpoint device in a host domain different from itself, can perform a conversion operation on the original address data according to the target virtual configuration information included in the data access request, so as to convert it into one address data in the target address segment, that is, the actual address data described above. Then, the target host device sends the actual address data to the host-side bridge device after replacing the original address data. The host-side bridge device can transmit the actual address data to the target endpoint device across the host domains after identifying that the actual address data is in the target address segment. The target host device only needs to perform the address data conversion operation for the data access request across the host domains, so that the host-side bridge device can perform the addressing operation across the host domains, that is, only needs to develop the related code for converting the address, so that it is not necessary to make a large change to the driver program, which is relatively simple, that is, the development efficiency of the driver program can be improved.
[0158] After receiving a data access request from a target host device, the host-side bridge device determines whether the actual address data included in the data access request falls within a preset address segment. If the actual address data falls within the target address segment, it indicates that the host-side bridge device needs to perform a cross-host domain addressing operation. The host-side bridge device can then determine the corresponding endpoint-side bridge device based on the target address segment, and the endpoint-side bridge device can then write the actual address data to the target endpoint device. This eliminates the need for a non-transparent bridge to participate in address translation and addressing operations. Consequently, there is no need to develop drivers for different non-transparent bridges, thus avoiding the low driver development efficiency issue in related technologies.
[0159] After the actual address data is written to the target endpoint device, the target endpoint device can also access the service data stored in the location corresponding to the actual address data in the target host device. Accordingly, the embodiment of the present application provides a data access method that can be executed by the devices included in the above data access system, such as Figure 9 As shown, the specific processing steps of the data access method may include:
[0160] Step S901: The endpoint-side bridge device receives a data access request sent by a target endpoint device connected to the endpoint-side bridge device.
[0161] The data access request may include actual address data, target physical device identification information, etc.
[0162] Specifically, when the target endpoint device needs to access the target host device, a data access request may be generated according to the actual address data and the target physical device identification information, and sent to the endpoint-side bridge device connected to the target endpoint device.
[0163] Step S902: The endpoint-side bridge device determines, based on the actual address data and at least one preset address segment, whether the actual address data falls into any one of the at least one address segment.
[0164] Specifically, the data transmission system may include more than two host domains. Therefore, endpoint devices under different host domains need to use different address segments. Accordingly, when the endpoint side bridge device obtains a data access request, it can extract the actual address data from it and match the actual address data with each preset address segment respectively to determine whether the actual address data falls into one of the address segments. If the actual address data does not fall into any address segment, it means that the target endpoint device is accessing the data of the host device in its own host domain, and no special processing is required.
[0165] Step S903: When the endpoint-side bridge device determines that the actual address data falls into the target address segment in at least one address segment, it determines to perform a cross-host domain addressing operation.
[0166] Specifically, if the actual address data falls into the target address segment, it indicates that the target endpoint device needs to perform a data access operation on the host device in the other host domain, and needs to perform an inter-host domain addressing operation, so that the endpoint-side bridge device can perform subsequent operations of the present solution.
[0167] In step S904, the endpoint-side bridge device obtains physical location information corresponding to the target address segment based on the target address segment.
[0168] The specific process of step S904 can refer to the specific process of step 707 described above, which will not be repeated here.
[0169] In step S905, the endpoint-side bridge device performs an inter-host domain conversion operation on the data access request to obtain a converted data access request.
[0170] Specifically, since the actual address data is address data used in the host domain to which the target endpoint device belongs, when accessing the target host device in a different host domain from the target endpoint device, the actual address data in the data access request needs to be converted into original address data used in the host domain to which the target host device belongs according to a preset address conversion rule. Accordingly, the endpoint-side bridge device can perform a conversion operation on the data access request according to the following specific steps:
[0171] In step one, target address mapping information corresponding to the target address segment is obtained according to the target address segment.
[0172] In step two, original address data is determined according to the actual address data and the target address mapping information.
[0173] In step three, the actual address data in the data access request is replaced with the original address data to obtain a converted data access request.
[0174] When the endpoint-side bridge device receives the data access request sent by the target endpoint device, it can extract the actual address data therefrom and determine that the actual address data falls into the target address segment according to the actual address data. In addition, the endpoint-side bridge device can store address mapping information corresponding to at least one address segment, respectively, and then determine target address mapping information corresponding to the target address segment in the address mapping information corresponding to at least one address segment, respectively, according to the target address segment. Finally, the endpoint-side bridge device can determine original address data corresponding to the actual address data in the target address mapping information according to the actual address data.
[0175] In some optional embodiments, in the process of converting the data access request, in addition to the conversion operation on the address data, the device identification information can also be converted, and accordingly, the endpoint-side bridge device can specifically determine the target virtual device identification information corresponding to the target physical device identification information according to the target address segment and the target physical device identification information. And after replacing the target physical device identification information included in the data access request with the target virtual device identification information, the converted data access request is obtained. In this way, when the converted data access request is sent to the target host device, the target host device can accurately identify the source of the data access request.
[0176] In some optional embodiments, in the process of converting the data access request, in addition to the conversion operation on the address data, the device identification information can also be converted, and accordingly, the endpoint-side bridge device can specifically determine the target virtual device identification information corresponding to the target physical device identification information according to the target address segment and the target physical device identification information. And after replacing the target physical device identification information included in the data access request with the target virtual device identification information, the converted data access request is obtained. In this way, when the converted data access request is sent to the target host device, the target host device can accurately identify the source of the data access request.
[0177] According to the target address segment, the mapping relationship of the device identification information corresponding to the target address segment is obtained, and then based on the target physical device identification information and the mapping relationship, the corresponding target virtual device identification information is determined.
[0178] Step S906, the endpoint-side bridge device sends the converted data access request to the host-side bridge device corresponding to the physical location information.
[0179] Specifically, after completing the conversion operation of the data access request and determining the physical location information, the endpoint-side bridge device can extract the location information of the host-side bridge device connected with the target host device from the physical location information, and based on the location information, send the converted data access request to the host-side bridge device.
[0180] Step S907, the host-side bridge device sends the converted data access request to the target host device connected with the host-side bridge device.
[0181] Specifically, after receiving the converted data access request, the host-side bridge device can send the converted data access request to the target host device connected with the host-side bridge device, that is, the data access operation to the target host device can be completed. The target host device can send the corresponding service data from the storage space corresponding to the original address data to the target endpoint device according to the original address data included in the data access request (the specific sending process can refer to the sending process of the actual address data to the target endpoint device, which will not be described here).
[0182] As Figure 10As shown, the endpoint-side bridge device implements three functions, first, intercepts the data access request across the host domains through the "address trap" (for example, the target address segment described above), second, converts the address data and identification information, and third, performs the addressing operation in the cross-host domain manner, that is, performs the redirection operation. Among them, B0 is the actual address data, and A0 is the original address data.
[0183] The data access method of the embodiment of the application can determine whether to perform the addressing operation across the host domains according to the actual address data carried in the data access request. Since the address that can be used by the target endpoint device is the host device in the host domain to which the target endpoint device belongs, when it is determined to perform the addressing operation across the host domains, the endpoint-side bridge device can convert the data access request sent by the target endpoint device to conform to the regulations in the host domain where the target host device is located. In this way, the target host device can directly process the data access request in the original manner (for example, the original driver) after receiving the data access request, and accordingly, there is no need to redevelop the driver for the non-transparent bridge in the development link, avoiding the problem of low efficiency of developing the driver.
[0184] The embodiment of the application provides a data transmission method, which can be executed by the configuration information response device described above, such as Figure 11 As shown, the specific processing steps of the data access method can include:
[0185] Step S1101, when receiving the configuration information access request sent by the target host device, obtaining the target virtual configuration information corresponding to the configuration information access request according to the configuration information access request.
[0186] Among them, the target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device.
[0187] Step S1102, sending the target virtual configuration information to the target host device.
[0188] Among them, when obtaining the data access request corresponding to the target endpoint device, the target host device converts the original address data included in the data access request into the actual address data in the target address segment based on the target virtual configuration information, and the target address segment is used to instruct the bridge device to perform the addressing operation across the host domains to complete the data access operation on the target endpoint device. The bridge device can be a host-side bridge device or an endpoint-side bridge device.
[0189] The specific processing of steps S1101 to S1102 can refer to the specific processing of steps S405 to S406, which will not be described here.
[0190] The data access method of the embodiment of the present application can respond to the configuration information access request of the target endpoint device in a different host domain from the target host device, and the feedback target virtual configuration information of the configuration information responding device can enable the target host device to identify the target endpoint device as an endpoint device in its own host domain and perform address data conversion operation using the target virtual configuration information, so that the bridge device can automatically perform cross-address domain addressing operation when the actual address data in the target address segment is obtained, and access the target endpoint device. In this way, a special non-transparent bridge is not required to perform address conversion operation, and only conversion code of address data needs to be added to the original driver, which is relatively simple and does not require large modification of the driver, thereby improving development efficiency.
[0191] The embodiment of the present application provides a data transmission method, which can be executed by the target host device (any host device) described above, as shown in the following. Figure 12 The specific processing steps of the data access method can include:
[0192] Step S1201: obtaining a data access request for a target endpoint device.
[0193] The data access request includes original address data and target virtual configuration information, and the target endpoint device is in a different host domain from the target host device.
[0194] Step S1202: converting the original address data into actual address data in a target address segment corresponding to the target endpoint device based on the target virtual configuration information.
[0195] The target address segment is used to instruct the bridge device to perform cross-host domain addressing operation.
[0196] Step S1203: obtaining a converted data access request by replacing the original address data included in the data access request with the actual address data.
[0197] Step S1204: sending the converted data access request to a bridge device connected to the target host device.
[0198] The bridge device performs data access operation on the target endpoint device based on the converted data access request. The bridge device can be the host-side bridge device or the endpoint-side bridge device described above.
[0199] The specific processing of steps S1201 to S1204 can refer to the specific processing of steps S701 to S704, which will not be described here.
[0200] The data access method of the embodiment of the present application, when the target host device obtains a data access request for a target endpoint device in a different host domain from itself, can perform a conversion operation on the original address data according to the target virtual configuration information included in the data access request, so as to convert it into one of the address data in the target address segment, that is, the actual address data. Then, the target host device sends the actual address data to the bridge device after replacing the original address data. After identifying that the actual address data is in the target address segment, the bridge device can transmit the actual address data to the target endpoint device across the host domain. The target host device only needs to perform a conversion operation on the address data for the data access request across the host domain, so that the bridge device can perform the addressing operation across the host domain, that is, only the relevant code for converting the address needs to be developed, so that the driver program does not need to be greatly modified, which is relatively simple, that is, the development efficiency can be improved.
[0201] The embodiment of the present application provides a data transmission method, which can be executed by the host-side bridge device. Figure 13 As shown in the figure, the specific processing steps of the data access method can include:
[0202] Step S1301, receiving a data access request sent by a target host device connected with the host-side bridge device.
[0203] Among them, the data access request includes actual address data.
[0204] Step S1302, determining whether the actual address data falls into any one of at least one address segment according to the actual address data and the preset at least one address segment.
[0205] Step S1303, when it is determined that the actual address data falls into a target address segment in the at least one address segment, determining to perform the addressing operation across the host domain.
[0206] Step S1304, based on the target address segment, sending the actual address data to an endpoint-side bridge device connected with a target endpoint device corresponding to the target address segment.
[0207] Among them, the endpoint-side bridge device writes the actual address data into the target endpoint device connected with the endpoint-side bridge device, so as to complete the data access operation on the target endpoint device.
[0208] The specific processing of steps S1301 to S1304 can refer to the specific processing of steps S705 to S707, which will not be repeated here.
[0209] The data access method of the embodiment of the present application, after the host-side bridge device receives the data access request sent by the target host device, determines whether the actual address data included in the data access request is in a preset address segment. If the actual address data falls into the target address segment, it indicates that the host-side bridge device needs to perform the cross-host-domain addressing operation. The host-side bridge device can determine the corresponding endpoint-side bridge device according to the target address segment, and the endpoint-side bridge device can write the actual address data into the target endpoint device. In this way, the non-transparent bridge does not need to participate in the address conversion operation and the addressing operation, and accordingly, there is no need to develop a driver for different non-transparent bridges, thereby avoiding the problem of low efficiency of driver development in the related art.
[0210] The embodiment of the present application provides a data transmission method, which can be executed by the above-mentioned endpoint-side bridge device, as shown in the following Figure 14 The specific processing steps of the data access method can include:
[0211] Step S1401, receiving a data access request sent by a target endpoint device connected with the endpoint-side bridge device.
[0212] The data access request includes actual address data.
[0213] Step S1402, determining whether the actual address data falls into any one of the at least one address segment according to the actual address data and the at least one preset address segment.
[0214] Step S1403, when it is determined that the actual address data falls into the target address segment in the at least one address segment, determining to perform the cross-host-domain addressing operation.
[0215] Step S1404, obtaining the physical location information corresponding to the target address segment based on the target address segment.
[0216] Step S1405, performing the cross-host-domain conversion operation on the data access request to obtain a converted data access request.
[0217] Step S1406, sending the converted data access request to the host-side bridge device corresponding to the physical location information.
[0218] The host-side bridge device sends the converted data access request to the target host device connected with the host-side bridge device to complete the data access operation on the target host device.
[0219] The specific processing of steps S1401 to S1406 can refer to the specific processing of steps S901 to S907, which will not be described here.
[0220] The data access method of the embodiments of the present application, the endpoint-side bridge device can determine whether to perform cross-host-domain addressing operation according to the actual address data carried in the data access request. Since the address that can be used by the target endpoint device is the host device in the host domain to which the target endpoint device belongs, when it is determined to perform cross-host-domain addressing operation, the endpoint-side bridge device can convert the data access request sent by the target endpoint device so as to conform to the regulations in the host domain where the target host device is located. In this way, after receiving the data access request, the target host device can directly process the data access request in the original manner (for example, the original driver), and accordingly, there is no need to redevelop the driver for the non-transparent bridge in the development link, thereby avoiding the problem of low efficiency of developing the driver.
[0221] Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be realized by means of software and the necessary general hardware platform, of course, it can also be realized by hardware, but in many cases, the former is a better embodiment.
[0222] The embodiments of the present application also provide a data access device, as shown in Figure 15 The device comprises:
[0223] The first obtaining module 1510 is configured to, when receiving a configuration information access request sent by a target host device, obtain target virtual configuration information corresponding to the configuration information access request according to the configuration information access request, wherein the target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device.
[0224] The first sending module 1520 is configured to send the target virtual configuration information to the target host device, wherein the target host device, when obtaining a data access request corresponding to the target endpoint device, converts original address data included in the data access request into actual address data in a target address segment based on the target virtual configuration information, and the target address segment is used to instruct the bridge device to perform cross-host-domain addressing operation to complete the data access operation on the target endpoint device.
[0225] In some optional embodiments, the first obtaining module 1510 is further configured to:
[0226] Obtain physical configuration information corresponding to each of the at least one endpoint device respectively;
[0227] According to a preset modification rule, modify each piece of physical configuration information respectively to obtain virtual configuration information corresponding to each piece of physical configuration information;
[0228] Store the generated virtual configuration information in a target storage location each time a piece of virtual configuration information is generated.
[0229] In some optional embodiments, the preset modification rule comprises preset field position information; the first obtaining module 1510 is specifically configured to:
[0230] According to the preset field position information, target fields corresponding to the preset field position information are determined in target physical configuration information, wherein the target physical configuration information is physical configuration information corresponding to the target virtual configuration information;
[0231] Target physical device type information is extracted from the target fields;
[0232] According to the target physical device type information, target virtual device type information corresponding to the target physical device type information is obtained;
[0233] The target physical device type information of the target fields is replaced by the target virtual device type information to obtain the target virtual configuration information.
[0234] In some optional embodiments, the configuration information access request comprises target address information of a target endpoint device; the first obtaining module 1510 is specifically configured to:
[0235] According to the target address information, target virtual configuration information corresponding to the target address information is determined in at least one piece of virtual configuration information stored in a target storage location.
[0236] Embodiments of the present application also provide a data access device, as shown in Figure 16 The device comprises:
[0237] The second obtaining module 1610 is configured to obtain a data access request for a target endpoint device, wherein the data access request comprises original address data and target virtual configuration information, and the target endpoint device is in a different host domain from a target host device;
[0238] The first conversion module 1620 is configured to convert the original address data into actual address data in a target address segment corresponding to the target endpoint device based on the target virtual configuration information, wherein the target address segment is used to instruct a bridge device to perform an addressing operation across host domains; and after the original address data included in the data access request is replaced by the actual address data, a converted data access request is obtained;
[0239] The second sending module 1630 is configured to send the converted data access request to a bridge device connected to the target host device, wherein the bridge device performs a data access operation on the target endpoint device based on the converted data access request.
[0240] In some optional embodiments, the second obtaining module 1610 is further configured to:
[0241] The configuration information access request is used for the configuration information responding device to obtain target virtual configuration information of the target endpoint device.
[0242] The target virtual configuration information fed back by the configuration information responding device is received.
[0243] According to the target virtual configuration information and the plurality of pre-constructed drivers, a binding operation of the driver is performed.
[0244] In some optional embodiments, the target virtual configuration information comprises target virtual device type information; the second obtaining module 1610 is specifically configured to:
[0245] According to preset field position information, a target field corresponding to the preset field position information is determined in the target virtual configuration information.
[0246] The target virtual device type information is extracted from the target field.
[0247] According to the target virtual device type information, a target driver corresponding to the target virtual device type information is determined in the plurality of drivers.
[0248] The target virtual device type information is bound to the target driver.
[0249] In some optional embodiments, the target virtual configuration information further comprises target virtual device identification information, and the target driver comprises address mapping information corresponding to at least one virtual device identification information respectively; the first conversion module 1620 is specifically configured to:
[0250] According to the target virtual device type information, a target driver bound to the target virtual device type information is obtained.
[0251] According to the target virtual device identification information, target address mapping information corresponding to the target virtual device identification information is determined in the address mapping information corresponding to at least one virtual device identification information respectively, wherein all actual address data included in the target address mapping information is within a target address segment.
[0252] According to the original address data and the target address mapping information, actual address data is generated.
[0253] Embodiments of the present application also provide a data access apparatus, as shown in Figure 17 The data access apparatus comprises:
[0254] The first receiving module 1710 is configured to receive a data access request sent by a target host device connected with a host side bridge device, wherein the data access request comprises actual address data.
[0255] The first determining module 1720 is configured to determine, according to the actual address data and the preset at least one address segment, whether the actual address data falls into any one of the at least one address segment; and when it is determined that the actual address data falls into a target address segment of the at least one address segment, it is determined to perform the cross-host-domain addressing operation.
[0256] The third sending module 1730 is configured to send the actual address data to an endpoint-side bridge device connected to a target endpoint device corresponding to the target address segment based on the target address segment, where the endpoint-side bridge device writes the actual address data to the target endpoint device connected to the endpoint-side bridge device to complete the data access operation on the target endpoint device.
[0257] In some optional embodiments, the third sending module 1730 is specifically configured to:
[0258] obtain physical location information corresponding to the target address segment based on the target address segment;
[0259] send the actual address data to the endpoint-side bridge device based on the physical location information.
[0260] Embodiments of the present application also provide a data access apparatus, as shown in Figure 18 The data access apparatus comprises:
[0261] The second receiving module 1810 is configured to receive a data access request sent by a target endpoint device connected to an endpoint-side bridge device, where the data access request comprises actual address data.
[0262] The second determining module 1820 is configured to determine, according to the actual address data and the preset at least one address segment, whether the actual address data falls into any one of the at least one address segment; and when it is determined that the actual address data falls into a target address segment of the at least one address segment, it is determined to perform the cross-host-domain addressing operation.
[0263] The third obtaining module 1830 is configured to obtain physical location information corresponding to the target address segment based on the target address segment.
[0264] The second converting module 1840 is configured to perform a cross-host-domain conversion operation on the data access request to obtain a converted data access request.
[0265] The fourth sending module 1850 is configured to send the converted data access request to a host-side bridge device corresponding to the physical location information, where the host-side bridge device sends the converted data access request to a target host device connected to the host-side bridge device to complete the data access operation on the target host device.
[0266] In some optional embodiments, the second converting module 1840 is specifically configured to:
[0267] According to the target address segment, target address mapping information corresponding to the target address segment is acquired;
[0268] According to the actual address data and the target address mapping information, original address data is determined;
[0269] The actual address data in the data access request is replaced by the original address data, and a converted data access request is obtained.
[0270] In some optional embodiments, the data access request further includes target physical device identification information; the second conversion module 1840 is further configured to:
[0271] According to the target address segment and the target physical device identification information, target virtual device identification information corresponding to the target physical device identification information is determined;
[0272] The target physical device identification information in the data access request is replaced by the target virtual device identification information, and the converted data access request is obtained.
[0273] In some optional embodiments, the second receiving module 1810 is further configured to:
[0274] Receive actual address data sent by the host-side bridge device;
[0275] Write the actual address data into the target endpoint device.
[0276] In some optional embodiments, the second receiving module 1810 is specifically configured to:
[0277] According to the target address segment, a target address register group corresponding to the target address segment is determined from a plurality of address register groups;
[0278] Write the actual address data into the target address register group.
[0279] The features of the embodiments of the data access apparatus can be referred to the related descriptions of the embodiments of the data access method, which will not be repeated here.
[0280] Embodiments of the present application also provide an electronic device, such as Figure 19 As shown in the figure, the electronic device includes a memory 10 and a processor 20, the memory 10 stores a computer program, and the processor 20 is configured to run the computer program to execute the steps in any of the above data access method embodiments. The electronic device can be the host device, the bridge device, the configuration information response device, etc. described above. The bridge device can be the host-side bridge device and the endpoint-side bridge device described above.
[0281] The embodiment of the present application further provides a computer readable storage medium, which stores a computer program, and the computer program is configured to execute the steps in any of the above data access method embodiments when running.
[0282] In an example embodiment, the above computer readable storage medium can include, but is not limited to, a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.
[0283] The embodiment of the present application further provides a computer program product, which comprises a computer program, and the computer program is executed by a processor to implement the steps in any of the above data access method embodiments.
[0284] The embodiment of the present application further provides another computer program product, which comprises a non-volatile computer readable storage medium, and the non-volatile computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the steps in any of the above data access method embodiments.
[0285] The skilled person can further realize that the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein can be realized by electronic hardware, computer software or a combination of both. In order to clearly illustrate the interchangeability of hardware and software, the components and steps of the examples have been described in the above description in general terms. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. The skilled person can use different methods to realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0286] The above describes in detail the data access method, device, electronic equipment, storage medium, program product, exchange subsystem and data transmission system provided by the present application. The principles and implementation manners of the present application are described by applying specific examples. The above example descriptions are only used to help understand the method and core idea of the present application. It should be noted that the ordinary skilled person in the technical field can make some improvements and modifications to the present application without departing from the principles of the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
Claims
1. A data access method, characterized by, The method is executed by a configuration information response device, and the method comprises: When a configuration information access request sent by a target host device is received, target virtual configuration information corresponding to the configuration information access request is acquired according to the configuration information access request, wherein a target endpoint device corresponding to the target virtual configuration information is in a different host domain from the target host device; The target virtual configuration information is sent to the target host device, wherein when data access request corresponding to the target endpoint device is acquired, the target host device converts original address data included in the data access request into actual address data in a target address segment based on the target virtual configuration information, the target address segment is used to instruct a bridge device to perform an addressing operation across host domains to complete a data access operation on the target endpoint device.
2. The data access method of claim 1, wherein, Before the step of acquiring the target virtual configuration information corresponding to the configuration information access request according to the configuration information access request when the configuration information access request sent by the target host device is received, the method further comprises: Physical configuration information corresponding to each of the endpoint devices is acquired; Each of the physical configuration information is modified according to a preset modification rule to obtain virtual configuration information corresponding to each of the physical configuration information; Each time the virtual configuration information is generated, the generated virtual configuration information is stored in a target storage location.
3. The data access method of claim 2, wherein, The preset modification rule comprises preset field position information; the modification of each of the physical configuration information according to the preset modification rule to obtain the virtual configuration information corresponding to each of the physical configuration information comprises: A target field corresponding to the preset field position information is determined in target physical configuration information according to the preset field position information, wherein the target physical configuration information is physical configuration information corresponding to the target virtual configuration information; Target physical device type information is extracted from the target field; Target virtual device type information corresponding to the target physical device type information is acquired according to the target physical device type information; The target physical device type information of the target field is replaced by the target virtual device type information to obtain the target virtual configuration information.
4. The data access method according to claim 2 or 3, characterized in that, The configuration information access request comprises target address information of the target endpoint device; the acquisition of the target virtual configuration information corresponding to the configuration information access request according to the configuration information access request when the configuration information access request sent by the target host device is received comprises: The target virtual configuration information corresponding to the target address information is determined in at least one virtual configuration information stored in the target storage location according to the target address information.
5. A data access method, characterized by, The method is executed by a target host device, and the method comprises: A data access request for a target endpoint device is acquired, wherein the data access request comprises original address data and target virtual configuration information, and the target endpoint device is in a different host domain from the target host device; convert the original address data into actual address data in a target address segment corresponding to the target endpoint device based on the target virtual configuration information, wherein the target address segment is used to instruct a bridge device to perform an addressing operation across host domains; replace the original address data included in the data access request with the actual address data to obtain a converted data access request; send the converted data access request to a bridge device connected to the target host device, wherein the bridge device performs a data access operation on the target endpoint device based on the converted data access request.
6. The data access method of claim 5, wherein, Before the method obtains the data access request for the target endpoint device, the method further comprises: sending a configuration information access request to a configuration information responding device, wherein the configuration information access request is used for the configuration information responding device to obtain target virtual configuration information of the target endpoint device; receiving the target virtual configuration information fed back by the configuration information responding device; performing a binding operation of a driver according to the target virtual configuration information and a plurality of pre-constructed drivers.
7. The data access method of claim 6, wherein, The target virtual configuration information comprises target virtual device type information. The binding operation of the driver according to the target virtual configuration information and the plurality of pre-constructed drivers comprises: determining a target field corresponding to preset field position information in the target virtual configuration information according to the preset field position information; extracting target virtual device type information from the target field; determining a target driver corresponding to the target virtual device type information from the plurality of drivers according to the target virtual device type information; binding the target virtual device type information with the target driver.
8. The data access method of claim 7, wherein, The target virtual configuration information further comprises target virtual device identification information, and the target driver comprises address mapping information corresponding to at least one virtual device identification information respectively; and the conversion of the original address data into actual address data in a target address segment corresponding to the target endpoint device based on the target virtual configuration information comprises: obtaining the target driver bound with the target virtual device type information according to the target virtual device type information; determining target address mapping information corresponding to the target virtual device identification information from address mapping information corresponding to at least one virtual device identification information respectively according to the target virtual device identification information, wherein all actual address data included in the target address mapping information is within the target address segment; generating the actual address data according to the original address data and the target address mapping information.
9. A data access method, characterized by, The method is performed by a host-side bridge device, and the method comprises: receiving a data access request sent by a target host device connected to the host-side bridge device, wherein actual address data is included in the data access request; determining whether the actual address data falls into any one of at least one address segment according to the actual address data and the at least one preset address segment; determining to perform the cross-host-domain addressing operation when it is determined that the actual address data falls into a target address segment of the at least one address segment; sending the actual address data to an endpoint-side bridge device connected to a target endpoint device corresponding to the target address segment based on the target address segment, wherein the endpoint-side bridge device writes the actual address data to the target endpoint device connected to the endpoint-side bridge device to complete a data access operation on the target endpoint device.
10. The data access method of claim 9, wherein, The sending the actual address data to the endpoint-side bridge device connected to the target endpoint device corresponding to the target address segment based on the target address segment comprises: obtaining physical location information corresponding to the target address segment based on the target address segment; sending the actual address data to the endpoint-side bridge device based on the physical location information.
11. A data access method, characterized by, The method is performed by an endpoint-side bridge device, and the method comprises: receiving a data access request sent by a target endpoint device connected to the endpoint-side bridge device, wherein the data access request comprises actual address data; determining whether the actual address data falls into any address segment of at least one address segment according to the actual address data and the at least one address segment; determining to perform the cross-host-domain addressing operation when it is determined that the actual address data falls into a target address segment of the at least one address segment; obtaining physical location information corresponding to the target address segment based on the target address segment; performing a cross-host-domain conversion operation on the data access request to obtain a converted data access request; sending the converted data access request to a host-side bridge device corresponding to the physical location information, wherein the host-side bridge device sends the converted data access request to a target host device connected to the host-side bridge device to complete a data access operation on the target host device.
12. The data access method of claim 11, wherein, The performing the cross-host-domain conversion operation on the data access request to obtain the converted data access request comprises: obtaining target address mapping information corresponding to the target address segment according to the target address segment; determining original address data according to the actual address data and the target address mapping information; replacing the actual address data in the data access request with the original address data to obtain the converted data access request.
13. The data access method of claim 12, wherein, The data access request further comprises target physical device identification information; and the method further comprises: determining target virtual device identification information corresponding to the target physical device identification information according to the target address segment and the target physical device identification information; replacing the target physical device identification information in the data access request with the target virtual device identification information to obtain the converted data access request.
14. The data access method according to claim 12, wherein: Before the receiving the data access request sent by the target endpoint device connected to the endpoint-side bridge device, the method further comprises: receiving the actual address data sent by the host-side bridge device; writing the actual address data into the target endpoint device.
15. The data access method of claim 14, wherein, The target endpoint device comprises a plurality of address register groups; and the writing of the actual address data into the target endpoint device comprises: determining a target address register group corresponding to the target address segment from the plurality of address register groups according to the target address segment; writing the actual address data into the target address register group.
16. A switching subsystem, characterized in that: The switching subsystem comprises a plurality of bridge devices and a configuration information responding device, wherein the configuration information responding device is connected with each of the bridge devices respectively, and each of the bridge devices is connected with other bridge devices except itself from the plurality of bridge devices respectively; The configuration information responding device is configured to perform the steps of the data access method according to any one of claims 1 to 4; The host-side bridge device from the plurality of bridge devices is configured to perform the steps of the data access method according to claim 9 or 10; The endpoint-side bridge device from the plurality of bridge devices is configured to perform the steps of the data access method according to any one of claims 11 to 15.
17. A data access system, characterized by The data access system comprises the switching subsystem according to claim 16, a plurality of host devices, and a plurality of endpoint devices; Any one of the host devices is configured to perform the steps of the data access method according to any one of claims 5 to 8.
18. An electronic device, comprising: comprise: a memory configured to store a computer program; a processor configured to implement the steps of the data access method according to any one of claims 1 to 4 when executing the computer program, or implement the steps of the data access method according to any one of claims 5 to 8, or implement the steps of the data access method according to claim 9 or 10, or implement the steps of the data access method according to any one of claims 11 to 15.
19. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, wherein the computer program is executed by a processor to implement the steps of the data access method according to any one of claims 1 to 4, or implement the steps of the data access method according to any one of claims 5 to 8, or implement the steps of the data access method according to claim 9 or 10, or implement the steps of the data access method according to any one of claims 11 to 15.
20. A computer program product, characterised in that, The computer program product comprises a computer program, wherein the computer program is executed by a processor to implement the steps of the data access method according to any one of claims 1 to 4, or implement the steps of the data access method according to any one of claims 5 to 8, or implement the steps of the data access method according to claim 9 or 10, or implement the steps of the data access method according to any one of claims 11 to 15.
Citation Information
Patent Citations
Network node configuration and access request processing method and device
CN116418848A
Method, bridging device, system and medium of virtualization processing of storage device
US20240419367A1